diff --git a/.evergreen/buildvariants-and-tasks.in.yml b/.evergreen/buildvariants-and-tasks.in.yml index 33f66627cf3..a0ae901cefd 100644 --- a/.evergreen/buildvariants-and-tasks.in.yml +++ b/.evergreen/buildvariants-and-tasks.in.yml @@ -49,48 +49,61 @@ const PACKAGE_BUILD_VARIANTS = [ { name: 'package-macos-x64', display_name: 'Package MacOS Intel', - run_on: 'macos-1100', + run_on: 'macos-14', silk_asset_group: 'compass-macos', }, { name: 'package-macos-arm', display_name: 'Package MacOS Arm64', - run_on: 'macos-1100-arm64', + run_on: 'macos-14-arm64', silk_asset_group: 'compass-macos-arm', } ]; const TEST_PACKAGED_APP_BUILD_VARIANTS = [ { - name: 'test-server-ubuntu', + name: 'test-packaged-app-ubuntu', display_name: 'Ubuntu 20.04', run_on: 'ubuntu2004-large', depends_on: 'package-ubuntu', }, { - name: 'test-server-windows', + name: 'test-packaged-app-windows', display_name: 'Windows 10', run_on: 'windows-vsCurrent-large', depends_on: 'package-windows', }, { - name: 'test-server-rhel', + name: 'test-packaged-app-rhel', display_name: 'RHEL 8.0', run_on: 'rhel80-large', depends_on: 'package-rhel', }, { - name: 'test-server-macos-11-arm', + name: 'test-packaged-app-macos-11-arm', display_name: 'MacOS arm64 11', run_on: 'macos-1100-arm64-gui', depends_on: 'package-macos-arm' }, { - name: 'test-server-macos-11-x64', + name: 'test-packaged-app-macos-11-x64', display_name: 'MacOS x64 11', run_on: 'macos-1100-gui', patchable: false, depends_on: 'package-macos-x64' + }, + { + name: 'test-packaged-app-macos-14-arm', + display_name: 'MacOS arm64 14', + run_on: 'macos-14-arm64-gui', + depends_on: 'package-macos-arm' + }, + { + name: 'test-packaged-app-macos-14-x64', + display_name: 'MacOS x64 14', + run_on: 'macos-14-gui', + patchable: false, + depends_on: 'package-macos-x64' } ]; @@ -110,8 +123,8 @@ const MAINTAINED_SERVER_VERSIONS = [ { name: '60x-enterprise', version: '6.0.x-enterprise' }, { name: '70x-community', version: '7.0.x' }, { name: '70x-enterprise', version: '7.0.x-enterprise' }, - { name: '80x-community', version: '8.0.0-rc18' }, - { name: '80x-enterprise', version: '8.0.0-rc18-enterprise' }, + { name: '80x-community', version: '8.0.x' }, + { name: '80x-enterprise', version: '8.0.x-enterprise' }, ]; const TEST_LATEST_ALPHA_SERVER_VERSION = { name: 'latest-alpha', version: 'latest-alpha-enterprise' }; @@ -281,7 +294,7 @@ tasks: - func: check - name: test - tags: + tags: - required-for-publish - run-on-pr - assigned_to_jira_team_compass_compass diff --git a/.evergreen/buildvariants-and-tasks.yml b/.evergreen/buildvariants-and-tasks.yml index 9db333b07a0..12e0c34f457 100644 --- a/.evergreen/buildvariants-and-tasks.yml +++ b/.evergreen/buildvariants-and-tasks.yml @@ -62,7 +62,7 @@ buildvariants: expansions: silk_asset_group: compass-macos display_name: Package MacOS Intel - run_on: macos-1100 + run_on: macos-14 tasks: - name: package-compass - name: package-compass-isolated @@ -71,7 +71,7 @@ buildvariants: expansions: silk_asset_group: compass-macos-arm display_name: Package MacOS Arm64 - run_on: macos-1100-arm64 + run_on: macos-14-arm64 tasks: - name: package-compass - name: package-compass-isolated @@ -145,7 +145,7 @@ buildvariants: - name: test-server-latest-alpha-1 - name: test-server-latest-alpha-2 - name: test-server-latest-alpha-3 - - name: test-server-ubuntu + - name: test-packaged-app-ubuntu display_name: Test Packaged App Ubuntu 20.04 run_on: ubuntu2004-large patchable: true @@ -156,7 +156,7 @@ buildvariants: - name: test-packaged-app-1 - name: test-packaged-app-2 - name: test-packaged-app-3 - - name: test-server-windows + - name: test-packaged-app-windows display_name: Test Packaged App Windows 10 run_on: windows-vsCurrent-large patchable: true @@ -167,7 +167,7 @@ buildvariants: - name: test-packaged-app-1 - name: test-packaged-app-2 - name: test-packaged-app-3 - - name: test-server-rhel + - name: test-packaged-app-rhel display_name: Test Packaged App RHEL 8.0 run_on: rhel80-large patchable: true @@ -178,7 +178,7 @@ buildvariants: - name: test-packaged-app-1 - name: test-packaged-app-2 - name: test-packaged-app-3 - - name: test-server-macos-11-arm + - name: test-packaged-app-macos-11-arm display_name: Test Packaged App MacOS arm64 11 run_on: macos-1100-arm64-gui patchable: true @@ -189,7 +189,7 @@ buildvariants: - name: test-packaged-app-1 - name: test-packaged-app-2 - name: test-packaged-app-3 - - name: test-server-macos-11-x64 + - name: test-packaged-app-macos-11-x64 display_name: Test Packaged App MacOS x64 11 run_on: macos-1100-gui patchable: false @@ -200,6 +200,28 @@ buildvariants: - name: test-packaged-app-1 - name: test-packaged-app-2 - name: test-packaged-app-3 + - name: test-packaged-app-macos-14-arm + display_name: Test Packaged App MacOS arm64 14 + run_on: macos-14-arm64-gui + patchable: true + depends_on: + - name: package-compass + variant: package-macos-arm + tasks: + - name: test-packaged-app-1 + - name: test-packaged-app-2 + - name: test-packaged-app-3 + - name: test-packaged-app-macos-14-x64 + display_name: Test Packaged App MacOS x64 14 + run_on: macos-14-gui + patchable: false + depends_on: + - name: package-compass + variant: package-macos-x64 + tasks: + - name: test-packaged-app-1 + - name: test-packaged-app-2 + - name: test-packaged-app-3 - name: publish display_name: Publish Artifacts run_on: ubuntu2004-large @@ -1291,7 +1313,7 @@ tasks: compass_distribution: compass - func: test-packaged-app vars: - mongodb_version: 8.0.0-rc18 + mongodb_version: 8.0.x compass_distribution: compass e2e_test_groups: 3 e2e_test_group: 1 @@ -1314,7 +1336,7 @@ tasks: compass_distribution: compass - func: test-packaged-app vars: - mongodb_version: 8.0.0-rc18 + mongodb_version: 8.0.x compass_distribution: compass e2e_test_groups: 3 e2e_test_group: 2 @@ -1337,7 +1359,7 @@ tasks: compass_distribution: compass - func: test-packaged-app vars: - mongodb_version: 8.0.0-rc18 + mongodb_version: 8.0.x compass_distribution: compass e2e_test_groups: 3 e2e_test_group: 3 @@ -1360,7 +1382,7 @@ tasks: compass_distribution: compass - func: test-packaged-app vars: - mongodb_version: 8.0.0-rc18-enterprise + mongodb_version: 8.0.x-enterprise compass_distribution: compass e2e_test_groups: 3 e2e_test_group: 1 @@ -1383,7 +1405,7 @@ tasks: compass_distribution: compass - func: test-packaged-app vars: - mongodb_version: 8.0.0-rc18-enterprise + mongodb_version: 8.0.x-enterprise compass_distribution: compass e2e_test_groups: 3 e2e_test_group: 2 @@ -1406,7 +1428,7 @@ tasks: compass_distribution: compass - func: test-packaged-app vars: - mongodb_version: 8.0.0-rc18-enterprise + mongodb_version: 8.0.x-enterprise compass_distribution: compass e2e_test_groups: 3 e2e_test_group: 3 diff --git a/.evergreen/functions.yml b/.evergreen/functions.yml index bf77d055ee8..945007a4c97 100644 --- a/.evergreen/functions.yml +++ b/.evergreen/functions.yml @@ -81,12 +81,12 @@ variables: # This is here with the variables because anchors aren't supported across includes post: - - command: shell.exec + - command: archive.targz_pack params: - working_dir: src - shell: bash - script: | - tar czf all-e2e-logs.tgz packages/compass-e2e-tests/.log + target: src/all-e2e-logs.tgz + source_dir: src/packages/compass-e2e-tests/.log + include: + - "**" - command: s3.put params: <<: *save-artifact-params-private @@ -699,7 +699,7 @@ functions: eval $(.evergreen/print-compass-env.sh) rm -rf mongodb-crypt && mkdir -p mongodb-crypt (cd mongodb-crypt && \ - curl -sSfL $(npx -y mongodb-download-url --enterprise --crypt_shared --version '>= 8.0.0-rc18') | \ + curl -sSfL $(npx -y mongodb-download-url --enterprise --crypt_shared --version continuous) | \ tar -xvz) export COMPASS_CRYPT_LIBRARY_PATH=$(echo $PWD/mongodb-crypt/lib/mongo_*_v1.*) npm run test-csfle --workspace mongodb-data-service diff --git a/AUTHORS b/AUTHORS index 469ce9a8c9b..d33515d2c0e 100644 --- a/AUTHORS +++ b/AUTHORS @@ -90,3 +90,4 @@ Betsy Button <36177962+betsybutton@users.noreply.github.com> Vivian Xiao <57568527+VivianTNT@users.noreply.github.com> admin-token-bot <36773031+admin-token-bot@users.noreply.github.com> Kræn Hansen +Kræn Hansen diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c76a149aeb3..a8ecdf711c9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -35,7 +35,7 @@ This repository includes a few recommended plugins for your convenience: - ESLint extension highlights possible issues in your code following our common eslint configuration. - ANTLR4 grammar support extension helps to work with the `bson-transpilers` package that is implemented with the help of antlr (.g and .g4 files). -## Enabling DevTools +## Enabling Chrome DevTools To enable the Chrome DevTools for the Electron renderer processes, click "Settings" under "MongoDB Compass Dev Local" in the top menu (or press + ,) and click "Enable DevTools" followed by "Save", which will enable a "Toggle DevTools" item in the "View" top menu. Click this to toggle the DevTools panel (or press + + I). @@ -149,3 +149,7 @@ The root cause is native modules compiled for a different version of the runtime This means that if you e.g., start Compass application locally it will recompile all native modules to work in Electron runtime, if you would try to run tests for `@mongodb-js/connection-storage` library right after that, tests would fail due to `keytar` library not being compatible with Node.js environment that the tests are running in. If you run into this issue, make sure that native modules are rebuilt for whatever runtime you are planning to use at the moment. To help with that we provide two npm scripts: `npm run electron-rebuild` will recompile native modules to work with Electron and `npm run node-rebuild` will recompile them to work with Node.js. + +### The React Developer Tools extension is not working? + +To inspect the React component hierarchies in the Chrome DevTools panel, use the [React Developer Tools](https://chromewebstore.google.com/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi), which is already installed when running a local development build. For a reason, yet to be determined, you must reload ( + R) the DevTools window to see the "⚛️ Components" and "⚛️ Profiler" tabs. diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md index 8aeb729ff6e..7859bb432a2 100644 --- a/THIRD-PARTY-NOTICES.md +++ b/THIRD-PARTY-NOTICES.md @@ -1,671 +1,669 @@ The following third-party software is used by and included in **Mongodb Compass**. -This document was automatically generated on Tue Sep 17 2024. +This document was automatically generated on Thu Oct 10 2024. ## List of dependencies -| Package | Version | License | -| --------------------------------------------------------------------------------------------------------------------------- | ------------ | ----------------------------------- | -| **[@ampproject/remapping](#0dc8b6568eb743fd551ce2cf2f54be9d0f94b12167f7c34a997c864bcc7e128d)** | 2.2.0 | Apache-2.0 | -| **[@aws-sdk/client-cognito-identity](#d3350d9512a30a7d722a254609aaeb5048055ad7ac83e0fc718676cba82d4f0e)** | 3.632.0 | Apache-2.0 | -| **[@aws-sdk/client-sso](#122bc8ec6e0086415cbed6567ead1e85e6a80326f5609ee0221fabcf2bc3e35b)** | 3.632.0 | Apache-2.0 | -| **[@aws-sdk/client-sts](#92440c05901818918488da134d1ff538799409309918135a178f5881d1eb6dcc)** | 3.632.0 | Apache-2.0 | -| **[@aws-sdk/core](#5ef232eecbafdb891fe4d107f580fd4b94e4eb2712df79ab4b5c3c0255e9b8d0)** | 3.629.0 | Apache-2.0 | -| **[@aws-sdk/credential-provider-cognito-identity](#a0b39e721e27fe3cda471c233a5dd7105832c517c80022d149a2709ceecb4a20)** | 3.632.0 | Apache-2.0 | -| **[@aws-sdk/credential-provider-env](#f0037899766f9fb156ae52d4262089a964f044c3a331a71320443ad3664ba4e5)** | 3.620.1 | Apache-2.0 | -| **[@aws-sdk/credential-provider-http](#990097dcbfa0fafca7fe8253939d00e2237407a576c79a8b94c3fb402a40f9f4)** | 3.622.0 | Apache-2.0 | -| **[@aws-sdk/credential-provider-ini](#d0499091db530426e22820e5a86e11c1635cd6cfd6886be00a73167496589031)** | 3.632.0 | Apache-2.0 | -| **[@aws-sdk/credential-provider-node](#15a01844ec1a77911fc8af581b4cc91607f4ea537aa1b55099ddeb3933c08793)** | 3.632.0 | Apache-2.0 | -| **[@aws-sdk/credential-provider-process](#6df29928703aec90607f9c2d3a1c36071751aa24177be72f0fc88c6773b7df22)** | 3.620.1 | Apache-2.0 | -| **[@aws-sdk/credential-provider-sso](#d0a0d6042ff0dfbd6143041fd83bc1096e36ec1b9b7100726135989fe6974d7b)** | 3.632.0 | Apache-2.0 | -| **[@aws-sdk/credential-provider-web-identity](#7ca705ce1768551740ce25addeda56a029a25efb024929b6224fffed16402d87)** | 3.621.0 | Apache-2.0 | -| **[@aws-sdk/credential-providers](#89261894eb9947986c4f5e3d27470902346dad44742f42ed42ef0c3b7a443165)** | 3.632.0 | Apache-2.0 | -| **[@aws-sdk/middleware-host-header](#76f9788f0a3892655b30ff5be7eadcc24c2a4dc60675874d11e110e53cf7d770)** | 3.620.0 | Apache-2.0 | -| **[@aws-sdk/middleware-logger](#77971232a25c0db769f48f8c0b70d1272e792393db29953a47d319effbca9616)** | 3.609.0 | Apache-2.0 | -| **[@aws-sdk/middleware-recursion-detection](#a19d96e543a0b45bed652d0c84ce89e3f27c98bbcfecbdb66fe4124b14f4e25c)** | 3.620.0 | Apache-2.0 | -| **[@aws-sdk/middleware-user-agent](#a3db739171b14ee7fbc688b1442211cc99cbec5032b4e29c011f4031d6d30789)** | 3.632.0 | Apache-2.0 | -| **[@aws-sdk/region-config-resolver](#c707d161415ea2bbe26756eb111aa1fa6e20fe297f8357c2314200f1bc7b4812)** | 3.614.0 | Apache-2.0 | -| **[@aws-sdk/token-providers](#2797e884608a8f3c4d716b944c9df465acbf619c27612fecdf21e6feac32ffd4)** | 3.614.0 | Apache-2.0 | -| **[@aws-sdk/util-endpoints](#d7c10ece9c460c5fda50acd92143946e29643997740b52f22a2db086204b922b)** | 3.632.0 | Apache-2.0 | -| **[@aws-sdk/util-user-agent-node](#78337458e259597e1af9ae36c139707b9d47d298d6b660fda8ca49f7a6039933)** | 3.614.0 | Apache-2.0 | -| **[@babel/code-frame](#414cb15586d104447ca15cc1904c5779eb415e9079a4a3ca6a81ad96ba9ee4e1)** | 7.24.7 | MIT | -| **[@babel/compat-data](#b4fe3477d50389378e6666362dee06b0abe468140f77f427b952059f193a7a38)** | 7.25.2 | MIT | -| **[@babel/core](#cb1e750729bb20848944291eb3bd3ec445a032e1929fef18d6ee0a6ef3f04bcb)** | 7.25.2 | MIT | -| **[@babel/generator](#0b27790f5456040ac13e71653c95ea0152f86742fcab51983e67601681ba94e0)** | 7.25.0 | MIT | -| **[@babel/helper-annotate-as-pure](#029a306089573d76f9def44953787148e1b886d6f554efd9b97b9e7c226a0bb7)** | 7.22.5 | MIT | -| **[@babel/helper-compilation-targets](#508649a127123be64df2bf11cb716138ec0b9e821f15f99f2f4ff05ea6b4da74)** | 7.25.2 | MIT | -| **[@babel/helper-create-class-features-plugin](#ecefee5d4a0100be1536cec655793a6bf8aa75d540cd1d4ce8df49a91d25f653)** | 7.22.6 | MIT | -| **[@babel/helper-environment-visitor](#7c3618d6e312d4ee318c25b43c5e6e8b79bdd545f899341f34f4174f993f75c6)** | 7.24.7 | MIT | -| **[@babel/helper-function-name](#341cda70cf85da27703ac922b9c9e2ae965553830dec7e94a358ea0efc80e33f)** | 7.24.7 | MIT | -| **[@babel/helper-member-expression-to-functions](#a4b70dbf2d35802a3d8c37e07c5cf031678d08474ef4ab11a6d7e5e3a3143626)** | 7.22.5 | MIT | -| **[@babel/helper-module-imports](#ae249528a13dcadd4a50009d6fc23533184b7512e6029f8e75472bc05ec78328)** | 7.24.7 | MIT | -| **[@babel/helper-module-transforms](#ba2e9abfc9b01015dc06b6eecaff1e93add098ad2ee1fca4541d2a42b1e3b265)** | 7.25.2 | MIT | -| **[@babel/helper-optimise-call-expression](#4e8bad824c45ef99b87f6cf7d3f35a61a8d2d36406972594e230d12ae775ec9c)** | 7.22.5 | MIT | -| **[@babel/helper-plugin-utils](#b7852d4cf81a7e126d632935ff358c99ae9f07948155e64224a2d526a903a009)** | 7.22.5 | MIT | -| **[@babel/helper-replace-supers](#a646f77bcb685d394b994b1e972791acdfcd92c83f33daec4ff2e75c9b1ed148)** | 7.22.5 | MIT | -| **[@babel/helper-simple-access](#72de0cb66b9416da47c095a80457dee176b7e8944b20eb0aa927ee59517c69b1)** | 7.24.7 | MIT | -| **[@babel/helper-skip-transparent-expression-wrappers](#3680d72a3e5058442cc8966d761775227dc7296f71c862ab179c463d5caeb58b)** | 7.22.5 | MIT | -| **[@babel/helper-split-export-declaration](#05dfa4aa91ff28ddfbe5e3741d3535f2998fd2ff8619ee42a619458dcca04873)** | 7.24.7 | MIT | -| **[@babel/helper-string-parser](#4b5727b5007527084d63346bf4767bc3b8683c75b68fc4f3a1a3d0cee5fa235a)** | 7.24.8 | MIT | -| **[@babel/helper-validator-identifier](#cd56a60c2382cafd5f5f3432d2af1a5103bcbb862da8abd0d0db0316886a2789)** | 7.24.7 | MIT | -| **[@babel/helper-validator-option](#cfe2d04997b6c7a764f96a7383b7518f4ad73844a12cc8dc3537045dcc297fad)** | 7.24.8 | MIT | -| **[@babel/helpers](#43b0b2e5ad67e18b90f0a2f60c96c3818519ddba3de59ed0c52a594f33e7b32a)** | 7.25.0 | MIT | -| **[@babel/highlight](#ac1d96bb7961d93c529e7b46f2fcf1ee07f0cb15851aab1ac5f212b46e0f0e7d)** | 7.24.7 | MIT | -| **[@babel/parser](#4dfa90cfe90188b3d219eee843ef7f70003af7c190bbb15dd2fe74a57ab9ae16)** | 7.25.6 | MIT | -| **[@babel/plugin-syntax-jsx](#92b0c9e2acd6beca918c90ecdc4cc5973ac7c517f7dee4ef88df317effdfa44b)** | 7.22.5 | MIT | -| **[@babel/plugin-syntax-typescript](#61156a21baf5a28e3fe10ec0f30808684165b1dbb5f5122c2e2eaf69f6f4f237)** | 7.21.4 | MIT | -| **[@babel/plugin-transform-destructuring](#c97fc3729e02faa151dc6eb84560e5aba3f15e1b409cf5ed2a58431f96660368)** | 7.22.5 | MIT | -| **[@babel/plugin-transform-modules-commonjs](#9dc9700c07e14862f1c48a1e4be203ffe5e62597a92411fba7140f125638e391)** | 7.22.5 | MIT | -| **[@babel/plugin-transform-parameters](#6fac48e0505318a21b9554f11767b16b6a8bf8cb79c8bf6379fff44932cfbbfd)** | 7.22.5 | MIT | -| **[@babel/plugin-transform-shorthand-properties](#b93c2977332c87c88bb42733c298a494df63eb1ad048aab45aa7a57960fbce6e)** | 7.22.5 | MIT | -| **[@babel/plugin-transform-typescript](#01d55893e2b014a36f9855b9c88123888b53f8f2f205e7a9511e2272a8c72ce5)** | 7.21.3 | MIT | -| **[@babel/preset-typescript](#6453c0322ee9255614c50610d48452459d62e0663cb3d060b83e4c3b7dc06dc4)** | 7.21.4 | MIT | -| **[@babel/runtime](#3a0292b85c21e6020d26f99075ac094fa943f759b0df9b7c01cccf01f65efeb9)** | 7.21.0 | MIT | -| **[@babel/template](#ce7b7770e36438d8eb9e8713520aca18c79d1fd0cad068eeb5c88cede557f6a3)** | 7.25.0 | MIT | -| **[@babel/traverse](#bc1b8d30e8e37f5eade430e098b05094a0dd90264ff2c291510973e5315014af)** | 7.25.2 | MIT | -| **[@babel/types](#c6630d254fc6e684be9d283c7020e7e911bb98d9c99a3e405e4467b1e57ec9f4)** | 7.25.6 | MIT | -| **[@codemirror/autocomplete](#62d2362c07f0c11664969b60d0d7c3e081905838b8994675aaf0e6c67baf358d)** | 6.17.0 | MIT | -| **[@codemirror/commands](#e12a76404dd2d66430f2dff53a430449896e9b5c2558779497b855ba2ab9326a)** | 6.1.2 | MIT | -| **[@codemirror/lang-javascript](#d5fb6a843784efdc3ec06ae43bdf3ca13ec93a6bce802995a47cf7bddafc9628)** | 6.1.2 | MIT | -| **[@codemirror/lang-json](#8681100c5ce2bab822c877bc288cac59b84b13ff17735c301d4e1c7fa5924720)** | 6.0.1 | MIT | -| **[@codemirror/language](#5528845a8e28aec6e48cb76145e25db0921b87499dc07ab852cdeca48b9f87a6)** | 6.3.2 | MIT | -| **[@codemirror/lint](#9b9400c17e0d1474348d87ba1131d9609c3598ea4d575380f81fd746b02ec796)** | 6.1.1 | MIT | -| **[@codemirror/state](#7db8880200a14064e03a5e8dd0483aa16511fc8a0c4e09353d51816771f8b63d)** | 6.4.1 | MIT | -| **[@codemirror/view](#f6bea8a649eb633e0e66739e6d3bee4d37893904778e421d126f1e5ae250c9fb)** | 6.28.4 | MIT | -| **[@dnd-kit/accessibility](#bf712d0ed1df4df5829a9e9695c42e816564346a70cab60f6eaf9c141f8b510d)** | 3.0.1 | MIT | -| **[@dnd-kit/core](#6200777f2fce7fbea84b65146c30f3f882633a73ab4e85f62de992928bebd267)** | 6.0.7 | MIT | -| **[@dnd-kit/sortable](#059a166729dc9306b37987bfa0eaa5e59b3ffc6928155d28750993d7178ea61e)** | 7.0.2 | MIT | -| **[@dnd-kit/utilities](#5c1b45075a016b1605974d8314078eaff1a193cb964f113c2e3730cbe9603ae0)** | 3.2.1 | MIT | -| **[@electron/remote](#1b60dc9421c1b6d8b9d0e622fa6b2ef72f605502fd87ad509ea160940395ab6d)** | 2.1.2 | MIT | -| **[@emotion/cache](#c91e3f11a83bb52488c9d1aa63b8e135037dbebc6acd2717e994939f5547b521)** | 11.11.0 | MIT | -| **[@emotion/css](#0f0fe64169ea56b12722e0c13f21cf260cb4e2a9840c0b909e6871d870ba3129)** | 11.11.2 | MIT | -| **[@emotion/hash](#b42900e08e5dadbc62da63a30f552d7705f99bf37c9468aacaf4d05af9589206)** | 0.9.1 | MIT | -| **[@emotion/memoize](#1827146c6aec82dcee79fa8bc04b0315431dd1ce05aae537ea63a88ce1580dcc)** | 0.8.1 | MIT | -| **[@emotion/serialize](#55f5a8e0d65e17a53e71c997b847af76e4e1c46fc25aec5c6824a23ced36b5af)** | 1.1.2 | MIT | -| **[@emotion/sheet](#e421ab8cefe597cf44f29ad92e17c5dc018be162bdac5bc5476ebac908aa3309)** | 1.2.2 | MIT | -| **[@emotion/unitless](#6f21f2d3d65978942c063ac7244c87c1e70353c1cb50b664bb1d1887e84521ae)** | 0.8.1 | MIT | -| **[@emotion/utils](#f6b1e8b81a4cecb8428a258e22f946a728b5c73d12a8d5cb55087f672c0ce2bc)** | 1.2.1 | MIT | -| **[@emotion/weak-memoize](#e5fd44184f5735455cec841f564e21689561fdc449fed6922f4999dae125d2f1)** | 0.3.1 | MIT | -| **[@jridgewell/gen-mapping](#1e660067f4d1364dc830c372517d8ec92eddc9af7eaa6b1e698d478b286abafa)** | 0.1.1 | MIT | -| **[@jridgewell/gen-mapping](#25a8188ec7d87cf1b9baf2470bad1f75a22f246ca0fca732933d26fd488ef5d2)** | 0.3.5 | MIT | -| **[@jridgewell/resolve-uri](#f356bc3bb9c04f5fe4e387a4eea4e74125aae03bb50f846d956d7d986d200f50)** | 3.1.0 | MIT | -| **[@jridgewell/set-array](#46727c727ad43ad8e382221964d27c475629a5635986edac6ea622c772311421)** | 1.2.1 | MIT | -| **[@jridgewell/sourcemap-codec](#7b2141e6a44d38d8458ddcb163c26ab65d5782f6c25465b1954182593dd0c2c4)** | 1.5.0 | MIT | -| **[@jridgewell/trace-mapping](#73923b51cccefe7db1ead00c09a18978443a238d51a858a7a0c86868a9a4ea3f)** | 0.3.25 | MIT | -| **[@lezer/common](#4bf054ecf9e3b46b5959ff484326d62af9e9d7698317b1e8a5f11a5ebf66534a)** | 1.2.1 | MIT | -| **[@lezer/highlight](#30f07ec49dde0ce2f5c814903361f4d9c8b9fc2d8bb143d2e682e05d94a69ee6)** | 1.2.0 | MIT | -| **[@lezer/javascript](#6f8d761b240b610d6ad180799f8b36219b20649cbce80bd3cb7e669082e92ef3)** | 1.3.2 | MIT | -| **[@lezer/json](#7869bdb7c09e2ae1e28909eb504f475477cc5ed0750dc8ccee42886961975253)** | 1.0.0 | MIT | -| **[@lezer/lr](#1443872b0ea87b0af4967c9026094e634c83118fb811349742ca05bde397412b)** | 1.4.1 | MIT | -| **[@lg-tools/test-harnesses](#d9d520c615bec249e9215664d5dbb781e77d0e048253f0f1de362a8bb6212d6e)** | 0.1.2 | Apache-2.0 | -| **[@lukeed/uuid](#82700fba068def47ea9842f28d700a387f59da805f74a6ed10a5eb7eece4cdab)** | 2.0.1 | MIT | -| **[@nicolo-ribaudo/semver-v6](#0db933ddbe9acfd097ee5ee08e4afb1f4f7a64ef9712f95fef7958494c8e02cd)** | 6.3.3 | ISC | -| **[@react-aria/interactions](#638eaf69f422aa3fbe2277f9e95b6b87e64569742134491d2653e9fc05c8f58a)** | 3.9.1 | Apache-2.0 | -| **[@react-aria/ssr](#d50578768741f1468c3d5dc0da1f585e37a01e7e13b44149ff094a0a5008d023)** | 3.2.0 | Apache-2.0 | -| **[@react-aria/utils](#1c0ce36c400225256d025ea8b6f4d36b8d4491f6c81cc1e9dfcb961dbfe05bd7)** | 3.13.1 | Apache-2.0 | -| **[@react-aria/visually-hidden](#67d321e4ea237fb1e2b91f294d1f31af998f4e1ca75ea5eb4a780b2e254d3149)** | 3.3.1 | Apache-2.0 | -| **[@react-stately/utils](#0827474019c352ac03e04eb7fc65f7fe2eba2af1f14f05cc36bb74a504d893f5)** | 3.5.0 | Apache-2.0 | -| **[@segment/analytics-core](#ceca19940ddcc60d35099f1b04cb449caddc02f22a12fc4b6e9afab7b5b38e14)** | 1.4.0 | MIT | -| **[@segment/analytics-generic-utils](#9f4e5775b541ec8bbc32077308532f03fb923e2fb19fff11ac4506ee4498af13)** | 1.1.0 | MIT | -| **[@segment/analytics-node](#5e36f09aa494e968de1e219302594c1aa82f14d2287c063fe1be910021fe1879)** | 1.1.4 | MIT | -| **[@smithy/config-resolver](#50159dd3d75e4f4233935008371e16a6721f052e958a5c4b9c7283e5adaf8f33)** | 3.0.5 | Apache-2.0 | -| **[@smithy/core](#874e0237249efe933850eb42f816f882404af60f8a1512dd83c6b1c98ddc5d19)** | 2.3.2 | Apache-2.0 | -| **[@smithy/credential-provider-imds](#34611beabdec16106966ebb4943cfecdc43c8cc142e5edae6436365632b9fa58)** | 3.2.0 | Apache-2.0 | -| **[@smithy/fetch-http-handler](#786f2bfacb944bdb568e1a786606a6a2dc02f867842f7800355b908aba260891)** | 3.2.4 | Apache-2.0 | -| **[@smithy/hash-node](#391a956b0a8b9c2f7af88541150eca7a355c08e2c891e15170a0cedb66f8c843)** | 3.0.3 | Apache-2.0 | -| **[@smithy/is-array-buffer](#3e840c8e473fca775cfba50e1c0832e2a2734ae3e75418b55905122f260bd73a)** | 3.0.0 | Apache-2.0 | -| **[@smithy/middleware-content-length](#93ab06858226b2392bd8f35d1ef56a363eac4cf19200bb8ee81e842384a8e2e0)** | 3.0.5 | Apache-2.0 | -| **[@smithy/middleware-endpoint](#dce020d94d521d84610461a98027c3821bec38cc676a35284ead114484d1dc06)** | 3.1.0 | Apache-2.0 | -| **[@smithy/middleware-retry](#a4651b327b9add4d8cdd1e0d62ac38d992cf25b495beb18c90bf3d09108c1703)** | 3.0.14 | Apache-2.0 | -| **[@smithy/middleware-serde](#c3675ccf95f0205d19f112c92a7a34849fe09dcf0900877b295692cdee3b1a3b)** | 3.0.3 | Apache-2.0 | -| **[@smithy/middleware-stack](#ea63c1e355c55bbf2e59545c6fb05399ca941daeeec43540feb38e2fef98e93f)** | 3.0.3 | Apache-2.0 | -| **[@smithy/node-config-provider](#f3a27d12f80a2d60af7facfff889c045d65b56e0ec20904c87b998575b7e4605)** | 3.1.4 | Apache-2.0 | -| **[@smithy/node-http-handler](#c37a7f5194e1cae47e8a63c4bb449434097c1beba0e14d3d7f821da9202da3b1)** | 3.1.4 | Apache-2.0 | -| **[@smithy/property-provider](#1af73ed46575c11cb17328c5ab023c4689b6fd3aac8e95637d8a2430c8234d4e)** | 3.1.3 | Apache-2.0 | -| **[@smithy/protocol-http](#2ba5cccbf0f9869872f2786a1c202c5d4dfb6aa59b8e933b0d32c5bfaef8ead4)** | 4.1.0 | Apache-2.0 | -| **[@smithy/querystring-builder](#200f9715ba37573546a0ba50d6600f493501ad1fa99a1214f4652edd3f32eb6b)** | 3.0.3 | Apache-2.0 | -| **[@smithy/querystring-parser](#b2d703203bc9334d657f0cfe5e2f3ff2e029f4be60ccb9a837373f1019e30bc5)** | 3.0.3 | Apache-2.0 | -| **[@smithy/service-error-classification](#557a776a2222ef5b1930bc9c154cc80a4422644765747502c34995779de707f9)** | 3.0.3 | Apache-2.0 | -| **[@smithy/shared-ini-file-loader](#103ac7bac6c71c7909ddff4de45221eefb970300f5eee041039c35ce86e6ade0)** | 3.1.4 | Apache-2.0 | -| **[@smithy/signature-v4](#4a110aeeb62df2468523d0078962af35910d6e836463e11142bcc1be2d1f4670)** | 4.1.0 | Apache-2.0 | -| **[@smithy/smithy-client](#d41834802fb9a283a133cc778bda33ae0a4580819e10c0d12797f83ac83fa1a9)** | 3.1.12 | Apache-2.0 | -| **[@smithy/types](#66e18d9960829b34832f8284a597f0e8bc4f70149542f7533dc9f05866bb22f2)** | 3.3.0 | Apache-2.0 | -| **[@smithy/url-parser](#cc28500f1b3dbf7f305e81f81414d3f5cd733e00df104a56acdd5b82f2f19ef4)** | 3.0.3 | Apache-2.0 | -| **[@smithy/util-base64](#c13f86d5882c72328221d234d624fc36da9fe0ef6270d9ed0f7a3690616bc0b7)** | 3.0.0 | Apache-2.0 | -| **[@smithy/util-body-length-node](#a84f0a1a3fcd05391da50ee998d84695412ce141bdae38ca182c11a58eb7df38)** | 3.0.0 | Apache-2.0 | -| **[@smithy/util-buffer-from](#33c6c26bbdc76fe4bf4ca385fe9618fa7322bd346d836ee4b18e5b322e256051)** | 3.0.0 | Apache-2.0 | -| **[@smithy/util-config-provider](#c87a7523255ad59e5f721bd27137222d188dc0507d93c4cd946092736ca3b582)** | 3.0.0 | Apache-2.0 | -| **[@smithy/util-defaults-mode-node](#17e3c5fdb381e735bc7062fa7510b953fb4f9ba1cf43ec61f9252f133ae35bd2)** | 3.0.14 | Apache-2.0 | -| **[@smithy/util-endpoints](#6bbc52b3dfd8d143c95f7c48631d054e2b4c76ed74a0e449c36a12a4d3505279)** | 2.0.5 | Apache-2.0 | -| **[@smithy/util-hex-encoding](#f797009fb996f0b306124df8c5f82a938af17ab613ee4a6d1b7e2014b26fdde7)** | 3.0.0 | Apache-2.0 | -| **[@smithy/util-middleware](#cdddd643148aefb93fd2abb8f3ea636694a4d11ed1e7e6f883fa81661a3b7dd2)** | 3.0.3 | Apache-2.0 | -| **[@smithy/util-retry](#b62c349356fcac274685aa0ab184eb71cac5084041f86ba14fd6f4cd091ee49e)** | 3.0.3 | Apache-2.0 | -| **[@smithy/util-stream](#620a9e04e4791a554ce9ddd0d3fa2f264d0d5bf211b7e5d4354411bc40d58ad6)** | 3.1.3 | Apache-2.0 | -| **[@smithy/util-uri-escape](#00c89382e0278c66e8d4394996711d826b23491ef5e313b58f5681da7a07d0b6)** | 3.0.0 | Apache-2.0 | -| **[@smithy/util-utf8](#c0da7acc7121c0e4e76c58d92e290275318534cfce16949c7b916cfa0301c3b9)** | 3.0.0 | Apache-2.0 | -| **[@tanstack/react-table](#3472fd929bf691e34b02f3f62232cafe55163b92e3c51afc884780ba2413e67f)** | 8.14.0 | MIT | -| **[@tanstack/table-core](#8a18d3df915b2b72a0c8a845e2a930504b08cb745c8e0b5537de30793b71c967)** | 8.14.0 | MIT | -| **[@testing-library/dom](#15e0d0db2fcc307557d106b8a27b182d980d667836b8d8cbb6edb67a0aab34ee)** | 9.3.1 | MIT | -| **[@tootallnate/quickjs-emscripten](#dda6dbabe98503ac1af20979be1778d7a1c8f355b85377124a909567193c2cd3)** | 0.23.0 | MIT | -| **[accepts](#4c224d266c36e8e0abc4a53eb7eaa038504ee20b9b91f3e761187298a447d76b)** | 1.3.8 | MIT | -| **[acorn](#4aa96f656a11c11b0e17ee35cc26cad7c13dcf4afdff6431e6d074261b59f47d)** | 8.8.2 | MIT | -| **[ag-grid-community](#f3a0879bf804a8156c501942869cb2b3f5c2770fe5ae768eacebf9c4856a3e6e)** | 20.2.0 | MIT | -| **[ag-grid-react](#266b3ad41f62fe9d8b3388c7e3e56532f1081dfc35c8b513d746105d0f7ef2d5)** | 20.2.0 | MIT | -| **[agent-base](#f2315537cada74050b82aaa21dcd7136d001ad9b9442d6ce952030fd890ad26b)** | 7.1.1 | MIT | -| **[ampersand-class-extend](#fa70ccae815f704b05515401eb173b69fec304f2fc4d70d8cefafecb7582c960)** | 1.0.2 | MIT | -| **[ampersand-class-extend](#e80e071b7daf67567df2ed06a0912550d865bb42f740c56f3ee13e4c9ada947b)** | 2.0.0 | MIT | -| **[ampersand-collection-view](#394cdda776a31044177827f7d787e79a65210fbf3e6d2619e2f40709248eaaed)** | 1.4.0 | MIT | -| **[ampersand-collection](#7ae90475872c8fb68869e0d81db8e343084b47fd30ab156865b4b22ae3578a37)** | 2.0.2 | MIT | -| **[ampersand-dom-bindings](#4af3a9ceda31b9fc6fc90e458e9cdbb22d004fa171f69665f659b71f19bdff7d)** | 3.9.2 | MIT | -| **[ampersand-dom](#3e17c8de5bd0d155ce04e72e923d7d76d39708be70bef26a67583c28a1850bbe)** | 1.5.0 | MIT | -| **[ampersand-events](#6bbd750c35bde9ac7cd9789013efa6fffbdb3debb597dd66deaa7a818623209f)** | 1.1.1 | MIT | -| **[ampersand-events](#5aa8f29a56511aafd27953d01cb603faa9aa7e2f92847c72f879c42646e7f3fa)** | 2.0.2 | MIT | -| **[ampersand-model](#82c2458e0e00bac271d59b70c0cc51b9d8c2ed725b62f51575b4b422c7aa5ca0)** | 8.0.1 | MIT | -| **[ampersand-state](#5a76226bf9a842fcccb127eb22fdd20e0bf973f5c4d2e3330bb88a587cbcdb38)** | 4.8.2 | MIT | -| **[ampersand-state](#50886d5661d4241b348d233af087614640a657fad2d772282410875a410ba00a)** | 5.0.3 | MIT | -| **[ampersand-view](#04597f3cef8beed68d8312481c66b00b5cfb5700dcd5e7fc97a1358472ad7dd0)** | 9.0.2 | MIT | -| **[ansi-regex](#7fa0e28daa6f9c697017b06f32a9e31a57ccfb4f138a8daded68a5d002231e29)** | 5.0.1 | MIT | -| **[ansi-styles](#3d188f4ce9ad01e2061b3dafeb74005547429b09fb5b114980303db9cf34f4ee)** | 3.2.1 | MIT | -| **[ansi-styles](#22c90e10fdbeeedded470f2fb78a8094893efd4675108074eddde452da52ef87)** | 4.3.0 | MIT | -| **[ansi-styles](#a480abbdfa49ebce7f9eb04451485c433d1fa24a2ddc4380cc92fd2d34642d82)** | 5.2.0 | MIT | -| **[antlr4](#c5ad356fae2f067425b6c90b7251290842a1f2dec296bbd5afd5ccc32dcf3acc)** | 4.7.2 | BSD-3-Clause | -| **[aria-query](#ea709a066de0bac38519808675639c17ed8511255f6f1604c0262ea3914cfd2f)** | 5.1.3 | Apache-2.0 | -| **[array-buffer-byte-length](#cc88781e246dc898d7b281d0c92ffc26ae81261dc07ec4ea7d1257688f769328)** | 1.0.1 | MIT | -| **[array-flatten](#832052c97b92484a7685d432fbdac9cb8d6cd26a0de715df336780d91762bfc9)** | 1.1.1 | MIT | -| **[array-next](#2eca7126c828f7c4b047e8bc3982acc390adc906c9e1fd2ab512d7ade811a40d)** | 0.0.1 | MIT | -| **[asn1](#c03a7b8eb9b75e350660b88148698446ab536a4ea01c5f321c14036a86aac2ef)** | 0.2.6 | MIT | -| **[ast-types](#b10f17e6889028ee16e1f388d24ed535333cd289f0871c70d99c6180f498c6e0)** | 0.13.4 | MIT | -| **[available-typed-arrays](#b26a9227325a0e2f27e4793244a52200e15f63f970e71f86ead22e0f696c4a41)** | 1.0.7 | MIT | -| **[aws4](#10a86cbc2356f4c2e30ecdd2d3f40dce2dee62e2a2efa860bf539568a5d14573)** | 1.11.0 | MIT | -| **[base64-js](#cf278cb8d073b3bd22b60816c2ba78b69043aec6bcd673437b4c1db3375153d6)** | 1.5.1 | MIT | -| **[basic-ftp](#2893c6a2ae0507b9073fc65146e8902587fef3bfeb9e94a67ea34cb09124b902)** | 5.0.5 | MIT | -| **[bcrypt-pbkdf](#b6b5900f1e48a933591abc1c918fbcc9c890b3d071f607c59d704bc1c13b3937)** | 1.0.2 | BSD-3-Clause | -| **[big-integer](#eb3eaa39f6d9126fdf0b39f43641e13908ba5ab8b70af073669d23cc768335b5)** | 1.6.52 | Unlicense | -| **[bindings](#acdb65ce90d2786593049f690752613250632fd5aeaa2960152abc4f0e8f3a44)** | 1.5.0 | MIT | -| **[bl](#0e8c95ceb67a28a94b8caec6fa59d55974c80aab5dcf21bf1b17b0867f694c3c)** | 4.1.0 | MIT | -| **[body-parser](#ac02c7f4de34d468bfc87444d6d5f4691f322aa0b5dbfe2c2d0c3c42fd078dec)** | 1.20.3 | MIT | -| **[bplist-parser](#a012056f1b32796d923573a3b1ef72cf36943d95e5e2f6af0f7eeab57a21be24)** | 0.2.0 | MIT | -| **[bson](#b355c474f7d8440212aca8ad979743ee65c159f2d853f15ebad55e080bb21ae5)** | 6.7.0 | Apache-2.0 | -| **[buffer-alloc-unsafe](#1022220a813dd092d3ced592ac36121a00bd08a9c2020e08ad370dc29ed217f0)** | 1.1.0 | MIT | -| **[buffer-alloc](#d5cbc95b9dde4a46cd45334630efe3bc9025c904074bee845376bd60651441c0)** | 1.2.0 | MIT | -| **[buffer-fill](#c3747dfd267829ceeb564a1717d0c65d88d2b366e215f640067abefac59e3fd4)** | 1.0.0 | MIT | -| **[buffer](#409d076f160d0351818531a7c09f5e2928335b83e3f0070a7f3e2685553efa6a)** | 5.7.1 | MIT | -| **[bundle-name](#a4c3d6b89061e28c4e5d7937e09f0886c37c406b9c547105da495923b5e3999d)** | 3.0.0 | MIT | -| **[bytes](#bc4d24341f85f604856ec6dfddb2dd192b71929ff892a8549f6b5050fbebac9d)** | 3.1.2 | MIT | -| **[call-bind](#855e84602be0584cc1eb1123aa7791d7a2cc4ed81d396818fb2b13515af7d811)** | 1.0.7 | MIT | -| **[chalk](#8b8d3d6ff6233601575f891628d83bd6b34978a103d513931ae45b00f0e07585)** | 2.4.2 | MIT | -| **[chalk](#0c7c7a95e90c3fdaf99df4851bc949785311d8ea1d2d4498615f37af8fa16cf8)** | 3.0.0 | MIT | -| **[chalk](#c1619ad3bd43ce54cc7a4702c368501fd4fb4fa629077ba610f81d81bcd3f5f1)** | 4.1.2 | MIT | -| **[chownr](#3dbff1a17bbf2c33026995132ecdd14757cb3bee815f4636fe43df0f5ebdcf07)** | 2.0.0 | ISC | -| **[clean-stack](#e1e3f1193b2ac191874d758c618f1552b4679c5ef91d3d59cf46385c9da4e965)** | 2.2.0 | MIT | -| **[clipboard](#c48767bc6ed2a136b20ca8ae206e6a049e1e98a7db03120c44fbd219389ea248)** | 2.0.10 | MIT | -| **[closest](#d06b758bb0a5c68d314479321acf51e1e5ce0faa84afba2817b574067e610ef0)** | 0.0.1 | MIT | -| **[clsx](#112cfff031c752f6ab3595be6de44b2c02620da21c18ce4e2421b6c176f6ee08)** | 1.1.1 | MIT | -| **[color-convert](#a85d5170e73259d44269aafb78e1863169810a839a870124e3574457d214e28d)** | 1.9.3 | MIT | -| **[color-convert](#55c87baa2843a3df1bf7eb7ad8e5c1329afea9bef4e94386d484de20b03c119b)** | 2.0.1 | MIT | -| **[color-name](#e7c2ecd62026cf51768973c2e972505cab32d45b9368aa35105af0a68839ad37)** | 1.1.3 | MIT | -| **[color-name](#66a8b5479032c7b05b81caf8cef9ed81be452b9f3f299868af0167900a4db262)** | 1.1.4 | MIT | -| **[component-event](#32d720e7a217746311d55af1f088a9ab8ae8a3966be80250634fbff4c2c45935)** | 0.1.4 | MIT | -| **[content-disposition](#b0fd3fa1e97f5d899f52e84c86cd6d0a077cabef2388f531bf62f1f1dbdbc371)** | 0.5.4 | MIT | -| **[content-type](#65e9de41d2cef0ed95875e387bc56dae50b05d41b1a7868ed68c32834843bbab)** | 1.0.5 | MIT | -| **[convert-source-map](#46e32cfc12079a57eefebf967b5959d3657698c6a389222eb3228f49cb2fd8db)** | 2.0.0 | MIT | -| **[cookie-signature](#28f6116b52488ac66a14424869fc346f611bea6c894e7d0f7f2ca701deb8e49c)** | 1.0.6 | MIT | -| **[cookie](#c396652ff004385e7bdb8398e37493d5f4144e475282a413ec52f1d3fdaf25da)** | 0.6.0 | MIT | -| **[core-js](#2d0305d15eab4ad23db10b97faf9d8e8e0d5ad30a616c5892d1edd535d8a08c8)** | 3.17.3 | MIT | -| **[cpu-features](#fa992e00865a6ed732ac63bbf64c89ee2da4ec39944684e6002a3a34b5adb65c)** | 0.0.9 | MIT | -| **[crelt](#9eba7acaba2af9d27a0a18fcf40d1f133ffa888d85321e4633e7dac58cab2db9)** | 1.0.5 | MIT | -| **[cross-fetch](#2cd4375069c47bf89a4b399cd21cd9573086803b2cb9fc56c29df5a598e051e5)** | 3.1.8 | MIT | -| **[cross-spawn](#67de3a765808182ee1018c35bc07d7a023a8d645e98cc32814dcac2fc2c427ff)** | 7.0.3 | MIT | -| **[css-loader](#36a5fb6f554559a2f884527f4dd7aa81131ccc3b1aee899472cfec2eda765798)** | 4.3.0 | MIT | -| **[d3-flextree](#d4848a862048d0f4733db2a8631b802f3b5f86f2d4a1efb77fc8b8cf9a06bf73)** | 2.1.2 | WTFPL | -| **[d3-hierarchy](#e718643319205524a77c56ca75dcbf37e3975cc5e187760d1eef01cdd94a7d74)** | 1.1.9 | BSD-3-Clause | -| **[d3-timer](#8d462b04307bb707afc68fb60de32526091852b278fc753ebd023aee6ac2faac)** | 1.0.3 | BSD-3-Clause | -| **[d3](#af9ae6fd28524ec267db82c3ebf75e02f2806418cda4ab310971631d632d3317)** | 3.5.17 | BSD-3-Clause | -| **[data-uri-to-buffer](#496bb13aeb7c14308e5c8c3e20ea81509260ff27a35abfc39b316ced3c5d6860)** | 4.0.1 | MIT | -| **[data-uri-to-buffer](#27ce7d71d79fc8fbfcac8bfd802d2dd044056224bb2a737180caf2d7e268c5ad)** | 6.0.2 | MIT | -| **[debug](#233219ced46fb5b84e28859835e97775eb9d0181f4cb85d6aa5cecb61e595947)** | 2.6.9 | MIT | -| **[debug](#f9b654e80c05af90dc288869333e452db67fbba75969b385acd60df9895a7944)** | 4.3.4 | MIT | -| **[debug](#8f6d58c520b4b6702b6fb9abb811ba1798560ac052612c0fa8dc243516825360)** | 4.3.6 | MIT | -| **[debug](#8bcd678354554043662ec7b1a1fc890da6dca2f1f245833d5400831daaeb3fc5)** | 4.3.7 | MIT | -| **[decompress-response](#71cad5eab34cc643a6a7853a43d3090ac7e8b6014c9ec55fabb8112cdbfd9fbd)** | 5.0.0 | MIT | -| **[deep-equal](#2f9e585913d3ba1d9ffaf3e79f616e66788fa687f6069a567aee25bb3045410a)** | 2.2.3 | MIT | -| **[deep-extend](#654bd7d00073c2195bca924a07d93393b2aaf5cacbb6f52a383877f6f33dbfbf)** | 0.6.0 | MIT | -| **[default-browser-id](#bc6a381b83371172dbb72cac459792e2d4d55ecb71165c082142ef085b2130ee)** | 3.0.0 | MIT | -| **[default-browser](#bf5c7331e49e4c648e57747ffd553870a7fe79fea24780366a6bc22ef346f304)** | 4.0.0 | MIT | -| **[define-data-property](#a776d26c4eb3429c37b30afeed2ddcd9be51dec6d9ea7025b0e6426a5d4f78d6)** | 1.1.4 | MIT | -| **[define-lazy-prop](#6e79b04c4690532e40a5cdfb76f3ab49de1d6778466fede1548a2e19ac8e75c4)** | 3.0.0 | MIT | -| **[define-properties](#332935df321f270f8588f3ae5e25759d1611d1610bd987eac78b79dd1ee5fe35)** | 1.2.1 | MIT | -| **[degenerator](#6cb75d096539cebca1a3054d0012d40eda0230d9c8da8455621c9d78b92f0b69)** | 5.0.1 | MIT | -| **[delegate-events](#9bd9e92528721909dffad7816bd183b65a96891a390f9420036ba9a2cc6ae291)** | 1.1.1 | MIT | -| **[delegate](#bc2c0cfa061f5865ffa83a2bf2c0f3e29dc3a2056113b1ce3e9acd33709e7606)** | 3.2.0 | MIT | -| **[depd](#7028878ddf0fd7d977703a868b5ec8df7220b2f8e7d67827e93767cbb0f21b99)** | 2.0.0 | MIT | -| **[destroy](#b0d735940e17a041d544c301b27489e5d09c3032fa11e7832f03be6541182fd6)** | 1.2.0 | MIT | -| **[detect-libc](#75227d1b1c09630ea361abee4d27101e350832bbeab9640a013c82662408b467)** | 2.0.1 | Apache-2.0 | -| **[diff-match-patch](#850176c67954354dc12126896278644187ef9d1eeeaa1d67f1b6ef48b0c23321)** | 1.0.5 | Apache-2.0 | -| **[dom-accessibility-api](#a91e4ceabaaddea1b80532694b37621980591fa28c7144a3a848e66363bfee06)** | 0.5.9 | MIT | -| **[dom-helpers](#8d51cc2c2eba67a9ee7b80bdbca48b1102ceeb0618178fae05b1a82522a80e6e)** | 5.2.1 | MIT | -| **[domify](#4360a769ee10e827f9ae503aa7ea9aeb9039932fa02ac938316df303704a7fb1)** | 1.4.1 | MIT | -| **[dset](#f51cb933ffb40a4dfeed4e6c3f7e6299cf7d05c42528b3fccc5bc7cab310914c)** | 3.1.4 | MIT | -| **[ee-first](#e2746902c758ae8a6f91ffb9618cd53717f936cb33c6323e65b6b7b24f7ebefe)** | 1.1.1 | MIT | -| **[electron-dl](#e97e034c7b93c63e7a433d75f6f1de3e0668764225ebbd61dbde8d1b55d6f3b7)** | 3.5.0 | MIT | -| **[electron-squirrel-startup](#09fb8168e8fda2e174f8d1a1c392ffd8f762c5637c788edd00d1e2486d060349)** | 1.0.1 | Apache-2.0 | -| **[electron](#b8949aa8130b5ef5da1efc84f1a58e30028db62c230eb1da216dcfd7b263f55f)** | 30.5.1 | MIT | -| **[encodeurl](#b89152db475e86531e570f87b45d8a51aa5e5d87d4cc3b960cee7b8febf1d26a)** | 1.0.2 | MIT | -| **[encodeurl](#177948a319ae0aeebbd65742c53c62b37c75ec1d021afa5a188d10a7ceae6623)** | 2.0.0 | MIT | -| **[end-of-stream](#fadc10994f5fa767d06fb25cfff35fb17a895daf3bc3477c782907668ed16563)** | 1.4.4 | MIT | -| **[ensure-error](#3b1eba5276d89414cef21a1007e85c4f1d6749bf57b300e082ab23975a41dbc9)** | 3.0.1 | MIT | -| **[es-define-property](#f19a2c06a58db5974cd4d8abbd3fa0453122ea6d3bac0de0603ca69f72dcce38)** | 1.0.0 | MIT | -| **[es-errors](#645b141d3027520f69209dba8e012e737f0ee8cad89ea8d0e26d02669d14a981)** | 1.3.0 | MIT | -| **[es-get-iterator](#d9180f3ad32c9d77645aa98ee5b6b8c233f3341b4cdfe00a1b8909505dc0f84b)** | 1.1.3 | MIT | -| **[escape-goat](#9e11fd1d88e064409c700bdd041e7a9077ebe4bb0e8ad151a6820df52ac0a9e3)** | 2.1.1 | MIT | -| **[escape-html](#5463e0a52abb42be051fba2f4ea5d49d907d2b5ed09df0983b54f88c59c8c481)** | 1.0.3 | MIT | -| **[escape-string-regexp](#a9c53481a9db89e7cf01e302086c50fcfbde360978cdd2bbe1e52a430d3fee42)** | 1.0.5 | MIT | -| **[escodegen](#1e641bd52df32bd017c4d69033099f93df452d219efd67395b78fead686277f3)** | 2.1.0 | BSD-2-Clause | -| **[esprima](#48204389e2519fd65c7341ad2eb6174fad10df3c5b019e78cbabeb2488eeca37)** | 4.0.1 | BSD-2-Clause | -| **[estraverse](#34389c51a0aa1205dfb23a6e76beb58b791316f617dc3d09788e50fe99fe5338)** | 5.2.0 | BSD-2-Clause | -| **[esutils](#cbd4dd8d594e202bb6c9713d3b097eea62783e99d79069a29ebf4ce921e129b6)** | 2.0.3 | BSD-2-Clause | -| **[etag](#dfcb09916bd8554b4d5ec250d985c02174ddfe92cb0efaa97df51b903ce0adf8)** | 1.8.1 | MIT | -| **[eventemitter3](#2845c3d706e174e51442028b5aada4c274955de08db3fc13005df746b5d6b3e6)** | 1.2.0 | MIT | -| **[eventemitter3](#344ac4a1404cf0768bccce4529868ee2081bb2d49637269457647deab073e298)** | 4.0.7 | MIT | -| **[events-mixin](#5db5de476dd54dc255312e4dcdb45fb765e1b7d0622d9b9ba86b65527de02a1c)** | 1.3.0 | MIT | -| **[execa](#4172423d3420d919e31613f23914ef325af8a3bf9ed3c6110a4053369b1cfddd)** | 5.1.1 | MIT | -| **[execa](#099ba5f976333854bfd5aa2237fd12d883c4477af76007a7963109833edef012)** | 7.2.0 | MIT | -| **[expand-template](#46d3e73ca0d4a8c14e99252386f0a5c1a4fd8b2747331373d7b4da97105c15bb)** | 2.0.3 | (MIT OR WTFPL) | -| **[express](#8751e219c34fdecbdbc22ade072ef51354f9ff6434904f388f85002299a5a1ec)** | 4.21.0 | MIT | -| **[ext-list](#84470edae99e3ac5a9fdf9da513cd9a1ea7e479ca5fca13b6abecbb4c522f97c)** | 2.2.2 | MIT | -| **[ext-name](#ad9b31fcbd25bf889177f1e55d92e083fbc5ae2460904d8a81abf075c4762abd)** | 5.0.0 | MIT | -| **[facepaint](#7f6881dbbff5f35b8670063d56384fa880a5558aeaf952f1dc00997cfc7cddd4)** | 1.2.1 | MIT | -| **[fast-deep-equal](#c3b1bc7fbf8bedbac237ffb2eb2aa967bc264fc393bb6451c52a831352540d09)** | 2.0.1 | MIT | -| **[fast-memoize](#f613a3ea5150bd2496e9eb6f15357579eb3ec308a8ee91cdafce0d68ffef289b)** | 2.5.2 | MIT | -| **[fast-xml-parser](#ebbe8cacbca0e6da2c884ade309dddffc2df1cf8f3532ffda03e31aa6d3a9a3b)** | 4.4.1 | MIT | -| **[fetch-blob](#9a40c73e2482c1cc651991133722a6fedd12dc752d2858a21da24395e6fc8461)** | 3.2.0 | MIT | -| **[file-uri-to-path](#9eb41790b1cce0829afe7926edf4be80e0dd6927cd8376c00a54a8fc86f8943e)** | 1.0.0 | MIT | -| **[finalhandler](#f3d0b351ed5ad496bcb1412f1508b4cd24709821f254c8f391f6e96999f97900)** | 1.3.1 | MIT | -| **[first-chunk-stream](#c940079dd0a2457019ab184334f928cab84e316cd4016ba3581b312aa55c70f9)** | 3.0.0 | MIT | -| **[focus-trap-react](#4db13d4bfad6e874b38f8054935a1c7872c265b0a9f279e24dbe2523f3d1ce53)** | 9.0.2 | MIT | -| **[focus-trap](#c34eea0a3a357645a464ee2dd814f280c9670f39b9b85132394eb15acb70916a)** | 6.9.4 | MIT | -| **[for-each](#8b82c7ffa1300f8e1575c1d59105d6b256827ec211760d6fb6f884e4290e0abe)** | 0.3.3 | MIT | -| **[formdata-polyfill](#57e46e70e3cf628270eb56d751c6e2dd8332438324f1e4f5a3602c34ff7c85b9)** | 4.0.10 | MIT | -| **[forwarded](#2d7f4275b09b041fd821b7672ebae7c9ccad3c87f3f37b6bd91306973c02b9a3)** | 0.2.0 | MIT | -| **[fresh](#d7c677c373e09a5e9c7fe1d1ce69ca3147fe0455bf5606a26251970181d9efc4)** | 0.5.2 | MIT | -| **[fs-constants](#9961a9f7535cded379a7696ad6d002a62d4826a3a8c2ffb5624383b942c879e5)** | 1.0.0 | MIT | -| **[fs-extra](#f4bda72fc58b809b6533077d1826716805d4bec29651a76697ededec9689e0a4)** | 11.2.0 | MIT | -| **[function-bind](#83de3b394293d96fb3fea968392a9d9ffb8b461f6c173bbb76a5bc51db5bec52)** | 1.1.2 | MIT | -| **[functions-have-names](#e47bfb8af99536984c43eccff65479505a133c528be9e5e73fa43c03b31749bf)** | 1.2.3 | MIT | -| **[fuse.js](#ced18d15cdf119bfd867863e1f147fb1f4021544033d6cf956803c71a14cf53d)** | 6.5.3 | Apache-2.0 | -| **[gensync](#c49cbe8d63515db5596a717f0d65eab2f06a623b4f1dfbd512d61bbdccf1aa4c)** | 1.0.0-beta.2 | MIT | -| **[get-intrinsic](#2c1a0d16eee22217701f9243a8041f80f74f0a262eb6c10bf1b1f7f41e8599ac)** | 1.2.4 | MIT | -| **[get-stream](#8d24427d88f4f3193411b16e6dbdfc05d0edc3ce08460a1c73ec55718470e28c)** | 6.0.1 | MIT | -| **[get-uri](#4ae602658ce541126b57c19a2c8c47ed82d62e55c642d49f59f14e841ddc1db6)** | 6.0.3 | MIT | -| **[github-from-package](#8cba969ea116f44491f4fbb8b391c0ab40408fc2e5380f81bc8e8e42b55fff8b)** | 0.0.0 | MIT | -| **[globals](#749052b146da20b19c298de835e7cacd7f6d1f0a87a8422e538ccdfeaa69b0a5)** | 11.12.0 | MIT | -| **[good-listener](#0700018cbdc383f6ad6d421484a062b2e19ae4da91ffeecbccf3886e5a38afc6)** | 1.2.2 | MIT | -| **[gopd](#e51829c607e5861ddbe69decfaab45dbffb62e23d40af7d1f746c5bce8d05859)** | 1.0.1 | MIT | -| **[graceful-fs](#c0b8c47fbef7d28839a82ca95e6743793680005077b011462d5c0a6d1ca1b39d)** | 4.2.11 | ISC | -| **[has-flag](#e2f50bddacaae4f231bda078470fd90f19fd780e9c2bc721710a09bcdd536d1a)** | 3.0.0 | MIT | -| **[has-flag](#7ec819116728d891777ebd4140bef063f473b9ae26d46e91f5ca78834c872abf)** | 4.0.0 | MIT | -| **[has-property-descriptors](#4616611d5db8c73d2811bc79dd6cbde0b69f1cc891c1f997448bc79546ba9913)** | 1.0.2 | MIT | -| **[has-proto](#7a8e708aab5b7c789098be88699f7f374a9b3a2f2737537a66d391147377b362)** | 1.0.3 | MIT | -| **[has-symbols](#26dae1ac20c49dbfafbfca8c84abb75e056b0213a6ff12412dd23dd752e1a424)** | 1.0.3 | MIT | -| **[has-tostringtag](#e39d802569f1249ba08678c5fb24fc1b87ee4c92cc0f6eaa259f5b54038f2e13)** | 1.0.2 | MIT | -| **[hasown](#ace41f4c3d63ecdc85c94d28b43fc006fc67f35c24ecaa112b631dbcb5c0b39d)** | 2.0.2 | MIT | -| **[heap-js](#02ff1972404d29f951641af2b6cf6b371521d70f6daaf4196dcc45e6b5dbe96d)** | 2.3.0 | BSD-3-Clause | -| **[highlight.js](#2c60adc5db39462d0c2ff2176f71b4694ffe5060c53b1aa4f6f670e269ec1905)** | 11.5.1 | BSD-3-Clause | -| **[highlightjs-graphql](#11efa7dc664403503100672cb251f0bac920e5f8ac3847419583e9318faf451d)** | 1.0.2 | MIT | -| **[hoist-non-react-statics](#48f3f00d384ea079099b9b701c304b7e276313a616f8ad0084f41ea563f876af)** | 3.3.2 | BSD-3-Clause | -| **[http-errors](#63ffbc6de129d4a36e73df25da1f31ee2a7da3b1060e1b5b3c2b5cad89ca04c7)** | 2.0.0 | MIT | -| **[http-proxy-agent](#bd2b92f8eb0b68f6d255c316d3cd8c9aff9984e8bcb584d47613c422de726405)** | 7.0.2 | MIT | -| **[https-proxy-agent](#8a149a0a84183adc7ec4c2ca491a2aced0803a8c5fdae6e99879bcb4720837e1)** | 7.0.5 | MIT | -| **[human-signals](#49d0a41c5a505634282f30fd5bf8876d5c9fd885fc242bcf16c71d3b4c4e2da5)** | 2.1.0 | Apache-2.0 | -| **[human-signals](#62680fd7715b22b948ad9771bc3f0de13d753f68f6478afdda970d4393faa754)** | 4.3.1 | Apache-2.0 | -| **[iconv-lite](#7d9ca5eb7c6d1a6f1b3b2db04e94ca19cc04caa10d923fca7d7942d47aa505fe)** | 0.4.24 | MIT | -| **[ieee754](#926bd89d8cb0e458a159fe96007510a5c9d75add2ea3e46185c68854f977a887)** | 1.2.1 | BSD-3-Clause | -| **[imurmurhash](#d1af6342e06cf4463a1e70d43bb8fd673f060cc7c236f7fe024631d6714c81c8)** | 0.1.4 | MIT | -| **[inherits](#3eafa9bfb872baf192e837ab771da2e95e983ee682371a2b1c579e518e96f7b4)** | 2.0.4 | ISC | -| **[ini](#2269ab4bd2e1fa90571f520780ab5499f6d49da3b7daee9b9dfdad9e93c33a18)** | 1.3.8 | ISC | -| **[internal-slot](#1ecccc52c5daf9836e78ebc03604e73050b23a095bc4474240968ba1b9cd8892)** | 1.0.7 | MIT | -| **[interruptor](#e8a35d2ce64b947fb7a1aba891bc1e4eb166be57a59249cda1fcc689e767b6bc)** | 1.0.2 | Apache-2.0 | -| **[ip-address](#8de6e89459554be8a933663b25ae1d1ffee71458028fa8cbe5d68b349438a8c8)** | 9.0.5 | MIT | -| **[ipaddr.js](#38a5a1606dbc89a9c65a28d1e9ebe3c8d323e107a77c495a56dbf522211676d2)** | 1.9.1 | MIT | -| **[ipaddr.js](#d8a1c47a5dc5581d8d9e84268efa779a5140196540c2a4425e8317c1eeb93fb7)** | 2.1.0 | MIT | -| **[ipv6-normalize](#7a4346dbf206011966449898fcd37178a9be89acf6dff120b676d4c4d0dec203)** | 1.0.1 | MIT | -| **[is-arguments](#4af472b071742337deb4d56d6c4a507fd58990e8922613def80a84ba532a2b6d)** | 1.1.1 | MIT | -| **[is-array-buffer](#442760df883a3fb368f6c5666080a8c4e07d95f5f69fc92654bed5bd4be7f814)** | 3.0.4 | MIT | -| **[is-bigint](#76328e128016cee0810bc1fd650e8f63f1ad3a062d2e0c555515448ffd3f13cd)** | 1.0.2 | MIT | -| **[is-boolean-object](#db76784fdb608b8a1760612e770f909cb121ee1d4f6067a33c25443f06b9c998)** | 1.1.1 | MIT | -| **[is-callable](#8cf8f70dfb44d8f426d81a03a0f5a1e4be28081368aa69089c22ac2571dcac14)** | 1.2.7 | MIT | -| **[is-date-object](#4e4be4dc1852d5d512c7afa3107dcff477e27efa4ac81bda7a72422f55fc5841)** | 1.0.5 | MIT | -| **[is-docker](#893885e21608c60de02539fa3bd5a98f7068127aa5fab86a215bfec41a3119a4)** | 2.2.1 | MIT | -| **[is-docker](#b21de9a8d47c7c165b912be5c7a36eae3939076531e05733aa2ac7f1099dc46d)** | 3.0.0 | MIT | -| **[is-electron-renderer](#5f979579f0e64b4ba63a2cf1d32f11e274d285511e84ee596bddc57424d5299c)** | 2.0.1 | MIT | -| **[is-inside-container](#3f45825f7cda0ec2231b94ee915a0dc76a31eb0f97746c44510d9b05d80c1a97)** | 1.0.0 | MIT | -| **[is-map](#a9d75aec4f0b5614e4286c133a5fb6390141bd79d8b5bff8f3f7815869d04f8e)** | 2.0.3 | MIT | -| **[is-number-object](#98d946a111ed40a337dcf7f4aa4824b69cfe20d4b3b230710bcd5f9c803c9348)** | 1.0.5 | MIT | -| **[is-plain-obj](#6aa44f19e7afb6047589b7ad4e4ee3d44264e44f4a4ac5057efb8e3000820525)** | 1.1.0 | MIT | -| **[is-regex](#b98aa247d6a1b7f75692f6acb485fc213de3ca0cd8ecdd6bab7f96393e255d07)** | 1.1.4 | MIT | -| **[is-set](#af0e69272cbdbff01e5f873f16f9aa12c5c8fcbc228972be63e0b1ce16bd180a)** | 2.0.3 | MIT | -| **[is-shared-array-buffer](#6828bd9e33499632e06a110b3a3ecc06df254c4a28caf86e436a9939af9b3ed7)** | 1.0.3 | MIT | -| **[is-stream](#6a348f7c7e9ad013ef74124a87896ed11f8bafac3344e58377dcfc0944187cf6)** | 2.0.0 | MIT | -| **[is-stream](#309bd1940a381ff538d0c335564cc3e436c79307c991516433092d84e35acfc7)** | 3.0.0 | MIT | -| **[is-string](#f00a8e1cf00a8951016596ae951454a7d9944dc72a4f1b1127e7ec5879db5654)** | 1.0.7 | MIT | -| **[is-symbol](#3550f187e60fe8b94de5ebefd70dca43157d4c7a8ac847bb8d5ddfb1c59c1723)** | 1.0.4 | MIT | -| **[is-utf8](#df5522c387e62effc17916c612bf340d6543c4bccca99fed4c1c1fae77ed4900)** | 0.2.1 | MIT | -| **[is-weakmap](#ed08152c59d2b4e2e55e4c75373f7cd102901b6de08e20dba61722d1bb7a5086)** | 2.0.2 | MIT | -| **[is-weakset](#5538f4c86728250aa4d278637d76d6fff7d7a2cf1ff7433f842cc4045c95ec6e)** | 2.0.3 | MIT | -| **[is-wsl](#133bdb52dad1bbd87bcda9564e6df13fe7c51ae7d67575fea63cf0a2072ac884)** | 2.2.0 | MIT | -| **[isarray](#55a8a963f7aba0af49a654ea316f8dc19b717b632b88145881fda3988256ef6d)** | 2.0.5 | MIT | -| **[isexe](#2f62e711a6921973ef3f9650fd3e06585fd3842e34078c8fa959481738600405)** | 2.0.0 | ISC | -| **[javascript-stringify](#e0d27d21a288d227e51243715c044b3933d9fc0fb025dc16ec79c78af35f85a7)** | 2.1.0 | MIT | -| **[jose](#7c6ba2890a65df8d382e1b102b311651675d0ed5fd5443e911c520b18e93f62f)** | 4.15.5 | MIT | -| **[js-tokens](#f4371f095c6f087cf41433031f8c612e21a4258b18cb4e847ffae73905e146d4)** | 4.0.0 | MIT | -| **[js-yaml](#c82a34a38ab0debe302cf958caa7a51b455f5fb8a32a3ce6b9b4cab3f500c60a)** | 3.14.1 | MIT | -| **[js-yaml](#b7325d630b0ab313450fcd188788f6ee374aadd75df4969a9e3c48507ef88bdf)** | 4.1.0 | MIT | -| **[jsbn](#936d5c89291f7b505f688e45ff8261d3f225f96e0e981fd0366a9efda9e0e7f2)** | 1.1.0 | MIT | -| **[jsesc](#253e8a44fc188759c5ce35330e4f20aacf1d0253d7e8d7dffd4a1f884a10ce1e)** | 2.5.2 | MIT | -| **[json5](#16281c6ea25e0cec4bc0bb8c01d1759d66992776381bf9c5af6959bec47d2f77)** | 2.2.3 | MIT | -| **[jsondiffpatch](#2cc3b990f6692cd23f883319a727b42a76a3a9d6675d1ebd8a05241eb7edc4ac)** | 0.5.0 | MIT | -| **[jsonfile](#1504ddbe5031429f6d90bb02373b4629ff5da9ef4e869d5015ff42f685817e74)** | 6.1.0 | MIT | -| **[kerberos](#e9b8ef28e3d246d5071f34b07b67580523cda7bd0d7d74dc2e422d79d30c238d)** | 2.1.1 | Apache-2.0 | -| **[key-tree-store](#63e3bcb8e06ac6b9f7c153030ce57fad6e985a0cc7f0109d3fc6073192a932f8)** | 1.3.0 | MIT | -| **[keytar](#752f1130bbd6c5dc941bdb20fb39579c1d350252a112c58f2558b7c5f536d6f7)** | 7.9.0 | MIT | -| **[leaflet-defaulticon-compatibility](#7fba582082c899d764d8e4214d2f6f06cd043b2dce51598ec24ce299f5640a6e)** | 0.1.1 | BSD-2-Clause | -| **[leaflet-draw](#d3f67d0a666ece9171dffece3f3db67430e7055b1e8b857d806555d65b720d0e)** | 1.0.4 | MIT | -| **[leaflet](#0c77955158defdd249f5abf69232ca350038122d4fc768826d9d79ce402761f4)** | 1.5.1 | BSD-2-Clause | -| **[local-links](#9d5ba7b7e3257ecb142eb0aaf6f846e1f98c95256ae9a5836a5246db26eccbee)** | 1.4.1 | MIT | -| **[lodash-es](#a591ea211f9167d2f80166d42532d3c01f7843fafac380deb0bcf693cdf6fa1d)** | 4.17.21 | MIT | -| **[lodash.\_arrayeach](#e705b211da95702daddcf8ca44be1e168f2c98cc4298c3c0039d7acba4b651d5)** | 3.0.0 | MIT | -| **[lodash.\_arraymap](#afacdd77340d24ba7aeefb1cb7a952166c5d601c0a7fe44483832dff840688d0)** | 3.0.0 | MIT | -| **[lodash.\_baseassign](#aacac99d5201811cd8fbae43458c75e440fcaee435b10ff4ebae397ca34fc335)** | 3.2.0 | MIT | -| **[lodash.\_basecallback](#560dff0d15a98e42aa42379205f5a3e8e4f9a2234c4bf1e7aae85ea6369d5eb1)** | 3.3.1 | MIT | -| **[lodash.\_basecopy](#b7789a88750f78ca9242497a1c4acdb472b17b3a207bb1088c1865d5fc059d45)** | 3.0.1 | MIT | -| **[lodash.\_basedifference](#fba9051032cf703707176db1852b2c612c58e0fe0aa275233262512fe1cc3c1e)** | 3.0.3 | MIT | -| **[lodash.\_baseeach](#9a24b68e28142b48a1f27163a281677591406ba38b1aa99b8fea01c1cbd2c2a4)** | 3.0.4 | MIT | -| **[lodash.\_basefind](#c58e88997b2cda815fe8eafeb62113412915090abb1734f1ab37c060bd186d78)** | 3.0.0 | MIT | -| **[lodash.\_basefindindex](#070aeaeefdc0615eb01ab55ee2611f008b4973f77542680c09d58206324d7244)** | 3.6.0 | MIT | -| **[lodash.\_baseflatten](#ef8e3266ef37ba1e96b4494119bf1d6e167b5fbae3a3a3f24f6b2adfd813a18f)** | 3.1.4 | MIT | -| **[lodash.\_basefor](#9452e64da946cc633bba85112f9d585983d4d34ddb922312c23509f31b9cf54a)** | 3.0.3 | MIT | -| **[lodash.\_baseget](#c3cf4bbadde17410a34e84962cf52620d922e4c477c0c67407e3905a668d5b3f)** | 3.7.2 | MIT | -| **[lodash.\_baseindexof](#984f3f17e0475ba7b138ad2bcd02121d1069d6b685100583bb4bc9d6127a29a1)** | 3.1.0 | MIT | -| **[lodash.\_baseisequal](#5722da50c112fc1c4eb299375a140f952d867bf75c7433a0fb78b121b90a6fa0)** | 3.0.7 | MIT | -| **[lodash.\_baseslice](#f3a23746e44f620faa3af8d34a8ba0423726d0cd24176300f50a3c2798774e21)** | 3.0.3 | MIT | -| **[lodash.\_baseuniq](#fa4ce8551ed1dc65f15b9dafa6fb0238a4feb17f2caf8ed613748869842943b4)** | 3.0.3 | MIT | -| **[lodash.\_basevalues](#a6386191237cb1d70784b24e2847098f2876903ede40b488e306ba726b674f47)** | 3.0.0 | MIT | -| **[lodash.\_bindcallback](#759845849a0d94685fdf1a87cde520e49632ca378662469cdfe0c2be33cb3057)** | 3.0.1 | MIT | -| **[lodash.\_cacheindexof](#e2920f2aa3d3ef638e09c3952dd2cac1a42dca3929acc0bd76c3fc69f7cacfb7)** | 3.0.2 | MIT | -| **[lodash.\_createassigner](#c8f058ba3519bcdc9abd63b121fe2fab26acab4f4bcf2658efec676a3fdbaaa0)** | 3.1.1 | MIT | -| **[lodash.\_createcache](#072c756c562325194b5d955a7929da38e505fadd86c92a1a7d19ed9d251a58ef)** | 3.1.2 | MIT | -| **[lodash.\_createwrapper](#c3d6fd2a3e8a1412538ac86360c7608876b0841ea7f499ab96edc3e82ed120b2)** | 3.2.0 | MIT | -| **[lodash.\_getnative](#2a9507ae12db57c5319c675c4dbe5e100525a22f40b95339f9fc2d5f340ce09c)** | 3.9.1 | MIT | -| **[lodash.\_invokepath](#de9648080f5467f2559c407ca80b67fbd95a3767f8735507a7ff9802115379d8)** | 3.7.2 | MIT | -| **[lodash.\_isiterateecall](#2a87d94ff3c38e8d5da4ead575fec274d7655bc29e5645ff44b867a5b8926b4e)** | 3.0.9 | MIT | -| **[lodash.\_pickbyarray](#ce351b398064b4b254cd6189e4d91e14af322cb837142813fdf6d7f35e3a7e7a)** | 3.0.2 | MIT | -| **[lodash.\_pickbycallback](#5a4ef737299f75e14a058f857cdd3593cff7385db2c2d750516bd8c5fd1dac74)** | 3.0.0 | MIT | -| **[lodash.\_replaceholders](#c79e1ac85ddff7c5fe2d1170dc92a28f55b4a1ce6da74091d8775ed2c172c3a2)** | 3.0.0 | MIT | -| **[lodash.\_root](#b4c5b75f0ca57172edd2801a0107b22b1cc5b4bc258c4bfbe5d1b1fc052bb191)** | 3.0.1 | MIT | -| **[lodash.\_topath](#41ef14e011630cd3bea80b43c1d824c5bdada826f2bddaddda350eca30a93f4a)** | 3.8.1 | MIT | -| **[lodash.assign](#279f6350b38f924a812ff5d74a5f9c9023f5923a7c70dcb75bdb1670ad35ab50)** | 3.2.0 | MIT | -| **[lodash.before](#2fef595ae4ab5ca92be6f59e86e4d7f2b4ad0c224c22d828dfd0bae48af64645)** | 3.0.3 | MIT | -| **[lodash.bind](#3acab10f30bde74cc48a35928697ce1670df78f45fdca78b8bcb8c047a698b0e)** | 3.1.0 | MIT | -| **[lodash.difference](#43791df64f8fe405fc866c836325719f4060084c461c21882bef3b606d98ebcd)** | 3.2.2 | MIT | -| **[lodash.escape](#b2c0e0aeb488595574952c98b5f54e03f435b75e913a2bd5e5355645a576f866)** | 3.2.0 | MIT | -| **[lodash.find](#83ef2b0f6879ce20ff4050bf0aba209ccab6beceed27ea68be7dc15e088aed7c)** | 3.2.1 | MIT | -| **[lodash.flatten](#6adc3792aefcf12132c36a2d446686218a80ce413c20b2533d551509cc79c542)** | 3.0.2 | MIT | -| **[lodash.foreach](#27063675a97582e63d10521797ca5436c38ec0a71341733744333edec40fe4e1)** | 3.0.3 | MIT | -| **[lodash.forown](#b50edd80fd196dfaace7b3aa2a90290a00fed380636e15429b37a7d2f8e3776a)** | 3.0.2 | MIT | -| **[lodash.get](#632dd5085bea3b2734eae88903cfc1e91fb5b4ddb9213e10ffeadf7121ce5ea2)** | 3.7.0 | MIT | -| **[lodash.has](#d0e17f0b2e78b1a2618102c4f3b743c662a0f7cb0d3ef613b22a5595f46c3667)** | 3.2.1 | MIT | -| **[lodash.includes](#3adf597b6163c3ba3343235b44071cb955635e582da311d5b57ac35f2692f9b4)** | 3.1.3 | MIT | -| **[lodash.invoke](#43d25e539b3db0cb448dfaeac571c6f35c805ed7336f54c63392ccdb88c7ec91)** | 3.2.3 | MIT | -| **[lodash.isarguments](#fc005d458a81bf6d8d32c52123952311bdd5e02c5564720455bd4d9480b20da7)** | 3.1.0 | MIT | -| **[lodash.isarray](#0ec1c02a99d5b713fe4a1e0682e2917aedfbf6f16057f1dad1c7871c6f736575)** | 3.0.4 | MIT | -| **[lodash.isdate](#54396c41d452d46f8d06091b9ab83f35cbafd80f53b8a3337c4567d1009556f4)** | 3.0.3 | MIT | -| **[lodash.isempty](#f1f61f99f9012392c9bc1dd4b01eccd42224ff516c50b507c0041845df62bcbe)** | 3.0.4 | MIT | -| **[lodash.isequal](#3c009e1972544c1bf8dba82eb0bffe6230cf8760bd49d8ee6e120d20b4296b2c)** | 3.0.4 | MIT | -| **[lodash.isfunction](#037b8981ee3ca5d6ef852835683db8dfb102f43763b561aa365c7567a766ff60)** | 3.0.9 | MIT | -| **[lodash.isobject](#247f42305767fcd88c563da8a196a61fcaecdd7d4ddab3d72d1a9eb05bbf5405)** | 3.0.2 | MIT | -| **[lodash.isstring](#10489ff0ae921489d537bc6aecec98d63d40c04e55ced77d1f68331a7f2dcd56)** | 3.0.1 | MIT | -| **[lodash.istypedarray](#1968cf985099120c230a51c77054d5e662feeea4825ca0218c1c728f80b5839a)** | 3.0.6 | MIT | -| **[lodash.keys](#c588afca24b161c04c66b7fe976458f32d1871dbdc38343d2249c15af51e6df0)** | 3.1.2 | MIT | -| **[lodash.keysin](#eb438504bc7bde2a75d470d2723add90d5a7e2948c7a9320eebed39d20e9e133)** | 3.0.8 | MIT | -| **[lodash.last](#541caa1523f10bb2a8b2f52174d1de4ab2d64fb7a02719e69eb7d4e1e10b1065)** | 3.0.0 | MIT | -| **[lodash.merge](#996e40d63a94f1b8693d7c81e0cdfb874c6432d6bbd675976fc1b6b13652c8db)** | 4.6.2 | MIT | -| **[lodash.omit](#babde7076e3dbe66c1cd8dd0af071af1fcd4b49d2c7dbf8a306cc09b860c9ad9)** | 3.1.0 | MIT | -| **[lodash.once](#e794f12866dca62acdae15f1b5b4495ad6dee09c7150f71a96044adc2ced1286)** | 3.0.1 | MIT | -| **[lodash.pairs](#db90d2eca20d73caab322dc7ac851ecbc50db59e5e9e40d5c78d0f840cf03329)** | 3.0.1 | MIT | -| **[lodash.pick](#d54a2e0c0e3d3024a4b364b8917d59c1170262088fb3bfc4ab4a71f53ecbb3ae)** | 3.1.0 | MIT | -| **[lodash.restparam](#212ef51d65362b73a8d548dcc6dda631ef012bdd6d7d724281ab9bb0a1dbcec5)** | 3.6.1 | MIT | -| **[lodash.result](#7a09af41b88107096ee9071a254bacf1e324ecab5c9fb56d81dcda873144de35)** | 3.1.2 | MIT | -| **[lodash.union](#9ee2120113e7c91fbcbee571e2fae44f1e7f87afb331cca6eb46a3d318d6169e)** | 3.1.0 | MIT | -| **[lodash.uniqueid](#f4693b5b22365d675cec07ce8ca01fc235054f442963585ee0097efdae26995b)** | 3.2.0 | MIT | -| **[lodash](#adaac4144887ebc2c1b682380ff385210f681fc58b4bc1ef3986148cf8dcd28a)** | 4.17.21 | MIT | -| **[lru-cache](#8d10f71b6ab389fdca1b55e9aa96d77790f776843bd42ca91804a40a0d543f19)** | 11.0.1 | ISC | -| **[lru-cache](#fe7f0a2f2cf4c92f13c3a2a63f14f80f20f6919979306dc054e4f947c1234651)** | 5.1.1 | ISC | -| **[lru-cache](#938513411a6603ce29334db15563fb94b7d52f839d32b9bd78c18f5d3f98aa5a)** | 6.0.0 | ISC | -| **[lz-string](#a04d0916e49897705fe7a9d865134920984a19a03f8de501d4e46c6698a6b421)** | 1.5.0 | MIT | -| **[marky](#c5789082b93eeeb451a00e87792a533dd2589421119d3560a06c5f96b39414ea)** | 1.2.2 | Apache-2.0 | -| **[matches-selector](#ed68b9f3ecca4297cbb806474484688a85517361d99a33773e3152603a6771e6)** | 0.0.1 | MIT | -| **[matches-selector](#cec79a3cd38ecccf3066baf0e39cf87735fffea201040dd2799e4c6b5221d981)** | 1.2.0 | MIT | -| **[media-typer](#fa74be298a38f8f9351484e9124aba4a4086182a4cba24449f195219a2843784)** | 0.3.0 | MIT | -| **[memoize-one](#4d802a078eb32373fe5d8119384598a703537750aeeb5990aa28659939260789)** | 5.2.1 | MIT | -| **[memory-pager](#7fbdeab18f48c3527cae276a51cd879e42d15337aba1acb44fedcf748137608b)** | 1.5.0 | MIT | -| **[merge-descriptors](#0dc27d83f406152460ccee54a872599fa57bf48baa989aaa2165fc98eafd08da)** | 1.0.3 | MIT | -| **[merge-stream](#df06bda70cbfe392ea02ab42ab188d21ab5c15e3c1a172e6f2ce4cd9d304c01f)** | 2.0.0 | MIT | -| **[methods](#d2f0af2174fefc260353011b7a5dd7845576b8eb5f16c423378467dfd5b10f5f)** | 1.1.2 | MIT | -| **[mime-db](#7cfa78c6359b5b06cbb7cde9659b052fb92a58e290411458d496ea39857bc15b)** | 1.52.0 | MIT | -| **[mime-types](#a4d3481c7c7fa681b0c2a946f94b390ac9f96f0412b1ec63b79eba32dab82500)** | 2.1.35 | MIT | -| **[mime](#9b48af8a381b3c30ce0ed825fdb250ac917cf825ec677471e72657f421bece3a)** | 1.6.0 | MIT | -| **[mimic-fn](#5cdd2e226cc15411692ae7c6c44c95adde675477de818b755be01f0e7994f8d9)** | 2.1.0 | MIT | -| **[mimic-fn](#40db999726ca69c48458bec0492bb7351025a3719caeceb9ade4a08098817a0c)** | 4.0.0 | MIT | -| **[mimic-response](#0c868fd85c36cbce69ede58ff4693b89140b6a529a6794843f4985674d63642e)** | 2.1.0 | MIT | -| **[minimist](#837db6b00930af97755b724568aecf8b139361dc2148c7db77673ba6ae44a44d)** | 1.2.6 | MIT | -| **[mkdirp-classic](#e79cc875152b50c2eb57a97163d99f0155bf4e4af7ba4a7e01c12a17a4a3305c)** | 0.5.3 | MIT | -| **[modify-filename](#7153be07939379ccf0072006c519fba2bdf5ab79ca8bb59bc5273f87a7bacbf6)** | 1.1.0 | MIT | -| **[moment](#94975b5423311209f3beed9c2c6bb6157f622312a3f8563d507b52e804bf6285)** | 2.29.4 | MIT | -| **[mongodb-build-info](#f0a98c22ae0766702726f79e058ac6dc4e4bead8557b67b816f40bd13fb54170)** | 1.7.2 | Apache-2.0 | -| **[mongodb-client-encryption](#01c104ff07b0715f77217b6b7adfc9a0056f35ffd976182ffbf409f69b3a0df3)** | 6.1.0 | Apache-2.0 | -| **[mongodb-cloud-info](#a784f3b401cf51746f49964e044db933529b3e3791e557702715730f5a3f1e46)** | 2.1.2 | Apache-2.0 | -| **[mongodb-connection-string-url](#2e1146256a89ebd24e3398881e03807fe363d58444e6b7952ea50bd6108707bc)** | 3.0.1 | Apache-2.0 | -| **[mongodb-log-writer](#c4945018f8490fc8e56e1414e262fcf1b802800e05cd15f2bd6b7a9d0b94af85)** | 1.4.2 | Apache-2.0 | -| **[mongodb-ns](#68260f4d06e4d16a28d4139e391264d220e891ac6f0fb844b925a0cc37792aff)** | 2.4.2 | MIT | -| **[mongodb-query-parser](#871cbd55e42c522f9f44ee40a9a19b3edde2f543528582d5ac5f4bc60adeb336)** | 4.2.3 | Apache-2.0 | -| **[mongodb-redact](#f0766ec5011e3865ffb152537e7a24c89591d1ea5ee46777ca8f3e857a3e57d6)** | 1.1.3 | Apache-2.0 | -| **[mongodb-schema](#652dcef4a8a39849996a5f858fe48048e806fda4ce1aa0f757ada56bef011145)** | 12.2.0 | Apache-2.0 | -| **[mongodb](#6fec8e7c940738c785acba4b627a32d91425768e886601b770ad3b664670653e)** | 6.8.0 | Apache-2.0 | -| **[ms](#484b814b85d5028e34246147c8fc901d33570202bd7cdc3703c0ed1078eba0aa)** | 2.0.0 | MIT | -| **[ms](#0a987b2f79ff37005e452a5afa7dacd3042061a7077054d2ba9cabacd88506d2)** | 2.1.2 | MIT | -| **[ms](#2083576c5af8054927640b4788059806d07e250a26066c9ccb2d928394fb9226)** | 2.1.3 | MIT | -| **[napi-build-utils](#26912b5ff7632f262d64273f99cd1a869376c5c378960e24501585e35b31054a)** | 1.0.2 | MIT | -| **[negotiator](#e3856213d8f0a7d28cd4166e53ec7e2c019cb7becf4a8535097bac28d21e8579)** | 0.6.3 | MIT | -| **[netmask](#2bd5b8ff7fab9adace6c38d3fd32e7328484939fdd07836635b0155d0afc35b2)** | 2.0.2 | MIT | -| **[node-abi](#3270c7aabb829975e51696cea9bb249f08dc5b70d87ad1d40937f0a735b773c4)** | 3.65.0 | MIT | -| **[node-addon-api](#af9f7588524ca4e68f4efe7b24aea46d9c8004263b1d7cf3b558f86d87a163e8)** | 4.3.0 | MIT | -| **[node-domexception](#3c25065fd2bc1b6b56856e30ac5b8f34ddae33ca87b225854f8d855b0ccabfbe)** | 1.0.0 | MIT | -| **[node-fetch](#364527ef1b51cc6ac34872b931049c9e25b5014f9b40e3898c84e1a830e21720)** | 2.6.7 | MIT | -| **[node-fetch](#23d7d5a419e9a25e6384dee4aa24f7162544418f0cdc2d92e94e2cf924507b8c)** | 2.7.0 | MIT | -| **[node-fetch](#22edb8ba3fe3457e8c1a02e497e6a8cb54e89775224f0c7680ea43772b5c1638)** | 3.3.2 | MIT | -| **[npm-run-path](#b21248abecb88119fcf2885e5471cd9235f40d356cba189a348def4b8a6046bd)** | 4.0.1 | MIT | -| **[npm-run-path](#17c35569bae8ecfc9314730bb16dde145a190d68c6fe6a29c78873c9c5520ed1)** | 5.3.0 | MIT | -| **[numeral](#b3c90be596160f7dccbd1ff771ddbffb9a1b19d0bb9456553d8822903386573e)** | 1.5.6 | MIT | -| **[numeral](#d274a180ad09fc1ae9325f01bf5dc1296caf553888d952fab7ebf524dfdc56a1)** | 2.0.6 | MIT | -| **[object-assign](#598e372231bb5bef26b7d61105282eb20e14ade430143052d064d2d406769b95)** | 4.1.1 | MIT | -| **[object-hash](#848d5d28b20a6a7f2e701e9b2b7e65b5518313269696dacf4ac69fa8bc5b571a)** | 2.2.0 | MIT | -| **[object-inspect](#b9d7050d521cb65fdc84f2212e39302b36e9bb0f7191e0be89ac3e4ea488b1fb)** | 1.13.1 | MIT | -| **[object-is](#d597163d660664be4b28b1f40171738a17ec18b028d62ee1cf2e264e30924d84)** | 1.1.5 | MIT | -| **[object-keys](#e9aac5890f5f1c6f8d56c08ce91012ba530b586511a89d1fa99ae2d7c39d8b2e)** | 1.1.1 | MIT | -| **[object.assign](#498d41061b8e766f5d53d287d41307891ca86b3d63eee61a1c4131f5dc5f185c)** | 4.1.5 | MIT | -| **[oidc-token-hash](#3beaf628821d1b6d7ec7b67b3c9ceea1d37727ea52253383f31d3e73141cf29f)** | 5.0.3 | MIT | -| **[on-finished](#d3c391e10faad1d82190a06f5be315d94a9194cff75aa389940432ef15cf45de)** | 2.4.1 | MIT | -| **[once](#d0d1303998dfae04e4f898f477380aac35568f4d6679f4ea913c2441cf9ebb0b)** | 1.4.0 | ISC | -| **[onetime](#5a35b0b7c7570756939e95a639f311d4676b87c61cd74cd94d6609334c2ee1a2)** | 5.1.2 | MIT | -| **[onetime](#8d8b66854ab397ef1815b6af9e17698a8e5f83b256a1202b74104ee5609c5d99)** | 6.0.0 | MIT | -| **[open](#6c66626cf6e18f59c76bef1f4ed0c2b541e68592d65325d4fb83a659e3078981)** | 9.1.0 | MIT | -| **[openid-client](#03ada662ee390db4436dc7bd38857b43e2a0407275d27e422ff915ec7738b035)** | 5.6.5 | MIT | -| **[os-dns-native](#ed8fb030877b8f0494551fd7f55288d885b2ddcece35dd7134434ad5c4c704de)** | 1.2.1 | MIT | -| **[pac-proxy-agent](#0c860d23706396c87370b49399bd004f0a3552427d65a829b16274a966c51304)** | 7.0.2 | MIT | -| **[pac-resolver](#7935fe0839f6e2b7c51abcc08705a6096eff5670dc2bdc3819fd096b8d114d8b)** | 7.0.1 | MIT | -| **[papaparse](#a94a34c1e6cf2f678ffd64381c6d54f9ad5f6b3c65281a0b077dd5b92f028684)** | 5.3.2 | MIT | -| **[parseurl](#c3fdd1b6fb725cb30e8fed82cf929953b46129d347d8404a4a51b633389fbae8)** | 1.3.3 | MIT | -| **[path-exists](#3ae48f237e1a4424a3b1b60cfc95f35ca29141cd956f8bda85e763d7969e12c7)** | 4.0.0 | MIT | -| **[path-key](#e1a2a032096ace66b422351e00b11b0229e42e4b49c2146f439f8fe442218451)** | 3.1.1 | MIT | -| **[path-key](#8e0734b8abb76579df2174822606e692914e985fc58363a78e6ad4b2a4a5831f)** | 4.0.0 | MIT | -| **[path-to-regexp](#96d230365f414cce8d80ceb9d99d855685dfa922f931b49ea01952a1efe64266)** | 0.1.10 | MIT | -| **[picocolors](#f964752f1f8cfd947506fd51ce1c148469ecf3b6f531d826511b720670e556f1)** | 1.1.0 | ISC | -| **[polished](#a7a5d1244e48a082dbc54de31b5309caf950b12aa6bd9fefbba39e362e705f06)** | 4.2.2 | MIT | -| **[possible-typed-array-names](#5ba4283f5512abd5d57e79c0a75acb3818d98d169df979afb01ad6867cefd312)** | 1.0.0 | MIT | -| **[prebuild-install](#93d13a9b3a51a6a802fcd35aa031d3ae7369aa6fd47d3a89f28a6d31ea3c9dc5)** | 7.1.2 | MIT | -| **[prettier](#2e1e2077936be4bb5f075fd4d279f9ece641322ccd12a8116edb3f99f08f7411)** | 2.7.1 | MIT | -| **[pretty-format](#0c53580441217a6c2b9c885eb1ec35adde420c312ccf9f408c856dc3845cce8b)** | 27.5.1 | MIT | -| **[prop-types](#e4dd0bb5b6f98fbf52f0ad7062b8514aadc56a47a692bf6d8aab369786b6039f)** | 15.8.1 | MIT | -| **[proxy-addr](#7b128e3d41d39ecb1a405a490a53ae86f70ef45f01079333ed3ca49939f5fba8)** | 2.0.7 | MIT | -| **[pump](#147f1bd3a6380306e696f0574feda0b1490121a1d12e4500e91ffb6e888ffa3a)** | 3.0.0 | MIT | -| **[punycode](#3fe331f5536b72438f24d644ea9804b5e462f791a4c72a6d94f37193af1086aa)** | 2.3.1 | MIT | -| **[pupa](#b05b7cc4c1bc01acd063dc811b9b1b0a1a4b3e0f17be77deaeaabade7dfeb095)** | 2.1.1 | MIT | -| **[qs](#2240c454f0418501921d6b094c1f6477603b0c893c4d7a8ed2bdfcab9e75c069)** | 6.13.0 | BSD-3-Clause | -| **[range-parser](#e973789240fef3c00f359e6acc8570dd769b70ee8b29fdcb679897fa2d696bff)** | 1.2.1 | MIT | -| **[raw-body](#fc0f8cf1771db07ef15ce7dafcac6db8e351607bb82caf0e5838f1769a796266)** | 2.5.2 | MIT | -| **[rc](#0dd705bd5862b4c60ed88e6b4a6f5ece23c627c97f6928233d32aefdd463c3f7)** | 1.2.8 | (BSD-2-Clause OR MIT OR Apache-2.0) | -| **[re-resizable](#ba463da4fb82093fffa407b9083835a23c9d44c84cd988f2536312f7e78f863d)** | 6.9.0 | MIT | -| **[react-dom](#6f313dd207f71f3d56121132c87ef27cba1beab9e5e349ac81c740cee6fd0774)** | 17.0.2 | MIT | -| **[react-hotkeys-hook](#6ce07fe9653ad69a76354e2d71137c70ab9a838377fe5a8f8e45c559cfbf41cc)** | 4.3.7 | MIT | -| **[react-intersection-observer](#84f998bdb33a5f9330d81ef063f7ad0897f1b004661fbf131725697b847a5b6a)** | 8.34.0 | MIT | -| **[react-is](#7183835e2bcaca6754fe10854fc3b65407d2cb9aa3b68b1c06ccaafb7b9be28a)** | 16.13.1 | MIT | -| **[react-is](#5ec174b50bba38f48ee8da3d8a5b9463a9e77c3f01d74a132ecc30a2be099c4b)** | 17.0.2 | MIT | -| **[react-is](#5746232ad830b635a6581ee7d3b826ee932c6877087c98cb46b94101eb5ce40b)** | 18.2.0 | MIT | -| **[react-keyed-flatten-children](#9c7ffa4be6351eaf0a19b808fc4048eb28455824378f089da7a566cdeb0bdd84)** | 1.3.0 | MIT | -| **[react-leaflet-draw](#d80b4b765d856cdefe411a073d3b3dde06100128005f1381b4d26d6cf53134c7)** | 0.19.0 | ISC | -| **[react-leaflet](#a5fc1f0504a89a932a12c5a183b75a748207329f20af6078f926e182d55aee8d)** | 2.4.0 | MIT | -| **[react-redux](#156f5c2e2cbbda376faae24e78cc75de697170101ff7e9d2955c0f891cffd6a8)** | 8.1.3 | MIT | -| **[react-transition-group](#f8a526737bf3e6cc7928ce77b3fa8e6a880da418fd9363a0dae1122922f92b72)** | 4.4.5 | BSD-3-Clause | -| **[react-virtual](#b9245d8b8a0d57eba1876cc38950eccd82b4db023c50026f4a70a6c66e16cb5c)** | 2.10.4 | MIT | -| **[react-virtualized-auto-sizer](#6c2551e5d023f4aa01efbb54d394f7cebd0627e78ca3b24a00a4364e3e7a3129)** | 1.0.24 | MIT | -| **[react-window](#1241166cdcf24220683cbe7d1460897436f3982e7795fc504323ba66f06e53f9)** | 1.8.10 | MIT | -| **[react](#2f31f78715f56093f4bb569e2e2ea931c518db6f4ee690482a0a2a1cd4d18b4c)** | 17.0.2 | MIT | -| **[readable-stream](#75bd2243ec5ecc92b8d7e9a2e9a1aa142f20f6a5aad6dc0d923cdab997766174)** | 3.6.0 | MIT | -| **[redux-thunk](#7eabcce4f7274e0c876829cb939804a9704770a9a60419d514c11e3e97c01623)** | 2.4.2 | MIT | -| **[redux](#98b5d53f97fab4eea98fb5f423cad33400855b69ac662f1fdf55f0fb9e33f2ab)** | 4.2.1 | MIT | -| **[reflux-core](#7af6ea33b0ed18717d672b44743ae53dcef843ae464690bb9e10eb1df048e9ea)** | 0.3.0 | BSD-3-Clause | -| **[reflux](#f892193924d403a4dd1a73a5861913838f1a9d704055d9d098eb0d40f752e053)** | 0.4.1 | BSD-3-Clause | -| **[regexp.prototype.flags](#51cb6c20041a1fef833bb3f46483fcbd99a186e3767ec2ad32f7b3db74d296f2)** | 1.5.2 | MIT | -| **[reservoir](#84f8998f94ad5bd85b50458378edf3815fff553cdcabf8ced3db418f05e85ff6)** | 0.1.2 | MIT | -| **[resolve-mongodb-srv](#2ae8b0c9dbe8e8c900bfaf5567bcf2af917e62fb0a24121b4d667dffbeaffa99)** | 1.1.5 | Apache-2.0 | -| **[run-applescript](#f4d3cc18b69c2dec9e4f1d19a1cb794c8fa2e548e530f4033dc6b0caf803bebc)** | 5.0.0 | MIT | -| **[safe-buffer](#952cf236ee56e7de5ea7e772caf3e256866f9dbdffc492539c48cd8c15ac9674)** | 5.2.1 | MIT | -| **[safer-buffer](#2fb14d3728e4ebf313be4634b146bd90cd3ad3559157baec03b64eec0878a0ba)** | 2.1.2 | MIT | -| **[scheduler](#950b09ca6f4766ded0bdde81e2697b5e184ed63925d74a8f512c978cab5bda6f)** | 0.20.2 | MIT | -| **[select](#12d30053a00882385c42a50004536696d477e8e694b047d6d39513947e5a39e9)** | 1.1.2 | MIT | -| **[semver](#8b8f657069cf84b7ca932ab17eb24a0a55a8053ccd2a36c03185dadab64db3f8)** | 6.3.1 | ISC | -| **[semver](#2c8b8c47dd7d24873eda4559b25851062c21d7584a396735b363f9bab626dd7b)** | 7.6.3 | ISC | -| **[send](#412cd4c4a8e6aaa433d5e67852c05a1e307fd4eb9dc362bdc30fa099313c24cb)** | 0.19.0 | MIT | -| **[serve-static](#9a2d04a479ef9c6e990f1fb614478dea4368c040af707296400ff7f9bb68d30b)** | 1.16.2 | MIT | -| **[set-function-length](#88ee3e1c8e8c22ac3653a290c1cdc68787d064f17a743020a070b31290bb4eb9)** | 1.2.2 | MIT | -| **[set-function-name](#f9d4c9272c71403774a64f46fc69cefd1039845f2ee1d252fb62cbd97f9e7fb4)** | 2.0.2 | MIT | -| **[setprototypeof](#7787a1d3bc2f39b65d75407d5d8d02d8ddb70f1cdb74897f15115e995fb64a56)** | 1.2.0 | ISC | -| **[shebang-command](#a9cba97b71b818fb0a4978f8b14875ae118f292a19ffa97c8b2d848f9a897d89)** | 2.0.0 | MIT | -| **[shebang-regex](#849fb37298f1c4dcdeb6065edc4242918c7533bcfda5c67747e6ce4620c587bb)** | 3.0.0 | MIT | -| **[side-channel](#b87368b55d9ba1ff553ed48946c9eb64686bc10b48bc0f5859c669427508a6b5)** | 1.0.6 | MIT | -| **[signal-exit](#5ad551060d44370794e770309e198719e94f939e46a3ea537b776c9c4fdad9e4)** | 3.0.7 | ISC | -| **[signal-exit](#09ce5ebc7ff1552bf0ed979e2479321c6a9a4b7a06d90ece7a70fa360007eff4)** | 4.1.0 | ISC | -| **[simple-concat](#7e08f893385d0a6d7059029da3885e8346ad01eb58d6e4561612d2fb653c15ec)** | 1.0.1 | MIT | -| **[simple-get](#c2c12990b6319daff653bdf953cadfa368185f0edc671124fb1028f6979df829)** | 4.0.1 | MIT | -| **[smart-buffer](#bc8fbee089eb9cddf673c4c9dbc15edd13839063c27e2814009b6a0448065875)** | 4.2.0 | MIT | -| **[socks-proxy-agent](#e192db394689e9e76e333aebe6a6958554ba85f63c4b2959bd6732f76ce1ed0d)** | 8.0.4 | MIT | -| **[socks](#0248dada9537f6f43ee753036902a8c3d06323744469309fdc207cd0b14f70e9)** | 2.8.3 | MIT | -| **[sort-keys-length](#af13db706339ff49fba434ce0fbda036b99f3dc30e66a530b64374afd5a1eec1)** | 1.0.1 | MIT | -| **[sort-keys](#714faeb378f5373d2aa5f80825d02c9f7ab2cacb699db02c84e675d193a6bfa8)** | 1.1.2 | MIT | -| **[source-code-pro](#0496fbae8c99eac4b7354b7eb0a394806e547de30fd2acbdf14f2ac77079e643)** | 2.38.0 | OFL-1.1 | -| **[source-map](#55fb2b4a8e114a26cce0c971365f26175ae0d834849c5edebbdb5adafaa08787)** | 0.6.1 | BSD-3-Clause | -| **[sparse-bitfield](#0cbcf2cac3ff859d288ae5ffc2c793bbd2430b120f5930bd09b6dba7259086d7)** | 3.0.3 | MIT | -| **[sprintf-js](#d8b6ff1ba6436283de681a756ad453428005e61986c5113a3a8088ced2b36eb7)** | 1.1.3 | BSD-3-Clause | -| **[ssh2](#caa88a7f6fedc946b33fe4cdcd84104598cca8b841b593d1ffb031578cd3d8c9)** | 1.15.0 | MIT | -| **[statuses](#a347e5a1994ef74647a2af80f58030a572f71173d5c1dfc0ce6eb55f4005b17d)** | 2.0.1 | MIT | -| **[stop-iteration-iterator](#b4a114e720966d8d69055a584424fa2465b603774072e8b7e35619282ff67afb)** | 1.0.0 | MIT | -| **[stream-chain](#dbe4594ad347bd2850f84bc41ea7ed1f0bebb82c38b9e7e0f6820d1c071e534c)** | 2.2.5 | BSD-3-Clause | -| **[stream-json](#ff32de703b38cb80287bf73b31ddc47fb97277eadcfb231017f31a06824e41e0)** | 1.7.5 | BSD-3-Clause | -| **[string_decoder](#b7999058a36380603fb66d82d8b9e36ddb8f0e5b81cd3f3233f31eac12b793fe)** | 1.3.0 | MIT | -| **[strip-bom-buf](#4f426c3eaeb7d288c70eb64ad2e2617952c0d8da8cdedf4f8cb29ba65bb3b65e)** | 2.0.0 | MIT | -| **[strip-bom-stream](#f7e90a4335dbb561f2b002d1b73cdb9d891c023959465fee58c1636e0216af2e)** | 4.0.0 | MIT | -| **[strip-final-newline](#a6dd80beeaaa538a553eca27a2bc8f9b22f02a61191d2f6981b02a2c1c12bf19)** | 2.0.0 | MIT | -| **[strip-final-newline](#0e84cc036056cb7e0b11c5f70c4d239d4adf3ca9253b0e215abd7e78639b1c61)** | 3.0.0 | MIT | -| **[strip-json-comments](#7e22a64e44ef0efd054f76d551df5305ac48eb5807079c025c8bf63c0a728c33)** | 3.1.1 | MIT | -| **[strnum](#84f6b71bdd647bcb9588183f13dc0b7a0c5b0a3103b2fc7e8e95012c0d6c631d)** | 1.0.5 | MIT | -| **[style-mod](#65cbf3eb373755d5dd9f5c58cf62d48dd4a33349e67d644af61d8d5438dbc1b5)** | 4.1.2 | MIT | -| **[stylis](#131ca0470639719771dc1f233c9962655afffb6d27143e894c43e967517107cf)** | 4.2.0 | MIT | -| **[supports-color](#113926f6cb42a3d41d1c11fb1209faf789d78f51fb458da90c61e5c1a2307a8e)** | 5.5.0 | MIT | -| **[supports-color](#b97a30572cac0a03b8cf442bc01621a041d5714550984f25cb71fac2587edbd6)** | 7.2.0 | MIT | -| **[system-ca](#f7020e15c3acda122c176b63132660540ac26981c7037d110fc2896e3551ab19)** | 2.0.1 | Apache-2.0 | -| **[tabbable](#0ebe87140b76c7f2135bbd5099e7973a5ec2b5d8fe2bec8e272608cf0b3f396a)** | 5.3.3 | MIT | -| **[tar-fs](#8e5bae5073977abd61cb5549abc7581354454558aedf4a4002b91e6fd7b9830d)** | 2.1.1 | MIT | -| **[tar-stream](#5605712784129d10d2559e12f8031603f0cf4e5ff206f09356e4bf1dc5ab1168)** | 1.6.2 | MIT | -| **[text-table](#408475075eb207dd5ae8858365d5b39a25bebe2b757601c43164cec36f315b23)** | 0.2.0 | MIT | -| **[tiny-emitter](#43eb8db7345f328bbd03f484accbed64a06fa649df3ab59db7492e65d9361def)** | 2.1.0 | MIT | -| **[titleize](#36b49586e2b5f60bee2c757b90d19871a99822f92e2b2e19202ef9efb9595766)** | 3.0.0 | MIT | -| **[to-buffer](#5934a0e0ea92470fb3bbe2a1d6869494c53208b1b06aaee8ffd31e4e040e4e85)** | 1.1.1 | MIT | -| **[to-fast-properties](#79afe8c8f3cc0bb1187c6ffaf6105b49888137e917978e870d67727353aba954)** | 2.0.0 | MIT | -| **[toidentifier](#2067d1f99d35f28c8384d3e9762282f3c2ded0041392af855caf28ba2209bd2a)** | 1.0.1 | MIT | -| **[tr46](#a94418e116fb43931c49abb9cd596d6814a55956c3d0d11b7e225592b9977197)** | 0.0.3 | MIT | -| **[tr46](#73a239b431778fd3a06957f11cd6de530a4ba35ca946f8656f46e02228113c2b)** | 4.1.1 | MIT | -| **[tslib](#c5fc5d0adaeec50d156fc1f9a16cbca801bfb431eb78f3647a1237a0e239ae35)** | 2.6.2 | 0BSD | -| **[tslib](#bd15b467ea785206b74637cc23d2b9088ba8fa47aa3034d1217f3dea848c1d1e)** | 2.6.3 | 0BSD | -| **[tunnel-agent](#09f746d17a1777efda5a12a6072da10c6820d7f56ea8aa0af202a2c83d6ccb67)** | 0.6.0 | Apache-2.0 | -| **[tweetnacl](#496caef692284d7a5d6acd31283b785ebca47d82b2d85c9af7ea1913bb4b49a8)** | 0.14.5 | Unlicense | -| **[type-is](#12dbb9fcc3a6de5bbd595659bff8b688d45fff57a2014441e4fe6779f5eeb7e2)** | 1.6.18 | MIT | -| **[universalify](#c381098afc5e144dfbd23d044afa2bf9bcf3dcadb7eb397d379f6cfd0ed47001)** | 2.0.0 | MIT | -| **[unpipe](#3a555405bd00c7e7e52b07a5600248bdaa683db613d7c286e425511cee8ed14a)** | 1.0.0 | MIT | -| **[untildify](#511cd56aa5943fd465da93776449b0a7249438206b5c5bfc22cc6d7e55ab0029)** | 4.0.0 | MIT | -| **[unused-filename](#5c8d4d94e0c17084eac0ca8c2eefa1fdb285e6a3dc47477e54d9acf7bf08eb2a)** | 2.1.0 | MIT | -| **[use-sync-external-store](#f7d4a0ea4ee9d814fb264db8103d6ad3a831aa79bf7f3ea70bfa182f8a930f0a)** | 1.2.0 | MIT | -| **[util-deprecate](#a1bd80d6a50b36e34032c402c5204d6276747d8212b68b164a9e3f895b90c2d6)** | 1.0.2 | MIT | -| **[utils-merge](#daf17cb7acc6dd4694e84d0920d7b32dba2be0fcf114309bfce8538812e7c458)** | 1.0.1 | MIT | -| **[uuid](#8e5d6b0bb24ea0188cd3a88b1f790f104e774bb8ed04c0dac0db7cfe2911227e)** | 9.0.1 | MIT | -| **[vary](#d308bd3935a6f29310b20de016cdb7b3de3aa40a7d4c3365b96e35d2c248d74a)** | 1.1.2 | MIT | -| **[w3c-keyname](#160316b2bf7a19e2cc0418d5ef94b5a999f9092fee3023ac9b2c7d76d2934f5b)** | 2.2.6 | MIT | -| **[warning](#02c159f6bf591ba6e8523609cb610cbd897ea68c214f64dac6f21d7b4e4d3a2d)** | 4.0.3 | MIT | -| **[web-streams-polyfill](#2349028b62115a87d9af122218c79a38cd90411e2b53a91c1cff7249e16f45f0)** | 3.3.3 | MIT | -| **[web-vitals](#66d3585417e14f352ce331e44fe42a97c4d03073d014efd601538735085f84fe)** | 2.1.2 | Apache-2.0 | -| **[web-worker](#8aa3d357e4e58928a87a1cfde9f21452b05f10e194f93e5d5908bdff9b94e20a)** | 1.3.0 | Apache-2.0 | -| **[webidl-conversions](#3604b2bfa479706fe7bd8068257240d32158704a3bffae30b414963343027aa1)** | 3.0.1 | BSD-2-Clause | -| **[webidl-conversions](#cb7c681998e7ee3c598e6e37432bcf448946924eefe816636c3cb122bae46e1c)** | 7.0.0 | BSD-2-Clause | -| **[webpack](#bd55cdb69f5b1b336d12c3f00d849ccb1f2c39987c257c89027d6a790f947496)** | 5.94.0 | MIT | -| **[whatwg-url](#3a968d9d3fed498fc1edf2f65459cc89b6a2fea277b5c9b5c3f3a0b41390835a)** | 13.0.0 | MIT | -| **[whatwg-url](#cd3f81c4a0fd856ab1d9c9fc99c1d7eaf2c12c4867b218e9901e5020a1ffcd85)** | 5.0.0 | MIT | -| **[which-boxed-primitive](#b3f94b6da310368951f52909c400e19c4c2c7a282ba67374f41ab2d070bf83f2)** | 1.0.2 | MIT | -| **[which-collection](#8d30c0dc07cdaccc2163cb70ff87fa91c48abdf4963bf5603218d66dbd6ae538)** | 1.0.2 | MIT | -| **[which-typed-array](#949a7e27fa7c5423fa71694a92b2c5e0d1b7f9e43ba00aab74414d4311e82530)** | 1.1.15 | MIT | -| **[which](#5a71f2b741944bf107d6e7f067241798a6e277e42e8ca1e28c4608ccc233f8ec)** | 2.0.2 | ISC | -| **[winreg-ts](#b1df7eee15fa28ae85b9086513c8316c08a21c254e8eda11e63c6321a03ac4a7)** | 1.0.4 | BSD-2-Clause | -| **[wrappy](#13cebf193d7ada5ee347b9ae819b96f5e6da21f9b53e7f268c7703b686158595)** | 1.0.2 | ISC | -| **[write-file-atomic](#f2c3af5826c073336660baeb567e1bb4453d5b6fadafaa880c59787bfdc4408f)** | 5.0.1 | ISC | -| **[xtend](#ef439651e21b69e8811099e984a3a42de35b6d0fc30a5c230715bea4c96e4940)** | 4.0.2 | MIT | -| **[yallist](#63b110ffd18712146937e9f182800c6f2b5783e76d1659a0bd4b457789b0df07)** | 3.1.1 | ISC | -| **[yallist](#d400799c4e1f58dbbbe68b4d9c1b6e80e023f744bd7d16da491005fd8439200f)** | 4.0.0 | ISC | -| **[yargs-parser](#617a7401008b7639df8cebae61c9c009bf04ca762c652da0975da4533bf33690)** | 21.1.1 | ISC | -| **[zod](#7e37bb8a0a232b053778166963faee52e7d1a9cfca82f4501d65e94f11d1c566)** | 3.22.3 | MIT | +Package|Version|License +-------|-------|------- +**[@ampproject/remapping](#0dc8b6568eb743fd551ce2cf2f54be9d0f94b12167f7c34a997c864bcc7e128d)**|2.2.0|Apache-2.0 +**[@aws-sdk/client-cognito-identity](#d3350d9512a30a7d722a254609aaeb5048055ad7ac83e0fc718676cba82d4f0e)**|3.632.0|Apache-2.0 +**[@aws-sdk/client-sso](#122bc8ec6e0086415cbed6567ead1e85e6a80326f5609ee0221fabcf2bc3e35b)**|3.632.0|Apache-2.0 +**[@aws-sdk/client-sts](#92440c05901818918488da134d1ff538799409309918135a178f5881d1eb6dcc)**|3.632.0|Apache-2.0 +**[@aws-sdk/core](#5ef232eecbafdb891fe4d107f580fd4b94e4eb2712df79ab4b5c3c0255e9b8d0)**|3.629.0|Apache-2.0 +**[@aws-sdk/credential-provider-cognito-identity](#a0b39e721e27fe3cda471c233a5dd7105832c517c80022d149a2709ceecb4a20)**|3.632.0|Apache-2.0 +**[@aws-sdk/credential-provider-env](#f0037899766f9fb156ae52d4262089a964f044c3a331a71320443ad3664ba4e5)**|3.620.1|Apache-2.0 +**[@aws-sdk/credential-provider-http](#990097dcbfa0fafca7fe8253939d00e2237407a576c79a8b94c3fb402a40f9f4)**|3.622.0|Apache-2.0 +**[@aws-sdk/credential-provider-ini](#d0499091db530426e22820e5a86e11c1635cd6cfd6886be00a73167496589031)**|3.632.0|Apache-2.0 +**[@aws-sdk/credential-provider-node](#15a01844ec1a77911fc8af581b4cc91607f4ea537aa1b55099ddeb3933c08793)**|3.632.0|Apache-2.0 +**[@aws-sdk/credential-provider-process](#6df29928703aec90607f9c2d3a1c36071751aa24177be72f0fc88c6773b7df22)**|3.620.1|Apache-2.0 +**[@aws-sdk/credential-provider-sso](#d0a0d6042ff0dfbd6143041fd83bc1096e36ec1b9b7100726135989fe6974d7b)**|3.632.0|Apache-2.0 +**[@aws-sdk/credential-provider-web-identity](#7ca705ce1768551740ce25addeda56a029a25efb024929b6224fffed16402d87)**|3.621.0|Apache-2.0 +**[@aws-sdk/credential-providers](#89261894eb9947986c4f5e3d27470902346dad44742f42ed42ef0c3b7a443165)**|3.632.0|Apache-2.0 +**[@aws-sdk/middleware-host-header](#76f9788f0a3892655b30ff5be7eadcc24c2a4dc60675874d11e110e53cf7d770)**|3.620.0|Apache-2.0 +**[@aws-sdk/middleware-logger](#77971232a25c0db769f48f8c0b70d1272e792393db29953a47d319effbca9616)**|3.609.0|Apache-2.0 +**[@aws-sdk/middleware-recursion-detection](#a19d96e543a0b45bed652d0c84ce89e3f27c98bbcfecbdb66fe4124b14f4e25c)**|3.620.0|Apache-2.0 +**[@aws-sdk/middleware-user-agent](#a3db739171b14ee7fbc688b1442211cc99cbec5032b4e29c011f4031d6d30789)**|3.632.0|Apache-2.0 +**[@aws-sdk/region-config-resolver](#c707d161415ea2bbe26756eb111aa1fa6e20fe297f8357c2314200f1bc7b4812)**|3.614.0|Apache-2.0 +**[@aws-sdk/token-providers](#2797e884608a8f3c4d716b944c9df465acbf619c27612fecdf21e6feac32ffd4)**|3.614.0|Apache-2.0 +**[@aws-sdk/util-endpoints](#d7c10ece9c460c5fda50acd92143946e29643997740b52f22a2db086204b922b)**|3.632.0|Apache-2.0 +**[@aws-sdk/util-user-agent-node](#78337458e259597e1af9ae36c139707b9d47d298d6b660fda8ca49f7a6039933)**|3.614.0|Apache-2.0 +**[@babel/code-frame](#414cb15586d104447ca15cc1904c5779eb415e9079a4a3ca6a81ad96ba9ee4e1)**|7.24.7|MIT +**[@babel/compat-data](#b4fe3477d50389378e6666362dee06b0abe468140f77f427b952059f193a7a38)**|7.25.2|MIT +**[@babel/core](#cb1e750729bb20848944291eb3bd3ec445a032e1929fef18d6ee0a6ef3f04bcb)**|7.25.2|MIT +**[@babel/generator](#0b27790f5456040ac13e71653c95ea0152f86742fcab51983e67601681ba94e0)**|7.25.0|MIT +**[@babel/helper-annotate-as-pure](#029a306089573d76f9def44953787148e1b886d6f554efd9b97b9e7c226a0bb7)**|7.22.5|MIT +**[@babel/helper-compilation-targets](#508649a127123be64df2bf11cb716138ec0b9e821f15f99f2f4ff05ea6b4da74)**|7.25.2|MIT +**[@babel/helper-create-class-features-plugin](#ecefee5d4a0100be1536cec655793a6bf8aa75d540cd1d4ce8df49a91d25f653)**|7.22.6|MIT +**[@babel/helper-environment-visitor](#7c3618d6e312d4ee318c25b43c5e6e8b79bdd545f899341f34f4174f993f75c6)**|7.24.7|MIT +**[@babel/helper-function-name](#341cda70cf85da27703ac922b9c9e2ae965553830dec7e94a358ea0efc80e33f)**|7.24.7|MIT +**[@babel/helper-member-expression-to-functions](#a4b70dbf2d35802a3d8c37e07c5cf031678d08474ef4ab11a6d7e5e3a3143626)**|7.22.5|MIT +**[@babel/helper-module-imports](#ae249528a13dcadd4a50009d6fc23533184b7512e6029f8e75472bc05ec78328)**|7.24.7|MIT +**[@babel/helper-module-transforms](#ba2e9abfc9b01015dc06b6eecaff1e93add098ad2ee1fca4541d2a42b1e3b265)**|7.25.2|MIT +**[@babel/helper-optimise-call-expression](#4e8bad824c45ef99b87f6cf7d3f35a61a8d2d36406972594e230d12ae775ec9c)**|7.22.5|MIT +**[@babel/helper-plugin-utils](#b7852d4cf81a7e126d632935ff358c99ae9f07948155e64224a2d526a903a009)**|7.22.5|MIT +**[@babel/helper-replace-supers](#a646f77bcb685d394b994b1e972791acdfcd92c83f33daec4ff2e75c9b1ed148)**|7.22.5|MIT +**[@babel/helper-simple-access](#72de0cb66b9416da47c095a80457dee176b7e8944b20eb0aa927ee59517c69b1)**|7.24.7|MIT +**[@babel/helper-skip-transparent-expression-wrappers](#3680d72a3e5058442cc8966d761775227dc7296f71c862ab179c463d5caeb58b)**|7.22.5|MIT +**[@babel/helper-split-export-declaration](#05dfa4aa91ff28ddfbe5e3741d3535f2998fd2ff8619ee42a619458dcca04873)**|7.24.7|MIT +**[@babel/helper-string-parser](#4b5727b5007527084d63346bf4767bc3b8683c75b68fc4f3a1a3d0cee5fa235a)**|7.24.8|MIT +**[@babel/helper-validator-identifier](#cd56a60c2382cafd5f5f3432d2af1a5103bcbb862da8abd0d0db0316886a2789)**|7.24.7|MIT +**[@babel/helper-validator-option](#cfe2d04997b6c7a764f96a7383b7518f4ad73844a12cc8dc3537045dcc297fad)**|7.24.8|MIT +**[@babel/helpers](#43b0b2e5ad67e18b90f0a2f60c96c3818519ddba3de59ed0c52a594f33e7b32a)**|7.25.0|MIT +**[@babel/highlight](#ac1d96bb7961d93c529e7b46f2fcf1ee07f0cb15851aab1ac5f212b46e0f0e7d)**|7.24.7|MIT +**[@babel/parser](#4dfa90cfe90188b3d219eee843ef7f70003af7c190bbb15dd2fe74a57ab9ae16)**|7.25.6|MIT +**[@babel/plugin-syntax-jsx](#92b0c9e2acd6beca918c90ecdc4cc5973ac7c517f7dee4ef88df317effdfa44b)**|7.22.5|MIT +**[@babel/plugin-syntax-typescript](#61156a21baf5a28e3fe10ec0f30808684165b1dbb5f5122c2e2eaf69f6f4f237)**|7.21.4|MIT +**[@babel/plugin-transform-destructuring](#c97fc3729e02faa151dc6eb84560e5aba3f15e1b409cf5ed2a58431f96660368)**|7.22.5|MIT +**[@babel/plugin-transform-modules-commonjs](#9dc9700c07e14862f1c48a1e4be203ffe5e62597a92411fba7140f125638e391)**|7.22.5|MIT +**[@babel/plugin-transform-parameters](#6fac48e0505318a21b9554f11767b16b6a8bf8cb79c8bf6379fff44932cfbbfd)**|7.22.5|MIT +**[@babel/plugin-transform-shorthand-properties](#b93c2977332c87c88bb42733c298a494df63eb1ad048aab45aa7a57960fbce6e)**|7.22.5|MIT +**[@babel/plugin-transform-typescript](#01d55893e2b014a36f9855b9c88123888b53f8f2f205e7a9511e2272a8c72ce5)**|7.21.3|MIT +**[@babel/preset-typescript](#6453c0322ee9255614c50610d48452459d62e0663cb3d060b83e4c3b7dc06dc4)**|7.21.4|MIT +**[@babel/runtime](#3a0292b85c21e6020d26f99075ac094fa943f759b0df9b7c01cccf01f65efeb9)**|7.21.0|MIT +**[@babel/template](#ce7b7770e36438d8eb9e8713520aca18c79d1fd0cad068eeb5c88cede557f6a3)**|7.25.0|MIT +**[@babel/traverse](#bc1b8d30e8e37f5eade430e098b05094a0dd90264ff2c291510973e5315014af)**|7.25.2|MIT +**[@babel/types](#c6630d254fc6e684be9d283c7020e7e911bb98d9c99a3e405e4467b1e57ec9f4)**|7.25.6|MIT +**[@codemirror/autocomplete](#62d2362c07f0c11664969b60d0d7c3e081905838b8994675aaf0e6c67baf358d)**|6.17.0|MIT +**[@codemirror/commands](#e12a76404dd2d66430f2dff53a430449896e9b5c2558779497b855ba2ab9326a)**|6.1.2|MIT +**[@codemirror/lang-javascript](#d5fb6a843784efdc3ec06ae43bdf3ca13ec93a6bce802995a47cf7bddafc9628)**|6.1.2|MIT +**[@codemirror/lang-json](#8681100c5ce2bab822c877bc288cac59b84b13ff17735c301d4e1c7fa5924720)**|6.0.1|MIT +**[@codemirror/language](#5528845a8e28aec6e48cb76145e25db0921b87499dc07ab852cdeca48b9f87a6)**|6.3.2|MIT +**[@codemirror/lint](#9b9400c17e0d1474348d87ba1131d9609c3598ea4d575380f81fd746b02ec796)**|6.1.1|MIT +**[@codemirror/state](#7db8880200a14064e03a5e8dd0483aa16511fc8a0c4e09353d51816771f8b63d)**|6.4.1|MIT +**[@codemirror/view](#f6bea8a649eb633e0e66739e6d3bee4d37893904778e421d126f1e5ae250c9fb)**|6.28.4|MIT +**[@dnd-kit/accessibility](#bf712d0ed1df4df5829a9e9695c42e816564346a70cab60f6eaf9c141f8b510d)**|3.0.1|MIT +**[@dnd-kit/core](#6200777f2fce7fbea84b65146c30f3f882633a73ab4e85f62de992928bebd267)**|6.0.7|MIT +**[@dnd-kit/sortable](#059a166729dc9306b37987bfa0eaa5e59b3ffc6928155d28750993d7178ea61e)**|7.0.2|MIT +**[@dnd-kit/utilities](#5c1b45075a016b1605974d8314078eaff1a193cb964f113c2e3730cbe9603ae0)**|3.2.1|MIT +**[@electron/remote](#1b60dc9421c1b6d8b9d0e622fa6b2ef72f605502fd87ad509ea160940395ab6d)**|2.1.2|MIT +**[@emotion/cache](#c91e3f11a83bb52488c9d1aa63b8e135037dbebc6acd2717e994939f5547b521)**|11.11.0|MIT +**[@emotion/css](#0f0fe64169ea56b12722e0c13f21cf260cb4e2a9840c0b909e6871d870ba3129)**|11.11.2|MIT +**[@emotion/hash](#b42900e08e5dadbc62da63a30f552d7705f99bf37c9468aacaf4d05af9589206)**|0.9.1|MIT +**[@emotion/memoize](#1827146c6aec82dcee79fa8bc04b0315431dd1ce05aae537ea63a88ce1580dcc)**|0.8.1|MIT +**[@emotion/serialize](#55f5a8e0d65e17a53e71c997b847af76e4e1c46fc25aec5c6824a23ced36b5af)**|1.1.2|MIT +**[@emotion/sheet](#e421ab8cefe597cf44f29ad92e17c5dc018be162bdac5bc5476ebac908aa3309)**|1.2.2|MIT +**[@emotion/unitless](#6f21f2d3d65978942c063ac7244c87c1e70353c1cb50b664bb1d1887e84521ae)**|0.8.1|MIT +**[@emotion/utils](#f6b1e8b81a4cecb8428a258e22f946a728b5c73d12a8d5cb55087f672c0ce2bc)**|1.2.1|MIT +**[@emotion/weak-memoize](#e5fd44184f5735455cec841f564e21689561fdc449fed6922f4999dae125d2f1)**|0.3.1|MIT +**[@jridgewell/gen-mapping](#1e660067f4d1364dc830c372517d8ec92eddc9af7eaa6b1e698d478b286abafa)**|0.1.1|MIT +**[@jridgewell/gen-mapping](#25a8188ec7d87cf1b9baf2470bad1f75a22f246ca0fca732933d26fd488ef5d2)**|0.3.5|MIT +**[@jridgewell/resolve-uri](#f356bc3bb9c04f5fe4e387a4eea4e74125aae03bb50f846d956d7d986d200f50)**|3.1.0|MIT +**[@jridgewell/set-array](#46727c727ad43ad8e382221964d27c475629a5635986edac6ea622c772311421)**|1.2.1|MIT +**[@jridgewell/sourcemap-codec](#7b2141e6a44d38d8458ddcb163c26ab65d5782f6c25465b1954182593dd0c2c4)**|1.5.0|MIT +**[@jridgewell/trace-mapping](#73923b51cccefe7db1ead00c09a18978443a238d51a858a7a0c86868a9a4ea3f)**|0.3.25|MIT +**[@lezer/common](#4bf054ecf9e3b46b5959ff484326d62af9e9d7698317b1e8a5f11a5ebf66534a)**|1.2.1|MIT +**[@lezer/highlight](#30f07ec49dde0ce2f5c814903361f4d9c8b9fc2d8bb143d2e682e05d94a69ee6)**|1.2.0|MIT +**[@lezer/javascript](#6f8d761b240b610d6ad180799f8b36219b20649cbce80bd3cb7e669082e92ef3)**|1.3.2|MIT +**[@lezer/json](#7869bdb7c09e2ae1e28909eb504f475477cc5ed0750dc8ccee42886961975253)**|1.0.0|MIT +**[@lezer/lr](#1443872b0ea87b0af4967c9026094e634c83118fb811349742ca05bde397412b)**|1.4.1|MIT +**[@lg-tools/test-harnesses](#d9d520c615bec249e9215664d5dbb781e77d0e048253f0f1de362a8bb6212d6e)**|0.1.2|Apache-2.0 +**[@lukeed/uuid](#82700fba068def47ea9842f28d700a387f59da805f74a6ed10a5eb7eece4cdab)**|2.0.1|MIT +**[@nicolo-ribaudo/semver-v6](#0db933ddbe9acfd097ee5ee08e4afb1f4f7a64ef9712f95fef7958494c8e02cd)**|6.3.3|ISC +**[@react-aria/interactions](#638eaf69f422aa3fbe2277f9e95b6b87e64569742134491d2653e9fc05c8f58a)**|3.9.1|Apache-2.0 +**[@react-aria/ssr](#d50578768741f1468c3d5dc0da1f585e37a01e7e13b44149ff094a0a5008d023)**|3.2.0|Apache-2.0 +**[@react-aria/utils](#1c0ce36c400225256d025ea8b6f4d36b8d4491f6c81cc1e9dfcb961dbfe05bd7)**|3.13.1|Apache-2.0 +**[@react-aria/visually-hidden](#67d321e4ea237fb1e2b91f294d1f31af998f4e1ca75ea5eb4a780b2e254d3149)**|3.3.1|Apache-2.0 +**[@react-stately/utils](#0827474019c352ac03e04eb7fc65f7fe2eba2af1f14f05cc36bb74a504d893f5)**|3.5.0|Apache-2.0 +**[@segment/analytics-core](#ceca19940ddcc60d35099f1b04cb449caddc02f22a12fc4b6e9afab7b5b38e14)**|1.4.0|MIT +**[@segment/analytics-generic-utils](#9f4e5775b541ec8bbc32077308532f03fb923e2fb19fff11ac4506ee4498af13)**|1.1.0|MIT +**[@segment/analytics-node](#5e36f09aa494e968de1e219302594c1aa82f14d2287c063fe1be910021fe1879)**|1.1.4|MIT +**[@smithy/config-resolver](#50159dd3d75e4f4233935008371e16a6721f052e958a5c4b9c7283e5adaf8f33)**|3.0.5|Apache-2.0 +**[@smithy/core](#874e0237249efe933850eb42f816f882404af60f8a1512dd83c6b1c98ddc5d19)**|2.3.2|Apache-2.0 +**[@smithy/credential-provider-imds](#34611beabdec16106966ebb4943cfecdc43c8cc142e5edae6436365632b9fa58)**|3.2.0|Apache-2.0 +**[@smithy/fetch-http-handler](#786f2bfacb944bdb568e1a786606a6a2dc02f867842f7800355b908aba260891)**|3.2.4|Apache-2.0 +**[@smithy/hash-node](#391a956b0a8b9c2f7af88541150eca7a355c08e2c891e15170a0cedb66f8c843)**|3.0.3|Apache-2.0 +**[@smithy/is-array-buffer](#3e840c8e473fca775cfba50e1c0832e2a2734ae3e75418b55905122f260bd73a)**|3.0.0|Apache-2.0 +**[@smithy/middleware-content-length](#93ab06858226b2392bd8f35d1ef56a363eac4cf19200bb8ee81e842384a8e2e0)**|3.0.5|Apache-2.0 +**[@smithy/middleware-endpoint](#dce020d94d521d84610461a98027c3821bec38cc676a35284ead114484d1dc06)**|3.1.0|Apache-2.0 +**[@smithy/middleware-retry](#a4651b327b9add4d8cdd1e0d62ac38d992cf25b495beb18c90bf3d09108c1703)**|3.0.14|Apache-2.0 +**[@smithy/middleware-serde](#c3675ccf95f0205d19f112c92a7a34849fe09dcf0900877b295692cdee3b1a3b)**|3.0.3|Apache-2.0 +**[@smithy/middleware-stack](#ea63c1e355c55bbf2e59545c6fb05399ca941daeeec43540feb38e2fef98e93f)**|3.0.3|Apache-2.0 +**[@smithy/node-config-provider](#f3a27d12f80a2d60af7facfff889c045d65b56e0ec20904c87b998575b7e4605)**|3.1.4|Apache-2.0 +**[@smithy/node-http-handler](#c37a7f5194e1cae47e8a63c4bb449434097c1beba0e14d3d7f821da9202da3b1)**|3.1.4|Apache-2.0 +**[@smithy/property-provider](#1af73ed46575c11cb17328c5ab023c4689b6fd3aac8e95637d8a2430c8234d4e)**|3.1.3|Apache-2.0 +**[@smithy/protocol-http](#2ba5cccbf0f9869872f2786a1c202c5d4dfb6aa59b8e933b0d32c5bfaef8ead4)**|4.1.0|Apache-2.0 +**[@smithy/querystring-builder](#200f9715ba37573546a0ba50d6600f493501ad1fa99a1214f4652edd3f32eb6b)**|3.0.3|Apache-2.0 +**[@smithy/querystring-parser](#b2d703203bc9334d657f0cfe5e2f3ff2e029f4be60ccb9a837373f1019e30bc5)**|3.0.3|Apache-2.0 +**[@smithy/service-error-classification](#557a776a2222ef5b1930bc9c154cc80a4422644765747502c34995779de707f9)**|3.0.3|Apache-2.0 +**[@smithy/shared-ini-file-loader](#103ac7bac6c71c7909ddff4de45221eefb970300f5eee041039c35ce86e6ade0)**|3.1.4|Apache-2.0 +**[@smithy/signature-v4](#4a110aeeb62df2468523d0078962af35910d6e836463e11142bcc1be2d1f4670)**|4.1.0|Apache-2.0 +**[@smithy/smithy-client](#d41834802fb9a283a133cc778bda33ae0a4580819e10c0d12797f83ac83fa1a9)**|3.1.12|Apache-2.0 +**[@smithy/types](#66e18d9960829b34832f8284a597f0e8bc4f70149542f7533dc9f05866bb22f2)**|3.3.0|Apache-2.0 +**[@smithy/url-parser](#cc28500f1b3dbf7f305e81f81414d3f5cd733e00df104a56acdd5b82f2f19ef4)**|3.0.3|Apache-2.0 +**[@smithy/util-base64](#c13f86d5882c72328221d234d624fc36da9fe0ef6270d9ed0f7a3690616bc0b7)**|3.0.0|Apache-2.0 +**[@smithy/util-body-length-node](#a84f0a1a3fcd05391da50ee998d84695412ce141bdae38ca182c11a58eb7df38)**|3.0.0|Apache-2.0 +**[@smithy/util-buffer-from](#33c6c26bbdc76fe4bf4ca385fe9618fa7322bd346d836ee4b18e5b322e256051)**|3.0.0|Apache-2.0 +**[@smithy/util-config-provider](#c87a7523255ad59e5f721bd27137222d188dc0507d93c4cd946092736ca3b582)**|3.0.0|Apache-2.0 +**[@smithy/util-defaults-mode-node](#17e3c5fdb381e735bc7062fa7510b953fb4f9ba1cf43ec61f9252f133ae35bd2)**|3.0.14|Apache-2.0 +**[@smithy/util-endpoints](#6bbc52b3dfd8d143c95f7c48631d054e2b4c76ed74a0e449c36a12a4d3505279)**|2.0.5|Apache-2.0 +**[@smithy/util-hex-encoding](#f797009fb996f0b306124df8c5f82a938af17ab613ee4a6d1b7e2014b26fdde7)**|3.0.0|Apache-2.0 +**[@smithy/util-middleware](#cdddd643148aefb93fd2abb8f3ea636694a4d11ed1e7e6f883fa81661a3b7dd2)**|3.0.3|Apache-2.0 +**[@smithy/util-retry](#b62c349356fcac274685aa0ab184eb71cac5084041f86ba14fd6f4cd091ee49e)**|3.0.3|Apache-2.0 +**[@smithy/util-stream](#620a9e04e4791a554ce9ddd0d3fa2f264d0d5bf211b7e5d4354411bc40d58ad6)**|3.1.3|Apache-2.0 +**[@smithy/util-uri-escape](#00c89382e0278c66e8d4394996711d826b23491ef5e313b58f5681da7a07d0b6)**|3.0.0|Apache-2.0 +**[@smithy/util-utf8](#c0da7acc7121c0e4e76c58d92e290275318534cfce16949c7b916cfa0301c3b9)**|3.0.0|Apache-2.0 +**[@tanstack/react-table](#3472fd929bf691e34b02f3f62232cafe55163b92e3c51afc884780ba2413e67f)**|8.14.0|MIT +**[@tanstack/table-core](#8a18d3df915b2b72a0c8a845e2a930504b08cb745c8e0b5537de30793b71c967)**|8.14.0|MIT +**[@testing-library/dom](#15e0d0db2fcc307557d106b8a27b182d980d667836b8d8cbb6edb67a0aab34ee)**|9.3.1|MIT +**[@tootallnate/quickjs-emscripten](#dda6dbabe98503ac1af20979be1778d7a1c8f355b85377124a909567193c2cd3)**|0.23.0|MIT +**[accepts](#4c224d266c36e8e0abc4a53eb7eaa038504ee20b9b91f3e761187298a447d76b)**|1.3.8|MIT +**[acorn](#4aa96f656a11c11b0e17ee35cc26cad7c13dcf4afdff6431e6d074261b59f47d)**|8.8.2|MIT +**[ag-grid-community](#f3a0879bf804a8156c501942869cb2b3f5c2770fe5ae768eacebf9c4856a3e6e)**|20.2.0|MIT +**[ag-grid-react](#266b3ad41f62fe9d8b3388c7e3e56532f1081dfc35c8b513d746105d0f7ef2d5)**|20.2.0|MIT +**[agent-base](#f2315537cada74050b82aaa21dcd7136d001ad9b9442d6ce952030fd890ad26b)**|7.1.1|MIT +**[ampersand-class-extend](#fa70ccae815f704b05515401eb173b69fec304f2fc4d70d8cefafecb7582c960)**|1.0.2|MIT +**[ampersand-class-extend](#e80e071b7daf67567df2ed06a0912550d865bb42f740c56f3ee13e4c9ada947b)**|2.0.0|MIT +**[ampersand-collection-view](#394cdda776a31044177827f7d787e79a65210fbf3e6d2619e2f40709248eaaed)**|1.4.0|MIT +**[ampersand-collection](#7ae90475872c8fb68869e0d81db8e343084b47fd30ab156865b4b22ae3578a37)**|2.0.2|MIT +**[ampersand-dom-bindings](#4af3a9ceda31b9fc6fc90e458e9cdbb22d004fa171f69665f659b71f19bdff7d)**|3.9.2|MIT +**[ampersand-dom](#3e17c8de5bd0d155ce04e72e923d7d76d39708be70bef26a67583c28a1850bbe)**|1.5.0|MIT +**[ampersand-events](#6bbd750c35bde9ac7cd9789013efa6fffbdb3debb597dd66deaa7a818623209f)**|1.1.1|MIT +**[ampersand-events](#5aa8f29a56511aafd27953d01cb603faa9aa7e2f92847c72f879c42646e7f3fa)**|2.0.2|MIT +**[ampersand-model](#82c2458e0e00bac271d59b70c0cc51b9d8c2ed725b62f51575b4b422c7aa5ca0)**|8.0.1|MIT +**[ampersand-state](#5a76226bf9a842fcccb127eb22fdd20e0bf973f5c4d2e3330bb88a587cbcdb38)**|4.8.2|MIT +**[ampersand-state](#50886d5661d4241b348d233af087614640a657fad2d772282410875a410ba00a)**|5.0.3|MIT +**[ampersand-view](#04597f3cef8beed68d8312481c66b00b5cfb5700dcd5e7fc97a1358472ad7dd0)**|9.0.2|MIT +**[ansi-regex](#7fa0e28daa6f9c697017b06f32a9e31a57ccfb4f138a8daded68a5d002231e29)**|5.0.1|MIT +**[ansi-styles](#3d188f4ce9ad01e2061b3dafeb74005547429b09fb5b114980303db9cf34f4ee)**|3.2.1|MIT +**[ansi-styles](#22c90e10fdbeeedded470f2fb78a8094893efd4675108074eddde452da52ef87)**|4.3.0|MIT +**[ansi-styles](#a480abbdfa49ebce7f9eb04451485c433d1fa24a2ddc4380cc92fd2d34642d82)**|5.2.0|MIT +**[antlr4](#c5ad356fae2f067425b6c90b7251290842a1f2dec296bbd5afd5ccc32dcf3acc)**|4.7.2|BSD-3-Clause +**[aria-query](#ea709a066de0bac38519808675639c17ed8511255f6f1604c0262ea3914cfd2f)**|5.1.3|Apache-2.0 +**[array-buffer-byte-length](#cc88781e246dc898d7b281d0c92ffc26ae81261dc07ec4ea7d1257688f769328)**|1.0.1|MIT +**[array-flatten](#832052c97b92484a7685d432fbdac9cb8d6cd26a0de715df336780d91762bfc9)**|1.1.1|MIT +**[array-next](#2eca7126c828f7c4b047e8bc3982acc390adc906c9e1fd2ab512d7ade811a40d)**|0.0.1|MIT +**[asn1](#c03a7b8eb9b75e350660b88148698446ab536a4ea01c5f321c14036a86aac2ef)**|0.2.6|MIT +**[ast-types](#b10f17e6889028ee16e1f388d24ed535333cd289f0871c70d99c6180f498c6e0)**|0.13.4|MIT +**[available-typed-arrays](#b26a9227325a0e2f27e4793244a52200e15f63f970e71f86ead22e0f696c4a41)**|1.0.7|MIT +**[aws4](#10a86cbc2356f4c2e30ecdd2d3f40dce2dee62e2a2efa860bf539568a5d14573)**|1.11.0|MIT +**[base64-js](#cf278cb8d073b3bd22b60816c2ba78b69043aec6bcd673437b4c1db3375153d6)**|1.5.1|MIT +**[basic-ftp](#2893c6a2ae0507b9073fc65146e8902587fef3bfeb9e94a67ea34cb09124b902)**|5.0.5|MIT +**[bcrypt-pbkdf](#b6b5900f1e48a933591abc1c918fbcc9c890b3d071f607c59d704bc1c13b3937)**|1.0.2|BSD-3-Clause +**[big-integer](#eb3eaa39f6d9126fdf0b39f43641e13908ba5ab8b70af073669d23cc768335b5)**|1.6.52|Unlicense +**[bindings](#acdb65ce90d2786593049f690752613250632fd5aeaa2960152abc4f0e8f3a44)**|1.5.0|MIT +**[bl](#0e8c95ceb67a28a94b8caec6fa59d55974c80aab5dcf21bf1b17b0867f694c3c)**|4.1.0|MIT +**[body-parser](#ac02c7f4de34d468bfc87444d6d5f4691f322aa0b5dbfe2c2d0c3c42fd078dec)**|1.20.3|MIT +**[bplist-parser](#a012056f1b32796d923573a3b1ef72cf36943d95e5e2f6af0f7eeab57a21be24)**|0.2.0|MIT +**[bson](#d6c506bcc160fe77704fb17890d28ffb1d1c30b72dbce07bd5e970af63932d46)**|6.8.0|Apache-2.0 +**[buffer-alloc-unsafe](#1022220a813dd092d3ced592ac36121a00bd08a9c2020e08ad370dc29ed217f0)**|1.1.0|MIT +**[buffer-alloc](#d5cbc95b9dde4a46cd45334630efe3bc9025c904074bee845376bd60651441c0)**|1.2.0|MIT +**[buffer-fill](#c3747dfd267829ceeb564a1717d0c65d88d2b366e215f640067abefac59e3fd4)**|1.0.0|MIT +**[buffer](#409d076f160d0351818531a7c09f5e2928335b83e3f0070a7f3e2685553efa6a)**|5.7.1|MIT +**[bundle-name](#a4c3d6b89061e28c4e5d7937e09f0886c37c406b9c547105da495923b5e3999d)**|3.0.0|MIT +**[bytes](#bc4d24341f85f604856ec6dfddb2dd192b71929ff892a8549f6b5050fbebac9d)**|3.1.2|MIT +**[call-bind](#855e84602be0584cc1eb1123aa7791d7a2cc4ed81d396818fb2b13515af7d811)**|1.0.7|MIT +**[chalk](#8b8d3d6ff6233601575f891628d83bd6b34978a103d513931ae45b00f0e07585)**|2.4.2|MIT +**[chalk](#0c7c7a95e90c3fdaf99df4851bc949785311d8ea1d2d4498615f37af8fa16cf8)**|3.0.0|MIT +**[chalk](#c1619ad3bd43ce54cc7a4702c368501fd4fb4fa629077ba610f81d81bcd3f5f1)**|4.1.2|MIT +**[chownr](#3dbff1a17bbf2c33026995132ecdd14757cb3bee815f4636fe43df0f5ebdcf07)**|2.0.0|ISC +**[clean-stack](#e1e3f1193b2ac191874d758c618f1552b4679c5ef91d3d59cf46385c9da4e965)**|2.2.0|MIT +**[clipboard](#c48767bc6ed2a136b20ca8ae206e6a049e1e98a7db03120c44fbd219389ea248)**|2.0.10|MIT +**[closest](#d06b758bb0a5c68d314479321acf51e1e5ce0faa84afba2817b574067e610ef0)**|0.0.1|MIT +**[clsx](#112cfff031c752f6ab3595be6de44b2c02620da21c18ce4e2421b6c176f6ee08)**|1.1.1|MIT +**[color-convert](#a85d5170e73259d44269aafb78e1863169810a839a870124e3574457d214e28d)**|1.9.3|MIT +**[color-convert](#55c87baa2843a3df1bf7eb7ad8e5c1329afea9bef4e94386d484de20b03c119b)**|2.0.1|MIT +**[color-name](#e7c2ecd62026cf51768973c2e972505cab32d45b9368aa35105af0a68839ad37)**|1.1.3|MIT +**[color-name](#66a8b5479032c7b05b81caf8cef9ed81be452b9f3f299868af0167900a4db262)**|1.1.4|MIT +**[component-event](#32d720e7a217746311d55af1f088a9ab8ae8a3966be80250634fbff4c2c45935)**|0.1.4|MIT +**[content-disposition](#b0fd3fa1e97f5d899f52e84c86cd6d0a077cabef2388f531bf62f1f1dbdbc371)**|0.5.4|MIT +**[content-type](#65e9de41d2cef0ed95875e387bc56dae50b05d41b1a7868ed68c32834843bbab)**|1.0.5|MIT +**[convert-source-map](#46e32cfc12079a57eefebf967b5959d3657698c6a389222eb3228f49cb2fd8db)**|2.0.0|MIT +**[cookie-signature](#28f6116b52488ac66a14424869fc346f611bea6c894e7d0f7f2ca701deb8e49c)**|1.0.6|MIT +**[cookie](#6fffbd43d8f0d9a659c21e31a0935f0a1226c9990be593a9649dcd61e4db1204)**|0.7.1|MIT +**[core-js](#2d0305d15eab4ad23db10b97faf9d8e8e0d5ad30a616c5892d1edd535d8a08c8)**|3.17.3|MIT +**[cpu-features](#fa992e00865a6ed732ac63bbf64c89ee2da4ec39944684e6002a3a34b5adb65c)**|0.0.9|MIT +**[crelt](#9eba7acaba2af9d27a0a18fcf40d1f133ffa888d85321e4633e7dac58cab2db9)**|1.0.5|MIT +**[cross-fetch](#2cd4375069c47bf89a4b399cd21cd9573086803b2cb9fc56c29df5a598e051e5)**|3.1.8|MIT +**[cross-spawn](#67de3a765808182ee1018c35bc07d7a023a8d645e98cc32814dcac2fc2c427ff)**|7.0.3|MIT +**[css-loader](#36a5fb6f554559a2f884527f4dd7aa81131ccc3b1aee899472cfec2eda765798)**|4.3.0|MIT +**[d3-flextree](#d4848a862048d0f4733db2a8631b802f3b5f86f2d4a1efb77fc8b8cf9a06bf73)**|2.1.2|WTFPL +**[d3-hierarchy](#e718643319205524a77c56ca75dcbf37e3975cc5e187760d1eef01cdd94a7d74)**|1.1.9|BSD-3-Clause +**[d3-timer](#8d462b04307bb707afc68fb60de32526091852b278fc753ebd023aee6ac2faac)**|1.0.3|BSD-3-Clause +**[d3](#af9ae6fd28524ec267db82c3ebf75e02f2806418cda4ab310971631d632d3317)**|3.5.17|BSD-3-Clause +**[data-uri-to-buffer](#496bb13aeb7c14308e5c8c3e20ea81509260ff27a35abfc39b316ced3c5d6860)**|4.0.1|MIT +**[data-uri-to-buffer](#27ce7d71d79fc8fbfcac8bfd802d2dd044056224bb2a737180caf2d7e268c5ad)**|6.0.2|MIT +**[debug](#233219ced46fb5b84e28859835e97775eb9d0181f4cb85d6aa5cecb61e595947)**|2.6.9|MIT +**[debug](#f9b654e80c05af90dc288869333e452db67fbba75969b385acd60df9895a7944)**|4.3.4|MIT +**[debug](#8f6d58c520b4b6702b6fb9abb811ba1798560ac052612c0fa8dc243516825360)**|4.3.6|MIT +**[debug](#8bcd678354554043662ec7b1a1fc890da6dca2f1f245833d5400831daaeb3fc5)**|4.3.7|MIT +**[decompress-response](#71cad5eab34cc643a6a7853a43d3090ac7e8b6014c9ec55fabb8112cdbfd9fbd)**|5.0.0|MIT +**[deep-equal](#2f9e585913d3ba1d9ffaf3e79f616e66788fa687f6069a567aee25bb3045410a)**|2.2.3|MIT +**[deep-extend](#654bd7d00073c2195bca924a07d93393b2aaf5cacbb6f52a383877f6f33dbfbf)**|0.6.0|MIT +**[default-browser-id](#bc6a381b83371172dbb72cac459792e2d4d55ecb71165c082142ef085b2130ee)**|3.0.0|MIT +**[default-browser](#bf5c7331e49e4c648e57747ffd553870a7fe79fea24780366a6bc22ef346f304)**|4.0.0|MIT +**[define-data-property](#a776d26c4eb3429c37b30afeed2ddcd9be51dec6d9ea7025b0e6426a5d4f78d6)**|1.1.4|MIT +**[define-lazy-prop](#6e79b04c4690532e40a5cdfb76f3ab49de1d6778466fede1548a2e19ac8e75c4)**|3.0.0|MIT +**[define-properties](#332935df321f270f8588f3ae5e25759d1611d1610bd987eac78b79dd1ee5fe35)**|1.2.1|MIT +**[degenerator](#6cb75d096539cebca1a3054d0012d40eda0230d9c8da8455621c9d78b92f0b69)**|5.0.1|MIT +**[delegate-events](#9bd9e92528721909dffad7816bd183b65a96891a390f9420036ba9a2cc6ae291)**|1.1.1|MIT +**[delegate](#bc2c0cfa061f5865ffa83a2bf2c0f3e29dc3a2056113b1ce3e9acd33709e7606)**|3.2.0|MIT +**[depd](#7028878ddf0fd7d977703a868b5ec8df7220b2f8e7d67827e93767cbb0f21b99)**|2.0.0|MIT +**[destroy](#b0d735940e17a041d544c301b27489e5d09c3032fa11e7832f03be6541182fd6)**|1.2.0|MIT +**[detect-libc](#75227d1b1c09630ea361abee4d27101e350832bbeab9640a013c82662408b467)**|2.0.1|Apache-2.0 +**[diff-match-patch](#850176c67954354dc12126896278644187ef9d1eeeaa1d67f1b6ef48b0c23321)**|1.0.5|Apache-2.0 +**[dom-accessibility-api](#a91e4ceabaaddea1b80532694b37621980591fa28c7144a3a848e66363bfee06)**|0.5.9|MIT +**[dom-helpers](#8d51cc2c2eba67a9ee7b80bdbca48b1102ceeb0618178fae05b1a82522a80e6e)**|5.2.1|MIT +**[domify](#4360a769ee10e827f9ae503aa7ea9aeb9039932fa02ac938316df303704a7fb1)**|1.4.1|MIT +**[dset](#f51cb933ffb40a4dfeed4e6c3f7e6299cf7d05c42528b3fccc5bc7cab310914c)**|3.1.4|MIT +**[ee-first](#e2746902c758ae8a6f91ffb9618cd53717f936cb33c6323e65b6b7b24f7ebefe)**|1.1.1|MIT +**[electron-dl](#e97e034c7b93c63e7a433d75f6f1de3e0668764225ebbd61dbde8d1b55d6f3b7)**|3.5.0|MIT +**[electron-squirrel-startup](#09fb8168e8fda2e174f8d1a1c392ffd8f762c5637c788edd00d1e2486d060349)**|1.0.1|Apache-2.0 +**[electron](#b8949aa8130b5ef5da1efc84f1a58e30028db62c230eb1da216dcfd7b263f55f)**|30.5.1|MIT +**[encodeurl](#b89152db475e86531e570f87b45d8a51aa5e5d87d4cc3b960cee7b8febf1d26a)**|1.0.2|MIT +**[encodeurl](#177948a319ae0aeebbd65742c53c62b37c75ec1d021afa5a188d10a7ceae6623)**|2.0.0|MIT +**[end-of-stream](#fadc10994f5fa767d06fb25cfff35fb17a895daf3bc3477c782907668ed16563)**|1.4.4|MIT +**[ensure-error](#3b1eba5276d89414cef21a1007e85c4f1d6749bf57b300e082ab23975a41dbc9)**|3.0.1|MIT +**[es-define-property](#f19a2c06a58db5974cd4d8abbd3fa0453122ea6d3bac0de0603ca69f72dcce38)**|1.0.0|MIT +**[es-errors](#645b141d3027520f69209dba8e012e737f0ee8cad89ea8d0e26d02669d14a981)**|1.3.0|MIT +**[es-get-iterator](#d9180f3ad32c9d77645aa98ee5b6b8c233f3341b4cdfe00a1b8909505dc0f84b)**|1.1.3|MIT +**[escape-goat](#9e11fd1d88e064409c700bdd041e7a9077ebe4bb0e8ad151a6820df52ac0a9e3)**|2.1.1|MIT +**[escape-html](#5463e0a52abb42be051fba2f4ea5d49d907d2b5ed09df0983b54f88c59c8c481)**|1.0.3|MIT +**[escape-string-regexp](#a9c53481a9db89e7cf01e302086c50fcfbde360978cdd2bbe1e52a430d3fee42)**|1.0.5|MIT +**[escodegen](#1e641bd52df32bd017c4d69033099f93df452d219efd67395b78fead686277f3)**|2.1.0|BSD-2-Clause +**[esprima](#48204389e2519fd65c7341ad2eb6174fad10df3c5b019e78cbabeb2488eeca37)**|4.0.1|BSD-2-Clause +**[estraverse](#34389c51a0aa1205dfb23a6e76beb58b791316f617dc3d09788e50fe99fe5338)**|5.2.0|BSD-2-Clause +**[esutils](#cbd4dd8d594e202bb6c9713d3b097eea62783e99d79069a29ebf4ce921e129b6)**|2.0.3|BSD-2-Clause +**[etag](#dfcb09916bd8554b4d5ec250d985c02174ddfe92cb0efaa97df51b903ce0adf8)**|1.8.1|MIT +**[eventemitter3](#2845c3d706e174e51442028b5aada4c274955de08db3fc13005df746b5d6b3e6)**|1.2.0|MIT +**[eventemitter3](#344ac4a1404cf0768bccce4529868ee2081bb2d49637269457647deab073e298)**|4.0.7|MIT +**[events-mixin](#5db5de476dd54dc255312e4dcdb45fb765e1b7d0622d9b9ba86b65527de02a1c)**|1.3.0|MIT +**[execa](#4172423d3420d919e31613f23914ef325af8a3bf9ed3c6110a4053369b1cfddd)**|5.1.1|MIT +**[execa](#099ba5f976333854bfd5aa2237fd12d883c4477af76007a7963109833edef012)**|7.2.0|MIT +**[expand-template](#46d3e73ca0d4a8c14e99252386f0a5c1a4fd8b2747331373d7b4da97105c15bb)**|2.0.3|(MIT OR WTFPL) +**[express](#96b5945aa9b5ba9189eb3e9f50f6522e976d90a93dc42f2f3aa13cbcffb434a2)**|4.21.1|MIT +**[ext-list](#84470edae99e3ac5a9fdf9da513cd9a1ea7e479ca5fca13b6abecbb4c522f97c)**|2.2.2|MIT +**[ext-name](#ad9b31fcbd25bf889177f1e55d92e083fbc5ae2460904d8a81abf075c4762abd)**|5.0.0|MIT +**[facepaint](#7f6881dbbff5f35b8670063d56384fa880a5558aeaf952f1dc00997cfc7cddd4)**|1.2.1|MIT +**[fast-deep-equal](#c3b1bc7fbf8bedbac237ffb2eb2aa967bc264fc393bb6451c52a831352540d09)**|2.0.1|MIT +**[fast-memoize](#f613a3ea5150bd2496e9eb6f15357579eb3ec308a8ee91cdafce0d68ffef289b)**|2.5.2|MIT +**[fast-xml-parser](#ebbe8cacbca0e6da2c884ade309dddffc2df1cf8f3532ffda03e31aa6d3a9a3b)**|4.4.1|MIT +**[fetch-blob](#9a40c73e2482c1cc651991133722a6fedd12dc752d2858a21da24395e6fc8461)**|3.2.0|MIT +**[file-uri-to-path](#9eb41790b1cce0829afe7926edf4be80e0dd6927cd8376c00a54a8fc86f8943e)**|1.0.0|MIT +**[finalhandler](#f3d0b351ed5ad496bcb1412f1508b4cd24709821f254c8f391f6e96999f97900)**|1.3.1|MIT +**[first-chunk-stream](#c940079dd0a2457019ab184334f928cab84e316cd4016ba3581b312aa55c70f9)**|3.0.0|MIT +**[focus-trap-react](#4db13d4bfad6e874b38f8054935a1c7872c265b0a9f279e24dbe2523f3d1ce53)**|9.0.2|MIT +**[focus-trap](#c34eea0a3a357645a464ee2dd814f280c9670f39b9b85132394eb15acb70916a)**|6.9.4|MIT +**[for-each](#8b82c7ffa1300f8e1575c1d59105d6b256827ec211760d6fb6f884e4290e0abe)**|0.3.3|MIT +**[formdata-polyfill](#57e46e70e3cf628270eb56d751c6e2dd8332438324f1e4f5a3602c34ff7c85b9)**|4.0.10|MIT +**[forwarded](#2d7f4275b09b041fd821b7672ebae7c9ccad3c87f3f37b6bd91306973c02b9a3)**|0.2.0|MIT +**[fresh](#d7c677c373e09a5e9c7fe1d1ce69ca3147fe0455bf5606a26251970181d9efc4)**|0.5.2|MIT +**[fs-constants](#9961a9f7535cded379a7696ad6d002a62d4826a3a8c2ffb5624383b942c879e5)**|1.0.0|MIT +**[fs-extra](#f4bda72fc58b809b6533077d1826716805d4bec29651a76697ededec9689e0a4)**|11.2.0|MIT +**[function-bind](#83de3b394293d96fb3fea968392a9d9ffb8b461f6c173bbb76a5bc51db5bec52)**|1.1.2|MIT +**[functions-have-names](#e47bfb8af99536984c43eccff65479505a133c528be9e5e73fa43c03b31749bf)**|1.2.3|MIT +**[fuse.js](#ced18d15cdf119bfd867863e1f147fb1f4021544033d6cf956803c71a14cf53d)**|6.5.3|Apache-2.0 +**[gensync](#c49cbe8d63515db5596a717f0d65eab2f06a623b4f1dfbd512d61bbdccf1aa4c)**|1.0.0-beta.2|MIT +**[get-intrinsic](#2c1a0d16eee22217701f9243a8041f80f74f0a262eb6c10bf1b1f7f41e8599ac)**|1.2.4|MIT +**[get-stream](#8d24427d88f4f3193411b16e6dbdfc05d0edc3ce08460a1c73ec55718470e28c)**|6.0.1|MIT +**[get-uri](#4ae602658ce541126b57c19a2c8c47ed82d62e55c642d49f59f14e841ddc1db6)**|6.0.3|MIT +**[github-from-package](#8cba969ea116f44491f4fbb8b391c0ab40408fc2e5380f81bc8e8e42b55fff8b)**|0.0.0|MIT +**[globals](#749052b146da20b19c298de835e7cacd7f6d1f0a87a8422e538ccdfeaa69b0a5)**|11.12.0|MIT +**[good-listener](#0700018cbdc383f6ad6d421484a062b2e19ae4da91ffeecbccf3886e5a38afc6)**|1.2.2|MIT +**[gopd](#e51829c607e5861ddbe69decfaab45dbffb62e23d40af7d1f746c5bce8d05859)**|1.0.1|MIT +**[graceful-fs](#c0b8c47fbef7d28839a82ca95e6743793680005077b011462d5c0a6d1ca1b39d)**|4.2.11|ISC +**[has-flag](#e2f50bddacaae4f231bda078470fd90f19fd780e9c2bc721710a09bcdd536d1a)**|3.0.0|MIT +**[has-flag](#7ec819116728d891777ebd4140bef063f473b9ae26d46e91f5ca78834c872abf)**|4.0.0|MIT +**[has-property-descriptors](#4616611d5db8c73d2811bc79dd6cbde0b69f1cc891c1f997448bc79546ba9913)**|1.0.2|MIT +**[has-proto](#7a8e708aab5b7c789098be88699f7f374a9b3a2f2737537a66d391147377b362)**|1.0.3|MIT +**[has-symbols](#26dae1ac20c49dbfafbfca8c84abb75e056b0213a6ff12412dd23dd752e1a424)**|1.0.3|MIT +**[has-tostringtag](#e39d802569f1249ba08678c5fb24fc1b87ee4c92cc0f6eaa259f5b54038f2e13)**|1.0.2|MIT +**[hasown](#ace41f4c3d63ecdc85c94d28b43fc006fc67f35c24ecaa112b631dbcb5c0b39d)**|2.0.2|MIT +**[heap-js](#02ff1972404d29f951641af2b6cf6b371521d70f6daaf4196dcc45e6b5dbe96d)**|2.3.0|BSD-3-Clause +**[highlight.js](#2c60adc5db39462d0c2ff2176f71b4694ffe5060c53b1aa4f6f670e269ec1905)**|11.5.1|BSD-3-Clause +**[highlightjs-graphql](#11efa7dc664403503100672cb251f0bac920e5f8ac3847419583e9318faf451d)**|1.0.2|MIT +**[hoist-non-react-statics](#48f3f00d384ea079099b9b701c304b7e276313a616f8ad0084f41ea563f876af)**|3.3.2|BSD-3-Clause +**[http-errors](#63ffbc6de129d4a36e73df25da1f31ee2a7da3b1060e1b5b3c2b5cad89ca04c7)**|2.0.0|MIT +**[http-proxy-agent](#bd2b92f8eb0b68f6d255c316d3cd8c9aff9984e8bcb584d47613c422de726405)**|7.0.2|MIT +**[https-proxy-agent](#8a149a0a84183adc7ec4c2ca491a2aced0803a8c5fdae6e99879bcb4720837e1)**|7.0.5|MIT +**[human-signals](#49d0a41c5a505634282f30fd5bf8876d5c9fd885fc242bcf16c71d3b4c4e2da5)**|2.1.0|Apache-2.0 +**[human-signals](#62680fd7715b22b948ad9771bc3f0de13d753f68f6478afdda970d4393faa754)**|4.3.1|Apache-2.0 +**[iconv-lite](#7d9ca5eb7c6d1a6f1b3b2db04e94ca19cc04caa10d923fca7d7942d47aa505fe)**|0.4.24|MIT +**[ieee754](#926bd89d8cb0e458a159fe96007510a5c9d75add2ea3e46185c68854f977a887)**|1.2.1|BSD-3-Clause +**[imurmurhash](#d1af6342e06cf4463a1e70d43bb8fd673f060cc7c236f7fe024631d6714c81c8)**|0.1.4|MIT +**[inherits](#3eafa9bfb872baf192e837ab771da2e95e983ee682371a2b1c579e518e96f7b4)**|2.0.4|ISC +**[ini](#2269ab4bd2e1fa90571f520780ab5499f6d49da3b7daee9b9dfdad9e93c33a18)**|1.3.8|ISC +**[internal-slot](#1ecccc52c5daf9836e78ebc03604e73050b23a095bc4474240968ba1b9cd8892)**|1.0.7|MIT +**[interruptor](#e8a35d2ce64b947fb7a1aba891bc1e4eb166be57a59249cda1fcc689e767b6bc)**|1.0.2|Apache-2.0 +**[ip-address](#8de6e89459554be8a933663b25ae1d1ffee71458028fa8cbe5d68b349438a8c8)**|9.0.5|MIT +**[ipaddr.js](#38a5a1606dbc89a9c65a28d1e9ebe3c8d323e107a77c495a56dbf522211676d2)**|1.9.1|MIT +**[ipaddr.js](#d8a1c47a5dc5581d8d9e84268efa779a5140196540c2a4425e8317c1eeb93fb7)**|2.1.0|MIT +**[ipv6-normalize](#7a4346dbf206011966449898fcd37178a9be89acf6dff120b676d4c4d0dec203)**|1.0.1|MIT +**[is-arguments](#4af472b071742337deb4d56d6c4a507fd58990e8922613def80a84ba532a2b6d)**|1.1.1|MIT +**[is-array-buffer](#442760df883a3fb368f6c5666080a8c4e07d95f5f69fc92654bed5bd4be7f814)**|3.0.4|MIT +**[is-bigint](#76328e128016cee0810bc1fd650e8f63f1ad3a062d2e0c555515448ffd3f13cd)**|1.0.2|MIT +**[is-boolean-object](#db76784fdb608b8a1760612e770f909cb121ee1d4f6067a33c25443f06b9c998)**|1.1.1|MIT +**[is-callable](#8cf8f70dfb44d8f426d81a03a0f5a1e4be28081368aa69089c22ac2571dcac14)**|1.2.7|MIT +**[is-date-object](#4e4be4dc1852d5d512c7afa3107dcff477e27efa4ac81bda7a72422f55fc5841)**|1.0.5|MIT +**[is-docker](#893885e21608c60de02539fa3bd5a98f7068127aa5fab86a215bfec41a3119a4)**|2.2.1|MIT +**[is-docker](#b21de9a8d47c7c165b912be5c7a36eae3939076531e05733aa2ac7f1099dc46d)**|3.0.0|MIT +**[is-electron-renderer](#5f979579f0e64b4ba63a2cf1d32f11e274d285511e84ee596bddc57424d5299c)**|2.0.1|MIT +**[is-inside-container](#3f45825f7cda0ec2231b94ee915a0dc76a31eb0f97746c44510d9b05d80c1a97)**|1.0.0|MIT +**[is-map](#a9d75aec4f0b5614e4286c133a5fb6390141bd79d8b5bff8f3f7815869d04f8e)**|2.0.3|MIT +**[is-number-object](#98d946a111ed40a337dcf7f4aa4824b69cfe20d4b3b230710bcd5f9c803c9348)**|1.0.5|MIT +**[is-plain-obj](#6aa44f19e7afb6047589b7ad4e4ee3d44264e44f4a4ac5057efb8e3000820525)**|1.1.0|MIT +**[is-regex](#b98aa247d6a1b7f75692f6acb485fc213de3ca0cd8ecdd6bab7f96393e255d07)**|1.1.4|MIT +**[is-set](#af0e69272cbdbff01e5f873f16f9aa12c5c8fcbc228972be63e0b1ce16bd180a)**|2.0.3|MIT +**[is-shared-array-buffer](#6828bd9e33499632e06a110b3a3ecc06df254c4a28caf86e436a9939af9b3ed7)**|1.0.3|MIT +**[is-stream](#6a348f7c7e9ad013ef74124a87896ed11f8bafac3344e58377dcfc0944187cf6)**|2.0.0|MIT +**[is-stream](#309bd1940a381ff538d0c335564cc3e436c79307c991516433092d84e35acfc7)**|3.0.0|MIT +**[is-string](#f00a8e1cf00a8951016596ae951454a7d9944dc72a4f1b1127e7ec5879db5654)**|1.0.7|MIT +**[is-symbol](#3550f187e60fe8b94de5ebefd70dca43157d4c7a8ac847bb8d5ddfb1c59c1723)**|1.0.4|MIT +**[is-utf8](#df5522c387e62effc17916c612bf340d6543c4bccca99fed4c1c1fae77ed4900)**|0.2.1|MIT +**[is-weakmap](#ed08152c59d2b4e2e55e4c75373f7cd102901b6de08e20dba61722d1bb7a5086)**|2.0.2|MIT +**[is-weakset](#5538f4c86728250aa4d278637d76d6fff7d7a2cf1ff7433f842cc4045c95ec6e)**|2.0.3|MIT +**[is-wsl](#133bdb52dad1bbd87bcda9564e6df13fe7c51ae7d67575fea63cf0a2072ac884)**|2.2.0|MIT +**[isarray](#55a8a963f7aba0af49a654ea316f8dc19b717b632b88145881fda3988256ef6d)**|2.0.5|MIT +**[isexe](#2f62e711a6921973ef3f9650fd3e06585fd3842e34078c8fa959481738600405)**|2.0.0|ISC +**[javascript-stringify](#e0d27d21a288d227e51243715c044b3933d9fc0fb025dc16ec79c78af35f85a7)**|2.1.0|MIT +**[jose](#7c6ba2890a65df8d382e1b102b311651675d0ed5fd5443e911c520b18e93f62f)**|4.15.5|MIT +**[js-tokens](#f4371f095c6f087cf41433031f8c612e21a4258b18cb4e847ffae73905e146d4)**|4.0.0|MIT +**[js-yaml](#c82a34a38ab0debe302cf958caa7a51b455f5fb8a32a3ce6b9b4cab3f500c60a)**|3.14.1|MIT +**[js-yaml](#b7325d630b0ab313450fcd188788f6ee374aadd75df4969a9e3c48507ef88bdf)**|4.1.0|MIT +**[jsbn](#936d5c89291f7b505f688e45ff8261d3f225f96e0e981fd0366a9efda9e0e7f2)**|1.1.0|MIT +**[jsesc](#253e8a44fc188759c5ce35330e4f20aacf1d0253d7e8d7dffd4a1f884a10ce1e)**|2.5.2|MIT +**[json5](#16281c6ea25e0cec4bc0bb8c01d1759d66992776381bf9c5af6959bec47d2f77)**|2.2.3|MIT +**[jsondiffpatch](#2cc3b990f6692cd23f883319a727b42a76a3a9d6675d1ebd8a05241eb7edc4ac)**|0.5.0|MIT +**[jsonfile](#1504ddbe5031429f6d90bb02373b4629ff5da9ef4e869d5015ff42f685817e74)**|6.1.0|MIT +**[kerberos](#e9b8ef28e3d246d5071f34b07b67580523cda7bd0d7d74dc2e422d79d30c238d)**|2.1.1|Apache-2.0 +**[key-tree-store](#63e3bcb8e06ac6b9f7c153030ce57fad6e985a0cc7f0109d3fc6073192a932f8)**|1.3.0|MIT +**[keytar](#752f1130bbd6c5dc941bdb20fb39579c1d350252a112c58f2558b7c5f536d6f7)**|7.9.0|MIT +**[leaflet-defaulticon-compatibility](#7fba582082c899d764d8e4214d2f6f06cd043b2dce51598ec24ce299f5640a6e)**|0.1.1|BSD-2-Clause +**[leaflet-draw](#d3f67d0a666ece9171dffece3f3db67430e7055b1e8b857d806555d65b720d0e)**|1.0.4|MIT +**[leaflet](#0c77955158defdd249f5abf69232ca350038122d4fc768826d9d79ce402761f4)**|1.5.1|BSD-2-Clause +**[local-links](#9d5ba7b7e3257ecb142eb0aaf6f846e1f98c95256ae9a5836a5246db26eccbee)**|1.4.1|MIT +**[lodash-es](#a591ea211f9167d2f80166d42532d3c01f7843fafac380deb0bcf693cdf6fa1d)**|4.17.21|MIT +**[lodash._arrayeach](#e705b211da95702daddcf8ca44be1e168f2c98cc4298c3c0039d7acba4b651d5)**|3.0.0|MIT +**[lodash._arraymap](#afacdd77340d24ba7aeefb1cb7a952166c5d601c0a7fe44483832dff840688d0)**|3.0.0|MIT +**[lodash._baseassign](#aacac99d5201811cd8fbae43458c75e440fcaee435b10ff4ebae397ca34fc335)**|3.2.0|MIT +**[lodash._basecallback](#560dff0d15a98e42aa42379205f5a3e8e4f9a2234c4bf1e7aae85ea6369d5eb1)**|3.3.1|MIT +**[lodash._basecopy](#b7789a88750f78ca9242497a1c4acdb472b17b3a207bb1088c1865d5fc059d45)**|3.0.1|MIT +**[lodash._basedifference](#fba9051032cf703707176db1852b2c612c58e0fe0aa275233262512fe1cc3c1e)**|3.0.3|MIT +**[lodash._baseeach](#9a24b68e28142b48a1f27163a281677591406ba38b1aa99b8fea01c1cbd2c2a4)**|3.0.4|MIT +**[lodash._basefind](#c58e88997b2cda815fe8eafeb62113412915090abb1734f1ab37c060bd186d78)**|3.0.0|MIT +**[lodash._basefindindex](#070aeaeefdc0615eb01ab55ee2611f008b4973f77542680c09d58206324d7244)**|3.6.0|MIT +**[lodash._baseflatten](#ef8e3266ef37ba1e96b4494119bf1d6e167b5fbae3a3a3f24f6b2adfd813a18f)**|3.1.4|MIT +**[lodash._basefor](#9452e64da946cc633bba85112f9d585983d4d34ddb922312c23509f31b9cf54a)**|3.0.3|MIT +**[lodash._baseget](#c3cf4bbadde17410a34e84962cf52620d922e4c477c0c67407e3905a668d5b3f)**|3.7.2|MIT +**[lodash._baseindexof](#984f3f17e0475ba7b138ad2bcd02121d1069d6b685100583bb4bc9d6127a29a1)**|3.1.0|MIT +**[lodash._baseisequal](#5722da50c112fc1c4eb299375a140f952d867bf75c7433a0fb78b121b90a6fa0)**|3.0.7|MIT +**[lodash._baseslice](#f3a23746e44f620faa3af8d34a8ba0423726d0cd24176300f50a3c2798774e21)**|3.0.3|MIT +**[lodash._baseuniq](#fa4ce8551ed1dc65f15b9dafa6fb0238a4feb17f2caf8ed613748869842943b4)**|3.0.3|MIT +**[lodash._basevalues](#a6386191237cb1d70784b24e2847098f2876903ede40b488e306ba726b674f47)**|3.0.0|MIT +**[lodash._bindcallback](#759845849a0d94685fdf1a87cde520e49632ca378662469cdfe0c2be33cb3057)**|3.0.1|MIT +**[lodash._cacheindexof](#e2920f2aa3d3ef638e09c3952dd2cac1a42dca3929acc0bd76c3fc69f7cacfb7)**|3.0.2|MIT +**[lodash._createassigner](#c8f058ba3519bcdc9abd63b121fe2fab26acab4f4bcf2658efec676a3fdbaaa0)**|3.1.1|MIT +**[lodash._createcache](#072c756c562325194b5d955a7929da38e505fadd86c92a1a7d19ed9d251a58ef)**|3.1.2|MIT +**[lodash._createwrapper](#c3d6fd2a3e8a1412538ac86360c7608876b0841ea7f499ab96edc3e82ed120b2)**|3.2.0|MIT +**[lodash._getnative](#2a9507ae12db57c5319c675c4dbe5e100525a22f40b95339f9fc2d5f340ce09c)**|3.9.1|MIT +**[lodash._invokepath](#de9648080f5467f2559c407ca80b67fbd95a3767f8735507a7ff9802115379d8)**|3.7.2|MIT +**[lodash._isiterateecall](#2a87d94ff3c38e8d5da4ead575fec274d7655bc29e5645ff44b867a5b8926b4e)**|3.0.9|MIT +**[lodash._pickbyarray](#ce351b398064b4b254cd6189e4d91e14af322cb837142813fdf6d7f35e3a7e7a)**|3.0.2|MIT +**[lodash._pickbycallback](#5a4ef737299f75e14a058f857cdd3593cff7385db2c2d750516bd8c5fd1dac74)**|3.0.0|MIT +**[lodash._replaceholders](#c79e1ac85ddff7c5fe2d1170dc92a28f55b4a1ce6da74091d8775ed2c172c3a2)**|3.0.0|MIT +**[lodash._root](#b4c5b75f0ca57172edd2801a0107b22b1cc5b4bc258c4bfbe5d1b1fc052bb191)**|3.0.1|MIT +**[lodash._topath](#41ef14e011630cd3bea80b43c1d824c5bdada826f2bddaddda350eca30a93f4a)**|3.8.1|MIT +**[lodash.assign](#279f6350b38f924a812ff5d74a5f9c9023f5923a7c70dcb75bdb1670ad35ab50)**|3.2.0|MIT +**[lodash.before](#2fef595ae4ab5ca92be6f59e86e4d7f2b4ad0c224c22d828dfd0bae48af64645)**|3.0.3|MIT +**[lodash.bind](#3acab10f30bde74cc48a35928697ce1670df78f45fdca78b8bcb8c047a698b0e)**|3.1.0|MIT +**[lodash.difference](#43791df64f8fe405fc866c836325719f4060084c461c21882bef3b606d98ebcd)**|3.2.2|MIT +**[lodash.escape](#b2c0e0aeb488595574952c98b5f54e03f435b75e913a2bd5e5355645a576f866)**|3.2.0|MIT +**[lodash.find](#83ef2b0f6879ce20ff4050bf0aba209ccab6beceed27ea68be7dc15e088aed7c)**|3.2.1|MIT +**[lodash.flatten](#6adc3792aefcf12132c36a2d446686218a80ce413c20b2533d551509cc79c542)**|3.0.2|MIT +**[lodash.foreach](#27063675a97582e63d10521797ca5436c38ec0a71341733744333edec40fe4e1)**|3.0.3|MIT +**[lodash.forown](#b50edd80fd196dfaace7b3aa2a90290a00fed380636e15429b37a7d2f8e3776a)**|3.0.2|MIT +**[lodash.get](#632dd5085bea3b2734eae88903cfc1e91fb5b4ddb9213e10ffeadf7121ce5ea2)**|3.7.0|MIT +**[lodash.has](#d0e17f0b2e78b1a2618102c4f3b743c662a0f7cb0d3ef613b22a5595f46c3667)**|3.2.1|MIT +**[lodash.includes](#3adf597b6163c3ba3343235b44071cb955635e582da311d5b57ac35f2692f9b4)**|3.1.3|MIT +**[lodash.invoke](#43d25e539b3db0cb448dfaeac571c6f35c805ed7336f54c63392ccdb88c7ec91)**|3.2.3|MIT +**[lodash.isarguments](#fc005d458a81bf6d8d32c52123952311bdd5e02c5564720455bd4d9480b20da7)**|3.1.0|MIT +**[lodash.isarray](#0ec1c02a99d5b713fe4a1e0682e2917aedfbf6f16057f1dad1c7871c6f736575)**|3.0.4|MIT +**[lodash.isdate](#54396c41d452d46f8d06091b9ab83f35cbafd80f53b8a3337c4567d1009556f4)**|3.0.3|MIT +**[lodash.isempty](#f1f61f99f9012392c9bc1dd4b01eccd42224ff516c50b507c0041845df62bcbe)**|3.0.4|MIT +**[lodash.isequal](#3c009e1972544c1bf8dba82eb0bffe6230cf8760bd49d8ee6e120d20b4296b2c)**|3.0.4|MIT +**[lodash.isfunction](#037b8981ee3ca5d6ef852835683db8dfb102f43763b561aa365c7567a766ff60)**|3.0.9|MIT +**[lodash.isobject](#247f42305767fcd88c563da8a196a61fcaecdd7d4ddab3d72d1a9eb05bbf5405)**|3.0.2|MIT +**[lodash.isstring](#10489ff0ae921489d537bc6aecec98d63d40c04e55ced77d1f68331a7f2dcd56)**|3.0.1|MIT +**[lodash.istypedarray](#1968cf985099120c230a51c77054d5e662feeea4825ca0218c1c728f80b5839a)**|3.0.6|MIT +**[lodash.keys](#c588afca24b161c04c66b7fe976458f32d1871dbdc38343d2249c15af51e6df0)**|3.1.2|MIT +**[lodash.keysin](#eb438504bc7bde2a75d470d2723add90d5a7e2948c7a9320eebed39d20e9e133)**|3.0.8|MIT +**[lodash.last](#541caa1523f10bb2a8b2f52174d1de4ab2d64fb7a02719e69eb7d4e1e10b1065)**|3.0.0|MIT +**[lodash.merge](#996e40d63a94f1b8693d7c81e0cdfb874c6432d6bbd675976fc1b6b13652c8db)**|4.6.2|MIT +**[lodash.omit](#babde7076e3dbe66c1cd8dd0af071af1fcd4b49d2c7dbf8a306cc09b860c9ad9)**|3.1.0|MIT +**[lodash.once](#e794f12866dca62acdae15f1b5b4495ad6dee09c7150f71a96044adc2ced1286)**|3.0.1|MIT +**[lodash.pairs](#db90d2eca20d73caab322dc7ac851ecbc50db59e5e9e40d5c78d0f840cf03329)**|3.0.1|MIT +**[lodash.pick](#d54a2e0c0e3d3024a4b364b8917d59c1170262088fb3bfc4ab4a71f53ecbb3ae)**|3.1.0|MIT +**[lodash.restparam](#212ef51d65362b73a8d548dcc6dda631ef012bdd6d7d724281ab9bb0a1dbcec5)**|3.6.1|MIT +**[lodash.result](#7a09af41b88107096ee9071a254bacf1e324ecab5c9fb56d81dcda873144de35)**|3.1.2|MIT +**[lodash.union](#9ee2120113e7c91fbcbee571e2fae44f1e7f87afb331cca6eb46a3d318d6169e)**|3.1.0|MIT +**[lodash.uniqueid](#f4693b5b22365d675cec07ce8ca01fc235054f442963585ee0097efdae26995b)**|3.2.0|MIT +**[lodash](#adaac4144887ebc2c1b682380ff385210f681fc58b4bc1ef3986148cf8dcd28a)**|4.17.21|MIT +**[lru-cache](#8d10f71b6ab389fdca1b55e9aa96d77790f776843bd42ca91804a40a0d543f19)**|11.0.1|ISC +**[lru-cache](#fe7f0a2f2cf4c92f13c3a2a63f14f80f20f6919979306dc054e4f947c1234651)**|5.1.1|ISC +**[lru-cache](#938513411a6603ce29334db15563fb94b7d52f839d32b9bd78c18f5d3f98aa5a)**|6.0.0|ISC +**[lz-string](#a04d0916e49897705fe7a9d865134920984a19a03f8de501d4e46c6698a6b421)**|1.5.0|MIT +**[marky](#c5789082b93eeeb451a00e87792a533dd2589421119d3560a06c5f96b39414ea)**|1.2.2|Apache-2.0 +**[matches-selector](#ed68b9f3ecca4297cbb806474484688a85517361d99a33773e3152603a6771e6)**|0.0.1|MIT +**[matches-selector](#cec79a3cd38ecccf3066baf0e39cf87735fffea201040dd2799e4c6b5221d981)**|1.2.0|MIT +**[media-typer](#fa74be298a38f8f9351484e9124aba4a4086182a4cba24449f195219a2843784)**|0.3.0|MIT +**[memoize-one](#4d802a078eb32373fe5d8119384598a703537750aeeb5990aa28659939260789)**|5.2.1|MIT +**[memory-pager](#7fbdeab18f48c3527cae276a51cd879e42d15337aba1acb44fedcf748137608b)**|1.5.0|MIT +**[merge-descriptors](#0dc27d83f406152460ccee54a872599fa57bf48baa989aaa2165fc98eafd08da)**|1.0.3|MIT +**[merge-stream](#df06bda70cbfe392ea02ab42ab188d21ab5c15e3c1a172e6f2ce4cd9d304c01f)**|2.0.0|MIT +**[methods](#d2f0af2174fefc260353011b7a5dd7845576b8eb5f16c423378467dfd5b10f5f)**|1.1.2|MIT +**[mime-db](#7cfa78c6359b5b06cbb7cde9659b052fb92a58e290411458d496ea39857bc15b)**|1.52.0|MIT +**[mime-types](#a4d3481c7c7fa681b0c2a946f94b390ac9f96f0412b1ec63b79eba32dab82500)**|2.1.35|MIT +**[mime](#9b48af8a381b3c30ce0ed825fdb250ac917cf825ec677471e72657f421bece3a)**|1.6.0|MIT +**[mimic-fn](#5cdd2e226cc15411692ae7c6c44c95adde675477de818b755be01f0e7994f8d9)**|2.1.0|MIT +**[mimic-fn](#40db999726ca69c48458bec0492bb7351025a3719caeceb9ade4a08098817a0c)**|4.0.0|MIT +**[mimic-response](#0c868fd85c36cbce69ede58ff4693b89140b6a529a6794843f4985674d63642e)**|2.1.0|MIT +**[minimist](#837db6b00930af97755b724568aecf8b139361dc2148c7db77673ba6ae44a44d)**|1.2.6|MIT +**[mkdirp-classic](#e79cc875152b50c2eb57a97163d99f0155bf4e4af7ba4a7e01c12a17a4a3305c)**|0.5.3|MIT +**[modify-filename](#7153be07939379ccf0072006c519fba2bdf5ab79ca8bb59bc5273f87a7bacbf6)**|1.1.0|MIT +**[moment](#94975b5423311209f3beed9c2c6bb6157f622312a3f8563d507b52e804bf6285)**|2.29.4|MIT +**[mongodb-build-info](#f0a98c22ae0766702726f79e058ac6dc4e4bead8557b67b816f40bd13fb54170)**|1.7.2|Apache-2.0 +**[mongodb-client-encryption](#01c104ff07b0715f77217b6b7adfc9a0056f35ffd976182ffbf409f69b3a0df3)**|6.1.0|Apache-2.0 +**[mongodb-cloud-info](#a784f3b401cf51746f49964e044db933529b3e3791e557702715730f5a3f1e46)**|2.1.2|Apache-2.0 +**[mongodb-connection-string-url](#2e1146256a89ebd24e3398881e03807fe363d58444e6b7952ea50bd6108707bc)**|3.0.1|Apache-2.0 +**[mongodb-log-writer](#c4945018f8490fc8e56e1414e262fcf1b802800e05cd15f2bd6b7a9d0b94af85)**|1.4.2|Apache-2.0 +**[mongodb-ns](#68260f4d06e4d16a28d4139e391264d220e891ac6f0fb844b925a0cc37792aff)**|2.4.2|MIT +**[mongodb-query-parser](#871cbd55e42c522f9f44ee40a9a19b3edde2f543528582d5ac5f4bc60adeb336)**|4.2.3|Apache-2.0 +**[mongodb-redact](#f0766ec5011e3865ffb152537e7a24c89591d1ea5ee46777ca8f3e857a3e57d6)**|1.1.3|Apache-2.0 +**[mongodb-schema](#652dcef4a8a39849996a5f858fe48048e806fda4ce1aa0f757ada56bef011145)**|12.2.0|Apache-2.0 +**[mongodb](#8359f923d8c3b1a357d06d091825d7c04bb269086e94b6f8617edd5b4b03fa2b)**|6.9.0|Apache-2.0 +**[ms](#484b814b85d5028e34246147c8fc901d33570202bd7cdc3703c0ed1078eba0aa)**|2.0.0|MIT +**[ms](#0a987b2f79ff37005e452a5afa7dacd3042061a7077054d2ba9cabacd88506d2)**|2.1.2|MIT +**[ms](#2083576c5af8054927640b4788059806d07e250a26066c9ccb2d928394fb9226)**|2.1.3|MIT +**[napi-build-utils](#26912b5ff7632f262d64273f99cd1a869376c5c378960e24501585e35b31054a)**|1.0.2|MIT +**[negotiator](#e3856213d8f0a7d28cd4166e53ec7e2c019cb7becf4a8535097bac28d21e8579)**|0.6.3|MIT +**[netmask](#2bd5b8ff7fab9adace6c38d3fd32e7328484939fdd07836635b0155d0afc35b2)**|2.0.2|MIT +**[node-abi](#e95a83ce4ffe7621819fbbceed23c54f12e0e1066aad9e5b3093bbdc7c958e0b)**|3.68.0|MIT +**[node-addon-api](#af9f7588524ca4e68f4efe7b24aea46d9c8004263b1d7cf3b558f86d87a163e8)**|4.3.0|MIT +**[node-domexception](#3c25065fd2bc1b6b56856e30ac5b8f34ddae33ca87b225854f8d855b0ccabfbe)**|1.0.0|MIT +**[node-fetch](#364527ef1b51cc6ac34872b931049c9e25b5014f9b40e3898c84e1a830e21720)**|2.6.7|MIT +**[node-fetch](#23d7d5a419e9a25e6384dee4aa24f7162544418f0cdc2d92e94e2cf924507b8c)**|2.7.0|MIT +**[node-fetch](#22edb8ba3fe3457e8c1a02e497e6a8cb54e89775224f0c7680ea43772b5c1638)**|3.3.2|MIT +**[npm-run-path](#b21248abecb88119fcf2885e5471cd9235f40d356cba189a348def4b8a6046bd)**|4.0.1|MIT +**[npm-run-path](#17c35569bae8ecfc9314730bb16dde145a190d68c6fe6a29c78873c9c5520ed1)**|5.3.0|MIT +**[numeral](#b3c90be596160f7dccbd1ff771ddbffb9a1b19d0bb9456553d8822903386573e)**|1.5.6|MIT +**[numeral](#d274a180ad09fc1ae9325f01bf5dc1296caf553888d952fab7ebf524dfdc56a1)**|2.0.6|MIT +**[object-assign](#598e372231bb5bef26b7d61105282eb20e14ade430143052d064d2d406769b95)**|4.1.1|MIT +**[object-hash](#848d5d28b20a6a7f2e701e9b2b7e65b5518313269696dacf4ac69fa8bc5b571a)**|2.2.0|MIT +**[object-inspect](#b9d7050d521cb65fdc84f2212e39302b36e9bb0f7191e0be89ac3e4ea488b1fb)**|1.13.1|MIT +**[object-is](#d597163d660664be4b28b1f40171738a17ec18b028d62ee1cf2e264e30924d84)**|1.1.5|MIT +**[object-keys](#e9aac5890f5f1c6f8d56c08ce91012ba530b586511a89d1fa99ae2d7c39d8b2e)**|1.1.1|MIT +**[object.assign](#498d41061b8e766f5d53d287d41307891ca86b3d63eee61a1c4131f5dc5f185c)**|4.1.5|MIT +**[oidc-token-hash](#3beaf628821d1b6d7ec7b67b3c9ceea1d37727ea52253383f31d3e73141cf29f)**|5.0.3|MIT +**[on-finished](#d3c391e10faad1d82190a06f5be315d94a9194cff75aa389940432ef15cf45de)**|2.4.1|MIT +**[once](#d0d1303998dfae04e4f898f477380aac35568f4d6679f4ea913c2441cf9ebb0b)**|1.4.0|ISC +**[onetime](#5a35b0b7c7570756939e95a639f311d4676b87c61cd74cd94d6609334c2ee1a2)**|5.1.2|MIT +**[onetime](#8d8b66854ab397ef1815b6af9e17698a8e5f83b256a1202b74104ee5609c5d99)**|6.0.0|MIT +**[open](#6c66626cf6e18f59c76bef1f4ed0c2b541e68592d65325d4fb83a659e3078981)**|9.1.0|MIT +**[openid-client](#03ada662ee390db4436dc7bd38857b43e2a0407275d27e422ff915ec7738b035)**|5.6.5|MIT +**[os-dns-native](#ed8fb030877b8f0494551fd7f55288d885b2ddcece35dd7134434ad5c4c704de)**|1.2.1|MIT +**[pac-proxy-agent](#0c860d23706396c87370b49399bd004f0a3552427d65a829b16274a966c51304)**|7.0.2|MIT +**[pac-resolver](#7935fe0839f6e2b7c51abcc08705a6096eff5670dc2bdc3819fd096b8d114d8b)**|7.0.1|MIT +**[papaparse](#a94a34c1e6cf2f678ffd64381c6d54f9ad5f6b3c65281a0b077dd5b92f028684)**|5.3.2|MIT +**[parseurl](#c3fdd1b6fb725cb30e8fed82cf929953b46129d347d8404a4a51b633389fbae8)**|1.3.3|MIT +**[path-exists](#3ae48f237e1a4424a3b1b60cfc95f35ca29141cd956f8bda85e763d7969e12c7)**|4.0.0|MIT +**[path-key](#e1a2a032096ace66b422351e00b11b0229e42e4b49c2146f439f8fe442218451)**|3.1.1|MIT +**[path-key](#8e0734b8abb76579df2174822606e692914e985fc58363a78e6ad4b2a4a5831f)**|4.0.0|MIT +**[path-to-regexp](#96d230365f414cce8d80ceb9d99d855685dfa922f931b49ea01952a1efe64266)**|0.1.10|MIT +**[picocolors](#f964752f1f8cfd947506fd51ce1c148469ecf3b6f531d826511b720670e556f1)**|1.1.0|ISC +**[polished](#a7a5d1244e48a082dbc54de31b5309caf950b12aa6bd9fefbba39e362e705f06)**|4.2.2|MIT +**[possible-typed-array-names](#5ba4283f5512abd5d57e79c0a75acb3818d98d169df979afb01ad6867cefd312)**|1.0.0|MIT +**[prebuild-install](#93d13a9b3a51a6a802fcd35aa031d3ae7369aa6fd47d3a89f28a6d31ea3c9dc5)**|7.1.2|MIT +**[prettier](#2e1e2077936be4bb5f075fd4d279f9ece641322ccd12a8116edb3f99f08f7411)**|2.7.1|MIT +**[pretty-format](#0c53580441217a6c2b9c885eb1ec35adde420c312ccf9f408c856dc3845cce8b)**|27.5.1|MIT +**[prop-types](#e4dd0bb5b6f98fbf52f0ad7062b8514aadc56a47a692bf6d8aab369786b6039f)**|15.8.1|MIT +**[proxy-addr](#7b128e3d41d39ecb1a405a490a53ae86f70ef45f01079333ed3ca49939f5fba8)**|2.0.7|MIT +**[pump](#147f1bd3a6380306e696f0574feda0b1490121a1d12e4500e91ffb6e888ffa3a)**|3.0.0|MIT +**[punycode](#3fe331f5536b72438f24d644ea9804b5e462f791a4c72a6d94f37193af1086aa)**|2.3.1|MIT +**[pupa](#b05b7cc4c1bc01acd063dc811b9b1b0a1a4b3e0f17be77deaeaabade7dfeb095)**|2.1.1|MIT +**[qs](#2240c454f0418501921d6b094c1f6477603b0c893c4d7a8ed2bdfcab9e75c069)**|6.13.0|BSD-3-Clause +**[range-parser](#e973789240fef3c00f359e6acc8570dd769b70ee8b29fdcb679897fa2d696bff)**|1.2.1|MIT +**[raw-body](#fc0f8cf1771db07ef15ce7dafcac6db8e351607bb82caf0e5838f1769a796266)**|2.5.2|MIT +**[rc](#0dd705bd5862b4c60ed88e6b4a6f5ece23c627c97f6928233d32aefdd463c3f7)**|1.2.8|(BSD-2-Clause OR MIT OR Apache-2.0) +**[re-resizable](#ba463da4fb82093fffa407b9083835a23c9d44c84cd988f2536312f7e78f863d)**|6.9.0|MIT +**[react-dom](#6f313dd207f71f3d56121132c87ef27cba1beab9e5e349ac81c740cee6fd0774)**|17.0.2|MIT +**[react-hotkeys-hook](#6ce07fe9653ad69a76354e2d71137c70ab9a838377fe5a8f8e45c559cfbf41cc)**|4.3.7|MIT +**[react-intersection-observer](#84f998bdb33a5f9330d81ef063f7ad0897f1b004661fbf131725697b847a5b6a)**|8.34.0|MIT +**[react-is](#7183835e2bcaca6754fe10854fc3b65407d2cb9aa3b68b1c06ccaafb7b9be28a)**|16.13.1|MIT +**[react-is](#5ec174b50bba38f48ee8da3d8a5b9463a9e77c3f01d74a132ecc30a2be099c4b)**|17.0.2|MIT +**[react-is](#5746232ad830b635a6581ee7d3b826ee932c6877087c98cb46b94101eb5ce40b)**|18.2.0|MIT +**[react-keyed-flatten-children](#9c7ffa4be6351eaf0a19b808fc4048eb28455824378f089da7a566cdeb0bdd84)**|1.3.0|MIT +**[react-leaflet-draw](#d80b4b765d856cdefe411a073d3b3dde06100128005f1381b4d26d6cf53134c7)**|0.19.0|ISC +**[react-leaflet](#a5fc1f0504a89a932a12c5a183b75a748207329f20af6078f926e182d55aee8d)**|2.4.0|MIT +**[react-redux](#156f5c2e2cbbda376faae24e78cc75de697170101ff7e9d2955c0f891cffd6a8)**|8.1.3|MIT +**[react-transition-group](#f8a526737bf3e6cc7928ce77b3fa8e6a880da418fd9363a0dae1122922f92b72)**|4.4.5|BSD-3-Clause +**[react-virtual](#b9245d8b8a0d57eba1876cc38950eccd82b4db023c50026f4a70a6c66e16cb5c)**|2.10.4|MIT +**[react-virtualized-auto-sizer](#6c2551e5d023f4aa01efbb54d394f7cebd0627e78ca3b24a00a4364e3e7a3129)**|1.0.24|MIT +**[react-window](#1241166cdcf24220683cbe7d1460897436f3982e7795fc504323ba66f06e53f9)**|1.8.10|MIT +**[react](#2f31f78715f56093f4bb569e2e2ea931c518db6f4ee690482a0a2a1cd4d18b4c)**|17.0.2|MIT +**[readable-stream](#75bd2243ec5ecc92b8d7e9a2e9a1aa142f20f6a5aad6dc0d923cdab997766174)**|3.6.0|MIT +**[redux-thunk](#7eabcce4f7274e0c876829cb939804a9704770a9a60419d514c11e3e97c01623)**|2.4.2|MIT +**[redux](#98b5d53f97fab4eea98fb5f423cad33400855b69ac662f1fdf55f0fb9e33f2ab)**|4.2.1|MIT +**[reflux-core](#7af6ea33b0ed18717d672b44743ae53dcef843ae464690bb9e10eb1df048e9ea)**|0.3.0|BSD-3-Clause +**[reflux](#f892193924d403a4dd1a73a5861913838f1a9d704055d9d098eb0d40f752e053)**|0.4.1|BSD-3-Clause +**[regexp.prototype.flags](#51cb6c20041a1fef833bb3f46483fcbd99a186e3767ec2ad32f7b3db74d296f2)**|1.5.2|MIT +**[reservoir](#84f8998f94ad5bd85b50458378edf3815fff553cdcabf8ced3db418f05e85ff6)**|0.1.2|MIT +**[resolve-mongodb-srv](#2ae8b0c9dbe8e8c900bfaf5567bcf2af917e62fb0a24121b4d667dffbeaffa99)**|1.1.5|Apache-2.0 +**[run-applescript](#f4d3cc18b69c2dec9e4f1d19a1cb794c8fa2e548e530f4033dc6b0caf803bebc)**|5.0.0|MIT +**[safe-buffer](#952cf236ee56e7de5ea7e772caf3e256866f9dbdffc492539c48cd8c15ac9674)**|5.2.1|MIT +**[safer-buffer](#2fb14d3728e4ebf313be4634b146bd90cd3ad3559157baec03b64eec0878a0ba)**|2.1.2|MIT +**[scheduler](#950b09ca6f4766ded0bdde81e2697b5e184ed63925d74a8f512c978cab5bda6f)**|0.20.2|MIT +**[select](#12d30053a00882385c42a50004536696d477e8e694b047d6d39513947e5a39e9)**|1.1.2|MIT +**[semver](#8b8f657069cf84b7ca932ab17eb24a0a55a8053ccd2a36c03185dadab64db3f8)**|6.3.1|ISC +**[semver](#2c8b8c47dd7d24873eda4559b25851062c21d7584a396735b363f9bab626dd7b)**|7.6.3|ISC +**[send](#412cd4c4a8e6aaa433d5e67852c05a1e307fd4eb9dc362bdc30fa099313c24cb)**|0.19.0|MIT +**[serve-static](#9a2d04a479ef9c6e990f1fb614478dea4368c040af707296400ff7f9bb68d30b)**|1.16.2|MIT +**[set-function-length](#88ee3e1c8e8c22ac3653a290c1cdc68787d064f17a743020a070b31290bb4eb9)**|1.2.2|MIT +**[set-function-name](#f9d4c9272c71403774a64f46fc69cefd1039845f2ee1d252fb62cbd97f9e7fb4)**|2.0.2|MIT +**[setprototypeof](#7787a1d3bc2f39b65d75407d5d8d02d8ddb70f1cdb74897f15115e995fb64a56)**|1.2.0|ISC +**[shebang-command](#a9cba97b71b818fb0a4978f8b14875ae118f292a19ffa97c8b2d848f9a897d89)**|2.0.0|MIT +**[shebang-regex](#849fb37298f1c4dcdeb6065edc4242918c7533bcfda5c67747e6ce4620c587bb)**|3.0.0|MIT +**[side-channel](#b87368b55d9ba1ff553ed48946c9eb64686bc10b48bc0f5859c669427508a6b5)**|1.0.6|MIT +**[signal-exit](#5ad551060d44370794e770309e198719e94f939e46a3ea537b776c9c4fdad9e4)**|3.0.7|ISC +**[signal-exit](#09ce5ebc7ff1552bf0ed979e2479321c6a9a4b7a06d90ece7a70fa360007eff4)**|4.1.0|ISC +**[simple-concat](#7e08f893385d0a6d7059029da3885e8346ad01eb58d6e4561612d2fb653c15ec)**|1.0.1|MIT +**[simple-get](#c2c12990b6319daff653bdf953cadfa368185f0edc671124fb1028f6979df829)**|4.0.1|MIT +**[smart-buffer](#bc8fbee089eb9cddf673c4c9dbc15edd13839063c27e2814009b6a0448065875)**|4.2.0|MIT +**[socks-proxy-agent](#e192db394689e9e76e333aebe6a6958554ba85f63c4b2959bd6732f76ce1ed0d)**|8.0.4|MIT +**[socks](#0248dada9537f6f43ee753036902a8c3d06323744469309fdc207cd0b14f70e9)**|2.8.3|MIT +**[sort-keys-length](#af13db706339ff49fba434ce0fbda036b99f3dc30e66a530b64374afd5a1eec1)**|1.0.1|MIT +**[sort-keys](#714faeb378f5373d2aa5f80825d02c9f7ab2cacb699db02c84e675d193a6bfa8)**|1.1.2|MIT +**[source-code-pro](#0496fbae8c99eac4b7354b7eb0a394806e547de30fd2acbdf14f2ac77079e643)**|2.38.0|OFL-1.1 +**[source-map](#55fb2b4a8e114a26cce0c971365f26175ae0d834849c5edebbdb5adafaa08787)**|0.6.1|BSD-3-Clause +**[sparse-bitfield](#0cbcf2cac3ff859d288ae5ffc2c793bbd2430b120f5930bd09b6dba7259086d7)**|3.0.3|MIT +**[sprintf-js](#d8b6ff1ba6436283de681a756ad453428005e61986c5113a3a8088ced2b36eb7)**|1.1.3|BSD-3-Clause +**[ssh2](#caa88a7f6fedc946b33fe4cdcd84104598cca8b841b593d1ffb031578cd3d8c9)**|1.15.0|MIT +**[statuses](#a347e5a1994ef74647a2af80f58030a572f71173d5c1dfc0ce6eb55f4005b17d)**|2.0.1|MIT +**[stop-iteration-iterator](#b4a114e720966d8d69055a584424fa2465b603774072e8b7e35619282ff67afb)**|1.0.0|MIT +**[stream-chain](#dbe4594ad347bd2850f84bc41ea7ed1f0bebb82c38b9e7e0f6820d1c071e534c)**|2.2.5|BSD-3-Clause +**[stream-json](#ff32de703b38cb80287bf73b31ddc47fb97277eadcfb231017f31a06824e41e0)**|1.7.5|BSD-3-Clause +**[string_decoder](#b7999058a36380603fb66d82d8b9e36ddb8f0e5b81cd3f3233f31eac12b793fe)**|1.3.0|MIT +**[strip-bom-buf](#4f426c3eaeb7d288c70eb64ad2e2617952c0d8da8cdedf4f8cb29ba65bb3b65e)**|2.0.0|MIT +**[strip-bom-stream](#f7e90a4335dbb561f2b002d1b73cdb9d891c023959465fee58c1636e0216af2e)**|4.0.0|MIT +**[strip-final-newline](#a6dd80beeaaa538a553eca27a2bc8f9b22f02a61191d2f6981b02a2c1c12bf19)**|2.0.0|MIT +**[strip-final-newline](#0e84cc036056cb7e0b11c5f70c4d239d4adf3ca9253b0e215abd7e78639b1c61)**|3.0.0|MIT +**[strip-json-comments](#7e22a64e44ef0efd054f76d551df5305ac48eb5807079c025c8bf63c0a728c33)**|3.1.1|MIT +**[strnum](#84f6b71bdd647bcb9588183f13dc0b7a0c5b0a3103b2fc7e8e95012c0d6c631d)**|1.0.5|MIT +**[style-mod](#65cbf3eb373755d5dd9f5c58cf62d48dd4a33349e67d644af61d8d5438dbc1b5)**|4.1.2|MIT +**[stylis](#131ca0470639719771dc1f233c9962655afffb6d27143e894c43e967517107cf)**|4.2.0|MIT +**[supports-color](#113926f6cb42a3d41d1c11fb1209faf789d78f51fb458da90c61e5c1a2307a8e)**|5.5.0|MIT +**[supports-color](#b97a30572cac0a03b8cf442bc01621a041d5714550984f25cb71fac2587edbd6)**|7.2.0|MIT +**[system-ca](#f7020e15c3acda122c176b63132660540ac26981c7037d110fc2896e3551ab19)**|2.0.1|Apache-2.0 +**[tabbable](#0ebe87140b76c7f2135bbd5099e7973a5ec2b5d8fe2bec8e272608cf0b3f396a)**|5.3.3|MIT +**[tar-fs](#8e5bae5073977abd61cb5549abc7581354454558aedf4a4002b91e6fd7b9830d)**|2.1.1|MIT +**[tar-stream](#5605712784129d10d2559e12f8031603f0cf4e5ff206f09356e4bf1dc5ab1168)**|1.6.2|MIT +**[text-table](#408475075eb207dd5ae8858365d5b39a25bebe2b757601c43164cec36f315b23)**|0.2.0|MIT +**[tiny-emitter](#43eb8db7345f328bbd03f484accbed64a06fa649df3ab59db7492e65d9361def)**|2.1.0|MIT +**[titleize](#36b49586e2b5f60bee2c757b90d19871a99822f92e2b2e19202ef9efb9595766)**|3.0.0|MIT +**[to-buffer](#5934a0e0ea92470fb3bbe2a1d6869494c53208b1b06aaee8ffd31e4e040e4e85)**|1.1.1|MIT +**[to-fast-properties](#79afe8c8f3cc0bb1187c6ffaf6105b49888137e917978e870d67727353aba954)**|2.0.0|MIT +**[toidentifier](#2067d1f99d35f28c8384d3e9762282f3c2ded0041392af855caf28ba2209bd2a)**|1.0.1|MIT +**[tr46](#a94418e116fb43931c49abb9cd596d6814a55956c3d0d11b7e225592b9977197)**|0.0.3|MIT +**[tr46](#73a239b431778fd3a06957f11cd6de530a4ba35ca946f8656f46e02228113c2b)**|4.1.1|MIT +**[tslib](#c5fc5d0adaeec50d156fc1f9a16cbca801bfb431eb78f3647a1237a0e239ae35)**|2.6.2|0BSD +**[tslib](#bd15b467ea785206b74637cc23d2b9088ba8fa47aa3034d1217f3dea848c1d1e)**|2.6.3|0BSD +**[tunnel-agent](#09f746d17a1777efda5a12a6072da10c6820d7f56ea8aa0af202a2c83d6ccb67)**|0.6.0|Apache-2.0 +**[tweetnacl](#496caef692284d7a5d6acd31283b785ebca47d82b2d85c9af7ea1913bb4b49a8)**|0.14.5|Unlicense +**[type-is](#12dbb9fcc3a6de5bbd595659bff8b688d45fff57a2014441e4fe6779f5eeb7e2)**|1.6.18|MIT +**[universalify](#c381098afc5e144dfbd23d044afa2bf9bcf3dcadb7eb397d379f6cfd0ed47001)**|2.0.0|MIT +**[unpipe](#3a555405bd00c7e7e52b07a5600248bdaa683db613d7c286e425511cee8ed14a)**|1.0.0|MIT +**[untildify](#511cd56aa5943fd465da93776449b0a7249438206b5c5bfc22cc6d7e55ab0029)**|4.0.0|MIT +**[unused-filename](#5c8d4d94e0c17084eac0ca8c2eefa1fdb285e6a3dc47477e54d9acf7bf08eb2a)**|2.1.0|MIT +**[use-sync-external-store](#f7d4a0ea4ee9d814fb264db8103d6ad3a831aa79bf7f3ea70bfa182f8a930f0a)**|1.2.0|MIT +**[util-deprecate](#a1bd80d6a50b36e34032c402c5204d6276747d8212b68b164a9e3f895b90c2d6)**|1.0.2|MIT +**[utils-merge](#daf17cb7acc6dd4694e84d0920d7b32dba2be0fcf114309bfce8538812e7c458)**|1.0.1|MIT +**[uuid](#8e5d6b0bb24ea0188cd3a88b1f790f104e774bb8ed04c0dac0db7cfe2911227e)**|9.0.1|MIT +**[vary](#d308bd3935a6f29310b20de016cdb7b3de3aa40a7d4c3365b96e35d2c248d74a)**|1.1.2|MIT +**[w3c-keyname](#160316b2bf7a19e2cc0418d5ef94b5a999f9092fee3023ac9b2c7d76d2934f5b)**|2.2.6|MIT +**[warning](#02c159f6bf591ba6e8523609cb610cbd897ea68c214f64dac6f21d7b4e4d3a2d)**|4.0.3|MIT +**[web-streams-polyfill](#2349028b62115a87d9af122218c79a38cd90411e2b53a91c1cff7249e16f45f0)**|3.3.3|MIT +**[web-vitals](#66d3585417e14f352ce331e44fe42a97c4d03073d014efd601538735085f84fe)**|2.1.2|Apache-2.0 +**[web-worker](#8aa3d357e4e58928a87a1cfde9f21452b05f10e194f93e5d5908bdff9b94e20a)**|1.3.0|Apache-2.0 +**[webidl-conversions](#3604b2bfa479706fe7bd8068257240d32158704a3bffae30b414963343027aa1)**|3.0.1|BSD-2-Clause +**[webidl-conversions](#cb7c681998e7ee3c598e6e37432bcf448946924eefe816636c3cb122bae46e1c)**|7.0.0|BSD-2-Clause +**[webpack](#bd55cdb69f5b1b336d12c3f00d849ccb1f2c39987c257c89027d6a790f947496)**|5.94.0|MIT +**[whatwg-url](#3a968d9d3fed498fc1edf2f65459cc89b6a2fea277b5c9b5c3f3a0b41390835a)**|13.0.0|MIT +**[whatwg-url](#cd3f81c4a0fd856ab1d9c9fc99c1d7eaf2c12c4867b218e9901e5020a1ffcd85)**|5.0.0|MIT +**[which-boxed-primitive](#b3f94b6da310368951f52909c400e19c4c2c7a282ba67374f41ab2d070bf83f2)**|1.0.2|MIT +**[which-collection](#8d30c0dc07cdaccc2163cb70ff87fa91c48abdf4963bf5603218d66dbd6ae538)**|1.0.2|MIT +**[which-typed-array](#949a7e27fa7c5423fa71694a92b2c5e0d1b7f9e43ba00aab74414d4311e82530)**|1.1.15|MIT +**[which](#5a71f2b741944bf107d6e7f067241798a6e277e42e8ca1e28c4608ccc233f8ec)**|2.0.2|ISC +**[winreg-ts](#b1df7eee15fa28ae85b9086513c8316c08a21c254e8eda11e63c6321a03ac4a7)**|1.0.4|BSD-2-Clause +**[wrappy](#13cebf193d7ada5ee347b9ae819b96f5e6da21f9b53e7f268c7703b686158595)**|1.0.2|ISC +**[write-file-atomic](#f2c3af5826c073336660baeb567e1bb4453d5b6fadafaa880c59787bfdc4408f)**|5.0.1|ISC +**[xtend](#ef439651e21b69e8811099e984a3a42de35b6d0fc30a5c230715bea4c96e4940)**|4.0.2|MIT +**[yallist](#63b110ffd18712146937e9f182800c6f2b5783e76d1659a0bd4b457789b0df07)**|3.1.1|ISC +**[yallist](#d400799c4e1f58dbbbe68b4d9c1b6e80e023f744bd7d16da491005fd8439200f)**|4.0.0|ISC +**[yargs-parser](#617a7401008b7639df8cebae61c9c009bf04ca762c652da0975da4533bf33690)**|21.1.1|ISC +**[zod](#7e37bb8a0a232b053778166963faee52e7d1a9cfca82f4501d65e94f11d1c566)**|3.22.3|MIT ## Package details - ### [@ampproject/remapping](https://www.npmjs.com/package/@ampproject/remapping) (version 2.2.0) - License tags: Apache-2.0 License files: +* LICENSE: -- LICENSE: - + Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -673,24 +671,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -698,7 +696,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -712,18 +710,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -739,24 +737,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -773,14 +771,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -788,12 +786,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -803,7 +801,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -815,7 +813,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -826,11 +824,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include @@ -839,45 +837,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Google LLC - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@aws-sdk/client-cognito-identity](https://www.npmjs.com/package/@aws-sdk/client-cognito-identity) (version 3.632.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -885,24 +882,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -910,7 +907,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -924,18 +921,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -951,24 +948,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -985,14 +982,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -1000,12 +997,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -1015,7 +1012,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -1027,7 +1024,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -1038,11 +1035,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -1051,45 +1048,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@aws-sdk/client-sso](https://www.npmjs.com/package/@aws-sdk/client-sso) (version 3.632.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -1097,24 +1093,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -1122,7 +1118,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -1136,18 +1132,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -1163,24 +1159,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -1197,14 +1193,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -1212,12 +1208,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -1227,7 +1223,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -1239,7 +1235,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -1250,11 +1246,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -1263,45 +1259,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@aws-sdk/client-sts](https://www.npmjs.com/package/@aws-sdk/client-sts) (version 3.632.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -1309,24 +1304,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -1334,7 +1329,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -1348,18 +1343,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -1375,24 +1370,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -1409,14 +1404,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -1424,12 +1419,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -1439,7 +1434,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -1451,7 +1446,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -1462,11 +1457,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -1475,51 +1470,49 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@aws-sdk/core](https://www.npmjs.com/package/@aws-sdk/core) (version 3.629.0) - License tags: Apache-2.0 - + ### [@aws-sdk/credential-provider-cognito-identity](https://www.npmjs.com/package/@aws-sdk/credential-provider-cognito-identity) (version 3.632.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -1527,24 +1520,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -1552,7 +1545,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -1566,18 +1559,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -1593,24 +1586,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -1627,14 +1620,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -1642,12 +1635,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -1657,7 +1650,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -1669,7 +1662,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -1680,11 +1673,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -1693,45 +1686,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@aws-sdk/credential-provider-env](https://www.npmjs.com/package/@aws-sdk/credential-provider-env) (version 3.620.1) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -1739,24 +1731,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -1764,7 +1756,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -1778,18 +1770,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -1805,24 +1797,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -1839,14 +1831,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -1854,12 +1846,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -1869,7 +1861,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -1881,7 +1873,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -1892,11 +1884,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -1905,51 +1897,48 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@aws-sdk/credential-provider-http](https://www.npmjs.com/package/@aws-sdk/credential-provider-http) (version 3.622.0) - License tags: Apache-2.0 - + ### [@aws-sdk/credential-provider-ini](https://www.npmjs.com/package/@aws-sdk/credential-provider-ini) (version 3.632.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -1957,24 +1946,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -1982,7 +1971,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -1996,18 +1985,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -2023,24 +2012,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -2057,14 +2046,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -2072,12 +2061,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -2087,7 +2076,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -2099,7 +2088,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -2110,11 +2099,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -2123,45 +2112,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@aws-sdk/credential-provider-node](https://www.npmjs.com/package/@aws-sdk/credential-provider-node) (version 3.632.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -2169,24 +2156,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -2194,7 +2181,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -2208,18 +2195,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -2235,24 +2222,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -2269,14 +2256,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -2284,12 +2271,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -2299,7 +2286,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -2311,7 +2298,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -2322,11 +2309,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -2335,45 +2322,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@aws-sdk/credential-provider-process](https://www.npmjs.com/package/@aws-sdk/credential-provider-process) (version 3.620.1) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -2381,24 +2366,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -2406,7 +2391,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -2420,18 +2405,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -2447,24 +2432,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -2481,14 +2466,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -2496,12 +2481,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -2511,7 +2496,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -2523,7 +2508,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -2534,11 +2519,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -2547,45 +2532,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@aws-sdk/credential-provider-sso](https://www.npmjs.com/package/@aws-sdk/credential-provider-sso) (version 3.632.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -2593,24 +2576,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -2618,7 +2601,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -2632,18 +2615,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -2659,24 +2642,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -2693,14 +2676,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -2708,12 +2691,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -2723,7 +2706,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -2735,7 +2718,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -2746,11 +2729,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -2759,45 +2742,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@aws-sdk/credential-provider-web-identity](https://www.npmjs.com/package/@aws-sdk/credential-provider-web-identity) (version 3.621.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -2805,24 +2786,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -2830,7 +2811,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -2844,18 +2825,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -2871,24 +2852,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -2905,14 +2886,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -2920,12 +2901,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -2935,7 +2916,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -2947,7 +2928,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -2958,11 +2939,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -2971,45 +2952,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@aws-sdk/credential-providers](https://www.npmjs.com/package/@aws-sdk/credential-providers) (version 3.632.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -3017,24 +2996,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -3042,7 +3021,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -3056,18 +3035,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -3083,24 +3062,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -3117,14 +3096,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -3132,12 +3111,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -3147,7 +3126,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -3159,7 +3138,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -3170,11 +3149,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -3183,45 +3162,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@aws-sdk/middleware-host-header](https://www.npmjs.com/package/@aws-sdk/middleware-host-header) (version 3.620.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -3229,24 +3206,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -3254,7 +3231,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -3268,18 +3245,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -3295,24 +3272,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -3329,14 +3306,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -3344,12 +3321,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -3359,7 +3336,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -3371,7 +3348,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -3382,11 +3359,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -3395,45 +3372,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@aws-sdk/middleware-logger](https://www.npmjs.com/package/@aws-sdk/middleware-logger) (version 3.609.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -3441,24 +3417,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -3466,7 +3442,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -3480,18 +3456,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -3507,24 +3483,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -3541,14 +3517,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -3556,12 +3532,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -3571,7 +3547,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -3583,7 +3559,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -3594,11 +3570,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -3607,45 +3583,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@aws-sdk/middleware-recursion-detection](https://www.npmjs.com/package/@aws-sdk/middleware-recursion-detection) (version 3.620.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -3653,24 +3627,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -3678,7 +3652,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -3692,18 +3666,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -3719,24 +3693,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -3753,14 +3727,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -3768,12 +3742,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -3783,7 +3757,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -3795,7 +3769,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -3806,11 +3780,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -3819,45 +3793,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@aws-sdk/middleware-user-agent](https://www.npmjs.com/package/@aws-sdk/middleware-user-agent) (version 3.632.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -3865,24 +3838,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -3890,7 +3863,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -3904,18 +3877,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -3931,24 +3904,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -3965,14 +3938,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -3980,12 +3953,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -3995,7 +3968,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -4007,7 +3980,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -4018,11 +3991,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -4031,45 +4004,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@aws-sdk/region-config-resolver](https://www.npmjs.com/package/@aws-sdk/region-config-resolver) (version 3.614.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -4077,24 +4049,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -4102,7 +4074,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -4116,18 +4088,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -4143,24 +4115,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -4177,14 +4149,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -4192,12 +4164,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -4207,7 +4179,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -4219,7 +4191,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -4230,11 +4202,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -4243,45 +4215,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@aws-sdk/token-providers](https://www.npmjs.com/package/@aws-sdk/token-providers) (version 3.614.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -4289,24 +4259,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -4314,7 +4284,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -4328,18 +4298,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -4355,24 +4325,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -4389,14 +4359,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -4404,12 +4374,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -4419,7 +4389,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -4431,7 +4401,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -4442,11 +4412,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -4455,45 +4425,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@aws-sdk/util-endpoints](https://www.npmjs.com/package/@aws-sdk/util-endpoints) (version 3.632.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -4501,24 +4469,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -4526,7 +4494,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -4540,18 +4508,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -4567,24 +4535,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -4601,14 +4569,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -4616,12 +4584,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -4631,7 +4599,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -4643,7 +4611,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -4654,11 +4622,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -4667,45 +4635,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@aws-sdk/util-user-agent-node](https://www.npmjs.com/package/@aws-sdk/util-user-agent-node) (version 3.614.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -4713,24 +4679,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -4738,7 +4704,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -4752,18 +4718,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -4779,24 +4745,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -4813,14 +4779,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -4828,12 +4794,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -4843,7 +4809,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -4855,7 +4821,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -4866,11 +4832,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -4879,35 +4845,34 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@babel/code-frame](https://www.npmjs.com/package/@babel/code-frame) (version 7.24.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -4915,10 +4880,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -4926,21 +4891,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/compat-data](https://www.npmjs.com/package/@babel/compat-data) (version 7.25.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -4948,10 +4912,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -4959,21 +4923,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/core](https://www.npmjs.com/package/@babel/core) (version 7.25.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -4981,10 +4944,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -4992,21 +4955,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/generator](https://www.npmjs.com/package/@babel/generator) (version 7.25.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -5014,10 +4976,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5025,21 +4987,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-annotate-as-pure](https://www.npmjs.com/package/@babel/helper-annotate-as-pure) (version 7.22.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -5047,10 +5008,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5058,21 +5019,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-compilation-targets](https://www.npmjs.com/package/@babel/helper-compilation-targets) (version 7.25.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -5080,10 +5040,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5091,21 +5051,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-create-class-features-plugin](https://www.npmjs.com/package/@babel/helper-create-class-features-plugin) (version 7.22.6) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -5113,10 +5072,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5124,21 +5083,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-environment-visitor](https://www.npmjs.com/package/@babel/helper-environment-visitor) (version 7.24.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -5146,10 +5104,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5157,21 +5115,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-function-name](https://www.npmjs.com/package/@babel/helper-function-name) (version 7.24.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -5179,10 +5136,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5190,21 +5147,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-member-expression-to-functions](https://www.npmjs.com/package/@babel/helper-member-expression-to-functions) (version 7.22.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -5212,10 +5168,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5223,21 +5179,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-module-imports](https://www.npmjs.com/package/@babel/helper-module-imports) (version 7.24.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -5245,10 +5200,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5256,21 +5211,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-module-transforms](https://www.npmjs.com/package/@babel/helper-module-transforms) (version 7.25.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -5278,10 +5232,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5289,21 +5243,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-optimise-call-expression](https://www.npmjs.com/package/@babel/helper-optimise-call-expression) (version 7.22.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -5311,10 +5264,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5322,21 +5275,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-plugin-utils](https://www.npmjs.com/package/@babel/helper-plugin-utils) (version 7.22.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -5344,10 +5296,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5355,21 +5307,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-replace-supers](https://www.npmjs.com/package/@babel/helper-replace-supers) (version 7.22.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -5377,10 +5328,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5388,21 +5339,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-simple-access](https://www.npmjs.com/package/@babel/helper-simple-access) (version 7.24.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -5410,10 +5360,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5421,21 +5371,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-skip-transparent-expression-wrappers](https://www.npmjs.com/package/@babel/helper-skip-transparent-expression-wrappers) (version 7.22.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -5443,10 +5392,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5454,21 +5403,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-split-export-declaration](https://www.npmjs.com/package/@babel/helper-split-export-declaration) (version 7.24.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -5476,10 +5424,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5487,21 +5435,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-string-parser](https://www.npmjs.com/package/@babel/helper-string-parser) (version 7.24.8) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -5509,10 +5456,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5520,21 +5467,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-validator-identifier](https://www.npmjs.com/package/@babel/helper-validator-identifier) (version 7.24.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -5542,10 +5488,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5553,21 +5499,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helper-validator-option](https://www.npmjs.com/package/@babel/helper-validator-option) (version 7.24.8) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -5575,10 +5520,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5586,21 +5531,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/helpers](https://www.npmjs.com/package/@babel/helpers) (version 7.25.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -5608,10 +5552,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5619,21 +5563,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/highlight](https://www.npmjs.com/package/@babel/highlight) (version 7.24.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -5641,10 +5584,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5652,29 +5595,28 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/parser](https://www.npmjs.com/package/@babel/parser) (version 7.25.6) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (C) 2012-2014 by various contributors (see AUTHORS) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -5682,21 +5624,20 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/plugin-syntax-jsx](https://www.npmjs.com/package/@babel/plugin-syntax-jsx) (version 7.22.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -5704,10 +5645,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5715,21 +5656,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/plugin-syntax-typescript](https://www.npmjs.com/package/@babel/plugin-syntax-typescript) (version 7.21.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -5737,10 +5677,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5748,21 +5688,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/plugin-transform-destructuring](https://www.npmjs.com/package/@babel/plugin-transform-destructuring) (version 7.22.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -5770,10 +5709,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5781,21 +5720,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/plugin-transform-modules-commonjs](https://www.npmjs.com/package/@babel/plugin-transform-modules-commonjs) (version 7.22.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -5803,10 +5741,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5814,21 +5752,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/plugin-transform-parameters](https://www.npmjs.com/package/@babel/plugin-transform-parameters) (version 7.22.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -5836,10 +5773,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5847,21 +5784,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/plugin-transform-shorthand-properties](https://www.npmjs.com/package/@babel/plugin-transform-shorthand-properties) (version 7.22.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -5869,10 +5805,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5880,21 +5816,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/plugin-transform-typescript](https://www.npmjs.com/package/@babel/plugin-transform-typescript) (version 7.21.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -5902,10 +5837,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5913,21 +5848,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/preset-typescript](https://www.npmjs.com/package/@babel/preset-typescript) (version 7.21.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -5935,10 +5869,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5946,21 +5880,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/runtime](https://www.npmjs.com/package/@babel/runtime) (version 7.21.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -5968,10 +5901,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -5979,21 +5912,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/template](https://www.npmjs.com/package/@babel/template) (version 7.25.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -6001,10 +5933,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -6012,21 +5944,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/traverse](https://www.npmjs.com/package/@babel/traverse) (version 7.25.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -6034,10 +5965,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -6045,21 +5976,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@babel/types](https://www.npmjs.com/package/@babel/types) (version 7.25.6) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2014-present Sebastian McKenzie and other 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 in the Software without restriction, including @@ -6067,10 +5997,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -6078,31 +6008,30 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@codemirror/autocomplete](https://www.npmjs.com/package/@codemirror/autocomplete) (version 6.17.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (C) 2018-2021 by Marijn Haverbeke and others - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6110,31 +6039,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@codemirror/commands](https://www.npmjs.com/package/@codemirror/commands) (version 6.1.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (C) 2018-2021 by Marijn Haverbeke and others - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6142,31 +6070,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@codemirror/lang-javascript](https://www.npmjs.com/package/@codemirror/lang-javascript) (version 6.1.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (C) 2018-2021 by Marijn Haverbeke and others - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6174,31 +6101,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@codemirror/lang-json](https://www.npmjs.com/package/@codemirror/lang-json) (version 6.0.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (C) 2018-2021 by Marijn Haverbeke and others - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6206,31 +6132,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@codemirror/language](https://www.npmjs.com/package/@codemirror/language) (version 6.3.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (C) 2018-2021 by Marijn Haverbeke and others - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6238,31 +6163,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@codemirror/lint](https://www.npmjs.com/package/@codemirror/lint) (version 6.1.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (C) 2018-2021 by Marijn Haverbeke and others - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6270,31 +6194,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@codemirror/state](https://www.npmjs.com/package/@codemirror/state) (version 6.4.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (C) 2018-2021 by Marijn Haverbeke and others - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6302,31 +6225,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@codemirror/view](https://www.npmjs.com/package/@codemirror/view) (version 6.28.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (C) 2018-2021 by Marijn Haverbeke and others - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6334,31 +6256,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@dnd-kit/accessibility](https://www.npmjs.com/package/@dnd-kit/accessibility) (version 3.0.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2021, Claudéric Demers - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6366,31 +6287,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@dnd-kit/core](https://www.npmjs.com/package/@dnd-kit/core) (version 6.0.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2021, Claudéric Demers - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6398,31 +6318,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@dnd-kit/sortable](https://www.npmjs.com/package/@dnd-kit/sortable) (version 7.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2021, Claudéric Demers - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6430,31 +6349,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@dnd-kit/utilities](https://www.npmjs.com/package/@dnd-kit/utilities) (version 3.2.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2021, Claudéric Demers - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6462,19 +6380,18 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@electron/remote](https://www.npmjs.com/package/@electron/remote) (version 2.1.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (c) 2019-2022 Electron 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 in the Software without restriction, including @@ -6482,10 +6399,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -6493,31 +6410,30 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@emotion/cache](https://www.npmjs.com/package/@emotion/cache) (version 11.11.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Emotion team and other 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 in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6525,31 +6441,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@emotion/css](https://www.npmjs.com/package/@emotion/css) (version 11.11.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Emotion team and other 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 in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6557,31 +6472,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@emotion/hash](https://www.npmjs.com/package/@emotion/hash) (version 0.9.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Emotion team and other 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 in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6589,31 +6503,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@emotion/memoize](https://www.npmjs.com/package/@emotion/memoize) (version 0.8.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Emotion team and other 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 in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6621,31 +6534,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@emotion/serialize](https://www.npmjs.com/package/@emotion/serialize) (version 1.1.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Emotion team and other 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 in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6653,31 +6565,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@emotion/sheet](https://www.npmjs.com/package/@emotion/sheet) (version 1.2.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Emotion team and other 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 in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6685,31 +6596,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@emotion/unitless](https://www.npmjs.com/package/@emotion/unitless) (version 0.8.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Emotion team and other 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 in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6717,31 +6627,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@emotion/utils](https://www.npmjs.com/package/@emotion/utils) (version 1.2.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Emotion team and other 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 in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6749,31 +6658,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@emotion/weak-memoize](https://www.npmjs.com/package/@emotion/weak-memoize) (version 0.3.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Emotion team and other 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 in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6781,29 +6689,28 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@jridgewell/gen-mapping](https://www.npmjs.com/package/@jridgewell/gen-mapping) (version 0.1.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2022 Justin Ridgewell - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6811,29 +6718,28 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@jridgewell/gen-mapping](https://www.npmjs.com/package/@jridgewell/gen-mapping) (version 0.3.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2022 Justin Ridgewell - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6841,29 +6747,28 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@jridgewell/resolve-uri](https://www.npmjs.com/package/@jridgewell/resolve-uri) (version 3.1.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2019 Justin Ridgewell - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6872,28 +6777,26 @@ License files: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [@jridgewell/set-array](https://www.npmjs.com/package/@jridgewell/set-array) (version 1.2.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2022 Justin Ridgewell - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6901,31 +6804,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@jridgewell/sourcemap-codec](https://www.npmjs.com/package/@jridgewell/sourcemap-codec) (version 1.5.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License - + Copyright (c) 2015 Rich Harris - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6933,29 +6835,28 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@jridgewell/trace-mapping](https://www.npmjs.com/package/@jridgewell/trace-mapping) (version 0.3.25) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2022 Justin Ridgewell - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6963,31 +6864,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@lezer/common](https://www.npmjs.com/package/@lezer/common) (version 1.2.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (C) 2018 by Marijn Haverbeke and others - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -6995,31 +6895,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@lezer/highlight](https://www.npmjs.com/package/@lezer/highlight) (version 1.2.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (C) 2018 by Marijn Haverbeke and others - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -7027,31 +6926,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@lezer/javascript](https://www.npmjs.com/package/@lezer/javascript) (version 1.3.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (C) 2018 by Marijn Haverbeke and others - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -7059,31 +6957,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@lezer/json](https://www.npmjs.com/package/@lezer/json) (version 1.0.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (C) 2020 by Marijn Haverbeke , Arun Srinivasan , and others - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -7092,30 +6989,28 @@ License files: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [@lezer/lr](https://www.npmjs.com/package/@lezer/lr) (version 1.4.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (C) 2018 by Marijn Haverbeke and others - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -7123,51 +7018,48 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@lg-tools/test-harnesses](https://www.npmjs.com/package/@lg-tools/test-harnesses) (version 0.1.2) - License tags: Apache-2.0 - + ### [@lukeed/uuid](https://www.npmjs.com/package/@lukeed/uuid) (version 2.0.1) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Luke Edwards (lukeed.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@nicolo-ribaudo/semver-v6](https://www.npmjs.com/package/@nicolo-ribaudo/semver-v6) (version 6.3.3) - License tags: ISC License files: - -- LICENSE: +* LICENSE: The ISC License - + Copyright (c) Isaac Z. Schlueter and Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -7175,31 +7067,30 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [@react-aria/interactions](https://www.npmjs.com/package/@react-aria/interactions) (version 3.9.1) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -7207,24 +7098,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -7232,7 +7123,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -7246,18 +7137,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -7273,24 +7164,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -7307,14 +7198,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -7322,12 +7213,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -7337,7 +7228,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -7349,7 +7240,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -7360,11 +7251,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include @@ -7373,45 +7264,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Adobe - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@react-aria/ssr](https://www.npmjs.com/package/@react-aria/ssr) (version 3.2.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -7419,24 +7309,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -7444,7 +7334,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -7458,18 +7348,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -7485,24 +7375,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -7519,14 +7409,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -7534,12 +7424,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -7549,7 +7439,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -7561,7 +7451,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -7572,11 +7462,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include @@ -7585,45 +7475,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Adobe - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@react-aria/utils](https://www.npmjs.com/package/@react-aria/utils) (version 3.13.1) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -7631,24 +7520,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -7656,7 +7545,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -7670,18 +7559,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -7697,24 +7586,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -7731,14 +7620,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -7746,12 +7635,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -7761,7 +7650,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -7773,7 +7662,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -7784,11 +7673,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include @@ -7797,45 +7686,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Adobe - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@react-aria/visually-hidden](https://www.npmjs.com/package/@react-aria/visually-hidden) (version 3.3.1) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -7843,24 +7731,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -7868,7 +7756,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -7882,18 +7770,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -7909,24 +7797,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -7943,14 +7831,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -7958,12 +7846,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -7973,7 +7861,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -7985,7 +7873,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -7996,11 +7884,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include @@ -8009,45 +7897,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Adobe - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@react-stately/utils](https://www.npmjs.com/package/@react-stately/utils) (version 3.5.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -8055,24 +7942,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -8080,7 +7967,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -8094,18 +7981,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -8121,24 +8008,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -8155,14 +8042,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -8170,12 +8057,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -8185,7 +8072,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -8197,7 +8084,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -8208,11 +8095,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include @@ -8221,45 +8108,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Adobe - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@segment/analytics-core](https://www.npmjs.com/package/@segment/analytics-core) (version 1.4.0) - License tags: MIT License files: - -- LICENSE.MD: +* LICENSE.MD: The MIT License (MIT) - + Copyright © 2021 Segment - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -8268,30 +8154,28 @@ License files: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [@segment/analytics-generic-utils](https://www.npmjs.com/package/@segment/analytics-generic-utils) (version 1.1.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright © 2023 Segment - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -8299,31 +8183,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@segment/analytics-node](https://www.npmjs.com/package/@segment/analytics-node) (version 1.1.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright © 2021 Segment - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -8331,31 +8214,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@smithy/config-resolver](https://www.npmjs.com/package/@smithy/config-resolver) (version 3.0.5) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -8363,24 +8245,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -8388,7 +8270,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -8402,18 +8284,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -8429,24 +8311,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -8463,14 +8345,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -8478,12 +8360,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -8493,7 +8375,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -8505,7 +8387,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -8516,11 +8398,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -8529,45 +8411,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/core](https://www.npmjs.com/package/@smithy/core) (version 2.3.2) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -8575,24 +8455,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -8600,7 +8480,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -8614,18 +8494,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -8641,24 +8521,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -8675,14 +8555,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -8690,12 +8570,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -8705,7 +8585,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -8717,7 +8597,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -8728,11 +8608,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -8741,45 +8621,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@smithy/credential-provider-imds](https://www.npmjs.com/package/@smithy/credential-provider-imds) (version 3.2.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -8787,24 +8666,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -8812,7 +8691,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -8826,18 +8705,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -8853,24 +8732,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -8887,14 +8766,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -8902,12 +8781,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -8917,7 +8796,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -8929,7 +8808,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -8940,11 +8819,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -8953,45 +8832,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/fetch-http-handler](https://www.npmjs.com/package/@smithy/fetch-http-handler) (version 3.2.4) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -8999,24 +8876,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -9024,7 +8901,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -9038,18 +8915,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -9065,24 +8942,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -9099,14 +8976,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -9114,12 +8991,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -9129,7 +9006,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -9141,7 +9018,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -9152,11 +9029,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -9165,45 +9042,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/hash-node](https://www.npmjs.com/package/@smithy/hash-node) (version 3.0.3) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -9211,24 +9086,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -9236,7 +9111,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -9250,18 +9125,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -9277,24 +9152,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -9311,14 +9186,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -9326,12 +9201,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -9341,7 +9216,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -9353,7 +9228,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -9364,11 +9239,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -9377,45 +9252,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/is-array-buffer](https://www.npmjs.com/package/@smithy/is-array-buffer) (version 3.0.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -9423,24 +9296,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -9448,7 +9321,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -9462,18 +9335,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -9489,24 +9362,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -9523,14 +9396,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -9538,12 +9411,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -9553,7 +9426,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -9565,7 +9438,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -9576,11 +9449,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -9589,45 +9462,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/middleware-content-length](https://www.npmjs.com/package/@smithy/middleware-content-length) (version 3.0.5) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -9635,24 +9506,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -9660,7 +9531,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -9674,18 +9545,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -9701,24 +9572,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -9735,14 +9606,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -9750,12 +9621,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -9765,7 +9636,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -9777,7 +9648,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -9788,11 +9659,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -9801,45 +9672,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/middleware-endpoint](https://www.npmjs.com/package/@smithy/middleware-endpoint) (version 3.1.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -9847,24 +9716,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -9872,7 +9741,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -9886,18 +9755,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -9913,24 +9782,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -9947,14 +9816,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -9962,12 +9831,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -9977,7 +9846,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -9989,7 +9858,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -10000,11 +9869,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -10013,45 +9882,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/middleware-retry](https://www.npmjs.com/package/@smithy/middleware-retry) (version 3.0.14) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -10059,24 +9926,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -10084,7 +9951,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -10098,18 +9965,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -10125,24 +9992,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -10159,14 +10026,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -10174,12 +10041,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -10189,7 +10056,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -10201,7 +10068,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -10212,11 +10079,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -10225,45 +10092,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@smithy/middleware-serde](https://www.npmjs.com/package/@smithy/middleware-serde) (version 3.0.3) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -10271,24 +10137,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -10296,7 +10162,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -10310,18 +10176,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -10337,24 +10203,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -10371,14 +10237,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -10386,12 +10252,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -10401,7 +10267,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -10413,7 +10279,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -10424,11 +10290,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -10437,45 +10303,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@smithy/middleware-stack](https://www.npmjs.com/package/@smithy/middleware-stack) (version 3.0.3) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -10483,24 +10348,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -10508,7 +10373,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -10522,18 +10387,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -10549,24 +10414,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -10583,14 +10448,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -10598,12 +10463,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -10613,7 +10478,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -10625,7 +10490,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -10636,11 +10501,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -10649,45 +10514,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/node-config-provider](https://www.npmjs.com/package/@smithy/node-config-provider) (version 3.1.4) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -10695,24 +10558,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -10720,7 +10583,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -10734,18 +10597,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -10761,24 +10624,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -10795,14 +10658,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -10810,12 +10673,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -10825,7 +10688,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -10837,7 +10700,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -10848,11 +10711,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -10861,45 +10724,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/node-http-handler](https://www.npmjs.com/package/@smithy/node-http-handler) (version 3.1.4) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -10907,24 +10768,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -10932,7 +10793,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -10946,18 +10807,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -10973,24 +10834,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -11007,14 +10868,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -11022,12 +10883,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -11037,7 +10898,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -11049,7 +10910,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -11060,11 +10921,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -11073,45 +10934,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/property-provider](https://www.npmjs.com/package/@smithy/property-provider) (version 3.1.3) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -11119,24 +10978,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -11144,7 +11003,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -11158,18 +11017,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -11185,24 +11044,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -11219,14 +11078,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -11234,12 +11093,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -11249,7 +11108,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -11261,7 +11120,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -11272,11 +11131,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -11285,45 +11144,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/protocol-http](https://www.npmjs.com/package/@smithy/protocol-http) (version 4.1.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -11331,24 +11188,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -11356,7 +11213,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -11370,18 +11227,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -11397,24 +11254,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -11431,14 +11288,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -11446,12 +11303,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -11461,7 +11318,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -11473,7 +11330,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -11484,11 +11341,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -11497,45 +11354,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@smithy/querystring-builder](https://www.npmjs.com/package/@smithy/querystring-builder) (version 3.0.3) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -11543,24 +11399,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -11568,7 +11424,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -11582,18 +11438,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -11609,24 +11465,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -11643,14 +11499,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -11658,12 +11514,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -11673,7 +11529,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -11685,7 +11541,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -11696,11 +11552,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -11709,45 +11565,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@smithy/querystring-parser](https://www.npmjs.com/package/@smithy/querystring-parser) (version 3.0.3) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -11755,24 +11610,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -11780,7 +11635,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -11794,18 +11649,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -11821,24 +11676,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -11855,14 +11710,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -11870,12 +11725,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -11885,7 +11740,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -11897,7 +11752,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -11908,11 +11763,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -11921,45 +11776,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@smithy/service-error-classification](https://www.npmjs.com/package/@smithy/service-error-classification) (version 3.0.3) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -11967,24 +11821,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -11992,7 +11846,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -12006,18 +11860,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -12033,24 +11887,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -12067,14 +11921,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -12082,12 +11936,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -12097,7 +11951,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -12109,7 +11963,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -12120,11 +11974,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -12133,45 +11987,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@smithy/shared-ini-file-loader](https://www.npmjs.com/package/@smithy/shared-ini-file-loader) (version 3.1.4) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -12179,24 +12032,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -12204,7 +12057,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -12218,18 +12071,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -12245,24 +12098,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -12279,14 +12132,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -12294,12 +12147,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -12309,7 +12162,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -12321,7 +12174,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -12332,11 +12185,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -12345,45 +12198,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/signature-v4](https://www.npmjs.com/package/@smithy/signature-v4) (version 4.1.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -12391,24 +12242,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -12416,7 +12267,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -12430,18 +12281,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -12457,24 +12308,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -12491,14 +12342,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -12506,12 +12357,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -12521,7 +12372,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -12533,7 +12384,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -12544,11 +12395,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -12557,45 +12408,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/smithy-client](https://www.npmjs.com/package/@smithy/smithy-client) (version 3.1.12) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -12603,24 +12452,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -12628,7 +12477,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -12642,18 +12491,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -12669,24 +12518,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -12703,14 +12552,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -12718,12 +12567,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -12733,7 +12582,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -12745,7 +12594,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -12756,11 +12605,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -12769,45 +12618,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@smithy/types](https://www.npmjs.com/package/@smithy/types) (version 3.3.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -12815,24 +12663,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -12840,7 +12688,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -12854,18 +12702,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -12881,24 +12729,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -12915,14 +12763,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -12930,12 +12778,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -12945,7 +12793,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -12957,7 +12805,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -12968,11 +12816,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -12981,45 +12829,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@smithy/url-parser](https://www.npmjs.com/package/@smithy/url-parser) (version 3.0.3) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -13027,24 +12874,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -13052,7 +12899,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -13066,18 +12913,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -13093,24 +12940,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -13127,14 +12974,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -13142,12 +12989,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -13157,7 +13004,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -13169,7 +13016,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -13180,11 +13027,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -13193,45 +13040,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@smithy/util-base64](https://www.npmjs.com/package/@smithy/util-base64) (version 3.0.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -13239,24 +13085,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -13264,7 +13110,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -13278,18 +13124,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -13305,24 +13151,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -13339,14 +13185,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -13354,12 +13200,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -13369,7 +13215,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -13381,7 +13227,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -13392,11 +13238,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -13405,45 +13251,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/util-body-length-node](https://www.npmjs.com/package/@smithy/util-body-length-node) (version 3.0.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -13451,24 +13295,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -13476,7 +13320,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -13490,18 +13334,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -13517,24 +13361,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -13551,14 +13395,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -13566,12 +13410,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -13581,7 +13425,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -13593,7 +13437,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -13604,11 +13448,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -13617,45 +13461,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/util-buffer-from](https://www.npmjs.com/package/@smithy/util-buffer-from) (version 3.0.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -13663,24 +13505,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -13688,7 +13530,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -13702,18 +13544,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -13729,24 +13571,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -13763,14 +13605,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -13778,12 +13620,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -13793,7 +13635,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -13805,7 +13647,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -13816,11 +13658,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -13829,45 +13671,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/util-config-provider](https://www.npmjs.com/package/@smithy/util-config-provider) (version 3.0.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -13875,24 +13715,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -13900,7 +13740,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -13914,18 +13754,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -13941,24 +13781,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -13975,14 +13815,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -13990,12 +13830,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -14005,7 +13845,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -14017,7 +13857,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -14028,11 +13868,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -14041,45 +13881,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/util-defaults-mode-node](https://www.npmjs.com/package/@smithy/util-defaults-mode-node) (version 3.0.14) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -14087,24 +13925,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -14112,7 +13950,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -14126,18 +13964,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -14153,24 +13991,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -14187,14 +14025,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -14202,12 +14040,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -14217,7 +14055,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -14229,7 +14067,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -14240,11 +14078,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -14253,45 +14091,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [@smithy/util-endpoints](https://www.npmjs.com/package/@smithy/util-endpoints) (version 2.0.5) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -14299,24 +14136,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -14324,7 +14161,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -14338,18 +14175,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -14365,24 +14202,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -14399,14 +14236,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -14414,12 +14251,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -14429,7 +14266,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -14441,7 +14278,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -14452,11 +14289,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -14465,45 +14302,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/util-hex-encoding](https://www.npmjs.com/package/@smithy/util-hex-encoding) (version 3.0.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -14511,24 +14346,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -14536,7 +14371,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -14550,18 +14385,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -14577,24 +14412,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -14611,14 +14446,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -14626,12 +14461,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -14641,7 +14476,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -14653,7 +14488,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -14664,11 +14499,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -14677,45 +14512,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/util-middleware](https://www.npmjs.com/package/@smithy/util-middleware) (version 3.0.3) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -14723,24 +14556,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -14748,7 +14581,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -14762,18 +14595,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -14789,24 +14622,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -14823,14 +14656,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -14838,12 +14671,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -14853,7 +14686,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -14865,7 +14698,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -14876,11 +14709,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -14889,45 +14722,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/util-retry](https://www.npmjs.com/package/@smithy/util-retry) (version 3.0.3) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -14935,24 +14766,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -14960,7 +14791,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -14974,18 +14805,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -15001,24 +14832,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -15035,14 +14866,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -15050,12 +14881,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -15065,7 +14896,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -15077,7 +14908,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -15088,11 +14919,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -15101,45 +14932,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/util-stream](https://www.npmjs.com/package/@smithy/util-stream) (version 3.1.3) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -15147,24 +14976,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -15172,7 +15001,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -15186,18 +15015,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -15213,24 +15042,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -15247,14 +15076,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -15262,12 +15091,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -15277,7 +15106,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -15289,7 +15118,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -15300,11 +15129,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -15313,45 +15142,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/util-uri-escape](https://www.npmjs.com/package/@smithy/util-uri-escape) (version 3.0.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -15359,24 +15186,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -15384,7 +15211,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -15398,18 +15225,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -15425,24 +15252,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -15459,14 +15286,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -15474,12 +15301,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -15489,7 +15316,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -15501,7 +15328,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -15512,11 +15339,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -15525,45 +15352,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@smithy/util-utf8](https://www.npmjs.com/package/@smithy/util-utf8) (version 3.0.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -15571,24 +15396,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -15596,7 +15421,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -15610,18 +15435,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -15637,24 +15462,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -15671,14 +15496,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -15686,12 +15511,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -15701,7 +15526,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -15713,7 +15538,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -15724,11 +15549,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -15737,45 +15562,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [@tanstack/react-table](https://www.npmjs.com/package/@tanstack/react-table) (version 8.14.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2016 Tanner Linsley - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -15783,31 +15606,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@tanstack/table-core](https://www.npmjs.com/package/@tanstack/table-core) (version 8.14.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2016 Tanner Linsley - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -15815,30 +15637,29 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@testing-library/dom](https://www.npmjs.com/package/@testing-library/dom) (version 9.3.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) Copyright (c) 2017 Kent C. Dodds - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -15846,31 +15667,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [@tootallnate/quickjs-emscripten](https://www.npmjs.com/package/@tootallnate/quickjs-emscripten) (version 0.23.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + quickjs-emscripten copyright (c) 2019 Jake Teton-Landis - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -15878,22 +15698,21 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [accepts](https://www.npmjs.com/package/accepts) (version 1.3.8) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014 Jonathan Ong Copyright (c) 2015 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -15901,10 +15720,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -15912,31 +15731,30 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [acorn](https://www.npmjs.com/package/acorn) (version 8.8.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (C) 2012-2022 by various contributors (see AUTHORS) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -15944,31 +15762,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ag-grid-community](https://www.npmjs.com/package/ag-grid-community) (version 20.2.0) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: The MIT License - + Copyright (c) 2015-2016 AG GRID LTD - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -15976,31 +15793,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ag-grid-react](https://www.npmjs.com/package/ag-grid-react) (version 20.2.0) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: The MIT License - + Copyright (c) 2015-2016 AG GRID LTD - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -16008,21 +15824,20 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [agent-base](https://www.npmjs.com/package/agent-base) (version 7.1.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2013 Nathan Rajlich - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -16030,10 +15845,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -16042,18 +15857,16 @@ License files: TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [ampersand-class-extend](https://www.npmjs.com/package/ampersand-class-extend) (version 1.0.2) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: Copyright © 2014 &yet, LLC and AmpersandJS 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 in the Software without restriction, including @@ -16061,10 +15874,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -16072,19 +15885,18 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ampersand-class-extend](https://www.npmjs.com/package/ampersand-class-extend) (version 2.0.0) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: Copyright © 2014 &yet, LLC and AmpersandJS 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 in the Software without restriction, including @@ -16092,10 +15904,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -16103,19 +15915,18 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ampersand-collection-view](https://www.npmjs.com/package/ampersand-collection-view) (version 1.4.0) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: Copyright © 2014 &yet, LLC and AmpersandJS 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 in the Software without restriction, including @@ -16123,10 +15934,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -16134,19 +15945,18 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ampersand-collection](https://www.npmjs.com/package/ampersand-collection) (version 2.0.2) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: Copyright © 2014 &yet, LLC and AmpersandJS 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 in the Software without restriction, including @@ -16154,10 +15964,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -16165,19 +15975,18 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ampersand-dom-bindings](https://www.npmjs.com/package/ampersand-dom-bindings) (version 3.9.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright © 2015 &yet, LLC and AmpersandJS 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 in the Software without restriction, including @@ -16185,10 +15994,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -16196,19 +16005,18 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ampersand-dom](https://www.npmjs.com/package/ampersand-dom) (version 1.5.0) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: Copyright © 2014 &yet, LLC and AmpersandJS 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 in the Software without restriction, including @@ -16216,10 +16024,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -16227,19 +16035,18 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ampersand-events](https://www.npmjs.com/package/ampersand-events) (version 1.1.1) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: Copyright © 2014 &yet, LLC and AmpersandJS 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 in the Software without restriction, including @@ -16247,10 +16054,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -16259,18 +16066,16 @@ License files: TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [ampersand-events](https://www.npmjs.com/package/ampersand-events) (version 2.0.2) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: Copyright © 2014 &yet, LLC and AmpersandJS 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 in the Software without restriction, including @@ -16278,10 +16083,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -16290,18 +16095,16 @@ License files: TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [ampersand-model](https://www.npmjs.com/package/ampersand-model) (version 8.0.1) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: Copyright © 2014 &yet, LLC and AmpersandJS 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 in the Software without restriction, including @@ -16309,10 +16112,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -16320,19 +16123,18 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ampersand-state](https://www.npmjs.com/package/ampersand-state) (version 4.8.2) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: Copyright © 2014 &yet, LLC and AmpersandJS 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 in the Software without restriction, including @@ -16340,10 +16142,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -16351,19 +16153,18 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ampersand-state](https://www.npmjs.com/package/ampersand-state) (version 5.0.3) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: Copyright © 2014 &yet, LLC and AmpersandJS 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 in the Software without restriction, including @@ -16371,10 +16172,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -16382,19 +16183,18 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ampersand-view](https://www.npmjs.com/package/ampersand-view) (version 9.0.2) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: Copyright © 2014 &yet, LLC and AmpersandJS 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 in the Software without restriction, including @@ -16402,10 +16202,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -16413,117 +16213,111 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ansi-regex](https://www.npmjs.com/package/ansi-regex) (version 5.0.1) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ansi-styles](https://www.npmjs.com/package/ansi-styles) (version 3.2.1) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ansi-styles](https://www.npmjs.com/package/ansi-styles) (version 4.3.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ansi-styles](https://www.npmjs.com/package/ansi-styles) (version 5.2.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [antlr4](https://www.npmjs.com/package/antlr4) (version 4.7.2) - License tags: BSD-3-Clause - + ### [aria-query](https://www.npmjs.com/package/aria-query) (version 5.1.3) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -16531,24 +16325,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -16556,7 +16350,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -16570,18 +16364,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -16597,24 +16391,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -16631,14 +16425,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -16646,12 +16440,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -16661,7 +16455,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -16673,7 +16467,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -16684,11 +16478,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -16697,45 +16491,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2020 A11yance - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [array-buffer-byte-length](https://www.npmjs.com/package/array-buffer-byte-length) (version 1.0.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2023 Inspect JS - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -16743,31 +16536,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [array-flatten](https://www.npmjs.com/package/array-flatten) (version 1.1.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -16775,35 +16567,33 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [array-next](https://www.npmjs.com/package/array-next) (version 0.0.1) - License tags: MIT - + ### [asn1](https://www.npmjs.com/package/asn1) (version 0.2.6) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (c) 2011 Mark Cavage, All rights reserved. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -16811,19 +16601,18 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE + - + ### [ast-types](https://www.npmjs.com/package/ast-types) (version 0.13.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (c) 2013 Ben Newman - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -16831,10 +16620,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -16842,31 +16631,30 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [available-typed-arrays](https://www.npmjs.com/package/available-typed-arrays) (version 1.0.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2020 Inspect JS - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -16874,29 +16662,28 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [aws4](https://www.npmjs.com/package/aws4) (version 1.11.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2013 Michael Hart (michael.hart.au@gmail.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -16904,31 +16691,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [base64-js](https://www.npmjs.com/package/base64-js) (version 1.5.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014 Jameson Little - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -16936,29 +16722,28 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [basic-ftp](https://www.npmjs.com/package/basic-ftp) (version 5.0.5) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright (c) 2019 Patrick Juchli - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -16967,24 +16752,22 @@ License files: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [bcrypt-pbkdf](https://www.npmjs.com/package/bcrypt-pbkdf) (version 1.0.2) - License tags: BSD-3-Clause License files: - -- LICENSE: +* LICENSE: The Blowfish portions are under the following license: - + Blowfish block cipher for OpenBSD Copyright 1997 Niels Provos All rights reserved. - + Implementation advice by David Mazieres . - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -16995,7 +16778,7 @@ License files: documentation and/or other materials provided with the distribution. 3. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. @@ -17006,17 +16789,17 @@ License files: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - - + + + The bcrypt_pbkdf portions are under the following license: - + Copyright (c) 2013 Ted Unangst - + Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -17024,18 +16807,18 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - - - + + + Performance improvements (Javascript-specific): - + Copyright 2016, Joyent Inc Author: Alex Wilson - + Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -17043,79 +16826,54 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [big-integer](https://www.npmjs.com/package/big-integer) (version 1.6.52) - License tags: Unlicense License files: - -- LICENSE: - - This is free and unencumbered software released into the public domain. +* LICENSE: + + This is free and unencumbered software released into the public domain. + + Anyone is free to copy, modify, publish, use, compile, sell, or + distribute this software, either in source code form or as a compiled + binary, for any purpose, commercial or non-commercial, and by any + means. + + In jurisdictions that recognize copyright laws, the author or authors + of this software dedicate any and all copyright interest in the + software to the public domain. We make this dedication for the benefit + of the public at large and to the detriment of our heirs and + successors. We intend this dedication to be an overt act of + relinquishment in perpetuity of all present and future rights to this + software under copyright law. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR + OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + + For more information, please refer to + + +### [bindings](https://www.npmjs.com/package/bindings) (version 1.5.0) +License tags: MIT - Anyone is free to copy, modify, publish, use, compile, sell, or - - distribute this software, either in source code form or as a compiled - - binary, for any purpose, commercial or non-commercial, and by any - - means. - - - - In jurisdictions that recognize copyright laws, the author or authors - - of this software dedicate any and all copyright interest in the - - software to the public domain. We make this dedication for the benefit - - of the public at large and to the detriment of our heirs and - - successors. We intend this dedication to be an overt act of - - relinquishment in perpetuity of all present and future rights to this - - software under copyright law. - - - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - - IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR - - OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - - ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - - OTHER DEALINGS IN THE SOFTWARE. - - - - For more information, please refer to - - - -### [bindings](https://www.npmjs.com/package/bindings) (version 1.5.0) - -License tags: MIT - -License files: - -- LICENSE.md: +License files: +* LICENSE.md: (The MIT License) - + Copyright (c) 2012 Nathan Rajlich <nathan@tootallnate.net> - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -17123,10 +16881,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -17134,46 +16892,44 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [bl](https://www.npmjs.com/package/bl) (version 4.1.0) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: The MIT License (MIT) ===================== - + Copyright (c) 2013-2019 bl contributors ---------------------------------- - + *bl contributors listed at * - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [body-parser](https://www.npmjs.com/package/body-parser) (version 1.20.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014 Jonathan Ong Copyright (c) 2014-2015 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -17181,10 +16937,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -17192,37 +16948,35 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [bplist-parser](https://www.npmjs.com/package/bplist-parser) (version 0.2.0) - License tags: MIT - - -### [bson](https://www.npmjs.com/package/bson) (version 6.7.0) + +### [bson](https://www.npmjs.com/package/bson) (version 6.8.0) License tags: Apache-2.0 License files: - -- LICENSE.md: +* LICENSE.md: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -17230,24 +16984,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -17255,7 +17009,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -17269,18 +17023,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -17296,24 +17050,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -17330,14 +17084,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -17345,12 +17099,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -17360,7 +17114,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -17372,7 +17126,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -17383,11 +17137,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include @@ -17396,63 +17150,59 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright [yyyy] [name of copyright owner] - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [buffer-alloc-unsafe](https://www.npmjs.com/package/buffer-alloc-unsafe) (version 1.1.0) - License tags: MIT - + ### [buffer-alloc](https://www.npmjs.com/package/buffer-alloc) (version 1.2.0) - License tags: MIT - + ### [buffer-fill](https://www.npmjs.com/package/buffer-fill) (version 1.0.0) - License tags: MIT - + ### [buffer](https://www.npmjs.com/package/buffer) (version 5.7.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) Feross Aboukhadijeh, and other 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 in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -17460,42 +17210,40 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [bundle-name](https://www.npmjs.com/package/bundle-name) (version 3.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [bytes](https://www.npmjs.com/package/bytes) (version 3.1.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2012-2014 TJ Holowaychuk Copyright (c) 2015 Jed Watson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -17503,10 +17251,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -17514,31 +17262,30 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [call-bind](https://www.npmjs.com/package/call-bind) (version 1.0.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2020 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -17546,85 +17293,81 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [chalk](https://www.npmjs.com/package/chalk) (version 2.4.2) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [chalk](https://www.npmjs.com/package/chalk) (version 3.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [chalk](https://www.npmjs.com/package/chalk) (version 4.1.2) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [chownr](https://www.npmjs.com/package/chownr) (version 2.0.0) - License tags: ISC License files: - -- LICENSE: +* LICENSE: The ISC License - + Copyright (c) Isaac Z. Schlueter and Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -17632,51 +17375,49 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [clean-stack](https://www.npmjs.com/package/clean-stack) (version 2.2.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [clipboard](https://www.npmjs.com/package/clipboard) (version 2.0.10) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Zeno Rocha - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -17684,45 +17425,42 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [closest](https://www.npmjs.com/package/closest) (version 0.0.1) - License tags: MIT - + ### [clsx](https://www.npmjs.com/package/clsx) (version 1.1.1) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Luke Edwards (lukeed.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [color-convert](https://www.npmjs.com/package/color-convert) (version 1.9.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (c) 2011-2016 Heather Arthur - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -17730,10 +17468,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -17741,19 +17479,19 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [color-convert](https://www.npmjs.com/package/color-convert) (version 2.0.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (c) 2011-2016 Heather Arthur - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -17761,10 +17499,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -17772,79 +17510,60 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [color-name](https://www.npmjs.com/package/color-name) (version 1.1.3) - License tags: MIT License files: +* LICENSE: -- LICENSE: - - The MIT License (MIT) - - Copyright (c) 2015 Dmitry Ivanov - - - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - - - - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - - + The MIT License (MIT) + Copyright (c) 2015 Dmitry Ivanov + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [color-name](https://www.npmjs.com/package/color-name) (version 1.1.4) - License tags: MIT License files: +* LICENSE: -- LICENSE: - - The MIT License (MIT) - - Copyright (c) 2015 Dmitry Ivanov - - - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - - - - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - - + The MIT License (MIT) + Copyright (c) 2015 Dmitry Ivanov + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [component-event](https://www.npmjs.com/package/component-event) (version 0.1.4) - License tags: MIT - + ### [content-disposition](https://www.npmjs.com/package/content-disposition) (version 0.5.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014-2017 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -17852,10 +17571,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -17863,21 +17582,20 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [content-type](https://www.npmjs.com/package/content-type) (version 1.0.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2015 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -17885,10 +17603,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -17896,20 +17614,19 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [convert-source-map](https://www.npmjs.com/package/convert-source-map) (version 2.0.0) - License tags: MIT License files: +* LICENSE: -- LICENSE: - - Copyright 2013 Thorsten Lorenz. + Copyright 2013 Thorsten Lorenz. All rights reserved. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without @@ -17918,10 +17635,10 @@ License files: copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -17930,28 +17647,26 @@ License files: WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [cookie-signature](https://www.npmjs.com/package/cookie-signature) (version 1.0.6) - License tags: MIT - - -### [cookie](https://www.npmjs.com/package/cookie) (version 0.6.0) + +### [cookie](https://www.npmjs.com/package/cookie) (version 0.7.1) License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2012-2014 Roman Shtylman Copyright (c) 2015 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -17959,10 +17674,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -17970,29 +17685,29 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [core-js](https://www.npmjs.com/package/core-js) (version 3.17.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (c) 2014-2021 Denis Pushkarev - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -18000,77 +17715,56 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [cpu-features](https://www.npmjs.com/package/cpu-features) (version 0.0.9) - License tags: MIT License files: - -- LICENSE: - - Copyright Brian White. All rights reserved. - - - - Permission is hereby granted, free of charge, to any person obtaining a copy - - of this software and associated documentation files (the "Software"), to - - deal in the Software without restriction, including without limitation the - - rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - - sell copies of the Software, and to permit persons to whom the Software is - - furnished to do so, subject to the following conditions: - - - - The above copyright notice and this permission notice shall be included in - - all copies or substantial portions of the Software. - - - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - - FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - +* LICENSE: + + Copyright Brian White. All rights reserved. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to + deal in the Software without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [crelt](https://www.npmjs.com/package/crelt) (version 1.0.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (C) 2020 by Marijn Haverbeke - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -18078,31 +17772,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [cross-fetch](https://www.npmjs.com/package/cross-fetch) (version 3.1.8) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2017 Leonardo Quixadá - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -18110,31 +17803,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [cross-spawn](https://www.npmjs.com/package/cross-spawn) (version 7.0.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2018 Made With MOXY Lda - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -18142,19 +17834,18 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [css-loader](https://www.npmjs.com/package/css-loader) (version 4.3.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright JS Foundation and other 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 in the Software without restriction, including @@ -18162,10 +17853,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -18173,59 +17864,57 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [d3-flextree](https://www.npmjs.com/package/d3-flextree) (version 2.1.2) - License tags: WTFPL License files: - -- LICENSE: +* LICENSE: DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE Version 2, December 2004 - + Copyright (C) 2004 Sam Hocevar - + Everyone is permitted to copy and distribute verbatim or modified copies of this license document, and changing it is allowed as long as the name is changed. - + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - + 0. You just DO WHAT THE FUCK YOU WANT TO. + + - ### [d3-hierarchy](https://www.npmjs.com/package/d3-hierarchy) (version 1.1.9) - License tags: BSD-3-Clause License files: - -- LICENSE: +* LICENSE: Copyright 2010-2016 Mike Bostock All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + * Neither the name of the author nor the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -18236,34 +17925,33 @@ License files: ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [d3-timer](https://www.npmjs.com/package/d3-timer) (version 1.0.3) - License tags: BSD-3-Clause License files: - -- LICENSE: +* LICENSE: Copyright 2010-2016 Mike Bostock All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + * Neither the name of the author nor the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -18274,33 +17962,32 @@ License files: ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [d3](https://www.npmjs.com/package/d3) (version 3.5.17) - License tags: BSD-3-Clause License files: - -- LICENSE: +* LICENSE: Copyright (c) 2010-2016, Michael Bostock All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + * The name Michael Bostock may not be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -18311,27 +17998,25 @@ License files: OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [data-uri-to-buffer](https://www.npmjs.com/package/data-uri-to-buffer) (version 4.0.1) - License tags: MIT - + ### [data-uri-to-buffer](https://www.npmjs.com/package/data-uri-to-buffer) (version 6.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014 Nathan Rajlich - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -18339,10 +18024,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -18351,169 +18036,166 @@ License files: TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [debug](https://www.npmjs.com/package/debug) (version 2.6.9) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014 TJ Holowaychuk - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software - and associated documentation files (the 'Software'), to deal in the Software without restriction, - including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the 'Software'), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or substantial + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT - LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT + LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [debug](https://www.npmjs.com/package/debug) (version 4.3.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014-2017 TJ Holowaychuk Copyright (c) 2018-2021 Josh Junon - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [debug](https://www.npmjs.com/package/debug) (version 4.3.6) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014-2017 TJ Holowaychuk Copyright (c) 2018-2021 Josh Junon - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [debug](https://www.npmjs.com/package/debug) (version 4.3.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014-2017 TJ Holowaychuk Copyright (c) 2018-2021 Josh Junon - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [decompress-response](https://www.npmjs.com/package/decompress-response) (version 5.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [deep-equal](https://www.npmjs.com/package/deep-equal) (version 2.2.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2012, 2013, 2014 James Halliday , 2009 Thomas Robinson <280north.com> - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -18521,102 +18203,98 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [deep-extend](https://www.npmjs.com/package/deep-extend) (version 0.6.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2013-2018, Viacheslav Lotsmanov - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [default-browser-id](https://www.npmjs.com/package/default-browser-id) (version 3.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [default-browser](https://www.npmjs.com/package/default-browser) (version 4.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [define-data-property](https://www.npmjs.com/package/define-data-property) (version 1.1.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2023 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -18624,51 +18302,49 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [define-lazy-prop](https://www.npmjs.com/package/define-lazy-prop) (version 3.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [define-properties](https://www.npmjs.com/package/define-properties) (version 1.2.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (C) 2015 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -18677,38 +18353,33 @@ License files: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [degenerator](https://www.npmjs.com/package/degenerator) (version 5.0.1) - License tags: MIT - + ### [delegate-events](https://www.npmjs.com/package/delegate-events) (version 1.1.1) - License tags: MIT - + ### [delegate](https://www.npmjs.com/package/delegate) (version 3.2.0) - License tags: MIT - + ### [depd](https://www.npmjs.com/package/depd) (version 2.0.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014-2018 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -18716,10 +18387,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -18727,32 +18398,32 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [destroy](https://www.npmjs.com/package/destroy) (version 1.2.0) - License tags: MIT License files: +* LICENSE: -- LICENSE: - + The MIT License (MIT) - + Copyright (c) 2014 Jonathan Ong me@jongleberry.com Copyright (c) 2015-2022 Douglas Christopher Wilson doug@somethingdoug.com - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -18760,31 +18431,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [detect-libc](https://www.npmjs.com/package/detect-libc) (version 2.0.1) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -18792,24 +18462,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -18817,7 +18487,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -18831,18 +18501,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -18858,24 +18528,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -18892,14 +18562,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -18907,12 +18577,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -18922,7 +18592,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -18934,7 +18604,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -18945,11 +18615,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -18958,45 +18628,45 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright {yyyy} {name of copyright owner} - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [diff-match-patch](https://www.npmjs.com/package/diff-match-patch) (version 1.0.5) - License tags: Apache-2.0 License files: +* LICENSE: -- LICENSE: - + Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -19004,24 +18674,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -19029,7 +18699,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -19043,18 +18713,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -19070,24 +18740,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -19104,14 +18774,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -19119,12 +18789,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -19134,7 +18804,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -19146,7 +18816,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -19157,11 +18827,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include @@ -19170,45 +18840,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright [yyyy] [name of copyright owner] - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [dom-accessibility-api](https://www.npmjs.com/package/dom-accessibility-api) (version 0.5.9) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: MIT License - + Copyright (c) 2020 Sebastian Silbermann - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -19216,31 +18884,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [dom-helpers](https://www.npmjs.com/package/dom-helpers) (version 5.2.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2015 Jason Quense - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -19249,36 +18916,33 @@ License files: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [domify](https://www.npmjs.com/package/domify) (version 1.4.1) - License tags: MIT - + ### [dset](https://www.npmjs.com/package/dset) (version 3.1.4) - License tags: MIT License files: - -- license: +* license: The MIT License (MIT) - + Copyright (c) Luke Edwards (lukeed.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -19286,31 +18950,31 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ee-first](https://www.npmjs.com/package/ee-first) (version 1.1.1) - License tags: MIT License files: +* LICENSE: -- LICENSE: - + The MIT License (MIT) - + Copyright (c) 2014 Jonathan Ong me@jongleberry.com - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -19318,51 +18982,49 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [electron-dl](https://www.npmjs.com/package/electron-dl) (version 3.5.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [electron-squirrel-startup](https://www.npmjs.com/package/electron-squirrel-startup) (version 1.0.1) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -19370,24 +19032,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -19395,7 +19057,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -19409,18 +19071,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -19436,24 +19098,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -19470,14 +19132,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -19485,12 +19147,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -19500,7 +19162,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -19512,7 +19174,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -19523,11 +19185,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -19536,34 +19198,33 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright {yyyy} {name of copyright owner} - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [electron](https://www.npmjs.com/package/electron) (version 30.5.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (c) Electron contributors Copyright (c) 2013-2020 GitHub Inc. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -19571,10 +19232,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -19582,21 +19243,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [encodeurl](https://www.npmjs.com/package/encodeurl) (version 1.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2016 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -19604,10 +19264,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -19615,21 +19275,20 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [encodeurl](https://www.npmjs.com/package/encodeurl) (version 2.0.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2016 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -19637,10 +19296,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -19648,31 +19307,30 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [end-of-stream](https://www.npmjs.com/package/end-of-stream) (version 1.4.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014 Mathias Buus - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -19681,50 +19339,47 @@ License files: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [ensure-error](https://www.npmjs.com/package/ensure-error) (version 3.0.1) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [es-define-property](https://www.npmjs.com/package/es-define-property) (version 1.0.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2024 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -19732,31 +19387,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [es-errors](https://www.npmjs.com/package/es-errors) (version 1.3.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2024 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -19764,31 +19418,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [es-get-iterator](https://www.npmjs.com/package/es-get-iterator) (version 1.1.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2019 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -19796,43 +19449,41 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [escape-goat](https://www.npmjs.com/package/escape-goat) (version 2.1.1) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [escape-html](https://www.npmjs.com/package/escape-html) (version 1.0.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2012-2013 TJ Holowaychuk Copyright (c) 2015 Andreas Lubbe Copyright (c) 2015 Tiancheng "Timothy" Gu - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -19840,10 +19491,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -19851,31 +19502,30 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [escape-string-regexp](https://www.npmjs.com/package/escape-string-regexp) (version 1.0.5) - License tags: MIT License files: - -- license: +* license: The MIT License (MIT) - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -19883,28 +19533,27 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [escodegen](https://www.npmjs.com/package/escodegen) (version 2.1.0) - License tags: BSD-2-Clause License files: - -- LICENSE.BSD: +* LICENSE.BSD: Copyright (C) 2012 Yusuke Suzuki (twitter: @Constellation) and other contributors. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -19915,28 +19564,27 @@ License files: ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [esprima](https://www.npmjs.com/package/esprima) (version 4.0.1) - License tags: BSD-2-Clause License files: - -- LICENSE.BSD: +* LICENSE.BSD: Copyright JS Foundation and other contributors, https://js.foundation/ - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -19947,26 +19595,25 @@ License files: ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [estraverse](https://www.npmjs.com/package/estraverse) (version 5.2.0) - License tags: BSD-2-Clause License files: - -- LICENSE.BSD: +* LICENSE.BSD: Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -19977,26 +19624,25 @@ License files: ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [esutils](https://www.npmjs.com/package/esutils) (version 2.0.3) - License tags: BSD-2-Clause License files: - -- LICENSE.BSD: +* LICENSE.BSD: Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -20007,21 +19653,20 @@ License files: ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [etag](https://www.npmjs.com/package/etag) (version 1.8.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014-2016 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -20029,10 +19674,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -20040,31 +19685,30 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [eventemitter3](https://www.npmjs.com/package/eventemitter3) (version 1.2.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014 Arnout Kazemier - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20072,31 +19716,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [eventemitter3](https://www.npmjs.com/package/eventemitter3) (version 4.0.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014 Arnout Kazemier - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20104,77 +19747,73 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [events-mixin](https://www.npmjs.com/package/events-mixin) (version 1.3.0) - License tags: MIT - + ### [execa](https://www.npmjs.com/package/execa) (version 5.1.1) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [execa](https://www.npmjs.com/package/execa) (version 7.2.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [expand-template](https://www.npmjs.com/package/expand-template) (version 2.0.3) - License tags: (MIT OR WTFPL) License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2018 Lars-Magnus Skog - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20183,22 +19822,20 @@ License files: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - -### [express](https://www.npmjs.com/package/express) (version 4.21.0) + +### [express](https://www.npmjs.com/package/express) (version 4.21.1) License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2009-2014 TJ Holowaychuk Copyright (c) 2013-2014 Roman Shtylman Copyright (c) 2014-2015 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -20206,10 +19843,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -20217,31 +19854,30 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ext-list](https://www.npmjs.com/package/ext-list) (version 2.2.2) - License tags: MIT License files: - -- license: +* license: The MIT License (MIT) - + Copyright (c) Kevin Mårtensson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20249,31 +19885,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ext-name](https://www.npmjs.com/package/ext-name) (version 5.0.0) - License tags: MIT License files: - -- license: +* license: The MIT License (MIT) - + Copyright (c) Kevin Mårtensson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20281,37 +19916,35 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [facepaint](https://www.npmjs.com/package/facepaint) (version 1.2.1) - License tags: MIT - + ### [fast-deep-equal](https://www.npmjs.com/package/fast-deep-equal) (version 2.0.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2017 Evgeny Poberezkin - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20319,31 +19952,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [fast-memoize](https://www.npmjs.com/package/fast-memoize) (version 2.5.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2016 Caio Gondim - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20351,31 +19983,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [fast-xml-parser](https://www.npmjs.com/package/fast-xml-parser) (version 4.4.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2017 Amit Kumar Gupta - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20383,31 +20014,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [fetch-blob](https://www.npmjs.com/package/fetch-blob) (version 3.2.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2019 David Frank - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20415,19 +20045,18 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [file-uri-to-path](https://www.npmjs.com/package/file-uri-to-path) (version 1.0.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (c) 2014 Nathan Rajlich - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -20435,10 +20064,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -20446,21 +20075,20 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [finalhandler](https://www.npmjs.com/package/finalhandler) (version 1.3.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014-2022 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -20468,10 +20096,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -20479,51 +20107,49 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [first-chunk-stream](https://www.npmjs.com/package/first-chunk-stream) (version 3.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [focus-trap-react](https://www.npmjs.com/package/focus-trap-react) (version 9.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2015 David Clark - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20531,31 +20157,31 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [focus-trap](https://www.npmjs.com/package/focus-trap) (version 6.9.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2015-2016 David Clark - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20563,31 +20189,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [for-each](https://www.npmjs.com/package/for-each) (version 0.3.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2012 Raynos. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20595,31 +20220,31 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [formdata-polyfill](https://www.npmjs.com/package/formdata-polyfill) (version 4.0.10) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2016 Jimmy Karl Roland Wärting - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20627,21 +20252,20 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [forwarded](https://www.npmjs.com/package/forwarded) (version 0.2.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014-2017 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -20649,10 +20273,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -20660,22 +20284,21 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [fresh](https://www.npmjs.com/package/fresh) (version 0.5.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2012 TJ Holowaychuk Copyright (c) 2016-2017 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -20683,10 +20306,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -20694,31 +20317,30 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [fs-constants](https://www.npmjs.com/package/fs-constants) (version 1.0.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2018 Mathias Buus - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20726,55 +20348,53 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [fs-extra](https://www.npmjs.com/package/fs-extra) (version 11.2.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2011-2017 JP Richardson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [function-bind](https://www.npmjs.com/package/function-bind) (version 1.1.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (c) 2013 Raynos. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20782,31 +20402,31 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [functions-have-names](https://www.npmjs.com/package/functions-have-names) (version 1.2.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2019 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -20814,31 +20434,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [fuse.js](https://www.npmjs.com/package/fuse.js) (version 6.5.3) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -20846,24 +20465,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -20871,7 +20490,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -20885,18 +20504,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -20912,24 +20531,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -20946,14 +20565,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -20961,12 +20580,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -20976,7 +20595,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -20988,7 +20607,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -20999,11 +20618,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -21012,63 +20631,61 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2017 Kirollos Risk - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [gensync](https://www.npmjs.com/package/gensync) (version 1.0.0-beta.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2018 Logan Smyth - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [get-intrinsic](https://www.npmjs.com/package/get-intrinsic) (version 1.2.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2020 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21076,41 +20693,39 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [get-stream](https://www.npmjs.com/package/get-stream) (version 6.0.1) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [get-uri](https://www.npmjs.com/package/get-uri) (version 6.0.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014 Nathan Rajlich - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -21118,10 +20733,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -21130,85 +20745,80 @@ License files: TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [github-from-package](https://www.npmjs.com/package/github-from-package) (version 0.0.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: This software is released under the MIT license: - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [globals](https://www.npmjs.com/package/globals) (version 11.12.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [good-listener](https://www.npmjs.com/package/good-listener) (version 1.2.2) - License tags: MIT - + ### [gopd](https://www.npmjs.com/package/gopd) (version 1.0.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2022 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21216,25 +20826,24 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [graceful-fs](https://www.npmjs.com/package/graceful-fs) (version 4.2.11) - License tags: ISC License files: - -- LICENSE: +* LICENSE: The ISC License - + Copyright (c) 2011-2022 Isaac Z. Schlueter, Ben Noordhuis, and Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -21242,71 +20851,68 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [has-flag](https://www.npmjs.com/package/has-flag) (version 3.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [has-flag](https://www.npmjs.com/package/has-flag) (version 4.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [has-property-descriptors](https://www.npmjs.com/package/has-property-descriptors) (version 1.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2022 Inspect JS - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21314,31 +20920,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [has-proto](https://www.npmjs.com/package/has-proto) (version 1.0.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2022 Inspect JS - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21346,31 +20951,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [has-symbols](https://www.npmjs.com/package/has-symbols) (version 1.0.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2016 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21378,31 +20982,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [has-tostringtag](https://www.npmjs.com/package/has-tostringtag) (version 1.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2021 Inspect JS - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21410,31 +21013,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [hasown](https://www.npmjs.com/package/hasown) (version 2.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Jordan Harband and 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 in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21442,36 +21044,35 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [heap-js](https://www.npmjs.com/package/heap-js) (version 2.3.0) - License tags: BSD-3-Clause License files: - -- LICENSE: +* LICENSE: BSD 3-Clause License - + Copyright (c) 2017, Ignacio Lago All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -21482,36 +21083,35 @@ License files: CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [highlight.js](https://www.npmjs.com/package/highlight.js) (version 11.5.1) - License tags: BSD-3-Clause License files: - -- LICENSE: +* LICENSE: BSD 3-Clause License - + Copyright (c) 2006, Ivan Sagalaev. All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -21522,31 +21122,30 @@ License files: CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [highlightjs-graphql](https://www.npmjs.com/package/highlightjs-graphql) (version 1.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2019 David Peek - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21554,27 +21153,26 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [hoist-non-react-statics](https://www.npmjs.com/package/hoist-non-react-statics) (version 3.3.2) - License tags: BSD-3-Clause License files: - -- LICENSE.md: +* LICENSE.md: Software License Agreement (BSD License) ======================================== - + Copyright (c) 2015, Yahoo! Inc. All rights reserved. ---------------------------------------------------- - + Redistribution and use of this software in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, @@ -21583,7 +21181,7 @@ License files: * Neither the name of Yahoo! Inc. nor the names of YUI's contributors may be used to endorse or promote products derived from this software without specific prior written permission of Yahoo! Inc. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -21594,32 +21192,32 @@ License files: ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [http-errors](https://www.npmjs.com/package/http-errors) (version 2.0.0) - License tags: MIT License files: +* LICENSE: -- LICENSE: - + The MIT License (MIT) - + Copyright (c) 2014 Jonathan Ong me@jongleberry.com Copyright (c) 2016 Douglas Christopher Wilson doug@somethingdoug.com - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -21627,21 +21225,20 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [http-proxy-agent](https://www.npmjs.com/package/http-proxy-agent) (version 7.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2013 Nathan Rajlich - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -21649,10 +21246,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -21660,21 +21257,20 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [https-proxy-agent](https://www.npmjs.com/package/https-proxy-agent) (version 7.0.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2013 Nathan Rajlich - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -21682,10 +21278,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -21694,30 +21290,28 @@ License files: TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [human-signals](https://www.npmjs.com/package/human-signals) (version 2.1.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -21725,24 +21319,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -21750,7 +21344,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -21764,18 +21358,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -21791,24 +21385,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -21825,14 +21419,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -21840,12 +21434,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -21855,7 +21449,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -21867,7 +21461,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -21878,11 +21472,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include @@ -21891,45 +21485,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2019 ehmicky - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [human-signals](https://www.npmjs.com/package/human-signals) (version 4.3.1) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -21937,24 +21530,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -21962,7 +21555,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -21976,18 +21569,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -22003,24 +21596,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -22037,14 +21630,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -22052,12 +21645,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -22067,7 +21660,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -22079,7 +21672,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -22090,11 +21683,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include @@ -22103,33 +21696,32 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2022 ehmicky - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [iconv-lite](https://www.npmjs.com/package/iconv-lite) (version 0.4.24) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (c) 2011 Alexander Shtuchkin - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -22137,10 +21729,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -22148,53 +21740,51 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [ieee754](https://www.npmjs.com/package/ieee754) (version 1.2.1) - License tags: BSD-3-Clause License files: - -- LICENSE: +* LICENSE: Copyright 2008 Fair Oaks Labs, Inc. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [imurmurhash](https://www.npmjs.com/package/imurmurhash) (version 0.1.4) - License tags: MIT - + ### [inherits](https://www.npmjs.com/package/inherits) (version 2.0.4) - License tags: ISC License files: - -- LICENSE: +* LICENSE: The ISC License - + Copyright (c) Isaac Z. Schlueter - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, @@ -22202,25 +21792,25 @@ License files: LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + - + ### [ini](https://www.npmjs.com/package/ini) (version 1.3.8) - License tags: ISC License files: - -- LICENSE: +* LICENSE: The ISC License - + Copyright (c) Isaac Z. Schlueter and Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -22228,31 +21818,30 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [internal-slot](https://www.npmjs.com/package/internal-slot) (version 1.0.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2019 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -22260,31 +21849,31 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [interruptor](https://www.npmjs.com/package/interruptor) (version 1.0.2) - License tags: Apache-2.0 License files: +* LICENSE: -- LICENSE: - + Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -22292,24 +21881,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -22317,7 +21906,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -22331,18 +21920,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -22358,24 +21947,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -22392,14 +21981,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -22407,12 +21996,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -22422,7 +22011,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -22434,7 +22023,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -22445,45 +22034,45 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + Copyright 2020 MongoDB Inc. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + + - + ### [ip-address](https://www.npmjs.com/package/ip-address) (version 9.0.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (C) 2011 by Beau Gunderson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -22491,29 +22080,28 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ipaddr.js](https://www.npmjs.com/package/ipaddr.js) (version 1.9.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (C) 2011-2017 whitequark - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -22521,29 +22109,28 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ipaddr.js](https://www.npmjs.com/package/ipaddr.js) (version 2.1.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (C) 2011-2017 whitequark - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -22551,68 +22138,65 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ipv6-normalize](https://www.npmjs.com/package/ipv6-normalize) (version 1.0.1) - License tags: MIT - + ### [is-arguments](https://www.npmjs.com/package/is-arguments) (version 1.1.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [is-array-buffer](https://www.npmjs.com/package/is-array-buffer) (version 3.0.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2015 Chen Gengyuan, Inspect JS - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -22620,31 +22204,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [is-bigint](https://www.npmjs.com/package/is-bigint) (version 1.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2018 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -22652,31 +22235,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [is-boolean-object](https://www.npmjs.com/package/is-boolean-object) (version 1.1.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2015 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -22684,31 +22266,31 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [is-callable](https://www.npmjs.com/package/is-callable) (version 1.2.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2015 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -22716,31 +22298,31 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [is-date-object](https://www.npmjs.com/package/is-date-object) (version 1.0.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2015 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -22748,97 +22330,93 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [is-docker](https://www.npmjs.com/package/is-docker) (version 2.2.1) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [is-docker](https://www.npmjs.com/package/is-docker) (version 3.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [is-electron-renderer](https://www.npmjs.com/package/is-electron-renderer) (version 2.0.1) - License tags: MIT - + ### [is-inside-container](https://www.npmjs.com/package/is-inside-container) (version 1.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [is-map](https://www.npmjs.com/package/is-map) (version 2.0.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2019 Inspect JS - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -22846,31 +22424,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [is-number-object](https://www.npmjs.com/package/is-number-object) (version 1.0.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2015 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -22878,31 +22455,31 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [is-plain-obj](https://www.npmjs.com/package/is-plain-obj) (version 1.1.0) - License tags: MIT License files: - -- license: +* license: The MIT License (MIT) - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -22910,62 +22487,60 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [is-regex](https://www.npmjs.com/package/is-regex) (version 1.1.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [is-set](https://www.npmjs.com/package/is-set) (version 2.0.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2019 Inspect JS - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -22973,31 +22548,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [is-shared-array-buffer](https://www.npmjs.com/package/is-shared-array-buffer) (version 1.0.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2021 Inspect JS - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -23005,71 +22579,68 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [is-stream](https://www.npmjs.com/package/is-stream) (version 2.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [is-stream](https://www.npmjs.com/package/is-stream) (version 3.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [is-string](https://www.npmjs.com/package/is-string) (version 1.0.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2015 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -23077,31 +22648,31 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [is-symbol](https://www.npmjs.com/package/is-symbol) (version 1.0.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2015 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -23109,51 +22680,50 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [is-utf8](https://www.npmjs.com/package/is-utf8) (version 0.2.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (C) 2014 Wei Fanzhe - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:    The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [is-weakmap](https://www.npmjs.com/package/is-weakmap) (version 2.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2019 Inspect JS - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -23161,31 +22731,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [is-weakset](https://www.npmjs.com/package/is-weakset) (version 2.0.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2019 Inspect JS - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -23193,51 +22762,49 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [is-wsl](https://www.npmjs.com/package/is-wsl) (version 2.2.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [isarray](https://www.npmjs.com/package/isarray) (version 2.0.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2013 Julian Gruber - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -23245,25 +22812,24 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [isexe](https://www.npmjs.com/package/isexe) (version 2.0.0) - License tags: ISC License files: - -- LICENSE: +* LICENSE: The ISC License - + Copyright (c) Isaac Z. Schlueter and Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -23271,31 +22837,30 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [javascript-stringify](https://www.npmjs.com/package/javascript-stringify) (version 2.1.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2013 Blake Embrey (hello@blakeembrey.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -23303,31 +22868,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [jose](https://www.npmjs.com/package/jose) (version 4.15.5) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: The MIT License (MIT) - + Copyright (c) 2018 Filip Skokan - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -23335,31 +22899,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [js-tokens](https://www.npmjs.com/package/js-tokens) (version 4.0.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014, 2015, 2016, 2017, 2018 Simon Lydell - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -23367,31 +22930,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [js-yaml](https://www.npmjs.com/package/js-yaml) (version 3.14.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (C) 2011-2015 by Vitaly Puzrin - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -23399,31 +22961,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [js-yaml](https://www.npmjs.com/package/js-yaml) (version 4.1.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (C) 2011-2015 by Vitaly Puzrin - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -23431,22 +22992,21 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [jsbn](https://www.npmjs.com/package/jsbn) (version 1.1.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Licensing --------- - + This software is covered under the following copyright: - + /* * Copyright (c) 2003-2005 Tom Wu * All Rights Reserved. @@ -23462,9 +23022,9 @@ License files: * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * - * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, - * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY - * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. * * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL, * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER @@ -23477,24 +23037,23 @@ License files: * All redistributions must retain an intact copy of this copyright notice * and disclaimer. */ - + Address all questions regarding this license to: - + Tom Wu tjw@cs.Stanford.EDU + - + ### [jsesc](https://www.npmjs.com/package/jsesc) (version 2.5.2) - License tags: MIT License files: - -- LICENSE-MIT.txt: +* LICENSE-MIT.txt: Copyright Mathias Bynens - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -23502,10 +23061,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -23513,31 +23072,30 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [json5](https://www.npmjs.com/package/json5) (version 2.2.3) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: MIT License - + Copyright (c) 2012-2018 Aseem Kishore, and [others]. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -23545,65 +23103,62 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + [others]: https://github.com/json5/json5/contributors + - + ### [jsondiffpatch](https://www.npmjs.com/package/jsondiffpatch) (version 0.5.0) - License tags: MIT - + ### [jsonfile](https://www.npmjs.com/package/jsonfile) (version 6.1.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2012-2015, JP Richardson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [kerberos](https://www.npmjs.com/package/kerberos) (version 2.1.1) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -23611,24 +23166,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -23636,7 +23191,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -23650,18 +23205,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -23677,24 +23232,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -23711,14 +23266,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -23726,12 +23281,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -23741,7 +23296,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -23753,7 +23308,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -23764,11 +23319,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include @@ -23777,39 +23332,37 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright [yyyy] [name of copyright owner] - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [key-tree-store](https://www.npmjs.com/package/key-tree-store) (version 1.3.0) - License tags: MIT - + ### [keytar](https://www.npmjs.com/package/keytar) (version 7.9.0) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: Copyright (c) 2013 GitHub Inc. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -23817,10 +23370,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -23828,32 +23381,31 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [leaflet-defaulticon-compatibility](https://www.npmjs.com/package/leaflet-defaulticon-compatibility) (version 0.1.1) - License tags: BSD-2-Clause License files: - -- LICENSE: +* LICENSE: BSD 2-Clause License - + Copyright (c) 2018, ghybs All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -23864,93 +23416,68 @@ License files: CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [leaflet-draw](https://www.npmjs.com/package/leaflet-draw) (version 1.0.4) - License tags: MIT - + ### [leaflet](https://www.npmjs.com/package/leaflet) (version 1.5.1) - License tags: BSD-2-Clause License files: - -- LICENSE: - - Copyright (c) 2010-2018, Vladimir Agafonkin - - Copyright (c) 2010-2011, CloudMade - - All rights reserved. - - - - Redistribution and use in source and binary forms, with or without modification, are - - permitted provided that the following conditions are met: - - - - 1. Redistributions of source code must retain the above copyright notice, this list of - - conditions and the following disclaimer. - - - - 2. Redistributions in binary form must reproduce the above copyright notice, this list - - of conditions and the following disclaimer in the documentation and/or other materials - - provided with the distribution. - +* LICENSE: + + Copyright (c) 2010-2018, Vladimir Agafonkin + Copyright (c) 2010-2011, CloudMade + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are + permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list + of conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY - - EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - - COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR - - TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - ### [local-links](https://www.npmjs.com/package/local-links) (version 1.4.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014 Luke Karrys - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -23958,31 +23485,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash-es](https://www.npmjs.com/package/lodash-es) (version 4.17.21) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright OpenJS Foundation and other contributors - + Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + This software consists of voluntary contributions made by many individuals. For exact contribution history, see the revision history available at https://github.com/lodash/lodash - + The following license applies to all parts of this software except as documented below: - + ==== - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -23990,10 +23516,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24001,36 +23527,35 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ==== - + Copyright and related rights for sample code are waived via CC0. Sample code is defined as all source code displayed within the prose of the documentation. - + CC0: http://creativecommons.org/publicdomain/zero/1.0/ - + ==== - + Files located in the node_modules and vendor directories are externally maintained libraries used by this software which have their own licenses; we recommend you read them, as their terms may differ from the terms above. + - - -### [lodash.\_arrayeach](https://www.npmjs.com/package/lodash._arrayeach) (version 3.0.0) + +### [lodash._arrayeach](https://www.npmjs.com/package/lodash._arrayeach) (version 3.0.0) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js 1.7.0, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24038,10 +23563,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24049,21 +23574,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_arraymap](https://www.npmjs.com/package/lodash._arraymap) (version 3.0.0) + +### [lodash._arraymap](https://www.npmjs.com/package/lodash._arraymap) (version 3.0.0) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js 1.7.0, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24071,10 +23595,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24082,21 +23606,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_baseassign](https://www.npmjs.com/package/lodash._baseassign) (version 3.2.0) + +### [lodash._baseassign](https://www.npmjs.com/package/lodash._baseassign) (version 3.2.0) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24104,10 +23627,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24115,21 +23638,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_basecallback](https://www.npmjs.com/package/lodash._basecallback) (version 3.3.1) + +### [lodash._basecallback](https://www.npmjs.com/package/lodash._basecallback) (version 3.3.1) License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24137,10 +23659,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24148,21 +23670,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_basecopy](https://www.npmjs.com/package/lodash._basecopy) (version 3.0.1) + +### [lodash._basecopy](https://www.npmjs.com/package/lodash._basecopy) (version 3.0.1) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24170,10 +23691,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24181,21 +23702,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_basedifference](https://www.npmjs.com/package/lodash._basedifference) (version 3.0.3) + +### [lodash._basedifference](https://www.npmjs.com/package/lodash._basedifference) (version 3.0.3) License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24203,10 +23723,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24214,21 +23734,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_baseeach](https://www.npmjs.com/package/lodash._baseeach) (version 3.0.4) + +### [lodash._baseeach](https://www.npmjs.com/package/lodash._baseeach) (version 3.0.4) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24236,10 +23755,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24247,21 +23766,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_basefind](https://www.npmjs.com/package/lodash._basefind) (version 3.0.0) + +### [lodash._basefind](https://www.npmjs.com/package/lodash._basefind) (version 3.0.0) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js 1.7.0, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24269,10 +23787,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24280,21 +23798,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_basefindindex](https://www.npmjs.com/package/lodash._basefindindex) (version 3.6.0) + +### [lodash._basefindindex](https://www.npmjs.com/package/lodash._basefindindex) (version 3.6.0) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24302,10 +23819,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24313,21 +23830,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_baseflatten](https://www.npmjs.com/package/lodash._baseflatten) (version 3.1.4) + +### [lodash._baseflatten](https://www.npmjs.com/package/lodash._baseflatten) (version 3.1.4) License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24335,10 +23851,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24346,21 +23862,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_basefor](https://www.npmjs.com/package/lodash._basefor) (version 3.0.3) + +### [lodash._basefor](https://www.npmjs.com/package/lodash._basefor) (version 3.0.3) License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2016 The Dojo Foundation Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24368,10 +23883,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24379,21 +23894,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_baseget](https://www.npmjs.com/package/lodash._baseget) (version 3.7.2) + +### [lodash._baseget](https://www.npmjs.com/package/lodash._baseget) (version 3.7.2) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24401,10 +23915,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24412,21 +23926,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_baseindexof](https://www.npmjs.com/package/lodash._baseindexof) (version 3.1.0) + +### [lodash._baseindexof](https://www.npmjs.com/package/lodash._baseindexof) (version 3.1.0) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js 1.7.0, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24434,10 +23947,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24445,21 +23958,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_baseisequal](https://www.npmjs.com/package/lodash._baseisequal) (version 3.0.7) + +### [lodash._baseisequal](https://www.npmjs.com/package/lodash._baseisequal) (version 3.0.7) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24467,10 +23979,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24478,21 +23990,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_baseslice](https://www.npmjs.com/package/lodash._baseslice) (version 3.0.3) + +### [lodash._baseslice](https://www.npmjs.com/package/lodash._baseslice) (version 3.0.3) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24500,10 +24011,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24511,21 +24022,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_baseuniq](https://www.npmjs.com/package/lodash._baseuniq) (version 3.0.3) + +### [lodash._baseuniq](https://www.npmjs.com/package/lodash._baseuniq) (version 3.0.3) License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24533,10 +24043,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24544,21 +24054,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_basevalues](https://www.npmjs.com/package/lodash._basevalues) (version 3.0.0) + +### [lodash._basevalues](https://www.npmjs.com/package/lodash._basevalues) (version 3.0.0) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js 1.7.0, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24566,10 +24075,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24577,21 +24086,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_bindcallback](https://www.npmjs.com/package/lodash._bindcallback) (version 3.0.1) + +### [lodash._bindcallback](https://www.npmjs.com/package/lodash._bindcallback) (version 3.0.1) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24599,10 +24107,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24610,21 +24118,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_cacheindexof](https://www.npmjs.com/package/lodash._cacheindexof) (version 3.0.2) + +### [lodash._cacheindexof](https://www.npmjs.com/package/lodash._cacheindexof) (version 3.0.2) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24632,10 +24139,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24643,21 +24150,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_createassigner](https://www.npmjs.com/package/lodash._createassigner) (version 3.1.1) + +### [lodash._createassigner](https://www.npmjs.com/package/lodash._createassigner) (version 3.1.1) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24665,10 +24171,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24676,21 +24182,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_createcache](https://www.npmjs.com/package/lodash._createcache) (version 3.1.2) + +### [lodash._createcache](https://www.npmjs.com/package/lodash._createcache) (version 3.1.2) License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24698,10 +24203,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24709,21 +24214,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_createwrapper](https://www.npmjs.com/package/lodash._createwrapper) (version 3.2.0) + +### [lodash._createwrapper](https://www.npmjs.com/package/lodash._createwrapper) (version 3.2.0) License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2016 The Dojo Foundation Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24731,10 +24235,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24742,21 +24246,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_getnative](https://www.npmjs.com/package/lodash._getnative) (version 3.9.1) + +### [lodash._getnative](https://www.npmjs.com/package/lodash._getnative) (version 3.9.1) License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24764,10 +24267,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24775,21 +24278,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_invokepath](https://www.npmjs.com/package/lodash._invokepath) (version 3.7.2) + +### [lodash._invokepath](https://www.npmjs.com/package/lodash._invokepath) (version 3.7.2) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24797,10 +24299,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24808,21 +24310,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_isiterateecall](https://www.npmjs.com/package/lodash._isiterateecall) (version 3.0.9) + +### [lodash._isiterateecall](https://www.npmjs.com/package/lodash._isiterateecall) (version 3.0.9) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24830,10 +24331,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24841,21 +24342,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_pickbyarray](https://www.npmjs.com/package/lodash._pickbyarray) (version 3.0.2) + +### [lodash._pickbyarray](https://www.npmjs.com/package/lodash._pickbyarray) (version 3.0.2) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24863,10 +24363,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24874,21 +24374,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_pickbycallback](https://www.npmjs.com/package/lodash._pickbycallback) (version 3.0.0) + +### [lodash._pickbycallback](https://www.npmjs.com/package/lodash._pickbycallback) (version 3.0.0) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js 1.7.0, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24896,10 +24395,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24907,21 +24406,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_replaceholders](https://www.npmjs.com/package/lodash._replaceholders) (version 3.0.0) + +### [lodash._replaceholders](https://www.npmjs.com/package/lodash._replaceholders) (version 3.0.0) License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js 1.7.0, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24929,10 +24427,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -24940,33 +24438,32 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_root](https://www.npmjs.com/package/lodash._root) (version 3.0.1) + +### [lodash._root](https://www.npmjs.com/package/lodash._root) (version 3.0.1) License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright 2012-2016 The Dojo Foundation Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -24974,21 +24471,20 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - - -### [lodash.\_topath](https://www.npmjs.com/package/lodash._topath) (version 3.8.1) + +### [lodash._topath](https://www.npmjs.com/package/lodash._topath) (version 3.8.1) License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -24996,10 +24492,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25007,21 +24503,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.assign](https://www.npmjs.com/package/lodash.assign) (version 3.2.0) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25029,10 +24524,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25040,21 +24535,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.before](https://www.npmjs.com/package/lodash.before) (version 3.0.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25062,10 +24556,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25073,21 +24567,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.bind](https://www.npmjs.com/package/lodash.bind) (version 3.1.0) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25095,10 +24588,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25106,21 +24599,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.difference](https://www.npmjs.com/package/lodash.difference) (version 3.2.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25128,10 +24620,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25139,21 +24631,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.escape](https://www.npmjs.com/package/lodash.escape) (version 3.2.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2016 The Dojo Foundation Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25161,10 +24652,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25172,21 +24663,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.find](https://www.npmjs.com/package/lodash.find) (version 3.2.1) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25194,10 +24684,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25205,21 +24695,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.flatten](https://www.npmjs.com/package/lodash.flatten) (version 3.0.2) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25227,10 +24716,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25238,21 +24727,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.foreach](https://www.npmjs.com/package/lodash.foreach) (version 3.0.3) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25260,10 +24748,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25271,21 +24759,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.forown](https://www.npmjs.com/package/lodash.forown) (version 3.0.2) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25293,10 +24780,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25304,21 +24791,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.get](https://www.npmjs.com/package/lodash.get) (version 3.7.0) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25326,10 +24812,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25337,21 +24823,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.has](https://www.npmjs.com/package/lodash.has) (version 3.2.1) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25359,10 +24844,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25370,21 +24855,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.includes](https://www.npmjs.com/package/lodash.includes) (version 3.1.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25392,10 +24876,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25403,21 +24887,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.invoke](https://www.npmjs.com/package/lodash.invoke) (version 3.2.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25425,10 +24908,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25436,31 +24919,30 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.isarguments](https://www.npmjs.com/package/lodash.isarguments) (version 3.1.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright jQuery Foundation and other contributors - + Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + This software consists of voluntary contributions made by many individuals. For exact contribution history, see the revision history available at https://github.com/lodash/lodash - + The following license applies to all parts of this software except as documented below: - + ==== - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25468,10 +24950,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25479,36 +24961,35 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ==== - + Copyright and related rights for sample code are waived via CC0. Sample code is defined as all source code displayed within the prose of the documentation. - + CC0: http://creativecommons.org/publicdomain/zero/1.0/ - + ==== - + Files located in the node_modules and vendor directories are externally maintained libraries used by this software which have their own licenses; we recommend you read them, as their terms may differ from the terms above. + - + ### [lodash.isarray](https://www.npmjs.com/package/lodash.isarray) (version 3.0.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25516,10 +24997,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25527,21 +25008,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.isdate](https://www.npmjs.com/package/lodash.isdate) (version 3.0.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2016 The Dojo Foundation Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25549,10 +25029,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25560,21 +25040,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.isempty](https://www.npmjs.com/package/lodash.isempty) (version 3.0.4) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25582,10 +25061,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25593,21 +25072,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.isequal](https://www.npmjs.com/package/lodash.isequal) (version 3.0.4) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25615,10 +25093,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25626,31 +25104,30 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.isfunction](https://www.npmjs.com/package/lodash.isfunction) (version 3.0.9) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright JS Foundation and other contributors - + Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + This software consists of voluntary contributions made by many individuals. For exact contribution history, see the revision history available at https://github.com/lodash/lodash - + The following license applies to all parts of this software except as documented below: - + ==== - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25658,10 +25135,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25669,36 +25146,35 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ==== - + Copyright and related rights for sample code are waived via CC0. Sample code is defined as all source code displayed within the prose of the documentation. - + CC0: http://creativecommons.org/publicdomain/zero/1.0/ - + ==== - + Files located in the node_modules and vendor directories are externally maintained libraries used by this software which have their own licenses; we recommend you read them, as their terms may differ from the terms above. + - + ### [lodash.isobject](https://www.npmjs.com/package/lodash.isobject) (version 3.0.2) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25706,10 +25182,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25717,21 +25193,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.isstring](https://www.npmjs.com/package/lodash.isstring) (version 3.0.1) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25739,10 +25214,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25750,31 +25225,30 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.istypedarray](https://www.npmjs.com/package/lodash.istypedarray) (version 3.0.6) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright jQuery Foundation and other contributors - + Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + This software consists of voluntary contributions made by many individuals. For exact contribution history, see the revision history available at https://github.com/lodash/lodash - + The following license applies to all parts of this software except as documented below: - + ==== - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25782,10 +25256,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25793,36 +25267,35 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ==== - + Copyright and related rights for sample code are waived via CC0. Sample code is defined as all source code displayed within the prose of the documentation. - + CC0: http://creativecommons.org/publicdomain/zero/1.0/ - + ==== - + Files located in the node_modules and vendor directories are externally maintained libraries used by this software which have their own licenses; we recommend you read them, as their terms may differ from the terms above. + - + ### [lodash.keys](https://www.npmjs.com/package/lodash.keys) (version 3.1.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25830,10 +25303,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25841,21 +25314,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.keysin](https://www.npmjs.com/package/lodash.keysin) (version 3.0.8) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25863,10 +25335,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25874,21 +25346,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.last](https://www.npmjs.com/package/lodash.last) (version 3.0.0) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js 1.7.0, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25896,10 +25367,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25907,31 +25378,30 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.merge](https://www.npmjs.com/package/lodash.merge) (version 4.6.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright OpenJS Foundation and other contributors - + Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + This software consists of voluntary contributions made by many individuals. For exact contribution history, see the revision history available at https://github.com/lodash/lodash - + The following license applies to all parts of this software except as documented below: - + ==== - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25939,10 +25409,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25950,36 +25420,35 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ==== - + Copyright and related rights for sample code are waived via CC0. Sample code is defined as all source code displayed within the prose of the documentation. - + CC0: http://creativecommons.org/publicdomain/zero/1.0/ - + ==== - + Files located in the node_modules and vendor directories are externally maintained libraries used by this software which have their own licenses; we recommend you read them, as their terms may differ from the terms above. + - + ### [lodash.omit](https://www.npmjs.com/package/lodash.omit) (version 3.1.0) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -25987,10 +25456,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -25998,21 +25467,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.once](https://www.npmjs.com/package/lodash.once) (version 3.0.1) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -26020,10 +25488,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -26031,21 +25499,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.pairs](https://www.npmjs.com/package/lodash.pairs) (version 3.0.1) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -26053,10 +25520,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -26064,21 +25531,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.pick](https://www.npmjs.com/package/lodash.pick) (version 3.1.0) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -26086,10 +25552,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -26097,21 +25563,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.restparam](https://www.npmjs.com/package/lodash.restparam) (version 3.6.1) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -26119,10 +25584,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -26130,21 +25595,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.result](https://www.npmjs.com/package/lodash.result) (version 3.1.2) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -26152,10 +25616,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -26163,21 +25627,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.union](https://www.npmjs.com/package/lodash.union) (version 3.1.0) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright 2012-2015 The Dojo Foundation Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -26185,10 +25648,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -26196,21 +25659,20 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash.uniqueid](https://www.npmjs.com/package/lodash.uniqueid) (version 3.2.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright 2012-2016 The Dojo Foundation Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -26218,10 +25680,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -26229,31 +25691,30 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [lodash](https://www.npmjs.com/package/lodash) (version 4.17.21) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright OpenJS Foundation and other contributors - + Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - + This software consists of voluntary contributions made by many individuals. For exact contribution history, see the revision history available at https://github.com/lodash/lodash - + The following license applies to all parts of this software except as documented below: - + ==== - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -26261,10 +25722,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -26272,40 +25733,39 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ==== - + Copyright and related rights for sample code are waived via CC0. Sample code is defined as all source code displayed within the prose of the documentation. - + CC0: http://creativecommons.org/publicdomain/zero/1.0/ - + ==== - + Files located in the node_modules and vendor directories are externally maintained libraries used by this software which have their own licenses; we recommend you read them, as their terms may differ from the terms above. + - + ### [lru-cache](https://www.npmjs.com/package/lru-cache) (version 11.0.1) - License tags: ISC License files: - -- LICENSE: +* LICENSE: The ISC License - + Copyright (c) 2010-2023 Isaac Z. Schlueter and Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -26313,25 +25773,24 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [lru-cache](https://www.npmjs.com/package/lru-cache) (version 5.1.1) - License tags: ISC License files: - -- LICENSE: +* LICENSE: The ISC License - + Copyright (c) Isaac Z. Schlueter and Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -26339,25 +25798,24 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [lru-cache](https://www.npmjs.com/package/lru-cache) (version 6.0.0) - License tags: ISC License files: - -- LICENSE: +* LICENSE: The ISC License - + Copyright (c) Isaac Z. Schlueter and Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -26365,31 +25823,30 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [lz-string](https://www.npmjs.com/package/lz-string) (version 1.5.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2013 pieroxy - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -26397,31 +25854,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [marky](https://www.npmjs.com/package/marky) (version 1.2.2) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the @@ -26429,24 +25885,24 @@ License files: entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, @@ -26454,7 +25910,7 @@ License files: License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for @@ -26468,22 +25924,22 @@ License files: discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. - + Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. - + Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent @@ -26498,24 +25954,24 @@ License files: contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. - + You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + 1. You must give any other recipients of the Work or Derivative Works a copy of this License; and - + 2. You must cause any modified files to carry prominent notices stating that You changed the files; and - + 3. You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + 4. If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding @@ -26530,32 +25986,32 @@ License files: distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. - + Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. - + This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. - + Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, @@ -26564,9 +26020,9 @@ License files: FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. - + In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed @@ -26577,9 +26033,9 @@ License files: for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. - + While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with @@ -26589,11 +26045,11 @@ License files: each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be @@ -26601,50 +26057,49 @@ License files: recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2016 Nolan Lawson - - + + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + + - + ### [matches-selector](https://www.npmjs.com/package/matches-selector) (version 0.0.1) - License tags: MIT - + ### [matches-selector](https://www.npmjs.com/package/matches-selector) (version 1.2.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (c) 2013 Forbes Lindesay - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -26653,20 +26108,18 @@ License files: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [media-typer](https://www.npmjs.com/package/media-typer) (version 0.3.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -26674,10 +26127,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -26685,31 +26138,30 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [memoize-one](https://www.npmjs.com/package/memoize-one) (version 5.2.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2019 Alexander Reardon - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -26718,30 +26170,28 @@ License files: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [memory-pager](https://www.npmjs.com/package/memory-pager) (version 1.5.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2017 Mathias Buus - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -26749,22 +26199,21 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [merge-descriptors](https://www.npmjs.com/package/merge-descriptors) (version 1.0.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2013 Jonathan Ong Copyright (c) 2015 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -26772,10 +26221,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -26783,31 +26232,30 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [merge-stream](https://www.npmjs.com/package/merge-stream) (version 2.0.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) Stephen Sugden (stephensugden.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -26815,22 +26263,21 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [methods](https://www.npmjs.com/package/methods) (version 1.1.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2013-2014 TJ Holowaychuk Copyright (c) 2015-2016 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -26838,10 +26285,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -26849,22 +26296,22 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [mime-db](https://www.npmjs.com/package/mime-db) (version 1.52.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014 Jonathan Ong Copyright (c) 2015-2022 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -26872,10 +26319,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -26883,22 +26330,21 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [mime-types](https://www.npmjs.com/package/mime-types) (version 2.1.35) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014 Jonathan Ong Copyright (c) 2015 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -26906,10 +26352,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -26917,31 +26363,30 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [mime](https://www.npmjs.com/package/mime) (version 1.6.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2010 Benjamin Thomas, Robert Kieffer - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -26949,120 +26394,115 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [mimic-fn](https://www.npmjs.com/package/mimic-fn) (version 2.1.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [mimic-fn](https://www.npmjs.com/package/mimic-fn) (version 4.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [mimic-response](https://www.npmjs.com/package/mimic-response) (version 2.1.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [minimist](https://www.npmjs.com/package/minimist) (version 1.2.6) - License tags: MIT License files: - -- LICENSE: +* LICENSE: This software is released under the MIT license: - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [mkdirp-classic](https://www.npmjs.com/package/mkdirp-classic) (version 0.5.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2020 James Halliday (mail@substack.net) and Mathias Buus - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -27070,31 +26510,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [modify-filename](https://www.npmjs.com/package/modify-filename) (version 1.1.0) - License tags: MIT License files: - -- license: +* license: The MIT License (MIT) - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -27102,19 +26541,18 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [moment](https://www.npmjs.com/package/moment) (version 2.29.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (c) JS Foundation and other 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 in the Software without @@ -27123,10 +26561,10 @@ License files: copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -27135,31 +26573,30 @@ License files: WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [mongodb-build-info](https://www.npmjs.com/package/mongodb-build-info) (version 1.7.2) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -27167,24 +26604,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -27192,7 +26629,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -27206,18 +26643,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -27233,24 +26670,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -27267,14 +26704,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -27282,12 +26719,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -27297,7 +26734,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -27309,7 +26746,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -27320,11 +26757,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -27333,45 +26770,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2016 MongoDB Inc. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [mongodb-client-encryption](https://www.npmjs.com/package/mongodb-client-encryption) (version 6.1.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -27379,24 +26815,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -27404,7 +26840,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -27418,18 +26854,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -27445,24 +26881,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -27479,14 +26915,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -27494,12 +26930,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -27509,7 +26945,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -27521,7 +26957,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -27532,11 +26968,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include @@ -27545,45 +26981,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright [yyyy] [name of copyright owner] - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [mongodb-cloud-info](https://www.npmjs.com/package/mongodb-cloud-info) (version 2.1.2) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -27591,24 +27026,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -27616,7 +27051,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -27630,18 +27065,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -27657,24 +27092,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -27691,14 +27126,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -27706,12 +27141,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -27721,7 +27156,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -27733,7 +27168,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -27744,11 +27179,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -27757,45 +27192,45 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright {yyyy} {name of copyright owner} - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [mongodb-connection-string-url](https://www.npmjs.com/package/mongodb-connection-string-url) (version 3.0.1) - License tags: Apache-2.0 License files: +* LICENSE: -- LICENSE: - + Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -27803,24 +27238,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -27828,7 +27263,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -27842,18 +27277,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -27869,24 +27304,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -27903,14 +27338,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -27918,12 +27353,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -27933,7 +27368,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -27945,7 +27380,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -27956,47 +27391,48 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + Copyright 2020 MongoDB Inc. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + + - + ### [mongodb-log-writer](https://www.npmjs.com/package/mongodb-log-writer) (version 1.4.2) - License tags: Apache-2.0 License files: +* LICENSE: -- LICENSE: - + Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -28004,24 +27440,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -28029,7 +27465,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -28043,18 +27479,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -28070,24 +27506,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -28104,14 +27540,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -28119,12 +27555,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -28134,7 +27570,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -28146,7 +27582,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -28157,78 +27593,77 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + Copyright 2020 MongoDB Inc. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + + - + ### [mongodb-ns](https://www.npmjs.com/package/mongodb-ns) (version 2.4.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014 Lucas Hrabovsky - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [mongodb-query-parser](https://www.npmjs.com/package/mongodb-query-parser) (version 4.2.3) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -28236,24 +27671,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -28261,7 +27696,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -28275,18 +27710,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -28302,24 +27737,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -28336,14 +27771,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -28351,12 +27786,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -28366,7 +27801,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -28378,7 +27813,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -28389,11 +27824,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -28402,45 +27837,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright {yyyy} {name of copyright owner} - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [mongodb-redact](https://www.npmjs.com/package/mongodb-redact) (version 1.1.3) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -28448,24 +27882,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -28473,7 +27907,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -28487,18 +27921,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -28514,24 +27948,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -28548,14 +27982,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -28563,12 +27997,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -28578,7 +28012,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -28590,7 +28024,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -28601,11 +28035,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -28614,45 +28048,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright {yyyy} {name of copyright owner} - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [mongodb-schema](https://www.npmjs.com/package/mongodb-schema) (version 12.2.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -28660,24 +28093,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -28685,7 +28118,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -28699,18 +28132,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -28726,24 +28159,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -28760,14 +28193,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -28775,12 +28208,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -28790,7 +28223,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -28802,7 +28235,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -28813,11 +28246,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -28826,45 +28259,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright {yyyy} {name of copyright owner} - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - - -### [mongodb](https://www.npmjs.com/package/mongodb) (version 6.8.0) + +### [mongodb](https://www.npmjs.com/package/mongodb) (version 6.9.0) License tags: Apache-2.0 License files: - -- LICENSE.md: +* LICENSE.md: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -28872,24 +28304,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -28897,7 +28329,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -28911,18 +28343,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -28938,24 +28370,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -28972,14 +28404,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -28987,12 +28419,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -29002,7 +28434,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -29014,7 +28446,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -29025,11 +28457,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include @@ -29038,45 +28470,43 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright {yyyy} {name of copyright owner} - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [ms](https://www.npmjs.com/package/ms) (version 2.0.0) - License tags: MIT License files: - -- license.md: +* license.md: The MIT License (MIT) - + Copyright (c) 2016 Zeit, Inc. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29084,31 +28514,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ms](https://www.npmjs.com/package/ms) (version 2.1.2) - License tags: MIT License files: - -- license.md: +* license.md: The MIT License (MIT) - + Copyright (c) 2016 Zeit, Inc. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29116,31 +28545,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [ms](https://www.npmjs.com/package/ms) (version 2.1.3) - License tags: MIT License files: - -- license.md: +* license.md: The MIT License (MIT) - + Copyright (c) 2020 Vercel, Inc. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29148,31 +28576,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [napi-build-utils](https://www.npmjs.com/package/napi-build-utils) (version 1.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2018 inspiredware - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29180,23 +28607,22 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [negotiator](https://www.npmjs.com/package/negotiator) (version 0.6.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2012-2014 Federico Romero Copyright (c) 2012-2014 Isaac Z. Schlueter Copyright (c) 2014-2015 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -29204,10 +28630,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -29215,37 +28641,35 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [netmask](https://www.npmjs.com/package/netmask) (version 2.0.2) - License tags: MIT - - -### [node-abi](https://www.npmjs.com/package/node-abi) (version 3.65.0) + +### [node-abi](https://www.npmjs.com/package/node-abi) (version 3.68.0) License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2016 Lukas Geiger - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29253,55 +28677,52 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [node-addon-api](https://www.npmjs.com/package/node-addon-api) (version 4.3.0) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: The MIT License (MIT) ===================== - + Copyright (c) 2017 Node.js API collaborators ----------------------------------- - + *Node.js API collaborators listed at * - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [node-domexception](https://www.npmjs.com/package/node-domexception) (version 1.0.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2021 Jimmy Wärting - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29309,31 +28730,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [node-fetch](https://www.npmjs.com/package/node-fetch) (version 2.6.7) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: The MIT License (MIT) - + Copyright (c) 2016 David Frank - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29341,31 +28761,31 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [node-fetch](https://www.npmjs.com/package/node-fetch) (version 2.7.0) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: The MIT License (MIT) - + Copyright (c) 2016 David Frank - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29373,31 +28793,31 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [node-fetch](https://www.npmjs.com/package/node-fetch) (version 3.3.2) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: The MIT License (MIT) - + Copyright (c) 2016 - 2020 Node Fetch Team - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29405,59 +28825,57 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [npm-run-path](https://www.npmjs.com/package/npm-run-path) (version 4.0.1) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [npm-run-path](https://www.npmjs.com/package/npm-run-path) (version 5.3.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [numeral](https://www.npmjs.com/package/numeral) (version 1.5.6) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (c) 2014 Adam Draper - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without @@ -29466,10 +28884,10 @@ License files: copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -29479,18 +28897,16 @@ License files: FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [numeral](https://www.npmjs.com/package/numeral) (version 2.0.6) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (c) 2016 Adam Draper - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without @@ -29499,10 +28915,10 @@ License files: copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -29511,31 +28927,30 @@ License files: WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [object-assign](https://www.npmjs.com/package/object-assign) (version 4.1.1) - License tags: MIT License files: - -- license: +* license: The MIT License (MIT) - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29543,31 +28958,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [object-hash](https://www.npmjs.com/package/object-hash) (version 2.2.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014 object-hash 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 in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29575,31 +28989,31 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [object-inspect](https://www.npmjs.com/package/object-inspect) (version 1.13.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2013 James Halliday - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29607,62 +29021,60 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [object-is](https://www.npmjs.com/package/object-is) (version 1.1.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [object-keys](https://www.npmjs.com/package/object-keys) (version 1.1.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (C) 2013 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29671,30 +29083,28 @@ License files: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [object.assign](https://www.npmjs.com/package/object.assign) (version 4.1.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29703,30 +29113,28 @@ License files: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [oidc-token-hash](https://www.npmjs.com/package/oidc-token-hash) (version 5.0.3) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: The MIT License (MIT) - + Copyright (c) 2015 Filip Skokan - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29734,22 +29142,21 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [on-finished](https://www.npmjs.com/package/on-finished) (version 2.4.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2013 Jonathan Ong Copyright (c) 2014 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -29757,10 +29164,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -29768,25 +29175,24 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [once](https://www.npmjs.com/package/once) (version 1.4.0) - License tags: ISC License files: - -- LICENSE: +* LICENSE: The ISC License - + Copyright (c) Isaac Z. Schlueter and Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -29794,91 +29200,87 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [onetime](https://www.npmjs.com/package/onetime) (version 5.1.2) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [onetime](https://www.npmjs.com/package/onetime) (version 6.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [open](https://www.npmjs.com/package/open) (version 9.1.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [openid-client](https://www.npmjs.com/package/openid-client) (version 5.6.5) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: The MIT License (MIT) - + Copyright (c) 2016 Filip Skokan - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29886,31 +29288,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [os-dns-native](https://www.npmjs.com/package/os-dns-native) (version 1.2.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2021 MongoDB, Inc. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -29918,21 +29319,21 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [pac-proxy-agent](https://www.npmjs.com/package/pac-proxy-agent) (version 7.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014 Nathan Rajlich - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -29940,10 +29341,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -29951,21 +29352,20 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [pac-resolver](https://www.npmjs.com/package/pac-resolver) (version 7.0.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2013 Nathan Rajlich - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -29973,10 +29373,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -29985,52 +29385,50 @@ License files: TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [papaparse](https://www.npmjs.com/package/papaparse) (version 5.3.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2015 Matthew Holt - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [parseurl](https://www.npmjs.com/package/parseurl) (version 1.3.3) - License tags: MIT License files: +* LICENSE: -- LICENSE: - + (The MIT License) - + Copyright (c) 2014 Jonathan Ong Copyright (c) 2014-2017 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -30038,10 +29436,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -30049,91 +29447,87 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [path-exists](https://www.npmjs.com/package/path-exists) (version 4.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [path-key](https://www.npmjs.com/package/path-key) (version 3.1.1) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [path-key](https://www.npmjs.com/package/path-key) (version 4.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [path-to-regexp](https://www.npmjs.com/package/path-to-regexp) (version 0.1.10) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -30141,25 +29535,24 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [picocolors](https://www.npmjs.com/package/picocolors) (version 1.1.0) - License tags: ISC License files: - -- LICENSE: +* LICENSE: ISC License - + Copyright (c) 2021-2024 Oleksii Raspopov, Kostiantyn Denysov, Anton Verinov - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -30167,31 +29560,30 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [polished](https://www.npmjs.com/package/polished) (version 4.2.2) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: MIT License - + Copyright (c) 2016 - 2021 Brian Hough and Maximilian Stoiber - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -30199,31 +29591,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [possible-typed-array-names](https://www.npmjs.com/package/possible-typed-array-names) (version 1.0.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2024 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -30231,31 +29622,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [prebuild-install](https://www.npmjs.com/package/prebuild-install) (version 7.1.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2015 Mathias Buus - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -30263,50 +29653,49 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [prettier](https://www.npmjs.com/package/prettier) (version 2.7.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: # Prettier license - + Prettier is released under the MIT license: - + Copyright © James Long and 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 in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ## Licenses of bundled dependencies - + The published Prettier artifact additionally contains code with the following licenses: MIT, ISC, BSD-2-Clause, BSD-3-Clause, Apache-2.0, 0BSD - + ## Bundled dependencies - + ### @angular/compiler@v12.2.16 - + License: MIT By: angular Repository: - + ---------------------------------------- - + ### @babel/code-frame@v7.16.7 - + License: MIT By: The Babel Team Repository: - + > MIT License > > Copyright (c) 2014-present Sebastian McKenzie and other contributors @@ -30329,15 +29718,15 @@ License files: > LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION > OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION > WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### @babel/helper-validator-identifier@v7.16.7 - + License: MIT By: The Babel Team Repository: - + > MIT License > > Copyright (c) 2014-present Sebastian McKenzie and other contributors @@ -30360,15 +29749,15 @@ License files: > LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION > OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION > WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### @babel/highlight@v7.16.10 - + License: MIT By: The Babel Team Repository: - + > MIT License > > Copyright (c) 2014-present Sebastian McKenzie and other contributors @@ -30391,15 +29780,15 @@ License files: > LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION > OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION > WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### @babel/parser@v7.18.0 - + License: MIT By: The Babel Team Repository: - + > Copyright (C) 2012-2014 by various contributors (see AUTHORS) > > Permission is hereby granted, free of charge, to any person obtaining a copy @@ -30419,13 +29808,13 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### @glimmer/env@v0.1.7 - + License: MIT - + > Copyright (c) 2017 Martin Muñoz and contributors. > > Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -30445,13 +29834,13 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### @glimmer/syntax@v0.84.2 - + License: MIT - + > Copyright (c) 2015 Tilde, Inc. > > Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -30471,13 +29860,13 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### @glimmer/util@v0.84.2 - + License: MIT - + > Copyright (c) 2015 Tilde, Inc. > > Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -30497,22 +29886,22 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### @handlebars/parser@v2.0.0 - + License: ISC Repository: - + ---------------------------------------- - + ### @iarna/toml@v2.2.5 - + License: ISC By: Rebecca Turner Repository: - + > Copyright (c) 2016, Rebecca Turner > > Permission to use, copy, modify, and/or distribute this software for any @@ -30526,13 +29915,13 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF > OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### @nodelib/fs.scandir@v2.1.5 - + License: MIT - + > The MIT License (MIT) > > Copyright (c) Denis Malinochkin @@ -30554,13 +29943,13 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### @nodelib/fs.stat@v2.0.5 - + License: MIT - + > The MIT License (MIT) > > Copyright (c) Denis Malinochkin @@ -30582,13 +29971,13 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### @nodelib/fs.walk@v1.2.8 - + License: MIT - + > The MIT License (MIT) > > Copyright (c) Denis Malinochkin @@ -30610,14 +29999,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### @typescript-eslint/types@v5.27.0 - + License: MIT Repository: - + > MIT License > > Copyright (c) 2019 TypeScript ESLint and other contributors @@ -30639,14 +30028,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### @typescript-eslint/typescript-estree@v5.27.0 - + License: BSD-2-Clause Repository: - + > TypeScript ESTree > > Originally extracted from: @@ -30673,14 +30062,14 @@ License files: > ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF > THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - + ---------------------------------------- - + ### @typescript-eslint/visitor-keys@v5.27.0 - + License: MIT Repository: - + > MIT License > > Copyright (c) 2019 TypeScript ESLint and other contributors @@ -30702,14 +30091,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### acorn@v8.7.0 - + License: MIT Repository: - + > MIT License > > Copyright (C) 2012-2020 by various contributors (see AUTHORS) @@ -30731,14 +30120,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### acorn-jsx@v5.3.2 - + License: MIT Repository: - + > Copyright (C) 2012-2017 by Ingvar Stepanyan > > Permission is hereby granted, free of charge, to any person obtaining a copy @@ -30758,14 +30147,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### aggregate-error@v3.1.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -30775,14 +30164,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### angular-estree-parser@v2.5.1 - + License: MIT By: Ika - + > MIT License > > Copyright (c) Ika (https://github.com/ikatyang) @@ -30804,14 +30193,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### angular-html-parser@v1.8.0 - + License: MIT By: Ika - + > MIT License > > Copyright (c) Ika (https://github.com/ikatyang) @@ -30833,14 +30222,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### ansi-regex@v6.0.1 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -30850,14 +30239,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### ansi-styles@v3.2.1 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -30867,14 +30256,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### array-union@v2.1.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -30884,14 +30273,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### bail@v1.0.5 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2015 Titus Wormer @@ -30914,15 +30303,15 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### balanced-match@v1.0.2 - + License: MIT By: Julian Gruber Repository: - + > (MIT) > > Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> @@ -30944,15 +30333,15 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### brace-expansion@v1.1.11 - + License: MIT By: Julian Gruber Repository: - + > MIT License > > Copyright (c) 2013 Julian Gruber @@ -30974,14 +30363,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### braces@v3.0.2 - + License: MIT By: Jon Schlinkert - + > The MIT License (MIT) > > Copyright (c) 2014-2018, Jon Schlinkert. @@ -31003,14 +30392,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### camelcase@v6.3.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -31020,14 +30409,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### ccount@v1.1.0 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2015 Titus Wormer @@ -31050,13 +30439,13 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### chalk@v2.4.2 - + License: MIT - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -31066,13 +30455,13 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### chalk@v5.0.1 - + License: MIT - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -31082,14 +30471,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### character-entities@v1.2.4 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2015 Titus Wormer @@ -31112,14 +30501,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### character-entities-legacy@v1.1.4 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2015 Titus Wormer @@ -31142,14 +30531,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### character-reference-invalid@v1.1.4 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2015 Titus Wormer @@ -31172,15 +30561,15 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### ci-info@v3.3.0 - + License: MIT By: Thomas Watson Steen Repository: - + > The MIT License (MIT) > > Copyright (c) 2016-2021 Thomas Watson Steen @@ -31202,14 +30591,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### clean-stack@v2.2.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -31219,15 +30608,15 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### clone@v1.0.4 - + License: MIT By: Paul Vorbach Repository: - + > Copyright © 2011-2015 Paul Vorbach > > Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -31246,14 +30635,14 @@ License files: > COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER > IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### collapse-white-space@v1.0.6 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2015 Titus Wormer @@ -31276,14 +30665,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### color-convert@v1.9.3 - + License: MIT By: Heather Arthur - + > Copyright (c) 2011-2016 Heather Arthur > > Permission is hereby granted, free of charge, to any person obtaining @@ -31304,72 +30693,65 @@ License files: > LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION > OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION > WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### color-name@v1.1.3 - + License: MIT By: DY Repository: - - > The MIT License (MIT) - - > Copyright (c) 2015 Dmitry Ivanov - - > - - > Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - - > - - > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - > - + + > The MIT License (MIT) + > Copyright (c) 2015 Dmitry Ivanov + > + > Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + > + > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### commondir@v1.0.1 - + License: MIT By: James Halliday Repository: - + > The MIT License > > Copyright (c) 2013 James Halliday (mail@substack.net) > - > Permission is hereby granted, free of charge, - > to any person obtaining a copy of this software and - > associated documentation files (the "Software"), to - > deal in the Software without restriction, including - > without limitation the rights to use, copy, modify, - > merge, publish, distribute, sublicense, and/or sell - > copies of the Software, and to permit persons to whom - > the Software is furnished to do so, + > Permission is hereby granted, free of charge, + > to any person obtaining a copy of this software and + > associated documentation files (the "Software"), to + > deal in the Software without restriction, including + > without limitation the rights to use, copy, modify, + > merge, publish, distribute, sublicense, and/or sell + > copies of the Software, and to permit persons to whom + > the Software is furnished to do so, > subject to the following conditions: > - > The above copyright notice and this permission notice + > The above copyright notice and this permission notice > shall be included in all copies or substantial portions of the Software. > - > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - > EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - > OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - > IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR - > ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + > EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + > OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + > IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR + > ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### concat-map@v0.0.1 - + License: MIT By: James Halliday Repository: - + > This software is released under the MIT license: > > Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -31388,15 +30770,15 @@ License files: > COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER > IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN > CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### cosmiconfig@v7.0.1 - + License: MIT By: David Clark Repository: - + > The MIT License (MIT) > > Copyright (c) 2015 David Clark @@ -31418,15 +30800,15 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### cross-spawn@v7.0.3 - + License: MIT By: André Cruz Repository: - + > The MIT License (MIT) > > Copyright (c) 2018 Made With MOXY Lda @@ -31448,14 +30830,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### crypto-random-string@v4.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -31465,14 +30847,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### css-units-list@v1.1.0 - + License: MIT By: fisker Cheung - + > MIT License > > Copyright (c) fisker Cheung (https://www.fiskercheung.com/) @@ -31494,14 +30876,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### dashify@v2.0.0 - + License: MIT By: Jon Schlinkert - + > The MIT License (MIT) > > Copyright (c) 2015-present, Jon Schlinkert. @@ -31523,15 +30905,15 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### debug@v4.3.4 - + License: MIT By: Josh Junon Repository: - + > (The MIT License) > > Copyright (c) 2014-2017 TJ Holowaychuk @@ -31551,15 +30933,15 @@ License files: > IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, > WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### defaults@v1.0.3 - + License: MIT By: Elijah Insua Repository: - + > The MIT License (MIT) > > Copyright (c) 2015 Elijah Insua @@ -31581,14 +30963,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### del@v6.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -31598,14 +30980,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### detect-newline@v3.1.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -31615,14 +30997,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### diff@v5.0.0 - + License: BSD-3-Clause Repository: - + > Software License Agreement (BSD License) > > Copyright (c) 2009-2015, Kevin Decker @@ -31654,14 +31036,14 @@ License files: > DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER > IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT > OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - + ---------------------------------------- - + ### dir-glob@v3.0.1 - + License: MIT By: Kevin Mårtensson - + > MIT License > > Copyright (c) Kevin Mårtensson (github.com/kevva) @@ -31671,15 +31053,15 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### editorconfig@v0.15.3 - + License: MIT By: EditorConfig Team Repository: - + > Copyright © 2012 EditorConfig Team > > Permission is hereby granted, free of charge, to any person obtaining a copy @@ -31699,23 +31081,23 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### editorconfig-to-prettier@v0.2.0 - + License: ISC By: Joseph Frazier Repository: - + ---------------------------------------- - + ### emoji-regex@v9.2.2 - + License: MIT By: Mathias Bynens Repository: - + > Copyright Mathias Bynens > > Permission is hereby granted, free of charge, to any person obtaining @@ -31736,13 +31118,13 @@ License files: > LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION > OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION > WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### error-ex@v1.3.2 - + License: MIT - + > The MIT License (MIT) > > Copyright (c) 2015 JD Ballard @@ -31764,14 +31146,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### escape-string-regexp@v1.0.5 - + License: MIT By: Sindre Sorhus - + > The MIT License (MIT) > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -31793,14 +31175,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### escape-string-regexp@v5.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -31810,14 +31192,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### eslint-visitor-keys@v3.3.0 - + License: Apache-2.0 By: Toru Nagashima - + > Apache License > Version 2.0, January 2004 > http://www.apache.org/licenses/ @@ -32019,14 +31401,14 @@ License files: > WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. > See the License for the specific language governing permissions and > limitations under the License. - + ---------------------------------------- - + ### espree@v9.3.1 - + License: BSD-2-Clause By: Nicholas C. Zakas - + > BSD 2-Clause License > > Copyright (c) Open JS Foundation @@ -32052,14 +31434,14 @@ License files: > CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, > OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE > OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - + ---------------------------------------- - + ### esutils@v2.0.3 - + License: BSD-2-Clause Repository: - + > Redistribution and use in source and binary forms, with or without > modification, are permitted provided that the following conditions are met: > @@ -32079,14 +31461,14 @@ License files: > ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF > THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - + ---------------------------------------- - + ### execa@v6.1.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -32096,15 +31478,15 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### extend@v3.0.2 - + License: MIT By: Stefan Thomas Repository: - + > The MIT License (MIT) > > Copyright (c) 2014 Stefan Thomas @@ -32127,14 +31509,14 @@ License files: > LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION > OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION > WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### fast-glob@v3.2.11 - + License: MIT By: Denis Malinochkin - + > The MIT License (MIT) > > Copyright (c) Denis Malinochkin @@ -32156,15 +31538,15 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### fast-json-stable-stringify@v2.1.0 - + License: MIT By: James Halliday Repository: - + > This software is released under the MIT license: > > Copyright (c) 2017 Evgeny Poberezkin @@ -32186,15 +31568,15 @@ License files: > COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER > IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN > CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### fastq@v1.13.0 - + License: ISC By: Matteo Collina Repository: - + > Copyright (c) 2015-2020, Matteo Collina > > Permission to use, copy, modify, and/or distribute this software for any @@ -32208,14 +31590,14 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF > OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### file-entry-cache@v6.0.1 - + License: MIT By: Roy Riojas - + > The MIT License (MIT) > > Copyright (c) 2015 Roy Riojas @@ -32237,14 +31619,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### fill-range@v7.0.1 - + License: MIT By: Jon Schlinkert - + > The MIT License (MIT) > > Copyright (c) 2014-present, Jon Schlinkert. @@ -32266,13 +31648,13 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### find-cache-dir@v3.3.2 - + License: MIT - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -32282,16 +31664,16 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### find-parent-dir@v0.3.1 - + License: MIT By: Thorsten Lorenz Repository: - - > Copyright 2013 Thorsten Lorenz. + + > Copyright 2013 Thorsten Lorenz. > All rights reserved. > > Permission is hereby granted, free of charge, to any person @@ -32314,14 +31696,14 @@ License files: > WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR > OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### find-up@v4.1.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -32331,14 +31713,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### flat-cache@v3.0.4 - + License: MIT By: Roy Riojas - + > The MIT License (MIT) > > Copyright (c) 2015 Roy Riojas @@ -32360,15 +31742,15 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### flatted@v3.2.5 - + License: ISC By: Andrea Giammarchi Repository: - + > ISC License > > Copyright (c) 2018-2020, Andrea Giammarchi, @WebReflection @@ -32384,15 +31766,15 @@ License files: > LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE > OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR > PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### flatten@v1.0.3 - + License: MIT By: Joshua Holbrook Repository: - + > The MIT License (MIT) > > Copyright (c) 2016 Joshua Holbrook @@ -32414,23 +31796,23 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### flow-parser@v0.180.0 - + License: MIT By: Flow Team Repository: - + ---------------------------------------- - + ### fs.realpath@v1.0.0 - + License: ISC By: Isaac Z. Schlueter Repository: - + > The ISC License > > Copyright (c) Isaac Z. Schlueter and Contributors @@ -32474,14 +31856,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER > DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### function-bind@v1.1.1 - + License: MIT By: Raynos - + > Copyright (c) 2013 Raynos. > > Permission is hereby granted, free of charge, to any person obtaining a copy @@ -32501,14 +31883,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### get-stdin@v8.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -32518,14 +31900,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### get-stream@v6.0.1 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -32535,15 +31917,15 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### glob@v7.2.0 - + License: ISC By: Isaac Z. Schlueter Repository: - + > The ISC License > > Copyright (c) Isaac Z. Schlueter and Contributors @@ -32565,14 +31947,14 @@ License files: > Glob's logo created by Tanya Brassie , licensed > under a Creative Commons Attribution-ShareAlike 4.0 International License > https://creativecommons.org/licenses/by-sa/4.0/ - + ---------------------------------------- - + ### glob-parent@v5.1.2 - + License: ISC By: Gulp Team - + > The ISC License > > Copyright (c) 2015, 2019 Elan Shanker @@ -32588,14 +31970,14 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### globby@v11.1.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -32605,14 +31987,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### graceful-fs@v4.2.9 - + License: ISC Repository: - + > The ISC License > > Copyright (c) Isaac Z. Schlueter, Ben Noordhuis, and Contributors @@ -32628,14 +32010,14 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### graphql@v15.6.1 - + License: MIT Repository: - + > MIT License > > Copyright (c) GraphQL Contributors @@ -32657,15 +32039,15 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### has@v1.0.3 - + License: MIT By: Thiago de Arruda Repository: - + > Copyright (c) 2013 Thiago de Arruda > > Permission is hereby granted, free of charge, to any person @@ -32688,14 +32070,14 @@ License files: > WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR > OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### has-flag@v3.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -32705,14 +32087,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### html-element-attributes@v3.1.0 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2016 Titus Wormer @@ -32735,14 +32117,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### html-tag-names@v2.0.1 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2016 Titus Wormer @@ -32765,14 +32147,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### html-void-elements@v2.0.1 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2016 Titus Wormer @@ -32795,14 +32177,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### human-signals@v3.0.1 - + License: Apache-2.0 By: ehmicky - + > Apache License > Version 2.0, January 2004 > http://www.apache.org/licenses/ @@ -33004,15 +32386,15 @@ License files: > WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. > See the License for the specific language governing permissions and > limitations under the License. - + ---------------------------------------- - + ### ignore@v5.2.0 - + License: MIT By: kael Repository: - + > Copyright (c) 2013 Kael Zhang , contributors > http://kael.me/ > @@ -33034,14 +32416,14 @@ License files: > LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION > OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION > WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### import-fresh@v3.3.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -33051,14 +32433,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### indent-string@v4.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -33068,46 +32450,46 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### indexes-of@v1.0.1 - + License: MIT By: Dominic Tarr Repository: - + > Copyright (c) 2013 Dominic Tarr > - > Permission is hereby granted, free of charge, - > to any person obtaining a copy of this software and - > associated documentation files (the "Software"), to - > deal in the Software without restriction, including - > without limitation the rights to use, copy, modify, - > merge, publish, distribute, sublicense, and/or sell - > copies of the Software, and to permit persons to whom - > the Software is furnished to do so, + > Permission is hereby granted, free of charge, + > to any person obtaining a copy of this software and + > associated documentation files (the "Software"), to + > deal in the Software without restriction, including + > without limitation the rights to use, copy, modify, + > merge, publish, distribute, sublicense, and/or sell + > copies of the Software, and to permit persons to whom + > the Software is furnished to do so, > subject to the following conditions: > - > The above copyright notice and this permission notice + > The above copyright notice and this permission notice > shall be included in all copies or substantial portions of the Software. > - > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - > EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - > OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - > IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR - > ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + > EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + > OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + > IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR + > ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### inflight@v1.0.6 - + License: ISC By: Isaac Z. Schlueter Repository: - + > The ISC License > > Copyright (c) Isaac Z. Schlueter @@ -33123,13 +32505,13 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### inherits@v2.0.4 - + License: ISC - + > The ISC License > > Copyright (c) Isaac Z. Schlueter @@ -33145,14 +32527,14 @@ License files: > LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR > OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR > PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### is-alphabetical@v1.0.4 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2016 Titus Wormer @@ -33175,14 +32557,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### is-alphanumerical@v1.0.4 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2016 Titus Wormer @@ -33205,15 +32587,15 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### is-arrayish@v0.2.1 - + License: MIT By: Qix Repository: - + > The MIT License (MIT) > > Copyright (c) 2015 JD Ballard @@ -33235,15 +32617,15 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### is-buffer@v2.0.5 - + License: MIT By: Feross Aboukhadijeh Repository: - + > The MIT License (MIT) > > Copyright (c) Feross Aboukhadijeh @@ -33265,15 +32647,15 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### is-core-module@v2.8.1 - + License: MIT By: Jordan Harband Repository: - + > The MIT License (MIT) > > Copyright (c) 2014 Dave Justice @@ -33294,14 +32676,14 @@ License files: > COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER > IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN > CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### is-decimal@v1.0.4 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2016 Titus Wormer @@ -33324,14 +32706,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### is-extglob@v2.1.1 - + License: MIT By: Jon Schlinkert - + > The MIT License (MIT) > > Copyright (c) 2014-2016, Jon Schlinkert @@ -33353,14 +32735,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### is-fullwidth-code-point@v4.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -33370,14 +32752,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### is-glob@v4.0.3 - + License: MIT By: Jon Schlinkert - + > The MIT License (MIT) > > Copyright (c) 2014-2017, Jon Schlinkert. @@ -33399,14 +32781,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### is-hexadecimal@v1.0.4 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2016 Titus Wormer @@ -33429,14 +32811,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### is-number@v7.0.0 - + License: MIT By: Jon Schlinkert - + > The MIT License (MIT) > > Copyright (c) 2014-present, Jon Schlinkert. @@ -33458,14 +32840,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### is-path-cwd@v2.2.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -33475,14 +32857,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### is-path-inside@v3.0.3 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -33492,14 +32874,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### is-plain-obj@v2.1.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -33509,14 +32891,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### is-stream@v3.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -33526,14 +32908,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### is-whitespace-character@v1.0.4 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2016 Titus Wormer @@ -33556,14 +32938,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### is-word-character@v1.0.4 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2016 Titus Wormer @@ -33586,15 +32968,15 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### isexe@v2.0.0 - + License: ISC By: Isaac Z. Schlueter Repository: - + > The ISC License > > Copyright (c) Isaac Z. Schlueter and Contributors @@ -33610,14 +32992,14 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### jest-docblock@v27.5.1 - + License: MIT Repository: - + > MIT License > > Copyright (c) Facebook, Inc. and its affiliates. @@ -33639,14 +33021,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### js-tokens@v4.0.0 - + License: MIT By: Simon Lydell - + > The MIT License (MIT) > > Copyright (c) 2014, 2015, 2016, 2017, 2018 Simon Lydell @@ -33668,14 +33050,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### json-parse-even-better-errors@v2.3.1 - + License: MIT By: Kat Marchán - + > Copyright 2017 Kat Marchán > Copyright npm, Inc. > @@ -33701,15 +33083,15 @@ License files: > > This library is a fork of 'better-json-errors' by Kat Marchán, extended and > distributed under the terms of the MIT license above. - + ---------------------------------------- - + ### json5@v2.2.1 - + License: MIT By: Aseem Kishore Repository: - + > MIT License > > Copyright (c) 2012-2018 Aseem Kishore, and [others]. @@ -33733,14 +33115,14 @@ License files: > SOFTWARE. > > [others]: https://github.com/json5/json5/contributors - + ---------------------------------------- - + ### leven@v2.1.0 - + License: MIT By: Sindre Sorhus - + > The MIT License (MIT) > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -33762,14 +33144,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### leven@v4.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -33779,15 +33161,15 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### lines-and-columns@v1.2.4 - + License: MIT By: Brian Donovan Repository: - + > The MIT License (MIT) > > Copyright (c) 2015 Brian Donovan @@ -33809,15 +33191,15 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### lines-and-columns@v2.0.3 - + License: MIT By: Brian Donovan Repository: - + > The MIT License (MIT) > > Copyright (c) 2015 Brian Donovan @@ -33839,14 +33221,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### linguist-languages@v7.21.0 - + License: MIT By: Ika - + > MIT License > > Copyright (c) Ika (https://github.com/ikatyang) @@ -33868,14 +33250,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### locate-path@v5.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -33885,14 +33267,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### lru-cache@v4.1.5 - + License: ISC By: Isaac Z. Schlueter - + > The ISC License > > Copyright (c) Isaac Z. Schlueter and Contributors @@ -33908,14 +33290,14 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### lru-cache@v6.0.0 - + License: ISC By: Isaac Z. Schlueter - + > The ISC License > > Copyright (c) Isaac Z. Schlueter and Contributors @@ -33931,14 +33313,14 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### make-dir@v3.1.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -33948,14 +33330,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### map-age-cleaner@v0.1.3 - + License: MIT By: Sam Verschueren - + > MIT License > > Copyright (c) Sam Verschueren (github.com/SamVerschueren) @@ -33965,14 +33347,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### markdown-escapes@v1.0.4 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2016 Titus Wormer @@ -33995,14 +33377,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### mem@v9.0.2 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -34012,14 +33394,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### merge-stream@v2.0.0 - + License: MIT By: Stephen Sugden - + > The MIT License (MIT) > > Copyright (c) Stephen Sugden (stephensugden.com) @@ -34041,14 +33423,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### merge2@v1.4.1 - + License: MIT Repository: - + > The MIT License (MIT) > > Copyright (c) 2014-2020 Teambition @@ -34070,15 +33452,15 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### meriyah@v4.2.1 - + License: ISC By: Kenny F. Repository: - + > ISC License > > Copyright (c) 2019 and later, KFlash and others. @@ -34086,14 +33468,14 @@ License files: > Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. > > THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### micromatch@v4.0.5 - + License: MIT By: Jon Schlinkert - + > The MIT License (MIT) > > Copyright (c) 2014-present, Jon Schlinkert. @@ -34115,14 +33497,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### mimic-fn@v4.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -34132,15 +33514,15 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### minimatch@v3.1.2 - + License: ISC By: Isaac Z. Schlueter Repository: - + > The ISC License > > Copyright (c) Isaac Z. Schlueter and Contributors @@ -34156,15 +33538,15 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### minimist@v1.2.6 - + License: MIT By: James Halliday Repository: - + > This software is released under the MIT license: > > Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -34183,13 +33565,13 @@ License files: > COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER > IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN > CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### ms@v2.1.2 - + License: MIT - + > The MIT License (MIT) > > Copyright (c) 2016 Zeit, Inc. @@ -34211,15 +33593,15 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### n-readlines@v1.0.1 - + License: MIT By: Yoan Arnaudov Repository: - + > The MIT License (MIT) > > Copyright (c) 2013 Liucw @@ -34240,14 +33622,14 @@ License files: > COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER > IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN > CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### npm-run-path@v5.1.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -34257,15 +33639,15 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### once@v1.4.0 - + License: ISC By: Isaac Z. Schlueter Repository: - + > The ISC License > > Copyright (c) Isaac Z. Schlueter and Contributors @@ -34281,14 +33663,14 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### onetime@v6.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -34298,15 +33680,15 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### outdent@v0.8.0 - + License: MIT By: Andrew Bradley Repository: - + > The MIT License (MIT) > > Copyright (c) 2016 Andrew Bradley @@ -34328,14 +33710,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### p-defer@v1.0.0 - + License: MIT By: Sindre Sorhus - + > The MIT License (MIT) > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -34357,14 +33739,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### p-limit@v2.3.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -34374,14 +33756,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### p-locate@v4.1.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -34391,14 +33773,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### p-map@v4.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -34408,14 +33790,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### p-try@v2.2.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -34425,14 +33807,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### parse-entities@v2.0.0 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2015 Titus Wormer @@ -34455,14 +33837,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### parse-json@v5.2.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -34472,15 +33854,15 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### parse-srcset@v1.0.2 - + License: MIT By: Alex Bell Repository: - + > The MIT License (MIT) > > Copyright (c) 2014 Alex Bell @@ -34502,14 +33884,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### path-exists@v4.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -34519,14 +33901,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### path-is-absolute@v1.0.1 - + License: MIT By: Sindre Sorhus - + > The MIT License (MIT) > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -34548,14 +33930,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### path-key@v3.1.1 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -34565,15 +33947,15 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### path-parse@v1.0.7 - + License: MIT By: Javier Blanco Repository: - + > The MIT License (MIT) > > Copyright (c) 2015 Javier Blanco @@ -34595,14 +33977,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### path-type@v4.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -34612,14 +33994,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### picocolors@v0.2.1 - + License: ISC By: Alexey Raspopov - + > ISC License > > Copyright (c) 2021 Alexey Raspopov, Kostiantyn Denysov, Anton Verinov @@ -34635,14 +34017,14 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF > OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### picomatch@v2.3.1 - + License: MIT By: Jon Schlinkert - + > The MIT License (MIT) > > Copyright (c) 2017-present, Jon Schlinkert. @@ -34664,14 +34046,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### pkg-dir@v4.2.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -34681,18 +34063,18 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### please-upgrade-node@v3.2.0 - + License: MIT By: typicode Repository: - + > MIT License > - > Copyright (c) 2017 + > Copyright (c) 2017 > > Permission is hereby granted, free of charge, to any person obtaining a copy > of this software and associated documentation files (the "Software"), to deal @@ -34711,14 +34093,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### postcss@v7.0.39 - + License: MIT By: Andrey Sitnik - + > The MIT License (MIT) > > Copyright 2013 Andrey Sitnik @@ -34739,14 +34121,14 @@ License files: > COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER > IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN > CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### postcss-less@v3.1.4 - + License: MIT By: Denys Kniazevych - + > The MIT License (MIT) > > Copyright (c) 2013 Andrey Sitnik @@ -34771,22 +34153,22 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### postcss-media-query-parser@v0.2.3 - + License: MIT By: dryoma Repository: - + ---------------------------------------- - + ### postcss-scss@v2.1.1 - + License: MIT By: Andrey Sitnik - + > The MIT License (MIT) > > Copyright 2013 Andrey Sitnik @@ -34807,14 +34189,14 @@ License files: > COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER > IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN > CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### postcss-selector-parser@v2.2.3 - + License: MIT By: Ben Briggs - + > Copyright (c) Ben Briggs (http://beneb.info) > > Permission is hereby granted, free of charge, to any person @@ -34837,14 +34219,14 @@ License files: > WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR > OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### postcss-values-parser@v2.0.1 - + License: MIT By: Andrew Powell (shellscape) - + > Copyright (c) Andrew Powell > > Permission is hereby granted, free of charge, to any person @@ -34867,15 +34249,15 @@ License files: > WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR > OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### pseudomap@v1.0.2 - + License: ISC By: Isaac Z. Schlueter Repository: - + > The ISC License > > Copyright (c) Isaac Z. Schlueter and Contributors @@ -34891,15 +34273,15 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### queue-microtask@v1.2.3 - + License: MIT By: Feross Aboukhadijeh Repository: - + > The MIT License (MIT) > > Copyright (c) Feross Aboukhadijeh @@ -34920,14 +34302,14 @@ License files: > COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER > IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN > CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### remark-footnotes@v2.0.0 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2020 Titus Wormer @@ -34950,28 +34332,28 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### remark-math@v3.0.1 - + License: MIT By: Junyoung Choi - + ---------------------------------------- - + ### remark-parse@v8.0.3 - + License: MIT By: Titus Wormer - + ---------------------------------------- - + ### repeat-string@v1.6.1 - + License: MIT By: Jon Schlinkert - + > The MIT License (MIT) > > Copyright (c) 2014-2016, Jon Schlinkert. @@ -34993,15 +34375,15 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### resolve@v1.22.0 - + License: MIT By: James Halliday Repository: - + > MIT License > > Copyright (c) 2012 James Halliday @@ -35023,14 +34405,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### resolve-from@v4.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -35040,15 +34422,15 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### reusify@v1.0.4 - + License: MIT By: Matteo Collina Repository: - + > The MIT License (MIT) > > Copyright (c) 2015 Matteo Collina @@ -35070,14 +34452,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### rimraf@v3.0.2 - + License: ISC By: Isaac Z. Schlueter - + > The ISC License > > Copyright (c) Isaac Z. Schlueter and Contributors @@ -35093,14 +34475,14 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### rollup-plugin-node-polyfills@v0.2.1 - + License: MIT Repository: - + > The MIT License (MIT) > > Copyright (c) 2019 these people @@ -35110,15 +34492,15 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### run-parallel@v1.2.0 - + License: MIT By: Feross Aboukhadijeh Repository: - + > The MIT License (MIT) > > Copyright (c) Feross Aboukhadijeh @@ -35139,14 +34521,14 @@ License files: > COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER > IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN > CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### sdbm@v2.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -35156,13 +34538,13 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### semver@v6.3.0 - + License: ISC - + > The ISC License > > Copyright (c) Isaac Z. Schlueter and Contributors @@ -35178,15 +34560,15 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### semver@v7.3.7 - + License: ISC By: GitHub Inc. Repository: - + > The ISC License > > Copyright (c) Isaac Z. Schlueter and Contributors @@ -35202,15 +34584,15 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### semver-compare@v1.0.0 - + License: MIT By: James Halliday Repository: - + > This software is released under the MIT license: > > Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -35229,14 +34611,14 @@ License files: > COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER > IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN > CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### shebang-command@v2.0.0 - + License: MIT By: Kevin Mårtensson - + > MIT License > > Copyright (c) Kevin Mårtensson (github.com/kevva) @@ -35246,14 +34628,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### shebang-regex@v3.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -35263,15 +34645,15 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### sigmund@v1.0.1 - + License: ISC By: Isaac Z. Schlueter Repository: - + > The ISC License > > Copyright (c) Isaac Z. Schlueter and Contributors @@ -35287,15 +34669,15 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### signal-exit@v3.0.7 - + License: ISC By: Ben Coe Repository: - + > The ISC License > > Copyright (c) 2015, Contributors @@ -35312,14 +34694,14 @@ License files: > OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, > WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, > ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### simple-html-tokenizer@v0.5.11 - + License: MIT Repository: - + > Copyright (c) 2014 Yehuda Katz and contributors > > Permission is hereby granted, free of charge, to any person obtaining a copy of @@ -35339,14 +34721,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### slash@v3.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -35356,14 +34738,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### state-toggle@v1.0.3 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2016 Titus Wormer @@ -35386,14 +34768,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### string-width@v5.0.1 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -35403,14 +34785,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### strip-ansi@v7.0.1 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -35420,14 +34802,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### strip-final-newline@v3.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -35437,14 +34819,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### supports-color@v5.5.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -35454,14 +34836,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### temp-dir@v2.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (sindresorhus.com) @@ -35471,14 +34853,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### tempy@v2.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -35488,14 +34870,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### to-regex-range@v5.0.1 - + License: MIT By: Jon Schlinkert - + > The MIT License (MIT) > > Copyright (c) 2015-present, Jon Schlinkert. @@ -35517,20 +34899,20 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### trim@v0.0.1 - + By: TJ Holowaychuk - + ---------------------------------------- - + ### trim-trailing-lines@v1.1.4 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2015 Titus Wormer @@ -35553,14 +34935,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### trough@v1.0.5 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2016 Titus Wormer @@ -35582,214 +34964,129 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### tslib@v1.14.1 - + License: 0BSD By: Microsoft Corp. Repository: - - > Copyright (c) Microsoft Corporation. - - > - - > Permission to use, copy, modify, and/or distribute this software for any - - > purpose with or without fee is hereby granted. - - > - - > THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH - - > REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY - - > AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, - - > INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM - - > LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - - > OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - + + > Copyright (c) Microsoft Corporation. + > + > Permission to use, copy, modify, and/or distribute this software for any + > purpose with or without fee is hereby granted. + > + > THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + > REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + > AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + > INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + > LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + > OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR > PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### tsutils@v3.21.0 - + License: MIT By: Klaus Meinhardt Repository: - - > The MIT License (MIT) - - > - - > Copyright (c) 2017 Klaus Meinhardt - - > - - > Permission is hereby granted, free of charge, to any person obtaining a copy - - > of this software and associated documentation files (the "Software"), to deal - - > in the Software without restriction, including without limitation the rights - - > to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - - > copies of the Software, and to permit persons to whom the Software is - - > furnished to do so, subject to the following conditions: - - > - - > The above copyright notice and this permission notice shall be included in all - - > copies or substantial portions of the Software. - - > - - > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - - > IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - - > FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - - > AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - - > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - - > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - + + > The MIT License (MIT) + > + > Copyright (c) 2017 Klaus Meinhardt + > + > Permission is hereby granted, free of charge, to any person obtaining a copy + > of this software and associated documentation files (the "Software"), to deal + > in the Software without restriction, including without limitation the rights + > to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + > copies of the Software, and to permit persons to whom the Software is + > furnished to do so, subject to the following conditions: + > + > The above copyright notice and this permission notice shall be included in all + > copies or substantial portions of the Software. + > + > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + > IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + > FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + > AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### typescript@v4.7.2 - + License: Apache-2.0 By: Microsoft Corp. Repository: - - > Apache License - - > - - > Version 2.0, January 2004 - - > - - > http://www.apache.org/licenses/ - - > - - > TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - > - - > 1. Definitions. - - > - - > "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - - > - - > "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - - > - - > "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - - > - - > "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - - > - - > "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - - > - - > "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - - > - - > "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - - > - - > "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - - > - - > "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - - > - - > "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - - > - - > 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - - > - - > 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - - > - - > 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - - > - - > You must give any other recipients of the Work or Derivative Works a copy of this License; and - - > - - > You must cause any modified files to carry prominent notices stating that You changed the files; and - - > - - > You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - - > - - > If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - - > - - > 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - - > - - > 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - - > - - > 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - - > - - > 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - - > - - > 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - - > - + + > Apache License + > + > Version 2.0, January 2004 + > + > http://www.apache.org/licenses/ + > + > TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + > + > 1. Definitions. + > + > "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + > + > "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + > + > "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + > + > "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + > + > "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + > + > "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + > + > "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + > + > "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + > + > "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + > + > "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + > + > 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + > + > 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + > + > 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + > + > You must give any other recipients of the Work or Derivative Works a copy of this License; and + > + > You must cause any modified files to carry prominent notices stating that You changed the files; and + > + > You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and + > + > If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + > + > 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + > + > 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + > + > 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + > + > 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + > + > 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + > > END OF TERMS AND CONDITIONS - + ---------------------------------------- - + ### unherit@v1.1.3 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2015 Titus Wormer @@ -35811,14 +35108,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### unified@v9.2.1 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2015 Titus Wormer @@ -35840,15 +35137,15 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### uniq@v1.0.1 - + License: MIT By: Mikola Lysenko Repository: - + > The MIT License (MIT) > > Copyright (c) 2013 Mikola Lysenko @@ -35870,14 +35167,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### unique-string@v3.0.0 - + License: MIT By: Sindre Sorhus - + > MIT License > > Copyright (c) Sindre Sorhus (https://sindresorhus.com) @@ -35887,14 +35184,14 @@ License files: > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. > > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### unist-util-is@v4.1.0 - + License: MIT By: Titus Wormer - + > (The MIT license) > > Copyright (c) 2015 Titus Wormer @@ -35917,14 +35214,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### unist-util-remove-position@v2.0.1 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2016 Titus Wormer @@ -35947,14 +35244,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### unist-util-stringify-position@v2.0.3 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2016 Titus Wormer @@ -35977,14 +35274,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### unist-util-visit@v2.0.3 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2015 Titus Wormer @@ -36007,14 +35304,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### unist-util-visit-parents@v3.1.1 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2016 Titus Wormer @@ -36037,14 +35334,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### vfile@v4.2.1 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2015 Titus Wormer @@ -36066,14 +35363,14 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### vfile-location@v3.2.0 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2016 Titus Wormer @@ -36096,14 +35393,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### vfile-message@v2.0.4 - + License: MIT By: Titus Wormer - + > (The MIT License) > > Copyright (c) 2017 Titus Wormer @@ -36126,14 +35423,14 @@ License files: > CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, > TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ---------------------------------------- - + ### vnopts@v1.0.2 - + License: MIT By: Ika - + > MIT License > > Copyright (c) Ika (https://github.com/ikatyang) @@ -36155,15 +35452,15 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. - + ---------------------------------------- - + ### wcwidth@v1.0.1 - + License: MIT By: Tim Oxley Repository: - + > wcwidth.js: JavaScript Portng of Markus Kuhn's wcwidth() Implementation > ======================================================================= > @@ -36193,15 +35490,15 @@ License files: > IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) > ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE > POSSIBILITY OF SUCH DAMAGE. - + ---------------------------------------- - + ### which@v2.0.2 - + License: ISC By: Isaac Z. Schlueter Repository: - + > The ISC License > > Copyright (c) Isaac Z. Schlueter and Contributors @@ -36217,15 +35514,15 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### wrappy@v1.0.2 - + License: ISC By: Isaac Z. Schlueter Repository: - + > The ISC License > > Copyright (c) Isaac Z. Schlueter and Contributors @@ -36241,14 +35538,14 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### xtend@v4.0.2 - + License: MIT By: Raynos - + > The MIT License (MIT) > Copyright (c) 2012-2014 Raynos. > @@ -36269,15 +35566,15 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE SOFTWARE. - + ---------------------------------------- - + ### yallist@v2.1.2 - + License: ISC By: Isaac Z. Schlueter Repository: - + > The ISC License > > Copyright (c) Isaac Z. Schlueter and Contributors @@ -36293,15 +35590,15 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### yallist@v4.0.0 - + License: ISC By: Isaac Z. Schlueter Repository: - + > The ISC License > > Copyright (c) Isaac Z. Schlueter and Contributors @@ -36317,14 +35614,14 @@ License files: > WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR > IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - + ---------------------------------------- - + ### yaml@v1.10.2 - + License: ISC By: Eemeli Aro - + > Copyright 2018 Eemeli Aro > > Permission to use, copy, modify, and/or distribute this software for any purpose @@ -36338,14 +35635,14 @@ License files: > OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER > TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF > THIS SOFTWARE. - + ---------------------------------------- - + ### yaml-unist-parser@v1.3.1 - + License: MIT By: Ika - + > MIT License > > Copyright (c) Ika (https://github.com/ikatyang) @@ -36367,31 +35664,30 @@ License files: > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > SOFTWARE. + - + ### [pretty-format](https://www.npmjs.com/package/pretty-format) (version 27.5.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Facebook, Inc. and its affiliates. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -36399,31 +35695,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [prop-types](https://www.npmjs.com/package/prop-types) (version 15.8.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2013-present, Facebook, Inc. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -36431,21 +35726,20 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [proxy-addr](https://www.npmjs.com/package/proxy-addr) (version 2.0.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014-2016 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -36453,10 +35747,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -36464,31 +35758,30 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [pump](https://www.npmjs.com/package/pump) (version 3.0.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014 Mathias Buus - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -36497,18 +35790,16 @@ License files: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [punycode](https://www.npmjs.com/package/punycode) (version 2.3.1) - License tags: MIT License files: - -- LICENSE-MIT.txt: +* LICENSE-MIT.txt: Copyright Mathias Bynens - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including @@ -36516,10 +35807,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -36527,56 +35818,54 @@ License files: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [pupa](https://www.npmjs.com/package/pupa) (version 2.1.1) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [qs](https://www.npmjs.com/package/qs) (version 6.13.0) - License tags: BSD-3-Clause License files: - -- LICENSE.md: +* LICENSE.md: BSD 3-Clause License - + Copyright (c) 2014, Nathan LaFreniere and other [contributors](https://github.com/ljharb/qs/graphs/contributors) All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -36587,22 +35876,21 @@ License files: CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [range-parser](https://www.npmjs.com/package/range-parser) (version 1.2.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2012-2014 TJ Holowaychuk Copyright (c) 2015-2016 Douglas Christopher Wilson + ### [raw-body](https://www.npmjs.com/package/raw-body) (version 2.5.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2013-2014 Jonathan Ong Copyright (c) 2014-2022 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -36654,47 +35941,47 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [rc](https://www.npmjs.com/package/rc) (version 1.2.8) - License tags: (BSD-2-Clause OR MIT OR Apache-2.0) License files: - -- LICENSE.APACHE2: +* LICENSE.APACHE2: Apache License, Version 2.0 - + Copyright (c) 2011 Dominic Tarr - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + -- LICENSE.BSD: +* LICENSE.BSD: Copyright (c) 2013, Dominic Tarr All rights reserved. - + Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - + modification, are permitted provided that the following conditions are met: + 1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. + list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - + and/or other materials provided with the distribution. + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -36705,62 +35992,62 @@ License files: ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - + The views and conclusions contained in the software and documentation are those - of the authors and should not be interpreted as representing official policies, + of the authors and should not be interpreted as representing official policies, either expressed or implied, of the FreeBSD Project. + -- LICENSE.MIT: +* LICENSE.MIT: The MIT License - + Copyright (c) 2011 Dominic Tarr - - Permission is hereby granted, free of charge, - to any person obtaining a copy of this software and - associated documentation files (the "Software"), to - deal in the Software without restriction, including - without limitation the rights to use, copy, modify, - merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom - the Software is furnished to do so, + + Permission is hereby granted, free of charge, + to any person obtaining a copy of this software and + associated documentation files (the "Software"), to + deal in the Software without restriction, including + without limitation the rights to use, copy, modify, + merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom + the Software is furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR - ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR + ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [re-resizable](https://www.npmjs.com/package/re-resizable) (version 6.9.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2018 @bokuweb - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -36768,31 +36055,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [react-dom](https://www.npmjs.com/package/react-dom) (version 17.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Facebook, Inc. and its affiliates. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -36800,31 +36086,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [react-hotkeys-hook](https://www.npmjs.com/package/react-hotkeys-hook) (version 4.3.7) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2018 Johannes Klauss - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -36832,31 +36117,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [react-intersection-observer](https://www.npmjs.com/package/react-intersection-observer) (version 8.34.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2022 React Intersection Observer authors - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -36864,31 +36148,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [react-is](https://www.npmjs.com/package/react-is) (version 16.13.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Facebook, Inc. and its affiliates. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -36896,31 +36179,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [react-is](https://www.npmjs.com/package/react-is) (version 17.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Facebook, Inc. and its affiliates. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -36928,31 +36210,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [react-is](https://www.npmjs.com/package/react-is) (version 18.2.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Facebook, Inc. and its affiliates. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -36960,31 +36241,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [react-keyed-flatten-children](https://www.npmjs.com/package/react-keyed-flatten-children) (version 1.3.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2019 Tom McKenzie - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -36992,37 +36272,35 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [react-leaflet-draw](https://www.npmjs.com/package/react-leaflet-draw) (version 0.19.0) - License tags: ISC - + ### [react-leaflet](https://www.npmjs.com/package/react-leaflet) (version 2.4.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2015-present Paul Le Cam and 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 in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -37030,89 +36308,67 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [react-redux](https://www.npmjs.com/package/react-redux) (version 8.1.3) - License tags: MIT License files: +* LICENSE.md: + + The MIT License (MIT) + + Copyright (c) 2015-present Dan Abramov + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + -- LICENSE.md: - - The MIT License (MIT) - - - - Copyright (c) 2015-present Dan Abramov - - - - Permission is hereby granted, free of charge, to any person obtaining a copy - - of this software and associated documentation files (the "Software"), to deal - - in the Software without restriction, including without limitation the rights - - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - - copies of the Software, and to permit persons to whom the Software is - - furnished to do so, subject to the following conditions: - - - - The above copyright notice and this permission notice shall be included in all - - copies or substantial portions of the Software. - - - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - - SOFTWARE. - ### [react-transition-group](https://www.npmjs.com/package/react-transition-group) (version 4.4.5) - License tags: BSD-3-Clause License files: - -- LICENSE: +* LICENSE: BSD 3-Clause License - + Copyright (c) 2018, React Community Forked from React (https://github.com/facebook/react) Copyright 2013-present, Facebook, Inc. All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -37123,31 +36379,30 @@ License files: CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [react-virtual](https://www.npmjs.com/package/react-virtual) (version 2.10.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2019 Tanner Linsley - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -37155,31 +36410,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [react-virtualized-auto-sizer](https://www.npmjs.com/package/react-virtualized-auto-sizer) (version 1.0.24) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: MIT License - + Copyright (c) 2023 Brian Vaughn - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -37187,31 +36441,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [react-window](https://www.npmjs.com/package/react-window) (version 1.8.10) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: The MIT License (MIT) - + Copyright (c) 2018 Brian Vaughn - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -37219,31 +36472,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [react](https://www.npmjs.com/package/react) (version 17.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Facebook, Inc. and its affiliates. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -37251,32 +36503,31 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [readable-stream](https://www.npmjs.com/package/readable-stream) (version 3.6.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Node.js is licensed for use as follows: - + """ Copyright Node.js contributors. All rights reserved. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -37285,10 +36536,10 @@ License files: FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ - + This license applies to parts of Node.js originating from the https://github.com/joyent/node repository: - + """ Copyright Joyent, Inc. and other Node contributors. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy @@ -37297,10 +36548,10 @@ License files: rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -37309,83 +36560,61 @@ License files: FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ + - + ### [redux-thunk](https://www.npmjs.com/package/redux-thunk) (version 2.4.2) - License tags: MIT License files: - -- LICENSE.md: - - The MIT License (MIT) - - - - Copyright (c) 2015-present Dan Abramov - - - - Permission is hereby granted, free of charge, to any person obtaining a copy - - of this software and associated documentation files (the "Software"), to deal - - in the Software without restriction, including without limitation the rights - - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - - copies of the Software, and to permit persons to whom the Software is - - furnished to do so, subject to the following conditions: +* LICENSE.md: + + The MIT License (MIT) + + Copyright (c) 2015-present Dan Abramov + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + - - The above copyright notice and this permission notice shall be included in all - - copies or substantial portions of the Software. - - - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - - SOFTWARE. - - ### [redux](https://www.npmjs.com/package/redux) (version 4.2.1) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: The MIT License (MIT) - + Copyright (c) 2015-present Dan Abramov - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -37393,77 +36622,72 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [reflux-core](https://www.npmjs.com/package/reflux-core) (version 0.3.0) - License tags: BSD-3-Clause License files: - -- LICENSE.md: +* LICENSE.md: Copyright (c) 2014, Mikael Brassman All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - + ### [reflux](https://www.npmjs.com/package/reflux) (version 0.4.1) - License tags: BSD-3-Clause License files: - -- LICENSE.md: +* LICENSE.md: Copyright (c) 2014, Mikael Brassman All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - + ### [regexp.prototype.flags](https://www.npmjs.com/package/regexp.prototype.flags) (version 1.5.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (C) 2014 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -37471,37 +36695,37 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [reservoir](https://www.npmjs.com/package/reservoir) (version 0.1.2) - License tags: MIT - + ### [resolve-mongodb-srv](https://www.npmjs.com/package/resolve-mongodb-srv) (version 1.1.5) - License tags: Apache-2.0 License files: +* LICENSE: -- LICENSE: - + Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -37509,24 +36733,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -37534,7 +36758,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -37548,18 +36772,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -37575,24 +36799,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -37609,14 +36833,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -37624,12 +36848,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -37639,7 +36863,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -37651,7 +36875,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -37662,67 +36886,66 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + Copyright 2020 MongoDB Inc. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + + - + ### [run-applescript](https://www.npmjs.com/package/run-applescript) (version 5.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [safe-buffer](https://www.npmjs.com/package/safe-buffer) (version 5.2.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) Feross Aboukhadijeh - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -37730,31 +36953,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [safer-buffer](https://www.npmjs.com/package/safer-buffer) (version 2.1.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2018 Nikita Skovoroda - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -37762,31 +36984,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [scheduler](https://www.npmjs.com/package/scheduler) (version 0.20.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Facebook, Inc. and its affiliates. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -37794,31 +37015,29 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [select](https://www.npmjs.com/package/select) (version 1.1.2) - License tags: MIT - + ### [semver](https://www.npmjs.com/package/semver) (version 6.3.1) - License tags: ISC License files: - -- LICENSE: +* LICENSE: The ISC License - + Copyright (c) Isaac Z. Schlueter and Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -37826,25 +37045,24 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [semver](https://www.npmjs.com/package/semver) (version 7.6.3) - License tags: ISC License files: - -- LICENSE: +* LICENSE: The ISC License - + Copyright (c) Isaac Z. Schlueter and Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -37852,22 +37070,21 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [send](https://www.npmjs.com/package/send) (version 0.19.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2012 TJ Holowaychuk Copyright (c) 2014-2022 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -37875,10 +37092,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -37886,24 +37103,23 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [serve-static](https://www.npmjs.com/package/serve-static) (version 1.16.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2010 Sencha Inc. Copyright (c) 2011 LearnBoost Copyright (c) 2011 TJ Holowaychuk Copyright (c) 2014-2016 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -37911,10 +37127,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -37922,31 +37138,30 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [set-function-length](https://www.npmjs.com/package/set-function-length) (version 1.2.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Jordan Harband and 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 in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -37954,31 +37169,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [set-function-name](https://www.npmjs.com/package/set-function-name) (version 2.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Jordan Harband and 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 in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -37986,23 +37200,22 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [setprototypeof](https://www.npmjs.com/package/setprototypeof) (version 1.2.0) - License tags: ISC License files: - -- LICENSE: +* LICENSE: Copyright (c) 2015, Wes Todd - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY @@ -38010,71 +37223,68 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [shebang-command](https://www.npmjs.com/package/shebang-command) (version 2.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Kevin Mårtensson (github.com/kevva) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [shebang-regex](https://www.npmjs.com/package/shebang-regex) (version 3.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [side-channel](https://www.npmjs.com/package/side-channel) (version 1.0.6) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2019 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -38082,26 +37292,25 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [signal-exit](https://www.npmjs.com/package/signal-exit) (version 3.0.7) - License tags: ISC License files: - -- LICENSE.txt: +* LICENSE.txt: The ISC License - + Copyright (c) 2015, Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE @@ -38109,26 +37318,25 @@ License files: OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [signal-exit](https://www.npmjs.com/package/signal-exit) (version 4.1.0) - License tags: ISC License files: - -- LICENSE.txt: +* LICENSE.txt: The ISC License - + Copyright (c) 2015-2023 Benjamin Coe, Isaac Z. Schlueter, and Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE @@ -38136,114 +37344,110 @@ License files: OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [simple-concat](https://www.npmjs.com/package/simple-concat) (version 1.0.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) Feross Aboukhadijeh - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [simple-get](https://www.npmjs.com/package/simple-get) (version 4.0.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) Feross Aboukhadijeh - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [smart-buffer](https://www.npmjs.com/package/smart-buffer) (version 4.2.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2013-2017 Josh Glazebrook - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [socks-proxy-agent](https://www.npmjs.com/package/socks-proxy-agent) (version 8.0.4) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2013 Nathan Rajlich - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -38251,10 +37455,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -38263,59 +37467,56 @@ License files: TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [socks](https://www.npmjs.com/package/socks) (version 2.8.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2013 Josh Glazebrook - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [sort-keys-length](https://www.npmjs.com/package/sort-keys-length) (version 1.0.1) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: Copyright (c) Kevin Mårtensson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -38323,31 +37524,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [sort-keys](https://www.npmjs.com/package/sort-keys) (version 1.1.2) - License tags: MIT License files: - -- license: +* license: The MIT License (MIT) - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -38355,230 +37555,137 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [source-code-pro](https://www.npmjs.com/package/source-code-pro) (version 2.38.0) - License tags: OFL-1.1 License files: - -- LICENSE.md: - - Copyright 2010-2019 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe in the United States and/or other countries. - - - - This Font Software is licensed under the SIL Open Font License, Version 1.1. - - - - This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL - - - - - - ----------------------------------------------------------- - - SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 - - ----------------------------------------------------------- - - - - PREAMBLE - - The goals of the Open Font License (OFL) are to stimulate worldwide - - development of collaborative font projects, to support the font creation - - efforts of academic and linguistic communities, and to provide a free and - - open framework in which fonts may be shared and improved in partnership - - with others. - - - - The OFL allows the licensed fonts to be used, studied, modified and - - redistributed freely as long as they are not sold by themselves. The - - fonts, including any derivative works, can be bundled, embedded, - - redistributed and/or sold with any software provided that any reserved - - names are not used by derivative works. The fonts and derivatives, - - however, cannot be released under any other type of license. The - - requirement for fonts to remain under this license does not apply - - to any document created using the fonts or their derivatives. - - - - DEFINITIONS - - "Font Software" refers to the set of files released by the Copyright - - Holder(s) under this license and clearly marked as such. This may - - include source files, build scripts and documentation. - - - - "Reserved Font Name" refers to any names specified as such after the - - copyright statement(s). - - - - "Original Version" refers to the collection of Font Software components as - - distributed by the Copyright Holder(s). - +* LICENSE.md: + + Copyright 2010-2019 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe in the United States and/or other countries. + + This Font Software is licensed under the SIL Open Font License, Version 1.1. + + This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL + + + ----------------------------------------------------------- + SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 + ----------------------------------------------------------- + + PREAMBLE + The goals of the Open Font License (OFL) are to stimulate worldwide + development of collaborative font projects, to support the font creation + efforts of academic and linguistic communities, and to provide a free and + open framework in which fonts may be shared and improved in partnership + with others. + + The OFL allows the licensed fonts to be used, studied, modified and + redistributed freely as long as they are not sold by themselves. The + fonts, including any derivative works, can be bundled, embedded, + redistributed and/or sold with any software provided that any reserved + names are not used by derivative works. The fonts and derivatives, + however, cannot be released under any other type of license. The + requirement for fonts to remain under this license does not apply + to any document created using the fonts or their derivatives. + + DEFINITIONS + "Font Software" refers to the set of files released by the Copyright + Holder(s) under this license and clearly marked as such. This may + include source files, build scripts and documentation. + + "Reserved Font Name" refers to any names specified as such after the + copyright statement(s). + + "Original Version" refers to the collection of Font Software components as + distributed by the Copyright Holder(s). + + "Modified Version" refers to any derivative made by adding to, deleting, + or substituting -- in part or in whole -- any of the components of the + Original Version, by changing formats or by porting the Font Software to a + new environment. + + "Author" refers to any designer, engineer, programmer, technical + writer or other person who contributed to the Font Software. + + PERMISSION & CONDITIONS + Permission is hereby granted, free of charge, to any person obtaining + a copy of the Font Software, to use, study, copy, merge, embed, modify, + redistribute, and sell modified and unmodified copies of the Font + Software, subject to the following conditions: + + 1) Neither the Font Software nor any of its individual components, + in Original or Modified Versions, may be sold by itself. + + 2) Original or Modified Versions of the Font Software may be bundled, + redistributed and/or sold with any software, provided that each copy + contains the above copyright notice and this license. These can be + included either as stand-alone text files, human-readable headers or + in the appropriate machine-readable metadata fields within text or + binary files as long as those fields can be easily viewed by the user. + + 3) No Modified Version of the Font Software may use the Reserved Font + Name(s) unless explicit written permission is granted by the corresponding + Copyright Holder. This restriction only applies to the primary font name as + presented to the users. + + 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font + Software shall not be used to promote, endorse or advertise any + Modified Version, except to acknowledge the contribution(s) of the + Copyright Holder(s) and the Author(s) or with their explicit written + permission. + + 5) The Font Software, modified or unmodified, in part or in whole, + must be distributed entirely under this license, and must not be + distributed under any other license. The requirement for fonts to + remain under this license does not apply to any document created + using the Font Software. + + TERMINATION + This license becomes null and void if any of the above conditions are + not met. + + DISCLAIMER + THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT + OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE + COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL + DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM + OTHER DEALINGS IN THE FONT SOFTWARE. + - "Modified Version" refers to any derivative made by adding to, deleting, - - or substituting -- in part or in whole -- any of the components of the - - Original Version, by changing formats or by porting the Font Software to a - - new environment. - - - - "Author" refers to any designer, engineer, programmer, technical - - writer or other person who contributed to the Font Software. - - - - PERMISSION & CONDITIONS - - Permission is hereby granted, free of charge, to any person obtaining - - a copy of the Font Software, to use, study, copy, merge, embed, modify, - - redistribute, and sell modified and unmodified copies of the Font - - Software, subject to the following conditions: - - - - 1) Neither the Font Software nor any of its individual components, - - in Original or Modified Versions, may be sold by itself. - - - - 2) Original or Modified Versions of the Font Software may be bundled, - - redistributed and/or sold with any software, provided that each copy - - contains the above copyright notice and this license. These can be - - included either as stand-alone text files, human-readable headers or - - in the appropriate machine-readable metadata fields within text or - - binary files as long as those fields can be easily viewed by the user. - - - - 3) No Modified Version of the Font Software may use the Reserved Font - - Name(s) unless explicit written permission is granted by the corresponding - - Copyright Holder. This restriction only applies to the primary font name as - - presented to the users. - - - - 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font - - Software shall not be used to promote, endorse or advertise any - - Modified Version, except to acknowledge the contribution(s) of the - - Copyright Holder(s) and the Author(s) or with their explicit written - - permission. - - - - 5) The Font Software, modified or unmodified, in part or in whole, - - must be distributed entirely under this license, and must not be - - distributed under any other license. The requirement for fonts to - - remain under this license does not apply to any document created - - using the Font Software. - - - - TERMINATION - - This license becomes null and void if any of the above conditions are - - not met. - - - - DISCLAIMER - - THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF - - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT - - OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE - - COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - - INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL - - DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - - FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM - - OTHER DEALINGS IN THE FONT SOFTWARE. - - ### [source-map](https://www.npmjs.com/package/source-map) (version 0.6.1) - License tags: BSD-3-Clause License files: +* LICENSE: -- LICENSE: - + Copyright (c) 2009-2011, Mozilla Foundation and contributors All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + * Neither the names of the Mozilla Foundation nor the names of project contributors may be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -38589,31 +37696,30 @@ License files: CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [sparse-bitfield](https://www.npmjs.com/package/sparse-bitfield) (version 3.0.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2016 Mathias Buus - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -38621,20 +37727,19 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [sprintf-js](https://www.npmjs.com/package/sprintf-js) (version 1.1.3) - License tags: BSD-3-Clause License files: - -- LICENSE: +* LICENSE: Copyright (c) 2007-present, Alexandru Mărășteanu All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright @@ -38645,7 +37750,7 @@ License files: * Neither the name of this software nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -38656,29 +37761,28 @@ License files: ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [ssh2](https://www.npmjs.com/package/ssh2) (version 1.15.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright Brian White. All rights reserved. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -38687,31 +37791,30 @@ License files: FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [statuses](https://www.npmjs.com/package/statuses) (version 2.0.1) - License tags: MIT License files: +* LICENSE: -- LICENSE: - + The MIT License (MIT) - + Copyright (c) 2014 Jonathan Ong Copyright (c) 2016 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -38719,31 +37822,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [stop-iteration-iterator](https://www.npmjs.com/package/stop-iteration-iterator) (version 1.0.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2023 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -38751,54 +37853,52 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [stream-chain](https://www.npmjs.com/package/stream-chain) (version 2.2.5) - License tags: BSD-3-Clause License files: - -- LICENSE: +* LICENSE: Copyright 2019 Eugene Lazutkin - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [stream-json](https://www.npmjs.com/package/stream-json) (version 1.7.5) - License tags: BSD-3-Clause License files: - -- LICENSE: +* LICENSE: This library is available under the terms of the modified BSD license. No external contributions are allowed under licenses which are fundamentally incompatible with the BSD license that this library is distributed under. - + The text of the BSD license is reproduced below. - + ------------------------------------------------------------------------------- The "New" BSD License: ********************** - + Copyright (c) 2005-2018, Eugene Lazutkin All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, @@ -38807,7 +37907,7 @@ License files: * Neither the name of Eugene Lazutkin nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -38818,32 +37918,31 @@ License files: CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [string_decoder](https://www.npmjs.com/package/string_decoder) (version 1.3.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Node.js is licensed for use as follows: - + """ Copyright Node.js contributors. All rights reserved. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -38852,10 +37951,10 @@ License files: FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ - + This license applies to parts of Node.js originating from the https://github.com/joyent/node repository: - + """ Copyright Joyent, Inc. and other Node contributors. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy @@ -38864,10 +37963,10 @@ License files: rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -38876,131 +37975,126 @@ License files: FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ + + - + ### [strip-bom-buf](https://www.npmjs.com/package/strip-bom-buf) (version 2.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [strip-bom-stream](https://www.npmjs.com/package/strip-bom-stream) (version 4.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [strip-final-newline](https://www.npmjs.com/package/strip-final-newline) (version 2.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [strip-final-newline](https://www.npmjs.com/package/strip-final-newline) (version 3.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [strip-json-comments](https://www.npmjs.com/package/strip-json-comments) (version 3.1.1) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [strnum](https://www.npmjs.com/package/strnum) (version 1.0.5) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2021 Natural Intelligence - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -39008,29 +38102,28 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [style-mod](https://www.npmjs.com/package/style-mod) (version 4.1.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (C) 2018 by Marijn Haverbeke and others - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -39038,31 +38131,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [stylis](https://www.npmjs.com/package/stylis) (version 4.2.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2016-present Sultan Tarimo - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -39070,71 +38162,69 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [supports-color](https://www.npmjs.com/package/supports-color) (version 5.5.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [supports-color](https://www.npmjs.com/package/supports-color) (version 7.2.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [system-ca](https://www.npmjs.com/package/system-ca) (version 2.0.1) - License tags: Apache-2.0 License files: +* LICENSE: -- LICENSE: - + Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -39142,24 +38232,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -39167,7 +38257,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -39181,18 +38271,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -39208,24 +38298,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -39242,14 +38332,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -39257,12 +38347,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -39272,7 +38362,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -39284,7 +38374,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -39295,47 +38385,47 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + Copyright 2020 MongoDB Inc. - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + + - + ### [tabbable](https://www.npmjs.com/package/tabbable) (version 5.3.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2015 David Clark - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -39343,31 +38433,31 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [tar-fs](https://www.npmjs.com/package/tar-fs) (version 2.1.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014 Mathias Buus - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -39376,30 +38466,28 @@ License files: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [tar-stream](https://www.npmjs.com/package/tar-stream) (version 1.6.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2014 Mathias Buus - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -39408,59 +38496,56 @@ License files: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + ### [text-table](https://www.npmjs.com/package/text-table) (version 0.2.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: This software is released under the MIT license: - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [tiny-emitter](https://www.npmjs.com/package/tiny-emitter) (version 2.1.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2017 Scott Corgan - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -39468,51 +38553,50 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [titleize](https://www.npmjs.com/package/titleize) (version 3.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (https://sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [to-buffer](https://www.npmjs.com/package/to-buffer) (version 1.1.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2016 Mathias Buus - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -39520,52 +38604,50 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [to-fast-properties](https://www.npmjs.com/package/to-fast-properties) (version 2.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) 2014 Petka Antonov 2015 Sindre Sorhus - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [toidentifier](https://www.npmjs.com/package/toidentifier) (version 1.0.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2016 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -39573,37 +38655,35 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [tr46](https://www.npmjs.com/package/tr46) (version 0.0.3) - License tags: MIT - + ### [tr46](https://www.npmjs.com/package/tr46) (version 4.1.1) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: The MIT License (MIT) - + Copyright (c) Sebastian Mayr - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -39611,218 +38691,167 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [tslib](https://www.npmjs.com/package/tslib) (version 2.6.2) - License tags: 0BSD License files: - -- CopyrightNotice.txt: - - /****************************************************************************** - - Copyright (c) Microsoft Corporation. - - - - Permission to use, copy, modify, and/or distribute this software for any - - purpose with or without fee is hereby granted. - - - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH - - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY - - AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, - - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM - - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - - OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - +* CopyrightNotice.txt: + + /****************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + + + +* LICENSE.txt: + + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - ***************************************************************************** */ - -- LICENSE.txt: - - Copyright (c) Microsoft Corporation. - - - - Permission to use, copy, modify, and/or distribute this software for any - - purpose with or without fee is hereby granted. - - - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH - - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY - - AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, - - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM - - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - - OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - - PERFORMANCE OF THIS SOFTWARE. - ### [tslib](https://www.npmjs.com/package/tslib) (version 2.6.3) - License tags: 0BSD License files: - -- CopyrightNotice.txt: - - /****************************************************************************** - - Copyright (c) Microsoft Corporation. - - - - Permission to use, copy, modify, and/or distribute this software for any - - purpose with or without fee is hereby granted. - - - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH - - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY - - AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, - - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM - - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - - OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - +* CopyrightNotice.txt: + + /****************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + + + +* LICENSE.txt: + + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - ***************************************************************************** */ - -- LICENSE.txt: - - Copyright (c) Microsoft Corporation. - - - - Permission to use, copy, modify, and/or distribute this software for any - - purpose with or without fee is hereby granted. - - - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH - - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY - - AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, - - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM - - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - - OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - - PERFORMANCE OF THIS SOFTWARE. - ### [tunnel-agent](https://www.npmjs.com/package/tunnel-agent) (version 0.6.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License - + Version 2.0, January 2004 - + http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + You must give any other recipients of the Work or Derivative Works a copy of this License; and - + You must cause any modified files to carry prominent notices stating that You changed the files; and - + You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + ### [tweetnacl](https://www.npmjs.com/package/tweetnacl) (version 0.14.5) - License tags: Unlicense License files: - -- LICENSE: +* LICENSE: This is free and unencumbered software released into the public domain. - + Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means. - + In jurisdictions that recognize copyright laws, the author or authors of this software dedicate any and all copyright interest in the software to the public domain. We make this dedication for the benefit @@ -39830,7 +38859,7 @@ License files: successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this software under copyright law. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -39838,24 +38867,23 @@ License files: OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - + For more information, please refer to + - + ### [type-is](https://www.npmjs.com/package/type-is) (version 1.6.18) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014 Jonathan Ong Copyright (c) 2014-2015 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -39863,10 +38891,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -39874,52 +38902,50 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [universalify](https://www.npmjs.com/package/universalify) (version 2.0.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2017, Ryan Zimmerman - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [unpipe](https://www.npmjs.com/package/unpipe) (version 1.0.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2015 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -39927,10 +38953,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -39938,71 +38964,68 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [untildify](https://www.npmjs.com/package/untildify) (version 4.0.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [unused-filename](https://www.npmjs.com/package/unused-filename) (version 2.1.0) - License tags: MIT License files: - -- license: +* license: MIT License - + Copyright (c) Sindre Sorhus (sindresorhus.com) - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [use-sync-external-store](https://www.npmjs.com/package/use-sync-external-store) (version 1.2.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) Facebook, Inc. and its affiliates. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -40010,21 +39033,20 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [util-deprecate](https://www.npmjs.com/package/util-deprecate) (version 1.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014 Nathan Rajlich - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without @@ -40033,10 +39055,10 @@ License files: copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND @@ -40045,72 +39067,69 @@ License files: WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [utils-merge](https://www.npmjs.com/package/utils-merge) (version 1.0.1) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2013-2017 Jared Hanson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [uuid](https://www.npmjs.com/package/uuid) (version 9.0.1) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: The MIT License (MIT) - + Copyright (c) 2010-2020 Robert Kieffer and other 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 in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [vary](https://www.npmjs.com/package/vary) (version 1.1.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: (The MIT License) - + Copyright (c) 2014-2017 Douglas Christopher Wilson - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including @@ -40118,10 +39137,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -40129,29 +39148,28 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [w3c-keyname](https://www.npmjs.com/package/w3c-keyname) (version 2.2.6) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright (C) 2016 by Marijn Haverbeke and others - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -40159,31 +39177,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [warning](https://www.npmjs.com/package/warning) (version 4.0.3) - License tags: MIT License files: - -- LICENSE.md: +* LICENSE.md: MIT License - + Copyright (c) 2013-present, Facebook, Inc. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -40191,32 +39208,31 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [web-streams-polyfill](https://www.npmjs.com/package/web-streams-polyfill) (version 3.3.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2024 Mattias Buelens Copyright (c) 2016 Diwank Singh Tomer - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -40224,31 +39240,31 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [web-vitals](https://www.npmjs.com/package/web-vitals) (version 2.1.2) - License tags: Apache-2.0 License files: +* LICENSE: -- LICENSE: - + Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -40256,24 +39272,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -40281,7 +39297,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -40295,18 +39311,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -40322,24 +39338,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -40356,14 +39372,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -40371,12 +39387,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -40386,7 +39402,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -40398,7 +39414,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -40409,11 +39425,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include @@ -40422,45 +39438,44 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright 2020 Google LLC - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + https://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. + - + ### [web-worker](https://www.npmjs.com/package/web-worker) (version 1.3.0) - License tags: Apache-2.0 License files: - -- LICENSE: +* LICENSE: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ - + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - + 1. Definitions. - + "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - + "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - + "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, @@ -40468,24 +39483,24 @@ License files: direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - + "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - + "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - + "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - + "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - + "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications @@ -40493,7 +39508,7 @@ License files: of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - + "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally @@ -40507,18 +39522,18 @@ License files: Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - + 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - + 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable @@ -40534,24 +39549,24 @@ License files: or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - + 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and - + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and - + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained @@ -40568,14 +39583,14 @@ License files: or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. - + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - + 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of @@ -40583,12 +39598,12 @@ License files: Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - + 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - + 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, @@ -40598,7 +39613,7 @@ License files: PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - + 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly @@ -40610,7 +39625,7 @@ License files: work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - + 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, @@ -40621,11 +39636,11 @@ License files: defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - + END OF TERMS AND CONDITIONS - + APPENDIX: How to apply the Apache License to your work. - + To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include @@ -40634,79 +39649,75 @@ License files: file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. - + Copyright [yyyy] [name of copyright owner] - + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. - + ### [webidl-conversions](https://www.npmjs.com/package/webidl-conversions) (version 3.0.1) - License tags: BSD-2-Clause License files: - -- LICENSE.md: +* LICENSE.md: # The BSD 2-Clause License - + Copyright (c) 2014, Domenic Denicola All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [webidl-conversions](https://www.npmjs.com/package/webidl-conversions) (version 7.0.0) - License tags: BSD-2-Clause License files: - -- LICENSE.md: +* LICENSE.md: # The BSD 2-Clause License - + Copyright (c) 2014, Domenic Denicola All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + - + ### [webpack](https://www.npmjs.com/package/webpack) (version 5.94.0) - License tags: MIT License files: - -- LICENSE: +* LICENSE: Copyright JS Foundation and other 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 in the Software without restriction, including @@ -40714,10 +39725,10 @@ License files: distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. @@ -40725,31 +39736,30 @@ License files: CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [whatwg-url](https://www.npmjs.com/package/whatwg-url) (version 13.0.0) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: The MIT License (MIT) - + Copyright (c) Sebastian Mayr - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -40757,31 +39767,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [whatwg-url](https://www.npmjs.com/package/whatwg-url) (version 5.0.0) - License tags: MIT License files: - -- LICENSE.txt: +* LICENSE.txt: The MIT License (MIT) - + Copyright (c) 2015–2016 Sebastian Mayr - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -40789,31 +39798,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [which-boxed-primitive](https://www.npmjs.com/package/which-boxed-primitive) (version 1.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2019 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -40821,31 +39829,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [which-collection](https://www.npmjs.com/package/which-collection) (version 1.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2019 Inspect JS - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -40853,31 +39860,30 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [which-typed-array](https://www.npmjs.com/package/which-typed-array) (version 1.1.15) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) - + Copyright (c) 2015 Jordan Harband - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -40885,25 +39891,25 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + - + ### [which](https://www.npmjs.com/package/which) (version 2.0.2) - License tags: ISC License files: - -- LICENSE: +* LICENSE: The ISC License - + Copyright (c) Isaac Z. Schlueter and Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -40911,31 +39917,30 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [winreg-ts](https://www.npmjs.com/package/winreg-ts) (version 1.0.4) - License tags: BSD-2-Clause License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2020 Emmanuel Kimmerlin - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -40943,25 +39948,24 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [wrappy](https://www.npmjs.com/package/wrappy) (version 1.0.2) - License tags: ISC License files: - -- LICENSE: +* LICENSE: The ISC License - + Copyright (c) Isaac Z. Schlueter and Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -40969,46 +39973,45 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [write-file-atomic](https://www.npmjs.com/package/write-file-atomic) (version 5.0.1) - License tags: ISC License files: - -- LICENSE.md: +* LICENSE.md: Copyright (c) 2015, Rebecca Turner - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + - + ### [xtend](https://www.npmjs.com/package/xtend) (version 4.0.2) - License tags: MIT License files: - -- LICENSE: +* LICENSE: The MIT License (MIT) Copyright (c) 2012-2014 Raynos. - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -41016,25 +40019,24 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + - + ### [yallist](https://www.npmjs.com/package/yallist) (version 3.1.1) - License tags: ISC License files: - -- LICENSE: +* LICENSE: The ISC License - + Copyright (c) Isaac Z. Schlueter and Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -41042,25 +40044,24 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [yallist](https://www.npmjs.com/package/yallist) (version 4.0.0) - License tags: ISC License files: - -- LICENSE: +* LICENSE: The ISC License - + Copyright (c) Isaac Z. Schlueter and Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR @@ -41068,24 +40069,23 @@ License files: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [yargs-parser](https://www.npmjs.com/package/yargs-parser) (version 21.1.1) - License tags: ISC License files: - -- LICENSE.txt: +* LICENSE.txt: Copyright (c) 2016, Contributors - + Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. - + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE @@ -41093,31 +40093,30 @@ License files: OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + - + ### [zod](https://www.npmjs.com/package/zod) (version 3.22.3) - License tags: MIT License files: - -- LICENSE: +* LICENSE: MIT License - + Copyright (c) 2020 Colin McDonnell - + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -41125,3 +40124,6 @@ License files: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + + diff --git a/configs/testing-library-compass/package.json b/configs/testing-library-compass/package.json index 23b1a75b57b..df93b977fb5 100644 --- a/configs/testing-library-compass/package.json +++ b/configs/testing-library-compass/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.0.1", + "version": "1.0.2", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" diff --git a/configs/webpack-config-compass/package.json b/configs/webpack-config-compass/package.json index 697091a06fb..43ab0dcffa1 100644 --- a/configs/webpack-config-compass/package.json +++ b/configs/webpack-config-compass/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.4.2", + "version": "1.4.4", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -68,7 +68,7 @@ "@pmmmwh/react-refresh-webpack-plugin": "^0.5.15", "babel-loader": "^8.2.5", "babel-plugin-istanbul": "^5.2.0", - "browserslist": "^4.23.3", + "browserslist": "^4.24.0", "chalk": "^4.1.2", "cli-progress": "^3.9.1", "core-js": "^3.17.3", diff --git a/configs/webpack-config-compass/src/index.ts b/configs/webpack-config-compass/src/index.ts index 0992dcc88f2..2211b985f74 100644 --- a/configs/webpack-config-compass/src/index.ts +++ b/configs/webpack-config-compass/src/index.ts @@ -372,3 +372,4 @@ export { sharedExternals, pluginExternals }; export { webpackArgsWithDefaults, isServe } from './args'; export { default as webpack } from 'webpack'; export { merge } from 'webpack-merge'; +export { default as WebpackDevServer } from 'webpack-dev-server'; diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index 4a1a51c7eef..a2d87205ccc 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Tue, Sep 17, 2024 at 03:34 PM +Generated on Thu, Oct 10, 2024 at 03:30 PM ## Table of Contents @@ -299,6 +299,8 @@ This event is fired when user runs the aggregation. the even has been fired. - **editor_view_type** (required): `"stage" | "text" | "focus"` - The type of editor view from which the aggregation has been executed. +- **stage_operators** (required): `{}` + - The names of the stages in the pipeline being executed. - **connection_id** (optional): `string | undefined` - The id of the connection associated to this event. @@ -1642,7 +1644,7 @@ This event is fired when a user activates (i.e., navigates to) a screen. **Properties**: -- **name** (optional): `"my_queries" | "aggregations" | "documents" | "collections" | "databases" | "indexes" | "performance" | "schema" | "validation" | "confirm_new_pipeline_modal" | "create_collection_modal" | "create_database_modal" | "drop_collection_modal" | "drop_database_modal" | "create_index_modal" | "create_search_index_modal" | "create_view_modal" | "csfle_connection_modal" | "delete_pipeline_modal" | "drop_index_modal" | "export_modal" | "export_to_language_modal" | "import_modal" | "insert_document_modal" | "non_genuine_mongodb_modal" | "rename_collection_modal" | "restore_pipeline_modal" | "save_pipeline_modal" | "shell_info_modal" | "update_search_index_modal" | undefined` +- **name** (optional): `"my_queries" | "aggregations" | "documents" | "collections" | "databases" | "indexes" | "globalwrites" | "performance" | "schema" | "validation" | "confirm_new_pipeline_modal" | "create_collection_modal" | "create_database_modal" | "drop_collection_modal" | "drop_database_modal" | "create_index_modal" | "create_search_index_modal" | "create_view_modal" | "csfle_connection_modal" | "delete_pipeline_modal" | "drop_index_modal" | "export_modal" | "export_to_language_modal" | "import_modal" | "insert_document_modal" | "non_genuine_mongodb_modal" | "rename_collection_modal" | "restore_pipeline_modal" | "save_pipeline_modal" | "shell_info_modal" | "update_search_index_modal" | undefined` - The name of the screen that was activated. - **connection_id** (optional): `string | undefined` - The id of the connection associated to this event. diff --git a/package-lock.json b/package-lock.json index 257a357081e..e0b35c12b4c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -379,7 +379,7 @@ }, "configs/testing-library-compass": { "name": "@mongodb-js/testing-library-compass", - "version": "1.0.1", + "version": "1.0.2", "license": "SSPL", "dependencies": { "@testing-library/react": "^12.1.5", @@ -497,7 +497,7 @@ }, "configs/webpack-config-compass": { "name": "@mongodb-js/webpack-config-compass", - "version": "1.4.2", + "version": "1.4.4", "license": "SSPL", "dependencies": { "@babel/core": "^7.21.4", @@ -511,7 +511,7 @@ "@pmmmwh/react-refresh-webpack-plugin": "^0.5.15", "babel-loader": "^8.2.5", "babel-plugin-istanbul": "^5.2.0", - "browserslist": "^4.23.3", + "browserslist": "^4.24.0", "chalk": "^4.1.2", "cli-progress": "^3.9.1", "core-js": "^3.17.3", @@ -4250,9 +4250,9 @@ } }, "node_modules/@electron/rebuild": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-3.6.0.tgz", - "integrity": "sha512-zF4x3QupRU3uNGaP5X1wjpmcjfw1H87kyqZ00Tc3HvriV+4gmOGuvQjGNkrJuXdsApssdNyVwLsy+TaeTGGcVw==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-3.6.2.tgz", + "integrity": "sha512-fTSoWdbrPTmQOwvct4VnJH45aJg79WRabuNqt7cAWIno5kTXv1QD6qVmR2e8wmHi/xryaiVINl1gcEhKGjREVw==", "dependencies": { "@malept/cross-spawn-promise": "^2.0.0", "chalk": "^4.0.0", @@ -4333,7 +4333,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "license": "MIT", "dependencies": { "debug": "4" }, @@ -4353,6 +4352,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "deprecated": "This package is no longer supported.", "dependencies": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" @@ -4401,6 +4401,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -4467,6 +4468,7 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "deprecated": "This package is no longer supported.", "dependencies": { "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.3", @@ -4522,7 +4524,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "license": "MIT", "dependencies": { "agent-base": "6", "debug": "4" @@ -4604,11 +4605,12 @@ } }, "node_modules/@electron/rebuild/node_modules/node-gyp": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.1.tgz", - "integrity": "sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.1.tgz", + "integrity": "sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==", "dependencies": { "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", "glob": "^7.1.4", "graceful-fs": "^4.2.6", "make-fetch-happen": "^10.0.3", @@ -4630,6 +4632,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "deprecated": "This package is no longer supported.", "dependencies": { "are-we-there-yet": "^3.0.0", "console-control-strings": "^1.1.0", @@ -4697,18 +4700,10 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/@electron/rebuild/node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, "node_modules/@electron/rebuild/node_modules/yargs": { - "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -7573,15 +7568,6 @@ "semver": "^7.0.0" } }, - "node_modules/@lerna/create/node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, "node_modules/@lerna/create/node_modules/write-file-atomic": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", @@ -7818,6 +7804,10 @@ "resolved": "packages/compass-generative-ai", "link": true }, + "node_modules/@mongodb-js/compass-global-writes": { + "resolved": "packages/compass-global-writes", + "link": true + }, "node_modules/@mongodb-js/compass-import-export": { "resolved": "packages/compass-import-export", "link": true @@ -7918,6 +7908,30 @@ "resolved": "packages/databases-collections-list", "link": true }, + "node_modules/@mongodb-js/devtools-connect": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@mongodb-js/devtools-connect/-/devtools-connect-3.3.1.tgz", + "integrity": "sha512-z9TJtUbDakYBKEB+/7fmBjFRcMCtiK/fIi04BKBs8cv71KmbS+PU76y6/7rE/TQucQ7/mPEhWs7+Z9TuKHR20A==", + "license": "Apache-2.0", + "dependencies": { + "@mongodb-js/devtools-proxy-support": "^0.4.1", + "@mongodb-js/oidc-http-server-pages": "1.1.3", + "lodash.merge": "^4.6.2", + "mongodb-connection-string-url": "^3.0.0", + "socks": "^2.7.3" + }, + "optionalDependencies": { + "kerberos": "^2.1.0", + "mongodb-client-encryption": "^6.1.0", + "os-dns-native": "^1.2.0", + "resolve-mongodb-srv": "^1.1.1" + }, + "peerDependencies": { + "@mongodb-js/oidc-plugin": "^1.1.0", + "mongodb": "^6.9.0", + "mongodb-log-writer": "^1.4.2" + } + }, "node_modules/@mongodb-js/devtools-github-repo": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/@mongodb-js/devtools-github-repo/-/devtools-github-repo-1.4.1.tgz", @@ -7927,9 +7941,10 @@ } }, "node_modules/@mongodb-js/devtools-proxy-support": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@mongodb-js/devtools-proxy-support/-/devtools-proxy-support-0.3.9.tgz", - "integrity": "sha512-y6EpBQuOYMSbnc3y7lWG3ThFWC7iv6HHZn8+7tRsr9diSMwHRoxM/GNrz2yeldT7xstFdGL4zmmSK/3JcSz+8g==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@mongodb-js/devtools-proxy-support/-/devtools-proxy-support-0.4.1.tgz", + "integrity": "sha512-BGr8dxCeik5LLmPJUcT7c1Sj8I/u0+14+GwS5OPgVy5KlsTJRcGtANjrC7b8IZewpKVLqyJkK+XcdYpa5+b3KQ==", + "license": "Apache-2.0", "dependencies": { "@mongodb-js/socksv5": "^0.0.10", "agent-base": "^7.1.1", @@ -7941,13 +7956,14 @@ "pac-proxy-agent": "^7.0.2", "socks-proxy-agent": "^8.0.4", "ssh2": "^1.15.0", - "system-ca": "^2.0.0" + "system-ca": "^2.0.1" } }, "node_modules/@mongodb-js/devtools-proxy-support/node_modules/data-uri-to-buffer": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "license": "MIT", "engines": { "node": ">= 12" } @@ -7956,6 +7972,7 @@ "version": "4.3.7", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "license": "MIT", "dependencies": { "ms": "^2.1.3" }, @@ -7972,6 +7989,7 @@ "version": "11.0.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.1.tgz", "integrity": "sha512-CgeuL5uom6j/ZVrg7G/+1IXqRY8JXX4Hghfy5YE0EhoYQWvndP1kufu58cmZLNIDKnRhZrXfdS9urVWx98AipQ==", + "license": "ISC", "engines": { "node": "20 || >=22" } @@ -7979,12 +7997,14 @@ "node_modules/@mongodb-js/devtools-proxy-support/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" }, "node_modules/@mongodb-js/devtools-proxy-support/node_modules/node-fetch": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "license": "MIT", "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -8318,6 +8338,12 @@ "resolved": "packages/my-queries-storage", "link": true }, + "node_modules/@mongodb-js/oidc-http-server-pages": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@mongodb-js/oidc-http-server-pages/-/oidc-http-server-pages-1.1.3.tgz", + "integrity": "sha512-I704bSQRu/SusTcCV8qqtdFVvAJf1aKZtgGM2VnYjPn2njZd5j7864k/CF9TeeR8+r0At5qqNa3N4MX9YxPnEg==", + "license": "Apache-2.0" + }, "node_modules/@mongodb-js/oidc-mock-provider": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/@mongodb-js/oidc-mock-provider/-/oidc-mock-provider-0.9.3.tgz", @@ -8752,6 +8778,231 @@ "resolved": "configs/webpack-config-compass", "link": true }, + "node_modules/@mongosh/arg-parser": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@mongosh/arg-parser/-/arg-parser-2.3.2.tgz", + "integrity": "sha512-izy830Jvg1HxP7LnE68dhKvrhIALOCBf/GDI8egJZNfRcvR1VuzaquFhHyFtvhGeoqo+j9ujbaM/24v12+LLFg==", + "license": "Apache-2.0", + "dependencies": { + "@mongosh/errors": "2.3.2", + "@mongosh/i18n": "2.3.2", + "mongodb-connection-string-url": "^3.0.1" + }, + "engines": { + "node": ">=14.15.1" + } + }, + "node_modules/@mongosh/async-rewriter2": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@mongosh/async-rewriter2/-/async-rewriter2-2.3.2.tgz", + "integrity": "sha512-VhqTUpv3q+Q/2kyOY37RrHaLyOnxTFyBqGz+wmaS9kADorsVTa6DuIO9GF+JLomVzdyFuIW3uaoNYbwq+mnPCA==", + "license": "Apache-2.0", + "dependencies": { + "@babel/core": "^7.22.8", + "@babel/plugin-transform-destructuring": "^7.22.5", + "@babel/plugin-transform-parameters": "^7.22.5", + "@babel/plugin-transform-shorthand-properties": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "bin": { + "async-rewrite": "bin/async-rewrite.js" + }, + "engines": { + "node": ">=14.15.1" + } + }, + "node_modules/@mongosh/autocomplete": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@mongosh/autocomplete/-/autocomplete-2.3.2.tgz", + "integrity": "sha512-bpqG9A/O9ILP0vdwEZwV0Wc0T+LzcyqnWx1RWrC3XvUqMz1kfj5IJNK6RI1D7WuueWfi+HF+GAkz4kLNfFkgrg==", + "license": "Apache-2.0", + "dependencies": { + "@mongodb-js/mongodb-constants": "^0.10.1", + "@mongosh/shell-api": "2.3.2", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=14.15.1" + } + }, + "node_modules/@mongosh/browser-repl": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@mongosh/browser-repl/-/browser-repl-2.3.2.tgz", + "integrity": "sha512-RWgmrmvq5kDyg84pHFC4V2jdNLhM/HxKoPVzz5gHr8HPcgFQaWG2S3XfpeylzspDhP8sFZ+irl7NguZE00gXUg==", + "license": "Apache-2.0", + "dependencies": { + "@mongosh/browser-runtime-core": "2.3.2", + "@mongosh/errors": "2.3.2", + "@mongosh/history": "2.3.2", + "@mongosh/i18n": "2.3.2", + "@mongosh/node-runtime-worker-thread": "2.3.2", + "@mongosh/service-provider-core": "2.3.2", + "numeral": "^2.0.6", + "text-table": "^0.2.0" + }, + "engines": { + "node": ">=14.15.1" + }, + "peerDependencies": { + "@mongodb-js/compass-components": "*", + "@mongodb-js/compass-editor": "*", + "prop-types": "^15.7.2", + "react": "^17.0.2", + "react-dom": "^17.0.2" + } + }, + "node_modules/@mongosh/browser-repl/node_modules/numeral": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/numeral/-/numeral-2.0.6.tgz", + "integrity": "sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/@mongosh/browser-runtime-core": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@mongosh/browser-runtime-core/-/browser-runtime-core-2.3.2.tgz", + "integrity": "sha512-y1qPdNxu6f7A1s6mgBee/iGya0MOIBRBMTGZanlBZv4nDq+nVoskSzhgrBXx+/YB1+/J0anSnCglfdaGUaq8Kw==", + "license": "Apache-2.0", + "dependencies": { + "@mongosh/autocomplete": "2.3.2", + "@mongosh/service-provider-core": "2.3.2", + "@mongosh/shell-api": "2.3.2", + "@mongosh/shell-evaluator": "2.3.2" + }, + "engines": { + "node": ">=14.15.1" + } + }, + "node_modules/@mongosh/errors": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@mongosh/errors/-/errors-2.3.2.tgz", + "integrity": "sha512-TKjWgKmxVW16+3+IcQNgv7RxSE3XinRKapxhs9E5nM5FDAXEMRMQnrhhb4KR9Wtp6phAywPSfNjWhuAeI91efQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=14.15.1" + } + }, + "node_modules/@mongosh/history": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@mongosh/history/-/history-2.3.2.tgz", + "integrity": "sha512-+XLO1kbTwJ1XJ5PKpyU4vn+gqwGtTXQcF4zZIXwxZPN7a0MnBF2DaoMOvEkUYalG0/rkLdVdhILh17HM0mNLsA==", + "license": "Apache-2.0", + "dependencies": { + "mongodb-connection-string-url": "^3.0.1", + "mongodb-redact": "^1.1.2" + }, + "engines": { + "node": ">=14.15.1" + } + }, + "node_modules/@mongosh/i18n": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@mongosh/i18n/-/i18n-2.3.2.tgz", + "integrity": "sha512-n/h/305TRPUAbBunhULKiqf9QyNHfgpj8WQjPI/2nZdfCKw29cdkiYjBNEMKl1j3jIGD51/wYgIUT4e51vZUwg==", + "license": "Apache-2.0", + "dependencies": { + "@mongosh/errors": "2.3.2" + }, + "engines": { + "node": ">=14.15.1" + } + }, + "node_modules/@mongosh/logging": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@mongosh/logging/-/logging-2.3.2.tgz", + "integrity": "sha512-gwFWHFTEddEFNyBb3e/vhYkkhkkNtwySDeXLPc2Ngf51zDYavFLUIsH07wz9CDdZ4Vo/MtwT/f09T1Yhg0XFsA==", + "license": "Apache-2.0", + "dependencies": { + "@mongodb-js/devtools-connect": "^3.3.0", + "@mongosh/errors": "2.3.2", + "@mongosh/history": "2.3.2", + "@mongosh/types": "2.3.2", + "mongodb-log-writer": "^1.4.2", + "mongodb-redact": "^1.1.2" + }, + "engines": { + "node": ">=14.15.1" + } + }, + "node_modules/@mongosh/node-runtime-worker-thread": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@mongosh/node-runtime-worker-thread/-/node-runtime-worker-thread-2.3.2.tgz", + "integrity": "sha512-3GeGpmRRy/LOKc1mfNiD9ciJsvzuxHY47MB1MLQolNjoxZres3GCx/EF0i1Ib0JCPuyBBmH8y5UCPLbs5E4AbA==", + "license": "Apache-2.0", + "dependencies": { + "interruptor": "^1.0.1", + "system-ca": "^2.0.1", + "web-worker": "^1.3.0" + }, + "engines": { + "node": ">=14.15.1" + } + }, + "node_modules/@mongosh/service-provider-core": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@mongosh/service-provider-core/-/service-provider-core-2.3.2.tgz", + "integrity": "sha512-lQqLuFojElKADTueYIE6gUPud31zrNwsFNk23mgH/PKDDYHGtYt5ZKQ7aAFe57HSMUZXk13SiANFukdoTcfvtA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/credential-providers": "^3.525.0", + "@mongosh/errors": "2.3.2", + "bson": "^6.8.0", + "mongodb": "^6.9.0", + "mongodb-build-info": "^1.7.2", + "mongodb-connection-string-url": "^3.0.1" + }, + "engines": { + "node": ">=14.15.1" + }, + "optionalDependencies": { + "mongodb-client-encryption": "^6.1.0" + } + }, + "node_modules/@mongosh/shell-api": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@mongosh/shell-api/-/shell-api-2.3.2.tgz", + "integrity": "sha512-VDj6XVn7m6qHWphJAxPAnQ4HknJ2VZWwQFfQHm9u/6HFDnpAdnN/bubY9nawc55qdZTadpvg5m9YvmOZ3541rA==", + "license": "Apache-2.0", + "dependencies": { + "@mongosh/arg-parser": "2.3.2", + "@mongosh/errors": "2.3.2", + "@mongosh/history": "2.3.2", + "@mongosh/i18n": "2.3.2", + "@mongosh/service-provider-core": "2.3.2", + "mongodb-redact": "^1.1.2" + }, + "engines": { + "node": ">=14.15.1" + } + }, + "node_modules/@mongosh/shell-evaluator": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@mongosh/shell-evaluator/-/shell-evaluator-2.3.2.tgz", + "integrity": "sha512-dQPRrsi60SFrn/p0vHkcsR+i7hUSQagdwkj0JarqDtGFuowWn6f2t4crSklOjM0wie4Bi/bsXwtFyGEUl+YN2g==", + "license": "Apache-2.0", + "dependencies": { + "@mongosh/async-rewriter2": "2.3.2", + "@mongosh/history": "2.3.2", + "@mongosh/shell-api": "2.3.2" + }, + "engines": { + "node": ">=14.15.1" + } + }, + "node_modules/@mongosh/types": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@mongosh/types/-/types-2.3.2.tgz", + "integrity": "sha512-QXKsjEVsz1X2WyvWNyGsI+8Zs3/Z+vbCiBOC3t95JrGJlbkz5uPjGbAwcXSZTheehdCd01spgedSNn3r5yQDtQ==", + "license": "Apache-2.0", + "dependencies": { + "@mongodb-js/devtools-connect": "^3.3.0" + }, + "engines": { + "node": ">=14.15.1" + } + }, "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { "version": "5.1.1-v1", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", @@ -9709,14 +9960,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@npmcli/arborist/node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, "node_modules/@npmcli/fs": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.0.tgz", @@ -10592,14 +10835,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@npmcli/metavuln-calculator/node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, "node_modules/@npmcli/move-file": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", @@ -13308,12 +13543,6 @@ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", - "dev": true - }, "node_modules/@types/keyv": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz", @@ -13398,9 +13627,9 @@ "dev": true }, "node_modules/@types/numeral": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/numeral/-/numeral-2.0.2.tgz", - "integrity": "sha512-A8F30k2gYJ/6e07spSCPpkuZu79LCnkPTvqmIWQzNGcrzwFKpVOydG41lNt5wZXjSI149qjyzC2L1+F2PD/NUA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/numeral/-/numeral-2.0.5.tgz", + "integrity": "sha512-kH8I7OSSwQu9DS9JYdFWbuvhVzvFRoCPCkGxNwoGgaPeDfEPJlcxNvEOypZhQ3XXHsGbfIuYcxcJxKUfJHnRfw==", "dev": true }, "node_modules/@types/papaparse": { @@ -16924,9 +17153,9 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.23.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", - "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", "funding": [ { "type": "opencollective", @@ -16942,8 +17171,8 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001646", - "electron-to-chromium": "^1.5.4", + "caniuse-lite": "^1.0.30001663", + "electron-to-chromium": "^1.5.28", "node-releases": "^2.0.18", "update-browserslist-db": "^1.1.0" }, @@ -16955,9 +17184,10 @@ } }, "node_modules/bson": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/bson/-/bson-6.7.0.tgz", - "integrity": "sha512-w2IquM5mYzYZv6rs3uN2DZTOBe2a0zXLj53TGDqwF4l6Sz/XsISrisXOJihArF9+BZ6Cq/GjVht7Sjfmri7ytQ==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.8.0.tgz", + "integrity": "sha512-iOJg8pr7wq2tg/zSlCCHMi3hMm5JTOxLTagf3zxhcenHsFp+c6uOs6K7W5UE7A4QIJGtqh/ZovFNMP4mOPJynQ==", + "license": "Apache-2.0", "engines": { "node": ">=16.20.1" } @@ -17259,9 +17489,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001646", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001646.tgz", - "integrity": "sha512-dRg00gudiBDDTmUhClSdv3hqRfpbOnU28IpI1T6PBTLWa+kOj0681C8uML3PifYfREuBrVjDGhL3adYpBT6spw==", + "version": "1.0.30001663", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001663.tgz", + "integrity": "sha512-o9C3X27GLKbLeTYZ6HBOLU1tsAcBZsLis28wrVzddShCS16RujjHp9GDHKZqrB3meE0YjhawvMFsGb/igqiPzA==", "funding": [ { "type": "opencollective", @@ -18283,9 +18513,10 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -20956,9 +21187,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.4.tgz", - "integrity": "sha512-orzA81VqLyIGUEA77YkVA1D+N+nNfl2isJVjjmOyrlxuooZ19ynb+dOlaDTqd/idKRS9lDCSBmtzM+kyCsMnkA==" + "version": "1.5.28", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.28.tgz", + "integrity": "sha512-VufdJl+rzaKZoYVUijN13QcXVF5dWPZANeFTLNy+OSpHdDL5ynXTF35+60RSBbaQYB1ae723lQXHCrf4pyLsMw==" }, "node_modules/electron-window": { "version": "0.8.1", @@ -22409,159 +22640,6 @@ "eslint": ">=7.0.0" } }, - "node_modules/eslint-config-semistandard": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-semistandard/-/eslint-config-semistandard-15.0.1.tgz", - "integrity": "sha512-sfV+qNBWKOmF0kZJll1VH5XqOAdTmLlhbOl9WKI11d2eMEe+Kicxnpm24PQWHOqAfk5pAWU2An0LjNCXKa4Usg==", - "dev": true, - "peerDependencies": { - "eslint": ">=6.0.1", - "eslint-config-standard": ">=14.1.0", - "eslint-plugin-import": ">=2.18.0", - "eslint-plugin-node": ">=9.1.0", - "eslint-plugin-promise": ">=4.2.1", - "eslint-plugin-standard": ">=4.0.0" - } - }, - "node_modules/eslint-config-standard": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-14.1.1.tgz", - "integrity": "sha512-Z9B+VR+JIXRxz21udPTL9HpFMyoMUEeX1G251EQ6e05WD9aPVtVBn09XUmZ259wCMlCDmYDSZG62Hhm+ZTJcUg==", - "dev": true, - "peerDependencies": { - "eslint": ">=6.2.2", - "eslint-plugin-import": ">=2.18.0", - "eslint-plugin-node": ">=9.1.0", - "eslint-plugin-promise": ">=4.2.1", - "eslint-plugin-standard": ">=4.0.0" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", - "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", - "dev": true, - "dependencies": { - "debug": "^2.6.9", - "resolve": "^1.13.1" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/eslint-module-utils": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz", - "integrity": "sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A==", - "dev": true, - "dependencies": { - "debug": "^3.2.7", - "pkg-dir": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "dependencies": { - "find-up": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/eslint-plugin-chai-friendly": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/eslint-plugin-chai-friendly/-/eslint-plugin-chai-friendly-0.4.1.tgz", @@ -22574,25 +22652,6 @@ "eslint": ">=3.0.0" } }, - "node_modules/eslint-plugin-es": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", - "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", - "dev": true, - "dependencies": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" - }, - "engines": { - "node": ">=8.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=4.19.1" - } - }, "node_modules/eslint-plugin-filename-rules": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/eslint-plugin-filename-rules/-/eslint-plugin-filename-rules-1.2.0.tgz", @@ -22601,141 +22660,6 @@ "node": ">=6.0.0" } }, - "node_modules/eslint-plugin-import": { - "version": "2.23.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz", - "integrity": "sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.3", - "array.prototype.flat": "^1.2.4", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.4", - "eslint-module-utils": "^2.6.1", - "find-up": "^2.0.0", - "has": "^1.0.3", - "is-core-module": "^2.4.0", - "minimatch": "^3.0.4", - "object.values": "^1.1.3", - "pkg-up": "^2.0.0", - "read-pkg-up": "^3.0.0", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.9.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/eslint-plugin-import/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import/node_modules/pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", - "dev": true, - "dependencies": { - "find-up": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/eslint-plugin-jsx-a11y": { "version": "6.4.1", "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz", @@ -22792,44 +22716,6 @@ "eslint": ">=7.0.0" } }, - "node_modules/eslint-plugin-node": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", - "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", - "dev": true, - "dependencies": { - "eslint-plugin-es": "^3.0.0", - "eslint-utils": "^2.0.0", - "ignore": "^5.1.1", - "minimatch": "^3.0.4", - "resolve": "^1.10.1", - "semver": "^6.1.0" - }, - "engines": { - "node": ">=8.10.0" - }, - "peerDependencies": { - "eslint": ">=5.16.0" - } - }, - "node_modules/eslint-plugin-node/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-promise": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.3.1.tgz", - "integrity": "sha512-bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/eslint-plugin-react": { "version": "7.24.0", "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.24.0.tgz", @@ -22889,29 +22775,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-plugin-standard": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz", - "integrity": "sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peerDependencies": { - "eslint": ">=5.0.0" - } - }, "node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -23306,20 +23169,20 @@ "node_modules/exponential-backoff": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", - "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", - "dev": true + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==" }, "node_modules/express": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", - "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", + "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.6.0", + "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -29586,15 +29449,6 @@ "semver": "^7.0.0" } }, - "node_modules/lerna/node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, "node_modules/lerna/node_modules/write-file-atomic": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", @@ -31657,9 +31511,9 @@ } }, "node_modules/mongodb": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.8.0.tgz", - "integrity": "sha512-HGQ9NWDle5WvwMnrvUxsFYPd3JEbqD3RgABHBQRuoCEND0qzhsd0iH5ypHsf1eJ+sXmvmyKpP+FLOKY8Il7jMw==", + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.9.0.tgz", + "integrity": "sha512-UMopBVx1LmEUbW/QE0Hw18u583PEDVQmUmVzzBRH0o/xtE9DBRA5ZYLOjpLIa03i8FXjzvQECJcqoMvCXftTUA==", "license": "Apache-2.0", "dependencies": { "@mongodb-js/saslprep": "^1.1.5", @@ -32557,9 +32411,9 @@ "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" }, "node_modules/node-abi": { - "version": "3.65.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.65.0.tgz", - "integrity": "sha512-ThjYBfoDNr08AWx6hGaRbfPwxKV9kVzAzOzlLKbk2CuqXE2xnCh+cbAGnwM3t8Lq4v9rUB7VfondlkBckcJrVA==", + "version": "3.68.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.68.0.tgz", + "integrity": "sha512-7vbj10trelExNjFSBm5kTvZXXa7pZyKWx9RCKIyqe6I9Ev3IzGpQoqBP3a+cOdxY+pWj6VkP28n/2wWysBHD/A==", "dependencies": { "semver": "^7.3.5" }, @@ -32846,15 +32700,6 @@ "node": ">=8" } }, - "node_modules/node-gyp/node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, "node_modules/node-machine-id": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/node-machine-id/-/node-machine-id-1.1.12.tgz", @@ -40913,39 +40758,6 @@ "node": ">=0.3.1" } }, - "node_modules/tsconfig-paths": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", - "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", - "dev": true, - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", @@ -42982,50 +42794,11 @@ } }, "node_modules/wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "node_modules/wide-align/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" + "string-width": "^1.0.2 || 2 || 3 || 4" } }, "node_modules/wildcard": { @@ -43601,20 +43374,21 @@ }, "packages/atlas-service": { "name": "@mongodb-js/atlas-service", - "version": "0.28.3", + "version": "0.29.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-telemetry": "^1.1.7", - "@mongodb-js/compass-user-data": "^0.3.7", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/devtools-connect": "^3.2.10", - "@mongodb-js/devtools-proxy-support": "^0.3.9", + "@mongodb-js/connection-info": "^0.9.0", + "@mongodb-js/devtools-connect": "^3.3.1", + "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/oidc-plugin": "^1.1.1", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "electron": "^30.5.1", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.23", "lodash": "^4.17.21", "react": "^17.0.2", @@ -43626,7 +43400,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/mocha": "^9.0.0", @@ -43641,35 +43415,6 @@ "typescript": "^5.0.4" } }, - "packages/atlas-service/node_modules/@mongodb-js/devtools-connect": { - "version": "3.2.10", - "resolved": "https://registry.npmjs.org/@mongodb-js/devtools-connect/-/devtools-connect-3.2.10.tgz", - "integrity": "sha512-x+MhIwJzCKjc5NhGHbns5IGa6yBwj/Nm6uVh0TwmhdKGxBbIP4o0xa4YVRwRajxHHGrxhiKQRNRJsHD6IzVVOw==", - "license": "Apache-2.0", - "dependencies": { - "@mongodb-js/devtools-proxy-support": "^0.3.9", - "@mongodb-js/oidc-http-server-pages": "1.1.3", - "lodash.merge": "^4.6.2", - "mongodb-connection-string-url": "^3.0.0", - "socks": "^2.7.3" - }, - "optionalDependencies": { - "kerberos": "^2.1.0", - "mongodb-client-encryption": "^6.1.0", - "os-dns-native": "^1.2.0", - "resolve-mongodb-srv": "^1.1.1" - }, - "peerDependencies": { - "@mongodb-js/oidc-plugin": "^1.1.0", - "mongodb": "^6.8.0", - "mongodb-log-writer": "^1.4.2" - } - }, - "packages/atlas-service/node_modules/@mongodb-js/oidc-http-server-pages": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@mongodb-js/oidc-http-server-pages/-/oidc-http-server-pages-1.1.3.tgz", - "integrity": "sha512-I704bSQRu/SusTcCV8qqtdFVvAJf1aKZtgGM2VnYjPn2njZd5j7864k/CF9TeeR8+r0At5qqNa3N4MX9YxPnEg==" - }, "packages/atlas-service/node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", @@ -43735,12 +43480,12 @@ }, "packages/collection-model": { "name": "mongodb-collection-model", - "version": "5.23.3", + "version": "5.23.4", "license": "SSPL", "dependencies": { "ampersand-collection": "^2.0.2", "ampersand-model": "^8.0.1", - "mongodb-data-service": "^22.23.3", + "mongodb-data-service": "^22.23.4", "mongodb-ns": "^2.4.2" }, "devDependencies": { @@ -43755,11 +43500,11 @@ }, "packages/compass": { "name": "mongodb-compass", - "version": "1.44.4", + "version": "1.44.5-beta.5", "hasInstallScript": true, "license": "SSPL", "dependencies": { - "@mongosh/node-runtime-worker-thread": "^2.3.1", + "@mongosh/node-runtime-worker-thread": "^2.3.2", "clipboard": "^2.0.6", "kerberos": "^2.1.1", "keytar": "^7.9.0", @@ -43768,57 +43513,58 @@ "system-ca": "^2.0.0" }, "devDependencies": { - "@electron/rebuild": "^3.6.0", + "@electron/rebuild": "^3.6.2", "@electron/remote": "^2.1.2", - "@mongodb-js/atlas-service": "^0.28.3", - "@mongodb-js/compass-aggregations": "^9.44.0", - "@mongodb-js/compass-app-stores": "^7.28.0", - "@mongodb-js/compass-collection": "^4.41.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connection-import-export": "^0.38.0", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-crud": "^13.42.0", - "@mongodb-js/compass-databases-collections": "^1.41.0", - "@mongodb-js/compass-explain-plan": "^6.42.0", - "@mongodb-js/compass-export-to-language": "^9.18.0", - "@mongodb-js/compass-field-store": "^9.17.0", - "@mongodb-js/compass-find-in-page": "^4.30.4", - "@mongodb-js/compass-generative-ai": "^0.22.3", - "@mongodb-js/compass-import-export": "^7.41.0", - "@mongodb-js/compass-indexes": "^5.41.0", - "@mongodb-js/compass-intercom": "^0.12.3", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-query-bar": "^8.43.0", - "@mongodb-js/compass-saved-aggregations-queries": "^1.42.0", - "@mongodb-js/compass-schema": "^6.43.0", - "@mongodb-js/compass-schema-validation": "^6.42.0", - "@mongodb-js/compass-serverstats": "^16.41.0", - "@mongodb-js/compass-settings": "^0.40.3", - "@mongodb-js/compass-shell": "^3.41.0", - "@mongodb-js/compass-sidebar": "^5.42.0", - "@mongodb-js/compass-telemetry": "^1.1.7", + "@mongodb-js/atlas-service": "^0.29.0", + "@mongodb-js/compass-aggregations": "^9.45.2", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-collection": "^4.42.2", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connection-import-export": "^0.39.1", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-crud": "^13.43.2", + "@mongodb-js/compass-databases-collections": "^1.42.2", + "@mongodb-js/compass-explain-plan": "^6.43.2", + "@mongodb-js/compass-export-to-language": "^9.19.2", + "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/compass-find-in-page": "^4.31.0", + "@mongodb-js/compass-generative-ai": "^0.23.0", + "@mongodb-js/compass-global-writes": "^1.2.1", + "@mongodb-js/compass-import-export": "^7.42.2", + "@mongodb-js/compass-indexes": "^5.42.2", + "@mongodb-js/compass-intercom": "^0.13.0", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-query-bar": "^8.44.2", + "@mongodb-js/compass-saved-aggregations-queries": "^1.43.2", + "@mongodb-js/compass-schema": "^6.44.2", + "@mongodb-js/compass-schema-validation": "^6.43.2", + "@mongodb-js/compass-serverstats": "^16.42.2", + "@mongodb-js/compass-settings": "^0.41.0", + "@mongodb-js/compass-shell": "^3.42.2", + "@mongodb-js/compass-sidebar": "^5.43.2", + "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-welcome": "^0.40.0", - "@mongodb-js/compass-workspaces": "^0.23.0", - "@mongodb-js/connection-info": "^0.8.0", - "@mongodb-js/connection-storage": "^0.21.0", - "@mongodb-js/devtools-proxy-support": "^0.3.9", + "@mongodb-js/compass-welcome": "^0.41.2", + "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/connection-info": "^0.9.0", + "@mongodb-js/connection-storage": "^0.22.0", + "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/get-os-info": "^0.3.24", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/mongodb-downloader": "^0.3.5", - "@mongodb-js/my-queries-storage": "^0.16.0", + "@mongodb-js/my-queries-storage": "^0.17.0", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/sbom-tools": "^0.7.0", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", - "@mongodb-js/webpack-config-compass": "^1.4.2", + "@mongodb-js/webpack-config-compass": "^1.4.4", "@segment/analytics-node": "^1.1.4", "ampersand-view": "^9.0.0", "chai": "^4.3.4", "chalk": "^4.1.2", "clean-stack": "^2.0.0", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "debug": "^4.3.4", "depcheck": "^1.4.1", "electron": "^30.5.1", @@ -43828,18 +43574,18 @@ "electron-squirrel-startup": "^1.0.1", "ensure-error": "^3.0.1", "eslint": "^7.25.0", - "hadron-app-registry": "^9.2.6", - "hadron-build": "^25.5.10", + "hadron-app-registry": "^9.2.7", + "hadron-build": "^25.5.11", "hadron-ipc": "^3.2.23", "local-links": "^1.4.0", "make-fetch-happen": "^8.0.14", "marky": "^1.2.1", - "mongodb": "^6.8.0", + "mongodb": "^6.9.0", "mongodb-build-info": "^1.7.2", "mongodb-cloud-info": "^2.1.2", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.3", - "mongodb-instance-model": "^12.24.3", + "mongodb-data-service": "^22.23.4", + "mongodb-instance-model": "^12.24.4", "mongodb-log-writer": "^1.4.2", "mongodb-ns": "^2.4.2", "react": "^17.0.2", @@ -43859,7 +43605,7 @@ }, "packages/compass-aggregations": { "name": "@mongodb-js/compass-aggregations", - "version": "9.44.0", + "version": "9.45.2", "license": "SSPL", "dependencies": { "@babel/generator": "^7.19.5", @@ -43868,34 +43614,34 @@ "@dnd-kit/core": "^6.0.7", "@dnd-kit/sortable": "^7.0.2", "@dnd-kit/utilities": "^3.2.1", - "@mongodb-js/atlas-service": "^0.28.3", - "@mongodb-js/compass-app-stores": "^7.28.0", - "@mongodb-js/compass-collection": "^4.41.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-crud": "^13.42.0", - "@mongodb-js/compass-editor": "^0.30.0", - "@mongodb-js/compass-field-store": "^9.17.0", - "@mongodb-js/compass-generative-ai": "^0.22.3", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-telemetry": "^1.1.7", + "@mongodb-js/atlas-service": "^0.29.0", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-collection": "^4.42.2", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-crud": "^13.43.2", + "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/compass-generative-ai": "^0.23.0", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.23.0", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/explain-plan-helper": "^1.2.3", "@mongodb-js/mongodb-constants": "^0.10.0", - "@mongodb-js/my-queries-storage": "^0.16.0", + "@mongodb-js/my-queries-storage": "^0.17.0", "@mongodb-js/shell-bson-parser": "^1.1.2", - "bson": "^6.7.0", - "compass-preferences-model": "^2.28.3", - "hadron-app-registry": "^9.2.6", + "bson": "^6.8.0", + "compass-preferences-model": "^2.29.0", + "hadron-app-registry": "^9.2.7", "hadron-document": "^8.6.3", "hadron-type-checker": "^7.2.2", "lodash": "^4.17.21", - "mongodb": "^6.8.0", - "mongodb-collection-model": "^5.23.3", - "mongodb-data-service": "^22.23.3", - "mongodb-database-model": "^2.23.3", - "mongodb-instance-model": "^12.24.3", + "mongodb": "^6.9.0", + "mongodb-collection-model": "^5.23.4", + "mongodb-data-service": "^22.23.4", + "mongodb-database-model": "^2.23.4", + "mongodb-instance-model": "^12.24.4", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "mongodb-schema": "^12.2.0", @@ -43911,7 +43657,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/babel__generator": "^7.6.8", "@types/enzyme": "^3.10.14", @@ -43960,17 +43706,17 @@ }, "packages/compass-app-stores": { "name": "@mongodb-js/compass-app-stores", - "version": "7.28.0", + "version": "7.29.1", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/connection-info": "^0.8.0", - "hadron-app-registry": "^9.2.6", - "mongodb-collection-model": "^5.23.3", - "mongodb-database-model": "^2.23.3", - "mongodb-instance-model": "^12.24.3", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/connection-info": "^0.9.0", + "hadron-app-registry": "^9.2.7", + "mongodb-collection-model": "^5.23.4", + "mongodb-database-model": "^2.23.4", + "mongodb-instance-model": "^12.24.4", "mongodb-ns": "^2.4.2", "react": "^17.0.2" }, @@ -43978,7 +43724,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/mocha": "^9.0.0", @@ -44024,22 +43770,21 @@ }, "packages/compass-collection": { "name": "@mongodb-js/compass-collection", - "version": "4.41.0", + "version": "4.42.2", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.28.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-telemetry": "^1.1.7", - "@mongodb-js/compass-workspaces": "^0.23.0", - "@mongodb-js/connection-info": "^0.8.0", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/mongodb-constants": "^0.10.2", - "compass-preferences-model": "^2.28.3", - "hadron-app-registry": "^9.2.6", - "mongodb-collection-model": "^5.23.3", + "compass-preferences-model": "^2.29.0", + "hadron-app-registry": "^9.2.7", + "mongodb-collection-model": "^5.23.4", "mongodb-ns": "^2.4.2", - "numeral": "^2.0.6", "react": "^17.0.2", "react-redux": "^8.1.3", "redux": "^4.2.1", @@ -44049,12 +43794,11 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", "@types/mocha": "^9.0.0", - "@types/numeral": "^2.0.2", "@types/react": "^17.0.5", "@types/react-dom": "^17.0.10", "@types/sinon-chai": "^3.2.5", @@ -44080,14 +43824,6 @@ "node": ">=0.3.1" } }, - "packages/compass-collection/node_modules/numeral": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/numeral/-/numeral-2.0.6.tgz", - "integrity": "sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA==", - "engines": { - "node": "*" - } - }, "packages/compass-collection/node_modules/sinon": { "version": "9.2.4", "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.2.4.tgz", @@ -44108,7 +43844,7 @@ }, "packages/compass-components": { "name": "@mongodb-js/compass-components", - "version": "1.29.4", + "version": "1.30.0", "license": "SSPL", "dependencies": { "@dnd-kit/core": "^6.0.7", @@ -44156,7 +43892,7 @@ "@react-aria/interactions": "^3.9.1", "@react-aria/utils": "^3.13.1", "@react-aria/visually-hidden": "^3.3.1", - "bson": "^6.7.0", + "bson": "^6.8.0", "focus-trap-react": "^9.0.2", "hadron-document": "^8.6.3", "hadron-type-checker": "^7.2.2", @@ -44175,7 +43911,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", @@ -44220,13 +43956,13 @@ }, "packages/compass-connection-import-export": { "name": "@mongodb-js/compass-connection-import-export", - "version": "0.38.0", + "version": "0.39.1", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/connection-storage": "^0.21.0", - "compass-preferences-model": "^2.28.3", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/connection-storage": "^0.22.0", + "compass-preferences-model": "^2.29.0", "hadron-ipc": "^3.2.23", "react": "^17.0.2" }, @@ -44234,7 +43970,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", @@ -44282,24 +44018,24 @@ }, "packages/compass-connections": { "name": "@mongodb-js/compass-connections", - "version": "1.42.0", + "version": "1.43.1", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-maybe-protect-connection-string": "^0.26.3", - "@mongodb-js/compass-telemetry": "^1.1.7", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.0", + "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/connection-form": "^1.40.0", - "@mongodb-js/connection-info": "^0.8.0", - "@mongodb-js/connection-storage": "^0.21.0", - "bson": "^6.7.0", - "compass-preferences-model": "^2.28.3", - "hadron-app-registry": "^9.2.6", + "@mongodb-js/connection-form": "^1.41.1", + "@mongodb-js/connection-info": "^0.9.0", + "@mongodb-js/connection-storage": "^0.22.0", + "bson": "^6.8.0", + "compass-preferences-model": "^2.29.0", + "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mongodb-build-info": "^1.7.2", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.3", + "mongodb-data-service": "^22.23.4", "react": "^17.0.2", "react-redux": "^8.1.3", "redux": "^4.2.1", @@ -44309,7 +44045,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", @@ -44331,15 +44067,15 @@ }, "packages/compass-connections-navigation": { "name": "@mongodb-js/compass-connections-navigation", - "version": "1.41.0", + "version": "1.42.2", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-workspaces": "^0.23.0", - "@mongodb-js/connection-form": "^1.40.0", - "@mongodb-js/connection-info": "^0.8.0", - "compass-preferences-model": "^2.28.3", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/connection-form": "^1.41.1", + "@mongodb-js/connection-info": "^0.9.0", + "compass-preferences-model": "^2.29.0", "mongodb-build-info": "^1.7.2", "react": "^17.0.2", "react-virtualized-auto-sizer": "^1.0.6", @@ -44349,7 +44085,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", @@ -44426,35 +44162,36 @@ }, "packages/compass-crud": { "name": "@mongodb-js/compass-crud", - "version": "13.42.0", + "version": "13.43.2", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.28.0", - "@mongodb-js/compass-collection": "^4.41.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-editor": "^0.30.0", - "@mongodb-js/compass-field-store": "^9.17.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-query-bar": "^8.43.0", - "@mongodb-js/compass-telemetry": "^1.1.7", - "@mongodb-js/compass-workspaces": "^0.23.0", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-collection": "^4.42.2", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-query-bar": "^8.44.2", + "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/explain-plan-helper": "^1.2.3", - "@mongodb-js/my-queries-storage": "^0.16.0", + "@mongodb-js/my-queries-storage": "^0.17.0", "@mongodb-js/reflux-state-mixin": "^1.0.7", "@mongodb-js/shell-bson-parser": "^1.1.2", "ag-grid-community": "^20.2.0", "ag-grid-react": "^20.2.0", - "bson": "^6.7.0", - "compass-preferences-model": "^2.28.3", - "hadron-app-registry": "^9.2.6", + "bson": "^6.8.0", + "compass-preferences-model": "^2.29.0", + "hadron-app-registry": "^9.2.7", "hadron-document": "^8.6.3", "hadron-type-checker": "^7.2.2", "jsondiffpatch": "^0.5.0", "lodash": "^4.17.21", - "mongodb-data-service": "^22.23.3", + "mongodb-data-service": "^22.23.4", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", + "numeral": "^2.0.6", "prop-types": "^15.7.2", "react": "^17.0.2", "reflux": "^0.4.1", @@ -44465,7 +44202,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/enzyme": "^3.10.14", "@types/reflux": "^6.4.3", @@ -44477,13 +44214,21 @@ "enzyme": "^3.11.0", "eslint": "^7.25.0", "mocha": "^10.2.0", - "mongodb-instance-model": "^12.24.3", + "mongodb-instance-model": "^12.24.4", "nyc": "^15.1.0", "react-dom": "^17.0.2", "sinon": "^8.1.1", "typescript": "^5.0.4" } }, + "packages/compass-crud/node_modules/numeral": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/numeral/-/numeral-2.0.6.tgz", + "integrity": "sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA==", + "engines": { + "node": "*" + } + }, "packages/compass-database": { "name": "@mongodb-js/compass-database", "version": "3.19.1", @@ -44521,11 +44266,11 @@ } }, "packages/compass-e2e-tests": { - "version": "1.27.0", + "version": "1.27.2", "devDependencies": { - "@electron/rebuild": "^3.6.0", + "@electron/rebuild": "^3.6.2", "@mongodb-js/compass-test-server": "^0.1.22", - "@mongodb-js/connection-info": "^0.8.0", + "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/oidc-mock-provider": "^0.9.3", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -44534,11 +44279,11 @@ "@types/cross-spawn": "^6.0.2", "@types/puppeteer": "^5.4.4", "@wdio/types": "^8.32.2", - "bson": "^6.7.0", + "bson": "^6.8.0", "chai": "^4.3.4", "chai-as-promised": "^7.1.1", "clipboardy": "^2.3.0", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "cross-spawn": "^7.0.3", "debug": "^4.3.4", "depcheck": "^1.4.1", @@ -44546,10 +44291,10 @@ "eslint": "^7.25.0", "fast-glob": "^3.2.7", "glob": "^10.2.5", - "hadron-build": "^25.5.10", + "hadron-build": "^25.5.11", "lodash": "^4.17.21", "mocha": "^10.2.0", - "mongodb": "^6.8.0", + "mongodb": "^6.9.0", "mongodb-connection-string-url": "^3.0.1", "mongodb-log-writer": "^1.4.2", "mongodb-runner": "^5.6.3", @@ -44566,6 +44311,15 @@ "xvfb-maybe": "^0.2.1" } }, + "packages/compass-e2e-tests/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, "packages/compass-e2e-tests/node_modules/clipboardy": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz", @@ -44688,15 +44442,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "packages/compass-e2e-tests/node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "packages/compass-e2e-tests/node_modules/glob/node_modules/minimatch": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", @@ -44825,7 +44570,7 @@ }, "packages/compass-editor": { "name": "@mongodb-js/compass-editor", - "version": "0.30.0", + "version": "0.31.0", "license": "SSPL", "dependencies": { "@codemirror/autocomplete": "^6.17.0", @@ -44837,7 +44582,7 @@ "@codemirror/state": "^6.1.4", "@codemirror/view": "^6.7.1", "@lezer/highlight": "^1.2.0", - "@mongodb-js/compass-components": "^1.29.4", + "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/mongodb-constants": "^0.10.0", "mongodb-query-parser": "^4.2.3", "polished": "^4.2.2", @@ -44891,23 +44636,23 @@ }, "packages/compass-explain-plan": { "name": "@mongodb-js/compass-explain-plan", - "version": "6.42.0", + "version": "6.43.2", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-collection": "^4.41.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-editor": "^0.30.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-telemetry": "^1.1.7", + "@mongodb-js/compass-collection": "^4.42.2", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/explain-plan-helper": "^1.2.3", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "d3": "^3.5.17", "d3-flextree": "^2.1.2", "d3-hierarchy": "^3.1.2", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", - "mongodb": "^6.8.0", + "mongodb": "^6.9.0", "react": "^17.0.2", "react-redux": "^8.1.3", "redux": "^4.2.1", @@ -44917,7 +44662,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/d3": "^3.5.x", "@types/d3-flextree": "^2.1.0", @@ -44970,19 +44715,19 @@ }, "packages/compass-export-to-language": { "name": "@mongodb-js/compass-export-to-language", - "version": "9.18.0", + "version": "9.19.2", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-collection": "^4.41.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-editor": "^0.30.0", - "@mongodb-js/compass-maybe-protect-connection-string": "^0.26.3", - "@mongodb-js/compass-telemetry": "^1.1.7", + "@mongodb-js/compass-collection": "^4.42.2", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.0", + "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/shell-bson-parser": "^1.1.2", "bson-transpilers": "^3.0.9", - "compass-preferences-model": "^2.28.3", - "hadron-app-registry": "^9.2.6", + "compass-preferences-model": "^2.29.0", + "hadron-app-registry": "^9.2.7", "mongodb-ns": "^2.4.2", "react": "^17.0.2", "react-redux": "^8.1.3", @@ -44992,7 +44737,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "chai": "^4.3.6", "depcheck": "^1.4.1", @@ -45033,12 +44778,12 @@ }, "packages/compass-field-store": { "name": "@mongodb-js/compass-field-store", - "version": "9.17.0", + "version": "9.18.1", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-logging": "^1.4.7", - "hadron-app-registry": "^9.2.6", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-logging": "^1.4.8", + "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mongodb-schema": "^12.2.0", "react": "^17.0.2", @@ -45050,7 +44795,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/mocha": "^9.0.0", @@ -45096,11 +44841,11 @@ }, "packages/compass-find-in-page": { "name": "@mongodb-js/compass-find-in-page", - "version": "4.30.4", + "version": "4.31.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-components": "^1.29.4", - "hadron-app-registry": "^9.2.6", + "@mongodb-js/compass-components": "^1.30.0", + "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.23", "react": "^17.0.2", "react-redux": "^8.1.3", @@ -45111,7 +44856,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", @@ -45162,17 +44907,17 @@ }, "packages/compass-generative-ai": { "name": "@mongodb-js/compass-generative-ai", - "version": "0.22.3", + "version": "0.23.0", "license": "SSPL", "dependencies": { - "@mongodb-js/atlas-service": "^0.28.3", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-intercom": "^0.12.3", - "@mongodb-js/compass-logging": "^1.4.7", - "bson": "^6.7.0", - "compass-preferences-model": "^2.28.3", - "hadron-app-registry": "^9.2.6", - "mongodb": "^6.8.0", + "@mongodb-js/atlas-service": "^0.29.0", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-intercom": "^0.13.0", + "@mongodb-js/compass-logging": "^1.4.8", + "bson": "^6.8.0", + "compass-preferences-model": "^2.29.0", + "hadron-app-registry": "^9.2.7", + "mongodb": "^6.9.0", "mongodb-schema": "^12.2.0", "react": "^17.0.2" }, @@ -45180,7 +44925,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", @@ -45261,6 +45006,130 @@ "url": "https://opencollective.com/sinon" } }, + "packages/compass-global-writes": { + "name": "@mongodb-js/compass-global-writes", + "version": "1.2.1", + "license": "SSPL", + "dependencies": { + "@mongodb-js/atlas-service": "^0.29.0", + "@mongodb-js/compass-collection": "^4.42.2", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", + "hadron-app-registry": "^9.2.7", + "lodash": "^4.17.21", + "mongodb-ns": "^2.4.2", + "react": "^17.0.2", + "react-redux": "^8.1.3", + "redux": "^4.2.1", + "redux-thunk": "^2.4.2" + }, + "devDependencies": { + "@mongodb-js/eslint-config-compass": "^1.1.7", + "@mongodb-js/mocha-config-compass": "^1.4.2", + "@mongodb-js/prettier-config-compass": "^1.0.2", + "@mongodb-js/testing-library-compass": "^1.0.2", + "@mongodb-js/tsconfig-compass": "^1.0.5", + "@types/chai": "^4.2.21", + "@types/chai-dom": "^0.0.10", + "@types/mocha": "^9.0.0", + "@types/react": "^17.0.5", + "@types/react-dom": "^17.0.10", + "@types/sinon-chai": "^3.2.5", + "chai": "^4.3.6", + "depcheck": "^1.4.1", + "eslint": "^7.25.0", + "mocha": "^10.2.0", + "nyc": "^15.1.0", + "prettier": "^2.7.1", + "sinon": "^17.0.1", + "typescript": "^5.0.4", + "xvfb-maybe": "^0.2.1" + } + }, + "packages/compass-global-writes/node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "packages/compass-global-writes/node_modules/@sinonjs/fake-timers": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.3.1.tgz", + "integrity": "sha512-EVJO7nW5M/F5Tur0Rf2z/QoMo+1Ia963RiMtapiQrEWvY0iBUvADo8Beegwjpnle5BHkyHuoxSTW3jF43H1XRA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.1" + } + }, + "packages/compass-global-writes/node_modules/@sinonjs/samsam": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.2.tgz", + "integrity": "sha512-v46t/fwnhejRSFTGqbpn9u+LQ9xJDse10gNnPgAcxgdoCDMXj/G2asWAC/8Qs+BAZDicX+MNZouXT1A7c83kVw==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.1", + "lodash.get": "^4.4.2", + "type-detect": "^4.1.0" + } + }, + "packages/compass-global-writes/node_modules/@sinonjs/samsam/node_modules/type-detect": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "packages/compass-global-writes/node_modules/just-extend": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-6.2.0.tgz", + "integrity": "sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==", + "dev": true + }, + "packages/compass-global-writes/node_modules/nise": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.9.tgz", + "integrity": "sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0", + "@sinonjs/fake-timers": "^11.2.2", + "@sinonjs/text-encoding": "^0.7.2", + "just-extend": "^6.2.0", + "path-to-regexp": "^6.2.1" + } + }, + "packages/compass-global-writes/node_modules/path-to-regexp": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", + "dev": true + }, + "packages/compass-global-writes/node_modules/sinon": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-17.0.1.tgz", + "integrity": "sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0", + "@sinonjs/fake-timers": "^11.2.2", + "@sinonjs/samsam": "^8.0.0", + "diff": "^5.1.0", + "nise": "^5.1.5", + "supports-color": "^7.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/sinon" + } + }, "packages/compass-home": { "name": "@mongodb-js/compass-home", "version": "7.0.1", @@ -45333,27 +45202,27 @@ }, "packages/compass-import-export": { "name": "@mongodb-js/compass-import-export", - "version": "7.41.0", + "version": "7.42.2", "license": "SSPL", "dependencies": { "@electron/remote": "^2.1.2", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-editor": "^0.30.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-telemetry": "^1.1.7", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.23.0", - "bson": "^6.7.0", - "compass-preferences-model": "^2.28.3", + "@mongodb-js/compass-workspaces": "^0.24.2", + "bson": "^6.8.0", + "compass-preferences-model": "^2.29.0", "debug": "^4.3.4", "electron": "^30.5.1", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "hadron-document": "^8.6.3", "hadron-ipc": "^3.2.23", "lodash": "^4.17.21", - "mongodb": "^6.8.0", - "mongodb-data-service": "^22.23.3", + "mongodb": "^6.9.0", + "mongodb-data-service": "^22.23.4", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "mongodb-schema": "^12.2.0", @@ -45370,7 +45239,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-as-promised": "^7.1.4", @@ -45427,27 +45296,29 @@ }, "packages/compass-indexes": { "name": "@mongodb-js/compass-indexes", - "version": "5.41.0", + "version": "5.42.2", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.28.0", - "@mongodb-js/compass-collection": "^4.41.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-editor": "^0.30.0", - "@mongodb-js/compass-field-store": "^9.17.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-telemetry": "^1.1.7", - "@mongodb-js/compass-workspaces": "^0.23.0", - "@mongodb-js/connection-storage": "^0.21.0", + "@mongodb-js/atlas-service": "^0.29.0", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/connection-storage": "^0.22.0", "@mongodb-js/mongodb-constants": "^0.10.0", "@mongodb-js/shell-bson-parser": "^1.1.2", - "bson": "^6.7.0", - "compass-preferences-model": "^2.28.3", - "hadron-app-registry": "^9.2.6", + "bson": "^6.8.0", + "compass-preferences-model": "^2.29.0", + "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", - "mongodb": "^6.8.0", - "mongodb-data-service": "^22.23.3", + "mongodb": "^6.9.0", + "mongodb-collection-model": "^5.23.4", + "mongodb-data-service": "^22.23.4", + "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "numeral": "^2.0.6", "react": "^17.0.2", @@ -45460,8 +45331,9 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", + "@types/numeral": "^2.0.5", "chai": "^4.2.0", "depcheck": "^1.4.1", "electron": "^30.5.1", @@ -45554,11 +45426,11 @@ }, "packages/compass-intercom": { "name": "@mongodb-js/compass-intercom", - "version": "0.12.3", + "version": "0.13.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-logging": "^1.4.7", - "compass-preferences-model": "^2.28.3" + "@mongodb-js/compass-logging": "^1.4.8", + "compass-preferences-model": "^2.29.0" }, "devDependencies": { "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -45661,11 +45533,11 @@ }, "packages/compass-logging": { "name": "@mongodb-js/compass-logging", - "version": "1.4.7", + "version": "1.4.8", "license": "SSPL", "dependencies": { "debug": "^4.3.4", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.23", "is-electron-renderer": "^2.0.1", "mongodb-log-writer": "^1.4.2", @@ -45719,10 +45591,10 @@ }, "packages/compass-maybe-protect-connection-string": { "name": "@mongodb-js/compass-maybe-protect-connection-string", - "version": "0.26.3", + "version": "0.27.0", "license": "SSPL", "dependencies": { - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "mongodb-connection-string-url": "^3.0.1" }, "devDependencies": { @@ -45772,14 +45644,14 @@ } }, "packages/compass-preferences-model": { - "version": "2.28.3", + "version": "2.29.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-user-data": "^0.3.7", - "@mongodb-js/devtools-proxy-support": "^0.3.9", - "bson": "^6.7.0", - "hadron-app-registry": "^9.2.6", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-user-data": "^0.3.8", + "@mongodb-js/devtools-proxy-support": "^0.4.1", + "bson": "^6.8.0", + "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.23", "js-yaml": "^4.1.0", "lodash": "^4.17.21", @@ -45790,7 +45662,7 @@ "devDependencies": { "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/js-yaml": "^4.0.5", "@types/yargs-parser": "21.0.0", @@ -45838,27 +45710,27 @@ }, "packages/compass-query-bar": { "name": "@mongodb-js/compass-query-bar", - "version": "8.43.0", + "version": "8.44.2", "license": "SSPL", "dependencies": { - "@mongodb-js/atlas-service": "^0.28.3", - "@mongodb-js/compass-app-stores": "^7.28.0", - "@mongodb-js/compass-collection": "^4.41.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-editor": "^0.30.0", - "@mongodb-js/compass-field-store": "^9.17.0", - "@mongodb-js/compass-generative-ai": "^0.22.3", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-telemetry": "^1.1.7", + "@mongodb-js/atlas-service": "^0.29.0", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-collection": "^4.42.2", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/compass-generative-ai": "^0.23.0", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/mongodb-constants": "^0.10.0", - "@mongodb-js/my-queries-storage": "^0.16.0", - "bson": "^6.7.0", - "compass-preferences-model": "^2.28.3", - "hadron-app-registry": "^9.2.6", + "@mongodb-js/my-queries-storage": "^0.17.0", + "bson": "^6.8.0", + "compass-preferences-model": "^2.29.0", + "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", - "mongodb": "^6.8.0", - "mongodb-instance-model": "^12.24.3", + "mongodb": "^6.9.0", + "mongodb-instance-model": "^12.24.4", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "mongodb-query-util": "^2.2.8", @@ -45872,7 +45744,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "chai": "^4.2.0", "depcheck": "^1.4.1", @@ -45916,22 +45788,22 @@ }, "packages/compass-saved-aggregations-queries": { "name": "@mongodb-js/compass-saved-aggregations-queries", - "version": "1.42.0", + "version": "1.43.2", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.28.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-telemetry": "^1.1.7", - "@mongodb-js/compass-workspaces": "^0.23.0", - "@mongodb-js/connection-form": "^1.40.0", - "@mongodb-js/connection-info": "^0.8.0", - "@mongodb-js/my-queries-storage": "^0.16.0", - "bson": "^6.7.0", - "compass-preferences-model": "^2.28.3", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/connection-form": "^1.41.1", + "@mongodb-js/connection-info": "^0.9.0", + "@mongodb-js/my-queries-storage": "^0.17.0", + "bson": "^6.8.0", + "compass-preferences-model": "^2.29.0", "fuse.js": "^6.5.3", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "mongodb-ns": "^2.4.2", "react": "^17.0.2", "react-redux": "^8.1.3", @@ -45942,7 +45814,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", @@ -45992,29 +45864,29 @@ }, "packages/compass-schema": { "name": "@mongodb-js/compass-schema", - "version": "6.43.0", + "version": "6.44.2", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-collection": "^4.41.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-field-store": "^9.17.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-query-bar": "^8.43.0", - "@mongodb-js/compass-telemetry": "^1.1.7", - "@mongodb-js/connection-storage": "^0.21.0", + "@mongodb-js/compass-collection": "^4.42.2", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-query-bar": "^8.44.2", + "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/connection-storage": "^0.22.0", "@mongodb-js/reflux-state-mixin": "^1.0.7", - "bson": "^6.7.0", - "compass-preferences-model": "^2.28.3", + "bson": "^6.8.0", + "compass-preferences-model": "^2.29.0", "d3": "^3.5.17", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "hadron-document": "^8.6.3", "leaflet": "^1.5.1", "leaflet-defaulticon-compatibility": "^0.1.1", "leaflet-draw": "^1.0.4", "lodash": "^4.17.21", "moment": "^2.29.4", - "mongodb": "^6.8.0", + "mongodb": "^6.9.0", "mongodb-query-util": "^2.2.8", "mongodb-schema": "^12.2.0", "numeral": "^1.5.6", @@ -46027,9 +45899,9 @@ "devDependencies": { "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", - "@mongodb-js/my-queries-storage": "^0.16.0", + "@mongodb-js/my-queries-storage": "^0.17.0", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/leaflet": "^1.9.8", @@ -46051,21 +45923,21 @@ }, "packages/compass-schema-validation": { "name": "@mongodb-js/compass-schema-validation", - "version": "6.42.0", + "version": "6.43.2", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.28.0", - "@mongodb-js/compass-collection": "^4.41.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-crud": "^13.42.0", - "@mongodb-js/compass-editor": "^0.30.0", - "@mongodb-js/compass-field-store": "^9.17.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-telemetry": "^1.1.7", - "bson": "^6.7.0", - "compass-preferences-model": "^2.28.3", - "hadron-app-registry": "^9.2.6", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-collection": "^4.42.2", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-crud": "^13.43.2", + "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", + "bson": "^6.8.0", + "compass-preferences-model": "^2.29.0", + "hadron-app-registry": "^9.2.7", "javascript-stringify": "^2.0.1", "lodash": "^4.17.21", "mongodb-ns": "^2.4.2", @@ -46081,7 +45953,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.0", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/enzyme": "^3.10.14", "chai": "^4.2.0", @@ -46092,7 +45964,7 @@ "eslint": "^7.25.0", "hadron-ipc": "^3.2.23", "mocha": "^10.2.0", - "mongodb-instance-model": "^12.24.3", + "mongodb-instance-model": "^12.24.4", "nyc": "^15.1.0", "react-dom": "^17.0.2", "sinon": "^8.1.1", @@ -46128,18 +46000,18 @@ }, "packages/compass-serverstats": { "name": "@mongodb-js/compass-serverstats", - "version": "16.41.0", + "version": "16.42.2", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.28.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-telemetry": "^1.1.7", - "@mongodb-js/compass-workspaces": "^0.23.0", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-workspaces": "^0.24.2", "d3": "^3.5.17", "d3-timer": "^1.0.3", "debug": "^4.3.4", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mongodb-ns": "^2.4.2", "prop-types": "^15.7.2", @@ -46150,7 +46022,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.0", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/d3": "^3.5.x", "chai": "^4.1.2", @@ -46177,15 +46049,15 @@ }, "packages/compass-settings": { "name": "@mongodb-js/compass-settings", - "version": "0.40.3", + "version": "0.41.0", "license": "SSPL", "dependencies": { - "@mongodb-js/atlas-service": "^0.28.3", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-generative-ai": "^0.22.3", - "@mongodb-js/compass-logging": "^1.4.7", - "compass-preferences-model": "^2.28.3", - "hadron-app-registry": "^9.2.6", + "@mongodb-js/atlas-service": "^0.29.0", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-generative-ai": "^0.23.0", + "@mongodb-js/compass-logging": "^1.4.8", + "compass-preferences-model": "^2.29.0", + "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.23", "react": "^17.0.2", "react-redux": "^8.1.3", @@ -46196,7 +46068,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", @@ -46246,22 +46118,22 @@ }, "packages/compass-shell": { "name": "@mongodb-js/compass-shell", - "version": "3.41.0", + "version": "3.42.2", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-telemetry": "^1.1.7", - "@mongodb-js/compass-user-data": "^0.3.7", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.23.0", - "@mongosh/browser-repl": "^2.3.1", - "@mongosh/logging": "^2.3.1", - "@mongosh/node-runtime-worker-thread": "^2.3.1", - "bson": "^6.7.0", - "compass-preferences-model": "^2.28.3", - "hadron-app-registry": "^9.2.6", + "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongosh/browser-repl": "^2.3.2", + "@mongosh/logging": "^2.3.2", + "@mongosh/node-runtime-worker-thread": "^2.3.2", + "bson": "^6.8.0", + "compass-preferences-model": "^2.29.0", + "hadron-app-registry": "^9.2.7", "react": "^17.0.2", "react-redux": "^8.1.3", "redux": "^4.2.1", @@ -46271,7 +46143,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/enzyme": "^3.10.14", "chai": "^4.2.0", @@ -46287,252 +46159,6 @@ "typescript": "^5.0.4" } }, - "packages/compass-shell/node_modules/@mongodb-js/devtools-connect": { - "version": "3.2.10", - "resolved": "https://registry.npmjs.org/@mongodb-js/devtools-connect/-/devtools-connect-3.2.10.tgz", - "integrity": "sha512-x+MhIwJzCKjc5NhGHbns5IGa6yBwj/Nm6uVh0TwmhdKGxBbIP4o0xa4YVRwRajxHHGrxhiKQRNRJsHD6IzVVOw==", - "license": "Apache-2.0", - "dependencies": { - "@mongodb-js/devtools-proxy-support": "^0.3.9", - "@mongodb-js/oidc-http-server-pages": "1.1.3", - "lodash.merge": "^4.6.2", - "mongodb-connection-string-url": "^3.0.0", - "socks": "^2.7.3" - }, - "optionalDependencies": { - "kerberos": "^2.1.0", - "mongodb-client-encryption": "^6.1.0", - "os-dns-native": "^1.2.0", - "resolve-mongodb-srv": "^1.1.1" - }, - "peerDependencies": { - "@mongodb-js/oidc-plugin": "^1.1.0", - "mongodb": "^6.8.0", - "mongodb-log-writer": "^1.4.2" - } - }, - "packages/compass-shell/node_modules/@mongodb-js/oidc-http-server-pages": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@mongodb-js/oidc-http-server-pages/-/oidc-http-server-pages-1.1.3.tgz", - "integrity": "sha512-I704bSQRu/SusTcCV8qqtdFVvAJf1aKZtgGM2VnYjPn2njZd5j7864k/CF9TeeR8+r0At5qqNa3N4MX9YxPnEg==", - "license": "Apache-2.0" - }, - "packages/compass-shell/node_modules/@mongosh/arg-parser": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@mongosh/arg-parser/-/arg-parser-2.3.1.tgz", - "integrity": "sha512-s0tzK+vPhJRsZZnb1r4V8lv97gpUFOXudHgJ+O3orCkkAUN0JR3IDWPSRY3eECNTlW96ZErGMqRhyPsCFW733g==", - "license": "Apache-2.0", - "dependencies": { - "@mongosh/errors": "2.3.1", - "@mongosh/i18n": "2.3.1", - "mongodb-connection-string-url": "^3.0.1" - }, - "engines": { - "node": ">=14.15.1" - } - }, - "packages/compass-shell/node_modules/@mongosh/async-rewriter2": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@mongosh/async-rewriter2/-/async-rewriter2-2.3.1.tgz", - "integrity": "sha512-4tCMYMmhlet4/TYowsGPaoXhXQd5C6jykPnSOMZZrluZeDqRqWJfozW7161m+8Xe7IMZf4KyFzk8CAVewJfzLw==", - "license": "Apache-2.0", - "dependencies": { - "@babel/core": "^7.22.8", - "@babel/plugin-transform-destructuring": "^7.22.5", - "@babel/plugin-transform-parameters": "^7.22.5", - "@babel/plugin-transform-shorthand-properties": "^7.22.5", - "@babel/types": "^7.22.5" - }, - "bin": { - "async-rewrite": "bin/async-rewrite.js" - }, - "engines": { - "node": ">=14.15.1" - } - }, - "packages/compass-shell/node_modules/@mongosh/autocomplete": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@mongosh/autocomplete/-/autocomplete-2.3.1.tgz", - "integrity": "sha512-rTZ1pKOKahs62NLTiSnWKp4/34VWnVsSG+rvpup2Xf/XC8/uFuFZo5Moj6eIgEF49PSyfICA+agmg47ldeQelw==", - "license": "Apache-2.0", - "dependencies": { - "@mongodb-js/mongodb-constants": "^0.10.1", - "@mongosh/shell-api": "2.3.1", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=14.15.1" - } - }, - "packages/compass-shell/node_modules/@mongosh/browser-repl": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@mongosh/browser-repl/-/browser-repl-2.3.1.tgz", - "integrity": "sha512-GYBJbfvLf2uxpLkiZdxYO7sQKwK9n+toRtl7WNahHK/e3VQQRcxwJqUp392y5MxyX3E/J4J+7Uy4YoTTiRKDtg==", - "license": "Apache-2.0", - "dependencies": { - "@mongosh/browser-runtime-core": "2.3.1", - "@mongosh/errors": "2.3.1", - "@mongosh/history": "2.3.1", - "@mongosh/i18n": "2.3.1", - "@mongosh/node-runtime-worker-thread": "2.3.1", - "@mongosh/service-provider-core": "2.3.1", - "numeral": "^2.0.6", - "text-table": "^0.2.0" - }, - "engines": { - "node": ">=14.15.1" - }, - "peerDependencies": { - "@mongodb-js/compass-components": "*", - "@mongodb-js/compass-editor": "*", - "prop-types": "^15.7.2", - "react": "^17.0.2", - "react-dom": "^17.0.2" - } - }, - "packages/compass-shell/node_modules/@mongosh/browser-runtime-core": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@mongosh/browser-runtime-core/-/browser-runtime-core-2.3.1.tgz", - "integrity": "sha512-pFV3g7qIY8YRLqH0GPc5YJSXx2U36Jf475nuVGsqmGdHVwmXRRCbTBa+0Bel/divc9YDD9/GNLMGGIVjRUfl9A==", - "license": "Apache-2.0", - "dependencies": { - "@mongosh/autocomplete": "2.3.1", - "@mongosh/service-provider-core": "2.3.1", - "@mongosh/shell-api": "2.3.1", - "@mongosh/shell-evaluator": "2.3.1" - }, - "engines": { - "node": ">=14.15.1" - } - }, - "packages/compass-shell/node_modules/@mongosh/errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@mongosh/errors/-/errors-2.3.1.tgz", - "integrity": "sha512-opMEluGMEABO4v72nOwJTPeaP2adNduzh7oFGLBtfencOw0em38g93XnzL5iwH/Bjp2BVAEiMtcHYZeMRus7FQ==", - "license": "Apache-2.0", - "engines": { - "node": ">=14.15.1" - } - }, - "packages/compass-shell/node_modules/@mongosh/history": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@mongosh/history/-/history-2.3.1.tgz", - "integrity": "sha512-hjKcqQy0PtYHSl5ZxkiCKi4OltHm0ZQdpJ05a5R26fEvNue+0tcv1TfnXbVxAk9K9Q2vB06SIRI0rnJrTtG+yQ==", - "license": "Apache-2.0", - "dependencies": { - "mongodb-connection-string-url": "^3.0.1", - "mongodb-redact": "^1.1.2" - }, - "engines": { - "node": ">=14.15.1" - } - }, - "packages/compass-shell/node_modules/@mongosh/i18n": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@mongosh/i18n/-/i18n-2.3.1.tgz", - "integrity": "sha512-qwYjGJKV8mQl/dqL21aIo3z1wdoE80JBiGGhJgyc2ofhLTvdktoav0FXKWOPrpvSR3K29L98D0H8V7uhisfdRQ==", - "license": "Apache-2.0", - "dependencies": { - "@mongosh/errors": "2.3.1" - }, - "engines": { - "node": ">=14.15.1" - } - }, - "packages/compass-shell/node_modules/@mongosh/logging": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@mongosh/logging/-/logging-2.3.1.tgz", - "integrity": "sha512-DDe4YNZJfKI9guyzCTdcvEpn0E20v94wnRpfiDfp9y05WUvJsDPBWWmhyGLYj4c1qrDctj8BiGt9mbb/7tY6Yw==", - "license": "Apache-2.0", - "dependencies": { - "@mongodb-js/devtools-connect": "^3.2.10", - "@mongosh/errors": "2.3.1", - "@mongosh/history": "2.3.1", - "@mongosh/types": "2.3.1", - "mongodb-log-writer": "^1.4.2", - "mongodb-redact": "^1.1.2" - }, - "engines": { - "node": ">=14.15.1" - } - }, - "packages/compass-shell/node_modules/@mongosh/node-runtime-worker-thread": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@mongosh/node-runtime-worker-thread/-/node-runtime-worker-thread-2.3.1.tgz", - "integrity": "sha512-RmWQwQHdPEClthSBlLx3pLuQcrba9mGUnXpRIlT56Ddv7KyDEORM80yR/1SfUuxyPJ0BwtOcXIqAYf/m/KF85Q==", - "license": "Apache-2.0", - "dependencies": { - "interruptor": "^1.0.1", - "system-ca": "^2.0.1", - "web-worker": "^1.3.0" - }, - "engines": { - "node": ">=14.15.1" - } - }, - "packages/compass-shell/node_modules/@mongosh/service-provider-core": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@mongosh/service-provider-core/-/service-provider-core-2.3.1.tgz", - "integrity": "sha512-+UusnZjXqM2JWdva+11IX4fRW0+sqJS5FhpQ7UHreQyGzdDcgIIqFe1fB4CMfzaMdjQ7RvUqIMM5bV81xDZ9vA==", - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/credential-providers": "^3.525.0", - "@mongosh/errors": "2.3.1", - "bson": "^6.7.0", - "mongodb": "^6.8.0", - "mongodb-build-info": "^1.7.2", - "mongodb-connection-string-url": "^3.0.1" - }, - "engines": { - "node": ">=14.15.1" - }, - "optionalDependencies": { - "mongodb-client-encryption": "^6.1.0" - } - }, - "packages/compass-shell/node_modules/@mongosh/shell-api": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@mongosh/shell-api/-/shell-api-2.3.1.tgz", - "integrity": "sha512-ou6LIbpqlzsKVFiBQJ9Aqt5OxS5NuLb5y2cKuTPvv0wEKrPjg/XAHVyo+Bw09fa4ZYPDk705RehgtfdTpKnLfQ==", - "license": "Apache-2.0", - "dependencies": { - "@mongosh/arg-parser": "2.3.1", - "@mongosh/errors": "2.3.1", - "@mongosh/history": "2.3.1", - "@mongosh/i18n": "2.3.1", - "@mongosh/service-provider-core": "2.3.1", - "mongodb-redact": "^1.1.2" - }, - "engines": { - "node": ">=14.15.1" - } - }, - "packages/compass-shell/node_modules/@mongosh/shell-evaluator": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@mongosh/shell-evaluator/-/shell-evaluator-2.3.1.tgz", - "integrity": "sha512-MWGL8600o4d1/ngBOQXrorEmYBZebDJeF3g7CM0QmZAuHzJ9HY/67bm/xDKUn/9H0K3tVJSFAWYOXk99tQqTHQ==", - "license": "Apache-2.0", - "dependencies": { - "@mongosh/async-rewriter2": "2.3.1", - "@mongosh/history": "2.3.1", - "@mongosh/shell-api": "2.3.1" - }, - "engines": { - "node": ">=14.15.1" - } - }, - "packages/compass-shell/node_modules/@mongosh/types": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@mongosh/types/-/types-2.3.1.tgz", - "integrity": "sha512-fpMJ4yHhilTIWe3jgWoE+Eq0q9ij40HMGRfCJoZE+aOCslBkggqsia5Fh13G8JCFKangkWnZ5UMMAxSg6VBJgQ==", - "license": "Apache-2.0", - "dependencies": { - "@mongodb-js/devtools-connect": "^3.2.10" - }, - "engines": { - "node": ">=14.15.1" - } - }, "packages/compass-shell/node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", @@ -46542,15 +46168,6 @@ "node": ">=0.3.1" } }, - "packages/compass-shell/node_modules/numeral": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/numeral/-/numeral-2.0.6.tgz", - "integrity": "sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA==", - "license": "MIT", - "engines": { - "node": "*" - } - }, "packages/compass-shell/node_modules/sinon": { "version": "9.2.4", "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.2.4.tgz", @@ -46571,25 +46188,25 @@ }, "packages/compass-sidebar": { "name": "@mongodb-js/compass-sidebar", - "version": "5.42.0", + "version": "5.43.2", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.28.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connection-import-export": "^0.38.0", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-connections-navigation": "^1.41.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-maybe-protect-connection-string": "^0.26.3", - "@mongodb-js/compass-telemetry": "^1.1.7", - "@mongodb-js/compass-workspaces": "^0.23.0", - "@mongodb-js/connection-form": "^1.40.0", - "@mongodb-js/connection-info": "^0.8.0", - "compass-preferences-model": "^2.28.3", - "hadron-app-registry": "^9.2.6", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connection-import-export": "^0.39.1", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-connections-navigation": "^1.42.2", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.0", + "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/connection-form": "^1.41.1", + "@mongodb-js/connection-info": "^0.9.0", + "compass-preferences-model": "^2.29.0", + "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", - "mongodb": "^6.8.0", - "mongodb-instance-model": "^12.24.3", + "mongodb": "^6.9.0", + "mongodb-instance-model": "^12.24.4", "mongodb-ns": "^2.4.2", "react": "^17.0.2", "react-redux": "^8.1.3", @@ -46600,7 +46217,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", @@ -46613,7 +46230,7 @@ "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "mocha": "^10.2.0", - "mongodb-data-service": "^22.23.3", + "mongodb-data-service": "^22.23.4", "nyc": "^15.1.0", "prettier": "^2.7.1", "react-dom": "^17.0.2", @@ -46651,11 +46268,11 @@ }, "packages/compass-telemetry": { "name": "@mongodb-js/compass-telemetry", - "version": "1.1.7", + "version": "1.2.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-logging": "^1.4.7", - "hadron-app-registry": "^9.2.6", + "@mongodb-js/compass-logging": "^1.4.8", + "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.23", "react": "^17.0.2" }, @@ -46812,10 +46429,10 @@ }, "packages/compass-user-data": { "name": "@mongodb-js/compass-user-data", - "version": "0.3.7", + "version": "0.3.8", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-logging": "^1.4.7", + "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-utils": "^0.6.12", "write-file-atomic": "^5.0.1", "zod": "^3.22.3" @@ -46946,38 +46563,39 @@ }, "packages/compass-web": { "name": "@mongodb-js/compass-web", - "version": "0.7.1", + "version": "0.8.2", "license": "SSPL", "devDependencies": { - "@mongodb-js/atlas-service": "^0.28.3", - "@mongodb-js/compass-aggregations": "^9.44.0", - "@mongodb-js/compass-app-stores": "^7.28.0", - "@mongodb-js/compass-collection": "^4.41.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-crud": "^13.42.0", - "@mongodb-js/compass-databases-collections": "^1.41.0", - "@mongodb-js/compass-explain-plan": "^6.42.0", - "@mongodb-js/compass-export-to-language": "^9.18.0", - "@mongodb-js/compass-field-store": "^9.17.0", - "@mongodb-js/compass-generative-ai": "^0.22.3", - "@mongodb-js/compass-indexes": "^5.41.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-query-bar": "^8.43.0", - "@mongodb-js/compass-schema": "^6.43.0", - "@mongodb-js/compass-schema-validation": "^6.42.0", - "@mongodb-js/compass-sidebar": "^5.42.0", - "@mongodb-js/compass-telemetry": "^1.1.7", - "@mongodb-js/compass-welcome": "^0.40.0", - "@mongodb-js/compass-workspaces": "^0.23.0", - "@mongodb-js/connection-storage": "^0.21.0", - "@mongodb-js/devtools-proxy-support": "^0.3.9", + "@mongodb-js/atlas-service": "^0.29.0", + "@mongodb-js/compass-aggregations": "^9.45.2", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-collection": "^4.42.2", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-crud": "^13.43.2", + "@mongodb-js/compass-databases-collections": "^1.42.2", + "@mongodb-js/compass-explain-plan": "^6.43.2", + "@mongodb-js/compass-export-to-language": "^9.19.2", + "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/compass-generative-ai": "^0.23.0", + "@mongodb-js/compass-global-writes": "^1.2.1", + "@mongodb-js/compass-indexes": "^5.42.2", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-query-bar": "^8.44.2", + "@mongodb-js/compass-schema": "^6.44.2", + "@mongodb-js/compass-schema-validation": "^6.43.2", + "@mongodb-js/compass-sidebar": "^5.43.2", + "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-welcome": "^0.41.2", + "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/connection-storage": "^0.22.0", + "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", - "@mongodb-js/webpack-config-compass": "^1.4.2", + "@mongodb-js/webpack-config-compass": "^1.4.4", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", "@types/express-http-proxy": "^1.6.6", @@ -46989,7 +46607,7 @@ "bson": "^6.2.0", "buffer": "^6.0.3", "chai": "^4.3.6", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "crypto-browserify": "^3.12.0", "debug": "^4.3.4", "depcheck": "^1.4.1", @@ -46997,15 +46615,15 @@ "electron": "^30.5.1", "eslint": "^7.25.0", "events": "^3.3.0", - "express": "^4.20.0", + "express": "^4.21.1", "express-http-proxy": "^2.0.0", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "is-ip": "^5.0.1", "lodash": "^4.17.21", "mocha": "^10.2.0", - "mongodb": "^6.8.0", + "mongodb": "^6.9.0", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.3", + "mongodb-data-service": "^22.23.4", "mongodb-ns": "^2.4.2", "nyc": "^15.1.0", "os-browserify": "^0.3.0", @@ -47087,6 +46705,24 @@ "ieee754": "^1.2.1" } }, + "packages/compass-web/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "packages/compass-web/node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", @@ -47096,6 +46732,13 @@ "node": ">=0.8.x" } }, + "packages/compass-web/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "packages/compass-web/node_modules/nise": { "version": "5.1.5", "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.5.tgz", @@ -47185,16 +46828,16 @@ }, "packages/compass-welcome": { "name": "@mongodb-js/compass-welcome", - "version": "0.40.0", + "version": "0.41.2", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-telemetry": "^1.1.7", - "@mongodb-js/compass-workspaces": "^0.23.0", - "compass-preferences-model": "^2.28.3", - "hadron-app-registry": "^9.2.6", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-workspaces": "^0.24.2", + "compass-preferences-model": "^2.29.0", + "hadron-app-registry": "^9.2.7", "react": "^17.0.2", "redux": "^4.2.1", "redux-thunk": "^2.4.2" @@ -47203,7 +46846,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", @@ -47251,19 +46894,19 @@ }, "packages/compass-workspaces": { "name": "@mongodb-js/compass-workspaces", - "version": "0.23.0", + "version": "0.24.2", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.28.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-logging": "^1.4.7", - "bson": "^6.7.0", - "compass-preferences-model": "^2.28.3", - "hadron-app-registry": "^9.2.6", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-logging": "^1.4.8", + "bson": "^6.8.0", + "compass-preferences-model": "^2.29.0", + "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", - "mongodb-collection-model": "^5.23.3", - "mongodb-database-model": "^2.23.3", + "mongodb-collection-model": "^5.23.4", + "mongodb-database-model": "^2.23.4", "mongodb-ns": "^2.4.2", "react": "^17.0.2", "react-redux": "^8.1.3", @@ -47274,7 +46917,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", @@ -47391,20 +47034,6 @@ "url": "https://opencollective.com/sinon" } }, - "packages/compass/node_modules/@mongosh/node-runtime-worker-thread": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@mongosh/node-runtime-worker-thread/-/node-runtime-worker-thread-2.3.1.tgz", - "integrity": "sha512-RmWQwQHdPEClthSBlLx3pLuQcrba9mGUnXpRIlT56Ddv7KyDEORM80yR/1SfUuxyPJ0BwtOcXIqAYf/m/KF85Q==", - "license": "Apache-2.0", - "dependencies": { - "interruptor": "^1.0.1", - "system-ca": "^2.0.1", - "web-worker": "^1.3.0" - }, - "engines": { - "node": ">=14.15.1" - } - }, "packages/compass/node_modules/debug": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", @@ -47424,19 +47053,18 @@ }, "packages/connection-form": { "name": "@mongodb-js/connection-form", - "version": "1.40.0", + "version": "1.41.1", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-editor": "^0.30.0", - "@mongodb-js/connection-info": "^0.8.0", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/shell-bson-parser": "^1.1.2", - "compass-preferences-model": "^2.28.3", "lodash": "^4.17.21", - "mongodb": "^6.8.0", + "mongodb": "^6.9.0", "mongodb-build-info": "^1.7.2", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.3", + "mongodb-data-service": "^22.23.4", "mongodb-query-parser": "^4.2.3", "react": "^17.0.2" }, @@ -47444,14 +47072,14 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", "@types/mocha": "^9.0.0", "@types/react": "^17.0.5", "@types/sinon-chai": "^3.2.5", - "bson": "^6.7.0", + "bson": "^6.8.0", "chai": "^4.3.4", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", @@ -47492,13 +47120,13 @@ }, "packages/connection-info": { "name": "@mongodb-js/connection-info", - "version": "0.8.0", + "version": "0.9.0", "license": "SSPL", "dependencies": { "lodash": "^4.17.21", - "mongodb": "^6.8.0", + "mongodb": "^6.9.0", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.3" + "mongodb-data-service": "^22.23.4" }, "devDependencies": { "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -47508,7 +47136,7 @@ "@types/chai": "^4.2.21", "@types/mocha": "^9.0.0", "@types/sinon-chai": "^3.2.5", - "bson": "^6.7.0", + "bson": "^6.8.0", "chai": "^4.3.6", "depcheck": "^1.4.1", "eslint": "^7.25.0", @@ -47618,18 +47246,18 @@ }, "packages/connection-storage": { "name": "@mongodb-js/connection-storage", - "version": "0.21.0", + "version": "0.22.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-telemetry": "^1.1.7", - "@mongodb-js/compass-user-data": "^0.3.7", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/connection-info": "^0.8.0", - "bson": "^6.7.0", - "compass-preferences-model": "^2.28.3", + "@mongodb-js/connection-info": "^0.9.0", + "bson": "^6.8.0", + "compass-preferences-model": "^2.29.0", "electron": "^30.5.1", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.23", "keytar": "^7.9.0", "lodash": "^4.17.21", @@ -47683,16 +47311,16 @@ }, "packages/data-service": { "name": "mongodb-data-service", - "version": "22.23.3", + "version": "22.23.4", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-logging": "^1.4.7", + "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/devtools-connect": "^3.2.10", - "@mongodb-js/devtools-proxy-support": "^0.3.9", - "bson": "^6.7.0", + "@mongodb-js/devtools-connect": "^3.3.1", + "@mongodb-js/devtools-proxy-support": "^0.4.1", + "bson": "^6.8.0", "lodash": "^4.17.21", - "mongodb": "^6.8.0", + "mongodb": "^6.9.0", "mongodb-build-info": "^1.7.2", "mongodb-connection-string-url": "^3.0.1", "mongodb-ns": "^2.4.2" @@ -47724,30 +47352,6 @@ "mongodb-client-encryption": "^6.1.0" } }, - "packages/data-service/node_modules/@mongodb-js/devtools-connect": { - "version": "3.2.10", - "resolved": "https://registry.npmjs.org/@mongodb-js/devtools-connect/-/devtools-connect-3.2.10.tgz", - "integrity": "sha512-x+MhIwJzCKjc5NhGHbns5IGa6yBwj/Nm6uVh0TwmhdKGxBbIP4o0xa4YVRwRajxHHGrxhiKQRNRJsHD6IzVVOw==", - "license": "Apache-2.0", - "dependencies": { - "@mongodb-js/devtools-proxy-support": "^0.3.9", - "@mongodb-js/oidc-http-server-pages": "1.1.3", - "lodash.merge": "^4.6.2", - "mongodb-connection-string-url": "^3.0.0", - "socks": "^2.7.3" - }, - "optionalDependencies": { - "kerberos": "^2.1.0", - "mongodb-client-encryption": "^6.1.0", - "os-dns-native": "^1.2.0", - "resolve-mongodb-srv": "^1.1.1" - }, - "peerDependencies": { - "@mongodb-js/oidc-plugin": "^1.1.0", - "mongodb": "^6.8.0", - "mongodb-log-writer": "^1.4.2" - } - }, "packages/data-service/node_modules/@mongodb-js/devtools-docker-test-envs": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/@mongodb-js/devtools-docker-test-envs/-/devtools-docker-test-envs-1.3.3.tgz", @@ -47772,11 +47376,6 @@ "whatwg-url": "^11.0.0" } }, - "packages/data-service/node_modules/@mongodb-js/oidc-http-server-pages": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@mongodb-js/oidc-http-server-pages/-/oidc-http-server-pages-1.1.3.tgz", - "integrity": "sha512-I704bSQRu/SusTcCV8qqtdFVvAJf1aKZtgGM2VnYjPn2njZd5j7864k/CF9TeeR8+r0At5qqNa3N4MX9YxPnEg==" - }, "packages/data-service/node_modules/eslint-plugin-mocha": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-9.0.0.tgz", @@ -47874,13 +47473,13 @@ }, "packages/database-model": { "name": "mongodb-database-model", - "version": "2.23.3", + "version": "2.23.4", "license": "SSPL", "dependencies": { "ampersand-collection": "^2.0.2", "ampersand-model": "^8.0.1", - "mongodb-collection-model": "^5.23.3", - "mongodb-data-service": "^22.23.3" + "mongodb-collection-model": "^5.23.4", + "mongodb-data-service": "^22.23.4" }, "devDependencies": { "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -47941,24 +47540,24 @@ }, "packages/databases-collections": { "name": "@mongodb-js/compass-databases-collections", - "version": "1.41.0", + "version": "1.42.2", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.28.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-editor": "^0.30.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-telemetry": "^1.1.7", - "@mongodb-js/compass-workspaces": "^0.23.0", - "@mongodb-js/databases-collections-list": "^1.39.0", - "@mongodb-js/my-queries-storage": "^0.16.0", - "compass-preferences-model": "^2.28.3", - "hadron-app-registry": "^9.2.6", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/databases-collections-list": "^1.40.2", + "@mongodb-js/my-queries-storage": "^0.17.0", + "compass-preferences-model": "^2.29.0", + "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", - "mongodb-collection-model": "^5.23.3", - "mongodb-database-model": "^2.23.3", - "mongodb-instance-model": "^12.24.3", + "mongodb-collection-model": "^5.23.4", + "mongodb-database-model": "^2.23.4", + "mongodb-instance-model": "^12.24.4", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "prop-types": "^15.7.2", @@ -47972,9 +47571,9 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", - "bson": "^6.7.0", + "bson": "^6.8.0", "chai": "^4.2.0", "depcheck": "^1.4.1", "enzyme": "^3.11.0", @@ -47988,15 +47587,15 @@ }, "packages/databases-collections-list": { "name": "@mongodb-js/databases-collections-list", - "version": "1.39.0", + "version": "1.40.2", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-telemetry": "^1.1.7", - "@mongodb-js/compass-workspaces": "^0.23.0", - "@mongodb-js/connection-info": "^0.8.0", - "compass-preferences-model": "^2.28.3", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/connection-info": "^0.9.0", + "compass-preferences-model": "^2.29.0", "mongodb-ns": "^2.4.2", "react": "^17.0.2" }, @@ -48004,7 +47603,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", @@ -48184,7 +47783,7 @@ } }, "packages/hadron-app-registry": { - "version": "9.2.6", + "version": "9.2.7", "license": "SSPL", "dependencies": { "eventemitter3": "^4.0.0", @@ -48197,7 +47796,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/mocha": "^9.0.0", @@ -48240,11 +47839,11 @@ } }, "packages/hadron-build": { - "version": "25.5.10", + "version": "25.5.11", "hasInstallScript": true, "license": "SSPL", "dependencies": { - "@electron/rebuild": "^3.6.0", + "@electron/rebuild": "^3.6.2", "@mongodb-js/devtools-github-repo": "^1.4.1", "@mongodb-js/dl-center": "^1.0.1", "@mongodb-js/electron-wix-msi": "^3.0.0", @@ -48271,7 +47870,7 @@ "lodash": "^4.17.21", "moment": "^2.29.4", "mongodb-js-cli": "^0.0.3", - "node-abi": "^3.67.0", + "node-abi": "^3.68.0", "normalize-package-data": "^2.3.5", "parse-github-repo-url": "^1.3.0", "semver": "^7.6.2", @@ -48698,28 +48297,6 @@ "mkdirp": "bin/cmd.js" } }, - "packages/hadron-build/node_modules/node-abi": { - "version": "3.67.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.67.0.tgz", - "integrity": "sha512-bLn/fU/ALVBE9wj+p4Y21ZJWYFjUXLXPi/IewyLZkx3ApxKDNBWCKdReeKOtD8dWpOdDCeMyLh6ZewzcLsG2Nw==", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": ">=10" - } - }, - "packages/hadron-build/node_modules/node-abi/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "packages/hadron-build/node_modules/normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -48978,7 +48555,7 @@ "version": "8.6.3", "license": "SSPL", "dependencies": { - "bson": "^6.7.0", + "bson": "^6.8.0", "eventemitter3": "^4.0.0", "hadron-type-checker": "^7.2.2", "lodash": "^4.17.21" @@ -49153,26 +48730,26 @@ "version": "7.2.2", "license": "SSPL", "dependencies": { - "bson": "^6.7.0", + "bson": "^6.8.0", "lodash": "^4.17.21" }, "devDependencies": { + "@mongodb-js/eslint-config-compass": "^1.1.7", "chai": "^4.2.0", "depcheck": "^1.4.1", "eslint": "^7.25.0", - "eslint-config-mongodb-js": "^5.0.3", "mocha": "^10.2.0" } }, "packages/instance-model": { "name": "mongodb-instance-model", - "version": "12.24.3", + "version": "12.24.4", "license": "SSPL", "dependencies": { "ampersand-model": "^8.0.1", - "mongodb-collection-model": "^5.23.3", - "mongodb-data-service": "^22.23.3", - "mongodb-database-model": "^2.23.3" + "mongodb-collection-model": "^5.23.4", + "mongodb-data-service": "^22.23.4", + "mongodb-database-model": "^2.23.4" }, "devDependencies": { "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -49187,13 +48764,8 @@ "version": "3.1.0", "license": "SSPL", "devDependencies": { + "@mongodb-js/eslint-config-compass": "^1.1.7", "eslint": "^7.25.0", - "eslint-config-semistandard": "^15.0.1", - "eslint-config-standard": "^14.1.1", - "eslint-plugin-import": "^2.22.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^4.2.1", - "eslint-plugin-standard": "^4.0.1", "gen-esm-wrapper": "^1.1.0", "mocha": "^10.2.0", "nyc": "^15.1.0" @@ -49203,7 +48775,7 @@ "version": "2.2.8", "license": "SSPL", "dependencies": { - "bson": "^6.7.0", + "bson": "^6.8.0", "lodash": "^4.17.21" }, "devDependencies": { @@ -49443,13 +49015,13 @@ }, "packages/my-queries-storage": { "name": "@mongodb-js/my-queries-storage", - "version": "0.16.0", + "version": "0.17.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-editor": "^0.30.0", - "@mongodb-js/compass-user-data": "^0.3.7", - "bson": "^6.7.0", - "hadron-app-registry": "^9.2.6", + "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-user-data": "^0.3.8", + "bson": "^6.8.0", + "hadron-app-registry": "^9.2.7", "react": "^17.0.2" }, "devDependencies": { @@ -50064,7 +49636,7 @@ }, "scripts": { "name": "@mongodb-js/compass-scripts", - "version": "0.16.21", + "version": "0.16.22", "license": "SSPL", "dependencies": { "@babel/core": "^7.24.3", @@ -53006,9 +52578,9 @@ } }, "@electron/rebuild": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-3.6.0.tgz", - "integrity": "sha512-zF4x3QupRU3uNGaP5X1wjpmcjfw1H87kyqZ00Tc3HvriV+4gmOGuvQjGNkrJuXdsApssdNyVwLsy+TaeTGGcVw==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-3.6.2.tgz", + "integrity": "sha512-fTSoWdbrPTmQOwvct4VnJH45aJg79WRabuNqt7cAWIno5kTXv1QD6qVmR2e8wmHi/xryaiVINl1gcEhKGjREVw==", "requires": { "@malept/cross-spawn-promise": "^2.0.0", "chalk": "^4.0.0", @@ -53260,11 +52832,12 @@ } }, "node-gyp": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.1.tgz", - "integrity": "sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.1.tgz", + "integrity": "sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==", "requires": { "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", "glob": "^7.1.4", "graceful-fs": "^4.2.6", "make-fetch-happen": "^10.0.3", @@ -53329,18 +52902,10 @@ "imurmurhash": "^0.1.4" } }, - "wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, "yargs": { - "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "requires": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -55656,15 +55221,6 @@ } } }, - "wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, "write-file-atomic": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", @@ -55803,28 +55359,29 @@ "@mongodb-js/atlas-service": { "version": "file:packages/atlas-service", "requires": { - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-telemetry": "^1.1.7", - "@mongodb-js/compass-user-data": "^0.3.7", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/devtools-connect": "^3.2.10", - "@mongodb-js/devtools-proxy-support": "^0.3.9", + "@mongodb-js/connection-info": "^0.9.0", + "@mongodb-js/devtools-connect": "^3.3.1", + "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/oidc-plugin": "^1.1.1", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/mocha": "^9.0.0", "@types/sinon-chai": "^3.2.5", "chai": "^4.3.6", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "depcheck": "^1.4.1", "electron": "^30.5.1", "eslint": "^7.25.0", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.23", "lodash": "^4.17.21", "mocha": "^10.2.0", @@ -55838,27 +55395,6 @@ "typescript": "^5.0.4" }, "dependencies": { - "@mongodb-js/devtools-connect": { - "version": "3.2.10", - "resolved": "https://registry.npmjs.org/@mongodb-js/devtools-connect/-/devtools-connect-3.2.10.tgz", - "integrity": "sha512-x+MhIwJzCKjc5NhGHbns5IGa6yBwj/Nm6uVh0TwmhdKGxBbIP4o0xa4YVRwRajxHHGrxhiKQRNRJsHD6IzVVOw==", - "requires": { - "@mongodb-js/devtools-proxy-support": "^0.3.9", - "@mongodb-js/oidc-http-server-pages": "1.1.3", - "kerberos": "^2.1.0", - "lodash.merge": "^4.6.2", - "mongodb-client-encryption": "^6.1.0", - "mongodb-connection-string-url": "^3.0.0", - "os-dns-native": "^1.2.0", - "resolve-mongodb-srv": "^1.1.1", - "socks": "^2.7.3" - } - }, - "@mongodb-js/oidc-http-server-pages": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@mongodb-js/oidc-http-server-pages/-/oidc-http-server-pages-1.1.3.tgz", - "integrity": "sha512-I704bSQRu/SusTcCV8qqtdFVvAJf1aKZtgGM2VnYjPn2njZd5j7864k/CF9TeeR8+r0At5qqNa3N4MX9YxPnEg==" - }, "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", @@ -55890,49 +55426,49 @@ "@dnd-kit/core": "^6.0.7", "@dnd-kit/sortable": "^7.0.2", "@dnd-kit/utilities": "^3.2.1", - "@mongodb-js/atlas-service": "^0.28.3", - "@mongodb-js/compass-app-stores": "^7.28.0", - "@mongodb-js/compass-collection": "^4.41.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-crud": "^13.42.0", - "@mongodb-js/compass-editor": "^0.30.0", - "@mongodb-js/compass-field-store": "^9.17.0", - "@mongodb-js/compass-generative-ai": "^0.22.3", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-telemetry": "^1.1.7", + "@mongodb-js/atlas-service": "^0.29.0", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-collection": "^4.42.2", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-crud": "^13.43.2", + "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/compass-generative-ai": "^0.23.0", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.23.0", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/explain-plan-helper": "^1.2.3", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/mongodb-constants": "^0.10.0", - "@mongodb-js/my-queries-storage": "^0.16.0", + "@mongodb-js/my-queries-storage": "^0.17.0", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/shell-bson-parser": "^1.1.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/babel__generator": "^7.6.8", "@types/enzyme": "^3.10.14", "@types/lodash": "^4.14.188", "@types/semver": "^7.3.9", - "bson": "^6.7.0", + "bson": "^6.8.0", "chai": "^4.3.6", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "enzyme": "^3.11.0", "eslint": "^7.25.0", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "hadron-document": "^8.6.3", "hadron-type-checker": "^7.2.2", "lodash": "^4.17.21", "mocha": "^10.2.0", - "mongodb": "^6.8.0", - "mongodb-collection-model": "^5.23.3", - "mongodb-data-service": "^22.23.3", - "mongodb-database-model": "^2.23.3", - "mongodb-instance-model": "^12.24.3", + "mongodb": "^6.9.0", + "mongodb-collection-model": "^5.23.4", + "mongodb-data-service": "^22.23.4", + "mongodb-database-model": "^2.23.4", + "mongodb-instance-model": "^12.24.4", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "mongodb-schema": "^12.2.0", @@ -55976,14 +55512,14 @@ "@mongodb-js/compass-app-stores": { "version": "file:packages/compass-app-stores", "requires": { - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/connection-info": "^0.8.0", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/mocha": "^9.0.0", @@ -55992,11 +55528,11 @@ "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "mocha": "^10.2.0", - "mongodb-collection-model": "^5.23.3", - "mongodb-database-model": "^2.23.3", - "mongodb-instance-model": "^12.24.3", + "mongodb-collection-model": "^5.23.4", + "mongodb-database-model": "^2.23.4", + "mongodb-instance-model": "^12.24.4", "mongodb-ns": "^2.4.2", "nyc": "^15.1.0", "prettier": "^2.7.1", @@ -56031,36 +55567,34 @@ "@mongodb-js/compass-collection": { "version": "file:packages/compass-collection", "requires": { - "@mongodb-js/compass-app-stores": "^7.28.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-telemetry": "^1.1.7", - "@mongodb-js/compass-workspaces": "^0.23.0", - "@mongodb-js/connection-info": "^0.8.0", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/mongodb-constants": "^0.10.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", "@types/mocha": "^9.0.0", - "@types/numeral": "^2.0.2", "@types/react": "^17.0.5", "@types/react-dom": "^17.0.10", "@types/sinon-chai": "^3.2.5", "chai": "^4.3.6", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "mocha": "^10.2.0", - "mongodb-collection-model": "^5.23.3", + "mongodb-collection-model": "^5.23.4", "mongodb-ns": "^2.4.2", - "numeral": "^2.0.6", "nyc": "^15.1.0", "prettier": "^2.7.1", "react": "^17.0.2", @@ -56079,11 +55613,6 @@ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true }, - "numeral": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/numeral/-/numeral-2.0.6.tgz", - "integrity": "sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA==" - }, "sinon": { "version": "9.2.4", "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.2.4.tgz", @@ -56149,7 +55678,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@react-aria/interactions": "^3.9.1", "@react-aria/utils": "^3.13.1", @@ -56158,7 +55687,7 @@ "@types/chai-dom": "^0.0.10", "@types/mocha": "^9.0.0", "@types/react": "^17.0.5", - "bson": "^6.7.0", + "bson": "^6.8.0", "chai": "^4.3.4", "eslint": "^7.25.0", "focus-trap-react": "^9.0.2", @@ -56208,13 +55737,13 @@ "@mongodb-js/compass-connection-import-export": { "version": "file:packages/compass-connection-import-export", "requires": { - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/connection-storage": "^0.21.0", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/connection-storage": "^0.22.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", @@ -56222,7 +55751,7 @@ "@types/react": "^17.0.5", "@types/sinon-chai": "^3.2.5", "chai": "^4.3.6", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "depcheck": "^1.4.1", "eslint": "^7.25.0", "gen-esm-wrapper": "^1.1.0", @@ -56263,18 +55792,18 @@ "@mongodb-js/compass-connections": { "version": "file:packages/compass-connections", "requires": { - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-maybe-protect-connection-string": "^0.26.3", - "@mongodb-js/compass-telemetry": "^1.1.7", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.0", + "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/connection-form": "^1.40.0", - "@mongodb-js/connection-info": "^0.8.0", - "@mongodb-js/connection-storage": "^0.21.0", + "@mongodb-js/connection-form": "^1.41.1", + "@mongodb-js/connection-info": "^0.9.0", + "@mongodb-js/connection-storage": "^0.22.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", @@ -56282,18 +55811,18 @@ "@types/react": "^17.0.5", "@types/react-dom": "^17.0.10", "@types/sinon-chai": "^3.2.5", - "bson": "^6.7.0", + "bson": "^6.8.0", "chai": "^4.3.4", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mocha": "^10.2.0", "mongodb-build-info": "^1.7.2", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.3", + "mongodb-data-service": "^22.23.4", "nyc": "^15.1.0", "prettier": "^2.7.1", "react": "^17.0.2", @@ -56332,15 +55861,15 @@ "@mongodb-js/compass-connections-navigation": { "version": "file:packages/compass-connections-navigation", "requires": { - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-workspaces": "^0.23.0", - "@mongodb-js/connection-form": "^1.40.0", - "@mongodb-js/connection-info": "^0.8.0", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/connection-form": "^1.41.1", + "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", @@ -56351,7 +55880,7 @@ "@types/react-window": "^1.8.5", "@types/sinon-chai": "^3.2.5", "chai": "^4.3.4", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "depcheck": "^1.4.1", "eslint": "^7.25.0", "mocha": "^10.2.0", @@ -56393,49 +55922,50 @@ "@mongodb-js/compass-crud": { "version": "file:packages/compass-crud", "requires": { - "@mongodb-js/compass-app-stores": "^7.28.0", - "@mongodb-js/compass-collection": "^4.41.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-editor": "^0.30.0", - "@mongodb-js/compass-field-store": "^9.17.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-query-bar": "^8.43.0", - "@mongodb-js/compass-telemetry": "^1.1.7", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-collection": "^4.42.2", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-query-bar": "^8.44.2", + "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-test-server": "^0.1.22", - "@mongodb-js/compass-workspaces": "^0.23.0", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/explain-plan-helper": "^1.2.3", "@mongodb-js/mocha-config-compass": "^1.4.2", - "@mongodb-js/my-queries-storage": "^0.16.0", + "@mongodb-js/my-queries-storage": "^0.17.0", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/reflux-state-mixin": "^1.0.7", "@mongodb-js/shell-bson-parser": "^1.1.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/enzyme": "^3.10.14", "@types/reflux": "^6.4.3", "ag-grid-community": "^20.2.0", "ag-grid-react": "^20.2.0", - "bson": "^6.7.0", + "bson": "^6.8.0", "chai": "^4.1.2", "chai-as-promised": "^7.1.1", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "depcheck": "^1.4.1", "electron": "^30.5.1", "electron-mocha": "^12.2.0", "enzyme": "^3.11.0", "eslint": "^7.25.0", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "hadron-document": "^8.6.3", "hadron-type-checker": "^7.2.2", "jsondiffpatch": "^0.5.0", "lodash": "^4.17.21", "mocha": "^10.2.0", - "mongodb-data-service": "^22.23.3", - "mongodb-instance-model": "^12.24.3", + "mongodb-data-service": "^22.23.4", + "mongodb-instance-model": "^12.24.4", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", + "numeral": "^2.0.6", "nyc": "^15.1.0", "prop-types": "^15.7.2", "react": "^17.0.2", @@ -56444,37 +55974,44 @@ "semver": "^7.6.2", "sinon": "^8.1.1", "typescript": "^5.0.4" + }, + "dependencies": { + "numeral": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/numeral/-/numeral-2.0.6.tgz", + "integrity": "sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA==" + } } }, "@mongodb-js/compass-databases-collections": { "version": "file:packages/databases-collections", "requires": { - "@mongodb-js/compass-app-stores": "^7.28.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-editor": "^0.30.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-telemetry": "^1.1.7", - "@mongodb-js/compass-workspaces": "^0.23.0", - "@mongodb-js/databases-collections-list": "^1.39.0", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/databases-collections-list": "^1.40.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", - "@mongodb-js/my-queries-storage": "^0.16.0", + "@mongodb-js/my-queries-storage": "^0.17.0", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", - "bson": "^6.7.0", + "bson": "^6.8.0", "chai": "^4.2.0", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "depcheck": "^1.4.1", "enzyme": "^3.11.0", "eslint": "^7.25.0", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mocha": "^10.2.0", - "mongodb-collection-model": "^5.23.3", - "mongodb-database-model": "^2.23.3", - "mongodb-instance-model": "^12.24.3", + "mongodb-collection-model": "^5.23.4", + "mongodb-database-model": "^2.23.4", + "mongodb-instance-model": "^12.24.4", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "nyc": "^15.1.0", @@ -56523,7 +56060,7 @@ "@codemirror/state": "^6.1.4", "@codemirror/view": "^6.7.1", "@lezer/highlight": "^1.2.0", - "@mongodb-js/compass-components": "^1.29.4", + "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/mongodb-constants": "^0.10.0", @@ -56573,23 +56110,23 @@ "@mongodb-js/compass-explain-plan": { "version": "file:packages/compass-explain-plan", "requires": { - "@mongodb-js/compass-collection": "^4.41.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-editor": "^0.30.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-telemetry": "^1.1.7", + "@mongodb-js/compass-collection": "^4.42.2", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/explain-plan-helper": "^1.2.3", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/d3": "^3.5.x", "@types/d3-flextree": "^2.1.0", "@types/d3-hierarchy": "^3.1.2", "chai": "^4.2.0", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "d3": "^3.5.17", "d3-flextree": "^2.1.2", "d3-hierarchy": "^3.1.2", @@ -56597,10 +56134,10 @@ "electron": "^30.5.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mocha": "^10.2.0", - "mongodb": "^6.8.0", + "mongodb": "^6.9.0", "nyc": "^15.1.0", "react": "^17.0.2", "react-dom": "^17.0.2", @@ -56643,24 +56180,24 @@ "@mongodb-js/compass-export-to-language": { "version": "file:packages/compass-export-to-language", "requires": { - "@mongodb-js/compass-collection": "^4.41.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-editor": "^0.30.0", - "@mongodb-js/compass-maybe-protect-connection-string": "^0.26.3", - "@mongodb-js/compass-telemetry": "^1.1.7", + "@mongodb-js/compass-collection": "^4.42.2", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.0", + "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/shell-bson-parser": "^1.1.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "bson-transpilers": "^3.0.9", "chai": "^4.3.6", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "depcheck": "^1.4.1", "eslint": "^7.25.0", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "mocha": "^10.2.0", "mongodb-ns": "^2.4.2", "nyc": "^15.1.0", @@ -56699,12 +56236,12 @@ "@mongodb-js/compass-field-store": { "version": "file:packages/compass-field-store", "requires": { - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-logging": "^1.4.7", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/mocha": "^9.0.0", @@ -56713,7 +56250,7 @@ "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mocha": "^10.2.0", "mongodb-schema": "^12.2.0", @@ -56753,11 +56290,11 @@ "@mongodb-js/compass-find-in-page": { "version": "file:packages/compass-find-in-page", "requires": { - "@mongodb-js/compass-components": "^1.29.4", + "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", @@ -56770,7 +56307,7 @@ "electron": "^30.5.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.23", "mocha": "^10.2.0", "nyc": "^15.1.0", @@ -56812,29 +56349,29 @@ "@mongodb-js/compass-generative-ai": { "version": "file:packages/compass-generative-ai", "requires": { - "@mongodb-js/atlas-service": "^0.28.3", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-intercom": "^0.12.3", - "@mongodb-js/compass-logging": "^1.4.7", + "@mongodb-js/atlas-service": "^0.29.0", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-intercom": "^0.13.0", + "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", "@types/mocha": "^9.0.0", "@types/react": "^17.0.5", "@types/sinon-chai": "^3.2.5", - "bson": "^6.7.0", + "bson": "^6.8.0", "chai": "^4.3.6", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "mocha": "^10.2.0", - "mongodb": "^6.8.0", + "mongodb": "^6.9.0", "mongodb-schema": "^12.2.0", "nyc": "^15.1.0", "p-queue": "^7.4.1", @@ -56889,22 +56426,139 @@ } } }, + "@mongodb-js/compass-global-writes": { + "version": "file:packages/compass-global-writes", + "requires": { + "@mongodb-js/atlas-service": "^0.29.0", + "@mongodb-js/compass-collection": "^4.42.2", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/eslint-config-compass": "^1.1.7", + "@mongodb-js/mocha-config-compass": "^1.4.2", + "@mongodb-js/prettier-config-compass": "^1.0.2", + "@mongodb-js/testing-library-compass": "^1.0.2", + "@mongodb-js/tsconfig-compass": "^1.0.5", + "@types/chai": "^4.2.21", + "@types/chai-dom": "^0.0.10", + "@types/mocha": "^9.0.0", + "@types/react": "^17.0.5", + "@types/react-dom": "^17.0.10", + "@types/sinon-chai": "^3.2.5", + "chai": "^4.3.6", + "depcheck": "^1.4.1", + "eslint": "^7.25.0", + "hadron-app-registry": "^9.2.7", + "lodash": "^4.17.21", + "mocha": "^10.2.0", + "mongodb-ns": "^2.4.2", + "nyc": "^15.1.0", + "prettier": "^2.7.1", + "react": "^17.0.2", + "react-redux": "^8.1.3", + "redux": "^4.2.1", + "redux-thunk": "^2.4.2", + "sinon": "^17.0.1", + "typescript": "^5.0.4", + "xvfb-maybe": "^0.2.1" + }, + "dependencies": { + "@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.3.1.tgz", + "integrity": "sha512-EVJO7nW5M/F5Tur0Rf2z/QoMo+1Ia963RiMtapiQrEWvY0iBUvADo8Beegwjpnle5BHkyHuoxSTW3jF43H1XRA==", + "dev": true, + "requires": { + "@sinonjs/commons": "^3.0.1" + } + }, + "@sinonjs/samsam": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.2.tgz", + "integrity": "sha512-v46t/fwnhejRSFTGqbpn9u+LQ9xJDse10gNnPgAcxgdoCDMXj/G2asWAC/8Qs+BAZDicX+MNZouXT1A7c83kVw==", + "dev": true, + "requires": { + "@sinonjs/commons": "^3.0.1", + "lodash.get": "^4.4.2", + "type-detect": "^4.1.0" + }, + "dependencies": { + "type-detect": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", + "dev": true + } + } + }, + "just-extend": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-6.2.0.tgz", + "integrity": "sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==", + "dev": true + }, + "nise": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.9.tgz", + "integrity": "sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==", + "dev": true, + "requires": { + "@sinonjs/commons": "^3.0.0", + "@sinonjs/fake-timers": "^11.2.2", + "@sinonjs/text-encoding": "^0.7.2", + "just-extend": "^6.2.0", + "path-to-regexp": "^6.2.1" + } + }, + "path-to-regexp": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", + "dev": true + }, + "sinon": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-17.0.1.tgz", + "integrity": "sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==", + "dev": true, + "requires": { + "@sinonjs/commons": "^3.0.0", + "@sinonjs/fake-timers": "^11.2.2", + "@sinonjs/samsam": "^8.0.0", + "diff": "^5.1.0", + "nise": "^5.1.5", + "supports-color": "^7.2.0" + } + } + } + }, "@mongodb-js/compass-import-export": { "version": "file:packages/compass-import-export", "requires": { "@electron/remote": "^2.1.2", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-editor": "^0.30.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-telemetry": "^1.1.7", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-test-server": "^0.1.22", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.23.0", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-as-promised": "^7.1.4", @@ -56916,22 +56570,22 @@ "@types/sinon-chai": "^3.2.5", "@types/stream-json": "^1.7.3", "@types/temp": "^0.9.1", - "bson": "^6.7.0", + "bson": "^6.8.0", "chai": "^4.3.6", "chai-as-promised": "^7.1.1", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "debug": "^4.3.4", "depcheck": "^1.4.1", "electron": "^30.5.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "hadron-document": "^8.6.3", "hadron-ipc": "^3.2.23", "lodash": "^4.17.21", "mocha": "^10.2.0", - "mongodb": "^6.8.0", - "mongodb-data-service": "^22.23.3", + "mongodb": "^6.9.0", + "mongodb-data-service": "^22.23.4", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "mongodb-schema": "^12.2.0", @@ -56977,35 +56631,38 @@ "@mongodb-js/compass-indexes": { "version": "file:packages/compass-indexes", "requires": { - "@mongodb-js/compass-app-stores": "^7.28.0", - "@mongodb-js/compass-collection": "^4.41.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-editor": "^0.30.0", - "@mongodb-js/compass-field-store": "^9.17.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-telemetry": "^1.1.7", - "@mongodb-js/compass-workspaces": "^0.23.0", - "@mongodb-js/connection-storage": "^0.21.0", + "@mongodb-js/atlas-service": "^0.29.0", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/connection-storage": "^0.22.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/mongodb-constants": "^0.10.0", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/shell-bson-parser": "^1.1.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", - "bson": "^6.7.0", + "@types/numeral": "^2.0.5", + "bson": "^6.8.0", "chai": "^4.2.0", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "depcheck": "^1.4.1", "electron": "^30.5.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mocha": "^10.2.0", - "mongodb": "^6.8.0", - "mongodb-data-service": "^22.23.3", + "mongodb": "^6.9.0", + "mongodb-collection-model": "^5.23.4", + "mongodb-data-service": "^22.23.4", + "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "numeral": "^2.0.6", "nyc": "^15.1.0", @@ -57052,7 +56709,7 @@ "@mongodb-js/compass-intercom": { "version": "file:packages/compass-intercom", "requires": { - "@mongodb-js/compass-logging": "^1.4.7", + "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -57061,7 +56718,7 @@ "@types/mocha": "^9.0.0", "@types/sinon-chai": "^3.2.5", "chai": "^4.3.6", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "depcheck": "^1.4.1", "eslint": "^7.25.0", "gen-esm-wrapper": "^1.1.0", @@ -57167,7 +56824,7 @@ "debug": "^4.3.4", "depcheck": "^1.4.1", "eslint": "^7.25.0", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.23", "is-electron-renderer": "^2.0.1", "mocha": "^10.2.0", @@ -57214,7 +56871,7 @@ "@types/mocha": "^9.0.0", "@types/sinon-chai": "^3.2.5", "chai": "^4.3.6", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "depcheck": "^1.4.1", "eslint": "^7.25.0", "gen-esm-wrapper": "^1.1.0", @@ -57253,35 +56910,35 @@ "@mongodb-js/compass-query-bar": { "version": "file:packages/compass-query-bar", "requires": { - "@mongodb-js/atlas-service": "^0.28.3", - "@mongodb-js/compass-app-stores": "^7.28.0", - "@mongodb-js/compass-collection": "^4.41.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-editor": "^0.30.0", - "@mongodb-js/compass-field-store": "^9.17.0", - "@mongodb-js/compass-generative-ai": "^0.22.3", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-telemetry": "^1.1.7", + "@mongodb-js/atlas-service": "^0.29.0", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-collection": "^4.42.2", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/compass-generative-ai": "^0.23.0", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/mongodb-constants": "^0.10.0", - "@mongodb-js/my-queries-storage": "^0.16.0", + "@mongodb-js/my-queries-storage": "^0.17.0", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", - "bson": "^6.7.0", + "bson": "^6.8.0", "chai": "^4.2.0", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "depcheck": "^1.4.1", "electron": "^30.5.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mocha": "^10.2.0", - "mongodb": "^6.8.0", - "mongodb-instance-model": "^12.24.3", + "mongodb": "^6.9.0", + "mongodb-instance-model": "^12.24.4", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "mongodb-query-util": "^2.2.8", @@ -57322,19 +56979,19 @@ "@mongodb-js/compass-saved-aggregations-queries": { "version": "file:packages/compass-saved-aggregations-queries", "requires": { - "@mongodb-js/compass-app-stores": "^7.28.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-telemetry": "^1.1.7", - "@mongodb-js/compass-workspaces": "^0.23.0", - "@mongodb-js/connection-form": "^1.40.0", - "@mongodb-js/connection-info": "^0.8.0", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/connection-form": "^1.41.1", + "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", - "@mongodb-js/my-queries-storage": "^0.16.0", + "@mongodb-js/my-queries-storage": "^0.17.0", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", @@ -57342,14 +56999,14 @@ "@types/react": "^17.0.5", "@types/react-dom": "^17.0.10", "@types/sinon-chai": "^3.2.5", - "bson": "^6.7.0", + "bson": "^6.8.0", "chai": "^4.3.4", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "fuse.js": "^6.5.3", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "mocha": "^10.2.0", "mongodb-ns": "^2.4.2", "nyc": "^15.1.0", @@ -57391,20 +57048,20 @@ "@mongodb-js/compass-schema": { "version": "file:packages/compass-schema", "requires": { - "@mongodb-js/compass-collection": "^4.41.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-field-store": "^9.17.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-query-bar": "^8.43.0", - "@mongodb-js/compass-telemetry": "^1.1.7", - "@mongodb-js/connection-storage": "^0.21.0", + "@mongodb-js/compass-collection": "^4.42.2", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-query-bar": "^8.44.2", + "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/connection-storage": "^0.22.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", - "@mongodb-js/my-queries-storage": "^0.16.0", + "@mongodb-js/my-queries-storage": "^0.17.0", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/reflux-state-mixin": "^1.0.7", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/leaflet": "^1.9.8", @@ -57412,14 +57069,14 @@ "@types/mocha": "^9.0.0", "@types/react": "^17.0.5", "@types/react-dom": "^17.0.10", - "bson": "^6.7.0", + "bson": "^6.8.0", "chai": "^4.3.4", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "d3": "^3.5.17", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "hadron-document": "^8.6.3", "leaflet": "^1.5.1", "leaflet-defaulticon-compatibility": "^0.1.1", @@ -57427,7 +57084,7 @@ "lodash": "^4.17.21", "mocha": "^10.2.0", "moment": "^2.29.4", - "mongodb": "^6.8.0", + "mongodb": "^6.9.0", "mongodb-query-util": "^2.2.8", "mongodb-schema": "^12.2.0", "numeral": "^1.5.6", @@ -57468,35 +57125,35 @@ "@mongodb-js/compass-schema-validation": { "version": "file:packages/compass-schema-validation", "requires": { - "@mongodb-js/compass-app-stores": "^7.28.0", - "@mongodb-js/compass-collection": "^4.41.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-crud": "^13.42.0", - "@mongodb-js/compass-editor": "^0.30.0", - "@mongodb-js/compass-field-store": "^9.17.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-telemetry": "^1.1.7", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-collection": "^4.42.2", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-crud": "^13.43.2", + "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.0", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/enzyme": "^3.10.14", - "bson": "^6.7.0", + "bson": "^6.8.0", "chai": "^4.2.0", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "depcheck": "^1.4.1", "electron": "^30.5.1", "electron-mocha": "^12.2.0", "enzyme": "^3.11.0", "eslint": "^7.25.0", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.23", "javascript-stringify": "^2.0.1", "lodash": "^4.17.21", "mocha": "^10.2.0", - "mongodb-instance-model": "^12.24.3", + "mongodb-instance-model": "^12.24.4", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "nyc": "^15.1.0", @@ -57857,15 +57514,15 @@ "@mongodb-js/compass-serverstats": { "version": "file:packages/compass-serverstats", "requires": { - "@mongodb-js/compass-app-stores": "^7.28.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-telemetry": "^1.1.7", - "@mongodb-js/compass-workspaces": "^0.23.0", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.0", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/d3": "^3.5.x", "chai": "^4.1.2", @@ -57876,7 +57533,7 @@ "electron-mocha": "^12.2.0", "enzyme": "^3.11.0", "eslint": "^7.25.0", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mocha": "^10.2.0", "mongodb-ns": "^2.4.2", @@ -57904,14 +57561,14 @@ "@mongodb-js/compass-settings": { "version": "file:packages/compass-settings", "requires": { - "@mongodb-js/atlas-service": "^0.28.3", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-generative-ai": "^0.22.3", - "@mongodb-js/compass-logging": "^1.4.7", + "@mongodb-js/atlas-service": "^0.29.0", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-generative-ai": "^0.23.0", + "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", @@ -57920,11 +57577,11 @@ "@types/react-dom": "^17.0.10", "@types/sinon-chai": "^3.2.5", "chai": "^4.3.6", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.23", "mocha": "^10.2.0", "nyc": "^15.1.0", @@ -57966,31 +57623,31 @@ "@mongodb-js/compass-shell": { "version": "file:packages/compass-shell", "requires": { - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-telemetry": "^1.1.7", - "@mongodb-js/compass-user-data": "^0.3.7", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.23.0", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", - "@mongosh/browser-repl": "^2.3.1", - "@mongosh/logging": "^2.3.1", - "@mongosh/node-runtime-worker-thread": "^2.3.1", + "@mongosh/browser-repl": "^2.3.2", + "@mongosh/logging": "^2.3.2", + "@mongosh/node-runtime-worker-thread": "^2.3.2", "@types/enzyme": "^3.10.14", - "bson": "^6.7.0", + "bson": "^6.8.0", "chai": "^4.2.0", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "depcheck": "^1.4.1", "electron": "^30.5.1", "electron-mocha": "^12.2.0", "enzyme": "^3.11.0", "eslint": "^7.25.0", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "mocha": "^10.2.0", "nyc": "^15.1.0", "react": "^17.0.2", @@ -58002,186 +57659,12 @@ "typescript": "^5.0.4" }, "dependencies": { - "@mongodb-js/devtools-connect": { - "version": "3.2.10", - "resolved": "https://registry.npmjs.org/@mongodb-js/devtools-connect/-/devtools-connect-3.2.10.tgz", - "integrity": "sha512-x+MhIwJzCKjc5NhGHbns5IGa6yBwj/Nm6uVh0TwmhdKGxBbIP4o0xa4YVRwRajxHHGrxhiKQRNRJsHD6IzVVOw==", - "requires": { - "@mongodb-js/devtools-proxy-support": "^0.3.9", - "@mongodb-js/oidc-http-server-pages": "1.1.3", - "kerberos": "^2.1.0", - "lodash.merge": "^4.6.2", - "mongodb-client-encryption": "^6.1.0", - "mongodb-connection-string-url": "^3.0.0", - "os-dns-native": "^1.2.0", - "resolve-mongodb-srv": "^1.1.1", - "socks": "^2.7.3" - } - }, - "@mongodb-js/oidc-http-server-pages": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@mongodb-js/oidc-http-server-pages/-/oidc-http-server-pages-1.1.3.tgz", - "integrity": "sha512-I704bSQRu/SusTcCV8qqtdFVvAJf1aKZtgGM2VnYjPn2njZd5j7864k/CF9TeeR8+r0At5qqNa3N4MX9YxPnEg==" - }, - "@mongosh/arg-parser": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@mongosh/arg-parser/-/arg-parser-2.3.1.tgz", - "integrity": "sha512-s0tzK+vPhJRsZZnb1r4V8lv97gpUFOXudHgJ+O3orCkkAUN0JR3IDWPSRY3eECNTlW96ZErGMqRhyPsCFW733g==", - "requires": { - "@mongosh/errors": "2.3.1", - "@mongosh/i18n": "2.3.1", - "mongodb-connection-string-url": "^3.0.1" - } - }, - "@mongosh/async-rewriter2": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@mongosh/async-rewriter2/-/async-rewriter2-2.3.1.tgz", - "integrity": "sha512-4tCMYMmhlet4/TYowsGPaoXhXQd5C6jykPnSOMZZrluZeDqRqWJfozW7161m+8Xe7IMZf4KyFzk8CAVewJfzLw==", - "requires": { - "@babel/core": "^7.22.8", - "@babel/plugin-transform-destructuring": "^7.22.5", - "@babel/plugin-transform-parameters": "^7.22.5", - "@babel/plugin-transform-shorthand-properties": "^7.22.5", - "@babel/types": "^7.22.5" - } - }, - "@mongosh/autocomplete": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@mongosh/autocomplete/-/autocomplete-2.3.1.tgz", - "integrity": "sha512-rTZ1pKOKahs62NLTiSnWKp4/34VWnVsSG+rvpup2Xf/XC8/uFuFZo5Moj6eIgEF49PSyfICA+agmg47ldeQelw==", - "requires": { - "@mongodb-js/mongodb-constants": "^0.10.1", - "@mongosh/shell-api": "2.3.1", - "semver": "^7.5.4" - } - }, - "@mongosh/browser-repl": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@mongosh/browser-repl/-/browser-repl-2.3.1.tgz", - "integrity": "sha512-GYBJbfvLf2uxpLkiZdxYO7sQKwK9n+toRtl7WNahHK/e3VQQRcxwJqUp392y5MxyX3E/J4J+7Uy4YoTTiRKDtg==", - "requires": { - "@mongosh/browser-runtime-core": "2.3.1", - "@mongosh/errors": "2.3.1", - "@mongosh/history": "2.3.1", - "@mongosh/i18n": "2.3.1", - "@mongosh/node-runtime-worker-thread": "2.3.1", - "@mongosh/service-provider-core": "2.3.1", - "numeral": "^2.0.6", - "text-table": "^0.2.0" - } - }, - "@mongosh/browser-runtime-core": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@mongosh/browser-runtime-core/-/browser-runtime-core-2.3.1.tgz", - "integrity": "sha512-pFV3g7qIY8YRLqH0GPc5YJSXx2U36Jf475nuVGsqmGdHVwmXRRCbTBa+0Bel/divc9YDD9/GNLMGGIVjRUfl9A==", - "requires": { - "@mongosh/autocomplete": "2.3.1", - "@mongosh/service-provider-core": "2.3.1", - "@mongosh/shell-api": "2.3.1", - "@mongosh/shell-evaluator": "2.3.1" - } - }, - "@mongosh/errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@mongosh/errors/-/errors-2.3.1.tgz", - "integrity": "sha512-opMEluGMEABO4v72nOwJTPeaP2adNduzh7oFGLBtfencOw0em38g93XnzL5iwH/Bjp2BVAEiMtcHYZeMRus7FQ==" - }, - "@mongosh/history": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@mongosh/history/-/history-2.3.1.tgz", - "integrity": "sha512-hjKcqQy0PtYHSl5ZxkiCKi4OltHm0ZQdpJ05a5R26fEvNue+0tcv1TfnXbVxAk9K9Q2vB06SIRI0rnJrTtG+yQ==", - "requires": { - "mongodb-connection-string-url": "^3.0.1", - "mongodb-redact": "^1.1.2" - } - }, - "@mongosh/i18n": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@mongosh/i18n/-/i18n-2.3.1.tgz", - "integrity": "sha512-qwYjGJKV8mQl/dqL21aIo3z1wdoE80JBiGGhJgyc2ofhLTvdktoav0FXKWOPrpvSR3K29L98D0H8V7uhisfdRQ==", - "requires": { - "@mongosh/errors": "2.3.1" - } - }, - "@mongosh/logging": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@mongosh/logging/-/logging-2.3.1.tgz", - "integrity": "sha512-DDe4YNZJfKI9guyzCTdcvEpn0E20v94wnRpfiDfp9y05WUvJsDPBWWmhyGLYj4c1qrDctj8BiGt9mbb/7tY6Yw==", - "requires": { - "@mongodb-js/devtools-connect": "^3.2.10", - "@mongosh/errors": "2.3.1", - "@mongosh/history": "2.3.1", - "@mongosh/types": "2.3.1", - "mongodb-log-writer": "^1.4.2", - "mongodb-redact": "^1.1.2" - } - }, - "@mongosh/node-runtime-worker-thread": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@mongosh/node-runtime-worker-thread/-/node-runtime-worker-thread-2.3.1.tgz", - "integrity": "sha512-RmWQwQHdPEClthSBlLx3pLuQcrba9mGUnXpRIlT56Ddv7KyDEORM80yR/1SfUuxyPJ0BwtOcXIqAYf/m/KF85Q==", - "requires": { - "interruptor": "^1.0.1", - "system-ca": "^2.0.1", - "web-worker": "^1.3.0" - } - }, - "@mongosh/service-provider-core": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@mongosh/service-provider-core/-/service-provider-core-2.3.1.tgz", - "integrity": "sha512-+UusnZjXqM2JWdva+11IX4fRW0+sqJS5FhpQ7UHreQyGzdDcgIIqFe1fB4CMfzaMdjQ7RvUqIMM5bV81xDZ9vA==", - "requires": { - "@aws-sdk/credential-providers": "^3.525.0", - "@mongosh/errors": "2.3.1", - "bson": "^6.7.0", - "mongodb": "^6.8.0", - "mongodb-build-info": "^1.7.2", - "mongodb-client-encryption": "^6.1.0", - "mongodb-connection-string-url": "^3.0.1" - } - }, - "@mongosh/shell-api": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@mongosh/shell-api/-/shell-api-2.3.1.tgz", - "integrity": "sha512-ou6LIbpqlzsKVFiBQJ9Aqt5OxS5NuLb5y2cKuTPvv0wEKrPjg/XAHVyo+Bw09fa4ZYPDk705RehgtfdTpKnLfQ==", - "requires": { - "@mongosh/arg-parser": "2.3.1", - "@mongosh/errors": "2.3.1", - "@mongosh/history": "2.3.1", - "@mongosh/i18n": "2.3.1", - "@mongosh/service-provider-core": "2.3.1", - "mongodb-redact": "^1.1.2" - } - }, - "@mongosh/shell-evaluator": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@mongosh/shell-evaluator/-/shell-evaluator-2.3.1.tgz", - "integrity": "sha512-MWGL8600o4d1/ngBOQXrorEmYBZebDJeF3g7CM0QmZAuHzJ9HY/67bm/xDKUn/9H0K3tVJSFAWYOXk99tQqTHQ==", - "requires": { - "@mongosh/async-rewriter2": "2.3.1", - "@mongosh/history": "2.3.1", - "@mongosh/shell-api": "2.3.1" - } - }, - "@mongosh/types": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@mongosh/types/-/types-2.3.1.tgz", - "integrity": "sha512-fpMJ4yHhilTIWe3jgWoE+Eq0q9ij40HMGRfCJoZE+aOCslBkggqsia5Fh13G8JCFKangkWnZ5UMMAxSg6VBJgQ==", - "requires": { - "@mongodb-js/devtools-connect": "^3.2.10" - } - }, "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true }, - "numeral": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/numeral/-/numeral-2.0.6.tgz", - "integrity": "sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA==" - }, "sinon": { "version": "9.2.4", "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.2.4.tgz", @@ -58201,21 +57684,21 @@ "@mongodb-js/compass-sidebar": { "version": "file:packages/compass-sidebar", "requires": { - "@mongodb-js/compass-app-stores": "^7.28.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connection-import-export": "^0.38.0", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-connections-navigation": "^1.41.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-maybe-protect-connection-string": "^0.26.3", - "@mongodb-js/compass-telemetry": "^1.1.7", - "@mongodb-js/compass-workspaces": "^0.23.0", - "@mongodb-js/connection-form": "^1.40.0", - "@mongodb-js/connection-info": "^0.8.0", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connection-import-export": "^0.39.1", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-connections-navigation": "^1.42.2", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.0", + "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/connection-form": "^1.41.1", + "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", @@ -58224,16 +57707,16 @@ "@types/react-dom": "^17.0.10", "@types/sinon-chai": "^3.2.5", "chai": "^4.3.6", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mocha": "^10.2.0", - "mongodb": "^6.8.0", - "mongodb-data-service": "^22.23.3", - "mongodb-instance-model": "^12.24.3", + "mongodb": "^6.9.0", + "mongodb-data-service": "^22.23.4", + "mongodb-instance-model": "^12.24.4", "mongodb-ns": "^2.4.2", "nyc": "^15.1.0", "prettier": "^2.7.1", @@ -58274,7 +57757,7 @@ "@mongodb-js/compass-telemetry": { "version": "file:packages/compass-telemetry", "requires": { - "@mongodb-js/compass-logging": "^1.4.7", + "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -58286,7 +57769,7 @@ "depcheck": "^1.4.1", "eslint": "^7.25.0", "gen-esm-wrapper": "^1.1.0", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.23", "mocha": "^10.2.0", "nyc": "^15.1.0", @@ -58422,7 +57905,7 @@ "@mongodb-js/compass-user-data": { "version": "file:packages/compass-user-data", "requires": { - "@mongodb-js/compass-logging": "^1.4.7", + "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-utils": "^0.6.12", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -58531,35 +58014,36 @@ "@mongodb-js/compass-web": { "version": "file:packages/compass-web", "requires": { - "@mongodb-js/atlas-service": "^0.28.3", - "@mongodb-js/compass-aggregations": "^9.44.0", - "@mongodb-js/compass-app-stores": "^7.28.0", - "@mongodb-js/compass-collection": "^4.41.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-crud": "^13.42.0", - "@mongodb-js/compass-databases-collections": "^1.41.0", - "@mongodb-js/compass-explain-plan": "^6.42.0", - "@mongodb-js/compass-export-to-language": "^9.18.0", - "@mongodb-js/compass-field-store": "^9.17.0", - "@mongodb-js/compass-generative-ai": "^0.22.3", - "@mongodb-js/compass-indexes": "^5.41.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-query-bar": "^8.43.0", - "@mongodb-js/compass-schema": "^6.43.0", - "@mongodb-js/compass-schema-validation": "^6.42.0", - "@mongodb-js/compass-sidebar": "^5.42.0", - "@mongodb-js/compass-telemetry": "^1.1.7", - "@mongodb-js/compass-welcome": "^0.40.0", - "@mongodb-js/compass-workspaces": "^0.23.0", - "@mongodb-js/connection-storage": "^0.21.0", - "@mongodb-js/devtools-proxy-support": "^0.3.9", + "@mongodb-js/atlas-service": "^0.29.0", + "@mongodb-js/compass-aggregations": "^9.45.2", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-collection": "^4.42.2", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-crud": "^13.43.2", + "@mongodb-js/compass-databases-collections": "^1.42.2", + "@mongodb-js/compass-explain-plan": "^6.43.2", + "@mongodb-js/compass-export-to-language": "^9.19.2", + "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/compass-generative-ai": "^0.23.0", + "@mongodb-js/compass-global-writes": "^1.2.1", + "@mongodb-js/compass-indexes": "^5.42.2", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-query-bar": "^8.44.2", + "@mongodb-js/compass-schema": "^6.44.2", + "@mongodb-js/compass-schema-validation": "^6.43.2", + "@mongodb-js/compass-sidebar": "^5.43.2", + "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-welcome": "^0.41.2", + "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/connection-storage": "^0.22.0", + "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", - "@mongodb-js/webpack-config-compass": "^1.4.2", + "@mongodb-js/webpack-config-compass": "^1.4.4", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", "@types/express-http-proxy": "^1.6.6", @@ -58571,7 +58055,7 @@ "bson": "^6.2.0", "buffer": "^6.0.3", "chai": "^4.3.6", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "crypto-browserify": "^3.12.0", "debug": "^4.3.4", "depcheck": "^1.4.1", @@ -58579,15 +58063,15 @@ "electron": "^30.5.1", "eslint": "^7.25.0", "events": "^3.3.0", - "express": "^4.20.0", + "express": "^4.21.1", "express-http-proxy": "^2.0.0", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "is-ip": "^5.0.1", "lodash": "^4.17.21", "mocha": "^10.2.0", - "mongodb": "^6.8.0", + "mongodb": "^6.9.0", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.3", + "mongodb-data-service": "^22.23.4", "mongodb-ns": "^2.4.2", "nyc": "^15.1.0", "os-browserify": "^0.3.0", @@ -58653,12 +58137,27 @@ "ieee754": "^1.2.1" } }, + "debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + }, "events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, "nise": { "version": "5.1.5", "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.5.tgz", @@ -58748,15 +58247,15 @@ "@mongodb-js/compass-welcome": { "version": "file:packages/compass-welcome", "requires": { - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-telemetry": "^1.1.7", - "@mongodb-js/compass-workspaces": "^0.23.0", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", @@ -58764,11 +58263,11 @@ "@types/react": "^17.0.5", "@types/sinon-chai": "^3.2.5", "chai": "^4.3.6", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "mocha": "^10.2.0", "nyc": "^15.1.0", "prettier": "^2.7.1", @@ -58807,14 +58306,14 @@ "@mongodb-js/compass-workspaces": { "version": "file:packages/compass-workspaces", "requires": { - "@mongodb-js/compass-app-stores": "^7.28.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-logging": "^1.4.7", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", @@ -58822,17 +58321,17 @@ "@types/react": "^17.0.5", "@types/react-dom": "^17.0.10", "@types/sinon-chai": "^3.2.5", - "bson": "^6.7.0", + "bson": "^6.8.0", "chai": "^4.3.6", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mocha": "^10.2.0", - "mongodb-collection-model": "^5.23.3", - "mongodb-database-model": "^2.23.3", + "mongodb-collection-model": "^5.23.4", + "mongodb-database-model": "^2.23.4", "mongodb-ns": "^2.4.2", "nyc": "^15.1.0", "prettier": "^2.7.1", @@ -58949,32 +58448,31 @@ "@mongodb-js/connection-form": { "version": "file:packages/connection-form", "requires": { - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-editor": "^0.30.0", - "@mongodb-js/connection-info": "^0.8.0", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/shell-bson-parser": "^1.1.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", "@types/mocha": "^9.0.0", "@types/react": "^17.0.5", "@types/sinon-chai": "^3.2.5", - "bson": "^6.7.0", + "bson": "^6.8.0", "chai": "^4.3.4", - "compass-preferences-model": "^2.28.3", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "lodash": "^4.17.21", "mocha": "^10.2.0", - "mongodb": "^6.8.0", + "mongodb": "^6.9.0", "mongodb-build-info": "^1.7.2", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.3", + "mongodb-data-service": "^22.23.4", "mongodb-query-parser": "^4.2.3", "nyc": "^15.1.0", "prettier": "^2.7.1", @@ -59017,16 +58515,16 @@ "@types/chai": "^4.2.21", "@types/mocha": "^9.0.0", "@types/sinon-chai": "^3.2.5", - "bson": "^6.7.0", + "bson": "^6.8.0", "chai": "^4.3.6", "depcheck": "^1.4.1", "eslint": "^7.25.0", "gen-esm-wrapper": "^1.1.0", "lodash": "^4.17.21", "mocha": "^10.2.0", - "mongodb": "^6.8.0", + "mongodb": "^6.9.0", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.3", + "mongodb-data-service": "^22.23.4", "nyc": "^15.1.0", "prettier": "^2.7.1", "sinon": "^17.0.1", @@ -59136,11 +58634,11 @@ "@mongodb-js/connection-storage": { "version": "file:packages/connection-storage", "requires": { - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-telemetry": "^1.1.7", - "@mongodb-js/compass-user-data": "^0.3.7", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/connection-info": "^0.8.0", + "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -59148,13 +58646,13 @@ "@types/chai": "^4.2.21", "@types/mocha": "^9.0.0", "@types/sinon-chai": "^3.2.5", - "bson": "^6.7.0", + "bson": "^6.8.0", "chai": "^4.3.6", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "depcheck": "^1.4.1", "electron": "^30.5.1", "eslint": "^7.25.0", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.23", "keytar": "^7.9.0", "lodash": "^4.17.21", @@ -59192,15 +58690,15 @@ "@mongodb-js/databases-collections-list": { "version": "file:packages/databases-collections-list", "requires": { - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-telemetry": "^1.1.7", - "@mongodb-js/compass-workspaces": "^0.23.0", - "@mongodb-js/connection-info": "^0.8.0", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", @@ -59208,7 +58706,7 @@ "@types/react": "^17.0.5", "@types/sinon-chai": "^3.2.5", "chai": "^4.3.4", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "depcheck": "^1.4.1", "eslint": "^7.25.0", "mocha": "^10.2.0", @@ -59244,15 +58742,31 @@ } } }, + "@mongodb-js/devtools-connect": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@mongodb-js/devtools-connect/-/devtools-connect-3.3.1.tgz", + "integrity": "sha512-z9TJtUbDakYBKEB+/7fmBjFRcMCtiK/fIi04BKBs8cv71KmbS+PU76y6/7rE/TQucQ7/mPEhWs7+Z9TuKHR20A==", + "requires": { + "@mongodb-js/devtools-proxy-support": "^0.4.1", + "@mongodb-js/oidc-http-server-pages": "1.1.3", + "kerberos": "^2.1.0", + "lodash.merge": "^4.6.2", + "mongodb-client-encryption": "^6.1.0", + "mongodb-connection-string-url": "^3.0.0", + "os-dns-native": "^1.2.0", + "resolve-mongodb-srv": "^1.1.1", + "socks": "^2.7.3" + } + }, "@mongodb-js/devtools-github-repo": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/@mongodb-js/devtools-github-repo/-/devtools-github-repo-1.4.1.tgz", "integrity": "sha512-wpVbM7MTft2mFc66ZOulAW4TnyK9fzYL/dqhcUk7DMcdwO8TcR1VZPkh55fRugSXgkfCUcxfZmqmuSSAudLGjA==" }, "@mongodb-js/devtools-proxy-support": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@mongodb-js/devtools-proxy-support/-/devtools-proxy-support-0.3.9.tgz", - "integrity": "sha512-y6EpBQuOYMSbnc3y7lWG3ThFWC7iv6HHZn8+7tRsr9diSMwHRoxM/GNrz2yeldT7xstFdGL4zmmSK/3JcSz+8g==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@mongodb-js/devtools-proxy-support/-/devtools-proxy-support-0.4.1.tgz", + "integrity": "sha512-BGr8dxCeik5LLmPJUcT7c1Sj8I/u0+14+GwS5OPgVy5KlsTJRcGtANjrC7b8IZewpKVLqyJkK+XcdYpa5+b3KQ==", "requires": { "@mongodb-js/socksv5": "^0.0.10", "agent-base": "^7.1.1", @@ -59264,7 +58778,7 @@ "pac-proxy-agent": "^7.0.2", "socks-proxy-agent": "^8.0.4", "ssh2": "^1.15.0", - "system-ca": "^2.0.0" + "system-ca": "^2.0.1" }, "dependencies": { "data-uri-to-buffer": { @@ -59813,8 +59327,8 @@ "@mongodb-js/my-queries-storage": { "version": "file:packages/my-queries-storage", "requires": { - "@mongodb-js/compass-editor": "^0.30.0", - "@mongodb-js/compass-user-data": "^0.3.7", + "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -59822,12 +59336,12 @@ "@types/chai": "^4.2.21", "@types/mocha": "^9.0.0", "@types/sinon-chai": "^3.2.5", - "bson": "^6.7.0", + "bson": "^6.8.0", "chai": "^4.3.6", "depcheck": "^1.4.1", "eslint": "^7.25.0", "gen-esm-wrapper": "^1.1.0", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "mocha": "^10.2.0", "nyc": "^15.1.0", "prettier": "^2.7.1", @@ -59858,6 +59372,11 @@ } } }, + "@mongodb-js/oidc-http-server-pages": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@mongodb-js/oidc-http-server-pages/-/oidc-http-server-pages-1.1.3.tgz", + "integrity": "sha512-I704bSQRu/SusTcCV8qqtdFVvAJf1aKZtgGM2VnYjPn2njZd5j7864k/CF9TeeR8+r0At5qqNa3N4MX9YxPnEg==" + }, "@mongodb-js/oidc-mock-provider": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/@mongodb-js/oidc-mock-provider/-/oidc-mock-provider-0.9.3.tgz", @@ -60320,7 +59839,7 @@ "@types/webpack-bundle-analyzer": "^4.7.0", "babel-loader": "^8.2.5", "babel-plugin-istanbul": "^5.2.0", - "browserslist": "^4.23.3", + "browserslist": "^4.24.0", "chalk": "^4.1.2", "cli-progress": "^3.9.1", "core-js": "^3.17.3", @@ -60573,6 +60092,161 @@ } } }, + "@mongosh/arg-parser": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@mongosh/arg-parser/-/arg-parser-2.3.2.tgz", + "integrity": "sha512-izy830Jvg1HxP7LnE68dhKvrhIALOCBf/GDI8egJZNfRcvR1VuzaquFhHyFtvhGeoqo+j9ujbaM/24v12+LLFg==", + "requires": { + "@mongosh/errors": "2.3.2", + "@mongosh/i18n": "2.3.2", + "mongodb-connection-string-url": "^3.0.1" + } + }, + "@mongosh/async-rewriter2": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@mongosh/async-rewriter2/-/async-rewriter2-2.3.2.tgz", + "integrity": "sha512-VhqTUpv3q+Q/2kyOY37RrHaLyOnxTFyBqGz+wmaS9kADorsVTa6DuIO9GF+JLomVzdyFuIW3uaoNYbwq+mnPCA==", + "requires": { + "@babel/core": "^7.22.8", + "@babel/plugin-transform-destructuring": "^7.22.5", + "@babel/plugin-transform-parameters": "^7.22.5", + "@babel/plugin-transform-shorthand-properties": "^7.22.5", + "@babel/types": "^7.22.5" + } + }, + "@mongosh/autocomplete": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@mongosh/autocomplete/-/autocomplete-2.3.2.tgz", + "integrity": "sha512-bpqG9A/O9ILP0vdwEZwV0Wc0T+LzcyqnWx1RWrC3XvUqMz1kfj5IJNK6RI1D7WuueWfi+HF+GAkz4kLNfFkgrg==", + "requires": { + "@mongodb-js/mongodb-constants": "^0.10.1", + "@mongosh/shell-api": "2.3.2", + "semver": "^7.5.4" + } + }, + "@mongosh/browser-repl": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@mongosh/browser-repl/-/browser-repl-2.3.2.tgz", + "integrity": "sha512-RWgmrmvq5kDyg84pHFC4V2jdNLhM/HxKoPVzz5gHr8HPcgFQaWG2S3XfpeylzspDhP8sFZ+irl7NguZE00gXUg==", + "requires": { + "@mongosh/browser-runtime-core": "2.3.2", + "@mongosh/errors": "2.3.2", + "@mongosh/history": "2.3.2", + "@mongosh/i18n": "2.3.2", + "@mongosh/node-runtime-worker-thread": "2.3.2", + "@mongosh/service-provider-core": "2.3.2", + "numeral": "^2.0.6", + "text-table": "^0.2.0" + }, + "dependencies": { + "numeral": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/numeral/-/numeral-2.0.6.tgz", + "integrity": "sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA==" + } + } + }, + "@mongosh/browser-runtime-core": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@mongosh/browser-runtime-core/-/browser-runtime-core-2.3.2.tgz", + "integrity": "sha512-y1qPdNxu6f7A1s6mgBee/iGya0MOIBRBMTGZanlBZv4nDq+nVoskSzhgrBXx+/YB1+/J0anSnCglfdaGUaq8Kw==", + "requires": { + "@mongosh/autocomplete": "2.3.2", + "@mongosh/service-provider-core": "2.3.2", + "@mongosh/shell-api": "2.3.2", + "@mongosh/shell-evaluator": "2.3.2" + } + }, + "@mongosh/errors": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@mongosh/errors/-/errors-2.3.2.tgz", + "integrity": "sha512-TKjWgKmxVW16+3+IcQNgv7RxSE3XinRKapxhs9E5nM5FDAXEMRMQnrhhb4KR9Wtp6phAywPSfNjWhuAeI91efQ==" + }, + "@mongosh/history": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@mongosh/history/-/history-2.3.2.tgz", + "integrity": "sha512-+XLO1kbTwJ1XJ5PKpyU4vn+gqwGtTXQcF4zZIXwxZPN7a0MnBF2DaoMOvEkUYalG0/rkLdVdhILh17HM0mNLsA==", + "requires": { + "mongodb-connection-string-url": "^3.0.1", + "mongodb-redact": "^1.1.2" + } + }, + "@mongosh/i18n": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@mongosh/i18n/-/i18n-2.3.2.tgz", + "integrity": "sha512-n/h/305TRPUAbBunhULKiqf9QyNHfgpj8WQjPI/2nZdfCKw29cdkiYjBNEMKl1j3jIGD51/wYgIUT4e51vZUwg==", + "requires": { + "@mongosh/errors": "2.3.2" + } + }, + "@mongosh/logging": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@mongosh/logging/-/logging-2.3.2.tgz", + "integrity": "sha512-gwFWHFTEddEFNyBb3e/vhYkkhkkNtwySDeXLPc2Ngf51zDYavFLUIsH07wz9CDdZ4Vo/MtwT/f09T1Yhg0XFsA==", + "requires": { + "@mongodb-js/devtools-connect": "^3.3.0", + "@mongosh/errors": "2.3.2", + "@mongosh/history": "2.3.2", + "@mongosh/types": "2.3.2", + "mongodb-log-writer": "^1.4.2", + "mongodb-redact": "^1.1.2" + } + }, + "@mongosh/node-runtime-worker-thread": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@mongosh/node-runtime-worker-thread/-/node-runtime-worker-thread-2.3.2.tgz", + "integrity": "sha512-3GeGpmRRy/LOKc1mfNiD9ciJsvzuxHY47MB1MLQolNjoxZres3GCx/EF0i1Ib0JCPuyBBmH8y5UCPLbs5E4AbA==", + "requires": { + "interruptor": "^1.0.1", + "system-ca": "^2.0.1", + "web-worker": "^1.3.0" + } + }, + "@mongosh/service-provider-core": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@mongosh/service-provider-core/-/service-provider-core-2.3.2.tgz", + "integrity": "sha512-lQqLuFojElKADTueYIE6gUPud31zrNwsFNk23mgH/PKDDYHGtYt5ZKQ7aAFe57HSMUZXk13SiANFukdoTcfvtA==", + "requires": { + "@aws-sdk/credential-providers": "^3.525.0", + "@mongosh/errors": "2.3.2", + "bson": "^6.8.0", + "mongodb": "^6.9.0", + "mongodb-build-info": "^1.7.2", + "mongodb-client-encryption": "^6.1.0", + "mongodb-connection-string-url": "^3.0.1" + } + }, + "@mongosh/shell-api": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@mongosh/shell-api/-/shell-api-2.3.2.tgz", + "integrity": "sha512-VDj6XVn7m6qHWphJAxPAnQ4HknJ2VZWwQFfQHm9u/6HFDnpAdnN/bubY9nawc55qdZTadpvg5m9YvmOZ3541rA==", + "requires": { + "@mongosh/arg-parser": "2.3.2", + "@mongosh/errors": "2.3.2", + "@mongosh/history": "2.3.2", + "@mongosh/i18n": "2.3.2", + "@mongosh/service-provider-core": "2.3.2", + "mongodb-redact": "^1.1.2" + } + }, + "@mongosh/shell-evaluator": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@mongosh/shell-evaluator/-/shell-evaluator-2.3.2.tgz", + "integrity": "sha512-dQPRrsi60SFrn/p0vHkcsR+i7hUSQagdwkj0JarqDtGFuowWn6f2t4crSklOjM0wie4Bi/bsXwtFyGEUl+YN2g==", + "requires": { + "@mongosh/async-rewriter2": "2.3.2", + "@mongosh/history": "2.3.2", + "@mongosh/shell-api": "2.3.2" + } + }, + "@mongosh/types": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@mongosh/types/-/types-2.3.2.tgz", + "integrity": "sha512-QXKsjEVsz1X2WyvWNyGsI+8Zs3/Z+vbCiBOC3t95JrGJlbkz5uPjGbAwcXSZTheehdCd01spgedSNn3r5yQDtQ==", + "requires": { + "@mongodb-js/devtools-connect": "^3.3.0" + } + }, "@nicolo-ribaudo/eslint-scope-5-internals": { "version": "5.1.1-v1", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", @@ -61292,14 +60966,6 @@ "requires": { "builtins": "^5.0.0" } - }, - "wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } } } }, @@ -61964,14 +61630,6 @@ "requires": { "isexe": "^2.0.0" } - }, - "wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } } } }, @@ -64158,12 +63816,6 @@ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", - "dev": true - }, "@types/keyv": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz", @@ -64248,9 +63900,9 @@ "dev": true }, "@types/numeral": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/numeral/-/numeral-2.0.2.tgz", - "integrity": "sha512-A8F30k2gYJ/6e07spSCPpkuZu79LCnkPTvqmIWQzNGcrzwFKpVOydG41lNt5wZXjSI149qjyzC2L1+F2PD/NUA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/numeral/-/numeral-2.0.5.tgz", + "integrity": "sha512-kH8I7OSSwQu9DS9JYdFWbuvhVzvFRoCPCkGxNwoGgaPeDfEPJlcxNvEOypZhQ3XXHsGbfIuYcxcJxKUfJHnRfw==", "dev": true }, "@types/papaparse": { @@ -67158,20 +66810,20 @@ } }, "browserslist": { - "version": "4.23.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", - "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", "requires": { - "caniuse-lite": "^1.0.30001646", - "electron-to-chromium": "^1.5.4", + "caniuse-lite": "^1.0.30001663", + "electron-to-chromium": "^1.5.28", "node-releases": "^2.0.18", "update-browserslist-db": "^1.1.0" } }, "bson": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/bson/-/bson-6.7.0.tgz", - "integrity": "sha512-w2IquM5mYzYZv6rs3uN2DZTOBe2a0zXLj53TGDqwF4l6Sz/XsISrisXOJihArF9+BZ6Cq/GjVht7Sjfmri7ytQ==" + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.8.0.tgz", + "integrity": "sha512-iOJg8pr7wq2tg/zSlCCHMi3hMm5JTOxLTagf3zxhcenHsFp+c6uOs6K7W5UE7A4QIJGtqh/ZovFNMP4mOPJynQ==" }, "bson-transpilers": { "version": "file:packages/bson-transpilers", @@ -67421,9 +67073,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001646", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001646.tgz", - "integrity": "sha512-dRg00gudiBDDTmUhClSdv3hqRfpbOnU28IpI1T6PBTLWa+kOj0681C8uML3PifYfREuBrVjDGhL3adYpBT6spw==" + "version": "1.0.30001663", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001663.tgz", + "integrity": "sha512-o9C3X27GLKbLeTYZ6HBOLU1tsAcBZsLis28wrVzddShCS16RujjHp9GDHKZqrB3meE0YjhawvMFsGb/igqiPzA==" }, "caseless": { "version": "0.12.0", @@ -67897,9 +67549,9 @@ "compass-e2e-tests": { "version": "file:packages/compass-e2e-tests", "requires": { - "@electron/rebuild": "^3.6.0", + "@electron/rebuild": "^3.6.2", "@mongodb-js/compass-test-server": "^0.1.22", - "@mongodb-js/connection-info": "^0.8.0", + "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/oidc-mock-provider": "^0.9.3", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -67908,11 +67560,11 @@ "@types/cross-spawn": "^6.0.2", "@types/puppeteer": "^5.4.4", "@wdio/types": "^8.32.2", - "bson": "^6.7.0", + "bson": "^6.8.0", "chai": "^4.3.4", "chai-as-promised": "^7.1.1", "clipboardy": "^2.3.0", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "cross-spawn": "^7.0.3", "debug": "^4.3.4", "depcheck": "^1.4.1", @@ -67920,10 +67572,10 @@ "eslint": "^7.25.0", "fast-glob": "^3.2.7", "glob": "^10.2.5", - "hadron-build": "^25.5.10", + "hadron-build": "^25.5.11", "lodash": "^4.17.21", "mocha": "^10.2.0", - "mongodb": "^6.8.0", + "mongodb": "^6.9.0", "mongodb-connection-string-url": "^3.0.1", "mongodb-log-writer": "^1.4.2", "mongodb-runner": "^5.6.3", @@ -67940,6 +67592,15 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, "clipboardy": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz", @@ -68030,15 +67691,6 @@ "path-scurry": "^1.7.0" }, "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, "minimatch": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", @@ -68134,20 +67786,20 @@ "compass-preferences-model": { "version": "file:packages/compass-preferences-model", "requires": { - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-user-data": "^0.3.7", - "@mongodb-js/devtools-proxy-support": "^0.3.9", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-user-data": "^0.3.8", + "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/js-yaml": "^4.0.5", "@types/yargs-parser": "21.0.0", - "bson": "^6.7.0", + "bson": "^6.8.0", "chai": "^4.3.6", "depcheck": "^1.4.1", "eslint": "^7.25.0", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.23", "js-yaml": "^4.1.0", "lodash": "^4.17.21", @@ -68511,9 +68163,9 @@ } }, "cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==" + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==" }, "cookie-signature": { "version": "1.0.6", @@ -70639,9 +70291,9 @@ } }, "electron-to-chromium": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.4.tgz", - "integrity": "sha512-orzA81VqLyIGUEA77YkVA1D+N+nNfl2isJVjjmOyrlxuooZ19ynb+dOlaDTqd/idKRS9lDCSBmtzM+kyCsMnkA==" + "version": "1.5.28", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.28.tgz", + "integrity": "sha512-VufdJl+rzaKZoYVUijN13QcXVF5dWPZANeFTLNy+OSpHdDL5ynXTF35+60RSBbaQYB1ae723lQXHCrf4pyLsMw==" }, "electron-window": { "version": "0.8.1", @@ -71793,252 +71445,17 @@ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==" }, - "eslint-config-semistandard": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-semistandard/-/eslint-config-semistandard-15.0.1.tgz", - "integrity": "sha512-sfV+qNBWKOmF0kZJll1VH5XqOAdTmLlhbOl9WKI11d2eMEe+Kicxnpm24PQWHOqAfk5pAWU2An0LjNCXKa4Usg==", - "dev": true - }, - "eslint-config-standard": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-14.1.1.tgz", - "integrity": "sha512-Z9B+VR+JIXRxz21udPTL9HpFMyoMUEeX1G251EQ6e05WD9aPVtVBn09XUmZ259wCMlCDmYDSZG62Hhm+ZTJcUg==", - "dev": true - }, - "eslint-import-resolver-node": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", - "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", - "dev": true, - "requires": { - "debug": "^2.6.9", - "resolve": "^1.13.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "eslint-module-utils": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz", - "integrity": "sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A==", - "dev": true, - "requires": { - "debug": "^3.2.7", - "pkg-dir": "^2.0.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } - } - } - }, "eslint-plugin-chai-friendly": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/eslint-plugin-chai-friendly/-/eslint-plugin-chai-friendly-0.4.1.tgz", "integrity": "sha512-hkpLN7VVoGGsofZjUhcQ+sufC3FgqMJwD0DvAcRfxY1tVRyQyVsqpaKnToPHJQOrRo0FQ0fSEDwW2gr4rsNdGA==", "dev": true }, - "eslint-plugin-es": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", - "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", - "dev": true, - "requires": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" - } - }, "eslint-plugin-filename-rules": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/eslint-plugin-filename-rules/-/eslint-plugin-filename-rules-1.2.0.tgz", "integrity": "sha512-iPVuHb+VZRt0k9r2ejBRSZM7n+LIJ1OWKiOj/E1ZQiII7AaKZ28JE0lVdxQ7LI2rBem7dqcmC/0QAnAyis0xTA==" }, - "eslint-plugin-import": { - "version": "2.23.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz", - "integrity": "sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ==", - "dev": true, - "requires": { - "array-includes": "^3.1.3", - "array.prototype.flat": "^1.2.4", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.4", - "eslint-module-utils": "^2.6.1", - "find-up": "^2.0.0", - "has": "^1.0.3", - "is-core-module": "^2.4.0", - "minimatch": "^3.0.4", - "object.values": "^1.1.3", - "pkg-up": "^2.0.0", - "read-pkg-up": "^3.0.0", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.9.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } - } - } - }, "eslint-plugin-jsx-a11y": { "version": "6.4.1", "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz", @@ -72082,34 +71499,6 @@ "ramda": "^0.27.1" } }, - "eslint-plugin-node": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", - "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", - "dev": true, - "requires": { - "eslint-plugin-es": "^3.0.0", - "eslint-utils": "^2.0.0", - "ignore": "^5.1.1", - "minimatch": "^3.0.4", - "resolve": "^1.10.1", - "semver": "^6.1.0" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } - } - }, - "eslint-plugin-promise": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.3.1.tgz", - "integrity": "sha512-bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ==", - "dev": true - }, "eslint-plugin-react": { "version": "7.24.0", "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.24.0.tgz", @@ -72153,12 +71542,6 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz", "integrity": "sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ==" }, - "eslint-plugin-standard": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz", - "integrity": "sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ==", - "dev": true - }, "eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -72386,20 +71769,19 @@ "exponential-backoff": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", - "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", - "dev": true + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==" }, "express": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", - "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.6.0", + "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -74108,7 +73490,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/mocha": "^9.0.0", @@ -74153,7 +73535,7 @@ "hadron-build": { "version": "file:packages/hadron-build", "requires": { - "@electron/rebuild": "^3.6.0", + "@electron/rebuild": "^3.6.2", "@mongodb-js/devtools-github-repo": "^1.4.1", "@mongodb-js/dl-center": "^1.0.1", "@mongodb-js/electron-wix-msi": "^3.0.0", @@ -74190,7 +73572,7 @@ "mocha": "^10.2.0", "moment": "^2.29.4", "mongodb-js-cli": "^0.0.3", - "node-abi": "^3.67.0", + "node-abi": "^3.68.0", "normalize-package-data": "^2.3.5", "parse-github-repo-url": "^1.3.0", "plist": "^3.0.1", @@ -74529,21 +73911,6 @@ "minimist": "^1.2.6" } }, - "node-abi": { - "version": "3.67.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.67.0.tgz", - "integrity": "sha512-bLn/fU/ALVBE9wj+p4Y21ZJWYFjUXLXPi/IewyLZkx3ApxKDNBWCKdReeKOtD8dWpOdDCeMyLh6ZewzcLsG2Nw==", - "requires": { - "semver": "^7.3.5" - }, - "dependencies": { - "semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==" - } - } - }, "normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -74755,7 +74122,7 @@ "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", - "bson": "^6.7.0", + "bson": "^6.8.0", "chai": "^4.2.0", "depcheck": "^1.4.1", "eslint": "^7.25.0", @@ -74918,11 +74285,11 @@ "hadron-type-checker": { "version": "file:packages/hadron-type-checker", "requires": { - "bson": "^6.7.0", + "@mongodb-js/eslint-config-compass": "^1.1.7", + "bson": "^6.8.0", "chai": "^4.2.0", "depcheck": "^1.4.1", "eslint": "^7.25.0", - "eslint-config-mongodb-js": "^5.0.3", "lodash": "^4.17.21", "mocha": "^10.2.0" } @@ -77995,15 +77362,6 @@ } } }, - "wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, "write-file-atomic": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", @@ -79732,9 +79090,9 @@ "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==" }, "mongodb": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.8.0.tgz", - "integrity": "sha512-HGQ9NWDle5WvwMnrvUxsFYPd3JEbqD3RgABHBQRuoCEND0qzhsd0iH5ypHsf1eJ+sXmvmyKpP+FLOKY8Il7jMw==", + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.9.0.tgz", + "integrity": "sha512-UMopBVx1LmEUbW/QE0Hw18u583PEDVQmUmVzzBRH0o/xtE9DBRA5ZYLOjpLIa03i8FXjzvQECJcqoMvCXftTUA==", "requires": { "@mongodb-js/saslprep": "^1.1.5", "bson": "^6.7.0", @@ -79829,7 +79187,7 @@ "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "mocha": "^10.2.0", - "mongodb-data-service": "^22.23.3", + "mongodb-data-service": "^22.23.4", "mongodb-ns": "^2.4.2", "xvfb-maybe": "^0.2.1" } @@ -79837,59 +79195,60 @@ "mongodb-compass": { "version": "file:packages/compass", "requires": { - "@electron/rebuild": "^3.6.0", + "@electron/rebuild": "^3.6.2", "@electron/remote": "^2.1.2", - "@mongodb-js/atlas-service": "^0.28.3", - "@mongodb-js/compass-aggregations": "^9.44.0", - "@mongodb-js/compass-app-stores": "^7.28.0", - "@mongodb-js/compass-collection": "^4.41.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connection-import-export": "^0.38.0", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-crud": "^13.42.0", - "@mongodb-js/compass-databases-collections": "^1.41.0", - "@mongodb-js/compass-explain-plan": "^6.42.0", - "@mongodb-js/compass-export-to-language": "^9.18.0", - "@mongodb-js/compass-field-store": "^9.17.0", - "@mongodb-js/compass-find-in-page": "^4.30.4", - "@mongodb-js/compass-generative-ai": "^0.22.3", - "@mongodb-js/compass-import-export": "^7.41.0", - "@mongodb-js/compass-indexes": "^5.41.0", - "@mongodb-js/compass-intercom": "^0.12.3", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-query-bar": "^8.43.0", - "@mongodb-js/compass-saved-aggregations-queries": "^1.42.0", - "@mongodb-js/compass-schema": "^6.43.0", - "@mongodb-js/compass-schema-validation": "^6.42.0", - "@mongodb-js/compass-serverstats": "^16.41.0", - "@mongodb-js/compass-settings": "^0.40.3", - "@mongodb-js/compass-shell": "^3.41.0", - "@mongodb-js/compass-sidebar": "^5.42.0", - "@mongodb-js/compass-telemetry": "^1.1.7", + "@mongodb-js/atlas-service": "^0.29.0", + "@mongodb-js/compass-aggregations": "^9.45.2", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-collection": "^4.42.2", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connection-import-export": "^0.39.1", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-crud": "^13.43.2", + "@mongodb-js/compass-databases-collections": "^1.42.2", + "@mongodb-js/compass-explain-plan": "^6.43.2", + "@mongodb-js/compass-export-to-language": "^9.19.2", + "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/compass-find-in-page": "^4.31.0", + "@mongodb-js/compass-generative-ai": "^0.23.0", + "@mongodb-js/compass-global-writes": "^1.2.1", + "@mongodb-js/compass-import-export": "^7.42.2", + "@mongodb-js/compass-indexes": "^5.42.2", + "@mongodb-js/compass-intercom": "^0.13.0", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-query-bar": "^8.44.2", + "@mongodb-js/compass-saved-aggregations-queries": "^1.43.2", + "@mongodb-js/compass-schema": "^6.44.2", + "@mongodb-js/compass-schema-validation": "^6.43.2", + "@mongodb-js/compass-serverstats": "^16.42.2", + "@mongodb-js/compass-settings": "^0.41.0", + "@mongodb-js/compass-shell": "^3.42.2", + "@mongodb-js/compass-sidebar": "^5.43.2", + "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-welcome": "^0.40.0", - "@mongodb-js/compass-workspaces": "^0.23.0", - "@mongodb-js/connection-info": "^0.8.0", - "@mongodb-js/connection-storage": "^0.21.0", - "@mongodb-js/devtools-proxy-support": "^0.3.9", + "@mongodb-js/compass-welcome": "^0.41.2", + "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/connection-info": "^0.9.0", + "@mongodb-js/connection-storage": "^0.22.0", + "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/get-os-info": "^0.3.24", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/mongodb-downloader": "^0.3.5", - "@mongodb-js/my-queries-storage": "^0.16.0", + "@mongodb-js/my-queries-storage": "^0.17.0", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/sbom-tools": "^0.7.0", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", - "@mongodb-js/webpack-config-compass": "^1.4.2", - "@mongosh/node-runtime-worker-thread": "^2.3.1", + "@mongodb-js/webpack-config-compass": "^1.4.4", + "@mongosh/node-runtime-worker-thread": "^2.3.2", "@segment/analytics-node": "^1.1.4", "ampersand-view": "^9.0.0", "chai": "^4.3.4", "chalk": "^4.1.2", "clean-stack": "^2.0.0", "clipboard": "^2.0.6", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "debug": "^4.3.4", "depcheck": "^1.4.1", "electron": "^30.5.1", @@ -79899,8 +79258,8 @@ "electron-squirrel-startup": "^1.0.1", "ensure-error": "^3.0.1", "eslint": "^7.25.0", - "hadron-app-registry": "^9.2.6", - "hadron-build": "^25.5.10", + "hadron-app-registry": "^9.2.7", + "hadron-build": "^25.5.11", "hadron-ipc": "^3.2.23", "kerberos": "^2.1.1", "keytar": "^7.9.0", @@ -79908,13 +79267,13 @@ "macos-export-certificate-and-key": "^1.1.2", "make-fetch-happen": "^8.0.14", "marky": "^1.2.1", - "mongodb": "^6.8.0", + "mongodb": "^6.9.0", "mongodb-build-info": "^1.7.2", "mongodb-client-encryption": "^6.1.0", "mongodb-cloud-info": "^2.1.2", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.3", - "mongodb-instance-model": "^12.24.3", + "mongodb-data-service": "^22.23.4", + "mongodb-instance-model": "^12.24.4", "mongodb-log-writer": "^1.4.2", "mongodb-ns": "^2.4.2", "os-dns-native": "^1.2.1", @@ -79931,16 +79290,6 @@ "winreg-ts": "^1.0.4" }, "dependencies": { - "@mongosh/node-runtime-worker-thread": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@mongosh/node-runtime-worker-thread/-/node-runtime-worker-thread-2.3.1.tgz", - "integrity": "sha512-RmWQwQHdPEClthSBlLx3pLuQcrba9mGUnXpRIlT56Ddv7KyDEORM80yR/1SfUuxyPJ0BwtOcXIqAYf/m/KF85Q==", - "requires": { - "interruptor": "^1.0.1", - "system-ca": "^2.0.1", - "web-worker": "^1.3.0" - } - }, "debug": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", @@ -79974,12 +79323,12 @@ "mongodb-data-service": { "version": "file:packages/data-service", "requires": { - "@mongodb-js/compass-logging": "^1.4.7", + "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-test-server": "^0.1.22", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/devtools-connect": "^3.2.10", + "@mongodb-js/devtools-connect": "^3.3.1", "@mongodb-js/devtools-docker-test-envs": "^1.3.3", - "@mongodb-js/devtools-proxy-support": "^0.3.9", + "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/oidc-plugin": "^1.1.1", @@ -79987,7 +79336,7 @@ "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/lodash": "^4.14.188", "@types/whatwg-url": "^8.2.1", - "bson": "^6.7.0", + "bson": "^6.8.0", "chai": "^4.2.0", "chai-as-promised": "^7.1.1", "depcheck": "^1.4.1", @@ -79995,7 +79344,7 @@ "kerberos": "^2.1.1", "lodash": "^4.17.21", "mocha": "^10.2.0", - "mongodb": "^6.8.0", + "mongodb": "^6.9.0", "mongodb-build-info": "^1.7.2", "mongodb-client-encryption": "^6.1.0", "mongodb-connection-string-url": "^3.0.1", @@ -80008,22 +79357,6 @@ "typescript": "^5.0.4" }, "dependencies": { - "@mongodb-js/devtools-connect": { - "version": "3.2.10", - "resolved": "https://registry.npmjs.org/@mongodb-js/devtools-connect/-/devtools-connect-3.2.10.tgz", - "integrity": "sha512-x+MhIwJzCKjc5NhGHbns5IGa6yBwj/Nm6uVh0TwmhdKGxBbIP4o0xa4YVRwRajxHHGrxhiKQRNRJsHD6IzVVOw==", - "requires": { - "@mongodb-js/devtools-proxy-support": "^0.3.9", - "@mongodb-js/oidc-http-server-pages": "1.1.3", - "kerberos": "^2.1.0", - "lodash.merge": "^4.6.2", - "mongodb-client-encryption": "^6.1.0", - "mongodb-connection-string-url": "^3.0.0", - "os-dns-native": "^1.2.0", - "resolve-mongodb-srv": "^1.1.1", - "socks": "^2.7.3" - } - }, "@mongodb-js/devtools-docker-test-envs": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/@mongodb-js/devtools-docker-test-envs/-/devtools-docker-test-envs-1.3.3.tgz", @@ -80050,11 +79383,6 @@ } } }, - "@mongodb-js/oidc-http-server-pages": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@mongodb-js/oidc-http-server-pages/-/oidc-http-server-pages-1.1.3.tgz", - "integrity": "sha512-I704bSQRu/SusTcCV8qqtdFVvAJf1aKZtgGM2VnYjPn2njZd5j7864k/CF9TeeR8+r0At5qqNa3N4MX9YxPnEg==" - }, "eslint-plugin-mocha": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-9.0.0.tgz", @@ -80133,8 +79461,8 @@ "depcheck": "^1.4.1", "eslint": "^7.25.0", "mocha": "^10.2.0", - "mongodb-collection-model": "^5.23.3", - "mongodb-data-service": "^22.23.3" + "mongodb-collection-model": "^5.23.4", + "mongodb-data-service": "^22.23.4" } }, "mongodb-download-url": { @@ -80151,13 +79479,8 @@ "mongodb-explain-compat": { "version": "file:packages/mongodb-explain-compat", "requires": { + "@mongodb-js/eslint-config-compass": "^1.1.7", "eslint": "^7.25.0", - "eslint-config-semistandard": "^15.0.1", - "eslint-config-standard": "^14.1.1", - "eslint-plugin-import": "^2.22.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^4.2.1", - "eslint-plugin-standard": "^4.0.1", "gen-esm-wrapper": "^1.1.0", "mocha": "^10.2.0", "nyc": "^15.1.0" @@ -80173,9 +79496,9 @@ "depcheck": "^1.4.1", "eslint": "^7.25.0", "mocha": "^10.2.0", - "mongodb-collection-model": "^5.23.3", - "mongodb-data-service": "^22.23.3", - "mongodb-database-model": "^2.23.3" + "mongodb-collection-model": "^5.23.4", + "mongodb-data-service": "^22.23.4", + "mongodb-database-model": "^2.23.4" } }, "mongodb-js-cli": { @@ -80463,7 +79786,7 @@ "@types/chai": "^4.2.21", "@types/mocha": "^9.0.0", "@types/sinon-chai": "^3.2.5", - "bson": "^6.7.0", + "bson": "^6.8.0", "chai": "^4.3.6", "depcheck": "^1.4.1", "eslint": "^7.25.0", @@ -80797,9 +80120,9 @@ } }, "node-abi": { - "version": "3.65.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.65.0.tgz", - "integrity": "sha512-ThjYBfoDNr08AWx6hGaRbfPwxKV9kVzAzOzlLKbk2CuqXE2xnCh+cbAGnwM3t8Lq4v9rUB7VfondlkBckcJrVA==", + "version": "3.68.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.68.0.tgz", + "integrity": "sha512-7vbj10trelExNjFSBm5kTvZXXa7pZyKWx9RCKIyqe6I9Ev3IzGpQoqBP3a+cOdxY+pWj6VkP28n/2wWysBHD/A==", "requires": { "semver": "^7.3.5" } @@ -81001,15 +80324,6 @@ "requires": { "ansi-regex": "^5.0.1" } - }, - "wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } } } }, @@ -87213,35 +86527,6 @@ } } }, - "tsconfig-paths": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", - "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", - "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - } - } - }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", @@ -88729,40 +88014,11 @@ } }, "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", "requires": { - "string-width": "^1.0.2 || 2" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } + "string-width": "^1.0.2 || 2 || 3 || 4" } }, "wildcard": { diff --git a/packages/atlas-service/package.json b/packages/atlas-service/package.json index b210659fa2f..fac68a5ab48 100644 --- a/packages/atlas-service/package.json +++ b/packages/atlas-service/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.28.3", + "version": "0.29.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -58,7 +58,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/mocha": "^9.0.0", @@ -73,16 +73,17 @@ "typescript": "^5.0.4" }, "dependencies": { - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-telemetry": "^1.1.7", - "@mongodb-js/compass-user-data": "^0.3.7", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/devtools-connect": "^3.2.10", - "@mongodb-js/devtools-proxy-support": "^0.3.9", + "@mongodb-js/connection-info": "^0.9.0", + "@mongodb-js/devtools-connect": "^3.3.1", + "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/oidc-plugin": "^1.1.1", - "hadron-app-registry": "^9.2.6", - "compass-preferences-model": "^2.28.3", + "hadron-app-registry": "^9.2.7", + "compass-preferences-model": "^2.29.0", "electron": "^30.5.1", "hadron-ipc": "^3.2.23", "lodash": "^4.17.21", diff --git a/packages/atlas-service/src/atlas-service.ts b/packages/atlas-service/src/atlas-service.ts index e0b716746c8..dd80e78bfa3 100644 --- a/packages/atlas-service/src/atlas-service.ts +++ b/packages/atlas-service/src/atlas-service.ts @@ -8,11 +8,17 @@ import { } from './util'; import type { Logger } from '@mongodb-js/compass-logging'; import type { PreferencesAccess } from 'compass-preferences-model'; +import type { AtlasClusterMetadata } from '@mongodb-js/connection-info'; export type AtlasServiceOptions = { defaultHeaders?: Record; }; +function normalizePath(path?: string) { + path = path ? (path.startsWith('/') ? path : `/${path}`) : ''; + return encodeURI(path); +} + export class AtlasService { private config: AtlasServiceConfig; constructor( @@ -24,30 +30,34 @@ export class AtlasService { this.config = getAtlasConfig(preferences); } adminApiEndpoint(path?: string, requestId?: string): string { - const uri = encodeURI( - `${this.config.atlasApiBaseUrl}${path ? `/${path}` : ''}` - ); + const uri = `${this.config.atlasApiBaseUrl}${normalizePath(path)}`; const query = requestId ? `?request_id=${encodeURIComponent(requestId)}` : ''; return `${uri}${query}`; } cloudEndpoint(path?: string): string { - return encodeURI(`${this.config.cloudBaseUrl}${path ? `/${path}` : ''}`); + return `${this.config.cloudBaseUrl}${normalizePath(path)}`; + } + regionalizedCloudEndpoint( + _atlasMetadata: Pick, + path?: string + ): string { + // TODO: eventually should apply the regional url logic + // https://github.com/10gen/mms/blob/9f858bb987aac6aa80acfb86492dd74c89cbb862/client/packages/project/common/ajaxPrefilter.ts#L34-L49 + return this.cloudEndpoint(path); } driverProxyEndpoint(path?: string): string { - return encodeURI(`${this.config.wsBaseUrl}${path ? `/${path}` : ''}`); + return `${this.config.wsBaseUrl}${normalizePath(path)}`; } - async fetch(url: RequestInfo, init?: RequestInit): Promise { + async fetch(url: RequestInfo | URL, init?: RequestInit): Promise { throwIfNetworkTrafficDisabled(this.preferences); throwIfAborted(init?.signal as AbortSignal); this.logger.log.info( this.logger.mongoLogId(1_001_000_297), 'AtlasService', 'Making a fetch', - { - url, - } + { url } ); try { const res = await fetch(url, { @@ -74,16 +84,13 @@ export class AtlasService { this.logger.mongoLogId(1_001_000_298), 'AtlasService', 'Fetch errored', - { - url, - err, - } + { url, err } ); throw err; } } async authenticatedFetch( - url: RequestInfo, + url: RequestInfo | URL, init?: RequestInit ): Promise { const authHeaders = await this.authService.getAuthHeaders(); @@ -95,4 +102,90 @@ export class AtlasService { }, }); } + async automationAgentRequest( + atlasMetadata: AtlasClusterMetadata, + opType: string, + opBody: Record + ): Promise<{ _id: string; requestType: string } | undefined> { + const opBodyClusterId = + atlasMetadata.metricsType === 'serverless' + ? { serverlessId: atlasMetadata.clusterUniqueId } + : { clusterId: atlasMetadata.metricsId }; + const requestUrl = this.regionalizedCloudEndpoint( + atlasMetadata, + `/explorer/v1/groups/${atlasMetadata.projectId}/requests/${opType}` + ); + const json = await this.authenticatedFetch(requestUrl, { + method: 'POST', + headers: { + 'content-type': 'application/json', + }, + body: JSON.stringify({ ...opBodyClusterId, ...opBody }), + }).then((res) => { + if ( + res.headers + .get('content-type') + ?.toLowerCase() + .includes('application/json') + ) { + return res.json(); + } + }); + assertAutomationAgentRequestResponse(json, opType); + return json; + } + async automationAgentAwait( + atlasMetadata: AtlasClusterMetadata, + opType: string, + requestId: string + ): Promise<{ + _id: string; + requestType: string; + response: T[]; + }> { + const requestUrl = this.regionalizedCloudEndpoint( + atlasMetadata, + `/explorer/v1/groups/${atlasMetadata.projectId}/requests/${requestId}/types/${opType}/await` + ); + const json = await this.authenticatedFetch(requestUrl, { + method: 'GET', + }).then((res) => { + return res.json(); + }); + assertAutomationAgentAwaitResponse(json, opType); + return json; + } +} + +function assertAutomationAgentRequestResponse( + json: any, + opType: string +): asserts json is { _id: string; requestType: string } { + if ( + Object.prototype.hasOwnProperty.call(json, '_id') && + Object.prototype.hasOwnProperty.call(json, 'requestType') && + json.requestType === opType + ) { + return; + } + throw new Error( + 'Got unexpected backend response for automation agent request' + ); +} + +function assertAutomationAgentAwaitResponse( + json: any, + opType: string +): asserts json is { _id: string; requestType: string; response: T[] } { + if ( + Object.prototype.hasOwnProperty.call(json, '_id') && + Object.prototype.hasOwnProperty.call(json, 'requestType') && + Object.prototype.hasOwnProperty.call(json, 'response') && + json.requestType === opType + ) { + return; + } + throw new Error( + 'Got unexpected backend response for automation agent request await' + ); } diff --git a/packages/atlas-service/src/util.ts b/packages/atlas-service/src/util.ts index fe93939d8db..fb27ab37e99 100644 --- a/packages/atlas-service/src/util.ts +++ b/packages/atlas-service/src/util.ts @@ -46,10 +46,21 @@ export function throwIfNetworkTrafficDisabled( /** * https://www.mongodb.com/docs/atlas/api/atlas-admin-api-ref/#errors */ -export function isServerError( +function isAtlasAPIError( err: any ): err is { error: number; errorCode: string; detail: string } { - return Boolean(err.error && err.errorCode && err.detail); + return Boolean(err && err.error && err.errorCode && err.detail); +} + +function isCloudBackendError(err: any): err is { + errorCode: string; + message: string; + version: string; + status: string; +} { + return Boolean( + err && err.errorCode && err.message && err.version && err.status + ); } export async function throwIfNotOk( @@ -60,21 +71,25 @@ export async function throwIfNotOk( } const messageJSON = await res.json().catch(() => undefined); - if (messageJSON && isServerError(messageJSON)) { - throw new AtlasServiceError( - 'ServerError', - res.status, - messageJSON.detail ?? 'Internal server error', - messageJSON.errorCode ?? 'INTERNAL_SERVER_ERROR' - ); - } else { - throw new AtlasServiceError( - 'NetworkError', - res.status, - res.statusText, - `${res.status}` - ); + + const status = res.status; + let statusText = res.statusText; + let errorCode = `${res.status}`; + let errorName: 'NetworkError' | 'ServerError' = 'NetworkError'; + + if (isAtlasAPIError(messageJSON)) { + errorName = 'ServerError'; + statusText = messageJSON.detail; + errorCode = messageJSON.errorCode; + } + + if (isCloudBackendError(messageJSON)) { + errorName = 'ServerError'; + statusText = messageJSON.message; + errorCode = messageJSON.errorCode; } + + throw new AtlasServiceError(errorName, status, statusText, errorCode); } export type AtlasServiceConfig = { diff --git a/packages/bson-transpilers/.prettierignore b/packages/bson-transpilers/.prettierignore new file mode 100644 index 00000000000..e0b0e02777a --- /dev/null +++ b/packages/bson-transpilers/.prettierignore @@ -0,0 +1,12 @@ +# SyntaxError: Aliased anchor not found: ... +symbols/basic_types.yaml +symbols/import_templates.yaml +symbols/python/symbols.yaml +symbols/python/types.yaml +symbols/shell/symbols.yaml +symbols/shell/types.yaml +symbols/syntax_templates.yaml + +# Generated files +lib/antlr/ +lib/symbol-table/ diff --git a/packages/bson-transpilers/.prettierrc.json b/packages/bson-transpilers/.prettierrc.json new file mode 100644 index 00000000000..18853d1532e --- /dev/null +++ b/packages/bson-transpilers/.prettierrc.json @@ -0,0 +1 @@ +"@mongodb-js/prettier-config-compass" diff --git a/packages/bson-transpilers/CONTRIBUTING.md b/packages/bson-transpilers/CONTRIBUTING.md index 84f7d623b86..7e2d9db7e8c 100644 --- a/packages/bson-transpilers/CONTRIBUTING.md +++ b/packages/bson-transpilers/CONTRIBUTING.md @@ -1,36 +1,41 @@ # Contributing to bson-transpilers ## Setting up your environment + The `bson-transpilers` package uses [ANTLR4](https://github.com/antlr/antlr4/blob/master/doc/javascript-target.md) to create a parse tree. As `ANTLR` is written in Java, you will need to set up a few tools before being able to compile this locally. Make sure you have Java installed: + ```shell $ brew cask install java ``` _I strongly suggest using an IDE that will help you visualize ANTLR trees (JetBrains has a good plugin). - Otherwise you can use the java version of the grammar and compile it with - `javac *.java && grun -gui`. - [This might be helpful](https://github.com/antlr/antlr4/blob/master/doc/getting-started.md)._ +Otherwise you can use the java version of the grammar and compile it with +`javac *.java && grun -gui`. +[This might be helpful](https://github.com/antlr/antlr4/blob/master/doc/getting-started.md)._ Make sure you have run the following from the root directory: + ```shell $ npm run bootstrap ``` Then compile and run tests locally with: + ```shell $ npm run compile && npm run test ``` You can provide a few environmental variables to help you test your specific output and input languages. If none are provided, everything will run. -- __INPUT=:__ comma-separated input languages you want to test -- __OUTPUT=:__ comma-separated output languages you want to test. Also called "target" language. -- __MODE=:__ comma-separated names of the test files (without .yaml) that you want to run + +- **INPUT=:** comma-separated input languages you want to test +- **OUTPUT=:** comma-separated output languages you want to test. Also called "target" language. +- **MODE=:** comma-separated names of the test files (without .yaml) that you want to run ```shell OUTPUT=csharp INPUT=shell MODE=native,bson npm run test @@ -39,12 +44,15 @@ OUTPUT=csharp INPUT=shell MODE=native,bson npm run test # How it works See also the original presentation: https://drive.google.com/file/d/1jvwtR3k9oBUzIjL4z_VtpHvdWahfcjTK/view + ## Compilation Stages + Similar to how many transpilers work, this package parses the input string into a tree and then generates code from the tree using the [Visitor pattern](https://en.wikipedia.org/wiki/Visitor_pattern). ### Step 1: Parsing + Parsing and tree generation is handled by ANTLR4. The grammar files are located in the `grammars` folder, and the javascript parser/lexer/etc. generated from the grammar are located in `lib/antlr`. To make @@ -60,8 +68,8 @@ ANTLR generates a "shell" visitor class for each tree in `lib/antlr/Visitor.js`. It contains an empty method for each node in the parse tree. - ### Step 2: Visitor + visiting-tree Because the project is designed to handle multiple input languages and multiple @@ -91,17 +99,18 @@ that provide a layer of indirection around the tree so that the generic visitor care about what tree it's visiting. The CodeGenerationVisitor also includes helper methods that every input language may use. - ### Step 3: Generator + The other half of the tree visitation stage. Each ouput language will have a Generator class defined in `codegeneration//Generator.js`. The Generator class generates code, so it is specific to the ouput language. The Generator class is a subclass of the input language's visitor class. So for example, translating between JS and Python, the order of inheritance will be: - 1. `lib/antlr/ECMAScriptVisitor.js` ["empty" superclass, specific to the tree built by ANTLR] - 2. `codegeneration/CodeGenerationVisitor.js` ["generic" visitor, shared between all languages] - 3. `codegeneration/javascript/Visitor.js` [specific to input language] - 4. `codegeneration/python/Generator.js` [specific to output language] + +1. `lib/antlr/ECMAScriptVisitor.js` ["empty" superclass, specific to the tree built by ANTLR] +2. `codegeneration/CodeGenerationVisitor.js` ["generic" visitor, shared between all languages] +3. `codegeneration/javascript/Visitor.js` [specific to input language] +4. `codegeneration/python/Generator.js` [specific to output language] For nodes that cannot be translated using templates, the Generator class will define a method called `emit` which @@ -115,6 +124,7 @@ When the visitor in [step #1](#step-1:-parsing) reaches a function call, variabl expression it needs a way of knowing what that symbol evaluates to in order to know if it is valid. ### Symbols + Each input language has it's own set of symbols that are part of the language. The majority of symbols supported in the input languages are BSON types (i.e. `Int32`, `ObjectId`, etc) but there are a few native types like `RegExp` and @@ -123,12 +133,12 @@ is undefined, we store symbol information in a [Symbol Table](https://en.wikipedia.org/wiki/Symbol_table). #### Symbol Metadata + The visitor uses the symbol table to determine if a symbol is undefined, but the symbol table also stores some metadata so the visitor can do type and other validity checks. The symbols are defined in [YAML](https://en.wikipedia.org/wiki/YAML) in the `symbols//symbols.yaml` file. A symbol definition looks like: - ```yml Decimal128: id: "Decimal128" @@ -149,27 +159,27 @@ are defined in [YAML](https://en.wikipedia.org/wiki/YAML) in the template: *Decimal128SymbolTemplate argsTemplate: *Decimal128SymbolArgsTemplate ``` -
-| Field | Data | -| ----------|:-------------| -| id | The name of the attribute. Mostly used for error reporting and the `emit` or `process` method names. | -| callable | Used for determining if the symbol can be part of a function call. There are three types of symbols:

`*func`: a function call. If the symbol is found as the "left-hand-side" of a function call, it is valid.

`*constructor`: also a function call, but may require a `new` keyword if the output language requires it.

`*var`: a variable. Indicates to the transpiler that the symbol cannot be invoked, i.e. `()` is invalid.| -| args | Used for type checking. If the symbol is callable, i.e. a `*func` or `*constructor`, then the expected arguments are defined here as an array. So for example, if the function takes in a string as the first arg, and an optional second arg that can be a object or array, args will look like
`[ [*StringType], [*ObjectType, *ArrayType, null] ]`. Null indicates optional.| -| type | The type that the symbol evaluates to. If it is a variable, it will be the type of the variable. If it is a function, it will be the return type. See the [Types](#types) section.| -| attr | Used for determining if attribute access is valid. This field is also a symbol table, but a namespace-prefixed one. So for the example above, `Decimal128.fromString` is a valid attribute, so we need to define the symbol `fromString` in the same way we defined the `Decimal128` symbol.| -| template | Used for code generation. See the [Templates](#templates) section.| -| argsTemplate | Used for code generation. See the [Templates](#templates) section.| +
+| Field | Data | +| ------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id | The name of the attribute. Mostly used for error reporting and the `emit` or `process` method names. | +| callable | Used for determining if the symbol can be part of a function call. There are three types of symbols:

`*func`: a function call. If the symbol is found as the "left-hand-side" of a function call, it is valid.

`*constructor`: also a function call, but may require a `new` keyword if the output language requires it.

`*var`: a variable. Indicates to the transpiler that the symbol cannot be invoked, i.e. `()` is invalid. | +| args | Used for type checking. If the symbol is callable, i.e. a `*func` or `*constructor`, then the expected arguments are defined here as an array. So for example, if the function takes in a string as the first arg, and an optional second arg that can be a object or array, args will look like
`[ [*StringType], [*ObjectType, *ArrayType, null] ]`. Null indicates optional. | +| type | The type that the symbol evaluates to. If it is a variable, it will be the type of the variable. If it is a function, it will be the return type. See the [Types](#types) section. | +| attr | Used for determining if attribute access is valid. This field is also a symbol table, but a namespace-prefixed one. So for the example above, `Decimal128.fromString` is a valid attribute, so we need to define the symbol `fromString` in the same way we defined the `Decimal128` symbol. | +| template | Used for code generation. See the [Templates](#templates) section. | +| argsTemplate | Used for code generation. See the [Templates](#templates) section. | ### Types + Each input language also has a set of types that are part of the language. The set of types that are universal for all languages (i.e. "primitives", "literals", like `string`, `integer`, etc) are defined in the file `symbols/basic_types.yaml`. -Types that are specific to the input language are defined in `symbols//types.yaml`. These include BSON types, i.e. classes like `ObjectId`, and +Types that are specific to the input language are defined in `symbols//types.yaml`. These include BSON types, i.e. classes like `ObjectId`, and language-specific types like `RegExp` and `Date`. The types are defined in the same pattern as the symbols and contain the same metadata as the symbols. @@ -178,13 +188,14 @@ the same identifier and are basically the same thing but we have to make a disti because otherwise we will end up with invalid code. The **symbol** `ObjectId` has attributes like `ObjectId.fromString(...)` and is a constructor, so `ObjectId()` is valid. The **type** `ObjectId` has -attributes like `ObjectId().toString()` and is *a variable*, so `ObjectId()()` +attributes like `ObjectId().toString()` and is _a variable_, so `ObjectId()()` is not valid and will error with `ObjectId() is not callable` or similar error. You can kind of think of types as instantiated symbols, if that's helpful. So: `ObjectId.toString() and ObjectId().fromString('x')` are both invalid, while `ObjectId().toString() and ObjectId.fromString('x')` are both valid. ## Templates + The symbol table includes an additional piece of metadata, called a `template`. These are functions that accept strings and return strings, and are responsible for doing the string transformations from one language syntax to another language's syntax. @@ -197,6 +208,7 @@ calls, the `argsTemplate` is a function that gets applied to the arguments in ca need rearranging between languages. ## Project Structure + indexjs Entry point to the project is `index.js`. It currently exports [two @@ -205,36 +217,39 @@ given `inputLang` and `outputLang`, and accessing language's import statements you might need. To construct a transpiler, `index.js` needs 4 components: + - `lib/antlr//Visitor.js` The visitor for the specific input language. - `codegeneration//Generator.js` - The generator for the specific output language. - `lib/symbol-table/to.js` - The symbol table for -the input+output combination. + the input+output combination. #### TL;DR -- __CodeGenerationVisitor:__ place to store repeated code between all visitors. -- __Visitor:__ visits nodes; processes input language via - `processs` methods and sends information to either output language's template found in the `Symbol -Template` or an `emit` method in the Generator`. -- __Generator:__ processes output language via `emit` methods, which take in tree nodes and return strings. -- __Symbol Table:__ a directory of the defined symbols, types and their metadata, including templates. -- __Symbol Template:__ does string manipulation to provide output. + +- **CodeGenerationVisitor:** place to store repeated code between all visitors. +- **Visitor:** visits nodes; processes input language via + `processs` methods and sends information to either output language's template found in the `Symbol Template` or an `emit` method in the Generator`. +- **Generator:** processes output language via `emit` methods, which take in tree nodes and return strings. +- **Symbol Table:** a directory of the defined symbols, types and their metadata, including templates. +- **Symbol Template:** does string manipulation to provide output. The class hierarchy of any transpiler is ANTLRVisitor <-- CodeGenerationVisitor <-- [input-language-specific] Visitor <-- [output-language-specific] Generator. ## A primer on the different types of methods -| Method name | Summary | -|--------------|-----------| -| `visit<*>` | Always auto-generated by ANTLR, overridden by language-specific visitors. Controls the flow of the tree visitation. | -| `get<*>` | Wrapper methods around nodes, defined by language-specific visitors. They exist because different grammars call equivalent nodes different names. | -| `generate<*>` | Shared logic between all input languages. Defined in `CodeGenerationVisitor` and called from language-specific visitor methods. | -| `return<*>` | Separates string generation from object generation. Defined in `CodeGenerationVisitor` or `object/Generator`. | -| `process<*>` | Special case for entire input language. Defined in visitors, called programmatically within the visitor. | -| `emit<*>` | Special case for entire output language. Defined in generators, called programmatically by the visitors. | + +| Method name | Summary | +| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | +| `visit<*>` | Always auto-generated by ANTLR, overridden by language-specific visitors. Controls the flow of the tree visitation. | +| `get<*>` | Wrapper methods around nodes, defined by language-specific visitors. They exist because different grammars call equivalent nodes different names. | +| `generate<*>` | Shared logic between all input languages. Defined in `CodeGenerationVisitor` and called from language-specific visitor methods. | +| `return<*>` | Separates string generation from object generation. Defined in `CodeGenerationVisitor` or `object/Generator`. | +| `process<*>` | Special case for entire input language. Defined in visitors, called programmatically within the visitor. | +| `emit<*>` | Special case for entire output language. Defined in generators, called programmatically by the visitors. | ### Tests + Tests are written in YAML. Each yaml file requires two keys, first 'runner' which is a function that runs each individual test. The function signature is always `(it, expect, input, output, transpiler, test)` where `test` is a copy of a single YAML test. The second key is 'tests' which is an array @@ -250,23 +265,37 @@ Although I doubt that will end up being needed. ## Adding an Output Language 1. Create a directory in `symbols` directory for your output language: + ```shell mkdir symbols/ ``` + 2. Create a `templates.yaml` file to store your language's templates. Inside you'll probably want to copy the contents from the `symbols/sample_templates.yaml` file. That file also includes comments on which template functions require unusual arguments. + ```shell cp symbols/sample_template.yaml symbols//templates.yaml ``` + 3. Add your new language to the `compile-symbol-table.js` file: + ```js -const outputLangs = ['java', 'shell', 'python', 'csharp', 'javascript', 'mylanguage']; +const outputLangs = [ + 'java', + 'shell', + 'python', + 'csharp', + 'javascript', + 'mylanguage', +]; ``` + 4. You should now run `npm run compile` to generate a complete symbol table. This will be generated in `lib/symbol-table/javascriptto` and -`lib/symbol-table/shellto`. + `lib/symbol-table/shellto`. 5. You will have to require the generated symbol tables in `index.js`: + ```js const javascriptsymbols = require('lib/symbol-table/javascriptto') const getGenerator = require('./codegeneration//Generator.js'); @@ -285,22 +314,28 @@ module.exports = { * specific visitor and the ANTLR visitor to match the input lang. */ } ``` + 6. We still don't have a `Generator.js` file required above, so that won't quite work yet. So next, create a new directory in `codegeneration` for your -output language: + output language: + ```shell mkidr codegeneration/ ``` + 7. And create a generator file: + ```shell touch codegeneration//Generator.js ``` + 8. Most of the Generators are empty nowadays because the work has been moved into -the templates. I would expect that 90% of the time, what you're trying to do can -be done in the templates without changing the template signature. However, if you -really can't do it in the templates, you can copy any of the generators that exist -and fill in any emit methods you require. The class should be created with a super -class that is passed to the function, like so: + the templates. I would expect that 90% of the time, what you're trying to do can + be done in the templates without changing the template signature. However, if you + really can't do it in the templates, you can copy any of the generators that exist + and fill in any emit methods you require. The class should be created with a super + class that is passed to the function, like so: + ```js /* * Class for handling edge cases for node code generation. Defines "emit" methods. @@ -315,23 +350,28 @@ module.exports = (Visitor) => class Generator extends Visitor { }; `` ``` + 9. Next thing is tests! You must go through each test file and add the results of -compiling each input into your output language under the `output` field. + compiling each input into your output language under the `output` field. + ```yaml - Document: - - input: - javascript: "{x: '1'}" - shell: "{x: '1'}" - python: "{'x': '1'}" - output: - javascript: "{\n 'x': '1'\n}" - python: "{\n 'x': '1'\n}" - java: "eq(\"x\", \"1\")" - csharp: "new BsonDocument(\"x\", \"1\")" - shell: "{\n 'x': '1'\n}" - : ... +Document: + - input: + javascript: "{x: '1'}" + shell: "{x: '1'}" + python: "{'x': '1'}" + output: + javascript: "{\n 'x': '1'\n}" + python: "{\n 'x': '1'\n}" + java: 'eq("x", "1")' + csharp: 'new BsonDocument("x", "1")' + shell: "{\n 'x': '1'\n}" + : ... ``` + Make sure to add your output language in the outputLanguages array at the beginning of `run-yaml.test.js`, and to the list near the end of `functions.test.js`. + ## Adding an Input Language + TODO! diff --git a/packages/bson-transpilers/README.md b/packages/bson-transpilers/README.md index 6ee0c270ca9..74dd8e097e0 100644 --- a/packages/bson-transpilers/README.md +++ b/packages/bson-transpilers/README.md @@ -1,4 +1,5 @@ # BSON-Transpilers + [![npm version][1]][2] [![build status][3]][4] [![downloads][5]][6] @@ -8,6 +9,7 @@ provided for `shell` as inputs. `java`, `c#`, `node`, `shell`, `python`, `ruby` See also the original presentation: https://drive.google.com/file/d/1jvwtR3k9oBUzIjL4z_VtpHvdWahfcjTK/view **NOTES:** + 1. A version of the code with support for `python` with corresponding test cases has been removed to avoid bundling and supporting unused code, however it can be still be found in https://github.com/mongodb-js/compass/tree/80cf701e44cd966207f956fac69e8233861b1cd5/packages/bson-transpilers. 2. The `shell` output is disabled as is essentially the only input in use and it produces code that is compatible only with legacy `mongo` shell not the new `mongosh` shell. See [COMPASS-4930](https://jira.mongodb.org/browse/COMPASS-4930) for some additional context. @@ -19,7 +21,7 @@ const transpiler = require('bson-transpilers'); const input = 'shell'; const output = 'java'; -const string =` +const string = ` { item: "book", qty: Int32(10), tags: ["red", "blank"], dim_cm: [14, Int32("81")] }`; try { @@ -34,95 +36,106 @@ try { ``` ## API + ### compiledString = transpiler\[inputLang\]\[outputLang\].compile(codeString) + Output a compiled string given input and output languages. -- __inputLang:__ Input language of the code string. `shell` and `javascript` + +- **inputLang:** Input language of the code string. `shell` and `javascript` are currently supported. -- __outputLang:__ The language you would like the output to be. `java`, +- **outputLang:** The language you would like the output to be. `java`, `python`, `shell`, `javascript`, and `csharp` are currently supported. -- __codeString:__ The code string you would like to be compiled to your +- **codeString:** The code string you would like to be compiled to your selected output language. ### importsString = transpiler\[inputLang\]\[outputLang\].getImports(mode, driverSyntax) + Output a string containing the set of import statements for the generated code to compile. These are all the packages that the compiled code could use so that the transpiler output will be runnable. -- __inputLang:__ Input language of the code string. `shell` and `javascript` + +- **inputLang:** Input language of the code string. `shell` and `javascript` are currently supported. -- __outputLang:__ The language you would like the output to be. `java`, +- **outputLang:** The language you would like the output to be. `java`, `python`, `shell`, `javascript`, and `csharp` are currently supported. -- __mode:__ Either 'Query' for the `.find()` method or 'Pipeline' for `.aggregate()`. -- __driverSyntax:__ Whether or not you want to include Driver Syntax into your output string. +- **mode:** Either 'Query' for the `.find()` method or 'Pipeline' for `.aggregate()`. +- **driverSyntax:** Whether or not you want to include Driver Syntax into your output string. ### catch (error) + Any transpiler errors that occur will be thrown. To catch them, wrap the `transpiler` in a `try/catch` block. -- __error.message:__ Message `bson-transpilers` will send back letting you know + +- **error.message:** Message `bson-transpilers` will send back letting you know the transpiler error. -- __error.stack:__ The usual error stacktrace. -- __error.code:__ [Error code]() that `bson-transpilers` adds to the error object to +- **error.stack:** The usual error stacktrace. +- **error.code:** [Error code]() that `bson-transpilers` adds to the error object to help you distinguish error types. -- __error.line:__ If it is a syntax error, will have the line. -- __error.column:__ If it is a syntax error, will have the column. -- __error.symbol:__ If it is a syntax error, will have the symbol associated with the error. - +- **error.line:** If it is a syntax error, will have the line. +- **error.column:** If it is a syntax error, will have the column. +- **error.symbol:** If it is a syntax error, will have the symbol associated with the error. ### State -The `CodeGenerationVisitor` class manages a global state which is bound to the `argsTemplate` functions. This state is intended to be used as a solution for the `argsTemplate` functions to communicate with the `DriverTemplate` function. For example: +The `CodeGenerationVisitor` class manages a global state which is bound to the `argsTemplate` functions. This state is intended to be used as a solution for the `argsTemplate` functions to communicate with the `DriverTemplate` function. For example: ```yaml -ObjectIdEqualsArgsTemplate: &ObjectIdEqualsArgsTemplate !!js/function > - (_) => { - this.oneLineStatement = "Hello World"; - return ''; - } - -DriverTemplate: &DriverTemplate !!js/function > - (_spec) => { - return this.oneLineStatement; - } +ObjectIdEqualsArgsTemplate: !!js/function &ObjectIdEqualsArgsTemplate > + (_) => { + this.oneLineStatement = "Hello World"; + return ''; + } + +DriverTemplate: !!js/function &DriverTemplate > + (_spec) => { + return this.oneLineStatement; + } ``` The output of the driver syntax for this language will be the one-line statement `Hello World`. #### DeclarationStore -A more practical use-case of state is to accumulate variable declarations throughout the `argsTemplate` to be rendered by the `DriverTemplate`. That is, the motivation for using `DeclarationStore` is to prepend the driver syntax with variable declarations rather than using non-idiomatic solutions such as closures. -The `DeclarationStore` class maintains an internal state concerning variable declarations. For example, +A more practical use-case of state is to accumulate variable declarations throughout the `argsTemplate` to be rendered by the `DriverTemplate`. That is, the motivation for using `DeclarationStore` is to prepend the driver syntax with variable declarations rather than using non-idiomatic solutions such as closures. + +The `DeclarationStore` class maintains an internal state concerning variable declarations. For example, ```javascript // within the args template (arg) => { - return this.declarations.add("Temp", "objectID", (varName) => { + return this.declarations.add('Temp', 'objectID', (varName) => { return [ `${varName}, err := primitive.ObjectIDFromHex(${arg})`, 'if err != nil {', ' log.Fatal(err)', - '}' - ].join('\n') - }) -} + '}', + ].join('\n'); + }); +}; ``` -Note that each use of the same variable name will result in an increment being added to the declaration statement. For example, if the variable name `objectIDForTemp` is used two times the resulting declaration statements will use `objectIDForTemp` for the first declaration and `objectID2ForTemp` for the second declaration. The `add` method returns the incremented variable name, and is therefore what would be expected as the right-hand side of the statement defined by the `argsTemplate` function. +Note that each use of the same variable name will result in an increment being added to the declaration statement. For example, if the variable name `objectIDForTemp` is used two times the resulting declaration statements will use `objectIDForTemp` for the first declaration and `objectID2ForTemp` for the second declaration. The `add` method returns the incremented variable name, and is therefore what would be expected as the right-hand side of the statement defined by the `argsTemplate` function. The instance of the `DeclarationStore` constructed by the transpiler class is passed into the driver, syntax via state, for use: ```javascript (spec) => { - const comment = '// some comment' - const client = 'client, err := mongo.Connect(context.Background(), options.Client().ApplyURI(cs.String()))' - return "#{comment}\n\n#{client}\n\n${this.declarations.toString()}" -} + const comment = '// some comment'; + const client = + 'client, err := mongo.Connect(context.Background(), options.Client().ApplyURI(cs.String()))'; + return '#{comment}\n\n#{client}\n\n${this.declarations.toString()}'; +}; ``` ### Errors + There are a few different error classes thrown by `bson-transpilers`, each with their own error code: #### BsonTranspilersArgumentError + ###### code: E_BSONTRANSPILERS_ARGUMENT + This will occur when you're using a method with a wrong number of arguments, or the arguments are of the wrong type. For example, `ObjectId().equals()` requires one argument and it will throw if @@ -145,21 +158,25 @@ ObjectId(); ``` #### BsonTranspilersAttributeError + ###### code: E_BSONTRANSPILERS_ATTRIBUTE + Will be thrown if an invalid method or property is used on a BSON object. For example, since `new DBRef()` doesn't have a method `.foo()`, transpiler will throw: ```javascript // ✘: method foo doesn't exist, so this will throw a BsonTranspilersAttributeError . -new DBRef('newCollection', new ObjectId()).foo() +new DBRef('newCollection', new ObjectId()).foo(); // ✔: this won't throw, since .toString() method exists -new DBRef('newCollection', new ObjectId()).toString(10) +new DBRef('newCollection', new ObjectId()).toString(10); ``` #### BsonTranspilersSyntaxError + ###### code: E_BSONTRANSPILERS_SYNTAX + This will throw if you have a syntax error. For example missing a colon in Object assignment, or forgetting a comma in array definition: @@ -176,57 +193,70 @@ Object assignment, or forgetting a comma in array definition: ``` #### BsonTranspilersTypeError + ###### code: E_BSONTRANSPILERS_TYPE + This error will occur if a symbol is treated as the wrong type. For example, if a non-function is called: ```javascript // ✘: MAX_VALUE is a constant, not a function -Long.MAX_VALUE() +Long.MAX_VALUE(); // ✔: MAX_VALUE without a call will not throw -Long.MAX_VALUE +Long.MAX_VALUE; ``` + #### BsonTranspilersUnimplementedError + ###### code: E_BSONTRANSPILERS_UNIMPLEMENTED + If there is a feature in the input code that is not currently supported by the transpiler. #### BsonTranspilersRuntimeError + ###### code: E_BSONTRANSPILERS_RUNTIME + A generic runtime error will be thrown for all errors that are not covered by the above list of errors. These are usually constructor requirements, for example when using a `RegExp()` an unsupported flag is given: ```javascript // ✘: these are not proper 'RegExp()' flags, a BsonTranspilersRuntimeError will be thrown. -new RegExp('ab+c', 'beep') +new RegExp('ab+c', 'beep'); // ✔: 'im' are proper 'RegExp()' flags -new RegExp('ab+c', 'im') +new RegExp('ab+c', 'im'); ``` #### BsonTranspilersInternalError + ###### code: E_BSONTRANSPILERS_INTERNAL + In the case where something has gone wrong within compilation, and an error has occured. If you see this error, please create [an issue](https://github.com/mongodb-js/bson-transpilers/issues) on Github! # Install + ```shell npm install -S bson-transpilers ``` ## Contributing + Head over to the readme [on contributing](./CONTRIBUTING.md) to find out more information on project structure and setting up your environment. # Authors + - [aherlihy](https://github.com/aherlihy) - Anna Herlihy - [alenakhineika](https://github.com/alenakhineika) - Alena Khineika - [lrlna](github.com/lrlna) - Irina Shestak # License -[Apache-2.0](https://tldrlegal.com/license/apache-license-2.0-(apache-2.0)) + +[Apache-2.0]() [1]: https://img.shields.io/npm/v/bson-transpilers.svg?style=flat-square [2]: https://npmjs.org/package/bson-transpilers diff --git a/packages/bson-transpilers/codegeneration/CodeGenerationVisitor.js b/packages/bson-transpilers/codegeneration/CodeGenerationVisitor.js index 9b0618afe48..9ab796234f6 100644 --- a/packages/bson-transpilers/codegeneration/CodeGenerationVisitor.js +++ b/packages/bson-transpilers/codegeneration/CodeGenerationVisitor.js @@ -7,7 +7,7 @@ const { BsonTranspilersReferenceError, BsonTranspilersRuntimeError, BsonTranspilersTypeError, - BsonTranspilersUnimplementedError + BsonTranspilersUnimplementedError, } = require('../helper/error'); const { removeQuotes } = require('../helper/format'); @@ -21,859 +21,934 @@ const DeclarationStore = require('./DeclarationStore'); * @param {ANTLRVisitor} ANTLRVisitor - An ANTLR-generated visitor class * @returns {CodeGenerationVisitor} */ -module.exports = (ANTLRVisitor) => class CodeGenerationVisitor extends ANTLRVisitor { - constructor() { - super(); - this.idiomatic = true; // PUBLIC - this.clearImports(); - this.state = { declarations: new DeclarationStore() }; - } - - clearImports() { - this.requiredImports = {}; - [300, 301, 302, 303, 304, 305, 306].forEach( - (i) => (this.requiredImports[i] = []) - ); - } - - /** - * Start the compiler at this.startRule. - * - * "Return" methods are overridden only by the object generator. All - * generators or visitors that translate code to code should not need to - * override these methods. - * - * @param {ParserRuleContext} ctx - * @return {*} - */ - returnResult(ctx) { - const rule = `visit${this.startRule.replace(/^\w/, c => c.toUpperCase())}`; - if (!this.startRule || !(rule in this)) { - throw new BsonTranspilersInternalError( - 'Unimplemented Visitor: the entry rule for the compiler must be set' +module.exports = (ANTLRVisitor) => + class CodeGenerationVisitor extends ANTLRVisitor { + constructor() { + super(); + this.idiomatic = true; // PUBLIC + this.clearImports(); + this.state = { declarations: new DeclarationStore() }; + } + + clearImports() { + this.requiredImports = {}; + [300, 301, 302, 303, 304, 305, 306].forEach( + (i) => (this.requiredImports[i] = []) ); } - return this[rule](ctx); - } - - returnResultWithDeclarations(ctx) { - let result = this.returnResult(ctx); - if (this.getState().declarations.length() > 0) { - result = `${this.getState().declarations.toString() + '\n\n'}${result}`; - } - return result; - } - - /** - * PUBLIC: This is the entry point for the compiler. Each visitor must define - * an attribute called "startNode". - * - * @param {ParserRuleContext} ctx - * @param {Boolean} useDeclarations - prepend the result string with declarations - * @return {String} - */ - start(ctx, useDeclarations = false) { - return (useDeclarations ? this.returnResultWithDeclarations(ctx) : this.returnResult(ctx)).trim(); - } - - getState() { - return this.state; - } - - clearDeclarations() { - this.getState().declarations.clear(); - } - - /** - * PUBLIC: As code is generated, any classes that require imports are tracked - * in this.Imports. Each class has a "code" defined in the symbol table. - * The imports are then generated based on the output language templates. - * @param {String} mode - * @param {Boolean} driverSyntax (optional) - * @return {String} - The list of imports in the target language. - */ - getImports(mode, driverSyntax) { - const importTemplate = this.Imports.import.template ? - this.Imports.import.template : - (s) => ( - Object.values(s) - .filter((a, i) => (Object.values(s).indexOf(a) === i)) - .join('\n') - ); - // Remove empty arrays because js [] is not falsey :( - [300, 301, 302, 303, 304, 305, 306].forEach( - (i) => { + + /** + * Start the compiler at this.startRule. + * + * "Return" methods are overridden only by the object generator. All + * generators or visitors that translate code to code should not need to + * override these methods. + * + * @param {ParserRuleContext} ctx + * @return {*} + */ + returnResult(ctx) { + const rule = `visit${this.startRule.replace(/^\w/, (c) => + c.toUpperCase() + )}`; + if (!this.startRule || !(rule in this)) { + throw new BsonTranspilersInternalError( + 'Unimplemented Visitor: the entry rule for the compiler must be set' + ); + } + return this[rule](ctx); + } + + returnResultWithDeclarations(ctx) { + let result = this.returnResult(ctx); + if (this.getState().declarations.length() > 0) { + result = `${this.getState().declarations.toString() + '\n\n'}${result}`; + } + return result; + } + + /** + * PUBLIC: This is the entry point for the compiler. Each visitor must define + * an attribute called "startNode". + * + * @param {ParserRuleContext} ctx + * @param {Boolean} useDeclarations - prepend the result string with declarations + * @return {String} + */ + start(ctx, useDeclarations = false) { + return ( + useDeclarations + ? this.returnResultWithDeclarations(ctx) + : this.returnResult(ctx) + ).trim(); + } + + getState() { + return this.state; + } + + clearDeclarations() { + this.getState().declarations.clear(); + } + + /** + * PUBLIC: As code is generated, any classes that require imports are tracked + * in this.Imports. Each class has a "code" defined in the symbol table. + * The imports are then generated based on the output language templates. + * @param {String} mode + * @param {Boolean} driverSyntax (optional) + * @return {String} - The list of imports in the target language. + */ + getImports(mode, driverSyntax) { + const importTemplate = this.Imports.import.template + ? this.Imports.import.template + : (s) => + Object.values(s) + .filter((a, i) => Object.values(s).indexOf(a) === i) + .join('\n'); + // Remove empty arrays because js [] is not falsey :( + [300, 301, 302, 303, 304, 305, 306].forEach((i) => { if (i in this.requiredImports && this.requiredImports[i].length === 0) { this.requiredImports[i] = false; } }); - this.requiredImports.driver = !!driverSyntax; - const imports = {}; - for (const code of Object.keys(this.requiredImports)) { - if ( - this.requiredImports[code] && - this.Imports[code] && - this.Imports[code].template - ) { - imports[code] = this.Imports[code].template(this.requiredImports[code], mode); - } - } - return importTemplate(imports); - } - - /** - * Used by the generators. Makes a copy of the required imports so - * can be rolled back after a recursion if needed. - * - * @return {Object} - */ - deepCopyRequiredImports() { - const copy = Object.assign({}, this.requiredImports); - [300, 301, 302, 303, 304, 305, 306].forEach((i) => { - copy[i] = Array.from(this.requiredImports[i]); - }); - return copy; - } - - /** - * If the compiler reaches a expression in the input language - * that is not implemented yet. - * - * @param {ParserRuleContext} ctx - */ - unimplemented(ctx) { - const name = this.renameNode(ctx.constructor.name); - throw new BsonTranspilersUnimplementedError( - `'${name}' not yet implemented` - ); - } - - /** - * Some grammar definitions are written so that comparisons will chain and add - * nodes with a single child when the expression does *not* match. This is a - * helper method (right now used just by Python) that skips nodes downwards - * until a node with multiple children is found, or a node matches "goal". - * - * @param {ParserRuleContext} ctx - * @param {String} goal - Optional: the name of the child to find. - * @return {ParserRuleContext} - */ - skipFakeNodesDown(ctx, goal) { /* eslint no-unused-vars: 0 */ - return ctx; - } - - _getType(ctx) { - if (ctx.type !== undefined) { + this.requiredImports.driver = !!driverSyntax; + const imports = {}; + for (const code of Object.keys(this.requiredImports)) { + if ( + this.requiredImports[code] && + this.Imports[code] && + this.Imports[code].template + ) { + imports[code] = this.Imports[code].template( + this.requiredImports[code], + mode + ); + } + } + return importTemplate(imports); + } + + /** + * Used by the generators. Makes a copy of the required imports so + * can be rolled back after a recursion if needed. + * + * @return {Object} + */ + deepCopyRequiredImports() { + const copy = Object.assign({}, this.requiredImports); + [300, 301, 302, 303, 304, 305, 306].forEach((i) => { + copy[i] = Array.from(this.requiredImports[i]); + }); + return copy; + } + + /** + * If the compiler reaches a expression in the input language + * that is not implemented yet. + * + * @param {ParserRuleContext} ctx + */ + unimplemented(ctx) { + const name = this.renameNode(ctx.constructor.name); + throw new BsonTranspilersUnimplementedError( + `'${name}' not yet implemented` + ); + } + + /** + * Some grammar definitions are written so that comparisons will chain and add + * nodes with a single child when the expression does *not* match. This is a + * helper method (right now used just by Python) that skips nodes downwards + * until a node with multiple children is found, or a node matches "goal". + * + * @param {ParserRuleContext} ctx + * @param {String} goal - Optional: the name of the child to find. + * @return {ParserRuleContext} + */ + skipFakeNodesDown(ctx, goal) { + /* eslint no-unused-vars: 0 */ return ctx; } - if (!ctx.children) { + + _getType(ctx) { + if (ctx.type !== undefined) { + return ctx; + } + if (!ctx.children) { + return null; + } + for (const c of ctx.children) { + const typed = this._getType(c); + if (typed) { + return typed; + } + } return null; } - for (const c of ctx.children) { - const typed = this._getType(c); - if (typed) { - return typed; - } - } - return null; - } - - /** - * Recursively descend down the tree looking for a node with the type set. - * Returns the first child node with a type set. - * - * @param {ParserRuleContext} ctx - * @return {ParserRuleContext} - */ - findTypedNode(ctx) { - const typed = this._getType(ctx); - if (!typed) { - throw new BsonTranspilersInternalError('Type not set on any child nodes'); - } - return typed; - } - - /** - * Get the 'originalType' of ctx, of if it's undefined, keep checking parent - * nodes until an original type is found. Otherwise null. - * - * @param {ParserRuleContext} ctx - * @return {ParserRuleContext} - */ - getParentOriginalType(ctx) { - if (ctx.originalType !== undefined) { - return ctx.originalType; - } - if (ctx.parentCtx) { - return this.getParentOriginalType(ctx.parentCtx); - } - return null; - } - - compareTypes(expectedType, type, ctx, result) { - // If the types are exactly the same, just return. - if (expectedType.indexOf(type) !== -1 || - expectedType.indexOf(type.id) !== -1) { - return result; + + /** + * Recursively descend down the tree looking for a node with the type set. + * Returns the first child node with a type set. + * + * @param {ParserRuleContext} ctx + * @return {ParserRuleContext} + */ + findTypedNode(ctx) { + const typed = this._getType(ctx); + if (!typed) { + throw new BsonTranspilersInternalError( + 'Type not set on any child nodes' + ); + } + return typed; + } + + /** + * Get the 'originalType' of ctx, of if it's undefined, keep checking parent + * nodes until an original type is found. Otherwise null. + * + * @param {ParserRuleContext} ctx + * @return {ParserRuleContext} + */ + getParentOriginalType(ctx) { + if (ctx.originalType !== undefined) { + return ctx.originalType; + } + if (ctx.parentCtx) { + return this.getParentOriginalType(ctx.parentCtx); + } + return null; } - const numericTypes = [ - this.Types._integer, this.Types._decimal, this.Types._hex, - this.Types._octal, this.Types._long - ]; - // If both expected and node are numeric literals, cast + return - for (let i = 0; i < expectedType.length; i++) { - if (numericTypes.indexOf(type) !== -1 && - numericTypes.indexOf(expectedType[i]) !== -1) { - // Need to visit the octal node always - if (type.id === '_octal') { - return this.leafHelper( - expectedType[i], - { + compareTypes(expectedType, type, ctx, result) { + // If the types are exactly the same, just return. + if ( + expectedType.indexOf(type) !== -1 || + expectedType.indexOf(type.id) !== -1 + ) { + return result; + } + + const numericTypes = [ + this.Types._integer, + this.Types._decimal, + this.Types._hex, + this.Types._octal, + this.Types._long, + ]; + // If both expected and node are numeric literals, cast + return + for (let i = 0; i < expectedType.length; i++) { + if ( + numericTypes.indexOf(type) !== -1 && + numericTypes.indexOf(expectedType[i]) !== -1 + ) { + // Need to visit the octal node always + if (type.id === '_octal') { + return this.leafHelper(expectedType[i], { type: expectedType[i], originalType: type.id, - getText: () => ( this.visit(ctx) ) - } - ); + getText: () => this.visit(ctx), + }); + } + const child = this.skipFakeNodesDown(ctx); + child.originalType = type; + child.type = expectedType[i]; + return this.leafHelper(expectedType[i], child); } - const child = this.skipFakeNodesDown(ctx); - child.originalType = type; - child.type = expectedType[i]; - return this.leafHelper(expectedType[i], child); } - } - // If the expected type is "numeric", accept the number basic & bson types - if (expectedType.indexOf(this.Types._numeric) !== -1 && - (numericTypes.indexOf(type) !== -1 || (type.code === 106 || - type.code === 105 || type.code === 104))) { - return result; - } - // If the expected type is any number, accept float/int/_numeric - if ((numericTypes.some((t) => ( expectedType.indexOf(t) !== -1))) && - (type.code === 106 || type.code === 105 || type.code === 104 || - type === this.Types._numeric)) { - return result; - } - return null; - } - - /** - * Convert between numeric types. Required so that we don't end up with - * strange conversions like 'Int32(Double(2))', and can just generate '2'. - * - * @param {Array} expectedType - types to cast to. - * @param {ParserRuleContext} ctx - ctx to cast from, if valid. - * - * @returns {String} - visited result, or null on error. - */ - castType(expectedType, ctx) { - const result = this.visit(ctx); - const typedCtx = this.findTypedNode(ctx); - let type = typedCtx.type; - - let equal = this.compareTypes(expectedType, type, ctx, result); - while (equal === null) { - if (type.type === null) { - return null; + // If the expected type is "numeric", accept the number basic & bson types + if ( + expectedType.indexOf(this.Types._numeric) !== -1 && + (numericTypes.indexOf(type) !== -1 || + type.code === 106 || + type.code === 105 || + type.code === 104) + ) { + return result; } - type = type.type; - equal = this.compareTypes(expectedType, type, ctx, result); - } - return equal; - } - - /** - * Validate each argument against the expected argument types defined in the - * Symbol table. - * - * @param {Array} expected - An array of arrays where each subarray represents - * possible argument types for that index. - * @param {Array} args - empty if no args. - * @param {String} name - The name of the function for error reporting. - * @param {Object} namedArgs - Optional: if named arguments exist, this is the - * mapping of name to default value. - * - * @returns {Array} - Array containing the generated output for each argument. - */ - checkArguments(expected, args, name, namedArgs) { - const argStr = []; - if (args.length === 0) { - if (expected.length === 0 || expected[0].indexOf(null) !== -1) { - return argStr; - } - throw new BsonTranspilersArgumentError( - `Argument count mismatch: '${name}' requires least one argument` - ); - } - if (args.length > expected.length) { - throw new BsonTranspilersArgumentError( - `Argument count mismatch: '${name}' expects ${ - expected.length} args and got ${args.length}` - ); + // If the expected type is any number, accept float/int/_numeric + if ( + numericTypes.some((t) => expectedType.indexOf(t) !== -1) && + (type.code === 106 || + type.code === 105 || + type.code === 104 || + type === this.Types._numeric) + ) { + return result; + } + return null; } - for (let i = 0; i < expected.length; i++) { - if (args[i] === undefined) { - if (expected[i].indexOf(null) !== -1) { + + /** + * Convert between numeric types. Required so that we don't end up with + * strange conversions like 'Int32(Double(2))', and can just generate '2'. + * + * @param {Array} expectedType - types to cast to. + * @param {ParserRuleContext} ctx - ctx to cast from, if valid. + * + * @returns {String} - visited result, or null on error. + */ + castType(expectedType, ctx) { + const result = this.visit(ctx); + const typedCtx = this.findTypedNode(ctx); + let type = typedCtx.type; + + let equal = this.compareTypes(expectedType, type, ctx, result); + while (equal === null) { + if (type.type === null) { + return null; + } + type = type.type; + equal = this.compareTypes(expectedType, type, ctx, result); + } + return equal; + } + + /** + * Validate each argument against the expected argument types defined in the + * Symbol table. + * + * @param {Array} expected - An array of arrays where each subarray represents + * possible argument types for that index. + * @param {Array} args - empty if no args. + * @param {String} name - The name of the function for error reporting. + * @param {Object} namedArgs - Optional: if named arguments exist, this is the + * mapping of name to default value. + * + * @returns {Array} - Array containing the generated output for each argument. + */ + checkArguments(expected, args, name, namedArgs) { + const argStr = []; + if (args.length === 0) { + if (expected.length === 0 || expected[0].indexOf(null) !== -1) { return argStr; } throw new BsonTranspilersArgumentError( - `Argument count mismatch: too few arguments passed to '${name}'` + `Argument count mismatch: '${name}' requires least one argument` ); } - - const toCompare = this.checkNamedArgs(expected[i], args[i], namedArgs); - const result = this.castType(...toCompare); - if (result === null) { - const typeStr = expected[i].map((e) => { - const id = e && e.id ? e.id : e; - return e ? id : '[optional]'; - }).join(', '); - const message = `Argument type mismatch: '${name}' expects types ${ - typeStr} but got type ${this.findTypedNode(args[i]).type.id - } for argument at index ${i}`; - - throw new BsonTranspilersArgumentError(message); - } - argStr.push(result); - } - return argStr; - } - - /* - * Overriden only by the object generator. - */ - returnFunctionCallLhs(code, name) { - return name; - } - returnFunctionCallLhsRhs(lhs, rhs, lhsType, l) { - if (lhsType.argsTemplate) { - rhs = lhsType.argsTemplate.bind(this.getState())(l, ...rhs); - } else { - rhs = `(${rhs.join(', ')})`; - } - return `${lhs}${rhs}`; - } - - returnAttributeAccess(lhs, rhs, type) { - if (type && type.attr[rhs].template) { - return type.attr[rhs].template(lhs, rhs); - } - return `${lhs}.${rhs}`; - } - returnParenthesis(expr) { - return `(${expr})`; - } - returnSet(args, ctx) { - return this.visitChildren(ctx); - } - - /** - * Generate a function call, diverting to process or emit methods if they - * exist. - * @param {ParserRuleContext} ctx - * @return {*} - */ - generateFunctionCall(ctx) { - const funcNameNode = this.getFunctionCallName(ctx); - const lhs = this.visit(funcNameNode); - let l = lhs; - let lhsType = this.findTypedNode(funcNameNode).type; - if (typeof lhsType === 'string') { - lhsType = this.Types[lhsType]; - } - - // Special case - if (`process${lhsType.id}` in this) { - return this[`process${lhsType.id}`](ctx); - } - if (`emit${lhsType.id}` in this) { - return this[`emit${lhsType.id}`](ctx); - } - - // Check if left-hand-side is callable - ctx.type = lhsType.type; - if (!lhsType.callable) { - throw new BsonTranspilersTypeError(`${lhsType.id} is not callable`); - } - - // Check arguments - const expectedArgs = lhsType.args; - const rhs = this.checkArguments( - expectedArgs, this.getArguments(ctx), lhsType.id, lhsType.namedArgs - ); - - // Apply the arguments template - if (lhsType.argsTemplate) { - l = this.visit(this.getIfIdentifier(funcNameNode)); - } - const expr = this.returnFunctionCallLhsRhs(lhs, rhs, lhsType, l); - const constructor = lhsType.callable === this.SYMBOL_TYPE.CONSTRUCTOR; - - return this.Syntax.new.template - ? this.Syntax.new.template(expr, !constructor, lhsType.code) - : expr; - } - - /** - * Visit a symbol and error if undefined. Otherwise check symbol table and - * replace if template exists. - * - * @param {ParserRuleContext} ctx - * @return {*} - */ - generateIdentifier(ctx) { - const name = this.visitChildren(ctx); - ctx.type = this.Symbols[name]; - if (ctx.type === undefined) { - throw new BsonTranspilersReferenceError(`Symbol '${name}' is undefined`); - } - this.requiredImports[ctx.type.code] = true; - - if (ctx.type.template) { - return ctx.type.template(); - } - return this.returnFunctionCallLhs(ctx.type.code, name); - } - - /** - * Generate attribute access. Visitors are in charge of making sure that - * if lhs type attribute access is not supported, an error is thrown. - * - * NOTE: If the attribute isn't defined on the lhsType, then it will check the - * lhsType.type to see if defined. It will loop, checking the lhs type's type, - * until the attribute exists or the .type is null. If the type is null, - * and the class is a BSON class, then error. If it is a native type however, - * do not error and just return the original attribute. This is to not annoy - * people with attribute errors in languages where it wouldn't throw anyway. - * It feels better to be strict about BSON than the whole language, but it's - * up for debate. TODO: could set type checking to 'strict' or 'non-strict' in - * the visitor, and then only error if we are compiling from a strictly typed - * language. - * - * @param {ParserRuleContext} ctx - * @return {*} - */ - generateAttributeAccess(ctx) { - if ('emitAttributeAccess' in this) { - return this.emitAttributeAccess(ctx); - } - const lhsNode = this.getAttributeLHS(ctx); - const lhs = this.visit(lhsNode); - const rhs = this.getAttributeRHS(ctx).getText(); - - let type = this.findTypedNode(lhsNode).type; - if (typeof type === 'string') { - type = this.Types[type]; - } - while (type !== null) { - if (!(Object.prototype.hasOwnProperty.call(type.attr, rhs))) { - if (type.id in this.BsonTypes && this.BsonTypes[type.id].id !== null) { // TODO: tell symbols vs types - throw new BsonTranspilersAttributeError( - `'${rhs}' not an attribute of ${type.id}` + if (args.length > expected.length) { + throw new BsonTranspilersArgumentError( + `Argument count mismatch: '${name}' expects ${expected.length} args and got ${args.length}` + ); + } + for (let i = 0; i < expected.length; i++) { + if (args[i] === undefined) { + if (expected[i].indexOf(null) !== -1) { + return argStr; + } + throw new BsonTranspilersArgumentError( + `Argument count mismatch: too few arguments passed to '${name}'` ); } - type = type.type; - if (typeof type === 'string') { - type = this.Types[type]; + + const toCompare = this.checkNamedArgs(expected[i], args[i], namedArgs); + const result = this.castType(...toCompare); + if (result === null) { + const typeStr = expected[i] + .map((e) => { + const id = e && e.id ? e.id : e; + return e ? id : '[optional]'; + }) + .join(', '); + const message = `Argument type mismatch: '${name}' expects types ${typeStr} but got type ${ + this.findTypedNode(args[i]).type.id + } for argument at index ${i}`; + + throw new BsonTranspilersArgumentError(message); } + argStr.push(result); + } + return argStr; + } + + /* + * Overriden only by the object generator. + */ + returnFunctionCallLhs(code, name) { + return name; + } + returnFunctionCallLhsRhs(lhs, rhs, lhsType, l) { + if (lhsType.argsTemplate) { + rhs = lhsType.argsTemplate.bind(this.getState())(l, ...rhs); } else { - break; + rhs = `(${rhs.join(', ')})`; } + return `${lhs}${rhs}`; } - if (type === null) { - ctx.type = this.Types._undefined; - // TODO: how strict do we want to be? + + returnAttributeAccess(lhs, rhs, type) { + if (type && type.attr[rhs].template) { + return type.attr[rhs].template(lhs, rhs); + } + return `${lhs}.${rhs}`; + } + returnParenthesis(expr) { + return `(${expr})`; + } + returnSet(args, ctx) { + return this.visitChildren(ctx); + } + + /** + * Generate a function call, diverting to process or emit methods if they + * exist. + * @param {ParserRuleContext} ctx + * @return {*} + */ + generateFunctionCall(ctx) { + const funcNameNode = this.getFunctionCallName(ctx); + const lhs = this.visit(funcNameNode); + let l = lhs; + let lhsType = this.findTypedNode(funcNameNode).type; + if (typeof lhsType === 'string') { + lhsType = this.Types[lhsType]; + } + + // Special case + if (`process${lhsType.id}` in this) { + return this[`process${lhsType.id}`](ctx); + } + if (`emit${lhsType.id}` in this) { + return this[`emit${lhsType.id}`](ctx); + } + + // Check if left-hand-side is callable + ctx.type = lhsType.type; + if (!lhsType.callable) { + throw new BsonTranspilersTypeError(`${lhsType.id} is not callable`); + } + + // Check arguments + const expectedArgs = lhsType.args; + const rhs = this.checkArguments( + expectedArgs, + this.getArguments(ctx), + lhsType.id, + lhsType.namedArgs + ); + + // Apply the arguments template + if (lhsType.argsTemplate) { + l = this.visit(this.getIfIdentifier(funcNameNode)); + } + const expr = this.returnFunctionCallLhsRhs(lhs, rhs, lhsType, l); + const constructor = lhsType.callable === this.SYMBOL_TYPE.CONSTRUCTOR; + + return this.Syntax.new.template + ? this.Syntax.new.template(expr, !constructor, lhsType.code) + : expr; + } + + /** + * Visit a symbol and error if undefined. Otherwise check symbol table and + * replace if template exists. + * + * @param {ParserRuleContext} ctx + * @return {*} + */ + generateIdentifier(ctx) { + const name = this.visitChildren(ctx); + ctx.type = this.Symbols[name]; + if (ctx.type === undefined) { + throw new BsonTranspilersReferenceError( + `Symbol '${name}' is undefined` + ); + } + this.requiredImports[ctx.type.code] = true; + + if (ctx.type.template) { + return ctx.type.template(); + } + return this.returnFunctionCallLhs(ctx.type.code, name); + } + + /** + * Generate attribute access. Visitors are in charge of making sure that + * if lhs type attribute access is not supported, an error is thrown. + * + * NOTE: If the attribute isn't defined on the lhsType, then it will check the + * lhsType.type to see if defined. It will loop, checking the lhs type's type, + * until the attribute exists or the .type is null. If the type is null, + * and the class is a BSON class, then error. If it is a native type however, + * do not error and just return the original attribute. This is to not annoy + * people with attribute errors in languages where it wouldn't throw anyway. + * It feels better to be strict about BSON than the whole language, but it's + * up for debate. TODO: could set type checking to 'strict' or 'non-strict' in + * the visitor, and then only error if we are compiling from a strictly typed + * language. + * + * @param {ParserRuleContext} ctx + * @return {*} + */ + generateAttributeAccess(ctx) { + if ('emitAttributeAccess' in this) { + return this.emitAttributeAccess(ctx); + } + const lhsNode = this.getAttributeLHS(ctx); + const lhs = this.visit(lhsNode); + const rhs = this.getAttributeRHS(ctx).getText(); + + let type = this.findTypedNode(lhsNode).type; + if (typeof type === 'string') { + type = this.Types[type]; + } + while (type !== null) { + if (!Object.prototype.hasOwnProperty.call(type.attr, rhs)) { + if ( + type.id in this.BsonTypes && + this.BsonTypes[type.id].id !== null + ) { + // TODO: tell symbols vs types + throw new BsonTranspilersAttributeError( + `'${rhs}' not an attribute of ${type.id}` + ); + } + type = type.type; + if (typeof type === 'string') { + type = this.Types[type]; + } + } else { + break; + } + } + if (type === null) { + ctx.type = this.Types._undefined; + // TODO: how strict do we want to be? + return this.returnAttributeAccess(lhs, rhs, type); + } + ctx.type = type.attr[rhs]; return this.returnAttributeAccess(lhs, rhs, type); } - ctx.type = type.attr[rhs]; - return this.returnAttributeAccess(lhs, rhs, type); - } - - /** - * This helper function checks for an emit method then applies the templates - * if they exist for a function call node. Used primarily by process methods. - * - * @param {ParserRuleContext} ctx - The function call node - * @param {Object} lhsType - The type - * @param {Array} args - Arguments to the template - * @param {String} defaultT - The default name if no template exists. - * @param {String} defaultA - The default arguments if no argsTemplate exists. - * @param {Boolean} skipNew - Optional: If true, never add new. - * @param {Boolean} skipLhs - Optional: If true, don't add lhs to result. - * - * @return {*} - */ - generateCall(ctx, lhsType, args, defaultT, defaultA, skipNew, skipLhs) { - if (`emit${lhsType.id}` in this) { - return this[`emit${lhsType.id}`](ctx); - } - const lhsArg = lhsType.template - ? lhsType.template() - : defaultT; - const rhs = lhsType.argsTemplate - ? lhsType.argsTemplate.bind(this.getState())(lhsArg, ...args) - : defaultA; - const lhs = skipLhs ? '' : lhsArg; - return this.Syntax.new.template - ? this.Syntax.new.template(`${lhs}${rhs}`, skipNew, lhsType.code) - : `${lhs}${rhs}`; - } - - generateObjectLiteral(ctx) { - if (this.idiomatic && 'emitIdiomaticObjectLiteral' in this) { - return this.emitIdiomaticObjectLiteral(ctx); - } - const type = this.Types._object; - if (`emit${type.id}` in this) { - return this[`emit${type.id}`](ctx); - } - ctx.type = type; - this.requiredImports[10] = true; - ctx.indentDepth = this.findIndentDepth(ctx) + 1; - let args = ''; - const keysAndValues = this.getKeyValueList(ctx); - if (ctx.type.argsTemplate) { - args = ctx.type.argsTemplate.bind(this.getState())( - this.getKeyValueList(ctx).map((k) => { - return [this.getKeyStr(k), this.visit(this.getValue(k))]; - }), - ctx.indentDepth); - } else { - args = this.visit(keysAndValues); - } - ctx.indentDepth--; - if (ctx.type.template) { - return ctx.type.template.bind(this.getState())(args, ctx.indentDepth); - } - return this.visitChildren(ctx); - } - - generateArrayLiteral(ctx) { - const type = this.Types._array; - if (`emit${type.id}` in this) { - return this[`emit${type.id}`](ctx); - } - ctx.type = type; - ctx.indentDepth = this.findIndentDepth(ctx) + 1; - this.requiredImports[9] = true; - let args = ''; - const list = this.getList(ctx); - const visitedElements = list.map((child) => ( this.visit(child) )); - if (ctx.type.argsTemplate) { // NOTE: not currently being used anywhere. - args = visitedElements.map((arg, index) => { - const last = !visitedElements[index + 1]; - return ctx.type.argsTemplate.bind(this.getState())(arg, ctx.indentDepth, last); - }).join(''); - } else { - args = visitedElements.join(', '); - } - if (ctx.type.template) { - return ctx.type.template(args, ctx.indentDepth); - } - return this.visitChildren(ctx); - } - - /** - * Called from the process methods of numeric class constructors. - * We know there will be a single (sometimes optional) argument that is - * a number or string. - * - * Required because we want to pass the argument type to the template - * so that we can determine if the generated number needs to be parsed or - * casted. - * - * @param {ParserRuleContext} ctx - * @returns {String} - */ - generateNumericClass(ctx) { - const funcNameNode = this.getFunctionCallName(ctx); - const lhsStr = this.visit(funcNameNode); - let lhsType = this.findTypedNode(funcNameNode).type; - if (typeof lhsType === 'string') { - lhsType = this.Types[lhsType]; - } - ctx.type = lhsType.type; - if (`emit${lhsType.id}` in this) { - this[`emit${lhsType.id}`](ctx); - } - - // Get the original type of the argument - const expectedArgs = lhsType.args; - let args = this.checkArguments( - expectedArgs, this.getArguments(ctx), lhsType.id, lhsType.namedArgs - ); - let argType; - - if (args.length === 0) { - args = ['0']; - argType = this.Types._integer; - } else { - const argNode = this.getArgumentAt(ctx, 0); - const typed = this.findTypedNode(argNode); - argType = typed.originalType !== undefined ? - typed.originalType : - typed.type; - } - - return this.generateCall( - ctx, lhsType, [args[0], argType.id], lhsStr, `(${args.join(', ')})` - ); - } - - /** - * Same as generateCall but for type literals instead of function calls. - * - * @param {ParserRuleContext} ctx - The literal node - * @param {Object} lhsType - The type - * @param {Array} args - Arguments to the template - * @param {String} defaultT - The default if no template exists. - * @param {Boolean} skipNew - Optional: If true, never add new. - * - * @return {*} - */ - generateLiteral(ctx, lhsType, args, defaultT, skipNew) { - if (`emit${lhsType.id}` in this) { - return this[`emit${lhsType.id}`](ctx); - } - if (lhsType.template) { - const str = lhsType.template(...args); + + /** + * This helper function checks for an emit method then applies the templates + * if they exist for a function call node. Used primarily by process methods. + * + * @param {ParserRuleContext} ctx - The function call node + * @param {Object} lhsType - The type + * @param {Array} args - Arguments to the template + * @param {String} defaultT - The default name if no template exists. + * @param {String} defaultA - The default arguments if no argsTemplate exists. + * @param {Boolean} skipNew - Optional: If true, never add new. + * @param {Boolean} skipLhs - Optional: If true, don't add lhs to result. + * + * @return {*} + */ + generateCall(ctx, lhsType, args, defaultT, defaultA, skipNew, skipLhs) { + if (`emit${lhsType.id}` in this) { + return this[`emit${lhsType.id}`](ctx); + } + const lhsArg = lhsType.template ? lhsType.template() : defaultT; + const rhs = lhsType.argsTemplate + ? lhsType.argsTemplate.bind(this.getState())(lhsArg, ...args) + : defaultA; + const lhs = skipLhs ? '' : lhsArg; return this.Syntax.new.template - ? this.Syntax.new.template(str, skipNew, lhsType.code) - : str; - } - return defaultT; - } - - /** - * Helper method for generating literals. Called from the visit methods for - * literal nodes. - * - * @param {Object} setType - the type to set the literal to. - * @param {ParserRuleContext} ctx - the tree node. - * @return {*} - */ - leafHelper(setType, ctx) { - ctx.type = setType; - this.requiredImports[ctx.type.code] = true; - - // Pass the original argument type to the template, not the casted type. - const parentOriginalType = this.getParentOriginalType(ctx); - const type = parentOriginalType === null ? ctx.type : parentOriginalType; - - if (`process${ctx.type.id}` in this) { - return this[`process${ctx.type.id}`](ctx); - } - if (`emit${ctx.type.id}` in this) { - return this[`emit${ctx.type.id}`](ctx); - } - const children = ctx.getText(); - return this.generateLiteral(ctx, ctx.type, [children, type.id], children, true); - } - - findIndentDepth(ctx) { - while (ctx.indentDepth === undefined) { - ctx = ctx.parentCtx; - if (ctx === undefined || ctx === null) { - return -1; - } - } - return ctx.indentDepth; - } - - /** - * Process required for BSON regex types so we can validate the flags. - * - * @param {ParserRuleContext} ctx - * @param {Object} type - The type of the LHS - * @param {Object} symbolType - The type of the Symbol - * @return {*} - */ - generateBSONRegex(ctx, type, symbolType) { - if (`emit${type.id}` in this) { - return this[`emit${type.id}`](ctx); - } - ctx.type = type; - - const args = this.checkArguments( - symbolType.args, this.getArguments(ctx), type.id, symbolType.namedArgs - ); - - const expectedFlags = this.Syntax.bsonRegexFlags - ? this.Syntax.bsonRegexFlags - : { i: 'i', m: 'm', x: 'x', s: 's', l: 'l', u: 'u' }; - - let flags = null; - const pattern = args[0]; - if (args.length === 2) { - flags = args[1]; - for (let i = 1; i < flags.length - 1; i++) { - if (!(flags[i] in expectedFlags)) { - throw new BsonTranspilersRuntimeError( - `Invalid flag '${flags[i]}' passed to Regexp` - ); + ? this.Syntax.new.template(`${lhs}${rhs}`, skipNew, lhsType.code) + : `${lhs}${rhs}`; + } + + generateObjectLiteral(ctx) { + if (this.idiomatic && 'emitIdiomaticObjectLiteral' in this) { + return this.emitIdiomaticObjectLiteral(ctx); + } + const type = this.Types._object; + if (`emit${type.id}` in this) { + return this[`emit${type.id}`](ctx); + } + ctx.type = type; + this.requiredImports[10] = true; + ctx.indentDepth = this.findIndentDepth(ctx) + 1; + let args = ''; + const keysAndValues = this.getKeyValueList(ctx); + if (ctx.type.argsTemplate) { + args = ctx.type.argsTemplate.bind(this.getState())( + this.getKeyValueList(ctx).map((k) => { + return [this.getKeyStr(k), this.visit(this.getValue(k))]; + }), + ctx.indentDepth + ); + } else { + args = this.visit(keysAndValues); + } + ctx.indentDepth--; + if (ctx.type.template) { + return ctx.type.template.bind(this.getState())(args, ctx.indentDepth); + } + return this.visitChildren(ctx); + } + + generateArrayLiteral(ctx) { + const type = this.Types._array; + if (`emit${type.id}` in this) { + return this[`emit${type.id}`](ctx); + } + ctx.type = type; + ctx.indentDepth = this.findIndentDepth(ctx) + 1; + this.requiredImports[9] = true; + let args = ''; + const list = this.getList(ctx); + const visitedElements = list.map((child) => this.visit(child)); + if (ctx.type.argsTemplate) { + // NOTE: not currently being used anywhere. + args = visitedElements + .map((arg, index) => { + const last = !visitedElements[index + 1]; + return ctx.type.argsTemplate.bind(this.getState())( + arg, + ctx.indentDepth, + last + ); + }) + .join(''); + } else { + args = visitedElements.join(', '); + } + if (ctx.type.template) { + return ctx.type.template(args, ctx.indentDepth); + } + return this.visitChildren(ctx); + } + + /** + * Called from the process methods of numeric class constructors. + * We know there will be a single (sometimes optional) argument that is + * a number or string. + * + * Required because we want to pass the argument type to the template + * so that we can determine if the generated number needs to be parsed or + * casted. + * + * @param {ParserRuleContext} ctx + * @returns {String} + */ + generateNumericClass(ctx) { + const funcNameNode = this.getFunctionCallName(ctx); + const lhsStr = this.visit(funcNameNode); + let lhsType = this.findTypedNode(funcNameNode).type; + if (typeof lhsType === 'string') { + lhsType = this.Types[lhsType]; + } + ctx.type = lhsType.type; + if (`emit${lhsType.id}` in this) { + this[`emit${lhsType.id}`](ctx); + } + + // Get the original type of the argument + const expectedArgs = lhsType.args; + let args = this.checkArguments( + expectedArgs, + this.getArguments(ctx), + lhsType.id, + lhsType.namedArgs + ); + let argType; + + if (args.length === 0) { + args = ['0']; + argType = this.Types._integer; + } else { + const argNode = this.getArgumentAt(ctx, 0); + const typed = this.findTypedNode(argNode); + argType = + typed.originalType !== undefined ? typed.originalType : typed.type; + } + + return this.generateCall( + ctx, + lhsType, + [args[0], argType.id], + lhsStr, + `(${args.join(', ')})` + ); + } + + /** + * Same as generateCall but for type literals instead of function calls. + * + * @param {ParserRuleContext} ctx - The literal node + * @param {Object} lhsType - The type + * @param {Array} args - Arguments to the template + * @param {String} defaultT - The default if no template exists. + * @param {Boolean} skipNew - Optional: If true, never add new. + * + * @return {*} + */ + generateLiteral(ctx, lhsType, args, defaultT, skipNew) { + if (`emit${lhsType.id}` in this) { + return this[`emit${lhsType.id}`](ctx); + } + if (lhsType.template) { + const str = lhsType.template(...args); + return this.Syntax.new.template + ? this.Syntax.new.template(str, skipNew, lhsType.code) + : str; + } + return defaultT; + } + + /** + * Helper method for generating literals. Called from the visit methods for + * literal nodes. + * + * @param {Object} setType - the type to set the literal to. + * @param {ParserRuleContext} ctx - the tree node. + * @return {*} + */ + leafHelper(setType, ctx) { + ctx.type = setType; + this.requiredImports[ctx.type.code] = true; + + // Pass the original argument type to the template, not the casted type. + const parentOriginalType = this.getParentOriginalType(ctx); + const type = parentOriginalType === null ? ctx.type : parentOriginalType; + + if (`process${ctx.type.id}` in this) { + return this[`process${ctx.type.id}`](ctx); + } + if (`emit${ctx.type.id}` in this) { + return this[`emit${ctx.type.id}`](ctx); + } + const children = ctx.getText(); + return this.generateLiteral( + ctx, + ctx.type, + [children, type.id], + children, + true + ); + } + + findIndentDepth(ctx) { + while (ctx.indentDepth === undefined) { + ctx = ctx.parentCtx; + if (ctx === undefined || ctx === null) { + return -1; } } - flags = flags.replace(/[imxlsu]/g, m => expectedFlags[m]); - } - - return this.generateCall( - ctx, symbolType, [pattern, flags], 'Regex', - `(${pattern}${flags ? ', ' + flags : ''})` - ); - } - - /** - * Code is processed in every language because want to generate the scope as - * a non-idiomatic document. - * - * @param {ParserRuleContext} ctx - * @param {Object} type - The type of the LHS - * @param {Object} symbolType - The type of the Symbol - * @param {boolean} requireString - if the code argument must be a string. - * @return {*} - */ - generateBSONCode(ctx, type, symbolType, requireString) { - if (`emit${type.id}` in this) { - return this[`emit${type.id}`](ctx); - } - ctx.type = type; - const argList = this.getArguments(ctx); - if (!(argList.length === 1 || argList.length === 2)) { - throw new BsonTranspilersArgumentError( - 'Argument count mismatch: Code requires one or two arguments' + return ctx.indentDepth; + } + + /** + * Process required for BSON regex types so we can validate the flags. + * + * @param {ParserRuleContext} ctx + * @param {Object} type - The type of the LHS + * @param {Object} symbolType - The type of the Symbol + * @return {*} + */ + generateBSONRegex(ctx, type, symbolType) { + if (`emit${type.id}` in this) { + return this[`emit${type.id}`](ctx); + } + ctx.type = type; + + const args = this.checkArguments( + symbolType.args, + this.getArguments(ctx), + type.id, + symbolType.namedArgs + ); + + const expectedFlags = this.Syntax.bsonRegexFlags + ? this.Syntax.bsonRegexFlags + : { i: 'i', m: 'm', x: 'x', s: 's', l: 'l', u: 'u' }; + + let flags = null; + const pattern = args[0]; + if (args.length === 2) { + flags = args[1]; + for (let i = 1; i < flags.length - 1; i++) { + if (!(flags[i] in expectedFlags)) { + throw new BsonTranspilersRuntimeError( + `Invalid flag '${flags[i]}' passed to Regexp` + ); + } + } + flags = flags.replace(/[imxlsu]/g, (m) => expectedFlags[m]); + } + + return this.generateCall( + ctx, + symbolType, + [pattern, flags], + 'Regex', + `(${pattern}${flags ? ', ' + flags : ''})` ); } - let code = ''; - if (requireString) { - const arg = this.getArgumentAt(ctx, 0); - code = this.visit(arg); - if (this.findTypedNode(arg).type !== this.Types._string) { + + /** + * Code is processed in every language because want to generate the scope as + * a non-idiomatic document. + * + * @param {ParserRuleContext} ctx + * @param {Object} type - The type of the LHS + * @param {Object} symbolType - The type of the Symbol + * @param {boolean} requireString - if the code argument must be a string. + * @return {*} + */ + generateBSONCode(ctx, type, symbolType, requireString) { + if (`emit${type.id}` in this) { + return this[`emit${type.id}`](ctx); + } + ctx.type = type; + const argList = this.getArguments(ctx); + if (!(argList.length === 1 || argList.length === 2)) { throw new BsonTranspilersArgumentError( - 'Argument type mismatch: Code requires first argument to be a string' + 'Argument count mismatch: Code requires one or two arguments' + ); + } + let code = ''; + if (requireString) { + const arg = this.getArgumentAt(ctx, 0); + code = this.visit(arg); + if (this.findTypedNode(arg).type !== this.Types._string) { + throw new BsonTranspilersArgumentError( + 'Argument type mismatch: Code requires first argument to be a string' + ); + } + } else { + code = removeQuotes(this.getArgumentAt(ctx, 0).getText()); + } + let scope = undefined; + let scopestr = ''; + + if (argList.length === 2) { + const idiomatic = this.idiomatic; + this.idiomatic = false; + const compareTo = this.checkNamedArgs( + [this.Types._object], + this.getArgumentAt(ctx, 1), + symbolType.namedArgs ); + scope = this.castType(...compareTo); + if (scope === null) { + throw new BsonTranspilersArgumentError( + "Code expects argument 'scope' to be object" + ); + } + this.idiomatic = idiomatic; + scopestr = `, ${scope}`; + this.requiredImports[113] = true; + this.requiredImports[10] = true; } - } else { - code = removeQuotes(this.getArgumentAt(ctx, 0).getText()); + return this.generateCall( + ctx, + symbolType, + [code, scope], + 'Code', + `(${code}${scopestr})` + ); } - let scope = undefined; - let scopestr = ''; - if (argList.length === 2) { - const idiomatic = this.idiomatic; - this.idiomatic = false; - const compareTo = this.checkNamedArgs( - [this.Types._object], this.getArgumentAt(ctx, 1), symbolType.namedArgs + /** + * Gets a process method because need to tell the template if + * the argument is a number or a date. + * + * @param {ParserRuleContext} ctx + * @returns {String} - generated code + */ + generateObjectIdFromTime(ctx) { + const funcNameNode = this.getFunctionCallName(ctx); + const lhsStr = this.visit(funcNameNode); + let lhsType = this.findTypedNode(funcNameNode).type; + if (typeof lhsType === 'string') { + lhsType = this.Types[lhsType]; + } + + const args = this.checkArguments( + lhsType.args, + this.getArguments(ctx), + lhsType.id, + lhsType.namedArgs ); - scope = this.castType(...compareTo); - if (scope === null) { - throw new BsonTranspilersArgumentError( - 'Code expects argument \'scope\' to be object' - ); + const isNumber = + this.findTypedNode(this.getArgumentAt(ctx, 0)).type.code !== 200; + return this.generateCall( + ctx, + lhsType, + [args[0], isNumber], + lhsStr, + `(${args.join(', ')})`, + true + ); + } + + generateFuncDefExpression() { + throw new BsonTranspilersUnimplementedError( + 'Support for exporting functions to languages other than javascript is not yet available.' + ); + } + + /** + * Overrides the ANTLR visitChildren method so that options can be set. + * + * @param {ParserRuleContext} ctx + * @param {Object} options: + * start - child index to start iterating at. + * end - child index to end iterating after. + * step - how many children to increment each step, 1 visits all children. + * separator - a string separator to go between generated children. + * ignore - an array of child indexes to skip. + * children - the set of children to visit. + * @returns {String} + */ + visitChildren(ctx, options) { + const opts = { + start: 0, + step: 1, + separator: '', + ignore: [], + children: ctx.children, + }; + Object.assign(opts, options ? options : {}); + opts.end = 'end' in opts ? opts.end : opts.children.length - 1; + + let code = ''; + for (let i = opts.start; i <= opts.end; i += opts.step) { + if (opts.ignore.indexOf(i) === -1) { + code = `${code}${this.visit(opts.children[i])}${ + i === opts.end ? '' : opts.separator + }`; + } } - this.idiomatic = idiomatic; - scopestr = `, ${scope}`; - this.requiredImports[113] = true; - this.requiredImports[10] = true; + return code; + } + + /** + * Visit a end-of-file symbol. Universal for all grammars. + * * + * @returns {String} + */ + visitEof() { + if (this.Syntax.eof.template) { + return this.Syntax.eof.template(); + } + return ''; + } + + /** + * Visit a end-of-line symbol. Universal for all grammars. + * * + * @returns {String} + */ + visitEos() { + if (this.Syntax.eos.template) { + return this.Syntax.eos.template(); + } + return '\n'; + } + + /** + * Visit a leaf node and return a string. Universal for all grammars. + * * + * @param {ParserRuleContext} ctx + * @returns {String} + */ + visitTerminal(ctx) { + return ctx.getText(); } - return this.generateCall( - ctx, symbolType, [code, scope], 'Code', `(${code}${scopestr})` - ); - } - - /** - * Gets a process method because need to tell the template if - * the argument is a number or a date. - * - * @param {ParserRuleContext} ctx - * @returns {String} - generated code - */ - generateObjectIdFromTime(ctx) { - const funcNameNode = this.getFunctionCallName(ctx); - const lhsStr = this.visit(funcNameNode); - let lhsType = this.findTypedNode(funcNameNode).type; - if (typeof lhsType === 'string') { - lhsType = this.Types[lhsType]; - } - - const args = this.checkArguments( - lhsType.args, this.getArguments(ctx), lhsType.id, lhsType.namedArgs - ); - const isNumber = this.findTypedNode( - this.getArgumentAt(ctx, 0)).type.code !== 200; - return this.generateCall( - ctx, lhsType, [args[0], isNumber], lhsStr, `(${args.join(', ')})`, true - ); - } - - generateFuncDefExpression() { - throw new BsonTranspilersUnimplementedError( - 'Support for exporting functions to languages other than javascript is not yet available.' - ); - } - - /** - * Overrides the ANTLR visitChildren method so that options can be set. - * - * @param {ParserRuleContext} ctx - * @param {Object} options: - * start - child index to start iterating at. - * end - child index to end iterating after. - * step - how many children to increment each step, 1 visits all children. - * separator - a string separator to go between generated children. - * ignore - an array of child indexes to skip. - * children - the set of children to visit. - * @returns {String} - */ - visitChildren(ctx, options) { - const opts = { - start: 0, step: 1, separator: '', ignore: [], children: ctx.children - }; - Object.assign(opts, options ? options : {}); - opts.end = ('end' in opts) ? opts.end : opts.children.length - 1; - - let code = ''; - for (let i = opts.start; i <= opts.end; i += opts.step) { - if (opts.ignore.indexOf(i) === -1) { - code = `${code}${this.visit( - opts.children[i] - )}${(i === opts.end) ? '' : opts.separator}`; - } - } - return code; - } - - /** - * Visit a end-of-file symbol. Universal for all grammars. - * * - * @returns {String} - */ - visitEof() { - if (this.Syntax.eof.template) { - return this.Syntax.eof.template(); - } - return ''; - } - - /** - * Visit a end-of-line symbol. Universal for all grammars. - * * - * @returns {String} - */ - visitEos() { - if (this.Syntax.eos.template) { - return this.Syntax.eos.template(); - } - return '\n'; - } - - /** - * Visit a leaf node and return a string. Universal for all grammars. - * * - * @param {ParserRuleContext} ctx - * @returns {String} - */ - visitTerminal(ctx) { - return ctx.getText(); - } -}; + }; diff --git a/packages/bson-transpilers/codegeneration/DeclarationStore.js b/packages/bson-transpilers/codegeneration/DeclarationStore.js index 5d9b373ab83..e0782ea6c20 100644 --- a/packages/bson-transpilers/codegeneration/DeclarationStore.js +++ b/packages/bson-transpilers/codegeneration/DeclarationStore.js @@ -43,7 +43,9 @@ class DeclarationStore { alreadyDeclared(templateID, varRoot, declaration) { const existing = this.candidates(templateID, varRoot); for (var i = 0; i < existing.length; i++) { - const candidate = `${this.varTemplateRoot(templateID, varRoot)}${i > 0 ? i : ''}`; + const candidate = `${this.varTemplateRoot(templateID, varRoot)}${ + i > 0 ? i : '' + }`; const current = this.vars[declaration(candidate)]; if (current !== undefined) { return current; @@ -53,7 +55,9 @@ class DeclarationStore { candidates(templateID, varRoot) { const varTemplateRoot = this.varTemplateRoot(templateID, varRoot); - return Object.values(this.vars).filter(varName => varName.startsWith(varTemplateRoot)); + return Object.values(this.vars).filter((varName) => + varName.startsWith(varTemplateRoot) + ); } clear() { diff --git a/packages/bson-transpilers/codegeneration/ErrorListener.js b/packages/bson-transpilers/codegeneration/ErrorListener.js index cd1be0a1fc1..511ab8bf02a 100644 --- a/packages/bson-transpilers/codegeneration/ErrorListener.js +++ b/packages/bson-transpilers/codegeneration/ErrorListener.js @@ -20,7 +20,12 @@ class ErrorListener extends antlr4.error.ErrorListener { * @param {string} payload - Stack trace */ syntaxError(recognizer, symbol, line, column, message, payload) { - throw new BsonTranspilersSyntaxError(message, { symbol, line, column, payload }); + throw new BsonTranspilersSyntaxError(message, { + symbol, + line, + column, + payload, + }); } } diff --git a/packages/bson-transpilers/codegeneration/csharp/Generator.js b/packages/bson-transpilers/codegeneration/csharp/Generator.js index 3912173e440..fb7b8c510b1 100644 --- a/packages/bson-transpilers/codegeneration/csharp/Generator.js +++ b/packages/bson-transpilers/codegeneration/csharp/Generator.js @@ -2,8 +2,9 @@ /* * Class for handling edge cases for csharp code generation. Defines "emit" methods. */ -module.exports = (Visitor) => class Generator extends Visitor { - constructor() { - super(); - } -}; +module.exports = (Visitor) => + class Generator extends Visitor { + constructor() { + super(); + } + }; diff --git a/packages/bson-transpilers/codegeneration/go/Generator.js b/packages/bson-transpilers/codegeneration/go/Generator.js index 50258b54754..01d6ebad10e 100644 --- a/packages/bson-transpilers/codegeneration/go/Generator.js +++ b/packages/bson-transpilers/codegeneration/go/Generator.js @@ -2,6 +2,9 @@ /* * Class for handling edge cases for Go code generation. Defines "emit" methods. */ -module.exports = (Visitor) => class Generator extends Visitor { - constructor() { super(); } -}; +module.exports = (Visitor) => + class Generator extends Visitor { + constructor() { + super(); + } + }; diff --git a/packages/bson-transpilers/codegeneration/java/Generator.js b/packages/bson-transpilers/codegeneration/java/Generator.js index be2ad4b56fa..b6d66165bed 100644 --- a/packages/bson-transpilers/codegeneration/java/Generator.js +++ b/packages/bson-transpilers/codegeneration/java/Generator.js @@ -1,844 +1,983 @@ 'use strict'; /* eslint complexity: 0 */ -const {doubleQuoteStringify, removeQuotes} = require('../../helper/format'); +const { doubleQuoteStringify, removeQuotes } = require('../../helper/format'); const { BsonTranspilersRuntimeError, - BsonTranspilersUnimplementedError + BsonTranspilersUnimplementedError, } = require('../../helper/error'); /* * Class for handling edge cases for java code generation. Defines "emit" methods. */ -module.exports = (Visitor) => class Generator extends Visitor { - constructor() { - super(); - // Operations that take the field name as an argument - this.field_opts = [ - 'gt', 'lt', 'lte', 'gte', 'eq', 'ne', 'nin', 'in', 'not', 'exists', - 'type', 'all', 'size', 'elemMatch', 'mod', 'regex', - 'sum', 'avg', 'first', 'last', 'max', 'min', 'push', 'addToSet', - 'stdDevSamp', 'stdDevPop', - 'bitsAllSet', 'bitsAllClear', 'bitsAnySet', 'bitsAnyClear', - 'geoWithin', 'geoIntersects', 'near', 'nearSphere' - ]; - // Operations that convert by {$op: value} => op(value) - this.opts = [ - 'match', 'skip', 'limit', 'out', 'sortByCount', 'count', 'or', 'nor', - 'and' - ]; - // Operations split by their import class - this.builderImports = [ - // Filter ops - [ - 'all', 'and', 'bitsAllClear', 'bitsAllSet', 'bitsAnyClear', 'bitsAnySet', - 'elemMatch', 'eq', 'exists', 'expr', 'geoIntersects', 'geoWithin', - 'geoWithinBox', 'geoWithinCenter', 'geoWithinCenterSphere', 'geoWithinPolygon', - 'gt', 'gte', 'in', 'lt', 'lte', 'mod', 'ne', 'near', 'nearSphere', 'nin', - 'nor', 'not', 'or', 'regex', 'size', 'text', 'type', 'where', 'options' - ], - // Agg ops - [ - 'addFields', 'bucket', 'bucketAuto', 'count', 'facet', 'graphLookup', - 'group', 'limit', 'lookup', 'match', 'out', 'project', 'replaceRoot', - 'sample', 'skip', 'sort', 'sortByCount', 'unwind' - ], - // Accumulator ops - [ - 'addToSet', 'avg', 'first', 'last', 'max', 'min', 'push', - 'stdDevPop', 'stdDevSamp', 'sum' - ] - ].reduce((obj, list, index) => { - list.forEach((op) => { - obj[op] = index + 300; - }); - return obj; - }, {}); - } - - /** The rest of the functions in this file are for generating builders **/ - - /** - * Emit an "idiomatic" filter or aggregation, meaning use the builders - * instead of a regular object if possible. - * - * @param {ObjectLiteralContext} ctx - * @return {String} - */ - emitIdiomaticObjectLiteral(ctx) { - ctx.type = this.Types._object; - ctx.indentDepth = this.findIndentDepth(ctx) + 1; - let multiOps = false; - let args = ''; - const properties = this.getKeyValueList(ctx); - if (properties.length) { - args = properties.map((pair) => { - const field = this.getKeyStr(pair); - const value = this.getValue(pair); - if (field.startsWith('$')) { - const op = field.substr(1); - if (this.builderImports[op]) { - this.requiredImports[this.builderImports[op]].push(op); - } - if (op === 'regex') { - multiOps = true; - } - if (`handle${op}` in this) { - return this[`handle${op}`](this.getObjectChild(value), op, ctx); - } - if (this.field_opts.indexOf(op) !== -1) { - // Assert that this isn't the top-level object - if (!this.isSubObject(ctx)) { - throw new BsonTranspilersRuntimeError(`$${op} cannot be top-level`); +module.exports = (Visitor) => + class Generator extends Visitor { + constructor() { + super(); + // Operations that take the field name as an argument + this.field_opts = [ + 'gt', + 'lt', + 'lte', + 'gte', + 'eq', + 'ne', + 'nin', + 'in', + 'not', + 'exists', + 'type', + 'all', + 'size', + 'elemMatch', + 'mod', + 'regex', + 'sum', + 'avg', + 'first', + 'last', + 'max', + 'min', + 'push', + 'addToSet', + 'stdDevSamp', + 'stdDevPop', + 'bitsAllSet', + 'bitsAllClear', + 'bitsAnySet', + 'bitsAnyClear', + 'geoWithin', + 'geoIntersects', + 'near', + 'nearSphere', + ]; + // Operations that convert by {$op: value} => op(value) + this.opts = [ + 'match', + 'skip', + 'limit', + 'out', + 'sortByCount', + 'count', + 'or', + 'nor', + 'and', + ]; + // Operations split by their import class + this.builderImports = [ + // Filter ops + [ + 'all', + 'and', + 'bitsAllClear', + 'bitsAllSet', + 'bitsAnyClear', + 'bitsAnySet', + 'elemMatch', + 'eq', + 'exists', + 'expr', + 'geoIntersects', + 'geoWithin', + 'geoWithinBox', + 'geoWithinCenter', + 'geoWithinCenterSphere', + 'geoWithinPolygon', + 'gt', + 'gte', + 'in', + 'lt', + 'lte', + 'mod', + 'ne', + 'near', + 'nearSphere', + 'nin', + 'nor', + 'not', + 'or', + 'regex', + 'size', + 'text', + 'type', + 'where', + 'options', + ], + // Agg ops + [ + 'addFields', + 'bucket', + 'bucketAuto', + 'count', + 'facet', + 'graphLookup', + 'group', + 'limit', + 'lookup', + 'match', + 'out', + 'project', + 'replaceRoot', + 'sample', + 'skip', + 'sort', + 'sortByCount', + 'unwind', + ], + // Accumulator ops + [ + 'addToSet', + 'avg', + 'first', + 'last', + 'max', + 'min', + 'push', + 'stdDevPop', + 'stdDevSamp', + 'sum', + ], + ].reduce((obj, list, index) => { + list.forEach((op) => { + obj[op] = index + 300; + }); + return obj; + }, {}); + } + + /** The rest of the functions in this file are for generating builders **/ + + /** + * Emit an "idiomatic" filter or aggregation, meaning use the builders + * instead of a regular object if possible. + * + * @param {ObjectLiteralContext} ctx + * @return {String} + */ + emitIdiomaticObjectLiteral(ctx) { + ctx.type = this.Types._object; + ctx.indentDepth = this.findIndentDepth(ctx) + 1; + let multiOps = false; + let args = ''; + const properties = this.getKeyValueList(ctx); + if (properties.length) { + args = properties.map((pair) => { + const field = this.getKeyStr(pair); + const value = this.getValue(pair); + if (field.startsWith('$')) { + const op = field.substr(1); + if (this.builderImports[op]) { + this.requiredImports[this.builderImports[op]].push(op); + } + if (op === 'regex') { + multiOps = true; + } + if (`handle${op}` in this) { + return this[`handle${op}`](this.getObjectChild(value), op, ctx); + } + if (this.field_opts.indexOf(op) !== -1) { + // Assert that this isn't the top-level object + if (!this.isSubObject(ctx)) { + throw new BsonTranspilersRuntimeError( + `$${op} cannot be top-level` + ); + } + return this.handleFieldOp(value, op, ctx); + } + if (this.opts.indexOf(op) !== -1) { + return `${field.substr(1)}(${this.visit(value)})`; } - return this.handleFieldOp(value, op, ctx); } - if (this.opts.indexOf(op) !== -1) { - return `${field.substr(1)}(${this.visit(value)})`; + const valueStr = this.visit(value); + // $-op filters need to rewind a level + const child = this.getObjectChild(value); + if (this.isFilter(child)) { + return valueStr; } + this.requiredImports[300].push('eq'); + return `eq(${doubleQuoteStringify(field)}, ${valueStr})`; + }); + if (args.length > 1 && !multiOps) { + this.requiredImports[300].push('and'); + return `and(${args.join(', ')})`; + } + return args[0]; + } + this.requiredImports[10] = true; + return 'new Document()'; + } + + /** + * Generates idiomatic java for a $-operator that takes the field name + * as the first argument. i.e. { field: { $op: value } } => op(field, value) + * + * @param {ObjectLiteralContext} ctx - The field of the $-op + * @param {String} op - The $-op + * @param {ObjectLiteralContext} parent - The parent object's ctx + * @returns {String} + */ + handleFieldOp(ctx, op, parent) { + const parentField = this.getParentKeyStr(parent); + return `${op}(${doubleQuoteStringify(parentField)}, ${this.visit(ctx)})`; + } + + /** + * Determines if an object has a subfield that is a $-op. + * + * @param {ObjectLiteralContext} ctx - The field of the $-op + * @return {Boolean} + */ + isFilter(ctx) { + const properties = this.getKeyValueList(ctx); + for (let i = 0; i < properties.length; i++) { + const pair = properties[i]; + const field = this.getKeyStr(pair); + if (this.field_opts.indexOf(field.substr(1)) !== -1) { + return true; } - const valueStr = this.visit(value); - // $-op filters need to rewind a level - const child = this.getObjectChild(value); - if (this.isFilter(child)) { - return valueStr; + } + return false; + } + + /** + * Generates idiomatic java for a $-operator that requires a document that has + * a single subfield whose value gets set to the builder argument. + * { $op: { $subfield: value } } => op(value) + * + * @param {ObjectLiteralContext} ctx - The field of the $-op + * @param {String} op - The name of the $-op. + * @param {String} subfield - The name of the subfield to require. + * @param {Boolean} idiomatic - If the value should be generated as idiomatic. + * @return {String} + */ + handleSingleSubfield(ctx, op, subfield, idiomatic) { + const properties = this.assertIsNonemptyObject(ctx, op); + let value = ''; + + properties.forEach((pair) => { + const field = this.getKeyStr(pair); + if (field === subfield) { + this.idiomatic = idiomatic; + value = this.visit(this.getValue(pair)); + this.idiomatic = true; + } else { + throw new BsonTranspilersRuntimeError( + `Unrecognized option to $${op}: ${field}` + ); } - this.requiredImports[300].push('eq'); - return `eq(${doubleQuoteStringify(field)}, ${valueStr})`; }); - if (args.length > 1 && !multiOps) { - this.requiredImports[300].push('and'); - return `and(${args.join(', ')})`; + if (value === '') { + throw new BsonTranspilersRuntimeError( + `Missing option '${subfield}' in $${op}` + ); } - return args[0]; - } - this.requiredImports[10] = true; - return 'new Document()'; - } - - /** - * Generates idiomatic java for a $-operator that takes the field name - * as the first argument. i.e. { field: { $op: value } } => op(field, value) - * - * @param {ObjectLiteralContext} ctx - The field of the $-op - * @param {String} op - The $-op - * @param {ObjectLiteralContext} parent - The parent object's ctx - * @returns {String} - */ - handleFieldOp(ctx, op, parent) { - const parentField = this.getParentKeyStr(parent); - return `${op}(${doubleQuoteStringify(parentField)}, ${this.visit(ctx)})`; - } - - /** - * Determines if an object has a subfield that is a $-op. - * - * @param {ObjectLiteralContext} ctx - The field of the $-op - * @return {Boolean} - */ - isFilter(ctx) { - const properties = this.getKeyValueList(ctx); - for (let i = 0; i < properties.length; i++) { - const pair = properties[i]; - const field = this.getKeyStr(pair); - if (this.field_opts.indexOf(field.substr(1)) !== -1) { - return true; + return `${op}(${value})`; + } + + /** + * Generates idiomatic java for a $-operator that has some required options + * and some options that get rolled into an Options object. + * + * { $op: { required: reqVal, optional: optionalVal } => + * op(reqVal, new Options.optional()) + * + * @param {ObjectLiteralContext} ctx - The field of the $-op + * @param {String} op - The name of the $-op. + * @param {Array} reqOpts - The list of required options. + * @param {Array} optionalOpts - The list of optional options. + * @param {Object} transforms - An mapping of original name to transformed + * name. Includes both optional options and the Options object. + * @return {string} + */ + handleOptionsObject(ctx, op, reqOpts, optionalOpts, transforms) { + const properties = this.assertIsNonemptyObject(ctx, op); + const fields = {}; + + properties.forEach((pair) => { + const field = this.getKeyStr(pair); + if ( + reqOpts.indexOf(field) !== -1 || + optionalOpts.indexOf(field) !== -1 + ) { + fields[field] = this.visit(this.getValue(pair)); + } else { + throw new BsonTranspilersRuntimeError( + `Unrecognized option to $${op}: ${field}` + ); + } + }); + reqOpts.map((f) => { + if (!(f in fields)) { + throw new BsonTranspilersRuntimeError( + `Missing option '${f}' in $${op}` + ); + } + }); + + let options = ''; + if (Object.keys(fields).length > reqOpts.length) { + this.requiredImports[306].push(transforms[op]); + + options = `, new ${transforms[op]}()${Object.keys(fields) + .filter((f) => { + return optionalOpts.indexOf(f) !== -1; + }) + .map((k) => { + if (transforms !== undefined && k in transforms) { + return transforms[k](fields[k]); + } + return `.${k}(${fields[k]})`; + }) + .join('')}`; } + + return `${op}(${reqOpts + .map((f) => { + return fields[f]; + }) + .join(', ')}${options})`; } - return false; - } - - /** - * Generates idiomatic java for a $-operator that requires a document that has - * a single subfield whose value gets set to the builder argument. - * { $op: { $subfield: value } } => op(value) - * - * @param {ObjectLiteralContext} ctx - The field of the $-op - * @param {String} op - The name of the $-op. - * @param {String} subfield - The name of the subfield to require. - * @param {Boolean} idiomatic - If the value should be generated as idiomatic. - * @return {String} - */ - handleSingleSubfield(ctx, op, subfield, idiomatic) { - const properties = this.assertIsNonemptyObject(ctx, op); - let value = ''; - - properties.forEach((pair) => { - const field = this.getKeyStr(pair); - if (field === subfield) { - this.idiomatic = idiomatic; - value = this.visit(this.getValue(pair)); - this.idiomatic = true; - } else { + + /** + * Generates idiomatic java for a $-operator that has some required options + * and then multiple arbitrary fields. + * + * { $op: { required: reqVal, opt1: v1, opt2: v2...} } => op(reqVal, v1, v2...) + * @param {ObjectLiteralContext} ctx - The field of the $-op + * @param {String} op - The name of the $-op. + * @param {Array} reqOpts - The list of required options. + * @param {Function} transform - A function that takes in the option name and + * the value, then returns a string with the correct formatting. + * @param {Boolean} idiomatic - If the value should be generated as idiomatic. + * @return {string} + */ + handleMultipleSubfields(ctx, op, reqOpts, transform, idiomatic) { + const properties = this.assertIsNonemptyObject(ctx, op); + const req = []; + const fields = {}; + + properties.forEach((pair) => { + const field = this.getKeyStr(pair); + if (reqOpts.indexOf(field) !== -1) { + req.push(this.visit(this.getValue(pair))); + } else { + this.idiomatic = idiomatic; + fields[field] = this.visit(this.getValue(pair)); + this.idiomatic = true; + } + }); + if (req.length !== reqOpts.length) { throw new BsonTranspilersRuntimeError( - `Unrecognized option to $${op}: ${field}` + `Required option missing from ${op}` ); } - }); - if (value === '') { - throw new BsonTranspilersRuntimeError( - `Missing option '${subfield}' in $${op}` + + const args = req.concat( + Object.keys(fields).map((f) => { + return transform(f, fields[f]); + }) ); + return `${op}(${args.join(', ')})`; } - return `${op}(${value})`; - } - - /** - * Generates idiomatic java for a $-operator that has some required options - * and some options that get rolled into an Options object. - * - * { $op: { required: reqVal, optional: optionalVal } => - * op(reqVal, new Options.optional()) - * - * @param {ObjectLiteralContext} ctx - The field of the $-op - * @param {String} op - The name of the $-op. - * @param {Array} reqOpts - The list of required options. - * @param {Array} optionalOpts - The list of optional options. - * @param {Object} transforms - An mapping of original name to transformed - * name. Includes both optional options and the Options object. - * @return {string} - */ - handleOptionsObject(ctx, op, reqOpts, optionalOpts, transforms) { - const properties = this.assertIsNonemptyObject(ctx, op); - const fields = {}; - - properties.forEach((pair) => { - const field = this.getKeyStr(pair); - if (reqOpts.indexOf(field) !== -1 || optionalOpts.indexOf(field) !== -1) { - fields[field] = this.visit(this.getValue(pair)); + + /** + * Method for handling an idiomatic $project. + * ctx must be a non-empty document. + * + * @param {ObjectLiteralContext} ctx + * @return {String} + */ + handleproject(ctx) { + // Eventual todo: slice and elemMatch + const properties = this.assertIsNonemptyObject(ctx, 'project'); + const fields = {}; + + properties.forEach((pair) => { + const field = this.getKeyStr(pair); + const original = this.getValue(pair).getText(); + if (original.toLowerCase() === 'true' || original === '1') { + if (field !== '_id') { + // Skip because ID is included by default + fields.includes = !fields.includes + ? `include(${doubleQuoteStringify(field)}` + : `${fields.includes}, ${doubleQuoteStringify(field)}`; + this.requiredImports[303].push('include'); + } + } else if (original.toLowerCase() === 'false' || original === '0') { + if (field !== '_id') { + fields.excludes = !fields.excludes + ? `exclude(${doubleQuoteStringify(field)}` + : `${fields.excludes}, ${doubleQuoteStringify(field)}`; + this.requiredImports[303].push('exclude'); + } else { + fields.excludeId = 'excludeId()'; + this.requiredImports[303].push('excludeId'); + } + } else { + const value = this.visit(this.getValue(pair)); + fields.computed = !fields.computed + ? `computed(${doubleQuoteStringify(field)}, ${value})` + : `${fields.computed}, computed(${doubleQuoteStringify( + field + )}, ${value})`; + this.requiredImports[303].push('computed'); + } + }); + + if (fields.includes) { + fields.includes = `${fields.includes})`; + } + if (fields.excludes) { + fields.excludes = `${fields.excludes})`; + } + const elements = Object.values(fields); + let projectStr; + if (elements.length === 1) { + projectStr = elements[0]; } else { + projectStr = `fields(${elements.join(', ')})`; + this.requiredImports[303].push('fields'); + } + return `project(${projectStr})`; + } + + /** + * Method for handling an idiomatic $not. + * + * { field: { $not: {$op: value} } } => not(op(field, value)) + * + * ctx must be a non-empty document. + * + * @param {ObjectLiteralExpressionContext} ctx - the ctx of the value of the + * $not field + * @param {String} op - the operation, which in this case is "not" + * @param {ObjectLiteralExpressionContext} parent - ctx of parent document. + * @return {String} + */ + handlenot(ctx, op, parent) { + const properties = this.assertIsNonemptyObject(ctx, op); + const val = this.getValue(properties[0]); + const innerop = this.getKeyStr(properties[0]).substr(1); + this.requiredImports[300].push(innerop); + const inner = this.handleFieldOp(val, innerop, parent); + return `${op}(${inner})`; + } + + /** + * Method for handling an idiomatic $mod. + * + * { field: { $mod: [arr1, arr2] } } => mod(field, arr1, arr2) + * + * ctx must be an array of length 2. + * + * @param {ObjectLiteralExpressionContext} ctx - the ctx of the value of the + * $mod field + * @param {String} op - the operation, which in this case is "mod" + * @param {ObjectLiteralExpressionContext} parent - ctx of parent document. + * @return {String} + */ + handlemod(ctx, op, parent) { + const list = this.getList(ctx); + if (list.length !== 2) { throw new BsonTranspilersRuntimeError( - `Unrecognized option to $${op}: ${field}` + '$mod requires an array of 2-elements' ); } - }); - reqOpts.map((f) => { - if (!(f in fields)) { - throw new BsonTranspilersRuntimeError(`Missing option '${f}' in $${op}`); - } - }); - - let options = ''; - if (Object.keys(fields).length > reqOpts.length) { - this.requiredImports[306].push(transforms[op]); + const parentField = this.getParentKeyStr(parent); + const inner = list.map((f) => { + return this.visit(f); + }); + return `${op}(${doubleQuoteStringify(parentField)}, ${inner.join(', ')})`; + } - options = `, new ${transforms[op]}()${Object.keys(fields).filter((f) => { - return optionalOpts.indexOf(f) !== -1; - }).map((k) => { - if (transforms !== undefined && k in transforms) { - return transforms[k](fields[k]); + /** + * Method for handling an idiomatic $regex. + * + * { field: { $regex: regexstr, $options?: optsstr } } => + * regex(regexstr, optsstr?) + * + * ctx must be a string + * + * @param {ObjectLiteralExpressionContext} ctx - the ctx of the value of the + * $regex field + * @param {String} op - the operation, which in this case is "regex" + * @param {ObjectLiteralExpressionContext} parent - ctx of parent document. + * @return {String} + */ + handleregex(ctx, op, parent) { + const parentField = this.getParentKeyStr(parent); + const regex = { r: '', o: '' }; + + const properties = this.getKeyValueList(parent); + properties.forEach((pair) => { + const field = this.getKeyStr(pair); + if (field === '$regex') { + regex.r = this.visit(this.getValue(pair)); + } + if (field === '$options') { + regex.o = `, ${this.visit(this.getValue(pair))}`; } - return `.${k}(${fields[k]})`; - }).join('')}`; - } - - return `${op}(${reqOpts.map((f) => { - return fields[f]; - }).join(', ')}${options})`; - } - - /** - * Generates idiomatic java for a $-operator that has some required options - * and then multiple arbitrary fields. - * - * { $op: { required: reqVal, opt1: v1, opt2: v2...} } => op(reqVal, v1, v2...) - * @param {ObjectLiteralContext} ctx - The field of the $-op - * @param {String} op - The name of the $-op. - * @param {Array} reqOpts - The list of required options. - * @param {Function} transform - A function that takes in the option name and - * the value, then returns a string with the correct formatting. - * @param {Boolean} idiomatic - If the value should be generated as idiomatic. - * @return {string} - */ - handleMultipleSubfields(ctx, op, reqOpts, transform, idiomatic) { - const properties = this.assertIsNonemptyObject(ctx, op); - const req = []; - const fields = {}; - - properties.forEach((pair) => { - const field = this.getKeyStr(pair); - if (reqOpts.indexOf(field) !== -1) { - req.push(this.visit(this.getValue(pair))); + }); + return `${op}(${doubleQuoteStringify(parentField)}, ${regex.r}${ + regex.o + })`; + } + handleoptions() { + return ''; + } + + /** + * Method for handling an idiomatic $where. + * + * { $where: } => where() + * + * @param {ObjectLiteralExpressionContext} ctx - the ctx of the value of the + * $where field + * @return {String} + */ + handlewhere(ctx) { + let text; + if (!('getParent' in ctx)) { + text = ctx.getText(); } else { - this.idiomatic = idiomatic; - fields[field] = this.visit(this.getValue(pair)); - this.idiomatic = true; + text = ctx.getParent().getText(); } - }); - if (req.length !== reqOpts.length) { - throw new BsonTranspilersRuntimeError( - `Required option missing from ${op}` - ); + return `where(${doubleQuoteStringify(text)})`; } - const args = req.concat(Object.keys(fields).map((f) => { - return transform(f, fields[f]); - })); - return `${op}(${args.join(', ')})`; - } - - /** - * Method for handling an idiomatic $project. - * ctx must be a non-empty document. - * - * @param {ObjectLiteralContext} ctx - * @return {String} - */ - handleproject(ctx) { - // Eventual todo: slice and elemMatch - const properties = this.assertIsNonemptyObject(ctx, 'project'); - const fields = {}; - - properties.forEach((pair) => { - const field = this.getKeyStr(pair); - const original = this.getValue(pair).getText(); - if (original.toLowerCase() === 'true' || original === '1') { - if (field !== '_id') { - // Skip because ID is included by default - fields.includes = !fields.includes ? - `include(${doubleQuoteStringify(field)}` : - `${fields.includes}, ${doubleQuoteStringify(field)}`; - this.requiredImports[303].push('include'); - } - } else if (original.toLowerCase() === 'false' || original === '0') { - if (field !== '_id') { - fields.excludes = !fields.excludes ? - `exclude(${doubleQuoteStringify(field)}` : - `${fields.excludes}, ${doubleQuoteStringify(field)}`; - this.requiredImports[303].push('exclude'); + /** + * Method for handling an idiomatic $sort. + * + * { $sort: { f1: 1, f2: -1, f3: { $meta: 'textScore' } } } => + * sort(ascending(f1), descending(f2), metaTextScore(f3)) + * + * @param {ObjectLiteralExpressionContext} ctx - the ctx of the value of the + * @return {string} + */ + handlesort(ctx) { + const properties = this.assertIsNonemptyObject(ctx, 'sort'); + const fields = []; + + properties.forEach((pair) => { + const field = this.getKeyStr(pair); + const original = this.getValue(pair).getText(); + if (original === '1') { + fields.push(`ascending(${doubleQuoteStringify(field)})`); + this.requiredImports[304].push('ascending'); + } else if (original === '-1') { + fields.push(`descending(${doubleQuoteStringify(field)})`); + this.requiredImports[304].push('descending'); + } else if ( + original.match( + new RegExp(/{(?:'|")?\$meta(?:'|")?:(?:'|")textScore*(?:'|")}/) + ) + ) { + fields.push(`metaTextScore(${doubleQuoteStringify(field)})`); + this.requiredImports[304].push('metaTextScore'); } else { - fields.excludeId = 'excludeId()'; - this.requiredImports[303].push('excludeId'); + throw new BsonTranspilersRuntimeError( + '$sort key ordering must be specified using a number or ' + + "{$meta: 'textScore'}" + ); } + }); + let sortStr; + if (fields.length > 1) { + sortStr = `orderBy(${fields.join(', ')})`; + this.requiredImports[304].push('orderBy'); } else { - const value = this.visit(this.getValue(pair)); - fields.computed = !fields.computed ? - `computed(${doubleQuoteStringify(field)}, ${value})` : - `${fields.computed}, computed(${doubleQuoteStringify(field)}, ${value})`; - this.requiredImports[303].push('computed'); + sortStr = fields[0]; } - }); - - if (fields.includes) { - fields.includes = `${fields.includes})`; - } - if (fields.excludes) { - fields.excludes = `${fields.excludes})`; - } - const elements = Object.values(fields); - let projectStr; - if (elements.length === 1) { - projectStr = elements[0]; - } else { - projectStr = `fields(${elements.join(', ')})`; - this.requiredImports[303].push('fields'); - } - return `project(${projectStr})`; - } - - /** - * Method for handling an idiomatic $not. - * - * { field: { $not: {$op: value} } } => not(op(field, value)) - * - * ctx must be a non-empty document. - * - * @param {ObjectLiteralExpressionContext} ctx - the ctx of the value of the - * $not field - * @param {String} op - the operation, which in this case is "not" - * @param {ObjectLiteralExpressionContext} parent - ctx of parent document. - * @return {String} - */ - handlenot(ctx, op, parent) { - const properties = this.assertIsNonemptyObject(ctx, op); - const val = this.getValue(properties[0]); - const innerop = this.getKeyStr(properties[0]).substr(1); - this.requiredImports[300].push(innerop); - const inner = this.handleFieldOp(val, innerop, parent); - return `${op}(${inner})`; - } - - /** - * Method for handling an idiomatic $mod. - * - * { field: { $mod: [arr1, arr2] } } => mod(field, arr1, arr2) - * - * ctx must be an array of length 2. - * - * @param {ObjectLiteralExpressionContext} ctx - the ctx of the value of the - * $mod field - * @param {String} op - the operation, which in this case is "mod" - * @param {ObjectLiteralExpressionContext} parent - ctx of parent document. - * @return {String} - */ - handlemod(ctx, op, parent) { - const list = this.getList(ctx); - if (list.length !== 2) { - throw new BsonTranspilersRuntimeError( - '$mod requires an array of 2-elements' - ); + return `sort(${sortStr})`; } - const parentField = this.getParentKeyStr(parent); - const inner = list.map((f) => { - return this.visit(f); - }); - return `${op}(${doubleQuoteStringify(parentField)}, ${inner.join(', ')})`; - } - - /** - * Method for handling an idiomatic $regex. - * - * { field: { $regex: regexstr, $options?: optsstr } } => - * regex(regexstr, optsstr?) - * - * ctx must be a string - * - * @param {ObjectLiteralExpressionContext} ctx - the ctx of the value of the - * $regex field - * @param {String} op - the operation, which in this case is "regex" - * @param {ObjectLiteralExpressionContext} parent - ctx of parent document. - * @return {String} - */ - handleregex(ctx, op, parent) { - const parentField = this.getParentKeyStr(parent); - const regex = {r: '', o: ''}; - - const properties = this.getKeyValueList(parent); - properties.forEach((pair) => { - const field = this.getKeyStr(pair); - if (field === '$regex') { - regex.r = this.visit(this.getValue(pair)); - } - if (field === '$options') { - regex.o = `, ${this.visit(this.getValue(pair))}`; - } - }); - return `${op}(${doubleQuoteStringify(parentField)}, ${regex.r}${regex.o})`; - } - handleoptions() { - return ''; - } - - /** - * Method for handling an idiomatic $where. - * - * { $where: } => where() - * - * @param {ObjectLiteralExpressionContext} ctx - the ctx of the value of the - * $where field - * @return {String} - */ - handlewhere(ctx) { - let text; - if (!('getParent' in ctx)) { - text = ctx.getText(); - } else { - text = ctx.getParent().getText(); - } - return `where(${doubleQuoteStringify(text)})`; - } - - /** - * Method for handling an idiomatic $sort. - * - * { $sort: { f1: 1, f2: -1, f3: { $meta: 'textScore' } } } => - * sort(ascending(f1), descending(f2), metaTextScore(f3)) - * - * @param {ObjectLiteralExpressionContext} ctx - the ctx of the value of the - * @return {string} - */ - handlesort(ctx) { - const properties = this.assertIsNonemptyObject(ctx, 'sort'); - const fields = []; - - properties.forEach((pair) => { - const field = this.getKeyStr(pair); - const original = this.getValue(pair).getText(); - if (original === '1') { - fields.push(`ascending(${doubleQuoteStringify(field)})`); - this.requiredImports[304].push('ascending'); - } else if (original === '-1') { - fields.push(`descending(${doubleQuoteStringify(field)})`); - this.requiredImports[304].push('descending'); - } else if (original.match( - new RegExp(/{(?:'|")?\$meta(?:'|")?:(?:'|")textScore*(?:'|")}/) - )) { - fields.push(`metaTextScore(${doubleQuoteStringify(field)})`); - this.requiredImports[304].push('metaTextScore'); - } else { + + handlegeoWithin(ctx, op, parent) { + this.requiredImports[300].splice( + this.requiredImports[300].indexOf('geoWithin'), + 1 + ); + const properties = this.assertIsNonemptyObject(ctx, op); + const parentField = doubleQuoteStringify(this.getParentKeyStr(parent)); + const fields = {}; + + properties.forEach((pair) => { + const field = this.getKeyStr(pair); + fields[field] = this.getValue(pair); + }); + + if (Object.keys(fields).length !== 1) { throw new BsonTranspilersRuntimeError( - '$sort key ordering must be specified using a number or ' + - '{$meta: \'textScore\'}' + '$geoWithin takes an object with only 1 field' ); } - }); - let sortStr; - if (fields.length > 1) { - sortStr = `orderBy(${fields.join(', ')})`; - this.requiredImports[304].push('orderBy'); - } else { - sortStr = fields[0]; - } - return `sort(${sortStr})`; - } - - handlegeoWithin(ctx, op, parent) { - this.requiredImports[300].splice( - this.requiredImports[300].indexOf('geoWithin'), 1 - ); - const properties = this.assertIsNonemptyObject(ctx, op); - const parentField = doubleQuoteStringify( - this.getParentKeyStr(parent) - ); - const fields = {}; - - properties.forEach((pair) => { - const field = this.getKeyStr(pair); - fields[field] = this.getValue(pair); - }); - - if (Object.keys(fields).length !== 1) { - throw new BsonTranspilersRuntimeError( - '$geoWithin takes an object with only 1 field' - ); - } - const key = Object.keys(fields)[0]; - switch (key) { - case ('$geometry'): { - this.requiredImports[300].push('geoWithin'); - return `geoWithin(${parentField}, ${this.handlegeometry(fields[key])})`; + const key = Object.keys(fields)[0]; + switch (key) { + case '$geometry': { + this.requiredImports[300].push('geoWithin'); + return `geoWithin(${parentField}, ${this.handlegeometry( + fields[key] + )})`; + } + case '$box': { + this.requiredImports[300].push('geoWithinBox'); + return `geoWithinBox(${parentField}, ${this.combineCoordinates( + fields[key], + 2, + '', + true, + (p) => { + return this.combineCoordinates(p, 2, '', true, (p2) => { + return this.visit(p2); + }); + } + )})`; + } + case '$polygon': { + this.requiredImports[300].push('geoWithinPolygon'); + return `geoWithinPolygon(${parentField}, ${this.visit(fields[key])})`; + } + case '$centerSphere': + case '$center': { + const array = this.assertIsNonemptyArray(fields[key]); + if (array.length !== 2) { + throw new BsonTranspilersRuntimeError( + `${key} takes array of length 2` + ); + } + const coordinates = this.combineCoordinates( + array[0], + 2, + '', + true, + (p) => { + return this.visit(p); + } + ); + const geoop = `geoWithin${key[1].toUpperCase()}${key.substr(2)}`; + this.requiredImports[300].push(geoop); + return `${geoop}(${parentField}, ${coordinates}, ${this.visit( + array[1] + )})`; + } + default: { + throw new BsonTranspilersRuntimeError( + `unrecognized option ${key} to $geoWithin` + ); + } } - case ('$box'): { - this.requiredImports[300].push('geoWithinBox'); - return `geoWithinBox(${parentField}, ${ - this.combineCoordinates(fields[key], 2, '', true, (p) => { - return this.combineCoordinates(p, 2, '', true, (p2) => { - return this.visit(p2); - }); - })})`; + } + + handlenear(ctx, op, parent) { + const properties = this.assertIsNonemptyObject(ctx, op); + const parentField = doubleQuoteStringify(this.getParentKeyStr(parent)); + const fields = {}; + + properties.forEach((pair) => { + const field = this.getKeyStr(pair); + fields[field] = this.getValue(pair); + }); + + ['$geometry', '$minDistance', '$maxDistance'].map((k) => { + if (!(k in fields)) { + throw new BsonTranspilersRuntimeError( + `Missing required field ${k} in $${op}` + ); + } + }); + if (Object.keys(fields).length !== 3) { + throw new BsonTranspilersRuntimeError(`Too many fields to $${op}`); } - case ('$polygon'): { - this.requiredImports[300].push('geoWithinPolygon'); - return `geoWithinPolygon(${parentField}, ${this.visit(fields[key])})`; + return `${op}(${parentField}, ${this.handlegeometry( + fields.$geometry + )}, ${this.visit(fields.$maxDistance)}, ${this.visit( + fields.$minDistance + )})`; + } + + handlenearSphere(ctx, op, parent) { + return this.handlenear(ctx, op, parent); + } + + generateposition(ctx) { + const coordinates = this.assertIsNonemptyArray(ctx, 'geometry'); + if (coordinates.length !== 2) { + throw new BsonTranspilersRuntimeError('Position must be 2 coordinates'); } - case ('$centerSphere'): - case ('$center'): { - const array = this.assertIsNonemptyArray(fields[key]); - if (array.length !== 2) { - throw new BsonTranspilersRuntimeError(`${key} takes array of length 2`); - } - const coordinates = this.combineCoordinates( - array[0], 2, '', true, (p) => { return this.visit(p); } + this.requiredImports[305].push('Position'); + return `new Position(${this.visit(coordinates[0])}, ${this.visit( + coordinates[1] + )})`; + } + + assertIsNonemptyArray(ctx, op) { + const array = this.getArray(ctx); + if (!array || this.getList(array).length === 0) { + throw new BsonTranspilersRuntimeError( + `$${op} requires a non-empty array` ); - const geoop = `geoWithin${key[1].toUpperCase()}${ - key.substr(2) - }`; - this.requiredImports[300].push(geoop); - return `${geoop}(${parentField}, ${coordinates}, ${this.visit(array[1])})`; } - default: { + return this.getList(array); + } + assertIsNonemptyObject(ctx, op) { + if (this.getObject(ctx)) { + ctx = this.getObject(ctx); + } + const kv = this.getKeyValueList(ctx); + if (kv.length === 0) { throw new BsonTranspilersRuntimeError( - `unrecognized option ${key} to $geoWithin` + `$${op} requires a non-empty document` ); } + return kv; } - } - - handlenear(ctx, op, parent) { - const properties = this.assertIsNonemptyObject(ctx, op); - const parentField = doubleQuoteStringify( - this.getParentKeyStr(parent) - ); - const fields = {}; - properties.forEach((pair) => { - const field = this.getKeyStr(pair); - fields[field] = this.getValue(pair); - }); - - ['$geometry', '$minDistance', '$maxDistance'].map((k) => { - if (!(k in fields)) { + combineCoordinates(ctx, length, className, noArray, innerFunc) { + if (!noArray) { + this.requiredImports[9] = true; + } + const points = this.assertIsNonemptyArray(ctx, 'geometry'); + if (points.length < length) { throw new BsonTranspilersRuntimeError( - `Missing required field ${k} in $${op}` + `${ + className ? className : '$geometry inner array' + } must have at least ${length} elements (has ${points.length})` ); } - }); - if (Object.keys(fields).length !== 3) { - throw new BsonTranspilersRuntimeError( - `Too many fields to $${op}` - ); + let pointstr = points + .map((p) => { + if (!innerFunc) { + return this.generateposition(p); + } + return innerFunc(p); + }) + .join(', '); + pointstr = noArray ? pointstr : `Arrays.asList(${pointstr})`; + if (!className) { + return pointstr; + } + this.requiredImports[305].push(className); + return `new ${className}(${pointstr})`; } - return `${op}(${parentField}, ${ - this.handlegeometry(fields.$geometry) - }, ${this.visit(fields.$maxDistance)}, ${ - this.visit(fields.$minDistance) - })`; - } - handlenearSphere(ctx, op, parent) { - return this.handlenear(ctx, op, parent); - } - - generateposition(ctx) { - const coordinates = this.assertIsNonemptyArray(ctx, 'geometry'); - if (coordinates.length !== 2) { - throw new BsonTranspilersRuntimeError( - 'Position must be 2 coordinates' - ); + generatepoint(ctx) { + return `new Point(${this.generateposition(ctx)})`; } - this.requiredImports[305].push('Position'); - return `new Position(${ - this.visit(coordinates[0])}, ${this.visit(coordinates[1]) - })`; - } - assertIsNonemptyArray(ctx, op) { - const array = this.getArray(ctx); - if (!array || this.getList(array).length === 0) { - throw new BsonTranspilersRuntimeError( - `$${op} requires a non-empty array` - ); - } - return this.getList(array); - } - assertIsNonemptyObject(ctx, op) { - if (this.getObject(ctx)) { - ctx = this.getObject(ctx); + generatemultipoint(ctx) { + return this.combineCoordinates(ctx, 1, 'MultiPoint'); } - const kv = this.getKeyValueList(ctx); - if (kv.length === 0) { - throw new BsonTranspilersRuntimeError( - `$${op} requires a non-empty document` - ); + + generatelinestring(ctx) { + return this.combineCoordinates(ctx, 2, 'LineString'); } - return kv; - } - combineCoordinates(ctx, length, className, noArray, innerFunc) { - if (!noArray) { - this.requiredImports[9] = true; + generatemultilinestring(ctx) { + return this.combineCoordinates(ctx, 1, 'MultiLineString', false, (p) => { + return this.combineCoordinates(p, 2); + }); } - const points = this.assertIsNonemptyArray(ctx, 'geometry'); - if (points.length < length) { - throw new BsonTranspilersRuntimeError( - `${ - className ? className : '$geometry inner array' - } must have at least ${length} elements (has ${points.length})` + + generatepolygon(ctx) { + const polyCoords = this.combineCoordinates( + ctx, + 1, + 'PolygonCoordinates', + true, + (p) => { + return this.combineCoordinates(p, 4); + } ); + return `new Polygon(${polyCoords})`; } - let pointstr = points.map((p) => { - if (!innerFunc) { - return this.generateposition(p); - } - return innerFunc(p); - }).join(', '); - pointstr = noArray ? pointstr : `Arrays.asList(${pointstr})`; - if (!className) { - return pointstr; - } - this.requiredImports[305].push(className); - return `new ${className}(${pointstr})`; - } - - generatepoint(ctx) { - return `new Point(${this.generateposition(ctx)})`; - } - - generatemultipoint(ctx) { - return this.combineCoordinates(ctx, 1, 'MultiPoint'); - } - - generatelinestring(ctx) { - return this.combineCoordinates(ctx, 2, 'LineString'); - } - - generatemultilinestring(ctx) { - return this.combineCoordinates( - ctx, - 1, - 'MultiLineString', - false, - (p) => { return this.combineCoordinates(p, 2); } - ); - } - - generatepolygon(ctx) { - const polyCoords = this.combineCoordinates( - ctx, - 1, - 'PolygonCoordinates', - true, - (p) => { return this.combineCoordinates(p, 4); } - ); - return `new Polygon(${polyCoords})`; - } - - generatemultipolygon(ctx) { - return this.combineCoordinates( - ctx, - 1, - 'MultiPolygon', - false, - (p) => { + + generatemultipolygon(ctx) { + return this.combineCoordinates(ctx, 1, 'MultiPolygon', false, (p) => { return this.combineCoordinates( p, 1, 'PolygonCoordinates', true, - (p2) => { return this.combineCoordinates(p2, 4); } + (p2) => { + return this.combineCoordinates(p2, 4); + } ); - } - ); - } - - generategeometrycollection(ctx) { - const geometries = this.assertIsNonemptyArray(ctx, 'geometry'); - return `new GeometryCollection(Arrays.asList(${ - geometries.map((g) => { - const obj = this.getObject(g); - if (!obj) { + }); + } + + generategeometrycollection(ctx) { + const geometries = this.assertIsNonemptyArray(ctx, 'geometry'); + return `new GeometryCollection(Arrays.asList(${geometries + .map((g) => { + const obj = this.getObject(g); + if (!obj) { + throw new BsonTranspilersRuntimeError( + '$GeometryCollection requires objects' + ); + } + return this.handlegeometry(obj); + }) + .join(', ')}))`; + } + + handlegeometry(ctx) { + const properties = this.assertIsNonemptyObject(ctx, 'geometry'); + const fields = {}; + + properties.forEach((pair) => { + const field = this.getKeyStr(pair); + if (field === 'type') { + fields.type = removeQuotes(this.visit(this.getValue(pair))); + } else if (field === 'coordinates') { + fields.coordinates = this.getValue(pair); + } else if (field === 'crs') { + throw new BsonTranspilersUnimplementedError( + 'Coordinate reference systems not currently supported' + ); + } else { throw new BsonTranspilersRuntimeError( - '$GeometryCollection requires objects' + `Unrecognized option to $geometry: ${field}` ); } - return this.handlegeometry(obj); - }).join(', ') - }))`; - } - - handlegeometry(ctx) { - const properties = this.assertIsNonemptyObject(ctx, 'geometry'); - const fields = {}; - - properties.forEach((pair) => { - const field = this.getKeyStr(pair); - if (field === 'type') { - fields.type = removeQuotes(this.visit(this.getValue(pair))); - } else if (field === 'coordinates') { - fields.coordinates = this.getValue(pair); - } else if (field === 'crs') { - throw new BsonTranspilersUnimplementedError( - 'Coordinate reference systems not currently supported' - ); - } else { + }); + if (!fields.type || !fields.coordinates) { + throw new BsonTranspilersRuntimeError('Missing option to $geometry'); + } + if ( + !this.getArray(fields.coordinates) || + this.getList(this.getArray(fields.coordinates)).length === 0 + ) { throw new BsonTranspilersRuntimeError( - `Unrecognized option to $geometry: ${field}` + 'Invalid coordinates option for $geometry' ); } - }); - if (!fields.type || !fields.coordinates) { + if (`generate${fields.type.toLowerCase()}` in this) { + this.requiredImports[305].push(fields.type); + return this[`generate${fields.type.toLowerCase()}`](fields.coordinates); + } throw new BsonTranspilersRuntimeError( - 'Missing option to $geometry' + `Unrecognized GeoJSON type "${fields.type}"` ); } - if (!this.getArray(fields.coordinates) || - this.getList(this.getArray(fields.coordinates)).length === 0) { - throw new BsonTranspilersRuntimeError( - 'Invalid coordinates option for $geometry' + + handlesample(ctx) { + return this.handleSingleSubfield(ctx, 'sample', 'size', true); + } + handlereplaceRoot(ctx) { + return this.handleSingleSubfield(ctx, 'replaceRoot', 'newRoot', false); + } + handlegraphLookup(ctx) { + return this.handleOptionsObject( + ctx, + 'graphLookup', + ['from', 'startWith', 'connectFromField', 'connectToField', 'as'], + ['maxDepth', 'depthField', 'restrictSearchWithMatch'], + { graphLookup: 'GraphLookupOptions' } ); } - if (`generate${fields.type.toLowerCase()}` in this) { - this.requiredImports[305].push(fields.type); - return this[`generate${fields.type.toLowerCase()}`](fields.coordinates); - } - throw new BsonTranspilersRuntimeError( - `Unrecognized GeoJSON type "${fields.type}"` - ); - } - - handlesample(ctx) { - return this.handleSingleSubfield(ctx, 'sample', 'size', true); - } - handlereplaceRoot(ctx) { - return this.handleSingleSubfield(ctx, 'replaceRoot', 'newRoot', false); - } - handlegraphLookup(ctx) { - return this.handleOptionsObject( - ctx, - 'graphLookup', - ['from', 'startWith', 'connectFromField', 'connectToField', 'as'], - ['maxDepth', 'depthField', 'restrictSearchWithMatch'], - { graphLookup: 'GraphLookupOptions' } - ); - } - handlelookup(ctx) { - return this.handleOptionsObject( - ctx, - 'lookup', - ['from', 'localField', 'foreignField', 'as'], - [], - { lookup: 'LookupOptions' } - ); - } - handlebucket(ctx) { - return this.handleOptionsObject( - ctx, - 'bucket', - ['groupBy', 'boundaries'], - ['default', 'output'], - { - bucket: 'BucketOptions', - default: (k) => { return `.defaultBucket(${k})`; } - } - ); - } - handlebucketAuto(ctx) { - return this.handleOptionsObject( - ctx, - 'bucketAuto', - ['groupBy', 'buckets'], - ['granularity', 'output'], - { - bucketAuto: 'BucketAutoOptions', - granularity: (k) => { - return `.granularity(BucketGranularity.fromString(${k}))`; + handlelookup(ctx) { + return this.handleOptionsObject( + ctx, + 'lookup', + ['from', 'localField', 'foreignField', 'as'], + [], + { lookup: 'LookupOptions' } + ); + } + handlebucket(ctx) { + return this.handleOptionsObject( + ctx, + 'bucket', + ['groupBy', 'boundaries'], + ['default', 'output'], + { + bucket: 'BucketOptions', + default: (k) => { + return `.defaultBucket(${k})`; + }, } + ); + } + handlebucketAuto(ctx) { + return this.handleOptionsObject( + ctx, + 'bucketAuto', + ['groupBy', 'buckets'], + ['granularity', 'output'], + { + bucketAuto: 'BucketAutoOptions', + granularity: (k) => { + return `.granularity(BucketGranularity.fromString(${k}))`; + }, + } + ); + } + handletext(ctx) { + return this.handleOptionsObject( + ctx, + 'text', + ['$search'], + ['$language', '$caseSensitive', '$diacriticSensitive'], + { + text: 'TextSearchOptions', + $language: (k) => { + return `.language(${k})`; + }, + $caseSensitive: (k) => { + return `.caseSensitive(${k})`; + }, + $diacriticSensitive: (k) => { + return `.diacriticSensitive(${k})`; + }, + } + ); + } + handleunwind(ctx) { + const copy = this.deepCopyRequiredImports(); + const value = this.visit(ctx.parentCtx); + this.requiredImports = copy; + if (this.findTypedNode(ctx.parentCtx).type.id === '_string') { + return `unwind(${value})`; } - ); - } - handletext(ctx) { - return this.handleOptionsObject( - ctx, - 'text', - ['$search'], - ['$language', '$caseSensitive', '$diacriticSensitive'], - { - text: 'TextSearchOptions', - $language: (k) => { return `.language(${k})`; }, - $caseSensitive: (k) => { return `.caseSensitive(${k})`; }, - $diacriticSensitive: (k) => { return `.diacriticSensitive(${k})`; } - } - ); - } - handleunwind(ctx) { - const copy = this.deepCopyRequiredImports(); - const value = this.visit(ctx.parentCtx); - this.requiredImports = copy; - if (this.findTypedNode(ctx.parentCtx).type.id === '_string') { - return `unwind(${value})`; - } - return this.handleOptionsObject( - ctx, - 'unwind', - ['path'], - ['includeArrayIndex', 'preserveNullAndEmptyArrays'], - { unwind: 'UnwindOptions' } - ); - } - handlegroup(ctx) { - return this.handleMultipleSubfields(ctx, 'group', ['_id'], (f, v) => { - return v; - }, true); - } - handlefacet(ctx) { - this.requiredImports[306].push('Facet'); - return this.handleMultipleSubfields(ctx, 'facet', [], (f, v) => { - return `new Facet(${doubleQuoteStringify(f)}, ${v})`; - }, true); - } - handleaddFields(ctx) { - this.requiredImports[306].push('Field'); - return this.handleMultipleSubfields(ctx, 'addFields', [], (f, v) => { - return `new Field(${doubleQuoteStringify(f)}, ${v})`; - }, false); - } -}; + return this.handleOptionsObject( + ctx, + 'unwind', + ['path'], + ['includeArrayIndex', 'preserveNullAndEmptyArrays'], + { unwind: 'UnwindOptions' } + ); + } + handlegroup(ctx) { + return this.handleMultipleSubfields( + ctx, + 'group', + ['_id'], + (f, v) => { + return v; + }, + true + ); + } + handlefacet(ctx) { + this.requiredImports[306].push('Facet'); + return this.handleMultipleSubfields( + ctx, + 'facet', + [], + (f, v) => { + return `new Facet(${doubleQuoteStringify(f)}, ${v})`; + }, + true + ); + } + handleaddFields(ctx) { + this.requiredImports[306].push('Field'); + return this.handleMultipleSubfields( + ctx, + 'addFields', + [], + (f, v) => { + return `new Field(${doubleQuoteStringify(f)}, ${v})`; + }, + false + ); + } + }; diff --git a/packages/bson-transpilers/codegeneration/javascript/Generator.js b/packages/bson-transpilers/codegeneration/javascript/Generator.js index 90b6bb690f7..8fca35f1e64 100644 --- a/packages/bson-transpilers/codegeneration/javascript/Generator.js +++ b/packages/bson-transpilers/codegeneration/javascript/Generator.js @@ -2,15 +2,16 @@ /* * Class for handling edge cases for node code generation. Defines "emit" methods. */ -module.exports = (Visitor) => class Generator extends Visitor { - constructor() { - super(); - } +module.exports = (Visitor) => + class Generator extends Visitor { + constructor() { + super(); + } - generateFuncDefExpression(ctx) { - const source = ctx.start.source[1].strdata; - const startIndex = ctx.start.start; - const stopIndex = ctx.stop.stop; - return source.slice(startIndex, stopIndex + 1); - } -}; + generateFuncDefExpression(ctx) { + const source = ctx.start.source[1].strdata; + const startIndex = ctx.start.start; + const stopIndex = ctx.stop.stop; + return source.slice(startIndex, stopIndex + 1); + } + }; diff --git a/packages/bson-transpilers/codegeneration/javascript/Visitor.js b/packages/bson-transpilers/codegeneration/javascript/Visitor.js index e0403474d93..77ba8727e21 100644 --- a/packages/bson-transpilers/codegeneration/javascript/Visitor.js +++ b/packages/bson-transpilers/codegeneration/javascript/Visitor.js @@ -5,11 +5,10 @@ const bson = require('bson'); const { BsonTranspilersArgumentError, BsonTranspilersRuntimeError, - BsonTranspilersUnimplementedError + BsonTranspilersUnimplementedError, } = require('../../helper/error'); const { removeQuotes } = require('../../helper/format'); - /** * This is a Visitor that visits the tree generated by the ECMAScript.g4 grammar. * @@ -17,690 +16,735 @@ const { removeQuotes } = require('../../helper/format'); * all visitors. * @return {Visitor} - Input-language specific visitor. */ -module.exports = (CodeGenerationVisitor) => class Visitor extends CodeGenerationVisitor { - constructor() { - super(); - this.startRule = 'program'; // Name of the ANTLR rule to start - - // Throw UnimplementedError for nodes with expressions that we don't support - this.visitThisExpression = - this.visitDeleteExpression = - this.visitVoidExpression = - this.visitTypeofExpression = - this.visitInExpression = - this.visitInstanceofExpression = - this.visitAssignmentExpression = - this.visitAssignmentOperatorExpression = - this.visitMemberIndexExpression = - this.visitTernaryExpression = - this.visitFunctionDeclaration = - this.visitVariableStatement = - this.visitIfStatement = - this.visitDoWhileStatement = - this.visitWhileStatement = - this.visitForStatement = - this.visitForVarStatement = - this.visitForInStatement = - this.visitForVarInStatement = - this.visitContinueStatement = - this.visitBreakStatement = - this.visitReturnStatement = - this.visitWithStatement = - this.visitLabelledStatement = - this.visitSwitchStatement = - this.visitThrowStatement = - this.visitTryStatement = - this.visitDebuggerStatement = - this.unimplemented; - } - - /* - * - * Visit Methods - * - */ - - visitProgram(ctx) { - if (ctx.getChildCount() < 2) { +module.exports = (CodeGenerationVisitor) => + class Visitor extends CodeGenerationVisitor { + constructor() { + super(); + this.startRule = 'program'; // Name of the ANTLR rule to start + + // Throw UnimplementedError for nodes with expressions that we don't support + this.visitThisExpression = + this.visitDeleteExpression = + this.visitVoidExpression = + this.visitTypeofExpression = + this.visitInExpression = + this.visitInstanceofExpression = + this.visitAssignmentExpression = + this.visitAssignmentOperatorExpression = + this.visitMemberIndexExpression = + this.visitTernaryExpression = + this.visitFunctionDeclaration = + this.visitVariableStatement = + this.visitIfStatement = + this.visitDoWhileStatement = + this.visitWhileStatement = + this.visitForStatement = + this.visitForVarStatement = + this.visitForInStatement = + this.visitForVarInStatement = + this.visitContinueStatement = + this.visitBreakStatement = + this.visitReturnStatement = + this.visitWithStatement = + this.visitLabelledStatement = + this.visitSwitchStatement = + this.visitThrowStatement = + this.visitTryStatement = + this.visitDebuggerStatement = + this.unimplemented; + } + + /* + * + * Visit Methods + * + */ + + visitProgram(ctx) { + if (ctx.getChildCount() < 2) { + throw new BsonTranspilersRuntimeError( + 'Expression contains 0 statements. Input should be a single statement' + ); + } + return this.visitChildren(ctx); + } + + visitSourceElements(ctx) { + if (ctx.sourceElement().length !== 1) { + throw new BsonTranspilersRuntimeError( + `Expression contains ${ + ctx.sourceElement().length + } statements. Input should be a single statement` + ); + } + return this.visitChildren(ctx); + } + visitEmptyStatement() { throw new BsonTranspilersRuntimeError( 'Expression contains 0 statements. Input should be a single statement' ); } - return this.visitChildren(ctx); - } - - visitSourceElements(ctx) { - if (ctx.sourceElement().length !== 1) { - throw new BsonTranspilersRuntimeError(`Expression contains ${ - ctx.sourceElement().length} statements. Input should be a single statement`); - } - return this.visitChildren(ctx); - } - visitEmptyStatement() { - throw new BsonTranspilersRuntimeError( - 'Expression contains 0 statements. Input should be a single statement' - ); - } - - - visitFuncCallExpression(ctx) { - return this.generateFunctionCall(ctx); - } - - visitIdentifierExpression(ctx) { - return this.generateIdentifier(ctx); - } - - visitGetAttributeExpression(ctx) { - return this.generateAttributeAccess(ctx); - } - - visitObjectLiteral(ctx) { - return this.generateObjectLiteral(ctx); - } - - visitArrayLiteral(ctx) { - return this.generateArrayLiteral(ctx); - } - - visitNullLiteral(ctx) { - return this.leafHelper(this.Types._null, ctx); - } - - visitUndefinedLiteral(ctx) { - return this.leafHelper(this.Types._undefined, ctx); - } - - visitBooleanLiteral(ctx) { - return this.leafHelper(this.Types._bool, ctx); - } - - visitStringLiteral(ctx) { - return this.leafHelper(this.Types._string, ctx); - } - - visitRegularExpressionLiteral(ctx) { - return this.leafHelper(this.Types._regex, ctx); - } - - visitIntegerLiteral(ctx) { - return this.leafHelper(this.Types._long, ctx); - } - - visitDecimalLiteral(ctx) { - return this.leafHelper(this.Types._decimal, ctx); - } - - visitHexIntegerLiteral(ctx) { - return this.leafHelper(this.Types._hex, ctx); - } - - visitOctalIntegerLiteral(ctx) { - return this.leafHelper(this.Types._octal, ctx); - } - - visitElision(ctx) { - ctx.type = this.Types._undefined; - if (ctx.type.template) { - return ctx.type.template(); - } - return 'null'; - } - - visitNewExpression(ctx) { - // Skip new because already included in function calls for constructors. - ctx.singleExpression().wasNew = true; // for dates only - const res = this.visit(ctx.singleExpression()); - ctx.type = this.findTypedNode(ctx.singleExpression()).type; - return res; - } - - visitRelationalExpression(ctx) { - ctx.type = this.Types._boolean; - const lhs = this.visit(ctx.singleExpression()[0]); - const rhs = this.visit(ctx.singleExpression()[1]); - const op = this.visit(ctx.children[1]); - if (this.Syntax.equality) { - return this.Syntax.equality.template(lhs, op, rhs); - } - return this.visitChildren(ctx); - } - - visitEqualityExpression(ctx) { - ctx.type = this.Types._boolean; - const lhs = this.visit(ctx.singleExpression()[0]); - const rhs = this.visit(ctx.singleExpression()[1]); - const op = this.visit(ctx.children[1]); - if (this.Syntax.equality) { - return this.Syntax.equality.template(lhs, op, rhs); - } - return this.visitChildren(ctx); - } - - visitLogicalAndExpression(ctx) { - if (this.Syntax.and) { - return this.Syntax.and.template( - ctx.singleExpression().map((t) => (this.visit(t))) - ); + + visitFuncCallExpression(ctx) { + return this.generateFunctionCall(ctx); } - return this.visitChildren(ctx); - } - visitLogicalOrExpression(ctx) { - if (this.Syntax.or) { - return this.Syntax.or.template( - ctx.singleExpression().map((t) => ( this.visit(t) )) - ); + visitIdentifierExpression(ctx) { + return this.generateIdentifier(ctx); } - return this.visitChildren(ctx); - } - visitNotExpression(ctx) { - if (this.Syntax.not) { - return this.Syntax.not.template( - this.visit(ctx.singleExpression()) - ); + visitGetAttributeExpression(ctx) { + return this.generateAttributeAccess(ctx); } - return this.visitChildren(ctx); - } - visitBitAndExpression(ctx) { - if (this.Syntax.binary.template) { - const kids = ctx.children.map(m => this.visit(m)); - return this.Syntax.binary.template(kids); + visitObjectLiteral(ctx) { + return this.generateObjectLiteral(ctx); } - return this.visitChildren(ctx); - } - visitBitXOrExpression(ctx) { - if (this.Syntax.binary.template) { - const kids = ctx.children.map(m => this.visit(m)); - return this.Syntax.binary.template(kids); + visitArrayLiteral(ctx) { + return this.generateArrayLiteral(ctx); } - return this.visitChildren(ctx); - } - visitBitOrExpression(ctx) { - if (this.Syntax.binary.template) { - const kids = ctx.children.map(m => this.visit(m)); - return this.Syntax.binary.template(kids); + visitNullLiteral(ctx) { + return this.leafHelper(this.Types._null, ctx); } - return this.visitChildren(ctx); - } - visitBitNotExpression(ctx) { - if (this.Syntax.unary.template) { - return this.Syntax.unary.template( - '~', - this.visit(ctx.singleExpression()) - ); + visitUndefinedLiteral(ctx) { + return this.leafHelper(this.Types._undefined, ctx); } - return this.visitChildren(ctx); - } - visitUnaryPlusExpression(ctx) { - if (this.Syntax.unary.template) { - return this.Syntax.unary.template( - '+', - this.visit(ctx.singleExpression()) - ); + visitBooleanLiteral(ctx) { + return this.leafHelper(this.Types._bool, ctx); + } + + visitStringLiteral(ctx) { + return this.leafHelper(this.Types._string, ctx); + } + + visitRegularExpressionLiteral(ctx) { + return this.leafHelper(this.Types._regex, ctx); + } + + visitIntegerLiteral(ctx) { + return this.leafHelper(this.Types._long, ctx); + } + + visitDecimalLiteral(ctx) { + return this.leafHelper(this.Types._decimal, ctx); + } + + visitHexIntegerLiteral(ctx) { + return this.leafHelper(this.Types._hex, ctx); + } + + visitOctalIntegerLiteral(ctx) { + return this.leafHelper(this.Types._octal, ctx); + } + + visitElision(ctx) { + ctx.type = this.Types._undefined; + if (ctx.type.template) { + return ctx.type.template(); + } + return 'null'; + } + + visitNewExpression(ctx) { + // Skip new because already included in function calls for constructors. + ctx.singleExpression().wasNew = true; // for dates only + const res = this.visit(ctx.singleExpression()); + ctx.type = this.findTypedNode(ctx.singleExpression()).type; + return res; + } + + visitRelationalExpression(ctx) { + ctx.type = this.Types._boolean; + const lhs = this.visit(ctx.singleExpression()[0]); + const rhs = this.visit(ctx.singleExpression()[1]); + const op = this.visit(ctx.children[1]); + if (this.Syntax.equality) { + return this.Syntax.equality.template(lhs, op, rhs); + } + return this.visitChildren(ctx); + } + + visitEqualityExpression(ctx) { + ctx.type = this.Types._boolean; + const lhs = this.visit(ctx.singleExpression()[0]); + const rhs = this.visit(ctx.singleExpression()[1]); + const op = this.visit(ctx.children[1]); + if (this.Syntax.equality) { + return this.Syntax.equality.template(lhs, op, rhs); + } + return this.visitChildren(ctx); + } + + visitLogicalAndExpression(ctx) { + if (this.Syntax.and) { + return this.Syntax.and.template( + ctx.singleExpression().map((t) => this.visit(t)) + ); + } + return this.visitChildren(ctx); + } + + visitLogicalOrExpression(ctx) { + if (this.Syntax.or) { + return this.Syntax.or.template( + ctx.singleExpression().map((t) => this.visit(t)) + ); + } + return this.visitChildren(ctx); + } + + visitNotExpression(ctx) { + if (this.Syntax.not) { + return this.Syntax.not.template(this.visit(ctx.singleExpression())); + } + return this.visitChildren(ctx); + } + + visitBitAndExpression(ctx) { + if (this.Syntax.binary.template) { + const kids = ctx.children.map((m) => this.visit(m)); + return this.Syntax.binary.template(kids); + } + return this.visitChildren(ctx); + } + + visitBitXOrExpression(ctx) { + if (this.Syntax.binary.template) { + const kids = ctx.children.map((m) => this.visit(m)); + return this.Syntax.binary.template(kids); + } + return this.visitChildren(ctx); + } + + visitBitOrExpression(ctx) { + if (this.Syntax.binary.template) { + const kids = ctx.children.map((m) => this.visit(m)); + return this.Syntax.binary.template(kids); + } + return this.visitChildren(ctx); + } + + visitBitNotExpression(ctx) { + if (this.Syntax.unary.template) { + return this.Syntax.unary.template( + '~', + this.visit(ctx.singleExpression()) + ); + } + return this.visitChildren(ctx); + } + + visitUnaryPlusExpression(ctx) { + if (this.Syntax.unary.template) { + return this.Syntax.unary.template( + '+', + this.visit(ctx.singleExpression()) + ); + } + return this.visitChildren(ctx); + } + + visitUnaryMinusExpression(ctx) { + if (this.Syntax.unary.template) { + return this.Syntax.unary.template( + '-', + this.visit(ctx.singleExpression()) + ); + } + return this.visitChildren(ctx); + } + + visitAdditiveExpression(ctx) { + if (this.Syntax.binary.template) { + const kids = ctx.children.map((m) => this.visit(m)); + return this.Syntax.binary.template(kids); + } + return this.visitChildren(ctx); + } + visitMultiplicativeExpression(ctx) { + if (this.Syntax.binary.template) { + const kids = ctx.children.map((m) => this.visit(m)); + return this.Syntax.binary.template(kids); + } + return this.visitChildren(ctx); + } + visitBitShiftExpression(ctx) { + if (this.Syntax.binary.template) { + const kids = ctx.children.map((m) => this.visit(m)); + return this.Syntax.binary.template(kids); + } + return this.visitChildren(ctx); + } + + visitParenthesizedExpression(ctx) { + if (this.Syntax.parens.template) { + const kids = this.visit(ctx.expressionSequence()); + return this.Syntax.parens.template(kids); + } + return this.visitChildren(ctx); } - return this.visitChildren(ctx); - } - visitUnaryMinusExpression(ctx) { - if (this.Syntax.unary.template) { - return this.Syntax.unary.template( - '-', - this.visit(ctx.singleExpression()) + visitFuncDefExpression(ctx) { + return this.generateFuncDefExpression(ctx); + } + + /* + * + * Process Methods + * + */ + + /* Numerical process methods */ + processNumber(ctx) { + return this.generateNumericClass(ctx); + } + + processInt32(ctx) { + return this.generateNumericClass(ctx); + } + + processDouble(ctx) { + return this.generateNumericClass(ctx); + } + + /** + * Check arguments then execute in the same way as regex literals. + * + * @param {FuncCallExpressionContext} ctx + * @return {String} + */ + processRegExp(ctx) { + this.checkArguments( + this.Symbols.RegExp.args, + this.getArguments(ctx), + 'RegExp' + ); + return this.process_regex(ctx); + } + + /** + * This looks like non-camelcase because the name of the basic type is "_regex" + * and the process methods are constructed with "Process" + . + * + * @param {FuncCallExpressionContext} ctx + * @return {String} + */ + process_regex(ctx) { + // eslint-disable-line camelcase + ctx.type = this.Types._regex; + let pattern; + let flags; + + try { + const regexobj = this.executeJavascript(ctx.getText()); + pattern = regexobj.source; + flags = regexobj.flags; + } catch (error) { + throw new BsonTranspilersRuntimeError(error.message); + } + + let targetflags = flags.replace( + /[imuyg]/g, + (m) => this.Syntax.regexFlags[m] + ); + targetflags = + targetflags === '' ? '' : `${targetflags.split('').sort().join('')}`; + + return this.generateLiteral( + ctx, + ctx.type, + [pattern, targetflags], + 'RegExp' ); } - return this.visitChildren(ctx); - } - - visitAdditiveExpression(ctx) { - if (this.Syntax.binary.template) { - const kids = ctx.children.map(m => this.visit(m)); - return this.Syntax.binary.template(kids); - } - return this.visitChildren(ctx); - } - visitMultiplicativeExpression(ctx) { - if (this.Syntax.binary.template) { - const kids = ctx.children.map(m => this.visit(m)); - return this.Syntax.binary.template(kids); - } - return this.visitChildren(ctx); - } - visitBitShiftExpression(ctx) { - if (this.Syntax.binary.template) { - const kids = ctx.children.map(m => this.visit(m)); - return this.Syntax.binary.template(kids); - } - return this.visitChildren(ctx); - } - - visitParenthesizedExpression(ctx) { - if (this.Syntax.parens.template) { - const kids = this.visit(ctx.expressionSequence()); - return this.Syntax.parens.template(kids); - } - return this.visitChildren(ctx); - } - - visitFuncDefExpression(ctx) { - return this.generateFuncDefExpression(ctx); - } - - /* - * - * Process Methods - * - */ - - /* Numerical process methods */ - processNumber(ctx) { - return this.generateNumericClass(ctx); - } - - processInt32(ctx) { - return this.generateNumericClass(ctx); - } - - processDouble(ctx) { - return this.generateNumericClass(ctx); - } - - /** - * Check arguments then execute in the same way as regex literals. - * - * @param {FuncCallExpressionContext} ctx - * @return {String} - */ - processRegExp(ctx) { - this.checkArguments( - this.Symbols.RegExp.args, this.getArguments(ctx), 'RegExp' - ); - return this.process_regex(ctx); - } - - /** - * This looks like non-camelcase because the name of the basic type is "_regex" - * and the process methods are constructed with "Process" + . - * - * @param {FuncCallExpressionContext} ctx - * @return {String} - */ - process_regex(ctx) { // eslint-disable-line camelcase - ctx.type = this.Types._regex; - let pattern; - let flags; - - try { - const regexobj = this.executeJavascript(ctx.getText()); - pattern = regexobj.source; - flags = regexobj.flags; - } catch (error) { - throw new BsonTranspilersRuntimeError(error.message); - } - - let targetflags = flags.replace(/[imuyg]/g, m => this.Syntax.regexFlags[m]); - targetflags = targetflags === '' ? - '' : - `${targetflags.split('').sort().join('')}`; - - return this.generateLiteral(ctx, ctx.type, [pattern, targetflags], 'RegExp'); - } - - /** - * Process BSON regexps because we need to verify the flags are valid. - * - * @param {FuncCallExpressionContext} ctx - * @return {string} - */ - processBSONRegExp(ctx) { - return this.generateBSONRegex( - ctx, this.Types.BSONRegExpType, this.Symbols.BSONRegExp - ); - } - - /** - * The arguments to Code can be either a string or actual javascript code. - * Manually check arguments here because first argument can be any JS, and we - * don't want to ever visit that node. - * - * @param {FuncCallExpressionContext} ctx - * @return {String} - */ - processCodeFromJS(ctx) { - return this.generateBSONCode(ctx, this.Types.Code, this.Symbols.Code, false); - } - - /** - * ObjectId needs preprocessing because it needs to be executed. - * - * @param {FuncCallExpressionContext} ctx - * @return {String} - */ - processObjectId(ctx) { - ctx.type = this.Types.ObjectId; - const symbolType = this.Symbols.ObjectId; - const argsList = this.getArguments(ctx); - - this.checkArguments(symbolType.args, argsList, 'ObjectId'); - let hexstr; - try { - hexstr = this.executeJavascript(`new ${ctx.getText()}`).toHexString(); - } catch (error) { - throw new BsonTranspilersRuntimeError(error.message); - } - const args = argsList.length === 0 ? [] : [hexstr]; - - return this.generateCall( - ctx, symbolType, args, 'ObjectId', `(${hexstr})` - ); - } - - /** - * Long needs preprocessing because it needs to be executed. - * - * @param {FuncCallExpressionContext} ctx - * @return {String} - */ - processLong(ctx) { - ctx.type = this.Types.Long; - const symbolType = this.Symbols.Long; - let longstr; - this.checkArguments(symbolType.args, this.getArguments(ctx), 'Long'); - try { - longstr = this.executeJavascript(`new ${ctx.getText()}`).toString(); - } catch (error) { - throw new BsonTranspilersRuntimeError(error.message); - } - return this.generateCall( - ctx, symbolType, [longstr, '_long'], 'Long', `(${longstr})` - ); - } - - processLongfromBits(ctx) { - if ('emitLongfromBits' in this) { - return this.emitLongfromBits(ctx); - } - return this.processLong(ctx); - } - - /** - * Decimal128 needs preprocessing because it needs to be executed. Check - * argument length manually because 'Buffer' not supported. - * - * @param {FuncCallExpressionContext} ctx - * @return {String} - */ - processDecimal128(ctx) { - ctx.type = this.Types.Decimal128; - const symbolType = this.Symbols.Decimal128; - let decstr; - const argList = this.getArguments(ctx); - - if (argList.length !== 1) { - throw new BsonTranspilersArgumentError( - 'Argument count mismatch: Decimal128 requires one argument' + + /** + * Process BSON regexps because we need to verify the flags are valid. + * + * @param {FuncCallExpressionContext} ctx + * @return {string} + */ + processBSONRegExp(ctx) { + return this.generateBSONRegex( + ctx, + this.Types.BSONRegExpType, + this.Symbols.BSONRegExp ); } - try { - decstr = this.executeJavascript(`new ${ctx.getText()}`).toString(); - } catch (error) { - // TODO: this isn't quite right because it catches all type errors. - if (error.name === 'TypeError' || error.code === 'ERR_INVALID_ARG_TYPE') { - throw new BsonTranspilersArgumentError(error.message); - } - - throw new BsonTranspilersRuntimeError(error.message); - } - return this.generateCall( - ctx, symbolType, [decstr], 'Decimal128', `(${decstr})` - ); - } - - /** - * This is a bit weird because we can just convert to string directly. - * - * @param {FuncCallExpressionContext} ctx - * @return {String} - */ - processLongtoString(ctx) { - ctx.type = this.Types._string; - const long = ctx.singleExpression().singleExpression(); - let longstr; - this.checkArguments( - [[this.Types._numeric, null]], this.getArguments(ctx), 'Long toString' - ); - - try { - longstr = this.executeJavascript(`new ${long.getText()}`).toString(); - } catch (error) { - throw new BsonTranspilersRuntimeError(error.message); - } - return ctx.type.template ? ctx.type.template(longstr) : `'${longstr}'`; - } - - /** - * Preprocessed because different target languages need different info out - * of the constructed date, so we want to execute it. Passes a constructed - * date object to the template or generator. - * - * @param {FuncCallExpressionContext} ctx - * @return {String} - */ - processDate(ctx) { - const isStr = !(ctx.getText().includes('ISODate') || ctx.wasNew); - const symbolType = this.Symbols.Date; - - ctx.type = this.Types.Date; - if (isStr) { - ctx.type = this.Types._string; - this.requiredImports[201] = true; + /** + * The arguments to Code can be either a string or actual javascript code. + * Manually check arguments here because first argument can be any JS, and we + * don't want to ever visit that node. + * + * @param {FuncCallExpressionContext} ctx + * @return {String} + */ + processCodeFromJS(ctx) { + return this.generateBSONCode( + ctx, + this.Types.Code, + this.Symbols.Code, + false + ); } - const argsList = this.getArguments(ctx); - let date = null; + /** + * ObjectId needs preprocessing because it needs to be executed. + * + * @param {FuncCallExpressionContext} ctx + * @return {String} + */ + processObjectId(ctx) { + ctx.type = this.Types.ObjectId; + const symbolType = this.Symbols.ObjectId; + const argsList = this.getArguments(ctx); - if (argsList.length !== 0) { + this.checkArguments(symbolType.args, argsList, 'ObjectId'); + let hexstr; try { - this.checkArguments(this.Symbols.Date.args, argsList, 'Date'); - } catch (e) { + hexstr = this.executeJavascript(`new ${ctx.getText()}`).toHexString(); + } catch (error) { + throw new BsonTranspilersRuntimeError(error.message); + } + const args = argsList.length === 0 ? [] : [hexstr]; + + return this.generateCall( + ctx, + symbolType, + args, + 'ObjectId', + `(${hexstr})` + ); + } + + /** + * Long needs preprocessing because it needs to be executed. + * + * @param {FuncCallExpressionContext} ctx + * @return {String} + */ + processLong(ctx) { + ctx.type = this.Types.Long; + const symbolType = this.Symbols.Long; + let longstr; + this.checkArguments(symbolType.args, this.getArguments(ctx), 'Long'); + try { + longstr = this.executeJavascript(`new ${ctx.getText()}`).toString(); + } catch (error) { + throw new BsonTranspilersRuntimeError(error.message); + } + return this.generateCall( + ctx, + symbolType, + [longstr, '_long'], + 'Long', + `(${longstr})` + ); + } + + processLongfromBits(ctx) { + if ('emitLongfromBits' in this) { + return this.emitLongfromBits(ctx); + } + return this.processLong(ctx); + } + + /** + * Decimal128 needs preprocessing because it needs to be executed. Check + * argument length manually because 'Buffer' not supported. + * + * @param {FuncCallExpressionContext} ctx + * @return {String} + */ + processDecimal128(ctx) { + ctx.type = this.Types.Decimal128; + const symbolType = this.Symbols.Decimal128; + let decstr; + const argList = this.getArguments(ctx); + + if (argList.length !== 1) { throw new BsonTranspilersArgumentError( - 'Invalid argument to Date: requires no args, one string/number, or up to 7 numbers' + 'Argument count mismatch: Decimal128 requires one argument' ); } - let text = ctx.getText(); - text = text.startsWith('new ') ? text : `new ${text}`; try { - date = this.executeJavascript(text); + decstr = this.executeJavascript(`new ${ctx.getText()}`).toString(); } catch (error) { + // TODO: this isn't quite right because it catches all type errors. + if ( + error.name === 'TypeError' || + error.code === 'ERR_INVALID_ARG_TYPE' + ) { + throw new BsonTranspilersArgumentError(error.message); + } + throw new BsonTranspilersRuntimeError(error.message); } + return this.generateCall( + ctx, + symbolType, + [decstr], + 'Decimal128', + `(${decstr})` + ); } - const dargs = `Date(${date - ? this.Types._string.template(date.toUTCString()) - : ''})`; - return this.generateCall( - ctx, symbolType, [date, isStr], '', dargs, isStr, true - ); - } - - processObjectIdCreateFromTime(ctx) { - return this.generateObjectIdFromTime(ctx); - } - - processBinary() { - throw new BsonTranspilersUnimplementedError('Binary type not supported'); - } - - /* - * - * Helper Methods - * - */ - - /** - * Takes in the constructor name of a node and returns a human-readable - * node name. Used for error reporting, must be defined by all visitors. - * - * @param {String} name - * @return {String} - */ - renameNode(name) { - return name ? name.replace('_stmt', '') : 'Expression'; - } - - /** - * There are no named arguments in javascript, so we can just return directly. - * @param {Array} expected - * @param {ParserRuleContext} node - * @return {Array} - */ - checkNamedArgs(expected, node) { - return [expected, node]; - } - - /** - * Execute javascript in a sandbox. - * - * @param {String} input - * @return {*} result of execution - */ - executeJavascript(input) { - const sandbox = { - RegExp: RegExp, - BSONRegExp: bson.BSONRegExp, - // Binary: bson.Binary, - DBRef: bson.DBRef, - Decimal128: bson.Decimal128, - Double: bson.Double, - Int32: bson.Int32, - Long: bson.Long, - Int64: bson.Long, - Map: bson.Map, - MaxKey: bson.MaxKey, - MinKey: bson.MinKey, - ObjectID: bson.ObjectId, - ObjectId: bson.ObjectId, - BSONSymbol: bson.BSONSymbol, - Timestamp: bson.Timestamp, - Code: function(c, s) { - return new bson.Code(c, s); - }, - Date: function(s) { - const args = Array.from(arguments); - - if (args.length === 1) { - return new Date(s); + + /** + * This is a bit weird because we can just convert to string directly. + * + * @param {FuncCallExpressionContext} ctx + * @return {String} + */ + processLongtoString(ctx) { + ctx.type = this.Types._string; + const long = ctx.singleExpression().singleExpression(); + let longstr; + this.checkArguments( + [[this.Types._numeric, null]], + this.getArguments(ctx), + 'Long toString' + ); + + try { + longstr = this.executeJavascript(`new ${long.getText()}`).toString(); + } catch (error) { + throw new BsonTranspilersRuntimeError(error.message); + } + return ctx.type.template ? ctx.type.template(longstr) : `'${longstr}'`; + } + + /** + * Preprocessed because different target languages need different info out + * of the constructed date, so we want to execute it. Passes a constructed + * date object to the template or generator. + * + * @param {FuncCallExpressionContext} ctx + * @return {String} + */ + processDate(ctx) { + const isStr = !(ctx.getText().includes('ISODate') || ctx.wasNew); + const symbolType = this.Symbols.Date; + + ctx.type = this.Types.Date; + if (isStr) { + ctx.type = this.Types._string; + this.requiredImports[201] = true; + } + + const argsList = this.getArguments(ctx); + let date = null; + + if (argsList.length !== 0) { + try { + this.checkArguments(this.Symbols.Date.args, argsList, 'Date'); + } catch (e) { + throw new BsonTranspilersArgumentError( + 'Invalid argument to Date: requires no args, one string/number, or up to 7 numbers' + ); } - return new Date(Date.UTC(...args)); - }, - Buffer: Buffer, - __result: {} - }; - const res = vm.runInContext('__result = ' + input, vm.createContext(sandbox)); - return res; - } - - /* - * Accessor Functions. - * - * These MUST be defined by every visitor. Each function is a wrapper around - * a tree node. They are required so that the CodeGenerationVisitor and the - * Generators can access tree elements without needing to know which tree they - * are visiting or the ANTLR name of the node. - */ - - getArguments(ctx) { - if (!('arguments' in ctx) || - !('argumentList' in ctx.arguments()) || - !ctx.arguments().argumentList()) { - return []; + let text = ctx.getText(); + text = text.startsWith('new ') ? text : `new ${text}`; + try { + date = this.executeJavascript(text); + } catch (error) { + throw new BsonTranspilersRuntimeError(error.message); + } + } + const dargs = `Date(${ + date ? this.Types._string.template(date.toUTCString()) : '' + })`; + return this.generateCall( + ctx, + symbolType, + [date, isStr], + '', + dargs, + isStr, + true + ); + } + + processObjectIdCreateFromTime(ctx) { + return this.generateObjectIdFromTime(ctx); + } + + processBinary() { + throw new BsonTranspilersUnimplementedError('Binary type not supported'); + } + + /* + * + * Helper Methods + * + */ + + /** + * Takes in the constructor name of a node and returns a human-readable + * node name. Used for error reporting, must be defined by all visitors. + * + * @param {String} name + * @return {String} + */ + renameNode(name) { + return name ? name.replace('_stmt', '') : 'Expression'; + } + + /** + * There are no named arguments in javascript, so we can just return directly. + * @param {Array} expected + * @param {ParserRuleContext} node + * @return {Array} + */ + checkNamedArgs(expected, node) { + return [expected, node]; + } + + /** + * Execute javascript in a sandbox. + * + * @param {String} input + * @return {*} result of execution + */ + executeJavascript(input) { + const sandbox = { + RegExp: RegExp, + BSONRegExp: bson.BSONRegExp, + // Binary: bson.Binary, + DBRef: bson.DBRef, + Decimal128: bson.Decimal128, + Double: bson.Double, + Int32: bson.Int32, + Long: bson.Long, + Int64: bson.Long, + Map: bson.Map, + MaxKey: bson.MaxKey, + MinKey: bson.MinKey, + ObjectID: bson.ObjectId, + ObjectId: bson.ObjectId, + BSONSymbol: bson.BSONSymbol, + Timestamp: bson.Timestamp, + Code: function (c, s) { + return new bson.Code(c, s); + }, + Date: function (s) { + const args = Array.from(arguments); + + if (args.length === 1) { + return new Date(s); + } + + return new Date(Date.UTC(...args)); + }, + Buffer: Buffer, + __result: {}, + }; + const res = vm.runInContext( + '__result = ' + input, + vm.createContext(sandbox) + ); + return res; } - return ctx.arguments().argumentList().singleExpression(); - } - getArgumentAt(ctx, i) { - return this.getArguments(ctx)[i]; - } + /* + * Accessor Functions. + * + * These MUST be defined by every visitor. Each function is a wrapper around + * a tree node. They are required so that the CodeGenerationVisitor and the + * Generators can access tree elements without needing to know which tree they + * are visiting or the ANTLR name of the node. + */ - getFunctionCallName(ctx) { - return ctx.singleExpression(); - } + getArguments(ctx) { + if ( + !('arguments' in ctx) || + !('argumentList' in ctx.arguments()) || + !ctx.arguments().argumentList() + ) { + return []; + } + return ctx.arguments().argumentList().singleExpression(); + } - getIfIdentifier(ctx) { - if ('identifierName' in ctx) { + getArgumentAt(ctx, i) { + return this.getArguments(ctx)[i]; + } + + getFunctionCallName(ctx) { return ctx.singleExpression(); } - return ctx; - } - getAttributeLHS(ctx) { - return ctx.singleExpression(); - } + getIfIdentifier(ctx) { + if ('identifierName' in ctx) { + return ctx.singleExpression(); + } + return ctx; + } - getAttributeRHS(ctx) { - return ctx.identifierName(); - } + getAttributeLHS(ctx) { + return ctx.singleExpression(); + } - getList(ctx) { - if (!('elementList' in ctx) || !ctx.elementList()) { - return []; + getAttributeRHS(ctx) { + return ctx.identifierName(); } - const elisions = ctx.elementList().elision(); - const elements = ctx.elementList().singleExpression(); - return ctx.elementList().children.filter((c) => { - return elisions.indexOf(c) !== -1 || elements.indexOf(c) !== -1; - }); - } - getArray(ctx) { - if (!('arrayLiteral' in ctx)) { - return false; + getList(ctx) { + if (!('elementList' in ctx) || !ctx.elementList()) { + return []; + } + const elisions = ctx.elementList().elision(); + const elements = ctx.elementList().singleExpression(); + return ctx.elementList().children.filter((c) => { + return elisions.indexOf(c) !== -1 || elements.indexOf(c) !== -1; + }); } - return ctx.arrayLiteral(); - } - getObject(ctx) { - if (!('objectLiteral' in ctx)) { - return false; + getArray(ctx) { + if (!('arrayLiteral' in ctx)) { + return false; + } + return ctx.arrayLiteral(); } - return ctx.objectLiteral(); - } - getKeyValueList(ctx) { - if ('propertyNameAndValueList' in ctx && ctx.propertyNameAndValueList()) { - return ctx.propertyNameAndValueList().propertyAssignment(); + getObject(ctx) { + if (!('objectLiteral' in ctx)) { + return false; + } + return ctx.objectLiteral(); } - return []; - } - getKeyStr(ctx) { - return removeQuotes(this.visit(ctx.propertyName())); - } + getKeyValueList(ctx) { + if ('propertyNameAndValueList' in ctx && ctx.propertyNameAndValueList()) { + return ctx.propertyNameAndValueList().propertyAssignment(); + } + return []; + } - getValue(ctx) { - return ctx.singleExpression(); - } + getKeyStr(ctx) { + return removeQuotes(this.visit(ctx.propertyName())); + } - isSubObject(ctx) { - return 'propertyName' in ctx.parentCtx.parentCtx; - } + getValue(ctx) { + return ctx.singleExpression(); + } - getParentKeyStr(ctx) { - // For a given sub document, get its key. - return this.getKeyStr(ctx.parentCtx.parentCtx); - } + isSubObject(ctx) { + return 'propertyName' in ctx.parentCtx.parentCtx; + } - getObjectChild(ctx) { - return ctx.getChild(0); - } -}; + getParentKeyStr(ctx) { + // For a given sub document, get its key. + return this.getKeyStr(ctx.parentCtx.parentCtx); + } + getObjectChild(ctx) { + return ctx.getChild(0); + } + }; diff --git a/packages/bson-transpilers/codegeneration/object/Generator.js b/packages/bson-transpilers/codegeneration/object/Generator.js index 82d72ab4f55..ea398528f19 100644 --- a/packages/bson-transpilers/codegeneration/object/Generator.js +++ b/packages/bson-transpilers/codegeneration/object/Generator.js @@ -4,234 +4,265 @@ const bson = require('bson'); const { BsonTranspilersReferenceError, BsonTranspilersTypeError, - BsonTranspilersRuntimeError + BsonTranspilersRuntimeError, } = require('../../helper/error'); const { removeQuotes } = require('../../helper/format'); /* * Class for handling edge cases for shell code generation. Defines "emit" methods. */ -module.exports = (Visitor) => class Generator extends Visitor { - constructor() { - super(); - this.IGNORE = 'a unique thing'; - } - - start(ctx) { - return this.returnResult(ctx); - } - - /** - * Overrides the helper function to instantiate the object instead of - * concatenating the strings. - * - * @param {ParserRuleContext} ctx - The function call node - * @param {Object} lhsType - The type - * @param {Array} args - Arguments to the template - * - * @return {String} - */ - generateCall(ctx, lhsType, args) { - if (`emit${lhsType.id}` in this) { - return this[`emit${lhsType.id}`](ctx, ...args); - } - const lhs = this.visit(this.getFunctionCallName(ctx)); - return this.returnFunctionCallLhsRhs(lhs, args, lhsType); - } - - /** - * Don't concatenate child nodes, return them as array. - * - * @param {ParserRuleContext} ctx - * @param {Object} options - * @return {Array} - */ - visitChildren(ctx, options) { - const opts = { - start: 0, step: 1, separator: '', ignore: [], children: ctx.children - }; - Object.assign(opts, options ? options : {}); - opts.end = ('end' in opts) ? opts.end : opts.children.length - 1; - - const code = []; - for (let i = opts.start; i <= opts.end; i += opts.step) { - if (opts.ignore.indexOf(i) === -1) { - code.push(this.visit( - opts.children[i] - )); - } +module.exports = (Visitor) => + class Generator extends Visitor { + constructor() { + super(); + this.IGNORE = 'a unique thing'; } - const result = code.filter((c) => c !== this.IGNORE); - if (result.length === 1) { - return result[0]; + + start(ctx) { + return this.returnResult(ctx); } - return result; - } - returnFunctionCallRhs(rhs) { - return rhs; - } + /** + * Overrides the helper function to instantiate the object instead of + * concatenating the strings. + * + * @param {ParserRuleContext} ctx - The function call node + * @param {Object} lhsType - The type + * @param {Array} args - Arguments to the template + * + * @return {String} + */ + generateCall(ctx, lhsType, args) { + if (`emit${lhsType.id}` in this) { + return this[`emit${lhsType.id}`](ctx, ...args); + } + const lhs = this.visit(this.getFunctionCallName(ctx)); + return this.returnFunctionCallLhsRhs(lhs, args, lhsType); + } - returnFunctionCallLhs(code, name) { - const types = { - 100: bson.Code, 101: bson.ObjectId, 102: bson.Binary, 103: bson.DBRef, - 104: bson.Double, 105: bson.Int32, 106: bson.Long, 107: bson.MinKey, - 108: bson.MaxKey, 109: bson.BSONRegExp, 110: bson.Timestamp, - 111: bson.BSONSymbol, 112: bson.Decimal128, 200: Date, 8: RegExp, 2: Number, - 10: Object - }; - const result = types[code]; - if (result === undefined) { - throw new BsonTranspilersReferenceError(`Cannot instantiate ${name} with code=${code}`); + /** + * Don't concatenate child nodes, return them as array. + * + * @param {ParserRuleContext} ctx + * @param {Object} options + * @return {Array} + */ + visitChildren(ctx, options) { + const opts = { + start: 0, + step: 1, + separator: '', + ignore: [], + children: ctx.children, + }; + Object.assign(opts, options ? options : {}); + opts.end = 'end' in opts ? opts.end : opts.children.length - 1; + + const code = []; + for (let i = opts.start; i <= opts.end; i += opts.step) { + if (opts.ignore.indexOf(i) === -1) { + code.push(this.visit(opts.children[i])); + } + } + const result = code.filter((c) => c !== this.IGNORE); + if (result.length === 1) { + return result[0]; + } + return result; } - return result; - } - returnFunctionCallLhsRhs(lhs, args, lhsType) { - if (args.length === 1 && args[0] === undefined) { - args = []; + returnFunctionCallRhs(rhs) { + return rhs; } - if (lhsType && lhsType.argsTemplate) { - return lhsType.argsTemplate.bind(this.getState())(lhs, ...args); + returnFunctionCallLhs(code, name) { + const types = { + 100: bson.Code, + 101: bson.ObjectId, + 102: bson.Binary, + 103: bson.DBRef, + 104: bson.Double, + 105: bson.Int32, + 106: bson.Long, + 107: bson.MinKey, + 108: bson.MaxKey, + 109: bson.BSONRegExp, + 110: bson.Timestamp, + 111: bson.BSONSymbol, + 112: bson.Decimal128, + 200: Date, + 8: RegExp, + 2: Number, + 10: Object, + }; + const result = types[code]; + if (result === undefined) { + throw new BsonTranspilersReferenceError( + `Cannot instantiate ${name} with code=${code}` + ); + } + return result; } - let expr; - try { - if (lhsType.callable === this.SYMBOL_TYPE.CONSTRUCTOR) { - expr = new lhs(...args); - } else { - expr = lhs(...args); + returnFunctionCallLhsRhs(lhs, args, lhsType) { + if (args.length === 1 && args[0] === undefined) { + args = []; + } + + if (lhsType && lhsType.argsTemplate) { + return lhsType.argsTemplate.bind(this.getState())(lhs, ...args); } - } catch (e) { - if (e.message.includes('constructor')) { - try { + + let expr; + try { + if (lhsType.callable === this.SYMBOL_TYPE.CONSTRUCTOR) { + expr = new lhs(...args); + } else { expr = lhs(...args); - } catch (e2) { - e2.message = `Error constructing type: ${e2.message}`; - throw e2; } - } else { - e.message = `Error constructing type: ${e.message}`; - throw e; + } catch (e) { + if (e.message.includes('constructor')) { + try { + expr = lhs(...args); + } catch (e2) { + e2.message = `Error constructing type: ${e2.message}`; + throw e2; + } + } else { + e.message = `Error constructing type: ${e.message}`; + throw e; + } } + return expr; } - return expr; - } - returnAttributeAccess(lhs, rhs, type) { - if (type === null) { - throw new BsonTranspilersTypeError(`Error: ${rhs} is undefined and cannot be called`); - } - let expr = lhs[rhs]; - if (type.attr[rhs].template) { - expr = type.attr[rhs].template(lhs, rhs); + returnAttributeAccess(lhs, rhs, type) { + if (type === null) { + throw new BsonTranspilersTypeError( + `Error: ${rhs} is undefined and cannot be called` + ); + } + let expr = lhs[rhs]; + if (type.attr[rhs].template) { + expr = type.attr[rhs].template(lhs, rhs); + if (typeof expr === 'function') { + return function () { + return expr(...arguments); + }; + } + } if (typeof expr === 'function') { - return function() { - return expr(...arguments); + return function () { + return lhs[rhs](...arguments); }; } + return expr; } - if (typeof expr === 'function') { - return function() { - return lhs[rhs](...arguments); - }; + + returnParenthesis(expr) { + return expr; + } + + returnSet(args) { + return args; + } + + returnComparison(ctx) { + return ctx.children.reduce((s, node, i, arr) => { + if (i === arr.length - 1) { + // Always visit the last element + return s; + } + if (i % 2 === 0) { + // Only ops + return s; + } + const op = this.visit(node); + if ( + typeof op === 'object' && + op.length === 2 && + op.every((k) => ['in', 'is', 'not'].indexOf(k) !== -1) + ) { + return this.Syntax.equality.template(s, '!=', this.visit(arr[i + 1])); + } + if (['>', '<', '<=', '>=', '<>', '==', '!=', 'is'].indexOf(op) !== -1) { + return this.Syntax.equality.template(s, op, this.visit(arr[i + 1])); + } + if (op === 'in' || op === 'notin') { + return this.Syntax.in.template.bind(this.state)( + s, + op, + this.visit(arr[i + 1]) + ); + } + throw new BsonTranspilersRuntimeError(`Unrecognized operation ${op}`); + }, this.visit(ctx.children[0])); } - return expr; - } - returnParenthesis(expr) { - return expr; - } + emitLongfromBits(ctx) { + ctx.type = this.Types.Long; + const symbolType = this.Symbols.Long.attr.fromBits; + const rhs = this.checkArguments( + symbolType.args, + this.getArguments(ctx), + 'Long.fromBits' + ); + return bson.Long.fromBits(...rhs); + } - returnSet(args) { - return args; - } + emitRegex(ctx, pattern, flags) { + return new bson.BSONRegExp(pattern, flags); + } - returnComparison(ctx) { - return ctx.children.reduce((s, node, i, arr) => { - if (i === arr.length - 1) { // Always visit the last element - return s; - } - if (i % 2 === 0) { // Only ops - return s; - } - const op = this.visit(node); - if (typeof op === 'object' && op.length === 2 && op.every((k) => (['in', 'is', 'not'].indexOf(k) !== -1))) { - return this.Syntax.equality.template(s, '!=', this.visit(arr[i + 1])); - } - if (['>', '<', '<=', '>=', '<>', '==', '!=', 'is'].indexOf(op) !== -1) { - return this.Syntax.equality.template(s, op, this.visit(arr[i + 1])); - } - if (op === 'in' || op === 'notin') { - return this.Syntax.in.template.bind(this.state)(s, op, this.visit(arr[i + 1])); + emit_array(ctx) { + ctx.type = this.Types._array; + this.requiredImports[9] = true; + return this.getList(ctx).map((child) => this.visit(child)); + } + + emit_object(ctx) { + ctx.type = this.Types._object; + this.requiredImports[10] = true; + const object = {}; + this.getKeyValueList(ctx).map((k) => { + const key = this.getKeyStr(k); + if (key === '$where') { + object[key] = removeQuotes(this.getValue(k).getText()); + } else { + object[key] = this.visit(this.getValue(k)); + } + }); + return object; + } + + emitdatetime(ctx, date, isString) { + if (date === null && isString) { + return Date(); + } else if (date === null) { + return new Date(); } - throw new BsonTranspilersRuntimeError(`Unrecognized operation ${op}`); - }, this.visit(ctx.children[0])); - } - - emitLongfromBits(ctx) { - ctx.type = this.Types.Long; - const symbolType = this.Symbols.Long.attr.fromBits; - const rhs = this.checkArguments( - symbolType.args, this.getArguments(ctx), 'Long.fromBits' - ); - return bson.Long.fromBits(...rhs); - } - - emitRegex(ctx, pattern, flags) { - return new bson.BSONRegExp(pattern, flags); - } - - emit_array(ctx) { - ctx.type = this.Types._array; - this.requiredImports[9] = true; - return this.getList(ctx).map((child) => ( this.visit(child) )); - } - - emit_object(ctx) { - ctx.type = this.Types._object; - this.requiredImports[10] = true; - const object = {}; - this.getKeyValueList(ctx).map((k) => { - const key = this.getKeyStr(k); - if (key === '$where') { - object[key] = removeQuotes(this.getValue(k).getText()); - } else { - object[key] = this.visit(this.getValue(k)); + return date; + } + emitDate(ctx, date, isString) { + if (date === null && isString) { + return Date(); + } else if (date === null) { + return new Date(); } - }); - return object; - } - - emitdatetime(ctx, date, isString) { - if (date === null && isString) { - return Date(); - } else if (date === null) { - return new Date(); - } - return date; - } - emitDate(ctx, date, isString) { - if (date === null && isString) { - return Date(); - } else if (date === null) { - return new Date(); - } - return date; - } - - /* Numbers need emit methods because they also take type args */ - - emitNumber(ctx, arg) { - return Number(arg); - } - - emitint(ctx, arg) { - return new bson.Int32(arg); - } - - emitfloat(ctx, arg) { - return new bson.Double(arg); - } -}; + return date; + } + + /* Numbers need emit methods because they also take type args */ + + emitNumber(ctx, arg) { + return Number(arg); + } + + emitint(ctx, arg) { + return new bson.Int32(arg); + } + + emitfloat(ctx, arg) { + return new bson.Double(arg); + } + }; diff --git a/packages/bson-transpilers/codegeneration/php/Generator.js b/packages/bson-transpilers/codegeneration/php/Generator.js index 595e27138e7..6fbd38f8c64 100644 --- a/packages/bson-transpilers/codegeneration/php/Generator.js +++ b/packages/bson-transpilers/codegeneration/php/Generator.js @@ -3,11 +3,12 @@ * Class for handling edge cases for php code generation. Defines "emit" methods. */ const PHPUtils = require('./PHPUtils'); -module.exports = (Visitor) => class Generator extends Visitor { - constructor() { - super(); +module.exports = (Visitor) => + class Generator extends Visitor { + constructor() { + super(); - // Common functions used by templates - this.state.utils = new PHPUtils(); - } -}; + // Common functions used by templates + this.state.utils = new PHPUtils(); + } + }; diff --git a/packages/bson-transpilers/codegeneration/php/PHPUtils.js b/packages/bson-transpilers/codegeneration/php/PHPUtils.js index 50d7cf7aee1..e01682e2999 100644 --- a/packages/bson-transpilers/codegeneration/php/PHPUtils.js +++ b/packages/bson-transpilers/codegeneration/php/PHPUtils.js @@ -5,8 +5,7 @@ * @returns {object} */ class PHPUtils { - constructor() { - } + constructor() {} /** * Common string checker to be sure we work with string @@ -54,7 +53,7 @@ class PHPUtils { removeStringQuotes(str) { str = this.convertToString(str); if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === "'" && str.charAt(str.length - 1) === "'") || (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"') ) { str = str.substr(1, str.length - 2); diff --git a/packages/bson-transpilers/codegeneration/python/Generator.js b/packages/bson-transpilers/codegeneration/python/Generator.js index 7e87864aa1a..a176c791be8 100644 --- a/packages/bson-transpilers/codegeneration/python/Generator.js +++ b/packages/bson-transpilers/codegeneration/python/Generator.js @@ -2,8 +2,9 @@ /* * Class for handling edge cases for python code generation. Defines "emit" methods. */ -module.exports = (Visitor) => class Generator extends Visitor { - constructor() { - super(); - } -}; +module.exports = (Visitor) => + class Generator extends Visitor { + constructor() { + super(); + } + }; diff --git a/packages/bson-transpilers/codegeneration/python/Visitor.js b/packages/bson-transpilers/codegeneration/python/Visitor.js index 5594af4262f..6db87c644b9 100644 --- a/packages/bson-transpilers/codegeneration/python/Visitor.js +++ b/packages/bson-transpilers/codegeneration/python/Visitor.js @@ -5,7 +5,7 @@ const { BsonTranspilersArgumentError, BsonTranspilersRuntimeError, BsonTranspilersInternalError, - BsonTranspilersUnimplementedError + BsonTranspilersUnimplementedError, } = require('../../helper/error'); const { removeQuotes } = require('../../helper/format'); @@ -16,736 +16,807 @@ const { removeQuotes } = require('../../helper/format'); * all visitors. * @return {Visitor} - Input-language specific visitor. */ -module.exports = (CodeGenerationVisitor) => class Visitor extends CodeGenerationVisitor { - constructor() { - super(); - this.startRule = 'file_input'; // Name of the ANTLR rule to start - - - // Throw UnimplementedError for nodes with expressions that we don't support - this.visitDel_stmt = - this.visitPass_stmt = - this.visitFlow_stmt = - this.visitImport_stmt = - this.visitGlobal_stmt = - this.visitNonlocal_stmt = - this.visitAssert_stmt = - this.visitIf_stmt = - this.visitWhile_stmt = - this.visitFor_stmt = - this.visitTry_stmt = - this.visitWith_stmt = - this.visitFuncdef = - this.visitClassdef = - this.visitDecorated = - this.visitAsync_stmt = - this.visitComp_iter = - this.visitStar_expr = - this.visitInline_if = - this.visitAssign_stmt = - this.visitEllipsesAtom = - this.visitAugassign = - this.visitImag_literal = - this.unimplemented; - } - - /* - * - * Visit Methods - * - */ - - visitFile_input(ctx) { - if (ctx.stmt().length !== 1) { - throw new BsonTranspilersRuntimeError(`Expression contains ${ - ctx.stmt().length} statements. Input should be a single statement`); - } - return this.visitChildren(ctx); - } - - visitFunctionCall(ctx) { - if (ctx.getChildCount() === 1) { +module.exports = (CodeGenerationVisitor) => + class Visitor extends CodeGenerationVisitor { + constructor() { + super(); + this.startRule = 'file_input'; // Name of the ANTLR rule to start + + // Throw UnimplementedError for nodes with expressions that we don't support + this.visitDel_stmt = + this.visitPass_stmt = + this.visitFlow_stmt = + this.visitImport_stmt = + this.visitGlobal_stmt = + this.visitNonlocal_stmt = + this.visitAssert_stmt = + this.visitIf_stmt = + this.visitWhile_stmt = + this.visitFor_stmt = + this.visitTry_stmt = + this.visitWith_stmt = + this.visitFuncdef = + this.visitClassdef = + this.visitDecorated = + this.visitAsync_stmt = + this.visitComp_iter = + this.visitStar_expr = + this.visitInline_if = + this.visitAssign_stmt = + this.visitEllipsesAtom = + this.visitAugassign = + this.visitImag_literal = + this.unimplemented; + } + + /* + * + * Visit Methods + * + */ + + visitFile_input(ctx) { + if (ctx.stmt().length !== 1) { + throw new BsonTranspilersRuntimeError( + `Expression contains ${ + ctx.stmt().length + } statements. Input should be a single statement` + ); + } return this.visitChildren(ctx); } - return this.generateFunctionCall(ctx); - } - - visitIdentifier(ctx) { - return this.generateIdentifier(ctx); - } - visitAttributeAccess(ctx) { - if (ctx.getChildCount() === 1) { - return this.visitChildren(ctx); + visitFunctionCall(ctx) { + if (ctx.getChildCount() === 1) { + return this.visitChildren(ctx); + } + return this.generateFunctionCall(ctx); } - return this.generateAttributeAccess(ctx); - } - visitObject_literal(ctx) { - this.testForComprehension(ctx.dictorsetmaker()); - return this.generateObjectLiteral(ctx); - } + visitIdentifier(ctx) { + return this.generateIdentifier(ctx); + } - visitArray_literal(ctx) { - this.testForComprehension(ctx.testlist_comp()); - return this.generateArrayLiteral(ctx); - } + visitAttributeAccess(ctx) { + if (ctx.getChildCount() === 1) { + return this.visitChildren(ctx); + } + return this.generateAttributeAccess(ctx); + } - visitExpr(ctx) { - if (ctx.getChildCount() === 1) { - return this.visitChildren(ctx); + visitObject_literal(ctx) { + this.testForComprehension(ctx.dictorsetmaker()); + return this.generateObjectLiteral(ctx); } - if (this.Syntax.binary.template) { - const kids = ctx.children.map(m => this.visit(m)); - return this.Syntax.binary.template(kids); + + visitArray_literal(ctx) { + this.testForComprehension(ctx.testlist_comp()); + return this.generateArrayLiteral(ctx); } - return this.visitChildren(ctx); - } - visitXor_expr(ctx) { - if (ctx.getChildCount() === 1) { + visitExpr(ctx) { + if (ctx.getChildCount() === 1) { + return this.visitChildren(ctx); + } + if (this.Syntax.binary.template) { + const kids = ctx.children.map((m) => this.visit(m)); + return this.Syntax.binary.template(kids); + } return this.visitChildren(ctx); } - if (this.Syntax.binary.template) { - const kids = ctx.children.map(m => this.visit(m)); - return this.Syntax.binary.template(kids); - } - return this.visitChildren(ctx); - } - visitAnd_expr(ctx) { - if (ctx.getChildCount() === 1) { + visitXor_expr(ctx) { + if (ctx.getChildCount() === 1) { + return this.visitChildren(ctx); + } + if (this.Syntax.binary.template) { + const kids = ctx.children.map((m) => this.visit(m)); + return this.Syntax.binary.template(kids); + } return this.visitChildren(ctx); } - if (this.Syntax.binary.template) { - const kids = ctx.children.map(m => this.visit(m)); - return this.Syntax.binary.template(kids); - } - return this.visitChildren(ctx); - } - - visitShift_expr(ctx) { - if (ctx.getChildCount() === 1) { + visitAnd_expr(ctx) { + if (ctx.getChildCount() === 1) { + return this.visitChildren(ctx); + } + if (this.Syntax.binary.template) { + const kids = ctx.children.map((m) => this.visit(m)); + return this.Syntax.binary.template(kids); + } return this.visitChildren(ctx); } - const args = ctx.children.map((n) => this.visit(n)); - if (this.Syntax.binary.template) { - return this.Syntax.binary.template(args); + + visitShift_expr(ctx) { + if (ctx.getChildCount() === 1) { + return this.visitChildren(ctx); + } + const args = ctx.children.map((n) => this.visit(n)); + if (this.Syntax.binary.template) { + return this.Syntax.binary.template(args); + } + return this.visitChildren(ctx); } - return this.visitChildren(ctx); - } - visitArith_expr(ctx) { - if (ctx.getChildCount() === 1) { + visitArith_expr(ctx) { + if (ctx.getChildCount() === 1) { + return this.visitChildren(ctx); + } + const args = ctx.children.map((n) => this.visit(n)); + if (this.Syntax.binary.template) { + return this.Syntax.binary.template(args); + } return this.visitChildren(ctx); } - const args = ctx.children.map((n) => this.visit(n)); - if (this.Syntax.binary.template) { - return this.Syntax.binary.template(args); - } - return this.visitChildren(ctx); - } - - /* So far, this only exists in Python so it hasn't been moved to - * CodeGenerationVisitor. However, if another input or output language has a - * set implementation, should move this to the shared visitor. */ - visitSet_literal(ctx) { - ctx.type = this.Types._array; - ctx.indentDepth = this.findIndentDepth(ctx) + 1; - this.requiredImports[9] = true; - let args = []; - const list = ctx.testlist_comp(); - this.testForComprehension(list); - let join; - if (list) { - // Sets of 1 item is the same as the item itself, but keep parens for math - if (list.children.length === 1) { - return this.returnParenthesis(this.visit(list.children[0])); - } - const visitedChildren = list.children.map((child) => { - return this.visit(child); - }); - const visitedElements = visitedChildren.filter((arg) => { - return arg !== ','; - }); - if (ctx.type.argsTemplate) { // NOTE: not currently being used anywhere. - args = visitedElements.map((arg, index) => { - const last = !visitedElements[index + 1]; - return ctx.type.argsTemplate.bind(this.getState())(arg, ctx.indentDepth, last); + + /* So far, this only exists in Python so it hasn't been moved to + * CodeGenerationVisitor. However, if another input or output language has a + * set implementation, should move this to the shared visitor. */ + visitSet_literal(ctx) { + ctx.type = this.Types._array; + ctx.indentDepth = this.findIndentDepth(ctx) + 1; + this.requiredImports[9] = true; + let args = []; + const list = ctx.testlist_comp(); + this.testForComprehension(list); + let join; + if (list) { + // Sets of 1 item is the same as the item itself, but keep parens for math + if (list.children.length === 1) { + return this.returnParenthesis(this.visit(list.children[0])); + } + const visitedChildren = list.children.map((child) => { + return this.visit(child); }); - join = ''; - } else { - args = visitedElements; - join = ', '; - } - } - if (ctx.type.template) { - return ctx.type.template(args.join(join), ctx.indentDepth); - } - return this.returnSet(args, ctx); - } - - visitStringAtom(ctx) { - ctx.type = this.Types._string; - this.requiredImports[ctx.type.code] = true; - // Pass the original argument type to the template, not the casted type. - const type = ctx.originalType === undefined ? ctx.type : ctx.originalType; - - let result = this.visitChildren(ctx); - result = result.replace(/^([rubf]?[rubf]["']|'''|"""|'|")/gi, ''); - result = result.replace(/(["]{3}|["]|[']{3}|['])$/, ''); - return this.generateLiteral( - ctx, ctx.type, [result, type.id], `'${result}'`, true - ); - } - - visitInteger_literal(ctx) { - return this.leafHelper(this.Types._long, ctx); - } - - visitOct_literal(ctx) { - return this.leafHelper(this.Types._octal, ctx); - } - - visitHex_literal(ctx) { - return this.leafHelper(this.Types._hex, ctx); - } - - visitBin_literal(ctx) { - return this.leafHelper(this.Types._bin, ctx); - } - - visitFloat_literal(ctx) { - return this.leafHelper(this.Types._decimal, ctx); - } - - visitBoolean_literal(ctx) { - return this.leafHelper(this.Types._bool, ctx); - } - - visitNone_literal(ctx) { - return this.leafHelper(this.Types._null, ctx); - } - - visitExpr_stmt(ctx) { - if ( - ('assign_stmt' in ctx && ctx.assign_stmt() !== null) || - ('augassign' in ctx && ctx.augassign() !== null) || - ('annassign' in ctx && ctx.annassign() !== null) - ) { - throw new BsonTranspilersUnimplementedError( - 'Assignment not yet implemented' + const visitedElements = visitedChildren.filter((arg) => { + return arg !== ','; + }); + if (ctx.type.argsTemplate) { + // NOTE: not currently being used anywhere. + args = visitedElements.map((arg, index) => { + const last = !visitedElements[index + 1]; + return ctx.type.argsTemplate.bind(this.getState())( + arg, + ctx.indentDepth, + last + ); + }); + join = ''; + } else { + args = visitedElements; + join = ', '; + } + } + if (ctx.type.template) { + return ctx.type.template(args.join(join), ctx.indentDepth); + } + return this.returnSet(args, ctx); + } + + visitStringAtom(ctx) { + ctx.type = this.Types._string; + this.requiredImports[ctx.type.code] = true; + // Pass the original argument type to the template, not the casted type. + const type = ctx.originalType === undefined ? ctx.type : ctx.originalType; + + let result = this.visitChildren(ctx); + result = result.replace(/^([rubf]?[rubf]["']|'''|"""|'|")/gi, ''); + result = result.replace(/(["]{3}|["]|[']{3}|['])$/, ''); + return this.generateLiteral( + ctx, + ctx.type, + [result, type.id], + `'${result}'`, + true ); } - return this.visitChildren(ctx); - } - visitFactor(ctx) { - if (ctx.getChildCount() === 1) { - return this.visitChildren(ctx); + visitInteger_literal(ctx) { + return this.leafHelper(this.Types._long, ctx); } - // For the expression "+1", set the type to the child's type. - const op = this.visit(ctx.children[0]); - const factor = this.visit(ctx.factor()); - ctx.type = this.findTypedNode(ctx.factor()).type; - if (this.Syntax.unary.template) { - return this.Syntax.unary.template( - op, - factor - ); + visitOct_literal(ctx) { + return this.leafHelper(this.Types._octal, ctx); } - return `${op}${factor}`; - } - visitTerm(ctx) { - if (ctx.getChildCount() === 1) { - return this.visitChildren(ctx); + visitHex_literal(ctx) { + return this.leafHelper(this.Types._hex, ctx); } - const args = ctx.children.map((n) => this.visit(n)); - if (this.Syntax.binary.template) { - return this.Syntax.binary.template(args); - } - return this.visitChildren(ctx); - } - visitPower(ctx) { - if (ctx.getChildCount() === 1) { - return this.visitChildren(ctx); + visitBin_literal(ctx) { + return this.leafHelper(this.Types._bin, ctx); } - const lhs = this.visit(ctx.atom()); - const rhs = this.visit(ctx.factor()); - if (this.Syntax.binary.template) { - return this.Syntax.binary.template([lhs, '**', rhs]); + + visitFloat_literal(ctx) { + return this.leafHelper(this.Types._decimal, ctx); } - return `${lhs} ** ${rhs}`; - } - visitAnd_test(ctx) { - if (ctx.getChildCount() === 1) { - return this.visitChildren(ctx); + visitBoolean_literal(ctx) { + return this.leafHelper(this.Types._bool, ctx); } - const children = ctx.not_test().map((t) => ( this.visit(t) )); - if (this.Syntax.and) { - return this.Syntax.and.template(children); + + visitNone_literal(ctx) { + return this.leafHelper(this.Types._null, ctx); } - return children.join(' and '); - } - visitOr_test(ctx) { - if (ctx.getChildCount() === 1) { + visitExpr_stmt(ctx) { + if ( + ('assign_stmt' in ctx && ctx.assign_stmt() !== null) || + ('augassign' in ctx && ctx.augassign() !== null) || + ('annassign' in ctx && ctx.annassign() !== null) + ) { + throw new BsonTranspilersUnimplementedError( + 'Assignment not yet implemented' + ); + } return this.visitChildren(ctx); } - const children = ctx.and_test().map((t) => (this.visit(t))); - if (this.Syntax.or) { - return this.Syntax.or.template(children); + + visitFactor(ctx) { + if (ctx.getChildCount() === 1) { + return this.visitChildren(ctx); + } + // For the expression "+1", set the type to the child's type. + const op = this.visit(ctx.children[0]); + const factor = this.visit(ctx.factor()); + + ctx.type = this.findTypedNode(ctx.factor()).type; + if (this.Syntax.unary.template) { + return this.Syntax.unary.template(op, factor); + } + return `${op}${factor}`; } - return children.join(' or '); - } - visitNot_test(ctx) { - if (ctx.getChildCount() === 1) { + visitTerm(ctx) { + if (ctx.getChildCount() === 1) { + return this.visitChildren(ctx); + } + const args = ctx.children.map((n) => this.visit(n)); + if (this.Syntax.binary.template) { + return this.Syntax.binary.template(args); + } return this.visitChildren(ctx); } - const child = this.visit(ctx.children[1]); - if (this.Syntax.not) { - return this.Syntax.not.template(child); + + visitPower(ctx) { + if (ctx.getChildCount() === 1) { + return this.visitChildren(ctx); + } + const lhs = this.visit(ctx.atom()); + const rhs = this.visit(ctx.factor()); + if (this.Syntax.binary.template) { + return this.Syntax.binary.template([lhs, '**', rhs]); + } + return `${lhs} ** ${rhs}`; } - } - returnComparison(ctx) { - let skip = false; - return ctx.children.reduce((str, e, i, arr) => { - if (skip) { // Skip for 'in' statements because swallows rhs - skip = false; - return str; + visitAnd_test(ctx) { + if (ctx.getChildCount() === 1) { + return this.visitChildren(ctx); } - if (i === arr.length - 1) { // Always visit the last element - return `${str}${this.visit(e)}`; + const children = ctx.not_test().map((t) => this.visit(t)); + if (this.Syntax.and) { + return this.Syntax.and.template(children); } - if (i % 2 === 0) { // Only ops - return str; + return children.join(' and '); + } + + visitOr_test(ctx) { + if (ctx.getChildCount() === 1) { + return this.visitChildren(ctx); } - const op = this.visit(e); - if (op === '==' || op === '!=' || op === 'is' || op === 'isnot') { - skip = true; - if (this.Syntax.equality) { - return `${str}${this.Syntax.equality.template( - this.visit(arr[i - 1]), op, this.visit(arr[i + 1]))}`; - } - return `${str} === ${this.visit(arr[i - 1])} ${op} ${this.visit(arr[i + 1])}`; + const children = ctx.and_test().map((t) => this.visit(t)); + if (this.Syntax.or) { + return this.Syntax.or.template(children); } - if (op === 'in' || op === 'notin') { - skip = true; - if (this.Syntax.in) { - return `${str}${this.Syntax.in.template.bind(this.state)( - this.visit(arr[i - 1]), op, this.visit(arr[i + 1]))}`; - } - return `${str} ${this.visit(arr[i - 1])} ${op} ${this.visit(arr[i + 1])}`; + return children.join(' or '); + } + + visitNot_test(ctx) { + if (ctx.getChildCount() === 1) { + return this.visitChildren(ctx); } - return `${str}${this.visit(arr[i - 1])} ${op} `; - }, ''); - } + const child = this.visit(ctx.children[1]); + if (this.Syntax.not) { + return this.Syntax.not.template(child); + } + } - visitComparison(ctx) { - if (ctx.getChildCount() === 1) { - return this.visitChildren(ctx); + returnComparison(ctx) { + let skip = false; + return ctx.children.reduce((str, e, i, arr) => { + if (skip) { + // Skip for 'in' statements because swallows rhs + skip = false; + return str; + } + if (i === arr.length - 1) { + // Always visit the last element + return `${str}${this.visit(e)}`; + } + if (i % 2 === 0) { + // Only ops + return str; + } + const op = this.visit(e); + if (op === '==' || op === '!=' || op === 'is' || op === 'isnot') { + skip = true; + if (this.Syntax.equality) { + return `${str}${this.Syntax.equality.template( + this.visit(arr[i - 1]), + op, + this.visit(arr[i + 1]) + )}`; + } + return `${str} === ${this.visit(arr[i - 1])} ${op} ${this.visit( + arr[i + 1] + )}`; + } + if (op === 'in' || op === 'notin') { + skip = true; + if (this.Syntax.in) { + return `${str}${this.Syntax.in.template.bind(this.state)( + this.visit(arr[i - 1]), + op, + this.visit(arr[i + 1]) + )}`; + } + return `${str} ${this.visit(arr[i - 1])} ${op} ${this.visit( + arr[i + 1] + )}`; + } + return `${str}${this.visit(arr[i - 1])} ${op} `; + }, ''); } - return this.returnComparison(ctx); - } - visitIndexAccess(ctx) { - if (ctx.getChildCount() === 1) { - return this.visitChildren(ctx); + visitComparison(ctx) { + if (ctx.getChildCount() === 1) { + return this.visitChildren(ctx); + } + return this.returnComparison(ctx); } - throw new BsonTranspilersUnimplementedError('Indexing not currently supported'); - } - - /* - * - * Process Methods - * - */ - - processint(ctx) { - return this.generateNumericClass(ctx); - } - - processfloat(ctx) { - return this.generateNumericClass(ctx); - } - - processInt64(ctx) { - return this.generateNumericClass(ctx); - } - - processfrom_native(ctx) { - ctx.type = this.Types.BSONRegExp; - const symbolType = this.Symbols.Regex; - - const argList = this.getArguments(ctx); - if (argList.length !== 1) { - throw new BsonTranspilersArgumentError('RegExp.from_native requires one argument'); - } - const pythonFlags = { - 256: '', 2: 'i', 128: '', 4: 'l', 8: 'm', 16: 's', 64: 'x' - }; - const native = this.skipFakeNodesDown(this.getArgumentAt(ctx, 0)); - const args = this.findPatternAndFlags(native, pythonFlags, this.Syntax.bsonRegexFlags); - - return this.generateCall( - ctx, symbolType, args, 'Regex', - `(${args[0]}${args[1] ? ', ' + args[1] : ''})` - ); - } - - processcompile(ctx) { - ctx.type = this.Types._regex; - const pythonFlags = { - 256: '', 2: 'i', 128: '', 4: '', 8: 'm', 16: '', 64: '' - }; - const args = this.findPatternAndFlags(ctx, pythonFlags, this.Syntax.regexFlags); - return this.generateLiteral(ctx, ctx.type, args, 'RegExp'); - } - - processRegex(ctx) { - return this.generateBSONRegex(ctx, this.Types.Regex, this.Symbols.Regex); - } - - processCode(ctx) { - return this.generateBSONCode(ctx, this.Types.Code, this.Symbols.Code, true); - } - - processdatetime(ctx) { - ctx.type = this.Types.Date; - ctx.wasNew = true; // Always true for non-js - const symbolType = this.Symbols.datetime; - let date = null; - - const argsList = this.getArguments(ctx); - if (argsList.length !== 0) { - if (argsList.length < 3) { - throw new BsonTranspilersArgumentError( - `Wrong number of arguments to datetime: needs at at least 3, got ${ - argsList.length}` - ); + + visitIndexAccess(ctx) { + if (ctx.getChildCount() === 1) { + return this.visitChildren(ctx); } + throw new BsonTranspilersUnimplementedError( + 'Indexing not currently supported' + ); + } - try { - this.checkArguments(symbolType.args, argsList, 'datetime'); - } catch (e) { + /* + * + * Process Methods + * + */ + + processint(ctx) { + return this.generateNumericClass(ctx); + } + + processfloat(ctx) { + return this.generateNumericClass(ctx); + } + + processInt64(ctx) { + return this.generateNumericClass(ctx); + } + + processfrom_native(ctx) { + ctx.type = this.Types.BSONRegExp; + const symbolType = this.Symbols.Regex; + + const argList = this.getArguments(ctx); + if (argList.length !== 1) { throw new BsonTranspilersArgumentError( - `Invalid argument to datetime: requires no args or up to 7 numbers. ${ - e.message}` + 'RegExp.from_native requires one argument' ); } + const pythonFlags = { + 256: '', + 2: 'i', + 128: '', + 4: 'l', + 8: 'm', + 16: 's', + 64: 'x', + }; + const native = this.skipFakeNodesDown(this.getArgumentAt(ctx, 0)); + const args = this.findPatternAndFlags( + native, + pythonFlags, + this.Syntax.bsonRegexFlags + ); + + return this.generateCall( + ctx, + symbolType, + args, + 'Regex', + `(${args[0]}${args[1] ? ', ' + args[1] : ''})` + ); + } + + processcompile(ctx) { + ctx.type = this.Types._regex; + const pythonFlags = { + 256: '', + 2: 'i', + 128: '', + 4: '', + 8: 'm', + 16: '', + 64: '', + }; + const args = this.findPatternAndFlags( + ctx, + pythonFlags, + this.Syntax.regexFlags + ); + return this.generateLiteral(ctx, ctx.type, args, 'RegExp'); + } + + processRegex(ctx) { + return this.generateBSONRegex(ctx, this.Types.Regex, this.Symbols.Regex); + } + + processCode(ctx) { + return this.generateBSONCode( + ctx, + this.Types.Code, + this.Symbols.Code, + true + ); + } + + processdatetime(ctx) { + ctx.type = this.Types.Date; + ctx.wasNew = true; // Always true for non-js + const symbolType = this.Symbols.datetime; + let date = null; + + const argsList = this.getArguments(ctx); + if (argsList.length !== 0) { + if (argsList.length < 3) { + throw new BsonTranspilersArgumentError( + `Wrong number of arguments to datetime: needs at at least 3, got ${argsList.length}` + ); + } - const argvals = argsList.map((k) => { - let v; try { - v = parseInt(k.getText(), 10); + this.checkArguments(symbolType.args, argsList, 'datetime'); } catch (e) { - throw new BsonTranspilersRuntimeError( - `Unable to convert datetime argument to integer: ${k.getText()}` + throw new BsonTranspilersArgumentError( + `Invalid argument to datetime: requires no args or up to 7 numbers. ${e.message}` ); } - if (isNaN(v)) { - throw new BsonTranspilersRuntimeError( - `Unable to convert datetime argument to integer: ${k.getText()}` + + const argvals = argsList.map((k) => { + let v; + try { + v = parseInt(k.getText(), 10); + } catch (e) { + throw new BsonTranspilersRuntimeError( + `Unable to convert datetime argument to integer: ${k.getText()}` + ); + } + if (isNaN(v)) { + throw new BsonTranspilersRuntimeError( + `Unable to convert datetime argument to integer: ${k.getText()}` + ); + } + return v; + }); + /* month is 0-based in JS, 1-based in everything else (afaict) */ + argvals[1]--; + /* date is 1900-based in JS, 0-based in python */ + argvals[0] -= 1900; + try { + date = new Date(Date.UTC(...argvals)); + } catch (e) { + throw new BsonTranspilersInternalError( + `Unable to construct date from arguments: ${e.message}` ); } - return v; - }); - /* month is 0-based in JS, 1-based in everything else (afaict) */ - argvals[1]--; - /* date is 1900-based in JS, 0-based in python */ - argvals[0] -= 1900; - try { - date = new Date(Date.UTC(...argvals)); - } catch (e) { - throw new BsonTranspilersInternalError( - `Unable to construct date from arguments: ${e.message}` - ); } - } - const dargs = `Date(${date - ? this.Types._string.template(date.toUTCString()) - : ''})`; - return this.generateCall( - ctx, symbolType, [date, false], '', dargs, false, true - ); - } - - processObjectIdfrom_datetime(ctx) { - return this.generateObjectIdFromTime(ctx); - } - - processBinary() { - throw new BsonTranspilersUnimplementedError('Binary type not supported'); - } - - /* - * - * Helper Methods - * - */ - - findPatternAndFlags(ctx, pythonFlags, targetFlags) { - let pattern; - - const symbolType = this.Symbols.re.attr.compile; - const argList = this.getArguments(ctx); - const args = this.checkArguments(symbolType.args, argList, symbolType.id, symbolType.namedArgs); - - // Compile regex without flags - const raw = this.getArgumentAt(ctx, 0).getText(); - let str = raw.replace(/^([rubf]?[rubf]["']|'''|"""|'|")/gi, ''); - str = str.replace(/(["]{3}|["]|[']{3}|['])$/, ''); - const input = `new RegExp(${raw.substr(-1)}${str}${raw.substr(-1)})`; - try { - const sandbox = { - RegExp: RegExp - }; - const regexobj = vm.runInContext('__result = ' + input, vm.createContext(sandbox)); - pattern = regexobj.source; - } catch (error) { - throw new BsonTranspilersRuntimeError(error.message); + const dargs = `Date(${ + date ? this.Types._string.template(date.toUTCString()) : '' + })`; + return this.generateCall( + ctx, + symbolType, + [date, false], + '', + dargs, + false, + true + ); } - // Convert flags - if (args.length === 1) { - return [pattern, targetFlags.u]; + processObjectIdfrom_datetime(ctx) { + return this.generateObjectIdFromTime(ctx); } - let flagsArg = argList[1]; - flagsArg = this.skipFakeNodesDown(this.checkNamedArgs( - [this.Types._integer], flagsArg, symbolType.namedArgs - )[1]); - let visited; - if ('expr' in flagsArg.parentCtx) { // combine bitwise flags - visited = flagsArg.xor_expr().map(f => this.visit(f)); - } else { - visited = [this.visit(flagsArg)]; + processBinary() { + throw new BsonTranspilersUnimplementedError('Binary type not supported'); } - const translated = visited - .map(f => pythonFlags[f]) - .filter(f => f !== undefined); + /* + * + * Helper Methods + * + */ - if (visited.indexOf('256') === -1) { // default is unicode without re.A - translated.push('u'); - } + findPatternAndFlags(ctx, pythonFlags, targetFlags) { + let pattern; - const target = translated - .map(m => targetFlags[m]) - .filter(f => f !== undefined); + const symbolType = this.Symbols.re.attr.compile; + const argList = this.getArguments(ctx); + const args = this.checkArguments( + symbolType.args, + argList, + symbolType.id, + symbolType.namedArgs + ); - const flags = target.sort().join(''); - return [pattern, flags]; - } + // Compile regex without flags + const raw = this.getArgumentAt(ctx, 0).getText(); + let str = raw.replace(/^([rubf]?[rubf]["']|'''|"""|'|")/gi, ''); + str = str.replace(/(["]{3}|["]|[']{3}|['])$/, ''); + const input = `new RegExp(${raw.substr(-1)}${str}${raw.substr(-1)})`; + try { + const sandbox = { + RegExp: RegExp, + }; + const regexobj = vm.runInContext( + '__result = ' + input, + vm.createContext(sandbox) + ); + pattern = regexobj.source; + } catch (error) { + throw new BsonTranspilersRuntimeError(error.message); + } + // Convert flags + if (args.length === 1) { + return [pattern, targetFlags.u]; + } - /** - * Want to throw unimplemented for comprehensions instead of reference errors. - * @param {ParserRuleContext} ctx - */ - testForComprehension(ctx) { - if (ctx === null || ctx === undefined) { - return; + let flagsArg = argList[1]; + flagsArg = this.skipFakeNodesDown( + this.checkNamedArgs( + [this.Types._integer], + flagsArg, + symbolType.namedArgs + )[1] + ); + let visited; + if ('expr' in flagsArg.parentCtx) { + // combine bitwise flags + visited = flagsArg.xor_expr().map((f) => this.visit(f)); + } else { + visited = [this.visit(flagsArg)]; + } + + const translated = visited + .map((f) => pythonFlags[f]) + .filter((f) => f !== undefined); + + if (visited.indexOf('256') === -1) { + // default is unicode without re.A + translated.push('u'); + } + + const target = translated + .map((m) => targetFlags[m]) + .filter((f) => f !== undefined); + + const flags = target.sort().join(''); + return [pattern, flags]; } - if ( - ('comp_for' in ctx && ctx.comp_for() !== null) || + + /** + * Want to throw unimplemented for comprehensions instead of reference errors. + * @param {ParserRuleContext} ctx + */ + testForComprehension(ctx) { + if (ctx === null || ctx === undefined) { + return; + } + if ( + ('comp_for' in ctx && ctx.comp_for() !== null) || ('comp_if' in ctx && ctx.comp_if() !== null) - ) { - throw new BsonTranspilersUnimplementedError( - 'Comprehensions not yet implemented' - ); + ) { + throw new BsonTranspilersUnimplementedError( + 'Comprehensions not yet implemented' + ); + } } - } - - getParentUntil(ctx, name, steps) { - steps = steps === undefined ? 0 : steps; - let res = ctx; - let found = false; - const stack = []; - while (res !== undefined && res !== null && !found) { - if (name in res) { - const goal = res[name](); - if (goal === stack[stack.length - 1]) { - found = true; + + getParentUntil(ctx, name, steps) { + steps = steps === undefined ? 0 : steps; + let res = ctx; + let found = false; + const stack = []; + while (res !== undefined && res !== null && !found) { + if (name in res) { + const goal = res[name](); + if (goal === stack[stack.length - 1]) { + found = true; + break; + } + } + stack.push(res); + res = res.parentCtx; + } + return found ? stack[stack.length - 1 - steps] : false; + } + + skipFakeNodesDown(ctx, goal) { + let res = ctx; + while (res.children !== undefined && res.children.length === 1) { + res = res.children[0]; + if (goal && goal in res) { + res = res[goal](); break; } } - stack.push(res); - res = res.parentCtx; - } - return found ? stack[stack.length - 1 - steps] : false; - } - - skipFakeNodesDown(ctx, goal) { - let res = ctx; - while (res.children !== undefined && res.children.length === 1) { - res = res.children[0]; - if (goal && goal in res) { - res = res[goal](); - break; - } - } - if (res.children === undefined) { - return res.parentCtx; - } - return res; - } - - skipFakeNodesUp(ctx, goal) { - let res = ctx.parentCtx; - while (res !== undefined && res !== null && res.children !== undefined && - res.children.length === 1) { - if (goal && goal in res) { - res = res[goal](); - break; - } - res = res.parentCtx; - } - return res; - } - - /** - * Takes in the constructor name of a node and returns a human-readable - * node name. Used for error reporting, must be defined by all visitors. - * - * @param {String} name - * @return {String} - */ - renameNode(name) { - return name ? name.replace('_stmt', '') : 'Expression'; - } - - /** - * If a named argument is passed in, then check against the 'namedArgs' array - * instead of positionally. - * - * @param {Array} expected - * @param {ParserRuleContext} node - * @param {Object} namedArgs - * @return {Array} - */ - checkNamedArgs(expected, node, namedArgs) { - const child = this.skipFakeNodesDown(node); - if (namedArgs && 'test' in child && child.test().length > 1) { - const name = child.test()[0].getText(); - const value = child.test()[1]; - const expectedType = namedArgs[name]; - if (expectedType === undefined) { - throw new BsonTranspilersArgumentError( - `Unknown named argument '${name}'` - ); + if (res.children === undefined) { + return res.parentCtx; } - return [expectedType.type, value]; - } - return [expected, node]; - } - - /* - * - * Accessor Functions. - * - * These MUST be defined by every visitor. Each function is a wrapper around - * a tree node. They are required so that the CodeGenerationVisitor and the - * Generators can access tree elements without needing to know which tree they - * are visiting or the ANTLR name of the node. - * - */ - - getArguments(ctx) { - const trailer = ctx.paren_trailer(); - if (!('arglist' in trailer) || trailer.arglist() === null) { - return []; + return res; + } + + skipFakeNodesUp(ctx, goal) { + let res = ctx.parentCtx; + while ( + res !== undefined && + res !== null && + res.children !== undefined && + res.children.length === 1 + ) { + if (goal && goal in res) { + res = res[goal](); + break; + } + res = res.parentCtx; + } + return res; + } + + /** + * Takes in the constructor name of a node and returns a human-readable + * node name. Used for error reporting, must be defined by all visitors. + * + * @param {String} name + * @return {String} + */ + renameNode(name) { + return name ? name.replace('_stmt', '') : 'Expression'; + } + + /** + * If a named argument is passed in, then check against the 'namedArgs' array + * instead of positionally. + * + * @param {Array} expected + * @param {ParserRuleContext} node + * @param {Object} namedArgs + * @return {Array} + */ + checkNamedArgs(expected, node, namedArgs) { + const child = this.skipFakeNodesDown(node); + if (namedArgs && 'test' in child && child.test().length > 1) { + const name = child.test()[0].getText(); + const value = child.test()[1]; + const expectedType = namedArgs[name]; + if (expectedType === undefined) { + throw new BsonTranspilersArgumentError( + `Unknown named argument '${name}'` + ); + } + return [expectedType.type, value]; + } + return [expected, node]; + } + + /* + * + * Accessor Functions. + * + * These MUST be defined by every visitor. Each function is a wrapper around + * a tree node. They are required so that the CodeGenerationVisitor and the + * Generators can access tree elements without needing to know which tree they + * are visiting or the ANTLR name of the node. + * + */ + + getArguments(ctx) { + const trailer = ctx.paren_trailer(); + if (!('arglist' in trailer) || trailer.arglist() === null) { + return []; + } + return trailer.arglist().argument(); } - return trailer.arglist().argument(); - } - getArgumentAt(ctx, i) { - return this.getArguments(ctx)[i]; - } + getArgumentAt(ctx, i) { + return this.getArguments(ctx)[i]; + } - getFunctionCallName(ctx) { - return ctx.atom(); - } + getFunctionCallName(ctx) { + return ctx.atom(); + } - getIfIdentifier(ctx) { - if ('identifier' in ctx) { - return ctx.identifier(); + getIfIdentifier(ctx) { + if ('identifier' in ctx) { + return ctx.identifier(); + } + return ctx; + } + + getAttributeLHS(ctx) { + return ctx.atom(); } - return ctx; - } - getAttributeLHS(ctx) { - return ctx.atom(); - } + getAttributeRHS(ctx) { + return ctx.dot_trailer().identifier(); + } - getAttributeRHS(ctx) { - return ctx.dot_trailer().identifier(); - } + getList(ctx) { + if (!('testlist_comp' in ctx) || !ctx.testlist_comp()) { + return []; + } + return ctx.testlist_comp().test(); + } - getList(ctx) { - if (!('testlist_comp' in ctx) || !ctx.testlist_comp()) { + getArray(ctx) { + return this.skipFakeNodesDown(ctx, 'array_literal'); + } + + getObject(ctx) { + return this.skipFakeNodesDown(ctx, 'object_literal'); + } + + getKeyValueList(ctx) { + if ('dictorsetmaker' in ctx && ctx.dictorsetmaker()) { + const properties = ctx.dictorsetmaker().test(); + return properties + .map((key, i) => { + if (i % 2 === 0) { + return [key, properties[i + 1]]; + } + return null; + }) + .filter((k) => k !== null); + } return []; } - return ctx.testlist_comp().test(); - } - - getArray(ctx) { - return this.skipFakeNodesDown(ctx, 'array_literal'); - } - - getObject(ctx) { - return this.skipFakeNodesDown(ctx, 'object_literal'); - } - - getKeyValueList(ctx) { - if ('dictorsetmaker' in ctx && ctx.dictorsetmaker()) { - const properties = ctx.dictorsetmaker().test(); - return properties - .map((key, i) => { - if (i % 2 === 0) { - return [ - key, - properties[i + 1] - ]; - } - return null; - }) - .filter((k) => (k !== null)); - } - return []; - } - - getKeyStr(k) { - return removeQuotes(this.visit(k[0])); - } - - getValue(k) { - return k[1]; - } - - isSubObject(ctx) { - return this.getParentUntil(ctx.parentCtx, 'dictorsetmaker', 1); - } - - getParentKeyStr(ctx) { // TODO: fix for long list - // For a given sub document, get its key. - const topNode = this.getParentUntil(ctx.parentCtx, 'dictorsetmaker', 1); - const objNode = topNode.parentCtx; - const index = objNode.test().indexOf(topNode); - const keyNode = objNode.test()[index - 1]; - const key = this.visit(keyNode); - return removeQuotes(key); - } - - getObjectChild(ctx) { - return this.skipFakeNodesDown(ctx); - } -}; + getKeyStr(k) { + return removeQuotes(this.visit(k[0])); + } + + getValue(k) { + return k[1]; + } + + isSubObject(ctx) { + return this.getParentUntil(ctx.parentCtx, 'dictorsetmaker', 1); + } + + getParentKeyStr(ctx) { + // TODO: fix for long list + // For a given sub document, get its key. + const topNode = this.getParentUntil(ctx.parentCtx, 'dictorsetmaker', 1); + const objNode = topNode.parentCtx; + const index = objNode.test().indexOf(topNode); + const keyNode = objNode.test()[index - 1]; + const key = this.visit(keyNode); + return removeQuotes(key); + } + + getObjectChild(ctx) { + return this.skipFakeNodesDown(ctx); + } + }; diff --git a/packages/bson-transpilers/codegeneration/ruby/Generator.js b/packages/bson-transpilers/codegeneration/ruby/Generator.js index f4765399bf2..6da035c02b8 100644 --- a/packages/bson-transpilers/codegeneration/ruby/Generator.js +++ b/packages/bson-transpilers/codegeneration/ruby/Generator.js @@ -2,8 +2,9 @@ /* * Class for handling edge cases for ruby code generation. Defines "emit" methods. */ -module.exports = (Visitor) => class Generator extends Visitor { - constructor() { - super(); - } -}; +module.exports = (Visitor) => + class Generator extends Visitor { + constructor() { + super(); + } + }; diff --git a/packages/bson-transpilers/codegeneration/rust/Generator.js b/packages/bson-transpilers/codegeneration/rust/Generator.js index 7904a87117b..b6657b036ac 100644 --- a/packages/bson-transpilers/codegeneration/rust/Generator.js +++ b/packages/bson-transpilers/codegeneration/rust/Generator.js @@ -2,8 +2,9 @@ /* * Class for handling edge cases for rust code generation. Defines "emit" methods. */ -module.exports = (Visitor) => class Generator extends Visitor { - constructor() { - super(); - } -}; +module.exports = (Visitor) => + class Generator extends Visitor { + constructor() { + super(); + } + }; diff --git a/packages/bson-transpilers/codegeneration/shell/Generator.js b/packages/bson-transpilers/codegeneration/shell/Generator.js index 7784cc713b0..7296aa84393 100644 --- a/packages/bson-transpilers/codegeneration/shell/Generator.js +++ b/packages/bson-transpilers/codegeneration/shell/Generator.js @@ -2,8 +2,9 @@ /* * Class for handling edge cases for shell code generation. Defines "emit" methods. */ -module.exports = (Visitor) => class Generator extends Visitor { - constructor() { - super(); - } -}; +module.exports = (Visitor) => + class Generator extends Visitor { + constructor() { + super(); + } + }; diff --git a/packages/bson-transpilers/codegeneration/shell/Visitor.js b/packages/bson-transpilers/codegeneration/shell/Visitor.js index 9ba45dd6b10..57656a3afea 100644 --- a/packages/bson-transpilers/codegeneration/shell/Visitor.js +++ b/packages/bson-transpilers/codegeneration/shell/Visitor.js @@ -4,7 +4,7 @@ const vm = require('vm'); const bson = require('bson'); const { BsonTranspilersRuntimeError, - BsonTranspilersUnimplementedError + BsonTranspilersUnimplementedError, } = require('../../helper/error'); /** @@ -15,136 +15,140 @@ const { * specific visitor. * @return {Visitor} - Input-language specific visitor. */ -module.exports = (JavascriptVisitor) => class Visitor extends JavascriptVisitor { - constructor() { - super(); - } - - processNumberLong(ctx) { - return this.generateNumericClass(ctx); - } - executeJavascript(input) { - const sandbox = { - RegExp: RegExp, - DBRef: bson.DBRef, - Map: bson.Map, - MaxKey: bson.MaxKey, - MinKey: bson.MinKey, - ObjectId: bson.ObjectId, - BSONSymbol: bson.BSONSymbol, - Timestamp: bson.Timestamp, - Decimal128: bson.Decimal128, - Long: bson.Long, - Int32: bson.Int32, - Double: bson.Double, - Code: function(c, s) { - return new bson.Code(c, s); - }, - NumberDecimal: function(s) { - if (s === undefined) { - s = '0'; - } - return bson.Decimal128.fromString(s.toString()); - }, - NumberInt: function(s) { - return parseInt(s, 10); - }, - NumberLong: function(v) { - if (v === undefined) { - v = 0; - } - return bson.Long.fromNumber(v); - }, - ISODate: function(s) { - return new Date(s); - }, - Date: function(s) { - const args = Array.from(arguments); +module.exports = (JavascriptVisitor) => + class Visitor extends JavascriptVisitor { + constructor() { + super(); + } - if (args.length === 1) { + processNumberLong(ctx) { + return this.generateNumericClass(ctx); + } + executeJavascript(input) { + const sandbox = { + RegExp: RegExp, + DBRef: bson.DBRef, + Map: bson.Map, + MaxKey: bson.MaxKey, + MinKey: bson.MinKey, + ObjectId: bson.ObjectId, + BSONSymbol: bson.BSONSymbol, + Timestamp: bson.Timestamp, + Decimal128: bson.Decimal128, + Long: bson.Long, + Int32: bson.Int32, + Double: bson.Double, + Code: function (c, s) { + return new bson.Code(c, s); + }, + NumberDecimal: function (s) { + if (s === undefined) { + s = '0'; + } + return bson.Decimal128.fromString(s.toString()); + }, + NumberInt: function (s) { + return parseInt(s, 10); + }, + NumberLong: function (v) { + if (v === undefined) { + v = 0; + } + return bson.Long.fromNumber(v); + }, + ISODate: function (s) { return new Date(s); - } + }, + Date: function (s) { + const args = Array.from(arguments); - return new Date(Date.UTC(...args)); - }, - Buffer: Buffer, - __result: {} - }; - const res = vm.runInContext('__result = ' + input, vm.createContext(sandbox)); - return res; - } + if (args.length === 1) { + return new Date(s); + } - /** - * BinData needs extra processing because we need to check that the arg is - * valid base64. - * - * TODO: figure out if it ever makes sense to support Binary. - */ - processBinData() { - throw new BsonTranspilersUnimplementedError('BinData type not supported'); - } - - /** - * Needs preprocessing because must be executed in javascript. - * - * @param {FuncCallExpressionContext} ctx - * @return {String} - */ - processNumberDecimal(ctx) { - ctx.type = this.Types.NumberDecimal; - const symbolType = this.Symbols.NumberDecimal; - let decstr; - try { - decstr = this.executeJavascript(`new ${ctx.getText()}`).toString(); - } catch (error) { - throw new BsonTranspilersRuntimeError(error.message); - } - if ('emitNumberDecimal' in this) { - return this.emitNumberDecimal(ctx, decstr); + return new Date(Date.UTC(...args)); + }, + Buffer: Buffer, + __result: {}, + }; + const res = vm.runInContext( + '__result = ' + input, + vm.createContext(sandbox) + ); + return res; } - const lhs = symbolType.template - ? symbolType.template() - : this.returnFunctionCallLhs(symbolType.code, 'NumberDecimal'); - - const res = this.returnFunctionCallLhsRhs(lhs, [decstr], symbolType, lhs); - return this.Syntax.new.template - ? this.Syntax.new.template(res, false, ctx.type.code) - : this.returnFunctionCallLhsRhs(lhs, [decstr], symbolType, lhs); - } + /** + * BinData needs extra processing because we need to check that the arg is + * valid base64. + * + * TODO: figure out if it ever makes sense to support Binary. + */ + processBinData() { + throw new BsonTranspilersUnimplementedError('BinData type not supported'); + } - /** - * Needs preprocessing because ISODate is treated exactly like Date, but always - * is invoked as an object. - * - * @param {FuncCallExpressionContext} ctx - * @return {String} - */ - processISODate(ctx) { - ctx.wasNew = true; - return this.processDate(ctx); - } + /** + * Needs preprocessing because must be executed in javascript. + * + * @param {FuncCallExpressionContext} ctx + * @return {String} + */ + processNumberDecimal(ctx) { + ctx.type = this.Types.NumberDecimal; + const symbolType = this.Symbols.NumberDecimal; + let decstr; + try { + decstr = this.executeJavascript(`new ${ctx.getText()}`).toString(); + } catch (error) { + throw new BsonTranspilersRuntimeError(error.message); + } + if ('emitNumberDecimal' in this) { + return this.emitNumberDecimal(ctx, decstr); + } + const lhs = symbolType.template + ? symbolType.template() + : this.returnFunctionCallLhs(symbolType.code, 'NumberDecimal'); - /** - * Also accepts no arguments. - * - * @param {FuncCallExpressionContext} ctx - * @return {String} - */ - processCode(ctx) { - ctx.type = this.Types.Code; - const symbolType = this.Symbols.Code; - const lhs = symbolType.template - ? symbolType.template() - : this.returnFunctionCallLhs(symbolType.code, 'Code'); + const res = this.returnFunctionCallLhsRhs(lhs, [decstr], symbolType, lhs); - if (this.getArguments(ctx).length === 0) { - const code = this.returnFunctionCallLhsRhs(lhs, [], symbolType, lhs); return this.Syntax.new.template - ? this.Syntax.new.template(code, false, ctx.type.code) - : code; + ? this.Syntax.new.template(res, false, ctx.type.code) + : this.returnFunctionCallLhsRhs(lhs, [decstr], symbolType, lhs); + } + + /** + * Needs preprocessing because ISODate is treated exactly like Date, but always + * is invoked as an object. + * + * @param {FuncCallExpressionContext} ctx + * @return {String} + */ + processISODate(ctx) { + ctx.wasNew = true; + return this.processDate(ctx); } - return this.generateBSONCode(ctx, ctx.type, symbolType, true); - } -}; + /** + * Also accepts no arguments. + * + * @param {FuncCallExpressionContext} ctx + * @return {String} + */ + processCode(ctx) { + ctx.type = this.Types.Code; + const symbolType = this.Symbols.Code; + const lhs = symbolType.template + ? symbolType.template() + : this.returnFunctionCallLhs(symbolType.code, 'Code'); + + if (this.getArguments(ctx).length === 0) { + const code = this.returnFunctionCallLhsRhs(lhs, [], symbolType, lhs); + return this.Syntax.new.template + ? this.Syntax.new.template(code, false, ctx.type.code) + : code; + } + + return this.generateBSONCode(ctx, ctx.type, symbolType, true); + } + }; diff --git a/packages/bson-transpilers/compile-symbol-table.js b/packages/bson-transpilers/compile-symbol-table.js index bb957bd5183..99d67c67ec0 100644 --- a/packages/bson-transpilers/compile-symbol-table.js +++ b/packages/bson-transpilers/compile-symbol-table.js @@ -45,7 +45,7 @@ const loadSymbolTable = (dir, inputLang, outputLang) => { 'syntax_templates.yaml', 'import_templates.yaml', path.join(inputLang, 'types.yaml'), - path.join(inputLang, 'symbols.yaml') + path.join(inputLang, 'symbols.yaml'), ]; const contents = files.reduce((str, file) => { if (!fs.existsSync(path.join('symbols', file))) { @@ -60,7 +60,18 @@ const loadSymbolTable = (dir, inputLang, outputLang) => { const loadAll = () => { const dir = path.join(__dirname, 'lib', 'symbol-table'); const inputLangs = ['shell']; - const outputLangs = ['java', 'shell', 'python', 'csharp', 'javascript', 'object', 'ruby', 'go', 'rust', 'php']; + const outputLangs = [ + 'java', + 'shell', + 'python', + 'csharp', + 'javascript', + 'object', + 'ruby', + 'go', + 'rust', + 'php', + ]; if (!fs.existsSync(dir)) { fs.mkdirSync(dir); } diff --git a/packages/bson-transpilers/config/error.json b/packages/bson-transpilers/config/error.json index 21bbf0e22d1..7f4224edcfa 100644 --- a/packages/bson-transpilers/config/error.json +++ b/packages/bson-transpilers/config/error.json @@ -26,4 +26,4 @@ "Range": { "message": "Value is out of range" } -} \ No newline at end of file +} diff --git a/packages/bson-transpilers/download-antlr.js b/packages/bson-transpilers/download-antlr.js index 9f35302b77e..e01c21b5c09 100644 --- a/packages/bson-transpilers/download-antlr.js +++ b/packages/bson-transpilers/download-antlr.js @@ -16,4 +16,6 @@ if (fs.existsSync(outputFile)) { console.info('downloading antlr'); -https.get(downloadUrl, (response) => response.pipe(fs.createWriteStream(outputFile))); +https.get(downloadUrl, (response) => + response.pipe(fs.createWriteStream(outputFile)) +); diff --git a/packages/bson-transpilers/helper/format.js b/packages/bson-transpilers/helper/format.js index 09793cfb6d8..c71bd8cf4ec 100644 --- a/packages/bson-transpilers/helper/format.js +++ b/packages/bson-transpilers/helper/format.js @@ -5,13 +5,11 @@ * @param {String} str * @returns {String} */ -const doubleQuoteStringify = function(str) { +const doubleQuoteStringify = function (str) { let newStr = str.toString(); if ( - ( - newStr.charAt(0) === '\'' && newStr.charAt(newStr.length - 1) === '\'' - ) || + (newStr.charAt(0) === "'" && newStr.charAt(newStr.length - 1) === "'") || (newStr.charAt(0) === '"' && newStr.charAt(newStr.length - 1) === '"') ) { newStr = newStr.substr(1, newStr.length - 2); @@ -26,13 +24,11 @@ const doubleQuoteStringify = function(str) { * @param {String} str * @returns {String} */ -const singleQuoteStringify = function(str) { +const singleQuoteStringify = function (str) { let newStr = str.toString(); if ( - ( - newStr.charAt(0) === '\'' && newStr.charAt(newStr.length - 1) === '\'' - ) || + (newStr.charAt(0) === "'" && newStr.charAt(newStr.length - 1) === "'") || (newStr.charAt(0) === '"' && newStr.charAt(newStr.length - 1) === '"') ) { newStr = str.substr(1, newStr.length - 2); @@ -47,12 +43,12 @@ const singleQuoteStringify = function(str) { * @param {String} str * @returns {String} */ -const removeQuotes = function(str) { +const removeQuotes = function (str) { let newStr = str.toString(); if ( (newStr.charAt(0) === '"' && newStr.charAt(newStr.length - 1) === '"') || - (newStr.charAt(0) === '\'' && newStr.charAt(newStr.length - 1) === '\'') + (newStr.charAt(0) === "'" && newStr.charAt(newStr.length - 1) === "'") ) { newStr = newStr.substr(1, newStr.length - 2); } @@ -63,5 +59,5 @@ const removeQuotes = function(str) { module.exports = { doubleQuoteStringify, singleQuoteStringify, - removeQuotes + removeQuotes, }; diff --git a/packages/bson-transpilers/index.js b/packages/bson-transpilers/index.js index 800963245c4..53473321636 100644 --- a/packages/bson-transpilers/index.js +++ b/packages/bson-transpilers/index.js @@ -3,12 +3,13 @@ const antlr4 = require('antlr4'); const ECMAScriptLexer = require('./lib/antlr/ECMAScriptLexer.js'); const ECMAScriptParser = require('./lib/antlr/ECMAScriptParser.js'); -const JavascriptANTLRVisitor = require('./lib/antlr/ECMAScriptVisitor').ECMAScriptVisitor; +const JavascriptANTLRVisitor = + require('./lib/antlr/ECMAScriptVisitor').ECMAScriptVisitor; const ErrorListener = require('./codegeneration/ErrorListener.js'); const { BsonTranspilersInternalError, - BsonTranspilersUnimplementedError + BsonTranspilersUnimplementedError, } = require('./helper/error'); const yaml = require('js-yaml'); @@ -68,8 +69,16 @@ const getTranspiler = (loadTree, visitor, generator, symbols) => { /* Object validation. If the symbol table is missing any of these elements, * then an error should be thrown. Can be empty, but must exist. */ - ['BasicTypes', 'BsonTypes', 'NativeTypes', 'SymbolTypes', 'BsonTypes', - 'BsonSymbols', 'NativeSymbols', 'SymbolTypes'].map((k) => { + [ + 'BasicTypes', + 'BsonTypes', + 'NativeTypes', + 'SymbolTypes', + 'BsonTypes', + 'BsonSymbols', + 'NativeSymbols', + 'SymbolTypes', + ].map((k) => { if (!(k in doc)) { throw new BsonTranspilersInternalError( `Invalid Symbol Table: missing ${k}` @@ -82,15 +91,14 @@ const getTranspiler = (loadTree, visitor, generator, symbols) => { Symbols: Object.assign({}, doc.BsonSymbols, doc.NativeSymbols), Types: Object.assign({}, doc.BasicTypes, doc.BsonTypes, doc.NativeTypes), Syntax: doc.Syntax, - Imports: doc.Imports + Imports: doc.Imports, }); const compile = (input, idiomatic, driverSyntax) => { try { const tree = loadTree(input, transpiler.startRule); - transpiler.idiomatic = idiomatic === undefined ? - transpiler.idiomatic : - idiomatic; + transpiler.idiomatic = + idiomatic === undefined ? transpiler.idiomatic : idiomatic; if (!driverSyntax) { transpiler.clearImports(); transpiler.clearDeclarations(); @@ -113,19 +121,24 @@ const getTranspiler = (loadTree, visitor, generator, symbols) => { const result = {}; Object.keys(input).map((k) => { - result[k] = (k === 'options' || k === 'exportMode') ? input[k] : compile(input[k], idiomatic, true); + result[k] = + k === 'options' || k === 'exportMode' + ? input[k] + : compile(input[k], idiomatic, true); }); - if (!('options' in result) || - !('uri' in result.options) || - !('database' in result.options) || - !('collection' in result.options)) { + if ( + !('options' in result) || + !('uri' in result.options) || + !('database' in result.options) || + !('collection' in result.options) + ) { throw new BsonTranspilersInternalError( 'Missing required metadata to generate drivers syntax' ); } if (!('aggregation' in result) && !('filter' in result)) { throw new BsonTranspilersInternalError( - 'Need to pass \'aggregation\' or \'filter\' when compiling with driver syntax' + "Need to pass 'aggregation' or 'filter' when compiling with driver syntax" ); } if (!transpiler.Syntax.driver) { @@ -138,7 +151,7 @@ const getTranspiler = (loadTree, visitor, generator, symbols) => { compile: compile, getImports: (mode, driverSyntax) => { return transpiler.getImports(mode, driverSyntax); - } + }, }; }; @@ -146,60 +159,78 @@ module.exports = { shell: { java: getTranspiler( loadJSTree, - getShellVisitor(getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor))), + getShellVisitor( + getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor)) + ), getJavaGenerator, shelljavasymbols ), python: getTranspiler( loadJSTree, - getShellVisitor(getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor))), + getShellVisitor( + getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor)) + ), getPythonGenerator, shellpythonsymbols ), csharp: getTranspiler( loadJSTree, - getShellVisitor(getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor))), + getShellVisitor( + getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor)) + ), getCsharpGenerator, shellcsharpsymbols ), javascript: getTranspiler( loadJSTree, - getShellVisitor(getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor))), + getShellVisitor( + getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor)) + ), getJavascriptGenerator, shelljavascriptsymbols ), object: getTranspiler( loadJSTree, - getShellVisitor(getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor))), + getShellVisitor( + getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor)) + ), getObjectGenerator, shellobjectsymbols ), ruby: getTranspiler( loadJSTree, - getShellVisitor(getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor))), + getShellVisitor( + getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor)) + ), getRubyGenerator, shellrubysymbols ), go: getTranspiler( loadJSTree, - getShellVisitor(getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor))), + getShellVisitor( + getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor)) + ), getGoGenerator, shellgosymbols ), rust: getTranspiler( loadJSTree, - getShellVisitor(getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor))), + getShellVisitor( + getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor)) + ), getRustGenerator, shellrustsymbols ), php: getTranspiler( loadJSTree, - getShellVisitor(getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor))), + getShellVisitor( + getJavascriptVisitor(getCodeGenerationVisitor(JavascriptANTLRVisitor)) + ), getPhpGenerator, shellphpsymbols - ) + ), }, getTree: { - shell: loadJSTree - } + shell: loadJSTree, + }, }; diff --git a/packages/bson-transpilers/printers/ECMAScriptListener.js b/packages/bson-transpilers/printers/ECMAScriptListener.js index 6acec5be5d1..357603bc6ab 100644 --- a/packages/bson-transpilers/printers/ECMAScriptListener.js +++ b/packages/bson-transpilers/printers/ECMAScriptListener.js @@ -11,10 +11,12 @@ function Listener() { return this; } -Listener.prototype = Object.create(ECMAScriptListener.ECMAScriptListener.prototype); +Listener.prototype = Object.create( + ECMAScriptListener.ECMAScriptListener.prototype +); Listener.prototype.constructor = Listener; -Listener.prototype.buildAST = function(tree, ruleNames) { +Listener.prototype.buildAST = function (tree, ruleNames) { ruleNames = ruleNames || null; let s = antlr4.tree.Trees.getNodeText(tree, ruleNames); @@ -27,7 +29,7 @@ Listener.prototype.buildAST = function(tree, ruleNames) { return s; } - const res = {type: s, node: tree.constructor.name}; + const res = { type: s, node: tree.constructor.name }; if (c > 0) { s = this.buildAST(tree.getChild(0), ruleNames); diff --git a/packages/bson-transpilers/symbols/csharp/templates.yaml b/packages/bson-transpilers/symbols/csharp/templates.yaml index f050db2c781..a9619aaac4e 100644 --- a/packages/bson-transpilers/symbols/csharp/templates.yaml +++ b/packages/bson-transpilers/symbols/csharp/templates.yaml @@ -1,983 +1,1011 @@ # C# Templates Templates: - # Misc - RegexFlags: &RegexFlags - i: 'i' - m: 'm' - u: '' - y: '' - g: '' - BSONRegexFlags: &BSONRegexFlags - i: 'i' - m: 'm' - x: 'x' - s: 's' - l: '' - u: '' - # Syntax - DriverTemplate: &DriverTemplate null - EqualitySyntaxTemplate: &EqualitySyntaxTemplate !!js/function > - (lhs, op, rhs) => { - if (op.includes('!') || op.includes('not')) { - return `${lhs} != ${rhs}`; + # Misc + RegexFlags: &RegexFlags + i: 'i' + m: 'm' + u: '' + y: '' + g: '' + BSONRegexFlags: &BSONRegexFlags + i: 'i' + m: 'm' + x: 'x' + s: 's' + l: '' + u: '' + # Syntax + DriverTemplate: &DriverTemplate null + EqualitySyntaxTemplate: !!js/function &EqualitySyntaxTemplate > + (lhs, op, rhs) => { + if (op.includes('!') || op.includes('not')) { + return `${lhs} != ${rhs}`; + } + else if (op === '==' || op === '===' || op === 'is') { + return `${lhs} == ${rhs}`; + } + return `${lhs} ${op} ${rhs}`; + } + InSyntaxTemplate: !!js/function &InSyntaxTemplate > + (lhs, op, rhs) => { + let str = '!='; + if (op.includes('!') || op.includes('not')) { + str = '=='; + } + return `${rhs}.indexOf(${lhs}) ${str} -1` + } + AndSyntaxTemplate: !!js/function &AndSyntaxTemplate > + (args) => { + return args.join(' && '); + } + OrSyntaxTemplate: !!js/function &OrSyntaxTemplate > + (args) => { + return args.join(' || '); + } + NotSyntaxTemplate: !!js/function &NotSyntaxTemplate > + (arg) => { + return `!${arg}`; + } + UnarySyntaxTemplate: &UnarySyntaxTemplate null + BinarySyntaxTemplate: !!js/function &BinarySyntaxTemplate > + (args) => { + return args.reduce((s, op, i, arr) => { + if (i % 2 === 0) { + return s; } - else if (op === '==' || op === '===' || op === 'is') { - return `${lhs} == ${rhs}`; + const rhs = arr[i + 1]; + switch(op) { + case '//': + return `Math.floor(${s}, ${rhs})`; + case '**': + return `Math.pow(${s}, ${rhs})`; + default: + return `${s} ${op} ${rhs}`; } - return `${lhs} ${op} ${rhs}`; - } - InSyntaxTemplate: &InSyntaxTemplate !!js/function > - (lhs, op, rhs) => { - let str = '!='; - if (op.includes('!') || op.includes('not')) { - str = '=='; - } - return `${rhs}.indexOf(${lhs}) ${str} -1` - } - AndSyntaxTemplate: &AndSyntaxTemplate !!js/function > - (args) => { - return args.join(' && '); - } - OrSyntaxTemplate: &OrSyntaxTemplate !!js/function > - (args) => { - return args.join(' || '); - } - NotSyntaxTemplate: &NotSyntaxTemplate !!js/function > - (arg) => { - return `!${arg}`; - } - UnarySyntaxTemplate: &UnarySyntaxTemplate null - BinarySyntaxTemplate: &BinarySyntaxTemplate !!js/function > - (args) => { - return args.reduce((s, op, i, arr) => { - if (i % 2 === 0) { - return s; - } - const rhs = arr[i + 1]; - switch(op) { - case '//': - return `Math.floor(${s}, ${rhs})`; - case '**': - return `Math.pow(${s}, ${rhs})`; - default: - return `${s} ${op} ${rhs}`; - } - }, args[0]); + }, args[0]); + } + ParensSyntaxTemplate: &ParensSyntaxTemplate null + EosSyntaxTemplate: &EosSyntaxTemplate null + EofSyntaxTemplate: &EofSyntaxTemplate null + NewTemplate: !!js/function &NewSyntaxTemplate > + (expr, skip, code) => { + // Add classes that don't use "new" to array + // So far: [Symbol, Decimal128/NumberDecimal, Long/NumberLong, MinKey, MaxKey, Date.now, Double, Int32, Number, Date] + noNew = [111, 112, 106, 107, 108, 200.1, 104, 105, 2, 200]; + if (skip || (code && noNew.indexOf(code) !== -1)) { + return expr; + } + return `new ${expr}`; + } + # BSON Object Type templates + CodeTypeTemplate: &CodeTypeTemplate null + StringTypeTemplate: !!js/function &StringTypeTemplate > + (str) => { + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + } + return `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; + } + RegexTypeTemplate: !!js/function &RegexTypeTemplate > + (pattern, flags) => { + flags = flags === '' ? '' : `(?${flags})`; + // Double-quote stringify + const str = flags + pattern; + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); } - ParensSyntaxTemplate: &ParensSyntaxTemplate null - EosSyntaxTemplate: &EosSyntaxTemplate null - EofSyntaxTemplate: &EofSyntaxTemplate null - NewTemplate: &NewSyntaxTemplate !!js/function > - (expr, skip, code) => { - // Add classes that don't use "new" to array - // So far: [Symbol, Decimal128/NumberDecimal, Long/NumberLong, MinKey, MaxKey, Date.now, Double, Int32, Number, Date] - noNew = [111, 112, 106, 107, 108, 200.1, 104, 105, 2, 200]; - if (skip || (code && noNew.indexOf(code) !== -1)) { - return expr; - } - return `new ${expr}`; + return `Regex("${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}")`; + } + BoolTypeTemplate: !!js/function &BoolTypeTemplate > + (literal) => { + return literal.toLowerCase(); + } + IntegerTypeTemplate: &IntegerTypeTemplate null + DecimalTypeTemplate: &DecimalTypeTemplate null + LongBasicTypeTemplate: &LongBasicTypeTemplate null + HexTypeTemplate: &HexTypeTemplate null + OctalTypeTemplate: !!js/function &OctalTypeTemplate > + (literal) => { + literal = literal.replace(/[oO]+/g, '0') + return parseInt(literal, 8).toString() + } + NumericTypeTemplate: &NumericTypeTemplate null + ArrayTypeTemplate: !!js/function &ArrayTypeTemplate > + (literal, depth) => { + depth++; + const indent = '\n' + ' '.repeat(depth); + const initialIndent = '\n' + ' '.repeat(depth-1); + if (literal === '') { + return 'new BsonArray()' } - # BSON Object Type templates - CodeTypeTemplate: &CodeTypeTemplate null - StringTypeTemplate: &StringTypeTemplate !!js/function > - (str) => { + + return `new BsonArray${initialIndent}{${literal}${initialIndent}}`; + } + ArrayTypeArgsTemplate: !!js/function &ArrayTypeArgsTemplate > + (arg, depth, last) => { + depth++; + const indent = '\n' + ' '.repeat(depth); + const arr = arg.split(', new').join(`, ${indent}new`) + + return last ? `${indent}${arr}` : `${indent}${arr},`; + } + NullTypeTemplate: !!js/function &NullTypeTemplate > + () => { + return 'BsonNull.Value'; + } + UndefinedTypeTemplate: !!js/function &UndefinedTypeTemplate > + () => { + return 'BsonUndefined.Value'; + } + ObjectTypeTemplate: !!js/function &ObjectTypeTemplate > + (literal) => { + if (literal === '') { + return `new BsonDocument()`; + } + return literal; + } + ObjectTypeArgsTemplate: !!js/function &ObjectTypeArgsTemplate > + (args, depth) => { + if (args.length === 0) { + return 'new BsonDocument()'; + } + depth++; + const indent = '\n' + ' '.repeat(depth); + const initialIndent = '\n' + ' '.repeat(depth-1); + const doubleStringify = (str) => { let newStr = str; if ( (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); + newStr = str.substr(1, str.length - 2); } return `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; } - RegexTypeTemplate: &RegexTypeTemplate !!js/function > - (pattern, flags) => { - flags = flags === '' ? '' : `(?${flags})`; - // Double-quote stringify - const str = flags + pattern; - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `Regex("${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}")`; - } - BoolTypeTemplate: &BoolTypeTemplate !!js/function > - (literal) => { - return literal.toLowerCase(); - } - IntegerTypeTemplate: &IntegerTypeTemplate null - DecimalTypeTemplate: &DecimalTypeTemplate null - LongBasicTypeTemplate: &LongBasicTypeTemplate null - HexTypeTemplate: &HexTypeTemplate null - OctalTypeTemplate: &OctalTypeTemplate !!js/function > - (literal) => { - literal = literal.replace(/[oO]+/g, '0') - return parseInt(literal, 8).toString() - } - NumericTypeTemplate: &NumericTypeTemplate null - ArrayTypeTemplate: &ArrayTypeTemplate !!js/function > - (literal, depth) => { - depth++; - const indent = '\n' + ' '.repeat(depth); - const initialIndent = '\n' + ' '.repeat(depth-1); - if (literal === '') { - return 'new BsonArray()' - } - return `new BsonArray${initialIndent}{${literal}${initialIndent}}`; + if (args.length === 1) { + return `new BsonDocument(${doubleStringify(args[0][0])}, ${args[0][1]})`; } - ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate !!js/function > - (arg, depth, last) => { - depth++; - const indent = '\n' + ' '.repeat(depth); - const arr = arg.split(', new').join(`, ${indent}new`) - return last ? `${indent}${arr}` : `${indent}${arr},`; - } - NullTypeTemplate: &NullTypeTemplate !!js/function > - () => { - return 'BsonNull.Value'; - } - UndefinedTypeTemplate: &UndefinedTypeTemplate !!js/function > - () => { - return 'BsonUndefined.Value'; - } - ObjectTypeTemplate: &ObjectTypeTemplate !!js/function > - (literal) => { - if (literal === '') { - return `new BsonDocument()`; - } - return literal; - } - ObjectTypeArgsTemplate: &ObjectTypeArgsTemplate !!js/function > - (args, depth) => { - if (args.length === 0) { - return 'new BsonDocument()'; - } - depth++; - const indent = '\n' + ' '.repeat(depth); - const initialIndent = '\n' + ' '.repeat(depth-1); - const doubleStringify = (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - } + const pairs = args.map((pair) => { + return `${indent}{ ${doubleStringify(pair[0])}, ${pair[1]} }`; + }).join(', '); - if (args.length === 1) { - return `new BsonDocument(${doubleStringify(args[0][0])}, ${args[0][1]})`; - } + return `new BsonDocument${initialIndent}{${pairs}${initialIndent}}` + } + # BSON Object Method templates + CodeCodeTemplate: !!js/function &CodeCodeTemplate > + (lhs) => { + return `${lhs}.Code`; + } + CodeCodeArgsTemplate: &CodeCodeArgsTemplate null + CodeScopeTemplate: !!js/function &CodeScopeTemplate > + (lhs) => { + return `${lhs}.Scope`; + } + CodeScopeArgsTemplate: &CodeScopeArgsTemplate null + # Since in python, generated from attr access instead of func call, add () in template. + ObjectIdToStringTemplate: !!js/function &ObjectIdToStringTemplate > + (lhs) => { + return `${lhs}.ToString()`; + } + ObjectIdToStringArgsTemplate: !!js/function &ObjectIdToStringArgsTemplate > + () => { + return ''; + } + ObjectIdEqualsTemplate: !!js/function &ObjectIdEqualsTemplate > + (lhs) => { + return `${lhs}.Equals`; + } + ObjectIdEqualsArgsTemplate: !!js/function &ObjectIdEqualsArgsTemplate > + (lhs, arg) => { + if (arg.indexOf('new') === 0) { + arg = arg.replace(/new /g, '') + } + return `(new ${arg})`; + } - const pairs = args.map((pair) => { - return `${indent}{ ${doubleStringify(pair[0])}, ${pair[1]} }`; - }).join(', '); + ObjectIdGetTimestampTemplate: !!js/function &ObjectIdGetTimestampTemplate > + (lhs) => { + return `${lhs}.Timestamp`; + } + ObjectIdGetTimestampArgsTemplate: + !!js/function &ObjectIdGetTimestampArgsTemplate > + (lhs) => { + return ''; + } + BinaryValueTemplate: !!js/function &BinaryValueTemplate > + (lhs) => { + return `${lhs}.ToString`; + } + BinaryValueArgsTemplate: &BinaryValueArgsTemplate null + BinaryLengthTemplate: !!js/function &BinaryLengthTemplate > + () => { + return ''; + } + BinaryLengthArgsTemplate: !!js/function &BinaryLengthArgsTemplate > + (lhs) => { + return `${lhs}.Bytes.Length`; + } + BinaryToStringTemplate: !!js/function &BinaryToStringTemplate > + (lhs) => { + return `${lhs}.ToString`; + } + BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate null + BinarySubtypeTemplate: !!js/function &BinarySubtypeTemplate > + (lhs) => { + return `${lhs}.SubType`; + } + BinarySubtypeArgsTemplate: !!js/function &BinarySubtypeArgsTemplate > + () => { + return ''; + } + DBRefGetDBTemplate: !!js/function &DBRefGetDBTemplate > + (lhs) => { + return `${lhs}.DatabaseName`; + } + DBRefGetDBArgsTemplate: !!js/function &DBRefGetDBArgsTemplate > + () => { + return ''; + } + DBRefGetCollectionTemplate: !!js/function &DBRefGetCollectionTemplate > + (lhs) => { + return `${lhs}.CollectionName`; + } + DBRefGetCollectionArgsTemplate: + !!js/function &DBRefGetCollectionArgsTemplate > + () => { + return ''; + } + DBRefGetIdTemplate: !!js/function &DBRefGetIdTemplate > + (lhs) => { + return `${lhs}.Id`; + } + DBRefGetIdArgsTemplate: !!js/function &DBRefGetIdArgsTemplate > + () => { + return ''; + } + LongEqualsTemplate: !!js/function &LongEqualsTemplate > + (lhs) => { + return `${lhs} == `; + } + LongEqualsArgsTemplate: !!js/function &LongEqualsArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + LongToIntTemplate: !!js/function &LongToIntTemplate > + (lhs) => { + return `(int) ${lhs}`; + } + LongToIntArgsTemplate: !!js/function &LongToIntArgsTemplate > + () => { + return ''; + } + LongToStringTemplate: !!js/function &LongToStringTemplate > + (lhs) => { + return lhs; + } + LongToStringArgsTemplate: &LongToStringArgsTemplate null + LongToNumberTemplate: !!js/function &LongToNumberTemplate > + (lhs) => { + return `(double) ${lhs}`; + } + LongToNumberArgsTemplate: !!js/function &LongToNumberArgsTemplate > + () => { + return ''; + } + LongAddTemplate: !!js/function &LongAddTemplate > + (lhs) => { + return `${lhs} +`; + } + LongAddArgsTemplate: !!js/function &LongAddArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongSubtractTemplate: !!js/function &LongSubtractTemplate > + (lhs) => { + return `${lhs} -`; + } + LongSubtractArgsTemplate: !!js/function &LongSubtractArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongMultiplyTemplate: !!js/function &LongMultiplyTemplate > + (lhs) => { + return `${lhs} *`; + } + LongMultiplyArgsTemplate: !!js/function &LongMultiplyArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongDivTemplate: !!js/function &LongDivTemplate > + (lhs) => { + return `${lhs} /`; + } + LongDivArgsTemplate: !!js/function &LongDivArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongModuloTemplate: !!js/function &LongModuloTemplate > + (lhs) => { + return `${lhs} %`; + } + LongModuloArgsTemplate: !!js/function &LongModuloArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongAndTemplate: !!js/function &LongAndTemplate > + (lhs) => { + return `${lhs} &`; + } + LongAndArgsTemplate: !!js/function &LongAndArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongOrTemplate: !!js/function &LongOrTemplate > + (lhs) => { + return `${lhs} |`; + } + LongOrArgsTemplate: !!js/function &LongOrArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongXorTemplate: !!js/function &LongXorTemplate > + (lhs) => { + return `${lhs} ^`; + } + LongXorArgsTemplate: !!js/function &LongXorArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongShiftLeftTemplate: !!js/function &LongShiftLeftTemplate > + (lhs) => { + return `${lhs} <<`; + } + LongShiftLeftArgsTemplate: !!js/function &LongShiftLeftArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongShiftRightTemplate: !!js/function &LongShiftRightTemplate > + (lhs) => { + return `${lhs} >>`; + } + LongShiftRightArgsTemplate: !!js/function &LongShiftRightArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongCompareTemplate: !!js/function &LongCompareTemplate > + (lhs) => { + return `${lhs} - `; + } + LongCompareArgsTemplate: !!js/function &LongCompareArgsTemplate > + (lhs, arg) => { + return arg; + } + LongIsOddTemplate: !!js/function &LongIsOddTemplate > + (lhs) => { + return `${lhs}`; + } + LongIsOddArgsTemplate: !!js/function &LongIsOddArgsTemplate > + () => { + return ' % 2 == 1'; + } + LongIsZeroTemplate: !!js/function &LongIsZeroTemplate > + (lhs) => { + return `${lhs} == 0`; + } + LongIsZeroArgsTemplate: !!js/function &LongIsZeroArgsTemplate > + () => { + return ''; + } + LongIsNegativeTemplate: !!js/function &LongIsNegativeTemplate > + (lhs) => { + return `${lhs} < 0`; + } + LongIsNegativeArgsTemplate: !!js/function &LongIsNegativeArgsTemplate > + () => { + return ''; + } + LongNegateTemplate: !!js/function &LongNegateTemplate > + () => { + return '-'; + } + LongNegateArgsTemplate: !!js/function &LongNegateArgsTemplate > + (lhs) => { + return `${lhs}`; + } + LongNotTemplate: !!js/function &LongNotTemplate > + () => { + return '~'; + } + LongNotArgsTemplate: !!js/function &LongNotArgsTemplate > + (lhs) => { + return `${lhs}`; + } + LongNotEqualsTemplate: !!js/function &LongNotEqualsTemplate > + (lhs) => { + return `${lhs} !=`; + } + LongNotEqualsArgsTemplate: !!js/function &LongNotEqualsArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongGreaterThanTemplate: !!js/function &LongGreaterThanTemplate > + (lhs) => { + return `${lhs} >`; + } + LongGreaterThanArgsTemplate: !!js/function &LongGreaterThanArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongGreaterThanOrEqualTemplate: + !!js/function &LongGreaterThanOrEqualTemplate > + (lhs) => { + return `${lhs} >=`; + } + LongGreaterThanOrEqualArgsTemplate: + !!js/function &LongGreaterThanOrEqualArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongLessThanTemplate: !!js/function &LongLessThanTemplate > + (lhs) => { + return `${lhs} <`; + } + LongLessThanArgsTemplate: !!js/function &LongLessThanArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongLessThanOrEqualTemplate: !!js/function &LongLessThanOrEqualTemplate > + (lhs) => { + return `${lhs} <=`; + } + LongLessThanOrEqualArgsTemplate: + !!js/function &LongLessThanOrEqualArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongFloatApproxTemplate: !!js/function &LongFloatApproxTemplate > + (lhs) => { + return `(float) ${lhs}`; + } + LongTopTemplate: !!js/function &LongTopTemplate > + (lhs) => { + return `${lhs} >> 32`; + } + LongBottomTemplate: !!js/function &LongBottomTemplate > + (lhs) => { + return `${lhs} & 0x0000ffff`; + } + TimestampToStringTemplate: !!js/function &TimestampToStringTemplate > + (lhs) => { + return `${lhs}.ToString`; + } + TimestampToStringArgsTemplate: &TimestampToStringArgsTemplate null + TimestampEqualsTemplate: !!js/function &TimestampEqualsTemplate > + (lhs) => { + return `${lhs}.Equals`; + } + TimestampEqualsArgsTemplate: &TimestampEqualsArgsTemplate null + TimestampGetLowBitsTemplate: !!js/function &TimestampGetLowBitsTemplate > + (lhs) => { + return `${lhs}.ToUniversalTime`; + } + TimestampGetLowBitsArgsTemplate: &TimestampGetLowBitsArgsTemplate null + TimestampGetHighBitsTemplate: !!js/function &TimestampGetHighBitsTemplate > + (lhs) => { + return `${lhs}.Increment`; + } + TimestampGetHighBitsArgsTemplate: + !!js/function &TimestampGetHighBitsArgsTemplate > + (lhs) => { + return ''; + } + TimestampTTemplate: !!js/function &TimestampTTemplate > + (lhs) => { + return `${lhs}.ToUniversalTime()`; + } + TimestampITemplate: !!js/function &TimestampITemplate > + (lhs) => { + return `${lhs}.Increment`; + } + TimestampAsDateTemplate: !!js/function &TimestampAsDateTemplate > + (lhs) => { + return `new DateTime(1970, 1, 1).AddSeconds(${lhs}.Timestamp)`; + } + TimestampAsDateArgsTemplate: !!js/function &TimestampAsDateArgsTemplate > + () => { + return ''; + } + TimestampCompareTemplate: !!js/function &TimestampCompareTemplate > + (lhs) => { + return `${lhs}.CompareTo`; + } + TimestampCompareArgsTemplate: &TimestampCompareArgsTemplate null + TimestampNotEqualsTemplate: !!js/function &TimestampNotEqualsTemplate > + (lhs) => { + return `${lhs} != `; + } + TimestampNotEqualsArgsTemplate: + !!js/function &TimestampNotEqualsArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + TimestampGreaterThanTemplate: !!js/function &TimestampGreaterThanTemplate > + (lhs) => { + return `${lhs} > `; + } + TimestampGreaterThanArgsTemplate: + !!js/function &TimestampGreaterThanArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + TimestampGreaterThanOrEqualTemplate: + !!js/function &TimestampGreaterThanOrEqualTemplate > + (lhs) => { + return `${lhs} >= `; + } + TimestampGreaterThanOrEqualArgsTemplate: + !!js/function &TimestampGreaterThanOrEqualArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + TimestampLessThanTemplate: !!js/function &TimestampLessThanTemplate > + (lhs) => { + return `${lhs} < `; + } + TimestampLessThanArgsTemplate: !!js/function &TimestampLessThanArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + TimestampLessThanOrEqualTemplate: + !!js/function &TimestampLessThanOrEqualTemplate > + (lhs) => { + return `${lhs} <= `; + } + TimestampLessThanOrEqualArgsTemplate: + !!js/function &TimestampLessThanOrEqualArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + SymbolValueOfTemplate: !!js/function &SymbolValueOfTemplate > + (lhs) => { + return `${lhs}`; + } + SymbolValueOfArgsTemplate: !!js/function &SymbolValueOfArgsTemplate > + () => { + return ''; + } + SymbolInspectTemplate: !!js/function &SymbolInspectTemplate > + (lhs) => { + return `${lhs}`; + } + SymbolInspectArgsTemplate: !!js/function &SymbolInspectArgsTemplate > + () => { + return ''; + } + SymbolToStringTemplate: !!js/function &SymbolToStringTemplate > + (lhs) => { + return `${lhs}`; + } + SymbolToStringArgsTemplate: !!js/function &SymbolToStringArgsTemplate > + () => { + return ''; + } + # Symbol Templates + CodeSymbolTemplate: + !!js/function &CodeSymbolTemplate > # Also has process method + () => { + return 'BsonJavaScript'; + } + CodeSymbolArgsTemplate: !!js/function &CodeSymbolArgsTemplate > + (lhs, code, scope) => { + // Double quote stringify + let newStr = code === undefined ? '' : code; + const str = newStr; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + } + code = `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; + return (scope === undefined) ? `(${code})` : `WithScope(${code}, ${scope})`; + } + ObjectIdSymbolTemplate: !!js/function &ObjectIdSymbolTemplate > + () => { + return 'ObjectId'; + } + ObjectIdSymbolArgsTemplate: !!js/function &ObjectIdSymbolArgsTemplate > + (lhs, str) => { + if (!str || str.length === 0) { + return '()'; + } + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + } + return `("${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}")`; + } + BinarySymbolTemplate: !!js/function &BinarySymbolTemplate > + () => { + return 'BsonBinaryData'; + } + BinarySymbolArgsTemplate: !!js/function &BinarySymbolArgsTemplate > + (lhs, bytes, type) => { + const str = bytes; + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + } + bytes = `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - return `new BsonDocument${initialIndent}{${pairs}${initialIndent}}` - } - # BSON Object Method templates - CodeCodeTemplate: &CodeCodeTemplate !!js/function > - (lhs) => { - return `${lhs}.Code`; - } - CodeCodeArgsTemplate: &CodeCodeArgsTemplate null - CodeScopeTemplate: &CodeScopeTemplate !!js/function > - (lhs) => { - return `${lhs}.Scope`; - } - CodeScopeArgsTemplate: &CodeScopeArgsTemplate null - # Since in python, generated from attr access instead of func call, add () in template. - ObjectIdToStringTemplate: &ObjectIdToStringTemplate !!js/function > - (lhs) => { - return `${lhs}.ToString()`; - } - ObjectIdToStringArgsTemplate: &ObjectIdToStringArgsTemplate !!js/function > - () => { - return ''; - } - ObjectIdEqualsTemplate: &ObjectIdEqualsTemplate !!js/function > - (lhs) => { - return `${lhs}.Equals`; - } - ObjectIdEqualsArgsTemplate: &ObjectIdEqualsArgsTemplate !!js/function > - (lhs, arg) => { - if (arg.indexOf('new') === 0) { - arg = arg.replace(/new /g, '') - } - return `(new ${arg})`; - } + if (type === null) { + return `(System.Text.Encoding.ASCII.GetBytes(${bytes}))`; + } + return `(System.Text.Encoding.ASCII.GetBytes(${bytes}), ${type})`; + } + BinarySymbolSubtypeDefaultTemplate: + !!js/function &BinarySymbolSubtypeDefaultTemplate > + () => { + return 'BsonBinarySubType.Binary'; + } + BinarySymbolSubtypeFunctionTemplate: + !!js/function &BinarySymbolSubtypeFunctionTemplate > + () => { + return 'BsonBinarySubType.Function'; + } + BinarySymbolSubtypeByteArrayTemplate: + !!js/function &BinarySymbolSubtypeByteArrayTemplate > + () => { + return 'BsonBinarySubType.OldBinary'; + } + BinarySymbolSubtypeUuidOldTemplate: + !!js/function &BinarySymbolSubtypeUuidOldTemplate > + () => { + return 'BsonBinarySubType.UuidLegacy'; + } + BinarySymbolSubtypeUuidTemplate: + !!js/function &BinarySymbolSubtypeUuidTemplate > + () => { + return 'BsonBinarySubType.UuidStandard'; + } + BinarySymbolSubtypeMd5Template: + !!js/function &BinarySymbolSubtypeMd5Template > + () => { + return 'BsonBinarySubType.MD5'; + } + BinarySymbolSubtypeUserDefinedTemplate: + !!js/function &BinarySymbolSubtypeUserDefinedTemplate > + () => { + return 'BsonBinarySubType.UserDefined'; + } + DBRefSymbolTemplate: !!js/function &DBRefSymbolTemplate > + () => { + return 'MongoDBRef'; + } + DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate null + DoubleSymbolTemplate: !!js/function &DoubleSymbolTemplate > + () => { + return ''; + } + DoubleSymbolArgsTemplate: !!js/function &DoubleSymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; - ObjectIdGetTimestampTemplate: &ObjectIdGetTimestampTemplate !!js/function > - (lhs) => { - return `${lhs}.Timestamp`; - } - ObjectIdGetTimestampArgsTemplate: &ObjectIdGetTimestampArgsTemplate !!js/function > - (lhs) => { - return ''; - } - BinaryValueTemplate: &BinaryValueTemplate !!js/function > - (lhs) => { - return `${lhs}.ToString`; - } - BinaryValueArgsTemplate: &BinaryValueArgsTemplate null - BinaryLengthTemplate: &BinaryLengthTemplate !!js/function > - () => { - return ''; - } - BinaryLengthArgsTemplate: &BinaryLengthArgsTemplate !!js/function > - (lhs) => { - return `${lhs}.Bytes.Length`; - } - BinaryToStringTemplate: &BinaryToStringTemplate !!js/function > - (lhs) => { - return `${lhs}.ToString`; - } - BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate null - BinarySubtypeTemplate: &BinarySubtypeTemplate !!js/function > - (lhs) => { - return `${lhs}.SubType`; - } - BinarySubtypeArgsTemplate: &BinarySubtypeArgsTemplate !!js/function > - () => { - return ''; - } - DBRefGetDBTemplate: &DBRefGetDBTemplate !!js/function > - (lhs) => { - return `${lhs}.DatabaseName`; - } - DBRefGetDBArgsTemplate: &DBRefGetDBArgsTemplate !!js/function > - () => { - return ''; - } - DBRefGetCollectionTemplate: &DBRefGetCollectionTemplate !!js/function > - (lhs) => { - return `${lhs}.CollectionName`; - } - DBRefGetCollectionArgsTemplate: &DBRefGetCollectionArgsTemplate !!js/function > - () => { - return ''; - } - DBRefGetIdTemplate: &DBRefGetIdTemplate !!js/function > - (lhs) => { - return `${lhs}.Id`; - } - DBRefGetIdArgsTemplate: &DBRefGetIdArgsTemplate !!js/function > - () => { - return ''; - } - LongEqualsTemplate: &LongEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} == `; - } - LongEqualsArgsTemplate: &LongEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - LongToIntTemplate: &LongToIntTemplate !!js/function > - (lhs) => { - return `(int) ${lhs}`; - } - LongToIntArgsTemplate: &LongToIntArgsTemplate !!js/function > - () => { - return ''; - } - LongToStringTemplate: &LongToStringTemplate !!js/function > - (lhs) => { - return lhs; - } - LongToStringArgsTemplate: &LongToStringArgsTemplate null - LongToNumberTemplate: &LongToNumberTemplate !!js/function > - (lhs) => { - return `(double) ${lhs}`; - } - LongToNumberArgsTemplate: &LongToNumberArgsTemplate !!js/function > - () => { - return ''; - } - LongAddTemplate: &LongAddTemplate !!js/function > - (lhs) => { - return `${lhs} +`; - } - LongAddArgsTemplate: &LongAddArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongSubtractTemplate: &LongSubtractTemplate !!js/function > - (lhs) => { - return `${lhs} -`; - } - LongSubtractArgsTemplate: &LongSubtractArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongMultiplyTemplate: &LongMultiplyTemplate !!js/function > - (lhs) => { - return `${lhs} *`; - } - LongMultiplyArgsTemplate: &LongMultiplyArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongDivTemplate: &LongDivTemplate !!js/function > - (lhs) => { - return `${lhs} /`; - } - LongDivArgsTemplate: &LongDivArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongModuloTemplate: &LongModuloTemplate !!js/function > - (lhs) => { - return `${lhs} %`; - } - LongModuloArgsTemplate: &LongModuloArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongAndTemplate: &LongAndTemplate !!js/function > - (lhs) => { - return `${lhs} &`; - } - LongAndArgsTemplate: &LongAndArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongOrTemplate: &LongOrTemplate !!js/function > - (lhs) => { - return `${lhs} |`; - } - LongOrArgsTemplate: &LongOrArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongXorTemplate: &LongXorTemplate !!js/function > - (lhs) => { - return `${lhs} ^`; - } - LongXorArgsTemplate: &LongXorArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongShiftLeftTemplate: &LongShiftLeftTemplate !!js/function > - (lhs) => { - return `${lhs} <<`; - } - LongShiftLeftArgsTemplate: &LongShiftLeftArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongShiftRightTemplate: &LongShiftRightTemplate !!js/function > - (lhs) => { - return `${lhs} >>`; - } - LongShiftRightArgsTemplate: &LongShiftRightArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongCompareTemplate: &LongCompareTemplate !!js/function > - (lhs) => { - return `${lhs} - `; - } - LongCompareArgsTemplate: &LongCompareArgsTemplate !!js/function > - (lhs, arg) => { - return arg; - } - LongIsOddTemplate: &LongIsOddTemplate !!js/function > - (lhs) => { - return `${lhs}`; - } - LongIsOddArgsTemplate: &LongIsOddArgsTemplate !!js/function > - () => { - return ' % 2 == 1'; - } - LongIsZeroTemplate: &LongIsZeroTemplate !!js/function > - (lhs) => { - return `${lhs} == 0`; - } - LongIsZeroArgsTemplate: &LongIsZeroArgsTemplate !!js/function > - () => { - return ''; - } - LongIsNegativeTemplate: &LongIsNegativeTemplate !!js/function > - (lhs) => { - return `${lhs} < 0`; - } - LongIsNegativeArgsTemplate: &LongIsNegativeArgsTemplate !!js/function > - () => { - return ''; - } - LongNegateTemplate: &LongNegateTemplate !!js/function > - () => { - return '-'; - } - LongNegateArgsTemplate: &LongNegateArgsTemplate !!js/function > - (lhs) => { - return `${lhs}`; - } - LongNotTemplate: &LongNotTemplate !!js/function > - () => { - return '~'; - } - LongNotArgsTemplate: &LongNotArgsTemplate !!js/function > - (lhs) => { - return `${lhs}`; - } - LongNotEqualsTemplate: &LongNotEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} !=`; - } - LongNotEqualsArgsTemplate: &LongNotEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongGreaterThanTemplate: &LongGreaterThanTemplate !!js/function > - (lhs) => { - return `${lhs} >`; - } - LongGreaterThanArgsTemplate: &LongGreaterThanArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongGreaterThanOrEqualTemplate: &LongGreaterThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} >=`; - } - LongGreaterThanOrEqualArgsTemplate: &LongGreaterThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongLessThanTemplate: &LongLessThanTemplate !!js/function > - (lhs) => { - return `${lhs} <`; - } - LongLessThanArgsTemplate: &LongLessThanArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongLessThanOrEqualTemplate: &LongLessThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} <=`; - } - LongLessThanOrEqualArgsTemplate: &LongLessThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongFloatApproxTemplate: &LongFloatApproxTemplate !!js/function > - (lhs) => { - return `(float) ${lhs}`; - } - LongTopTemplate: &LongTopTemplate !!js/function > - (lhs) => { - return `${lhs} >> 32`; - } - LongBottomTemplate: &LongBottomTemplate !!js/function > - (lhs) => { - return `${lhs} & 0x0000ffff`; - } - TimestampToStringTemplate: &TimestampToStringTemplate !!js/function > - (lhs) => { - return `${lhs}.ToString`; - } - TimestampToStringArgsTemplate: &TimestampToStringArgsTemplate null - TimestampEqualsTemplate: &TimestampEqualsTemplate !!js/function > - (lhs) => { - return `${lhs}.Equals`; - } - TimestampEqualsArgsTemplate: &TimestampEqualsArgsTemplate null - TimestampGetLowBitsTemplate: &TimestampGetLowBitsTemplate !!js/function > - (lhs) => { - return `${lhs}.ToUniversalTime`; - } - TimestampGetLowBitsArgsTemplate: &TimestampGetLowBitsArgsTemplate null - TimestampGetHighBitsTemplate: &TimestampGetHighBitsTemplate !!js/function > - (lhs) => { - return `${lhs}.Increment`; - } - TimestampGetHighBitsArgsTemplate: &TimestampGetHighBitsArgsTemplate !!js/function > - (lhs) => { - return ''; - } - TimestampTTemplate: &TimestampTTemplate !!js/function > - (lhs) => { - return `${lhs}.ToUniversalTime()`; - } - TimestampITemplate: &TimestampITemplate !!js/function > - (lhs) => { - return `${lhs}.Increment`; + if (type === '_hex') { + return `Convert.ToDouble(${arg})`; } - TimestampAsDateTemplate: &TimestampAsDateTemplate !!js/function > - (lhs) => { - return `new DateTime(1970, 1, 1).AddSeconds(${lhs}.Timestamp)`; + if (type === '_string') { + return `Convert.ToDouble(${arg})`; } - TimestampAsDateArgsTemplate: &TimestampAsDateArgsTemplate !!js/function > - () => { - return ''; - } - TimestampCompareTemplate: &TimestampCompareTemplate !!js/function > - (lhs) => { - return `${lhs}.CompareTo`; - } - TimestampCompareArgsTemplate: &TimestampCompareArgsTemplate null - TimestampNotEqualsTemplate: &TimestampNotEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} != `; - } - TimestampNotEqualsArgsTemplate: &TimestampNotEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - TimestampGreaterThanTemplate: &TimestampGreaterThanTemplate !!js/function > - (lhs) => { - return `${lhs} > `; - } - TimestampGreaterThanArgsTemplate: &TimestampGreaterThanArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - TimestampGreaterThanOrEqualTemplate: &TimestampGreaterThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} >= `; - } - TimestampGreaterThanOrEqualArgsTemplate: &TimestampGreaterThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - TimestampLessThanTemplate: &TimestampLessThanTemplate !!js/function > - (lhs) => { - return `${lhs} < `; - } - TimestampLessThanArgsTemplate: &TimestampLessThanArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - TimestampLessThanOrEqualTemplate: &TimestampLessThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} <= `; - } - TimestampLessThanOrEqualArgsTemplate: &TimestampLessThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - SymbolValueOfTemplate: &SymbolValueOfTemplate !!js/function > - (lhs) => { - return `${lhs}`; - } - SymbolValueOfArgsTemplate: &SymbolValueOfArgsTemplate !!js/function > - () => { - return ''; - } - SymbolInspectTemplate: &SymbolInspectTemplate !!js/function > - (lhs) => { - return `${lhs}`; - } - SymbolInspectArgsTemplate: &SymbolInspectArgsTemplate !!js/function > - () => { - return ''; - } - SymbolToStringTemplate: &SymbolToStringTemplate !!js/function > - (lhs) => { - return `${lhs}`; - } - SymbolToStringArgsTemplate: &SymbolToStringArgsTemplate !!js/function > - () => { - return ''; - } - # Symbol Templates - CodeSymbolTemplate: &CodeSymbolTemplate !!js/function > # Also has process method - () => { - return 'BsonJavaScript'; - } - CodeSymbolArgsTemplate: &CodeSymbolArgsTemplate !!js/function > - (lhs, code, scope) => { - // Double quote stringify - let newStr = code === undefined ? '' : code; - const str = newStr; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - code = `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - return (scope === undefined) ? `(${code})` : `WithScope(${code}, ${scope})`; - } - ObjectIdSymbolTemplate: &ObjectIdSymbolTemplate !!js/function > - () => { - return 'ObjectId'; - } - ObjectIdSymbolArgsTemplate: &ObjectIdSymbolArgsTemplate !!js/function > - (lhs, str) => { - if (!str || str.length === 0) { - return '()'; - } - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `("${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}")`; - } - BinarySymbolTemplate: &BinarySymbolTemplate !!js/function > - () => { - return 'BsonBinaryData'; - } - BinarySymbolArgsTemplate: &BinarySymbolArgsTemplate !!js/function > - (lhs, bytes, type) => { - const str = bytes; - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - bytes = `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - if (type === null) { - return `(System.Text.Encoding.ASCII.GetBytes(${bytes}))`; - } - return `(System.Text.Encoding.ASCII.GetBytes(${bytes}), ${type})`; - } - BinarySymbolSubtypeDefaultTemplate: &BinarySymbolSubtypeDefaultTemplate !!js/function > - () => { - return 'BsonBinarySubType.Binary'; - } - BinarySymbolSubtypeFunctionTemplate: &BinarySymbolSubtypeFunctionTemplate !!js/function > - () => { - return 'BsonBinarySubType.Function'; + if (type === '_decimal') { + return arg; } - BinarySymbolSubtypeByteArrayTemplate: &BinarySymbolSubtypeByteArrayTemplate !!js/function > - () => { - return 'BsonBinarySubType.OldBinary'; - } - BinarySymbolSubtypeUuidOldTemplate: &BinarySymbolSubtypeUuidOldTemplate !!js/function > - () => { - return 'BsonBinarySubType.UuidLegacy'; - } - BinarySymbolSubtypeUuidTemplate: &BinarySymbolSubtypeUuidTemplate !!js/function > - () => { - return 'BsonBinarySubType.UuidStandard'; - } - BinarySymbolSubtypeMd5Template: &BinarySymbolSubtypeMd5Template !!js/function > - () => { - return 'BsonBinarySubType.MD5'; - } - BinarySymbolSubtypeUserDefinedTemplate: &BinarySymbolSubtypeUserDefinedTemplate !!js/function > - () => { - return 'BsonBinarySubType.UserDefined'; - } - DBRefSymbolTemplate: &DBRefSymbolTemplate !!js/function > - () => { - return 'MongoDBRef'; - } - DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate null - DoubleSymbolTemplate: &DoubleSymbolTemplate !!js/function > - () => { - return ''; - } - DoubleSymbolArgsTemplate: &DoubleSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - if (type === '_hex') { - return `Convert.ToDouble(${arg})`; - } - if (type === '_string') { - return `Convert.ToDouble(${arg})`; - } - - if (type === '_decimal') { - return arg; - } + return `${Math.round(arg).toFixed(1)}`; + } + Int32SymbolTemplate: !!js/function &Int32SymbolTemplate > + () => { + return ''; + } + Int32SymbolArgsTemplate: !!js/function &Int32SymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; - return `${Math.round(arg).toFixed(1)}`; - } - Int32SymbolTemplate: &Int32SymbolTemplate !!js/function > - () => { - return ''; + if (type === '_hex' || type === '_decimal' || type === '_string') { + return `Convert.ToInt32(${arg})`; } - Int32SymbolArgsTemplate: &Int32SymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - - if (type === '_hex' || type === '_decimal' || type === '_string') { - return `Convert.ToInt32(${arg})`; - } - return arg; - } - LongSymbolTemplate: &LongSymbolTemplate !!js/function > - () => { - return ''; - } - LongSymbolArgsTemplate: &LongSymbolArgsTemplate !!js/function > - (lhs, arg) => { - if (!arg || arg.length === 0) { - arg = '0'; - } - if (arg.indexOf('\'') === 0 || arg.indexOf('"') === 0) { - return `Convert.ToInt64(${arg})`; - } - return `${arg}L`; - } - LongSymbolMaxTemplate: &LongSymbolMaxTemplate !!js/function > - () => { - return 'Int64.MaxValue'; - } - LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null - LongSymbolMinTemplate: &LongSymbolMinTemplate !!js/function > - () => { - return 'Int64.MinValue'; - } - LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null - LongSymbolZeroTemplate: &LongSymbolZeroTemplate !!js/function > - (lhs) => { - return '0L'; - } - LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null - LongSymbolOneTemplate: &LongSymbolOneTemplate !!js/function > - (lhs) => { - return '1L'; - } - LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null - LongSymbolNegOneTemplate: &LongSymbolNegOneTemplate !!js/function > - (lhs) => { - return '-1L'; - } - LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null - LongSymbolFromBitsTemplate: &LongSymbolFromBitsTemplate !!js/function > # Also has process method - () => { - return ''; - } - LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate null - LongSymbolFromIntTemplate: &LongSymbolFromIntTemplate !!js/function > - () => { - return ''; - } - LongSymbolFromIntArgsTemplate: &LongSymbolFromIntArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}L`; - } - LongSymbolFromNumberTemplate: &LongSymbolFromNumberTemplate null - LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate null - LongSymbolFromStringTemplate: &LongSymbolFromStringTemplate !!js/function > - () => { - return 'Convert.ToInt64'; - } - LongSymbolFromStringArgsTemplate: &LongSymbolFromStringArgsTemplate !!js/function > - (lhs, arg1, arg2) => { - if (arg2) { - return `(${arg1}, ${arg2})` - } - return `(${arg1}, 10)` - } - MinKeySymbolTemplate: &MinKeySymbolTemplate !!js/function > - () => { - return 'BsonMinKey'; - } - MinKeySymbolArgsTemplate: &MinKeySymbolArgsTemplate !!js/function > - () => { - return '.Value'; - } - MaxKeySymbolTemplate: &MaxKeySymbolTemplate !!js/function > - () => { - return 'BsonMaxKey'; - } - MaxKeySymbolArgsTemplate: &MaxKeySymbolArgsTemplate !!js/function > - () => { - return '.Value'; - } - TimestampSymbolTemplate: &TimestampSymbolTemplate !!js/function > - () => { - return 'BsonTimestamp'; - } - TimestampSymbolArgsTemplate: &TimestampSymbolArgsTemplate !!js/function > - (lhs, arg1, arg2) => { - if (typeof arg1 === 'undefined') { - return '(0, 0)' - } - return `(${arg1}, ${arg2})`; - } - SymbolSymbolTemplate: &SymbolSymbolTemplate !!js/function > - () => { - return ''; - } - SymbolSymbolArgsTemplate: &SymbolSymbolArgsTemplate !!js/function > - (_, arg) => { - return arg; // no parens because generates as a string - } - BSONRegExpSymbolTemplate: &BSONRegExpSymbolTemplate !!js/function > - () => { - return 'BsonRegularExpression'; - } - BSONRegExpSymbolArgsTemplate: &BSONRegExpSymbolArgsTemplate !!js/function > - (lhs, pattern, flags) => { - const doubleStringify = (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - } - return `(${doubleStringify(pattern)}${flags ? ', ' + doubleStringify(flags) : ''})`; - } - Decimal128SymbolTemplate: &Decimal128SymbolTemplate !!js/function > - () => { - return 'Decimal128'; - } - Decimal128SymbolArgsTemplate: &Decimal128SymbolArgsTemplate !!js/function > - (_, str) => { // just stringify + return arg; + } + LongSymbolTemplate: !!js/function &LongSymbolTemplate > + () => { + return ''; + } + LongSymbolArgsTemplate: !!js/function &LongSymbolArgsTemplate > + (lhs, arg) => { + if (!arg || arg.length === 0) { + arg = '0'; + } + if (arg.indexOf('\'') === 0 || arg.indexOf('"') === 0) { + return `Convert.ToInt64(${arg})`; + } + return `${arg}L`; + } + LongSymbolMaxTemplate: !!js/function &LongSymbolMaxTemplate > + () => { + return 'Int64.MaxValue'; + } + LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null + LongSymbolMinTemplate: !!js/function &LongSymbolMinTemplate > + () => { + return 'Int64.MinValue'; + } + LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null + LongSymbolZeroTemplate: !!js/function &LongSymbolZeroTemplate > + (lhs) => { + return '0L'; + } + LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null + LongSymbolOneTemplate: !!js/function &LongSymbolOneTemplate > + (lhs) => { + return '1L'; + } + LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null + LongSymbolNegOneTemplate: !!js/function &LongSymbolNegOneTemplate > + (lhs) => { + return '-1L'; + } + LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null + LongSymbolFromBitsTemplate: + !!js/function &LongSymbolFromBitsTemplate > # Also has process method + () => { + return ''; + } + LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate null + LongSymbolFromIntTemplate: !!js/function &LongSymbolFromIntTemplate > + () => { + return ''; + } + LongSymbolFromIntArgsTemplate: !!js/function &LongSymbolFromIntArgsTemplate > + (lhs, arg) => { + return `${arg}L`; + } + LongSymbolFromNumberTemplate: &LongSymbolFromNumberTemplate null + LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate null + LongSymbolFromStringTemplate: !!js/function &LongSymbolFromStringTemplate > + () => { + return 'Convert.ToInt64'; + } + LongSymbolFromStringArgsTemplate: + !!js/function &LongSymbolFromStringArgsTemplate > + (lhs, arg1, arg2) => { + if (arg2) { + return `(${arg1}, ${arg2})` + } + return `(${arg1}, 10)` + } + MinKeySymbolTemplate: !!js/function &MinKeySymbolTemplate > + () => { + return 'BsonMinKey'; + } + MinKeySymbolArgsTemplate: !!js/function &MinKeySymbolArgsTemplate > + () => { + return '.Value'; + } + MaxKeySymbolTemplate: !!js/function &MaxKeySymbolTemplate > + () => { + return 'BsonMaxKey'; + } + MaxKeySymbolArgsTemplate: !!js/function &MaxKeySymbolArgsTemplate > + () => { + return '.Value'; + } + TimestampSymbolTemplate: !!js/function &TimestampSymbolTemplate > + () => { + return 'BsonTimestamp'; + } + TimestampSymbolArgsTemplate: !!js/function &TimestampSymbolArgsTemplate > + (lhs, arg1, arg2) => { + if (typeof arg1 === 'undefined') { + return '(0, 0)' + } + return `(${arg1}, ${arg2})`; + } + SymbolSymbolTemplate: !!js/function &SymbolSymbolTemplate > + () => { + return ''; + } + SymbolSymbolArgsTemplate: !!js/function &SymbolSymbolArgsTemplate > + (_, arg) => { + return arg; // no parens because generates as a string + } + BSONRegExpSymbolTemplate: !!js/function &BSONRegExpSymbolTemplate > + () => { + return 'BsonRegularExpression'; + } + BSONRegExpSymbolArgsTemplate: !!js/function &BSONRegExpSymbolArgsTemplate > + (lhs, pattern, flags) => { + const doubleStringify = (str) => { let newStr = str; if ( (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { newStr = str.substr(1, str.length - 2); } - return `.Parse("${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}")`; - } - Decimal128SymbolFromStringTemplate: &Decimal128SymbolFromStringTemplate !!js/function > - (lhs) => { - return `${lhs}.Parse`; - } - Decimal128SymbolFromStringArgsTemplate: &Decimal128SymbolFromStringArgsTemplate !!js/function > - (lhs, arg) => { - return `(${arg})`; - } - Decimal128ToStringTemplate: &Decimal128ToStringTemplate !!js/function > - (lhs) => { - return `${lhs}.ToString`; - } - Decimal128ToStringArgsTemplate: &Decimal128ToStringArgsTemplate null - # BSON Util Templates - ObjectIdCreateFromHexStringTemplate: &ObjectIdCreateFromHexStringTemplate !!js/function > - (lhs) => { - return `new ${lhs}`; - } - ObjectIdCreateFromHexStringArgsTemplate: &ObjectIdCreateFromHexStringArgsTemplate null - ObjectIdCreateFromTimeTemplate: &ObjectIdCreateFromTimeTemplate !!js/function > - () => { - return `new ObjectId.GenerateNewId`; - } - ObjectIdCreateFromTimeArgsTemplate: &ObjectIdCreateFromTimeArgsTemplate !!js/function > - (lhs, arg, isNumber) => { - if (isNumber) { - return `(Convert.ToInt32(${arg}))`; - } - return `(${arg})`; - } - ObjectIdIsValidTemplate: &ObjectIdIsValidTemplate !!js/function > - (lhs) => { - return `new ${lhs}`; + return `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; } - ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate null - # JS Symbol Templates - NumberSymbolTemplate: &NumberSymbolTemplate !!js/function > - () => { - return ''; + return `(${doubleStringify(pattern)}${flags ? ', ' + doubleStringify(flags) : ''})`; + } + Decimal128SymbolTemplate: !!js/function &Decimal128SymbolTemplate > + () => { + return 'Decimal128'; + } + Decimal128SymbolArgsTemplate: !!js/function &Decimal128SymbolArgsTemplate > + (_, str) => { // just stringify + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + } + return `.Parse("${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}")`; + } + Decimal128SymbolFromStringTemplate: + !!js/function &Decimal128SymbolFromStringTemplate > + (lhs) => { + return `${lhs}.Parse`; + } + Decimal128SymbolFromStringArgsTemplate: + !!js/function &Decimal128SymbolFromStringArgsTemplate > + (lhs, arg) => { + return `(${arg})`; + } + Decimal128ToStringTemplate: !!js/function &Decimal128ToStringTemplate > + (lhs) => { + return `${lhs}.ToString`; + } + Decimal128ToStringArgsTemplate: &Decimal128ToStringArgsTemplate null + # BSON Util Templates + ObjectIdCreateFromHexStringTemplate: + !!js/function &ObjectIdCreateFromHexStringTemplate > + (lhs) => { + return `new ${lhs}`; + } + ObjectIdCreateFromHexStringArgsTemplate: &ObjectIdCreateFromHexStringArgsTemplate null + ObjectIdCreateFromTimeTemplate: + !!js/function &ObjectIdCreateFromTimeTemplate > + () => { + return `new ObjectId.GenerateNewId`; + } + ObjectIdCreateFromTimeArgsTemplate: + !!js/function &ObjectIdCreateFromTimeArgsTemplate > + (lhs, arg, isNumber) => { + if (isNumber) { + return `(Convert.ToInt32(${arg}))`; + } + return `(${arg})`; + } + ObjectIdIsValidTemplate: !!js/function &ObjectIdIsValidTemplate > + (lhs) => { + return `new ${lhs}`; + } + ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate null + # JS Symbol Templates + NumberSymbolTemplate: !!js/function &NumberSymbolTemplate > + () => { + return ''; + } + NumberSymbolArgsTemplate: !!js/function &NumberSymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + + if (type === '_string') { + if (arg.indexOf('.') !== -1) { + return `float.Parse(${arg})` + } + return `int.Parse(${arg})`; } - NumberSymbolArgsTemplate: &NumberSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - if (type === '_string') { - if (arg.indexOf('.') !== -1) { - return `float.Parse(${arg})` - } - return `int.Parse(${arg})`; - } + if (arg.indexOf('.') !== -1) { + return `(float) ${arg}` + } + return `(int) ${arg}`; + } + DateSymbolTemplate: !!js/function &DateSymbolTemplate > + () => { + return 'DateTime'; + } + DateSymbolArgsTemplate: !!js/function &DateSymbolArgsTemplate > + (lhs, date, isString) => { + let toStr = isString? '.ToString("ddd MMM dd yyyy HH\':\'mm\':\'ss UTC")' : ''; - if (arg.indexOf('.') !== -1) { - return `(float) ${arg}` - } - return `(int) ${arg}`; - } - DateSymbolTemplate: &DateSymbolTemplate !!js/function > - () => { - return 'DateTime'; + if (date === null) { + return `${lhs}.Now${toStr}`; } - DateSymbolArgsTemplate: &DateSymbolArgsTemplate !!js/function > - (lhs, date, isString) => { - let toStr = isString? '.ToString("ddd MMM dd yyyy HH\':\'mm\':\'ss UTC")' : ''; - if (date === null) { - return `${lhs}.Now${toStr}`; - } - - const dateStr = [ - date.getUTCFullYear(), - date.getUTCMonth() + 1, - date.getUTCDate(), - date.getUTCHours(), - date.getUTCMinutes(), - date.getUTCSeconds() - ].join(', '); + const dateStr = [ + date.getUTCFullYear(), + date.getUTCMonth() + 1, + date.getUTCDate(), + date.getUTCHours(), + date.getUTCMinutes(), + date.getUTCSeconds() + ].join(', '); - return `new ${lhs}(${dateStr})${toStr}`; - } - DateSymbolNowTemplate: &DateSymbolNowTemplate !!js/function > - () => { - return 'DateTime.Now'; - } - DateSymbolNowArgsTemplate: &DateSymbolNowArgsTemplate !!js/function > - () => { - return ''; - } - RegExpSymbolTemplate: &RegExpSymbolTemplate !!js/function > # Also has process method - () => { - return 'Regex'; - } - RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null - ImportTemplate: &ImportTemplate !!js/function > - (args) => { - const universal = ['using MongoDB.Bson;', 'using MongoDB.Driver;']; - const all = universal.concat(Object.values(args)); - return all.join('\n'); - } - DriverImportTemplate: &DriverImportTemplate null - 0ImportTemplate: &0ImportTemplate null - 1ImportTemplate: &1ImportTemplate null - 2ImportTemplate: &2ImportTemplate null - 3ImportTemplate: &3ImportTemplate null - 4ImportTemplate: &4ImportTemplate null - 5ImportTemplate: &5ImportTemplate null - 6ImportTemplate: &6ImportTemplate null - 7ImportTemplate: &7ImportTemplate null - 8ImportTemplate: &8ImportTemplate !!js/function > - () => { - return 'using System.Text.RegularExpressions;'; - } - 9ImportTemplate: &9ImportTemplate null - 10ImportTemplate: &10ImportTemplate null - 11ImportTemplate: &11ImportTemplate null - 12ImportTemplate: &12ImportTemplate null - 100ImportTemplate: &100ImportTemplate null - 101ImportTemplate: &101ImportTemplate null - 102ImportTemplate: &102ImportTemplate null - 103ImportTemplate: &103ImportTemplate null - 104ImportTemplate: &104ImportTemplate null - 105ImportTemplate: &105ImportTemplate null - 106ImportTemplate: &106ImportTemplate null - 107ImportTemplate: &107ImportTemplate null - 108ImportTemplate: &108ImportTemplate null - 109ImportTemplate: &109ImportTemplate null - 110ImportTemplate: &110ImportTemplate null - 111ImportTemplate: &111ImportTemplate null - 112ImportTemplate: &112ImportTemplate null - 113ImportTemplate: &113ImportTemplate null - 114ImportTemplate: &114ImportTemplate null - 200ImportTemplate: &200ImportTemplate !!js/function > - () => { - return 'using System;'; - } - 201ImportTemplate: &201ImportTemplate null - 300ImportTemplate: &300ImportTemplate null - 301ImportTemplate: &301ImportTemplate null - 302ImportTemplate: &302ImportTemplate null - 303ImportTemplate: &303ImportTemplate null - 304ImportTemplate: &304ImportTemplate null - 305ImportTemplate: &305ImportTemplate null - 306ImportTemplate: &306ImportTemplate null + return `new ${lhs}(${dateStr})${toStr}`; + } + DateSymbolNowTemplate: !!js/function &DateSymbolNowTemplate > + () => { + return 'DateTime.Now'; + } + DateSymbolNowArgsTemplate: !!js/function &DateSymbolNowArgsTemplate > + () => { + return ''; + } + RegExpSymbolTemplate: + !!js/function &RegExpSymbolTemplate > # Also has process method + () => { + return 'Regex'; + } + RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null + ImportTemplate: !!js/function &ImportTemplate > + (args) => { + const universal = ['using MongoDB.Bson;', 'using MongoDB.Driver;']; + const all = universal.concat(Object.values(args)); + return all.join('\n'); + } + DriverImportTemplate: &DriverImportTemplate null + 0ImportTemplate: &0ImportTemplate null + 1ImportTemplate: &1ImportTemplate null + 2ImportTemplate: &2ImportTemplate null + 3ImportTemplate: &3ImportTemplate null + 4ImportTemplate: &4ImportTemplate null + 5ImportTemplate: &5ImportTemplate null + 6ImportTemplate: &6ImportTemplate null + 7ImportTemplate: &7ImportTemplate null + 8ImportTemplate: !!js/function &8ImportTemplate > + () => { + return 'using System.Text.RegularExpressions;'; + } + 9ImportTemplate: &9ImportTemplate null + 10ImportTemplate: &10ImportTemplate null + 11ImportTemplate: &11ImportTemplate null + 12ImportTemplate: &12ImportTemplate null + 100ImportTemplate: &100ImportTemplate null + 101ImportTemplate: &101ImportTemplate null + 102ImportTemplate: &102ImportTemplate null + 103ImportTemplate: &103ImportTemplate null + 104ImportTemplate: &104ImportTemplate null + 105ImportTemplate: &105ImportTemplate null + 106ImportTemplate: &106ImportTemplate null + 107ImportTemplate: &107ImportTemplate null + 108ImportTemplate: &108ImportTemplate null + 109ImportTemplate: &109ImportTemplate null + 110ImportTemplate: &110ImportTemplate null + 111ImportTemplate: &111ImportTemplate null + 112ImportTemplate: &112ImportTemplate null + 113ImportTemplate: &113ImportTemplate null + 114ImportTemplate: &114ImportTemplate null + 200ImportTemplate: !!js/function &200ImportTemplate > + () => { + return 'using System;'; + } + 201ImportTemplate: &201ImportTemplate null + 300ImportTemplate: &300ImportTemplate null + 301ImportTemplate: &301ImportTemplate null + 302ImportTemplate: &302ImportTemplate null + 303ImportTemplate: &303ImportTemplate null + 304ImportTemplate: &304ImportTemplate null + 305ImportTemplate: &305ImportTemplate null + 306ImportTemplate: &306ImportTemplate null diff --git a/packages/bson-transpilers/symbols/go/templates.yaml b/packages/bson-transpilers/symbols/go/templates.yaml index 1b19e613662..1422bb58263 100644 --- a/packages/bson-transpilers/symbols/go/templates.yaml +++ b/packages/bson-transpilers/symbols/go/templates.yaml @@ -18,393 +18,529 @@ # # ############################################# Templates: - ######## - # Misc # - ######## - - # Filter out regex flags that have translations or are unsupported. - RegexFlags: &RegexFlags - i: 'i' - m: 'm' - u: 'u' - y: 'y' - g: 'g' - BSONRegexFlags: &BSONRegexFlags - i: 'i' - m: 'm' - x: 'x' - s: 's' - l: 'l' - u: 'u' - - ############################################# - # Syntax # - # # - # Templates for language syntax expressions # - # # - ############################################# - - DriverTemplate: &DriverTemplate !!js/function > - (spec) => { - const options = spec.options; - const uri = spec.options.uri - const filter = spec.filter || {}; - const exportMode = spec.exportMode; - delete spec.options; - delete spec.filter; - delete spec.exportMode; - - const indent = (depth) => ' '.repeat(depth) - - let driverMethod; - switch (exportMode) { - case 'Delete Query': - driverMethod = 'DeleteMany'; - break; - case 'Update Query': - driverMethod = 'UpdateMany'; - break; - default: - driverMethod = 'Find'; - } + ######## + # Misc # + ######## - const comment = [] - .concat('// Requires the MongoDB Go Driver') - .concat('// https://go.mongodb.org/mongo-driver') - .join('\n'); + # Filter out regex flags that have translations or are unsupported. + RegexFlags: &RegexFlags + i: 'i' + m: 'm' + u: 'u' + y: 'y' + g: 'g' + BSONRegexFlags: &BSONRegexFlags + i: 'i' + m: 'm' + x: 'x' + s: 's' + l: 'l' + u: 'u' - const connect = [] - .concat('ctx := context.TODO()') - .concat(this.declarations.length() > 0 ? `\n${this.declarations.toString()}\n` : '') - .concat('// Set client options') - .concat(`clientOptions := options.Client().ApplyURI("${uri}")`) - .concat('') - .concat('// Connect to MongoDB') - .concat('client, err := mongo.Connect(ctx, clientOptions)') - .concat('if err != nil {') - .concat(' log.Fatal(err)') - .concat('}') - .concat('defer func() {') - .concat(' if err := client.Disconnect(ctx); err != nil {') - .concat(' log.Fatal(err)') - .concat(' }') - .concat('}()') - .join('\n'); + ############################################# + # Syntax # + # # + # Templates for language syntax expressions # + # # + ############################################# - const coll = [] - .concat(`coll := client.Database("${options.database}").Collection("${options.collection}")`) - .join('\n'); + DriverTemplate: !!js/function &DriverTemplate > + (spec) => { + const options = spec.options; + const uri = spec.options.uri + const filter = spec.filter || {}; + const exportMode = spec.exportMode; + delete spec.options; + delete spec.filter; + delete spec.exportMode; - if ('aggregation' in spec) { - return [] - .concat(comment) - .concat(connect) - .concat('') - .concat('// Open an aggregation cursor') - .concat(`${coll}`) - .concat(`_, err = coll.Aggregate(ctx, ${spec.aggregation})`) - .concat('if err != nil {') - .concat(' log.Fatal(err)') - .concat('}') - .join('\n'); - } + const indent = (depth) => ' '.repeat(depth) + + let driverMethod; + switch (exportMode) { + case 'Delete Query': + driverMethod = 'DeleteMany'; + break; + case 'Update Query': + driverMethod = 'UpdateMany'; + break; + default: + driverMethod = 'Find'; + } - const findOptions = [] - if (spec.project) - findOptions.push(`options.Find().SetProjection(${spec.project})`); - if (spec.sort) - findOptions.push(`options.Find().SetSort(${spec.sort})`); + const comment = [] + .concat('// Requires the MongoDB Go Driver') + .concat('// https://go.mongodb.org/mongo-driver') + .join('\n'); - const optsStr = findOptions.length > 0 ? `,\n${indent(1)}${findOptions.join(`,\n${indent(1)}`)}` : '' + const connect = [] + .concat('ctx := context.TODO()') + .concat(this.declarations.length() > 0 ? `\n${this.declarations.toString()}\n` : '') + .concat('// Set client options') + .concat(`clientOptions := options.Client().ApplyURI("${uri}")`) + .concat('') + .concat('// Connect to MongoDB') + .concat('client, err := mongo.Connect(ctx, clientOptions)') + .concat('if err != nil {') + .concat(' log.Fatal(err)') + .concat('}') + .concat('defer func() {') + .concat(' if err := client.Disconnect(ctx); err != nil {') + .concat(' log.Fatal(err)') + .concat(' }') + .concat('}()') + .join('\n'); + const coll = [] + .concat(`coll := client.Database("${options.database}").Collection("${options.collection}")`) + .join('\n'); + + if ('aggregation' in spec) { return [] .concat(comment) .concat(connect) .concat('') + .concat('// Open an aggregation cursor') .concat(`${coll}`) - .concat(`_, err = coll.${driverMethod}(ctx, ${filter}${optsStr})`) + .concat(`_, err = coll.Aggregate(ctx, ${spec.aggregation})`) .concat('if err != nil {') .concat(' log.Fatal(err)') .concat('}') .join('\n'); } - EqualitySyntaxTemplate: &EqualitySyntaxTemplate !!js/function > - (lhs, op, rhs) => { - if (op.includes('!') || op.includes('not')) { - return `${lhs} != ${rhs}`; - } - else if (op === '==' || op === '===' || op === 'is') { - return `${lhs} == ${rhs}`; - } - return `${lhs} ${op} ${rhs}`; + + const findOptions = [] + if (spec.project) + findOptions.push(`options.Find().SetProjection(${spec.project})`); + if (spec.sort) + findOptions.push(`options.Find().SetSort(${spec.sort})`); + + const optsStr = findOptions.length > 0 ? `,\n${indent(1)}${findOptions.join(`,\n${indent(1)}`)}` : '' + + return [] + .concat(comment) + .concat(connect) + .concat('') + .concat(`${coll}`) + .concat(`_, err = coll.${driverMethod}(ctx, ${filter}${optsStr})`) + .concat('if err != nil {') + .concat(' log.Fatal(err)') + .concat('}') + .join('\n'); + } + EqualitySyntaxTemplate: !!js/function &EqualitySyntaxTemplate > + (lhs, op, rhs) => { + if (op.includes('!') || op.includes('not')) { + return `${lhs} != ${rhs}`; } - InSyntaxTemplate: &InSyntaxTemplate !!js/function > - (lhs, op, rhs) => { - this.declarations.addFunc([] - .concat(`var contains = func(elems bson.A, v interface{}) bool {`) - .concat(' for _, s := range elems {') - .concat(' if v == s {') - .concat(' return true') - .concat(' }') - .concat(' }') - .concat(' return false') - .concat('}') - .join('\n')); - let prefix = ''; - if (op.includes('!') || op.includes('not')) - prefix = '!'; - return `${prefix}contains(${rhs}, ${lhs})`; + else if (op === '==' || op === '===' || op === 'is') { + return `${lhs} == ${rhs}`; } - AndSyntaxTemplate: &AndSyntaxTemplate !!js/function > - (args) => args.join(' && ') - OrSyntaxTemplate: &OrSyntaxTemplate !!js/function > - (args) => args.join(' || ') - NotSyntaxTemplate: &NotSyntaxTemplate !!js/function > - (arg) => `!${arg}` - UnarySyntaxTemplate: &UnarySyntaxTemplate !!js/function > - (op, val) => { + return `${lhs} ${op} ${rhs}`; + } + InSyntaxTemplate: !!js/function &InSyntaxTemplate > + (lhs, op, rhs) => { + this.declarations.addFunc([] + .concat(`var contains = func(elems bson.A, v interface{}) bool {`) + .concat(' for _, s := range elems {') + .concat(' if v == s {') + .concat(' return true') + .concat(' }') + .concat(' }') + .concat(' return false') + .concat('}') + .join('\n')); + let prefix = ''; + if (op.includes('!') || op.includes('not')) + prefix = '!'; + return `${prefix}contains(${rhs}, ${lhs})`; + } + AndSyntaxTemplate: !!js/function &AndSyntaxTemplate > + (args) => args.join(' && ') + OrSyntaxTemplate: !!js/function &OrSyntaxTemplate > + (args) => args.join(' || ') + NotSyntaxTemplate: !!js/function &NotSyntaxTemplate > + (arg) => `!${arg}` + UnarySyntaxTemplate: !!js/function &UnarySyntaxTemplate > + (op, val) => { + switch(op) { + case '+': + return val; + case '~': + return `!${val}`; + default: + return `${op}${val}`; + } + return `${op}${val}`; + } + BinarySyntaxTemplate: !!js/function &BinarySyntaxTemplate > + (args) => { + return args.reduce((s, op, i, arr) => { + if (i % 2 === 0) { + return s; + } + const rhs = arr[i + 1]; switch(op) { - case '+': - return val; - case '~': - return `!${val}`; + case '//': + return `${s} / ${rhs}` + case '**': + return `math.Pow(${s}, ${rhs})` default: - return `${op}${val}`; + return `${s} ${op} ${rhs}`; } - return `${op}${val}`; + }, args[0]); + } + ParensSyntaxTemplate: &ParensSyntaxTemplate null + EosTemplate: &EosSyntaxTemplate null # No args. End-of-line + EofTemplate: &EofSyntaxTemplate null # No args. End-of-file + FloorDivTemplate: &FloorDivSyntaxTemplate null # Args: lhs, rhs + PowerTemplate: &PowerSyntaxTemplate null # Args: lhs, rhs + NewTemplate: &NewSyntaxTemplate null # Args: expression, skip?, code# [to check if meant to be skipped] + + ############################################# + # Literal Types # + # # + # Templates for literal type instance. Most # + # get passed the literal itself as an arg. # + # # + ############################################# + StringTypeTemplate: !!js/function &StringTypeTemplate > + (str) => { + // Double quote stringify + const singleQuoted = str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\''; + const doubleQuoted = str.charAt(0) === '"' && str.charAt(str.length - 1) === '"'; + if (singleQuoted || doubleQuoted) + str = str.substr(1, str.length - 2); + return `"${str.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; + } + RegexTypeTemplate: !!js/function &RegexTypeTemplate > + (pattern, flags) => { + // Wrap string in double quotes + const doubleStringify = (str) => { + const singleQuoted = str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\''; + const doubleQuoted = str.charAt(0) === '"' && str.charAt(str.length - 1) === '"'; + if (singleQuoted || doubleQuoted) + str = str.substr(1, str.length - 2); + return `"${str.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; } - BinarySyntaxTemplate: &BinarySyntaxTemplate !!js/function > - (args) => { - return args.reduce((s, op, i, arr) => { - if (i % 2 === 0) { - return s; - } - const rhs = arr[i + 1]; - switch(op) { - case '//': - return `${s} / ${rhs}` - case '**': - return `math.Pow(${s}, ${rhs})` - default: - return `${s} ${op} ${rhs}`; - } - }, args[0]); + + const structParts = []; + structParts.push(`Pattern: ${doubleStringify(pattern)}`); + if (flags) + structParts.push(`Options: ${doubleStringify(flags)}`); + return `primitive.Regex{${structParts.join(", ")}}`; + } + BoolTypeTemplate: !!js/function &BoolTypeTemplate > + (literal) => literal.toLowerCase() + IntegerTypeTemplate: &IntegerTypeTemplate null # args: literal, argType (i.e. '_string', '_decimal' etc) + DecimalTypeTemplate: &DecimalTypeTemplate null # args: literal, argType + LongBasicTypeTemplate: &LongBasicTypeTemplate null # args: literal, argType + HexTypeTemplate: &HexTypeTemplate null # args: literal, argType + OctalTypeTemplate: &OctalTypeTemplate null # args: literal, argType + NumericTypeTemplate: &NumericTypeTemplate null # args: literal, argType + ArrayTypeTemplate: !!js/function &ArrayTypeTemplate > + (literal, depth) => { + depth++; + const indent = '\n' + ' '.repeat(depth); + const closingIndent = '\n' + ' '.repeat(depth - 1); + if (literal === '') + return 'bson.A{}'; + return `bson.A{${literal}${closingIndent}}`; + } + ArrayTypeArgsTemplate: !!js/function &ArrayTypeArgsTemplate > + (arg, depth, last) => { + depth++; + const indent = '\n' + ' '.repeat(depth); + return `${indent}${arg},`; + } + NullTypeTemplate: !!js/function &NullTypeTemplate > + () => 'primitive.Null{}' + UndefinedTypeTemplate: !!js/function &UndefinedTypeTemplate > + () => 'primitive.Undefined{}' + ObjectTypeTemplate: !!js/function &ObjectTypeTemplate > + (literal) => `bson.D{${literal}}` + ObjectTypeArgsTemplate: !!js/function &ObjectTypeArgsTemplate > + (args, depth) => { + // If there are no args, then there is nothing for us to format + if (args.length === 0) + return ''; + + depth++; + const indent = '\n' + ' '.repeat(depth); + const closingIndent = '\n' + ' '.repeat(depth - 1); + + // Indent every line of a string + const indentBlock = (string, count = 1, options = {}) => { + const { + indent = ' ', + includeEmptyLines = false + } = options; + + const regex = includeEmptyLines ? /^/gm : /^(?!\s*$)/gm; + return string.replace(regex, indent.repeat(count)); } - ParensSyntaxTemplate: &ParensSyntaxTemplate null - EosTemplate: &EosSyntaxTemplate null # No args. End-of-line - EofTemplate: &EofSyntaxTemplate null # No args. End-of-file - FloorDivTemplate: &FloorDivSyntaxTemplate null # Args: lhs, rhs - PowerTemplate: &PowerSyntaxTemplate null # Args: lhs, rhs - NewTemplate: &NewSyntaxTemplate null # Args: expression, skip?, code# [to check if meant to be skipped] - - ############################################# - # Literal Types # - # # - # Templates for literal type instance. Most # - # get passed the literal itself as an arg. # - # # - ############################################# - StringTypeTemplate: &StringTypeTemplate !!js/function > - (str) => { - // Double quote stringify + + // Wrap string in double quotes + const doubleStringify = (str) => { const singleQuoted = str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\''; const doubleQuoted = str.charAt(0) === '"' && str.charAt(str.length - 1) === '"'; if (singleQuoted || doubleQuoted) str = str.substr(1, str.length - 2); return `"${str.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; } - RegexTypeTemplate: &RegexTypeTemplate !!js/function > - (pattern, flags) => { - // Wrap string in double quotes - const doubleStringify = (str) => { - const singleQuoted = str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\''; - const doubleQuoted = str.charAt(0) === '"' && str.charAt(str.length - 1) === '"'; - if (singleQuoted || doubleQuoted) - str = str.substr(1, str.length - 2); - return `"${str.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - } - const structParts = []; - structParts.push(`Pattern: ${doubleStringify(pattern)}`); - if (flags) - structParts.push(`Options: ${doubleStringify(flags)}`); - return `primitive.Regex{${structParts.join(", ")}}`; - } - BoolTypeTemplate: &BoolTypeTemplate !!js/function > - (literal) => literal.toLowerCase() - IntegerTypeTemplate: &IntegerTypeTemplate null # args: literal, argType (i.e. '_string', '_decimal' etc) - DecimalTypeTemplate: &DecimalTypeTemplate null # args: literal, argType - LongBasicTypeTemplate: &LongBasicTypeTemplate null # args: literal, argType - HexTypeTemplate: &HexTypeTemplate null # args: literal, argType - OctalTypeTemplate: &OctalTypeTemplate null # args: literal, argType - NumericTypeTemplate: &NumericTypeTemplate null # args: literal, argType - ArrayTypeTemplate: &ArrayTypeTemplate !!js/function > - (literal, depth) => { - depth++; - const indent = '\n' + ' '.repeat(depth); - const closingIndent = '\n' + ' '.repeat(depth - 1); - if (literal === '') - return 'bson.A{}'; - return `bson.A{${literal}${closingIndent}}`; + // Check if a string is multiple lines i.e. has a break point + const isMultiline = (element) => /\r|\n/.exec(element) + + // Format element by go type + const fmt = (element) => { + const hash = { multiline: isMultiline(element) }; + const typeFormatters = { + 'bson.A': (el, hash) => isMultiline(el) ? indentBlock(`${indent}${el},${indent}`) : ` ${el}`, + 'bson.D': (el, hash) => isMultiline(el) ? indentBlock(`${indent}${el},${indent}`) : ` ${el}`, + default: (el, hash) => isMultiline(el) ? el : ` ${el}` + }; + hash.el = typeFormatters.default(element); + for (const type in typeFormatters) + if (element.startsWith(type)) { + hash.el = typeFormatters[type](element); + break; + } + return hash; } - ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate !!js/function > - (arg, depth, last) => { - depth++; - const indent = '\n' + ' '.repeat(depth); - return `${indent}${arg},`; + + // Get the {key, value} pair for the bson.D object + const getPairs = (args, sep = `,${indent}`) => { + const hash = { multiline: false } + hash.el = args.map((pair) => { + const fmtPair = fmt(pair[1]) + if (!hash.multiline && fmtPair.multiline) + hash.multiline = true + return `{${doubleStringify(pair[0])},${fmtPair.el}}` + }).join(sep) + return hash } - NullTypeTemplate: &NullTypeTemplate !!js/function > - () => 'primitive.Null{}' - UndefinedTypeTemplate: &UndefinedTypeTemplate !!js/function > - () => 'primitive.Undefined{}' - ObjectTypeTemplate: &ObjectTypeTemplate !!js/function > - (literal) => `bson.D{${literal}}` - ObjectTypeArgsTemplate: &ObjectTypeArgsTemplate !!js/function > - (args, depth) => { - // If there are no args, then there is nothing for us to format - if (args.length === 0) - return ''; - - depth++; - const indent = '\n' + ' '.repeat(depth); - const closingIndent = '\n' + ' '.repeat(depth - 1); - - // Indent every line of a string - const indentBlock = (string, count = 1, options = {}) => { - const { - indent = ' ', - includeEmptyLines = false - } = options; - - const regex = includeEmptyLines ? /^/gm : /^(?!\s*$)/gm; - return string.replace(regex, indent.repeat(count)); - } - // Wrap string in double quotes - const doubleStringify = (str) => { - const singleQuoted = str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\''; - const doubleQuoted = str.charAt(0) === '"' && str.charAt(str.length - 1) === '"'; - if (singleQuoted || doubleQuoted) - str = str.substr(1, str.length - 2); - return `"${str.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - } + const pairs = getPairs(args); + const singleLine = args.length <= 1 && !pairs.multiline; + const prefix = singleLine ? '' : indent; + const suffix = singleLine ? '' : ',' + closingIndent; + return `${prefix}${pairs.el}${suffix}`; + } - // Check if a string is multiple lines i.e. has a break point - const isMultiline = (element) => /\r|\n/.exec(element) - - // Format element by go type - const fmt = (element) => { - const hash = { multiline: isMultiline(element) }; - const typeFormatters = { - 'bson.A': (el, hash) => isMultiline(el) ? indentBlock(`${indent}${el},${indent}`) : ` ${el}`, - 'bson.D': (el, hash) => isMultiline(el) ? indentBlock(`${indent}${el},${indent}`) : ` ${el}`, - default: (el, hash) => isMultiline(el) ? el : ` ${el}` - }; - hash.el = typeFormatters.default(element); - for (const type in typeFormatters) - if (element.startsWith(type)) { - hash.el = typeFormatters[type](element); - break; - } - return hash; - } + ############################################# + # Symbols # + # # + # Templates for symbols, can be either # + # functions or variables. # + # # + # The *SymbolTemplates return names and # + # usually don't take any arguments. The # + # *SymbolArgsTemplates are invoked for func # + # calls. The first argument is always the # + # lhs, i.e. the symbol returned from the # + # corresponding SymbolTemplate. The rest of # + # the arguments are the processed arguments # + # passed to the original function. # + # # + ############################################# + CodeSymbolTemplate: !!js/function &CodeSymbolTemplate > + () => 'primitive.CodeWithScope' + CodeSymbolArgsTemplate: !!js/function &CodeSymbolArgsTemplate > + (_, code, scope) => { + if (code === undefined) + return `{}`; - // Get the {key, value} pair for the bson.D object - const getPairs = (args, sep = `,${indent}`) => { - const hash = { multiline: false } - hash.el = args.map((pair) => { - const fmtPair = fmt(pair[1]) - if (!hash.multiline && fmtPair.multiline) - hash.multiline = true - return `{${doubleStringify(pair[0])},${fmtPair.el}}` - }).join(sep) - return hash - } + if (scope !== undefined) + scope = `Scope: ${scope}`; - const pairs = getPairs(args); - const singleLine = args.length <= 1 && !pairs.multiline; - const prefix = singleLine ? '' : indent; - const suffix = singleLine ? '' : ',' + closingIndent; - return `${prefix}${pairs.el}${suffix}`; - } + const singleQuoted = code.charAt(0) === '\'' && code.charAt(code.length - 1) === '\''; + const doubleQuoted = code.charAt(0) === '"' && code.charAt(code.length - 1) === '"'; + if (singleQuoted || doubleQuoted) + code = code.substr(1, code.length - 2); - ############################################# - # Symbols # - # # - # Templates for symbols, can be either # - # functions or variables. # - # # - # The *SymbolTemplates return names and # - # usually don't take any arguments. The # - # *SymbolArgsTemplates are invoked for func # - # calls. The first argument is always the # - # lhs, i.e. the symbol returned from the # - # corresponding SymbolTemplate. The rest of # - # the arguments are the processed arguments # - # passed to the original function. # - # # - ############################################# - CodeSymbolTemplate: &CodeSymbolTemplate !!js/function > - () => 'primitive.CodeWithScope' - CodeSymbolArgsTemplate: &CodeSymbolArgsTemplate !!js/function > - (_, code, scope) => { - if (code === undefined) - return `{}`; - - if (scope !== undefined) - scope = `Scope: ${scope}`; - - const singleQuoted = code.charAt(0) === '\'' && code.charAt(code.length - 1) === '\''; - const doubleQuoted = code.charAt(0) === '"' && code.charAt(code.length - 1) === '"'; - if (singleQuoted || doubleQuoted) - code = code.substr(1, code.length - 2); + code = `Code: primitive.JavaScript("${code.replace(/\\([\s\S])|(")/g, '\\$1$2')}")`; + return (scope === undefined) ? `{${code}}` : `{${code}, ${scope}}`; + } + ObjectIdSymbolTemplate: !!js/function &ObjectIdSymbolTemplate > + () => '' + ObjectIdSymbolArgsTemplate: !!js/function &ObjectIdSymbolArgsTemplate > + (_, arg) => { + if (arg === undefined || arg === '') + return 'primitive.NewObjectID()'; - code = `Code: primitive.JavaScript("${code.replace(/\\([\s\S])|(")/g, '\\$1$2')}")`; - return (scope === undefined) ? `{${code}}` : `{${code}, ${scope}}`; + // Double quote stringify + const singleQuoted = arg.charAt(0) === '\'' && arg.charAt(arg.length - 1) === '\''; + const doubleQuoted = arg.charAt(0) === '"' && arg.charAt(arg.length - 1) === '"'; + if (singleQuoted || doubleQuoted) + arg = arg.substr(1, arg.length - 2); + arg = `"${arg.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; + this.declarations.addFunc([] + .concat('var objectIDFromHex = func(hex string) primitive.ObjectID {') + .concat(` objectID, err := primitive.ObjectIDFromHex(hex)`) + .concat(' if err != nil {') + .concat(' log.Fatal(err)') + .concat(' }') + .concat(' return objectID') + .concat('}') + .join('\n')); + return `objectIDFromHex(${arg})` + } + BinarySymbolTemplate: &BinarySymbolTemplate null + BinarySymbolArgsTemplate: &BinarySymbolArgsTemplate null + BinarySymbolSubtypeDefaultTemplate: &BinarySymbolSubtypeDefaultTemplate null + BinarySymbolSubtypeFunctionTemplate: &BinarySymbolSubtypeFunctionTemplate null + BinarySymbolSubtypeByteArrayTemplate: &BinarySymbolSubtypeByteArrayTemplate null + BinarySymbolSubtypeUuidOldTemplate: &BinarySymbolSubtypeUuidOldTemplate null + BinarySymbolSubtypeUuidTemplate: &BinarySymbolSubtypeUuidTemplate null + BinarySymbolSubtypeMd5Template: &BinarySymbolSubtypeMd5Template null + BinarySymbolSubtypeUserDefinedTemplate: &BinarySymbolSubtypeUserDefinedTemplate null + DBRefSymbolTemplate: &DBRefSymbolTemplate null # No args + DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate null + DoubleSymbolTemplate: !!js/function &DoubleSymbolTemplate > + () => '' + DoubleSymbolArgsTemplate: !!js/function &DoubleSymbolArgsTemplate > + (lhs, arg, type) => { + if (!arg) + arg = 0; + switch(type) { + case '_string': + this.declarations.addFunc([] + .concat('var parseFloat64 = func(str string) float64 {') + .concat(' f64, err := strconv.ParseFloat(str, 64)') + .concat(' if err != nil {') + .concat(' log.Fatal(err)') + .concat(' }') + .concat(' return f64') + .concat('}') + .join('\n')); + return `parseFloat64(${arg})` + default: + return `float64(${arg})`; + } + } + Int32SymbolTemplate: !!js/function &Int32SymbolTemplate > + () => '' + Int32SymbolArgsTemplate: !!js/function &Int32SymbolArgsTemplate > + (lhs, arg, type) => { + if (!arg) + arg = 0 + switch(type) { + case '_string': + this.declarations.addFunc([] + .concat('var parseInt32 = func(str string) int32 {') + .concat('i64, err := strconv.ParseInt(str, 10, 32)') + .concat(' if err != nil {') + .concat(' log.Fatal(err)') + .concat(' }') + .concat(' return int32(i64)') + .concat('}') + .join('\n')); + return `parseInt32(${arg})`; + default: + return `int32(${arg})`; + } + } + LongSymbolTemplate: !!js/function &LongSymbolTemplate > + () => '' + LongSymbolArgsTemplate: !!js/function &LongSymbolArgsTemplate > + (lhs, arg, type) => { + if (!arg) + arg = 0 + switch(type) { + case '_string': + this.declarations.addFunc([] + .concat('var parseInt = func(str string) int64 {') + .concat(' i64, err := strconv.ParseInt(str, 10, 64)') + .concat(' if err != nil {') + .concat(' log.Fatal(err)') + .concat(' }') + .concat(' return i64') + .concat('}') + .join('\n')); + return `parseInt64(${arg})`; + default: + return `int64(${arg})`; } - ObjectIdSymbolTemplate: &ObjectIdSymbolTemplate !!js/function > - () => '' - ObjectIdSymbolArgsTemplate: &ObjectIdSymbolArgsTemplate !!js/function > - (_, arg) => { - if (arg === undefined || arg === '') - return 'primitive.NewObjectID()'; - - // Double quote stringify - const singleQuoted = arg.charAt(0) === '\'' && arg.charAt(arg.length - 1) === '\''; - const doubleQuoted = arg.charAt(0) === '"' && arg.charAt(arg.length - 1) === '"'; + } + RegExpSymbolTemplate: !!js/function &RegExpSymbolTemplate > + () => 'regex' + RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null # Args: lhs, pattern, flags + SymbolSymbolTemplate: !!js/function &SymbolSymbolTemplate > + () => 'primitive.Symbol' + SymbolSymbolArgsTemplate: &SymbolSymbolArgsTemplate null + BSONRegExpSymbolTemplate: !!js/function &BSONRegExpSymbolTemplate > + () => 'primitive.Regex' + BSONRegExpSymbolArgsTemplate: !!js/function &BSONRegExpSymbolArgsTemplate > + (_, pattern, flags) => { + // Wrap string in double quotes + const doubleStringify = (str) => { + const singleQuoted = str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\''; + const doubleQuoted = str.charAt(0) === '"' && str.charAt(str.length - 1) === '"'; if (singleQuoted || doubleQuoted) - arg = arg.substr(1, arg.length - 2); - arg = `"${arg.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - this.declarations.addFunc([] - .concat('var objectIDFromHex = func(hex string) primitive.ObjectID {') - .concat(` objectID, err := primitive.ObjectIDFromHex(hex)`) - .concat(' if err != nil {') - .concat(' log.Fatal(err)') - .concat(' }') - .concat(' return objectID') - .concat('}') - .join('\n')); - return `objectIDFromHex(${arg})` + str = str.substr(1, str.length - 2); + return `"${str.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; + } + + const structParts = []; + structParts.push(`Pattern: ${doubleStringify(pattern)}`); + if (flags) + structParts.push(`Options: ${doubleStringify(flags)}`); + return `(${structParts.join(", ")})`; + } + Decimal128SymbolTemplate: !!js/function &Decimal128SymbolTemplate > + () => '' + Decimal128SymbolArgsTemplate: !!js/function &Decimal128SymbolArgsTemplate > + (_, arg) => { + if (!arg) + arg = '"0"'; + + // Double quote stringify + const singleQuoted = arg.charAt(0) === '\'' && arg.charAt(arg.length - 1) === '\''; + const doubleQuoted = arg.charAt(0) === '"' && arg.charAt(arg.length - 1) === '"'; + if (singleQuoted || doubleQuoted) + arg = arg.substr(1, arg.length - 2); + arg = `"${arg.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; + + this.declarations.addFunc([] + .concat('var parseDecimal128 = func(str string) primitive.Decimal128 {') + .concat(' d128, err := primitive.ParseDecimal128(str)') + .concat(' if err != nil {') + .concat(' log.Fatal(err)') + .concat(' }') + .concat(' return d128') + .concat('}') + .join('\n')); + return `parseDecimal128(${arg})`; + } + MinKeySymbolTemplate: !!js/function &MinKeySymbolTemplate > + () => 'primitive.MinKey' + MinKeySymbolArgsTemplate: !!js/function &MinKeySymbolArgsTemplate > + () => '{}' + MaxKeySymbolTemplate: !!js/function &MaxKeySymbolTemplate > + () => 'primitive.MaxKey' + MaxKeySymbolArgsTemplate: !!js/function &MaxKeySymbolArgsTemplate > + () => '{}' + TimestampSymbolTemplate: !!js/function &TimestampSymbolTemplate > + () => 'primitive.Timestamp' + TimestampSymbolArgsTemplate: !!js/function &TimestampSymbolArgsTemplate > + (lhs, low, high) => { + if (low === undefined) { + low = 0; + high = 0; } - BinarySymbolTemplate: &BinarySymbolTemplate null - BinarySymbolArgsTemplate: &BinarySymbolArgsTemplate null - BinarySymbolSubtypeDefaultTemplate: &BinarySymbolSubtypeDefaultTemplate null - BinarySymbolSubtypeFunctionTemplate: &BinarySymbolSubtypeFunctionTemplate null - BinarySymbolSubtypeByteArrayTemplate: &BinarySymbolSubtypeByteArrayTemplate null - BinarySymbolSubtypeUuidOldTemplate: &BinarySymbolSubtypeUuidOldTemplate null - BinarySymbolSubtypeUuidTemplate: &BinarySymbolSubtypeUuidTemplate null - BinarySymbolSubtypeMd5Template: &BinarySymbolSubtypeMd5Template null - BinarySymbolSubtypeUserDefinedTemplate: &BinarySymbolSubtypeUserDefinedTemplate null - DBRefSymbolTemplate: &DBRefSymbolTemplate null # No args - DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate null - DoubleSymbolTemplate: &DoubleSymbolTemplate !!js/function > - () => '' - DoubleSymbolArgsTemplate: &DoubleSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - if (!arg) - arg = 0; - switch(type) { - case '_string': + return `{T: ${low}, I: ${high}}` + } + # non bson-specific + NumberSymbolTemplate: !!js/function &NumberSymbolTemplate > + () => '' + NumberSymbolArgsTemplate: !!js/function &NumberSymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + + switch(type) { + case '_string': + if (arg.indexOf('.') !== -1) { this.declarations.addFunc([] .concat('var parseFloat64 = func(str string) float64 {') .concat(' f64, err := strconv.ParseFloat(str, 64)') @@ -415,592 +551,475 @@ Templates: .concat('}') .join('\n')); return `parseFloat64(${arg})` - default: - return `float64(${arg})`; - } - } - Int32SymbolTemplate: &Int32SymbolTemplate !!js/function > - () => '' - Int32SymbolArgsTemplate: &Int32SymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - if (!arg) - arg = 0 - switch(type) { - case '_string': - this.declarations.addFunc([] - .concat('var parseInt32 = func(str string) int32 {') - .concat('i64, err := strconv.ParseInt(str, 10, 32)') - .concat(' if err != nil {') - .concat(' log.Fatal(err)') - .concat(' }') - .concat(' return int32(i64)') - .concat('}') - .join('\n')); - return `parseInt32(${arg})`; - default: - return `int32(${arg})`; - } - } - LongSymbolTemplate: &LongSymbolTemplate !!js/function > - () => '' - LongSymbolArgsTemplate: &LongSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - if (!arg) - arg = 0 - switch(type) { - case '_string': - this.declarations.addFunc([] - .concat('var parseInt = func(str string) int64 {') - .concat(' i64, err := strconv.ParseInt(str, 10, 64)') - .concat(' if err != nil {') - .concat(' log.Fatal(err)') - .concat(' }') - .concat(' return i64') - .concat('}') - .join('\n')); - return `parseInt64(${arg})`; - default: - return `int64(${arg})`; - } + } + this.declarations.addFunc([] + .concat('var parseInt = func(str string) int64 {') + .concat(' i64, err := strconv.ParseInt(str, 10, 64)') + .concat(' if err != nil {') + .concat(' log.Fatal(err)') + .concat(' }') + .concat(' return i64') + .concat('}') + .join('\n')); + return `parseInt64(${arg})`; + default: + return `${arg}` } - RegExpSymbolTemplate: &RegExpSymbolTemplate !!js/function > - () => 'regex' - RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null # Args: lhs, pattern, flags - SymbolSymbolTemplate: &SymbolSymbolTemplate !!js/function > - () => 'primitive.Symbol' - SymbolSymbolArgsTemplate: &SymbolSymbolArgsTemplate null - BSONRegExpSymbolTemplate: &BSONRegExpSymbolTemplate !!js/function > - () => 'primitive.Regex' - BSONRegExpSymbolArgsTemplate: &BSONRegExpSymbolArgsTemplate !!js/function > - (_, pattern, flags) => { - // Wrap string in double quotes - const doubleStringify = (str) => { - const singleQuoted = str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\''; - const doubleQuoted = str.charAt(0) === '"' && str.charAt(str.length - 1) === '"'; - if (singleQuoted || doubleQuoted) - str = str.substr(1, str.length - 2); - return `"${str.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - } + } + DateSymbolTemplate: !!js/function &DateSymbolTemplate > + () => 'time.Date' + DateSymbolArgsTemplate: !!js/function &DateSymbolArgsTemplate > + (lhs, date, isString) => { + if (date === null) + return `time.Now()`; - const structParts = []; - structParts.push(`Pattern: ${doubleStringify(pattern)}`); - if (flags) - structParts.push(`Options: ${doubleStringify(flags)}`); - return `(${structParts.join(", ")})`; - } - Decimal128SymbolTemplate: &Decimal128SymbolTemplate !!js/function > - () => '' - Decimal128SymbolArgsTemplate: &Decimal128SymbolArgsTemplate !!js/function > - (_, arg) => { - if (!arg) - arg = '"0"'; - - // Double quote stringify - const singleQuoted = arg.charAt(0) === '\'' && arg.charAt(arg.length - 1) === '\''; - const doubleQuoted = arg.charAt(0) === '"' && arg.charAt(arg.length - 1) === '"'; - if (singleQuoted || doubleQuoted) - arg = arg.substr(1, arg.length - 2); - arg = `"${arg.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - - this.declarations.addFunc([] - .concat('var parseDecimal128 = func(str string) primitive.Decimal128 {') - .concat(' d128, err := primitive.ParseDecimal128(str)') - .concat(' if err != nil {') - .concat(' log.Fatal(err)') - .concat(' }') - .concat(' return d128') - .concat('}') - .join('\n')); - return `parseDecimal128(${arg})`; - } - MinKeySymbolTemplate: &MinKeySymbolTemplate !!js/function > - () => 'primitive.MinKey' - MinKeySymbolArgsTemplate: &MinKeySymbolArgsTemplate !!js/function > - () => '{}' - MaxKeySymbolTemplate: &MaxKeySymbolTemplate !!js/function > - () => 'primitive.MaxKey' - MaxKeySymbolArgsTemplate: &MaxKeySymbolArgsTemplate !!js/function > - () => '{}' - TimestampSymbolTemplate: &TimestampSymbolTemplate !!js/function > - () => 'primitive.Timestamp' - TimestampSymbolArgsTemplate: &TimestampSymbolArgsTemplate !!js/function > - (lhs, low, high) => { - if (low === undefined) { - low = 0; - high = 0; - } - return `{T: ${low}, I: ${high}}` - } - # non bson-specific - NumberSymbolTemplate: &NumberSymbolTemplate !!js/function > - () => '' - NumberSymbolArgsTemplate: &NumberSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - - switch(type) { - case '_string': - if (arg.indexOf('.') !== -1) { - this.declarations.addFunc([] - .concat('var parseFloat64 = func(str string) float64 {') - .concat(' f64, err := strconv.ParseFloat(str, 64)') - .concat(' if err != nil {') - .concat(' log.Fatal(err)') - .concat(' }') - .concat(' return f64') - .concat('}') - .join('\n')); - return `parseFloat64(${arg})` - } - this.declarations.addFunc([] - .concat('var parseInt = func(str string) int64 {') - .concat(' i64, err := strconv.ParseInt(str, 10, 64)') - .concat(' if err != nil {') - .concat(' log.Fatal(err)') - .concat(' }') - .concat(' return i64') - .concat('}') - .join('\n')); - return `parseInt64(${arg})`; - default: - return `${arg}` - } - } - DateSymbolTemplate: &DateSymbolTemplate !!js/function > - () => 'time.Date' - DateSymbolArgsTemplate: &DateSymbolArgsTemplate !!js/function > - (lhs, date, isString) => { - if (date === null) - return `time.Now()`; - - const dateStr = [ - date.getUTCFullYear(), - date.getUTCMonth() + 1, - date.getUTCDate(), - date.getUTCHours(), - date.getUTCMinutes(), - date.getUTCSeconds(), - '0', - 'time.UTC' - ].join(', '); - - return `${lhs}(${dateStr})` - } + const dateStr = [ + date.getUTCFullYear(), + date.getUTCMonth() + 1, + date.getUTCDate(), + date.getUTCHours(), + date.getUTCMinutes(), + date.getUTCSeconds(), + '0', + 'time.UTC' + ].join(', '); - ############################################# - # Object Attributes/Methods # - # # - # These're variables or functions called on # - # instantiated objects. For example, # - # ObjectId().isValid() or Timestamp().t # - # # - # They follow the same pattern with the - # *Template/*ArgsTemplates: usually no args # - # to the Template and lhs plus any original # - # arguments to the ArgsTemplate. # - # # - ############################################# - CodeCodeTemplate: &CodeCodeTemplate !!js/function > - (lhs) => `${lhs}.Code` - CodeCodeArgsTemplate: &CodeCodeArgsTemplate null - CodeScopeTemplate: &CodeScopeTemplate !!js/function > - (lhs) => lhs - CodeScopeArgsTemplate: &CodeScopeArgsTemplate null - ObjectIdToStringTemplate: &ObjectIdToStringTemplate !!js/function > - (lhs) => `${lhs}.String()` - ObjectIdToStringArgsTemplate: &ObjectIdToStringArgsTemplate !!js/function > - () => '' - ObjectIdEqualsTemplate: &ObjectIdEqualsTemplate !!js/function > - () => '' - ObjectIdEqualsArgsTemplate: &ObjectIdEqualsArgsTemplate !!js/function > - (arg1, arg2) => `${arg1} == ${arg2}` - ObjectIdGetTimestampTemplate: &ObjectIdGetTimestampTemplate !!js/function > - (lhs) => `${lhs}.Timestamp()` - ObjectIdGetTimestampArgsTemplate: &ObjectIdGetTimestampArgsTemplate !!js/function > - () => '' - ObjectIdIsValidTemplate: &ObjectIdIsValidTemplate !!js/function > - () => `primitive.IsValidObjectID` - ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate null - BinaryValueTemplate: &BinaryValueTemplate null - BinaryValueArgsTemplate: &BinaryValueArgsTemplate null - BinaryLengthTemplate: &BinaryLengthTemplate null - BinaryLengthArgsTemplate: &BinaryLengthArgsTemplate null - BinaryToStringTemplate: &BinaryToStringTemplate null - BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate null - BinarySubtypeTemplate: &BinarySubtypeTemplate null - BinarySubtypeArgsTemplate: &BinarySubtypeArgsTemplate null - DBRefGetDBTemplate: &DBRefGetDBTemplate null - DBRefGetCollectionTemplate: &DBRefGetCollectionTemplate null - DBRefGetIdTemplate: &DBRefGetIdTemplate null - DBRefGetDBArgsTemplate: &DBRefGetDBArgsTemplate null - DBRefGetCollectionArgsTemplate: &DBRefGetCollectionArgsTemplate null - DBRefGetIdArgsTemplate: &DBRefGetIdArgsTemplate null - DBRefToStringTemplate: &DBRefToStringTemplate null - DBRefToStringArgsTemplate: &DBRefToStringArgsTemplate null - DoubleValueOfTemplate: &DoubleValueOfTemplate null - DoubleValueOfArgsTemplate: &DoubleValueOfArgsTemplate null - Int32ValueOfTemplate: &Int32ValueOfTemplate null - Int32ValueOfArgsTemplate: &Int32ValueOfArgsTemplate null - Int32ToStringTemplate: &Int32ToStringTemplate null - Int32ToStringArgsTemplate: &Int32ToStringArgsTemplate null - LongEqualsTemplate: &LongEqualsTemplate !!js/function > - (lhs) => `${lhs} == ` - LongEqualsArgsTemplate: &LongEqualsArgsTemplate !!js/function > - (_, arg) => arg - LongToStringTemplate: &LongToStringTemplate !!js/function > - (lhs) => `strconv.Itoa(${lhs})` - LongToStringArgsTemplate: &LongToStringArgsTemplate !!js/function > - () => '' - LongToIntTemplate: &LongToIntTemplate !!js/function > - (lhs) => `int(${lhs})` - LongToIntArgsTemplate: &LongToIntArgsTemplate !!js/function > - () => '' - LongValueOfTemplate: &LongValueOfTemplate null - LongValueOfArgsTemplate: &LongValueOfArgsTemplate null - LongToNumberTemplate: &LongToNumberTemplate !!js/function > - (lhs) => `float64(${lhs})` - LongToNumberArgsTemplate: &LongToNumberArgsTemplate !!js/function > - (arg) => '' - LongAddTemplate: &LongAddTemplate !!js/function > - (lhs) => `${lhs} + ` - LongAddArgsTemplate: &LongAddArgsTemplate !!js/function > - (_, args) => args - LongSubtractTemplate: &LongSubtractTemplate !!js/function > - (lhs) => `${lhs} - ` - LongSubtractArgsTemplate: &LongSubtractArgsTemplate !!js/function > - (_, arg) => arg - LongMultiplyTemplate: &LongMultiplyTemplate !!js/function > - (lhs) => `${lhs} * ` - LongMultiplyArgsTemplate: &LongMultiplyArgsTemplate !!js/function > - (_, arg) => arg - LongDivTemplate: &LongDivTemplate !!js/function > - (lhs) => `${lhs} / ` - LongDivArgsTemplate: &LongDivArgsTemplate !!js/function > - (_, arg) => arg - LongModuloTemplate: &LongModuloTemplate !!js/function > - (lhs) => `${lhs} % ` - LongModuloArgsTemplate: &LongModuloArgsTemplate !!js/function > - (_, arg) => arg - LongAndTemplate: &LongAndTemplate !!js/function > - (lhs) => `${lhs} & ` - LongAndArgsTemplate: &LongAndArgsTemplate !!js/function > - (_, arg) => arg - LongOrTemplate: &LongOrTemplate !!js/function > - (lhs) => `${lhs} | ` - LongOrArgsTemplate: &LongOrArgsTemplate !!js/function > - (_, arg) => arg - LongXorTemplate: &LongXorTemplate !!js/function > - (lhs) => `${lhs} ^ ` - LongXorArgsTemplate: &LongXorArgsTemplate !!js/function > - (_, arg) => arg - LongShiftLeftTemplate: &LongShiftLeftTemplate !!js/function > - (lhs) => `${lhs} << ` - LongShiftLeftArgsTemplate: &LongShiftLeftArgsTemplate !!js/function > - (_, rhs) => rhs - LongShiftRightTemplate: &LongShiftRightTemplate !!js/function > - (lhs) => `${lhs} >> ` - LongShiftRightArgsTemplate: &LongShiftRightArgsTemplate !!js/function > - (_, rhs) => rhs - LongCompareTemplate: &LongCompareTemplate !!js/function > - (lhs) => `${lhs} - ` - LongCompareArgsTemplate: &LongCompareArgsTemplate !!js/function > - (_, rhs) => rhs - LongIsOddTemplate: &LongIsOddTemplate !!js/function > - (arg) => `${arg} % 2 == 1` - LongIsOddArgsTemplate: &LongIsOddArgsTemplate !!js/function > - () => '' - LongIsZeroTemplate: &LongIsZeroTemplate !!js/function > - (arg) => `${arg} == int64(0)` - LongIsZeroArgsTemplate: &LongIsZeroArgsTemplate !!js/function > - () => '' - LongIsNegativeTemplate: &LongIsNegativeTemplate !!js/function > - (arg) => `${arg} < int64(0)` - LongIsNegativeArgsTemplate: &LongIsNegativeArgsTemplate !!js/function > - () => '' - LongNegateTemplate: &LongNegateTemplate !!js/function > - () => '-' - LongNegateArgsTemplate: &LongNegateArgsTemplate !!js/function > - (lhs) => lhs - LongNotTemplate: &LongNotTemplate !!js/function > - () => '^' - LongNotArgsTemplate: &LongNotArgsTemplate !!js/function > - (lhs) => lhs - LongNotEqualsTemplate: &LongNotEqualsTemplate !!js/function > - (lhs) => `${lhs} != ` - LongNotEqualsArgsTemplate: &LongNotEqualsArgsTemplate !!js/function > - (_, rhs) => rhs - LongGreaterThanTemplate: &LongGreaterThanTemplate !!js/function > - (lhs) => `${lhs} > ` - LongGreaterThanArgsTemplate: &LongGreaterThanArgsTemplate !!js/function > - (_, rhs) => rhs - LongGreaterThanOrEqualTemplate: &LongGreaterThanOrEqualTemplate !!js/function > - (lhs) => `${lhs} >= ` - LongGreaterThanOrEqualArgsTemplate: &LongGreaterThanOrEqualArgsTemplate !!js/function > - (_, rhs) => rhs - LongLessThanTemplate: &LongLessThanTemplate !!js/function > - (lhs) => `${lhs} < ` - LongLessThanArgsTemplate: &LongLessThanArgsTemplate !!js/function > - (_, rhs) => rhs - LongLessThanOrEqualTemplate: &LongLessThanOrEqualTemplate !!js/function > - (lhs) => `${lhs} <= ` - LongLessThanOrEqualArgsTemplate: &LongLessThanOrEqualArgsTemplate !!js/function > - (_, rhs) => rhs - LongFloatApproxTemplate: &LongFloatApproxTemplate !!js/function > - (arg) => `float64(${arg})` - LongTopTemplate: &LongTopTemplate !!js/function > - (arg) => `${arg} >> 32` - LongBottomTemplate: &LongBottomTemplate !!js/function > - (arg) => `${arg} & 0x0000ffff` - TimestampToStringTemplate: &TimestampToStringTemplate !!js/function > - (lhs) => `time.Unix(${lhs}.T, 0).String` - TimestampToStringArgsTemplate: &TimestampToStringArgsTemplate null - () => '()' - TimestampEqualsTemplate: &TimestampEqualsTemplate !!js/function > - (lhs) => `${lhs}.Equal` - TimestampEqualsArgsTemplate: &TimestampEqualsArgsTemplate !!js/function > - (_, rhs) => `(${rhs})` - TimestampGetLowBitsTemplate: &TimestampGetLowBitsTemplate !!js/function > - (lhs) => `${lhs}.T` - TimestampGetLowBitsArgsTemplate: &TimestampGetLowBitsArgsTemplate !!js/function > - () => '' - TimestampGetHighBitsTemplate: &TimestampGetHighBitsTemplate !!js/function > - (lhs) => `${lhs}.I` - TimestampGetHighBitsArgsTemplate: &TimestampGetHighBitsArgsTemplate !!js/function > - () => '' - TimestampTTemplate: &TimestampTTemplate !!js/function > - (lhs) => `${lhs}.T` - TimestampITemplate: &TimestampITemplate !!js/function > - (lhs) => `${lhs}.I` - TimestampAsDateTemplate: &TimestampAsDateTemplate !!js/function > - (lhs) => `time.Unix(${lhs}.T, 0)` - TimestampAsDateArgsTemplate: &TimestampAsDateArgsTemplate !!js/function > - () => '' - TimestampCompareTemplate: &TimestampCompareTemplate !!js/function > - () => 'primitive.CompareTimestamp' - TimestampCompareArgsTemplate: &TimestampCompareArgsTemplate !!js/function > - (lhs, rhs) => `(${lhs}, ${rhs})` - TimestampNotEqualsTemplate: &TimestampNotEqualsTemplate !!js/function > - (lhs) => `!${lhs}.Equal` - TimestampNotEqualsArgsTemplate: &TimestampNotEqualsArgsTemplate !!js/function > - (_, rhs) => `(${rhs})` - TimestampGreaterThanTemplate: &TimestampGreaterThanTemplate !!js/function > - () => '' - TimestampGreaterThanArgsTemplate: &TimestampGreaterThanArgsTemplate !!js/function > - (lhs, rhs) => `primitive.CompareTimestamp(${lhs}, ${rhs}) == 1` - TimestampGreaterThanOrEqualTemplate: &TimestampGreaterThanOrEqualTemplate !!js/function > - () => '' - TimestampGreaterThanOrEqualArgsTemplate: &TimestampGreaterThanOrEqualArgsTemplate !!js/function > - (arg1, arg2) => `primitive.CompareTimestamp(${arg1}, ${arg2}) >= 0` - TimestampLessThanTemplate: &TimestampLessThanTemplate !!js/function > - (lhs) => '' - TimestampLessThanArgsTemplate: &TimestampLessThanArgsTemplate !!js/function > - (lhs, rhs) => `primitive.CompareTimestamp(${lhs}, ${rhs}) == -1` - TimestampLessThanOrEqualTemplate: &TimestampLessThanOrEqualTemplate !!js/function > - () => '' - TimestampLessThanOrEqualArgsTemplate: &TimestampLessThanOrEqualArgsTemplate !!js/function > - (arg1, arg2) => `primitive.CompareTimestamp(${arg1}, ${arg2}) <= 0` - SymbolValueOfTemplate: &SymbolValueOfTemplate !!js/function > - () => '' - SymbolValueOfArgsTemplate: &SymbolValueOfArgsTemplate !!js/function > - (arg) => arg - SymbolInspectTemplate: &SymbolInspectTemplate !!js/function > - () => '' - SymbolInspectArgsTemplate: &SymbolInspectArgsTemplate !!js/function > - (arg) => arg - SymbolToStringTemplate: &SymbolToStringTemplate !!js/function > - () => '' - SymbolToStringArgsTemplate: &SymbolToStringArgsTemplate !!js/function > - (lhs) => `string(${lhs})` - Decimal128ToStringTemplate: &Decimal128ToStringTemplate !!js/function > - (lhs) => `${lhs}.String()` - Decimal128ToStringArgsTemplate: &Decimal128ToStringArgsTemplate !!js/function > - () => '' - # non bson-specific - DateSymbolNowTemplate: &DateSymbolNowTemplate !!js/function > - () => 'time.Now()' - DateSymbolNowArgsTemplate: &DateSymbolNowArgsTemplate !!js/function > - () => '' - - ############################################# - # Symbol Attributes/Methods # - # # - # These're variables or functions called on # - # symbols. Also called bson-utils. # - # # - # They are basically the same thing as # - # object attributes/methods, but need to be # - # distinguished since they are separate # - # namespaces that happen to have the same # - # name which is v confusing. # - # # - # For example, ObjectId().toString() is an # - # object method, while ObjectId.fromString # - # is a symbol attribute. These are two # - # separate ObjectId related namespaces that # - # don't overlap. # - # # - ############################################# - LongSymbolMaxTemplate: &LongSymbolMaxTemplate !!js/function > - () => 'int(^uint(0) >> 1)' - LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null - LongSymbolMinTemplate: &LongSymbolMinTemplate !!js/function > - () => '-(1+int(^uint(0) >> 1))' - LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null - LongSymbolZeroTemplate: &LongSymbolZeroTemplate !!js/function > - () => 'int64(0)' - LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null - LongSymbolOneTemplate: &LongSymbolOneTemplate !!js/function > - () => 'int64(1)' - LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null - LongSymbolNegOneTemplate: &LongSymbolNegOneTemplate !!js/function > - () => 'int64(-1)' - LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null - LongSymbolFromBitsTemplate: &LongSymbolFromBitsTemplate !!js/function > - () => 'int64' - LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate null - LongSymbolFromIntTemplate: &LongSymbolFromIntTemplate !!js/function > - () => 'int64' - LongSymbolFromIntArgsTemplate: &LongSymbolFromIntArgsTemplate null - LongSymbolFromNumberTemplate: &LongSymbolFromNumberTemplate !!js/function > - () => 'int64' - LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate null - LongSymbolFromStringTemplate: &LongSymbolFromStringTemplate !!js/function > - () => '' - LongSymbolFromStringArgsTemplate: &LongSymbolFromStringArgsTemplate !!js/function > - (_, arg) => { - this.declarations.addFunc([] - .concat('var int64FromString = func(str string) int64 {') - .concat(' f64, err := strconv.Atoi(str)') - .concat(' if err != nil {') - .concat(' log.Fatal(err)') - .concat(' }') - .concat(' return f64') - .concat('}') - .join('\n')); - return `int64FromString(${arg})`; - } - Decimal128SymbolFromStringTemplate: &Decimal128SymbolFromStringTemplate !!js/function > - () => '' - Decimal128SymbolFromStringArgsTemplate: &Decimal128SymbolFromStringArgsTemplate !!js/function > - (_, arg) => { - this.declarations.addFunc([] - .concat('var parseDecimal128 = func(str string) primitive.Decimal128 {') - .concat(' d128, err := primitive.ParseDecimal128(str)') - .concat(' if err != nil {') - .concat(' log.Fatal(err)') - .concat(' }') - .concat(' return d128') - .concat('}') - .join('\n')); - return `parseDecimal128(${arg})`; - } - ObjectIdCreateFromHexStringTemplate: &ObjectIdCreateFromHexStringTemplate !!js/function > - () => '' - ObjectIdCreateFromHexStringArgsTemplate: &ObjectIdCreateFromHexStringArgsTemplate !!js/function > - (_, arg) => { - this.declarations.addFunc([] - .concat('var objectIDFromHex = func(hex string) primitive.ObjectID {') - .concat(` objectID, err := primitive.ObjectIDFromHex(hex)`) - .concat(' if err != nil {') - .concat(' log.Fatal(err)') - .concat(' }') - .concat(' return objectID') - .concat('}') - .join('\n')); - return `objectIDFromHex(${arg})` - } - ObjectIdCreateFromTimeTemplate: &ObjectIdCreateFromTimeTemplate !!js/function > - () => 'primitive.NewObjectIDFromTimestamp' - ObjectIdCreateFromTimeArgsTemplate: &ObjectIdCreateFromTimeArgsTemplate !!js/function > - (_, arg, isNumber) => isNumber ? `(time.Unix(${arg}, int64(0)))` : `(${arg})` - # non bson-specific would go here, but there aren't any atm. - - ############################################# - # Imports # - # # - # Each type has a 'code' that is consistent # - # between languages. The import templates # - # for each code generate the required # - # statement for each type. No args. # - # # - # The ImportTemplate collects everything # - # into one statement. # - # # - ############################################# - ImportTemplate: &ImportTemplate !!js/function > - (args) => { - const imports = Object.values(args).flat() - const driverImports = args.driver || []; - delete args['driver']; - - const flattenedArgs = Array.from(new Set([...driverImports, ...imports])).sort(); - const universal = []; - const all = universal - .concat(flattenedArgs) - .map((i) => ` "${i}"`); - return [] - .concat('import (') - .concat(all.join('\n')) - .concat(')') - .join('\n'); - } - DriverImportTemplate: &DriverImportTemplate !!js/function > - () => { - return [ - "go.mongodb.org/mongo-driver/mongo", - "go.mongodb.org/mongo-driver/mongo/options", - "context", - "log" - ] - } - 0ImportTemplate: &0ImportTemplate null - 1ImportTemplate: &1ImportTemplate null - 2ImportTemplate: &2ImportTemplate null - 3ImportTemplate: &3ImportTemplate null - 4ImportTemplate: &4ImportTemplate null - 5ImportTemplate: &5ImportTemplate null - 6ImportTemplate: &6ImportTemplate null - 7ImportTemplate: &7ImportTemplate null - 8ImportTemplate: &8ImportTemplate !!js/function > - (args) => ['go.mongodb.org/mongo-driver/bson/primitive'] - 9ImportTemplate: &9ImportTemplate null - 10ImportTemplate: &10ImportTemplate !!js/function > - () => ['go.mongodb.org/mongo-driver/bson'] - 11ImportTemplate: &11ImportTemplate null - 12ImportTemplate: &12ImportTemplate null - 100ImportTemplate: &100ImportTemplate !!js/function > - (args) => ['go.mongodb.org/mongo-driver/bson/primitive'] - 101ImportTemplate: &101ImportTemplate !!js/function > - (args) => ['go.mongodb.org/mongo-driver/bson/primitive', 'log'] - 102ImportTemplate: &102ImportTemplate null - 103ImportTemplate: &103ImportTemplate null - 104ImportTemplate: &104ImportTemplate !!js/function > - (args) => ['log', 'strconv'] - 105ImportTemplate: &105ImportTemplate !!js/function > - (args) => ['log', 'strconv'] - 106ImportTemplate: &106ImportTemplate !!js/function > - (args) => ['log', 'strconv'] - 107ImportTemplate: &107ImportTemplate !!js/function > - (args) => ['go.mongodb.org/mongo-driver/bson/primitive'] - 108ImportTemplate: &108ImportTemplate !!js/function > - (args) => ['go.mongodb.org/mongo-driver/bson/primitive'] - 109ImportTemplate: &109ImportTemplate !!js/function > - (args) => ['go.mongodb.org/mongo-driver/bson/primitive'] - 110ImportTemplate: &110ImportTemplate !!js/function > - (args) => ['go.mongodb.org/mongo-driver/bson/primitive'] - 111ImportTemplate: &111ImportTemplate !!js/function > - (args) => ['go.mongodb.org/mongo-driver/bson/primitive'] - 112ImportTemplate: &112ImportTemplate !!js/function > - (args) => ['go.mongodb.org/mongo-driver/bson/primitive', 'log'] - 113ImportTemplate: &113ImportTemplate null - 114ImportTemplate: &114ImportTemplate null - 200ImportTemplate: &200ImportTemplate !!js/function > - (args) => ['time.Time'] - 201ImportTemplate: &201ImportTemplate null - 300ImportTemplate: &300ImportTemplate null - 301ImportTemplate: &301ImportTemplate null - 302ImportTemplate: &302ImportTemplate null - 303ImportTemplate: &303ImportTemplate null - 304ImportTemplate: &304ImportTemplate null - 305ImportTemplate: &305ImportTemplate null - 306ImportTemplate: &306ImportTemplate null + return `${lhs}(${dateStr})` + } + + ############################################# + # Object Attributes/Methods # + # # + # These're variables or functions called on # + # instantiated objects. For example, # + # ObjectId().isValid() or Timestamp().t # + # # + # They follow the same pattern with the + # *Template/*ArgsTemplates: usually no args # + # to the Template and lhs plus any original # + # arguments to the ArgsTemplate. # + # # + ############################################# + CodeCodeTemplate: !!js/function &CodeCodeTemplate > + (lhs) => `${lhs}.Code` + CodeCodeArgsTemplate: &CodeCodeArgsTemplate null + CodeScopeTemplate: !!js/function &CodeScopeTemplate > + (lhs) => lhs + CodeScopeArgsTemplate: &CodeScopeArgsTemplate null + ObjectIdToStringTemplate: !!js/function &ObjectIdToStringTemplate > + (lhs) => `${lhs}.String()` + ObjectIdToStringArgsTemplate: !!js/function &ObjectIdToStringArgsTemplate > + () => '' + ObjectIdEqualsTemplate: !!js/function &ObjectIdEqualsTemplate > + () => '' + ObjectIdEqualsArgsTemplate: !!js/function &ObjectIdEqualsArgsTemplate > + (arg1, arg2) => `${arg1} == ${arg2}` + ObjectIdGetTimestampTemplate: !!js/function &ObjectIdGetTimestampTemplate > + (lhs) => `${lhs}.Timestamp()` + ObjectIdGetTimestampArgsTemplate: + !!js/function &ObjectIdGetTimestampArgsTemplate > + () => '' + ObjectIdIsValidTemplate: !!js/function &ObjectIdIsValidTemplate > + () => `primitive.IsValidObjectID` + ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate null + BinaryValueTemplate: &BinaryValueTemplate null + BinaryValueArgsTemplate: &BinaryValueArgsTemplate null + BinaryLengthTemplate: &BinaryLengthTemplate null + BinaryLengthArgsTemplate: &BinaryLengthArgsTemplate null + BinaryToStringTemplate: &BinaryToStringTemplate null + BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate null + BinarySubtypeTemplate: &BinarySubtypeTemplate null + BinarySubtypeArgsTemplate: &BinarySubtypeArgsTemplate null + DBRefGetDBTemplate: &DBRefGetDBTemplate null + DBRefGetCollectionTemplate: &DBRefGetCollectionTemplate null + DBRefGetIdTemplate: &DBRefGetIdTemplate null + DBRefGetDBArgsTemplate: &DBRefGetDBArgsTemplate null + DBRefGetCollectionArgsTemplate: &DBRefGetCollectionArgsTemplate null + DBRefGetIdArgsTemplate: &DBRefGetIdArgsTemplate null + DBRefToStringTemplate: &DBRefToStringTemplate null + DBRefToStringArgsTemplate: &DBRefToStringArgsTemplate null + DoubleValueOfTemplate: &DoubleValueOfTemplate null + DoubleValueOfArgsTemplate: &DoubleValueOfArgsTemplate null + Int32ValueOfTemplate: &Int32ValueOfTemplate null + Int32ValueOfArgsTemplate: &Int32ValueOfArgsTemplate null + Int32ToStringTemplate: &Int32ToStringTemplate null + Int32ToStringArgsTemplate: &Int32ToStringArgsTemplate null + LongEqualsTemplate: !!js/function &LongEqualsTemplate > + (lhs) => `${lhs} == ` + LongEqualsArgsTemplate: !!js/function &LongEqualsArgsTemplate > + (_, arg) => arg + LongToStringTemplate: !!js/function &LongToStringTemplate > + (lhs) => `strconv.Itoa(${lhs})` + LongToStringArgsTemplate: !!js/function &LongToStringArgsTemplate > + () => '' + LongToIntTemplate: !!js/function &LongToIntTemplate > + (lhs) => `int(${lhs})` + LongToIntArgsTemplate: !!js/function &LongToIntArgsTemplate > + () => '' + LongValueOfTemplate: &LongValueOfTemplate null + LongValueOfArgsTemplate: &LongValueOfArgsTemplate null + LongToNumberTemplate: !!js/function &LongToNumberTemplate > + (lhs) => `float64(${lhs})` + LongToNumberArgsTemplate: !!js/function &LongToNumberArgsTemplate > + (arg) => '' + LongAddTemplate: !!js/function &LongAddTemplate > + (lhs) => `${lhs} + ` + LongAddArgsTemplate: !!js/function &LongAddArgsTemplate > + (_, args) => args + LongSubtractTemplate: !!js/function &LongSubtractTemplate > + (lhs) => `${lhs} - ` + LongSubtractArgsTemplate: !!js/function &LongSubtractArgsTemplate > + (_, arg) => arg + LongMultiplyTemplate: !!js/function &LongMultiplyTemplate > + (lhs) => `${lhs} * ` + LongMultiplyArgsTemplate: !!js/function &LongMultiplyArgsTemplate > + (_, arg) => arg + LongDivTemplate: !!js/function &LongDivTemplate > + (lhs) => `${lhs} / ` + LongDivArgsTemplate: !!js/function &LongDivArgsTemplate > + (_, arg) => arg + LongModuloTemplate: !!js/function &LongModuloTemplate > + (lhs) => `${lhs} % ` + LongModuloArgsTemplate: !!js/function &LongModuloArgsTemplate > + (_, arg) => arg + LongAndTemplate: !!js/function &LongAndTemplate > + (lhs) => `${lhs} & ` + LongAndArgsTemplate: !!js/function &LongAndArgsTemplate > + (_, arg) => arg + LongOrTemplate: !!js/function &LongOrTemplate > + (lhs) => `${lhs} | ` + LongOrArgsTemplate: !!js/function &LongOrArgsTemplate > + (_, arg) => arg + LongXorTemplate: !!js/function &LongXorTemplate > + (lhs) => `${lhs} ^ ` + LongXorArgsTemplate: !!js/function &LongXorArgsTemplate > + (_, arg) => arg + LongShiftLeftTemplate: !!js/function &LongShiftLeftTemplate > + (lhs) => `${lhs} << ` + LongShiftLeftArgsTemplate: !!js/function &LongShiftLeftArgsTemplate > + (_, rhs) => rhs + LongShiftRightTemplate: !!js/function &LongShiftRightTemplate > + (lhs) => `${lhs} >> ` + LongShiftRightArgsTemplate: !!js/function &LongShiftRightArgsTemplate > + (_, rhs) => rhs + LongCompareTemplate: !!js/function &LongCompareTemplate > + (lhs) => `${lhs} - ` + LongCompareArgsTemplate: !!js/function &LongCompareArgsTemplate > + (_, rhs) => rhs + LongIsOddTemplate: !!js/function &LongIsOddTemplate > + (arg) => `${arg} % 2 == 1` + LongIsOddArgsTemplate: !!js/function &LongIsOddArgsTemplate > + () => '' + LongIsZeroTemplate: !!js/function &LongIsZeroTemplate > + (arg) => `${arg} == int64(0)` + LongIsZeroArgsTemplate: !!js/function &LongIsZeroArgsTemplate > + () => '' + LongIsNegativeTemplate: !!js/function &LongIsNegativeTemplate > + (arg) => `${arg} < int64(0)` + LongIsNegativeArgsTemplate: !!js/function &LongIsNegativeArgsTemplate > + () => '' + LongNegateTemplate: !!js/function &LongNegateTemplate > + () => '-' + LongNegateArgsTemplate: !!js/function &LongNegateArgsTemplate > + (lhs) => lhs + LongNotTemplate: !!js/function &LongNotTemplate > + () => '^' + LongNotArgsTemplate: !!js/function &LongNotArgsTemplate > + (lhs) => lhs + LongNotEqualsTemplate: !!js/function &LongNotEqualsTemplate > + (lhs) => `${lhs} != ` + LongNotEqualsArgsTemplate: !!js/function &LongNotEqualsArgsTemplate > + (_, rhs) => rhs + LongGreaterThanTemplate: !!js/function &LongGreaterThanTemplate > + (lhs) => `${lhs} > ` + LongGreaterThanArgsTemplate: !!js/function &LongGreaterThanArgsTemplate > + (_, rhs) => rhs + LongGreaterThanOrEqualTemplate: + !!js/function &LongGreaterThanOrEqualTemplate > + (lhs) => `${lhs} >= ` + LongGreaterThanOrEqualArgsTemplate: + !!js/function &LongGreaterThanOrEqualArgsTemplate > + (_, rhs) => rhs + LongLessThanTemplate: !!js/function &LongLessThanTemplate > + (lhs) => `${lhs} < ` + LongLessThanArgsTemplate: !!js/function &LongLessThanArgsTemplate > + (_, rhs) => rhs + LongLessThanOrEqualTemplate: !!js/function &LongLessThanOrEqualTemplate > + (lhs) => `${lhs} <= ` + LongLessThanOrEqualArgsTemplate: + !!js/function &LongLessThanOrEqualArgsTemplate > + (_, rhs) => rhs + LongFloatApproxTemplate: !!js/function &LongFloatApproxTemplate > + (arg) => `float64(${arg})` + LongTopTemplate: !!js/function &LongTopTemplate > + (arg) => `${arg} >> 32` + LongBottomTemplate: !!js/function &LongBottomTemplate > + (arg) => `${arg} & 0x0000ffff` + TimestampToStringTemplate: !!js/function &TimestampToStringTemplate > + (lhs) => `time.Unix(${lhs}.T, 0).String` + TimestampToStringArgsTemplate: &TimestampToStringArgsTemplate null + () => '()' + TimestampEqualsTemplate: !!js/function &TimestampEqualsTemplate > + (lhs) => `${lhs}.Equal` + TimestampEqualsArgsTemplate: !!js/function &TimestampEqualsArgsTemplate > + (_, rhs) => `(${rhs})` + TimestampGetLowBitsTemplate: !!js/function &TimestampGetLowBitsTemplate > + (lhs) => `${lhs}.T` + TimestampGetLowBitsArgsTemplate: + !!js/function &TimestampGetLowBitsArgsTemplate > + () => '' + TimestampGetHighBitsTemplate: !!js/function &TimestampGetHighBitsTemplate > + (lhs) => `${lhs}.I` + TimestampGetHighBitsArgsTemplate: + !!js/function &TimestampGetHighBitsArgsTemplate > + () => '' + TimestampTTemplate: !!js/function &TimestampTTemplate > + (lhs) => `${lhs}.T` + TimestampITemplate: !!js/function &TimestampITemplate > + (lhs) => `${lhs}.I` + TimestampAsDateTemplate: !!js/function &TimestampAsDateTemplate > + (lhs) => `time.Unix(${lhs}.T, 0)` + TimestampAsDateArgsTemplate: !!js/function &TimestampAsDateArgsTemplate > + () => '' + TimestampCompareTemplate: !!js/function &TimestampCompareTemplate > + () => 'primitive.CompareTimestamp' + TimestampCompareArgsTemplate: !!js/function &TimestampCompareArgsTemplate > + (lhs, rhs) => `(${lhs}, ${rhs})` + TimestampNotEqualsTemplate: !!js/function &TimestampNotEqualsTemplate > + (lhs) => `!${lhs}.Equal` + TimestampNotEqualsArgsTemplate: + !!js/function &TimestampNotEqualsArgsTemplate > + (_, rhs) => `(${rhs})` + TimestampGreaterThanTemplate: !!js/function &TimestampGreaterThanTemplate > + () => '' + TimestampGreaterThanArgsTemplate: + !!js/function &TimestampGreaterThanArgsTemplate > + (lhs, rhs) => `primitive.CompareTimestamp(${lhs}, ${rhs}) == 1` + TimestampGreaterThanOrEqualTemplate: + !!js/function &TimestampGreaterThanOrEqualTemplate > + () => '' + TimestampGreaterThanOrEqualArgsTemplate: + !!js/function &TimestampGreaterThanOrEqualArgsTemplate > + (arg1, arg2) => `primitive.CompareTimestamp(${arg1}, ${arg2}) >= 0` + TimestampLessThanTemplate: !!js/function &TimestampLessThanTemplate > + (lhs) => '' + TimestampLessThanArgsTemplate: !!js/function &TimestampLessThanArgsTemplate > + (lhs, rhs) => `primitive.CompareTimestamp(${lhs}, ${rhs}) == -1` + TimestampLessThanOrEqualTemplate: + !!js/function &TimestampLessThanOrEqualTemplate > + () => '' + TimestampLessThanOrEqualArgsTemplate: + !!js/function &TimestampLessThanOrEqualArgsTemplate > + (arg1, arg2) => `primitive.CompareTimestamp(${arg1}, ${arg2}) <= 0` + SymbolValueOfTemplate: !!js/function &SymbolValueOfTemplate > + () => '' + SymbolValueOfArgsTemplate: !!js/function &SymbolValueOfArgsTemplate > + (arg) => arg + SymbolInspectTemplate: !!js/function &SymbolInspectTemplate > + () => '' + SymbolInspectArgsTemplate: !!js/function &SymbolInspectArgsTemplate > + (arg) => arg + SymbolToStringTemplate: !!js/function &SymbolToStringTemplate > + () => '' + SymbolToStringArgsTemplate: !!js/function &SymbolToStringArgsTemplate > + (lhs) => `string(${lhs})` + Decimal128ToStringTemplate: !!js/function &Decimal128ToStringTemplate > + (lhs) => `${lhs}.String()` + Decimal128ToStringArgsTemplate: + !!js/function &Decimal128ToStringArgsTemplate > + () => '' + # non bson-specific + DateSymbolNowTemplate: !!js/function &DateSymbolNowTemplate > + () => 'time.Now()' + DateSymbolNowArgsTemplate: !!js/function &DateSymbolNowArgsTemplate > + () => '' + + ############################################# + # Symbol Attributes/Methods # + # # + # These're variables or functions called on # + # symbols. Also called bson-utils. # + # # + # They are basically the same thing as # + # object attributes/methods, but need to be # + # distinguished since they are separate # + # namespaces that happen to have the same # + # name which is v confusing. # + # # + # For example, ObjectId().toString() is an # + # object method, while ObjectId.fromString # + # is a symbol attribute. These are two # + # separate ObjectId related namespaces that # + # don't overlap. # + # # + ############################################# + LongSymbolMaxTemplate: !!js/function &LongSymbolMaxTemplate > + () => 'int(^uint(0) >> 1)' + LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null + LongSymbolMinTemplate: !!js/function &LongSymbolMinTemplate > + () => '-(1+int(^uint(0) >> 1))' + LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null + LongSymbolZeroTemplate: !!js/function &LongSymbolZeroTemplate > + () => 'int64(0)' + LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null + LongSymbolOneTemplate: !!js/function &LongSymbolOneTemplate > + () => 'int64(1)' + LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null + LongSymbolNegOneTemplate: !!js/function &LongSymbolNegOneTemplate > + () => 'int64(-1)' + LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null + LongSymbolFromBitsTemplate: !!js/function &LongSymbolFromBitsTemplate > + () => 'int64' + LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate null + LongSymbolFromIntTemplate: !!js/function &LongSymbolFromIntTemplate > + () => 'int64' + LongSymbolFromIntArgsTemplate: &LongSymbolFromIntArgsTemplate null + LongSymbolFromNumberTemplate: !!js/function &LongSymbolFromNumberTemplate > + () => 'int64' + LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate null + LongSymbolFromStringTemplate: !!js/function &LongSymbolFromStringTemplate > + () => '' + LongSymbolFromStringArgsTemplate: + !!js/function &LongSymbolFromStringArgsTemplate > + (_, arg) => { + this.declarations.addFunc([] + .concat('var int64FromString = func(str string) int64 {') + .concat(' f64, err := strconv.Atoi(str)') + .concat(' if err != nil {') + .concat(' log.Fatal(err)') + .concat(' }') + .concat(' return f64') + .concat('}') + .join('\n')); + return `int64FromString(${arg})`; + } + Decimal128SymbolFromStringTemplate: + !!js/function &Decimal128SymbolFromStringTemplate > + () => '' + Decimal128SymbolFromStringArgsTemplate: + !!js/function &Decimal128SymbolFromStringArgsTemplate > + (_, arg) => { + this.declarations.addFunc([] + .concat('var parseDecimal128 = func(str string) primitive.Decimal128 {') + .concat(' d128, err := primitive.ParseDecimal128(str)') + .concat(' if err != nil {') + .concat(' log.Fatal(err)') + .concat(' }') + .concat(' return d128') + .concat('}') + .join('\n')); + return `parseDecimal128(${arg})`; + } + ObjectIdCreateFromHexStringTemplate: + !!js/function &ObjectIdCreateFromHexStringTemplate > + () => '' + ObjectIdCreateFromHexStringArgsTemplate: + !!js/function &ObjectIdCreateFromHexStringArgsTemplate > + (_, arg) => { + this.declarations.addFunc([] + .concat('var objectIDFromHex = func(hex string) primitive.ObjectID {') + .concat(` objectID, err := primitive.ObjectIDFromHex(hex)`) + .concat(' if err != nil {') + .concat(' log.Fatal(err)') + .concat(' }') + .concat(' return objectID') + .concat('}') + .join('\n')); + return `objectIDFromHex(${arg})` + } + ObjectIdCreateFromTimeTemplate: + !!js/function &ObjectIdCreateFromTimeTemplate > + () => 'primitive.NewObjectIDFromTimestamp' + ObjectIdCreateFromTimeArgsTemplate: + !!js/function &ObjectIdCreateFromTimeArgsTemplate > + (_, arg, isNumber) => isNumber ? `(time.Unix(${arg}, int64(0)))` : `(${arg})` + # non bson-specific would go here, but there aren't any atm. + ############################################# + # Imports # + # # + # Each type has a 'code' that is consistent # + # between languages. The import templates # + # for each code generate the required # + # statement for each type. No args. # + # # + # The ImportTemplate collects everything # + # into one statement. # + # # + ############################################# + ImportTemplate: !!js/function &ImportTemplate > + (args) => { + const imports = Object.values(args).flat() + const driverImports = args.driver || []; + delete args['driver']; + + const flattenedArgs = Array.from(new Set([...driverImports, ...imports])).sort(); + const universal = []; + const all = universal + .concat(flattenedArgs) + .map((i) => ` "${i}"`); + return [] + .concat('import (') + .concat(all.join('\n')) + .concat(')') + .join('\n'); + } + DriverImportTemplate: !!js/function &DriverImportTemplate > + () => { + return [ + "go.mongodb.org/mongo-driver/mongo", + "go.mongodb.org/mongo-driver/mongo/options", + "context", + "log" + ] + } + 0ImportTemplate: &0ImportTemplate null + 1ImportTemplate: &1ImportTemplate null + 2ImportTemplate: &2ImportTemplate null + 3ImportTemplate: &3ImportTemplate null + 4ImportTemplate: &4ImportTemplate null + 5ImportTemplate: &5ImportTemplate null + 6ImportTemplate: &6ImportTemplate null + 7ImportTemplate: &7ImportTemplate null + 8ImportTemplate: !!js/function &8ImportTemplate > + (args) => ['go.mongodb.org/mongo-driver/bson/primitive'] + 9ImportTemplate: &9ImportTemplate null + 10ImportTemplate: !!js/function &10ImportTemplate > + () => ['go.mongodb.org/mongo-driver/bson'] + 11ImportTemplate: &11ImportTemplate null + 12ImportTemplate: &12ImportTemplate null + 100ImportTemplate: !!js/function &100ImportTemplate > + (args) => ['go.mongodb.org/mongo-driver/bson/primitive'] + 101ImportTemplate: !!js/function &101ImportTemplate > + (args) => ['go.mongodb.org/mongo-driver/bson/primitive', 'log'] + 102ImportTemplate: &102ImportTemplate null + 103ImportTemplate: &103ImportTemplate null + 104ImportTemplate: !!js/function &104ImportTemplate > + (args) => ['log', 'strconv'] + 105ImportTemplate: !!js/function &105ImportTemplate > + (args) => ['log', 'strconv'] + 106ImportTemplate: !!js/function &106ImportTemplate > + (args) => ['log', 'strconv'] + 107ImportTemplate: !!js/function &107ImportTemplate > + (args) => ['go.mongodb.org/mongo-driver/bson/primitive'] + 108ImportTemplate: !!js/function &108ImportTemplate > + (args) => ['go.mongodb.org/mongo-driver/bson/primitive'] + 109ImportTemplate: !!js/function &109ImportTemplate > + (args) => ['go.mongodb.org/mongo-driver/bson/primitive'] + 110ImportTemplate: !!js/function &110ImportTemplate > + (args) => ['go.mongodb.org/mongo-driver/bson/primitive'] + 111ImportTemplate: !!js/function &111ImportTemplate > + (args) => ['go.mongodb.org/mongo-driver/bson/primitive'] + 112ImportTemplate: !!js/function &112ImportTemplate > + (args) => ['go.mongodb.org/mongo-driver/bson/primitive', 'log'] + 113ImportTemplate: &113ImportTemplate null + 114ImportTemplate: &114ImportTemplate null + 200ImportTemplate: !!js/function &200ImportTemplate > + (args) => ['time.Time'] + 201ImportTemplate: &201ImportTemplate null + 300ImportTemplate: &300ImportTemplate null + 301ImportTemplate: &301ImportTemplate null + 302ImportTemplate: &302ImportTemplate null + 303ImportTemplate: &303ImportTemplate null + 304ImportTemplate: &304ImportTemplate null + 305ImportTemplate: &305ImportTemplate null + 306ImportTemplate: &306ImportTemplate null diff --git a/packages/bson-transpilers/symbols/java/templates.yaml b/packages/bson-transpilers/symbols/java/templates.yaml index 17b31ac48c3..80ea93241bb 100644 --- a/packages/bson-transpilers/symbols/java/templates.yaml +++ b/packages/bson-transpilers/symbols/java/templates.yaml @@ -1,1148 +1,1175 @@ # Java Templates Templates: - # Misc - RegexFlags: &RegexFlags - i: 'i' - m: 'm' - u: 'u' - y: '' - g: '' - BSONRegexFlags: &BSONRegexFlags - i: 'i' - m: 'm' - x: 'x' - s: 's' - l: 'l' - u: 'u' - # Syntax - DriverTemplate: &DriverTemplate !!js/function > - (spec) => { - const comment = `/* - * Requires the MongoDB Java Driver. - * https://mongodb.github.io/mongo-java-driver`; + # Misc + RegexFlags: &RegexFlags + i: 'i' + m: 'm' + u: 'u' + y: '' + g: '' + BSONRegexFlags: &BSONRegexFlags + i: 'i' + m: 'm' + x: 'x' + s: 's' + l: 'l' + u: 'u' + # Syntax + DriverTemplate: !!js/function &DriverTemplate > + (spec) => { + const comment = `/* + * Requires the MongoDB Java Driver. + * https://mongodb.github.io/mongo-java-driver`; - const str = spec.options.uri; - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - const uri = `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - const exportMode = spec.exportMode; - delete spec.exportMode; - - const connection = `MongoClient mongoClient = new MongoClient( - new MongoClientURI( - ${uri} - ) - ); - - MongoDatabase database = mongoClient.getDatabase("${spec.options.database}"); - - MongoCollection collection = database.getCollection("${spec.options.collection}");`; - - let driverMethod; - let driverResult; - switch (exportMode) { - case 'Delete Query': - driverMethod = 'deleteMany'; - driverResult = 'DeleteResult'; - break; - case 'Update Query': - driverMethod = 'updateMany'; - driverResult = 'UpdateResult'; - break; - default: - driverMethod = 'find'; - driverResult = 'FindIterable'; + const str = spec.options.uri; + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); } - if ('aggregation' in spec) { - return `${comment}\n */\n\n${connection} + const uri = `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; + const exportMode = spec.exportMode; + delete spec.exportMode; - AggregateIterable result = collection.aggregate(${spec.aggregation});`; - } + const connection = `MongoClient mongoClient = new MongoClient( + new MongoClientURI( + ${uri} + ) + ); - let warning = ''; - const defs = Object.keys(spec).reduce((s, k) => { - if (!spec[k]) return s; - if (k === 'options' || k === 'maxTimeMS' || k === 'skip' || k === 'limit' || k === 'collation') return s; - if (s === '') return `Bson ${k} = ${spec[k]};`; - return `${s} - Bson ${k} = ${spec[k]};`; - }, ''); + MongoDatabase database = mongoClient.getDatabase("${spec.options.database}"); - const result = Object.keys(spec).reduce((s, k) => { - switch (k) { - case 'options': - case 'filter': - return s; - case 'maxTimeMS': - return `${s} - .maxTime(${spec[k]}, TimeUnit.MICROSECONDS)`; - case 'skip': - case 'limit': - return `${s} - .${k}((int)${spec[k]})`; - case 'project': - return `${s} - .projection(project)`; - case 'collation': - warning = '\n *\n * Warning: translating collation to Java not yet supported, so will be ignored'; - return s; - case 'exportMode': - return s; - default: - if (!spec[k]) return s; - return `${s} - .${k}(${k})`; - } - }, `${driverResult} result = collection.${driverMethod}(filter)`); + MongoCollection collection = database.getCollection("${spec.options.collection}");`; - return `${comment}${warning}\n */\n\n${defs} + let driverMethod; + let driverResult; + switch (exportMode) { + case 'Delete Query': + driverMethod = 'deleteMany'; + driverResult = 'DeleteResult'; + break; + case 'Update Query': + driverMethod = 'updateMany'; + driverResult = 'UpdateResult'; + break; + default: + driverMethod = 'find'; + driverResult = 'FindIterable'; + } + if ('aggregation' in spec) { + return `${comment}\n */\n\n${connection} - ${connection} - - ${result};`; - } - EqualitySyntaxTemplate: &EqualitySyntaxTemplate !!js/function > - (lhs, op, rhs) => { - if (op.includes('!') || op.includes('not')) { - return `${lhs} != ${rhs}`; - } else if (op === '==' || op === '===' || op === 'is') { - return `${lhs} == ${rhs}`; - } - return `${lhs} ${op} ${rhs}`; + AggregateIterable result = collection.aggregate(${spec.aggregation});`; } - InSyntaxTemplate: &InSyntaxTemplate !!js/function > - (lhs, op, rhs) => { - let str = ''; - if (op.includes('!') || op.includes('not')) { - str = '!'; - } - return `${str}${rhs}.contains(${lhs})` - } - AndSyntaxTemplate: &AndSyntaxTemplate !!js/function > - (args) => { - return args.join(' && '); - } - OrSyntaxTemplate: &OrSyntaxTemplate !!js/function > - (args) => { - return args.join(' || '); - } - NotSyntaxTemplate: &NotSyntaxTemplate !!js/function > - (arg) => { - return `!${arg}`; - } - UnarySyntaxTemplate: &UnarySyntaxTemplate null - BinarySyntaxTemplate: &BinarySyntaxTemplate !!js/function > - (args) => { - return args.reduce((s, op, i, arr) => { - if (i % 2 === 0) { + + let warning = ''; + const defs = Object.keys(spec).reduce((s, k) => { + if (!spec[k]) return s; + if (k === 'options' || k === 'maxTimeMS' || k === 'skip' || k === 'limit' || k === 'collation') return s; + if (s === '') return `Bson ${k} = ${spec[k]};`; + return `${s} + Bson ${k} = ${spec[k]};`; + }, ''); + + const result = Object.keys(spec).reduce((s, k) => { + switch (k) { + case 'options': + case 'filter': return s; - } - const rhs = arr[i + 1]; - switch(op) { - case '//': - return `floor(${s})`; - case '**': - return `pow(${s}, ${rhs})`; - default: - return `${s} ${op} ${rhs}`; - } - }, args[0]); - } - ParensSyntaxTemplate: &ParensSyntaxTemplate null - EosSyntaxTemplate: &EosSyntaxTemplate null - EofSyntaxTemplate: &EofSyntaxTemplate null - NewTemplate: &NewSyntaxTemplate !!js/function > - (expr, skip, code) => { - // Add codes of classes that don't need new. - // Currently: Decimal128/NumberDecimal, Long/NumberLong, Double, Int32, Number, regex, Date - noNew = [112, 106, 104, 105, 2, 8, 200]; - if (skip || (code && noNew.indexOf(code) !== -1)) { - return expr; + case 'maxTimeMS': + return `${s} + .maxTime(${spec[k]}, TimeUnit.MICROSECONDS)`; + case 'skip': + case 'limit': + return `${s} + .${k}((int)${spec[k]})`; + case 'project': + return `${s} + .projection(project)`; + case 'collation': + warning = '\n *\n * Warning: translating collation to Java not yet supported, so will be ignored'; + return s; + case 'exportMode': + return s; + default: + if (!spec[k]) return s; + return `${s} + .${k}(${k})`; } - return `new ${expr}`; - } - # BSON Object Type templates - CodeTypeTemplate: &CodeTypeTemplate null - StringTypeTemplate: &StringTypeTemplate !!js/function > - (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - } - RegexTypeTemplate: &RegexTypeTemplate !!js/function > - (pattern, flags) => { - flags = flags === '' ? '' : `(?${flags})`; - // Double escape characters except for slashes - const escaped = pattern.replace(/\\/, '\\\\'); + }, `${driverResult} result = collection.${driverMethod}(filter)`); - // Double-quote stringify - const str = escaped + flags; - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `Pattern.compile("${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}")`; - } - BoolTypeTemplate: &BoolTypeTemplate !!js/function > - (literal) => { - return literal.toLowerCase(); - } - IntegerTypeTemplate: &IntegerTypeTemplate null - DecimalTypeTemplate: &DecimalTypeTemplate !!js/function > - (literal, type) => { - if (type === '_integer' || type === '_long' || type === '_decimal') { - return `${literal}d`; - } - return `(double) ${literal}`; - } - LongBasicTypeTemplate: &LongBasicTypeTemplate !!js/function > - (literal, type) => { - if (type === '_integer' || type === '_long') { - return `${literal}L`; - } - return `new Long(${literal})`; - } - HexTypeTemplate: &HexTypeTemplate null # TODO - OctalTypeTemplate: &OctalTypeTemplate !!js/function > - (literal, type) => { - if ((literal.charAt(0) === '0' && literal.charAt(1) === '0') || - (literal.charAt(0) === '0' && (literal.charAt(1) === 'o' || literal.charAt(1) === 'O'))) { - return `0${literal.substr(2, literal.length - 1)}`; - } - return literal; - } - NumericTypeTemplate: &NumericTypeTemplate null - ArrayTypeTemplate: &ArrayTypeTemplate !!js/function > - (literal, depth) => { - depth++; - // TODO: figure out how to best do depth in an array and where to - // insert and indent - const indent = '\n' + ' '.repeat(depth); - // have an indent on every ', new Document' in an array not - // entirely perfect, but at least makes this more readable/also - // compiles - const arr = literal.split(', new').join(`, ${indent}new`) + return `${comment}${warning}\n */\n\n${defs} - return `Arrays.asList(${arr})`; - } - ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate null - NullTypeTemplate: &NullTypeTemplate !!js/function > - () => { - return 'new BsonNull()'; - } - UndefinedTypeTemplate: &UndefinedTypeTemplate !!js/function > - () => { - return 'new BsonUndefined()'; - } - ObjectTypeTemplate: &ObjectTypeTemplate !!js/function > - (literal, depth) => { + ${connection} - if (literal === '') { - return `new Document()`; + ${result};`; + } + EqualitySyntaxTemplate: !!js/function &EqualitySyntaxTemplate > + (lhs, op, rhs) => { + if (op.includes('!') || op.includes('not')) { + return `${lhs} != ${rhs}`; + } else if (op === '==' || op === '===' || op === 'is') { + return `${lhs} == ${rhs}`; + } + return `${lhs} ${op} ${rhs}`; + } + InSyntaxTemplate: !!js/function &InSyntaxTemplate > + (lhs, op, rhs) => { + let str = ''; + if (op.includes('!') || op.includes('not')) { + str = '!'; + } + return `${str}${rhs}.contains(${lhs})` + } + AndSyntaxTemplate: !!js/function &AndSyntaxTemplate > + (args) => { + return args.join(' && '); + } + OrSyntaxTemplate: !!js/function &OrSyntaxTemplate > + (args) => { + return args.join(' || '); + } + NotSyntaxTemplate: !!js/function &NotSyntaxTemplate > + (arg) => { + return `!${arg}`; + } + UnarySyntaxTemplate: &UnarySyntaxTemplate null + BinarySyntaxTemplate: !!js/function &BinarySyntaxTemplate > + (args) => { + return args.reduce((s, op, i, arr) => { + if (i % 2 === 0) { + return s; } - return literal; - } - ObjectTypeArgsTemplate: &ObjectTypeArgsTemplate !!js/function > - (args, depth) => { - if (args.length === 0) { - return 'new Document()'; + const rhs = arr[i + 1]; + switch(op) { + case '//': + return `floor(${s})`; + case '**': + return `pow(${s}, ${rhs})`; + default: + return `${s} ${op} ${rhs}`; } - depth++; - const indent = '\n' + ' '.repeat(depth); - const doubleStringify = (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - } - const start = `new Document(${doubleStringify(args[0][0])}, ${args[0][1]})`; - - args = args.slice(1); - const result = args.reduce((str, pair) => { - return `${str}${indent}.append(${doubleStringify(pair[0])}, ${pair[1]})`; - }, start); + }, args[0]); + } + ParensSyntaxTemplate: &ParensSyntaxTemplate null + EosSyntaxTemplate: &EosSyntaxTemplate null + EofSyntaxTemplate: &EofSyntaxTemplate null + NewTemplate: !!js/function &NewSyntaxTemplate > + (expr, skip, code) => { + // Add codes of classes that don't need new. + // Currently: Decimal128/NumberDecimal, Long/NumberLong, Double, Int32, Number, regex, Date + noNew = [112, 106, 104, 105, 2, 8, 200]; + if (skip || (code && noNew.indexOf(code) !== -1)) { + return expr; + } + return `new ${expr}`; + } + # BSON Object Type templates + CodeTypeTemplate: &CodeTypeTemplate null + StringTypeTemplate: !!js/function &StringTypeTemplate > + (str) => { + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + } + return `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; + } + RegexTypeTemplate: !!js/function &RegexTypeTemplate > + (pattern, flags) => { + flags = flags === '' ? '' : `(?${flags})`; + // Double escape characters except for slashes + const escaped = pattern.replace(/\\/, '\\\\'); - return `${result}`; - } - DoubleTypeTemplate: &DoubleTypeTemplate !!js/function > - (literal, type) => { - if (type === '_integer' || type === '_long' || type === '_decimal') { - return `${literal}d`; - } - return `(double) ${literal}`; - } - DoubleTypeArgsTemplate: &DoubleTypeArgsTemplate !!js/function > - () => { - return ''; - } - LongTypeTemplate: &LongTemplate !!js/function > - () => { - return ''; - } - LongTypeArgsTemplate: &LongSymbolArgsTemplate null - # BSON Object Method templates - ObjectIdToStringTemplate: &ObjectIdToStringTemplate !!js/function > - (lhs) => { - return `${lhs}.toHexString()`; - } - ObjectIdToStringArgsTemplate: &ObjectIdToStringArgsTemplate !!js/function > - () => { - return ''; - } - ObjectIdEqualsTemplate: &ObjectIdEqualsTemplate null - ObjectIdEqualsArgsTemplate: &ObjectIdEqualsArgsTemplate null - ObjectIdGetTimestampTemplate: &ObjectIdGetTimestampTemplate !!js/function > - (lhs) => { - return `${lhs}.getTimestamp()`; - } - ObjectIdGetTimestampArgsTemplate: &ObjectIdGetTimestampArgsTemplate !!js/function > - () => { - return ''; - } - CodeCodeTemplate: &CodeCodeTemplate !!js/function > - (lhs) => { - return `${lhs}.getCode()`; - } - CodeCodeArgsTemplate: &CodeCodeArgsTemplate null - CodeScopeTemplate: &CodeScopeTemplate !!js/function > - (lhs) => { - return `${lhs}.getScope()`; - } - CodeScopeArgsTemplate: &CodeScopeArgsTemplate null - BinaryValueTemplate: &BinaryValueTemplate !!js/function > - (lhs) => { - return `${lhs}.getData`; - } - BinaryValueArgsTemplate: &BinaryValueArgsTemplate null - BinaryLengthTemplate: &BinaryLengthTemplate null - BinaryLengthArgsTemplate: &BinaryLengthArgsTemplate null - BinaryToStringTemplate: &BinaryToStringTemplate null - BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate null - BinarySubtypeTemplate: &BinarySubtypeTemplate !!js/function > - (lhs) => { - return `${lhs}.getType()`; - } - BinarySubtypeArgsTemplate: &BinarySubtypeArgsTemplate !!js/function > - () => { - return ''; - } - DBRefGetDBTemplate: &DBRefGetDBTemplate !!js/function > - (lhs) => { - return `${lhs}.getDatabaseName()`; - } - DBRefGetDBArgsTemplate: &DBRefGetDBArgsTemplate !!js/function > - () => { - return ''; - } - DBRefGetCollectionTemplate: &DBRefGetCollectionTemplate !!js/function > - (lhs) => { - return `${lhs}.getCollectionName()`; - } - DBRefGetCollectionArgsTemplate: &DBRefGetCollectionArgsTemplate !!js/function > - () => { - return ''; - } - DBRefGetIdTemplate: &DBRefGetIdTemplate !!js/function > - (lhs) => { - return `${lhs}.getId()`; - } - DBRefGetIdArgsTemplate: &DBRefGetIdArgsTemplate !!js/function > - () => { - return ''; - } - LongEqualsTemplate: &LongEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} ==`; - } - LongEqualsArgsTemplate: &LongEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongToStringTemplate: &LongToStringTemplate !!js/function > - (lhs) => { - return lhs; - } - LongToStringArgsTemplate: &LongToStringArgsTemplate null - LongToIntTemplate: &LongToIntTemplate !!js/function > - (lhs) => { - return `(int) ${lhs}`; - } - LongToIntArgsTemplate: &LongToIntArgsTemplate !!js/function > - () => { - return ''; - } - LongToNumberTemplate: &LongToNumberTemplate !!js/function > - (lhs) => { - return `(double) ${lhs}`; - } - LongToNumberArgsTemplate: &LongToNumberArgsTemplate !!js/function > - () => { - return ''; - } - LongAddTemplate: &LongAddTemplate !!js/function > - (lhs) => { - return `${lhs} +`; - } - LongAddArgsTemplate: &LongAddArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongSubtractTemplate: &LongSubtractTemplate !!js/function > - (arg) => { - return `${arg} -`; - } - LongSubtractArgsTemplate: &LongSubtractArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongMultiplyTemplate: &LongMultiplyTemplate !!js/function > - (arg) => { - return `${arg} *`; - } - LongMultiplyArgsTemplate: &LongMultiplyArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongDivTemplate: &LongDivTemplate !!js/function > - (lhs) => { - return `${lhs} /`; - } - LongDivArgsTemplate: &LongDivArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongModuloTemplate: &LongModuloTemplate !!js/function > - (lhs) => { - return `${lhs} %`; - } - LongModuloArgsTemplate: &LongModuloArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongAndTemplate: &LongAndTemplate !!js/function > - (lhs) => { - return `${lhs} &`; - } - LongAndArgsTemplate: &LongAndArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongOrTemplate: &LongOrTemplate !!js/function > - (lhs) => { - return `${lhs} |`; - } - LongOrArgsTemplate: &LongOrArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongXorTemplate: &LongXorTemplate !!js/function > - (lhs) => { - return `${lhs} ^`; - } - LongXorArgsTemplate: &LongXorArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongShiftLeftTemplate: &LongShiftLeftTemplate !!js/function > - () => { - return 'Long.rotateLeft'; - } - LongShiftLeftArgsTemplate: &LongShiftLeftArgsTemplate !!js/function > - (lhs, arg) => { - return `(${lhs}, ${arg})`; - } - LongShiftRightTemplate: &LongShiftRightTemplate !!js/function > - () => { - return 'Long.rotateRight'; - } - LongShiftRightArgsTemplate: &LongShiftRightArgsTemplate !!js/function > - (lhs, arg) => { - return `(${lhs}, ${arg})`; - } - LongCompareTemplate: &LongCompareTemplate !!js/function > - (lhs) => { - return `${lhs} -`; - } - LongCompareArgsTemplate: &LongCompareArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongIsOddTemplate: &LongIsOddTemplate !!js/function > - (lhs) => { - return `(${lhs} % 2) == 1`; - } - LongIsOddArgsTemplate: &LongIsOddArgsTemplate !!js/function > - () => { - return ''; - } - LongIsZeroTemplate: &LongIsZeroTemplate !!js/function > - (lhs) => { - return `${lhs} == 0`; - } - LongIsZeroArgsTemplate: &LongIsZeroArgsTemplate !!js/function > - () => { - return ''; - } - LongIsNegativeTemplate: &LongIsNegativeTemplate !!js/function > - (lhs) => { - return `${lhs} < 0`; - } - LongIsNegativeArgsTemplate: &LongIsNegativeArgsTemplate !!js/function > - () => { - return ''; - } - LongNegateTemplate: &LongNegateTemplate !!js/function > - () => { - return '-'; - } - LongNegateArgsTemplate: &LongNegateArgsTemplate !!js/function > - (lhs) => { - return lhs; - } - LongNotTemplate: &LongNotTemplate !!js/function > - () => { - return '~'; - } - LongNotArgsTemplate: &LongNotArgsTemplate !!js/function > - (lhs) => { - return lhs; - } - LongNotEqualsTemplate: &LongNotEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} !=`; - } - LongNotEqualsArgsTemplate: &LongNotEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongGreaterThanTemplate: &LongGreaterThanTemplate !!js/function > - (lhs) => { - return `${lhs} >`; - } - LongGreaterThanArgsTemplate: &LongGreaterThanArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongGreaterThanOrEqualTemplate: &LongGreaterThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} >=`; - } - LongGreaterThanOrEqualArgsTemplate: &LongGreaterThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongLessThanTemplate: &LongLessThanTemplate !!js/function > - (lhs) => { - return `${lhs} <`; - } - LongLessThanArgsTemplate: &LongLessThanArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongLessThanOrEqualTemplate: &LongLessThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} <=`; - } - LongLessThanOrEqualArgsTemplate: &LongLessThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongFloatApproxTemplate: &LongFloatApproxTemplate !!js/function > - (lhs) => { - return `(float) ${lhs}`; - } - LongTopTemplate: &LongTopTemplate !!js/function > - (lhs) => { - return `${lhs} >> 32`; - } - LongBottomTemplate: &LongBottomTemplate !!js/function > - (lhs) => { - return `${lhs} & 0x0000ffff`; - } - TimestampToStringTemplate: &TimestampToStringTemplate null - TimestampToStringArgsTemplate: &TimestampToStringArgsTemplate null - TimestampEqualsTemplate: &TimestampEqualsTemplate null - TimestampEqualsArgsTemplate: &TimestampEqualsArgsTemplate null - TimestampGetLowBitsTemplate: &TimestampGetLowBitsTemplate !!js/function > - (lhs) => { - return `${lhs}.getTime`; - } - TimestampGetLowBitsArgsTemplate: &TimestampGetLowBitsArgsTemplate null - TimestampGetHighBitsTemplate: &TimestampGetHighBitsTemplate !!js/function > - (lhs) => { - return `${lhs}.getInc`; - } - TimestampGetHighBitsArgsTemplate: &TimestampGetHighBitsArgsTemplate null - TimestampTTemplate: &TimestampTTemplate !!js/function > - (lhs) => { - return `${lhs}.getTime()`; - } - TimestampITemplate: &TimestampITemplate !!js/function > - (lhs) => { - return `${lhs}.getInc()`; - } - TimestampAsDateTemplate: &TimestampAsDateTemplate !!js/function > - (lhs) => { - return `new java.util.Date(${lhs}.getTime())`; - } - TimestampAsDateArgsTemplate: &TimestampAsDateArgsTemplate !!js/function > - () => { - return ''; - } - TimestampCompareTemplate: &TimestampCompareTemplate !!js/function > - (lhs) => { - return `${lhs}.compareTo`; - } - TimestampCompareArgsTemplate: &TimestampCompareArgsTemplate null - TimestampNotEqualsTemplate: &TimestampNotEqualsTemplate !!js/function > - (lhs) => { - return `${lhs}.compareTo`; - } - TimestampNotEqualsArgsTemplate: &TimestampNotEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return `(${arg}) != 0`; - } - TimestampGreaterThanTemplate: &TimestampGreaterThanTemplate !!js/function > - (lhs) => { - return `${lhs}.compareTo`; - } - TimestampGreaterThanArgsTemplate: &TimestampGreaterThanArgsTemplate !!js/function > - (lhs, arg) => { - return `(${arg}) > 0`; - } - TimestampGreaterThanOrEqualTemplate: &TimestampGreaterThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs}.compareTo`; - } - TimestampGreaterThanOrEqualArgsTemplate: &TimestampGreaterThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return `(${arg}) >= 0`; - } - TimestampLessThanTemplate: &TimestampLessThanTemplate !!js/function > - (lhs) => { - return `${lhs}.compareTo`; - } - TimestampLessThanArgsTemplate: &TimestampLessThanArgsTemplate !!js/function > - (lhs, arg) => { - return `(${arg}) < 0`; - } - TimestampLessThanOrEqualTemplate: &TimestampLessThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs}.compareTo`; - } - TimestampLessThanOrEqualArgsTemplate: &TimestampLessThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return `(${arg}) <= 0`; - } - SymbolValueOfTemplate: &SymbolValueOfTemplate !!js/function > - (lhs) => { - return `${lhs}.getSymbol`; - } - SymbolValueOfArgsTemplate: &SymbolValueOfArgsTemplate null - SymbolInspectTemplate: &SymbolInspectTemplate !!js/function > - (lhs) => { - return `${lhs}.getSymbol`; - } - SymbolInspectArgsTemplate: &SymbolInspectArgsTemplate null - SymbolToStringTemplate: &SymbolToStringTemplate !!js/function > - (lhs) => { - return `${lhs}.toString`; - } - SymbolToStringArgsTemplate: &SymbolToStringArgsTemplate null - # Symbol Templates - CodeSymbolTemplate: &CodeSymbolTemplate !!js/function > # Also has process method - () => { - return 'Code'; - } - CodeSymbolArgsTemplate: &CodeSymbolArgsTemplate !!js/function > # Also has process method - (lhs, code, scope) => { - // Double quote stringify - let newStr = code === undefined ? '' : code; - const str = newStr; - if ( + // Double-quote stringify + const str = escaped + flags; + let newStr = str; + if ( (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - code = `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - return (scope === undefined) ? `(${code})` : `WithScope(${code}, ${scope})`; - } - ObjectIdSymbolTemplate: &ObjectIdSymbolTemplate null - ObjectIdSymbolArgsTemplate: &ObjectIdSymbolArgsTemplate !!js/function > - (lhs, str) => { - if (!str || str.length === 0) { - return '()'; - } - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `("${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}")`; + newStr = str.substr(1, str.length - 2); } - BinarySymbolTemplate: &BinarySymbolTemplate null - BinarySymbolArgsTemplate: &BinarySymbolArgsTemplate !!js/function > - (lhs, bytes, type) => { - const str = bytes; + return `Pattern.compile("${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}")`; + } + BoolTypeTemplate: !!js/function &BoolTypeTemplate > + (literal) => { + return literal.toLowerCase(); + } + IntegerTypeTemplate: &IntegerTypeTemplate null + DecimalTypeTemplate: !!js/function &DecimalTypeTemplate > + (literal, type) => { + if (type === '_integer' || type === '_long' || type === '_decimal') { + return `${literal}d`; + } + return `(double) ${literal}`; + } + LongBasicTypeTemplate: !!js/function &LongBasicTypeTemplate > + (literal, type) => { + if (type === '_integer' || type === '_long') { + return `${literal}L`; + } + return `new Long(${literal})`; + } + HexTypeTemplate: &HexTypeTemplate null # TODO + OctalTypeTemplate: !!js/function &OctalTypeTemplate > + (literal, type) => { + if ((literal.charAt(0) === '0' && literal.charAt(1) === '0') || + (literal.charAt(0) === '0' && (literal.charAt(1) === 'o' || literal.charAt(1) === 'O'))) { + return `0${literal.substr(2, literal.length - 1)}`; + } + return literal; + } + NumericTypeTemplate: &NumericTypeTemplate null + ArrayTypeTemplate: !!js/function &ArrayTypeTemplate > + (literal, depth) => { + depth++; + // TODO: figure out how to best do depth in an array and where to + // insert and indent + const indent = '\n' + ' '.repeat(depth); + // have an indent on every ', new Document' in an array not + // entirely perfect, but at least makes this more readable/also + // compiles + const arr = literal.split(', new').join(`, ${indent}new`) + + return `Arrays.asList(${arr})`; + } + ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate null + NullTypeTemplate: !!js/function &NullTypeTemplate > + () => { + return 'new BsonNull()'; + } + UndefinedTypeTemplate: !!js/function &UndefinedTypeTemplate > + () => { + return 'new BsonUndefined()'; + } + ObjectTypeTemplate: !!js/function &ObjectTypeTemplate > + (literal, depth) => { + + if (literal === '') { + return `new Document()`; + } + return literal; + } + ObjectTypeArgsTemplate: !!js/function &ObjectTypeArgsTemplate > + (args, depth) => { + if (args.length === 0) { + return 'new Document()'; + } + depth++; + const indent = '\n' + ' '.repeat(depth); + const doubleStringify = (str) => { let newStr = str; if ( (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { newStr = str.substr(1, str.length - 2); } - bytes = `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - - if (type === null) { - return `(${bytes}.getBytes("UTF-8"))`; - } - return `(${type}, ${bytes}.getBytes("UTF-8"))`; - } - BinarySymbolSubtypeDefaultTemplate: &BinarySymbolSubtypeDefaultTemplate !!js/function > - () => { - return 'BsonBinarySubType.BINARY'; - } - BinarySymbolSubtypeFunctionTemplate: &BinarySymbolSubtypeFunctionTemplate !!js/function > - () => { - return 'BsonBinarySubType.FUNCTION'; - } - BinarySymbolSubtypeByteArrayTemplate: &BinarySymbolSubtypeByteArrayTemplate !!js/function > - () => { - return 'BsonBinarySubType.BINARY'; - } - BinarySymbolSubtypeUuidOldTemplate: &BinarySymbolSubtypeUuidOldTemplate !!js/function > - () => { - return 'BsonBinarySubType.UUID_LEGACY'; - } - BinarySymbolSubtypeUuidTemplate: &BinarySymbolSubtypeUuidTemplate !!js/function > - () => { - return 'BsonBinarySubType.UUID_STANDARD'; - } - BinarySymbolSubtypeMd5Template: &BinarySymbolSubtypeMd5Template !!js/function > - () => { - return 'BsonBinarySubType.MD5'; - } - BinarySymbolSubtypeUserDefinedTemplate: &BinarySymbolSubtypeUserDefinedTemplate !!js/function > - () => { - return 'BsonBinarySubType.USER_DEFINED'; - } - DBRefSymbolTemplate: &DBRefSymbolTemplate null - DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate !!js/function > - (lhs, coll, id, db) => { - const dbstr = db === undefined ? '' : `${db}, `; - return `(${dbstr}${coll}, ${id})`; - } - DoubleSymbolTemplate: &DoubleSymbolTemplate !!js/function > - () => { - return ''; - } - DoubleSymbolArgsTemplate: &DoubleSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - if (type === '_string') { - return `Double.parseDouble(${arg})`; - } - if (type === '_integer' || type === '_long' || type === '_double' || type === '_decimal') { - if (arg.includes('L') || arg.includes('d')) { - return `${arg.substr(0, arg.length - 1)}d`; - } - return `${arg}d`; - } - return `(double) ${arg}`; + return `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; } - Int32SymbolTemplate: &Int32SymbolTemplate !!js/function > - () => { - return ''; + const start = `new Document(${doubleStringify(args[0][0])}, ${args[0][1]})`; + + args = args.slice(1); + const result = args.reduce((str, pair) => { + return `${str}${indent}.append(${doubleStringify(pair[0])}, ${pair[1]})`; + }, start); + + return `${result}`; + } + DoubleTypeTemplate: !!js/function &DoubleTypeTemplate > + (literal, type) => { + if (type === '_integer' || type === '_long' || type === '_decimal') { + return `${literal}d`; + } + return `(double) ${literal}`; + } + DoubleTypeArgsTemplate: !!js/function &DoubleTypeArgsTemplate > + () => { + return ''; + } + LongTypeTemplate: !!js/function &LongTemplate > + () => { + return ''; + } + LongTypeArgsTemplate: &LongSymbolArgsTemplate null + # BSON Object Method templates + ObjectIdToStringTemplate: !!js/function &ObjectIdToStringTemplate > + (lhs) => { + return `${lhs}.toHexString()`; + } + ObjectIdToStringArgsTemplate: !!js/function &ObjectIdToStringArgsTemplate > + () => { + return ''; + } + ObjectIdEqualsTemplate: &ObjectIdEqualsTemplate null + ObjectIdEqualsArgsTemplate: &ObjectIdEqualsArgsTemplate null + ObjectIdGetTimestampTemplate: !!js/function &ObjectIdGetTimestampTemplate > + (lhs) => { + return `${lhs}.getTimestamp()`; + } + ObjectIdGetTimestampArgsTemplate: + !!js/function &ObjectIdGetTimestampArgsTemplate > + () => { + return ''; + } + CodeCodeTemplate: !!js/function &CodeCodeTemplate > + (lhs) => { + return `${lhs}.getCode()`; + } + CodeCodeArgsTemplate: &CodeCodeArgsTemplate null + CodeScopeTemplate: !!js/function &CodeScopeTemplate > + (lhs) => { + return `${lhs}.getScope()`; + } + CodeScopeArgsTemplate: &CodeScopeArgsTemplate null + BinaryValueTemplate: !!js/function &BinaryValueTemplate > + (lhs) => { + return `${lhs}.getData`; + } + BinaryValueArgsTemplate: &BinaryValueArgsTemplate null + BinaryLengthTemplate: &BinaryLengthTemplate null + BinaryLengthArgsTemplate: &BinaryLengthArgsTemplate null + BinaryToStringTemplate: &BinaryToStringTemplate null + BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate null + BinarySubtypeTemplate: !!js/function &BinarySubtypeTemplate > + (lhs) => { + return `${lhs}.getType()`; + } + BinarySubtypeArgsTemplate: !!js/function &BinarySubtypeArgsTemplate > + () => { + return ''; + } + DBRefGetDBTemplate: !!js/function &DBRefGetDBTemplate > + (lhs) => { + return `${lhs}.getDatabaseName()`; + } + DBRefGetDBArgsTemplate: !!js/function &DBRefGetDBArgsTemplate > + () => { + return ''; + } + DBRefGetCollectionTemplate: !!js/function &DBRefGetCollectionTemplate > + (lhs) => { + return `${lhs}.getCollectionName()`; + } + DBRefGetCollectionArgsTemplate: + !!js/function &DBRefGetCollectionArgsTemplate > + () => { + return ''; + } + DBRefGetIdTemplate: !!js/function &DBRefGetIdTemplate > + (lhs) => { + return `${lhs}.getId()`; + } + DBRefGetIdArgsTemplate: !!js/function &DBRefGetIdArgsTemplate > + () => { + return ''; + } + LongEqualsTemplate: !!js/function &LongEqualsTemplate > + (lhs) => { + return `${lhs} ==`; + } + LongEqualsArgsTemplate: !!js/function &LongEqualsArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongToStringTemplate: !!js/function &LongToStringTemplate > + (lhs) => { + return lhs; + } + LongToStringArgsTemplate: &LongToStringArgsTemplate null + LongToIntTemplate: !!js/function &LongToIntTemplate > + (lhs) => { + return `(int) ${lhs}`; + } + LongToIntArgsTemplate: !!js/function &LongToIntArgsTemplate > + () => { + return ''; + } + LongToNumberTemplate: !!js/function &LongToNumberTemplate > + (lhs) => { + return `(double) ${lhs}`; + } + LongToNumberArgsTemplate: !!js/function &LongToNumberArgsTemplate > + () => { + return ''; + } + LongAddTemplate: !!js/function &LongAddTemplate > + (lhs) => { + return `${lhs} +`; + } + LongAddArgsTemplate: !!js/function &LongAddArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongSubtractTemplate: !!js/function &LongSubtractTemplate > + (arg) => { + return `${arg} -`; + } + LongSubtractArgsTemplate: !!js/function &LongSubtractArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongMultiplyTemplate: !!js/function &LongMultiplyTemplate > + (arg) => { + return `${arg} *`; + } + LongMultiplyArgsTemplate: !!js/function &LongMultiplyArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongDivTemplate: !!js/function &LongDivTemplate > + (lhs) => { + return `${lhs} /`; + } + LongDivArgsTemplate: !!js/function &LongDivArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongModuloTemplate: !!js/function &LongModuloTemplate > + (lhs) => { + return `${lhs} %`; + } + LongModuloArgsTemplate: !!js/function &LongModuloArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongAndTemplate: !!js/function &LongAndTemplate > + (lhs) => { + return `${lhs} &`; + } + LongAndArgsTemplate: !!js/function &LongAndArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongOrTemplate: !!js/function &LongOrTemplate > + (lhs) => { + return `${lhs} |`; + } + LongOrArgsTemplate: !!js/function &LongOrArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongXorTemplate: !!js/function &LongXorTemplate > + (lhs) => { + return `${lhs} ^`; + } + LongXorArgsTemplate: !!js/function &LongXorArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongShiftLeftTemplate: !!js/function &LongShiftLeftTemplate > + () => { + return 'Long.rotateLeft'; + } + LongShiftLeftArgsTemplate: !!js/function &LongShiftLeftArgsTemplate > + (lhs, arg) => { + return `(${lhs}, ${arg})`; + } + LongShiftRightTemplate: !!js/function &LongShiftRightTemplate > + () => { + return 'Long.rotateRight'; + } + LongShiftRightArgsTemplate: !!js/function &LongShiftRightArgsTemplate > + (lhs, arg) => { + return `(${lhs}, ${arg})`; + } + LongCompareTemplate: !!js/function &LongCompareTemplate > + (lhs) => { + return `${lhs} -`; + } + LongCompareArgsTemplate: !!js/function &LongCompareArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongIsOddTemplate: !!js/function &LongIsOddTemplate > + (lhs) => { + return `(${lhs} % 2) == 1`; + } + LongIsOddArgsTemplate: !!js/function &LongIsOddArgsTemplate > + () => { + return ''; + } + LongIsZeroTemplate: !!js/function &LongIsZeroTemplate > + (lhs) => { + return `${lhs} == 0`; + } + LongIsZeroArgsTemplate: !!js/function &LongIsZeroArgsTemplate > + () => { + return ''; + } + LongIsNegativeTemplate: !!js/function &LongIsNegativeTemplate > + (lhs) => { + return `${lhs} < 0`; + } + LongIsNegativeArgsTemplate: !!js/function &LongIsNegativeArgsTemplate > + () => { + return ''; + } + LongNegateTemplate: !!js/function &LongNegateTemplate > + () => { + return '-'; + } + LongNegateArgsTemplate: !!js/function &LongNegateArgsTemplate > + (lhs) => { + return lhs; + } + LongNotTemplate: !!js/function &LongNotTemplate > + () => { + return '~'; + } + LongNotArgsTemplate: !!js/function &LongNotArgsTemplate > + (lhs) => { + return lhs; + } + LongNotEqualsTemplate: !!js/function &LongNotEqualsTemplate > + (lhs) => { + return `${lhs} !=`; + } + LongNotEqualsArgsTemplate: !!js/function &LongNotEqualsArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongGreaterThanTemplate: !!js/function &LongGreaterThanTemplate > + (lhs) => { + return `${lhs} >`; + } + LongGreaterThanArgsTemplate: !!js/function &LongGreaterThanArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongGreaterThanOrEqualTemplate: + !!js/function &LongGreaterThanOrEqualTemplate > + (lhs) => { + return `${lhs} >=`; + } + LongGreaterThanOrEqualArgsTemplate: + !!js/function &LongGreaterThanOrEqualArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongLessThanTemplate: !!js/function &LongLessThanTemplate > + (lhs) => { + return `${lhs} <`; + } + LongLessThanArgsTemplate: !!js/function &LongLessThanArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongLessThanOrEqualTemplate: !!js/function &LongLessThanOrEqualTemplate > + (lhs) => { + return `${lhs} <=`; + } + LongLessThanOrEqualArgsTemplate: + !!js/function &LongLessThanOrEqualArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongFloatApproxTemplate: !!js/function &LongFloatApproxTemplate > + (lhs) => { + return `(float) ${lhs}`; + } + LongTopTemplate: !!js/function &LongTopTemplate > + (lhs) => { + return `${lhs} >> 32`; + } + LongBottomTemplate: !!js/function &LongBottomTemplate > + (lhs) => { + return `${lhs} & 0x0000ffff`; + } + TimestampToStringTemplate: &TimestampToStringTemplate null + TimestampToStringArgsTemplate: &TimestampToStringArgsTemplate null + TimestampEqualsTemplate: &TimestampEqualsTemplate null + TimestampEqualsArgsTemplate: &TimestampEqualsArgsTemplate null + TimestampGetLowBitsTemplate: !!js/function &TimestampGetLowBitsTemplate > + (lhs) => { + return `${lhs}.getTime`; + } + TimestampGetLowBitsArgsTemplate: &TimestampGetLowBitsArgsTemplate null + TimestampGetHighBitsTemplate: !!js/function &TimestampGetHighBitsTemplate > + (lhs) => { + return `${lhs}.getInc`; + } + TimestampGetHighBitsArgsTemplate: &TimestampGetHighBitsArgsTemplate null + TimestampTTemplate: !!js/function &TimestampTTemplate > + (lhs) => { + return `${lhs}.getTime()`; + } + TimestampITemplate: !!js/function &TimestampITemplate > + (lhs) => { + return `${lhs}.getInc()`; + } + TimestampAsDateTemplate: !!js/function &TimestampAsDateTemplate > + (lhs) => { + return `new java.util.Date(${lhs}.getTime())`; + } + TimestampAsDateArgsTemplate: !!js/function &TimestampAsDateArgsTemplate > + () => { + return ''; + } + TimestampCompareTemplate: !!js/function &TimestampCompareTemplate > + (lhs) => { + return `${lhs}.compareTo`; + } + TimestampCompareArgsTemplate: &TimestampCompareArgsTemplate null + TimestampNotEqualsTemplate: !!js/function &TimestampNotEqualsTemplate > + (lhs) => { + return `${lhs}.compareTo`; + } + TimestampNotEqualsArgsTemplate: + !!js/function &TimestampNotEqualsArgsTemplate > + (lhs, arg) => { + return `(${arg}) != 0`; + } + TimestampGreaterThanTemplate: !!js/function &TimestampGreaterThanTemplate > + (lhs) => { + return `${lhs}.compareTo`; + } + TimestampGreaterThanArgsTemplate: + !!js/function &TimestampGreaterThanArgsTemplate > + (lhs, arg) => { + return `(${arg}) > 0`; + } + TimestampGreaterThanOrEqualTemplate: + !!js/function &TimestampGreaterThanOrEqualTemplate > + (lhs) => { + return `${lhs}.compareTo`; + } + TimestampGreaterThanOrEqualArgsTemplate: + !!js/function &TimestampGreaterThanOrEqualArgsTemplate > + (lhs, arg) => { + return `(${arg}) >= 0`; + } + TimestampLessThanTemplate: !!js/function &TimestampLessThanTemplate > + (lhs) => { + return `${lhs}.compareTo`; + } + TimestampLessThanArgsTemplate: !!js/function &TimestampLessThanArgsTemplate > + (lhs, arg) => { + return `(${arg}) < 0`; + } + TimestampLessThanOrEqualTemplate: + !!js/function &TimestampLessThanOrEqualTemplate > + (lhs) => { + return `${lhs}.compareTo`; + } + TimestampLessThanOrEqualArgsTemplate: + !!js/function &TimestampLessThanOrEqualArgsTemplate > + (lhs, arg) => { + return `(${arg}) <= 0`; + } + SymbolValueOfTemplate: !!js/function &SymbolValueOfTemplate > + (lhs) => { + return `${lhs}.getSymbol`; + } + SymbolValueOfArgsTemplate: &SymbolValueOfArgsTemplate null + SymbolInspectTemplate: !!js/function &SymbolInspectTemplate > + (lhs) => { + return `${lhs}.getSymbol`; + } + SymbolInspectArgsTemplate: &SymbolInspectArgsTemplate null + SymbolToStringTemplate: !!js/function &SymbolToStringTemplate > + (lhs) => { + return `${lhs}.toString`; + } + SymbolToStringArgsTemplate: &SymbolToStringArgsTemplate null + # Symbol Templates + CodeSymbolTemplate: + !!js/function &CodeSymbolTemplate > # Also has process method + () => { + return 'Code'; + } + CodeSymbolArgsTemplate: + !!js/function &CodeSymbolArgsTemplate > # Also has process method + (lhs, code, scope) => { + // Double quote stringify + let newStr = code === undefined ? '' : code; + const str = newStr; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + } + code = `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; + return (scope === undefined) ? `(${code})` : `WithScope(${code}, ${scope})`; + } + ObjectIdSymbolTemplate: &ObjectIdSymbolTemplate null + ObjectIdSymbolArgsTemplate: !!js/function &ObjectIdSymbolArgsTemplate > + (lhs, str) => { + if (!str || str.length === 0) { + return '()'; + } + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + } + return `("${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}")`; + } + BinarySymbolTemplate: &BinarySymbolTemplate null + BinarySymbolArgsTemplate: !!js/function &BinarySymbolArgsTemplate > + (lhs, bytes, type) => { + const str = bytes; + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); } - Int32SymbolArgsTemplate: &Int32SymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - if (type === '_string') { - return `Integer.parseInt(${arg})`; - } - if (type === '_integer' || type === '_long') { - if (arg.includes('L') || arg.includes('d')) { - return arg.substr(0, arg.length - 1); - } - return arg; + bytes = `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; + + if (type === null) { + return `(${bytes}.getBytes("UTF-8"))`; + } + return `(${type}, ${bytes}.getBytes("UTF-8"))`; + } + BinarySymbolSubtypeDefaultTemplate: + !!js/function &BinarySymbolSubtypeDefaultTemplate > + () => { + return 'BsonBinarySubType.BINARY'; + } + BinarySymbolSubtypeFunctionTemplate: + !!js/function &BinarySymbolSubtypeFunctionTemplate > + () => { + return 'BsonBinarySubType.FUNCTION'; + } + BinarySymbolSubtypeByteArrayTemplate: + !!js/function &BinarySymbolSubtypeByteArrayTemplate > + () => { + return 'BsonBinarySubType.BINARY'; + } + BinarySymbolSubtypeUuidOldTemplate: + !!js/function &BinarySymbolSubtypeUuidOldTemplate > + () => { + return 'BsonBinarySubType.UUID_LEGACY'; + } + BinarySymbolSubtypeUuidTemplate: + !!js/function &BinarySymbolSubtypeUuidTemplate > + () => { + return 'BsonBinarySubType.UUID_STANDARD'; + } + BinarySymbolSubtypeMd5Template: + !!js/function &BinarySymbolSubtypeMd5Template > + () => { + return 'BsonBinarySubType.MD5'; + } + BinarySymbolSubtypeUserDefinedTemplate: + !!js/function &BinarySymbolSubtypeUserDefinedTemplate > + () => { + return 'BsonBinarySubType.USER_DEFINED'; + } + DBRefSymbolTemplate: &DBRefSymbolTemplate null + DBRefSymbolArgsTemplate: !!js/function &DBRefSymbolArgsTemplate > + (lhs, coll, id, db) => { + const dbstr = db === undefined ? '' : `${db}, `; + return `(${dbstr}${coll}, ${id})`; + } + DoubleSymbolTemplate: !!js/function &DoubleSymbolTemplate > + () => { + return ''; + } + DoubleSymbolArgsTemplate: !!js/function &DoubleSymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + if (type === '_string') { + return `Double.parseDouble(${arg})`; + } + if (type === '_integer' || type === '_long' || type === '_double' || type === '_decimal') { + if (arg.includes('L') || arg.includes('d')) { + return `${arg.substr(0, arg.length - 1)}d`; } - return `(int) ${arg}`; - } - LongSymbolTemplate: &LongSymbolTemplate !!js/function > - () => { - return ''; - } - LongSymbolArgsTemplate: &LongSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - if (type === '_string') { - return `Long.parseLong(${arg})`; + return `${arg}d`; + } + return `(double) ${arg}`; + } + Int32SymbolTemplate: !!js/function &Int32SymbolTemplate > + () => { + return ''; + } + Int32SymbolArgsTemplate: !!js/function &Int32SymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + if (type === '_string') { + return `Integer.parseInt(${arg})`; + } + if (type === '_integer' || type === '_long') { + if (arg.includes('L') || arg.includes('d')) { + return arg.substr(0, arg.length - 1); } - if (type === '_integer' || type === '_long') { - if (arg.includes('d') || arg.includes('L')) { - return `${arg.substr(0, arg.length - 1)}L`; - } - return `${arg}L`; + return arg; + } + return `(int) ${arg}`; + } + LongSymbolTemplate: !!js/function &LongSymbolTemplate > + () => { + return ''; + } + LongSymbolArgsTemplate: !!js/function &LongSymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + if (type === '_string') { + return `Long.parseLong(${arg})`; + } + if (type === '_integer' || type === '_long') { + if (arg.includes('d') || arg.includes('L')) { + return `${arg.substr(0, arg.length - 1)}L`; } - return `new Long(${arg})`; - } - LongSymbolMaxTemplate: &LongSymbolMaxTemplate !!js/function > - () => { - return 'Long.MAX_VALUE'; - } - LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null - LongSymbolMinTemplate: &LongSymbolMinTemplate !!js/function > - () => { - return 'Long.MIN_VALUE'; - } - LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null - LongSymbolZeroTemplate: &LongSymbolZeroTemplate !!js/function > - () => { - return '0L'; - } - LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null - LongSymbolOneTemplate: &LongSymbolOneTemplate !!js/function > - () => { - return '1L'; - } - LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null - LongSymbolNegOneTemplate: &LongSymbolNegOneTemplate !!js/function > - () => { - return '-1L'; - } - LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null - LongSymbolFromBitsTemplate: &LongSymbolFromBitsTemplate !!js/function > # Also has process method - () => { - return ''; - } - LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate null - LongSymbolFromIntTemplate: &LongSymbolFromIntTemplate !!js/function > - () => { - return ''; - } - LongSymbolFromIntArgsTemplate: &LongSymbolFromIntArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}L`; - } - LongSymbolFromNumberTemplate: &LongSymbolFromNumberTemplate !!js/function > - () => { - return ''; - } - LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate !!js/function > - (lhs, arg) => { return `${arg}L`; } - LongSymbolFromStringTemplate: &LongSymbolFromStringTemplate !!js/function > - (lhs) => { - return `Long.parseLong`; - } - LongSymbolFromStringArgsTemplate: &LongSymbolFromStringArgsTemplate null - MinKeySymbolTemplate: &MinKeySymbolTemplate null - MinKeySymbolArgsTemplate: &MinKeySymbolArgsTemplate null - MaxKeySymbolTemplate: &MaxKeySymbolTemplate null - MaxKeySymbolArgsTemplate: &MaxKeySymbolArgsTemplate null - TimestampSymbolTemplate: &TimestampSymbolTemplate !!js/function > - () => { - return 'BSONTimestamp'; - } - TimestampSymbolArgsTemplate: &TimestampSymbolArgsTemplate !!js/function > - (lhs, arg1, arg2) => { - return `(${arg1 === undefined ? 0 : arg1}, ${arg2 === undefined ? 0 : arg2})`; - } - SymbolSymbolTemplate: &SymbolSymbolTemplate !!js/function > - () => { - return 'Symbol'; - } - SymbolSymbolArgsTemplate: &SymbolSymbolArgsTemplate null - BSONRegExpSymbolTemplate: &BSONRegExpSymbolTemplate !!js/function > - () => { - return 'BsonRegularExpression'; - } - BSONRegExpSymbolArgsTemplate: &BSONRegExpSymbolArgsTemplate !!js/function > - (lhs, pattern, flags) => { - const doubleStringify = (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - } - return `(${doubleStringify(pattern)}${flags ? ', ' + doubleStringify(flags) : ''})`; - } - Decimal128SymbolTemplate: &Decimal128SymbolTemplate !!js/function > - () => { - return 'Decimal128'; - } - Decimal128SymbolArgsTemplate: &Decimal128SymbolArgsTemplate !!js/function > - (_, str) => { // just stringify + return `new Long(${arg})`; + } + LongSymbolMaxTemplate: !!js/function &LongSymbolMaxTemplate > + () => { + return 'Long.MAX_VALUE'; + } + LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null + LongSymbolMinTemplate: !!js/function &LongSymbolMinTemplate > + () => { + return 'Long.MIN_VALUE'; + } + LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null + LongSymbolZeroTemplate: !!js/function &LongSymbolZeroTemplate > + () => { + return '0L'; + } + LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null + LongSymbolOneTemplate: !!js/function &LongSymbolOneTemplate > + () => { + return '1L'; + } + LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null + LongSymbolNegOneTemplate: !!js/function &LongSymbolNegOneTemplate > + () => { + return '-1L'; + } + LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null + LongSymbolFromBitsTemplate: + !!js/function &LongSymbolFromBitsTemplate > # Also has process method + () => { + return ''; + } + LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate null + LongSymbolFromIntTemplate: !!js/function &LongSymbolFromIntTemplate > + () => { + return ''; + } + LongSymbolFromIntArgsTemplate: !!js/function &LongSymbolFromIntArgsTemplate > + (lhs, arg) => { + return `${arg}L`; + } + LongSymbolFromNumberTemplate: !!js/function &LongSymbolFromNumberTemplate > + () => { + return ''; + } + LongSymbolFromNumberArgsTemplate: + !!js/function &LongSymbolFromNumberArgsTemplate > + (lhs, arg) => { + return `${arg}L`; + } + LongSymbolFromStringTemplate: !!js/function &LongSymbolFromStringTemplate > + (lhs) => { + return `Long.parseLong`; + } + LongSymbolFromStringArgsTemplate: &LongSymbolFromStringArgsTemplate null + MinKeySymbolTemplate: &MinKeySymbolTemplate null + MinKeySymbolArgsTemplate: &MinKeySymbolArgsTemplate null + MaxKeySymbolTemplate: &MaxKeySymbolTemplate null + MaxKeySymbolArgsTemplate: &MaxKeySymbolArgsTemplate null + TimestampSymbolTemplate: !!js/function &TimestampSymbolTemplate > + () => { + return 'BSONTimestamp'; + } + TimestampSymbolArgsTemplate: !!js/function &TimestampSymbolArgsTemplate > + (lhs, arg1, arg2) => { + return `(${arg1 === undefined ? 0 : arg1}, ${arg2 === undefined ? 0 : arg2})`; + } + SymbolSymbolTemplate: !!js/function &SymbolSymbolTemplate > + () => { + return 'Symbol'; + } + SymbolSymbolArgsTemplate: &SymbolSymbolArgsTemplate null + BSONRegExpSymbolTemplate: !!js/function &BSONRegExpSymbolTemplate > + () => { + return 'BsonRegularExpression'; + } + BSONRegExpSymbolArgsTemplate: !!js/function &BSONRegExpSymbolArgsTemplate > + (lhs, pattern, flags) => { + const doubleStringify = (str) => { let newStr = str; if ( (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { newStr = str.substr(1, str.length - 2); } - return `.parse("${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}")`; - } - Decimal128SymbolFromStringTemplate: &Decimal128SymbolFromStringTemplate !!js/function > - (lhs) => { - return `${lhs}.parse`; - } - Decimal128SymbolFromStringArgsTemplate: &Decimal128SymbolFromStringArgsTemplate null - Decimal128ToStringTemplate: &Decimal128ToStringTemplate null - Decimal128ToStringArgsTemplate: &Decimal128ToStringArgsTemplate null - # BSON Util Templates - ObjectIdCreateFromHexStringTemplate: &ObjectIdCreateFromHexStringTemplate !!js/function > - () => { - return 'new ObjectId'; - } - ObjectIdCreateFromHexStringArgsTemplate: &ObjectIdCreateFromHexStringArgsTemplate !!js/function > - (lhs, arg) => { - return `(${arg})`; - } - ObjectIdCreateFromTimeTemplate: &ObjectIdCreateFromTimeTemplate !!js/function > - () => { - return 'new ObjectId'; - } - ObjectIdCreateFromTimeArgsTemplate: &ObjectIdCreateFromTimeArgsTemplate !!js/function > - (lhs, arg, isNumber) => { - if (isNumber) { - return `(new java.util.Date(${arg.replace(/L$/, '000L')}))`; - } - return `(${arg})`; - } - ObjectIdIsValidTemplate: &ObjectIdIsValidTemplate !!js/function > - () => { - return 'ObjectId.isValid'; - } - ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate !!js/function > - (lhs, arg) => { - return `(${arg})`; - } - # JS Symbol Templates - NumberSymbolTemplate: &NumberSymbolTemplate !!js/function > - () => { - return ''; - } - NumberSymbolArgsTemplate: &NumberSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - if (type === '_string') { - return `Double.parseDouble(${arg})`; - } - if (type === '_integer' || type === '_long' || type === '_decimal') { - if (arg.includes('L') || arg.includes('d')) { - return `${arg.substr(0, arg.length - 1)}d`; - } - return `${arg}d`; - } - return `(double) ${arg}`; - } - DateSymbolTemplate: &DateSymbolTemplate !!js/function > - () => { - return 'java.util.Date'; - } - DateSymbolArgsTemplate: &DateSymbolArgsTemplate !!js/function > - (lhs, date, isString) => { - let toStr = (d) => d; - if (isString) { - toStr = (d) => `new SimpleDateFormat("EEE MMMMM dd yyyy HH:mm:ss").format(${d})`; - } - if (date === null) { - return toStr(`new ${lhs}()`); - } - return toStr(`new ${lhs}(${date.getTime()}L)`); - } - DateSymbolNowTemplate: &DateSymbolNowTemplate !!js/function > - () => { - return ''; - } - DateSymbolNowArgsTemplate: &DateSymbolNowArgsTemplate !!js/function > - () => { - return 'new java.util.Date().getTime()'; - } - RegExpSymbolTemplate: &RegExpSymbolTemplate !!js/function > - () => { - return 'Pattern'; + return `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; + } + return `(${doubleStringify(pattern)}${flags ? ', ' + doubleStringify(flags) : ''})`; + } + Decimal128SymbolTemplate: !!js/function &Decimal128SymbolTemplate > + () => { + return 'Decimal128'; + } + Decimal128SymbolArgsTemplate: !!js/function &Decimal128SymbolArgsTemplate > + (_, str) => { // just stringify + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); } - RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null - ImportTemplate: &ImportTemplate null - DriverImportTemplate: &DriverImportTemplate !!js/function > - (_, mode) => { - let imports = 'import com.mongodb.MongoClient;\n' + - 'import com.mongodb.MongoClientURI;\n' + - 'import com.mongodb.client.MongoCollection;\n' + - 'import com.mongodb.client.MongoDatabase;\n' + - 'import org.bson.conversions.Bson;\n' + - 'import java.util.concurrent.TimeUnit;\n' + - 'import org.bson.Document;\n'; - if (mode === 'Query') { - imports += 'import com.mongodb.client.FindIterable;'; - } else if (mode === 'Pipeline') { - imports += 'import com.mongodb.client.AggregateIterable;'; - } else if (mode === 'Delete Query') { - imports += 'import com.mongodb.client.result.DeleteResult;'; + return `.parse("${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}")`; + } + Decimal128SymbolFromStringTemplate: + !!js/function &Decimal128SymbolFromStringTemplate > + (lhs) => { + return `${lhs}.parse`; + } + Decimal128SymbolFromStringArgsTemplate: &Decimal128SymbolFromStringArgsTemplate null + Decimal128ToStringTemplate: &Decimal128ToStringTemplate null + Decimal128ToStringArgsTemplate: &Decimal128ToStringArgsTemplate null + # BSON Util Templates + ObjectIdCreateFromHexStringTemplate: + !!js/function &ObjectIdCreateFromHexStringTemplate > + () => { + return 'new ObjectId'; + } + ObjectIdCreateFromHexStringArgsTemplate: + !!js/function &ObjectIdCreateFromHexStringArgsTemplate > + (lhs, arg) => { + return `(${arg})`; + } + ObjectIdCreateFromTimeTemplate: + !!js/function &ObjectIdCreateFromTimeTemplate > + () => { + return 'new ObjectId'; + } + ObjectIdCreateFromTimeArgsTemplate: + !!js/function &ObjectIdCreateFromTimeArgsTemplate > + (lhs, arg, isNumber) => { + if (isNumber) { + return `(new java.util.Date(${arg.replace(/L$/, '000L')}))`; + } + return `(${arg})`; + } + ObjectIdIsValidTemplate: !!js/function &ObjectIdIsValidTemplate > + () => { + return 'ObjectId.isValid'; + } + ObjectIdIsValidArgsTemplate: !!js/function &ObjectIdIsValidArgsTemplate > + (lhs, arg) => { + return `(${arg})`; + } + # JS Symbol Templates + NumberSymbolTemplate: !!js/function &NumberSymbolTemplate > + () => { + return ''; + } + NumberSymbolArgsTemplate: !!js/function &NumberSymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + if (type === '_string') { + return `Double.parseDouble(${arg})`; + } + if (type === '_integer' || type === '_long' || type === '_decimal') { + if (arg.includes('L') || arg.includes('d')) { + return `${arg.substr(0, arg.length - 1)}d`; } - return imports; - } - 0ImportTemplate: &0ImportTemplate null - 1ImportTemplate: &1ImportTemplate null - 2ImportTemplate: &2ImportTemplate null - 3ImportTemplate: &3ImportTemplate null - 4ImportTemplate: &4ImportTemplate null - 5ImportTemplate: &5ImportTemplate null - 6ImportTemplate: &6ImportTemplate null - 7ImportTemplate: &7ImportTemplate null - 8ImportTemplate: &8ImportTemplate !!js/function > - () => { - return 'import java.util.regex.Pattern;'; - } - 9ImportTemplate: &9ImportTemplate !!js/function > - () => { - return 'import java.util.Arrays;'; - } - 10ImportTemplate: &10ImportTemplate !!js/function > - () => { - return 'import org.bson.Document;'; - } - 11ImportTemplate: &11ImportTemplate !!js/function > - () => { - return 'import org.bson.BsonNull;'; - } - 12ImportTemplate: &12ImportTemplate !!js/function > - () => { - return 'import org.bson.BsonUndefined;'; - } - 100ImportTemplate: &100ImportTemplate !!js/function > - () => { - return 'import org.bson.types.Code;'; - } - 113ImportTemplate: &113ImportTemplate !!js/function > - () => { - return 'import org.bson.types.CodeWithScope;'; - } - 101ImportTemplate: &101ImportTemplate !!js/function > - () => { - return 'import org.bson.types.ObjectId;'; - } - 102ImportTemplate: &102ImportTemplate !!js/function > - () => { - return 'import org.bson.types.Binary;'; - } - 103ImportTemplate: &103ImportTemplate !!js/function > - () => { - return 'import com.mongodb.DBRef;'; - } - 104ImportTemplate: &104ImportTemplate null - 105ImportTemplate: &105ImportTemplate null - 106ImportTemplate: &106ImportTemplate null - 107ImportTemplate: &107ImportTemplate !!js/function > - () => { - return 'import org.bson.types.MinKey;'; - } - 108ImportTemplate: &108ImportTemplate !!js/function > - () => { - return 'import org.bson.types.MaxKey;'; - } - 109ImportTemplate: &109ImportTemplate !!js/function > - () => { - return 'import org.bson.BsonRegularExpression;'; - } - 110ImportTemplate: &110ImportTemplate !!js/function > - () => { - return 'import org.bson.types.BSONTimestamp;'; - } - 111ImportTemplate: &111ImportTemplate !!js/function > - () => { - return 'import org.bson.types.Symbol;'; - } - 112ImportTemplate: &112ImportTemplate !!js/function > - () => { - return 'import org.bson.types.Decimal128;'; - } - 114ImportTemplate: &114ImportTemplate !!js/function > - () => { - return 'import org.bson.BsonBinarySubType;'; - } - 200ImportTemplate: &200ImportTemplate null - 201ImportTemplate: &201ImportTemplate !!js/function > - () => { - return 'import java.text.SimpleDateFormat;'; - } - 300ImportTemplate: &300ImportTemplate !!js/function > - (classes) => { - return classes - .filter((f, i) => (classes.indexOf(f) === i && f !== 'options')) - .sort() - .map((c) => { - return `import static com.mongodb.client.model.Filters.${c};`; - }).join('\n'); - } - 301ImportTemplate: &301ImportTemplate !!js/function > - (classes) => { - return classes - .filter((f, i) => (classes.indexOf(f) === i)) - .sort() - .map((c) => { - return `import static com.mongodb.client.model.Aggregates.${c};`; - }).join('\n'); - } - 302ImportTemplate: &302ImportTemplate !!js/function > - (classes) => { - return classes - .filter((f, i) => (classes.indexOf(f) === i)) - .sort() - .map((c) => { - return `import static com.mongodb.client.model.Accumulators.${c};`; - }).join('\n'); - } - 303ImportTemplate: &303ImportTemplate !!js/function > - (classes) => { - return classes - .filter((f, i) => (classes.indexOf(f) === i)) - .sort() - .map((c) => { - return `import static com.mongodb.client.model.Projections.${c};`; - }).join('\n'); - } - 304ImportTemplate: &304ImportTemplate !!js/function > - (classes) => { - return classes - .filter((f, i) => (classes.indexOf(f) === i)) - .sort() - .map((c) => { - return `import static com.mongodb.client.model.Sorts.${c};`; - }).join('\n'); - } - 305ImportTemplate: &305ImportTemplate !!js/function > - (classes) => { - return classes - .filter((f, i) => (classes.indexOf(f) === i)) - .sort() - .map((c) => { - return `import com.mongodb.client.model.geojson.${c};`; - }).join('\n'); - } - 306ImportTemplate: &306ImportTemplate !!js/function > - (classes) => { - return classes - .filter((f, i) => (classes.indexOf(f) === i)) - .sort() - .map((c) => { - return `import com.mongodb.client.model.${c};`; - }).join('\n'); - } + return `${arg}d`; + } + return `(double) ${arg}`; + } + DateSymbolTemplate: !!js/function &DateSymbolTemplate > + () => { + return 'java.util.Date'; + } + DateSymbolArgsTemplate: !!js/function &DateSymbolArgsTemplate > + (lhs, date, isString) => { + let toStr = (d) => d; + if (isString) { + toStr = (d) => `new SimpleDateFormat("EEE MMMMM dd yyyy HH:mm:ss").format(${d})`; + } + if (date === null) { + return toStr(`new ${lhs}()`); + } + return toStr(`new ${lhs}(${date.getTime()}L)`); + } + DateSymbolNowTemplate: !!js/function &DateSymbolNowTemplate > + () => { + return ''; + } + DateSymbolNowArgsTemplate: !!js/function &DateSymbolNowArgsTemplate > + () => { + return 'new java.util.Date().getTime()'; + } + RegExpSymbolTemplate: !!js/function &RegExpSymbolTemplate > + () => { + return 'Pattern'; + } + RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null + ImportTemplate: &ImportTemplate null + DriverImportTemplate: !!js/function &DriverImportTemplate > + (_, mode) => { + let imports = 'import com.mongodb.MongoClient;\n' + + 'import com.mongodb.MongoClientURI;\n' + + 'import com.mongodb.client.MongoCollection;\n' + + 'import com.mongodb.client.MongoDatabase;\n' + + 'import org.bson.conversions.Bson;\n' + + 'import java.util.concurrent.TimeUnit;\n' + + 'import org.bson.Document;\n'; + if (mode === 'Query') { + imports += 'import com.mongodb.client.FindIterable;'; + } else if (mode === 'Pipeline') { + imports += 'import com.mongodb.client.AggregateIterable;'; + } else if (mode === 'Delete Query') { + imports += 'import com.mongodb.client.result.DeleteResult;'; + } + return imports; + } + 0ImportTemplate: &0ImportTemplate null + 1ImportTemplate: &1ImportTemplate null + 2ImportTemplate: &2ImportTemplate null + 3ImportTemplate: &3ImportTemplate null + 4ImportTemplate: &4ImportTemplate null + 5ImportTemplate: &5ImportTemplate null + 6ImportTemplate: &6ImportTemplate null + 7ImportTemplate: &7ImportTemplate null + 8ImportTemplate: !!js/function &8ImportTemplate > + () => { + return 'import java.util.regex.Pattern;'; + } + 9ImportTemplate: !!js/function &9ImportTemplate > + () => { + return 'import java.util.Arrays;'; + } + 10ImportTemplate: !!js/function &10ImportTemplate > + () => { + return 'import org.bson.Document;'; + } + 11ImportTemplate: !!js/function &11ImportTemplate > + () => { + return 'import org.bson.BsonNull;'; + } + 12ImportTemplate: !!js/function &12ImportTemplate > + () => { + return 'import org.bson.BsonUndefined;'; + } + 100ImportTemplate: !!js/function &100ImportTemplate > + () => { + return 'import org.bson.types.Code;'; + } + 113ImportTemplate: !!js/function &113ImportTemplate > + () => { + return 'import org.bson.types.CodeWithScope;'; + } + 101ImportTemplate: !!js/function &101ImportTemplate > + () => { + return 'import org.bson.types.ObjectId;'; + } + 102ImportTemplate: !!js/function &102ImportTemplate > + () => { + return 'import org.bson.types.Binary;'; + } + 103ImportTemplate: !!js/function &103ImportTemplate > + () => { + return 'import com.mongodb.DBRef;'; + } + 104ImportTemplate: &104ImportTemplate null + 105ImportTemplate: &105ImportTemplate null + 106ImportTemplate: &106ImportTemplate null + 107ImportTemplate: !!js/function &107ImportTemplate > + () => { + return 'import org.bson.types.MinKey;'; + } + 108ImportTemplate: !!js/function &108ImportTemplate > + () => { + return 'import org.bson.types.MaxKey;'; + } + 109ImportTemplate: !!js/function &109ImportTemplate > + () => { + return 'import org.bson.BsonRegularExpression;'; + } + 110ImportTemplate: !!js/function &110ImportTemplate > + () => { + return 'import org.bson.types.BSONTimestamp;'; + } + 111ImportTemplate: !!js/function &111ImportTemplate > + () => { + return 'import org.bson.types.Symbol;'; + } + 112ImportTemplate: !!js/function &112ImportTemplate > + () => { + return 'import org.bson.types.Decimal128;'; + } + 114ImportTemplate: !!js/function &114ImportTemplate > + () => { + return 'import org.bson.BsonBinarySubType;'; + } + 200ImportTemplate: &200ImportTemplate null + 201ImportTemplate: !!js/function &201ImportTemplate > + () => { + return 'import java.text.SimpleDateFormat;'; + } + 300ImportTemplate: !!js/function &300ImportTemplate > + (classes) => { + return classes + .filter((f, i) => (classes.indexOf(f) === i && f !== 'options')) + .sort() + .map((c) => { + return `import static com.mongodb.client.model.Filters.${c};`; + }).join('\n'); + } + 301ImportTemplate: !!js/function &301ImportTemplate > + (classes) => { + return classes + .filter((f, i) => (classes.indexOf(f) === i)) + .sort() + .map((c) => { + return `import static com.mongodb.client.model.Aggregates.${c};`; + }).join('\n'); + } + 302ImportTemplate: !!js/function &302ImportTemplate > + (classes) => { + return classes + .filter((f, i) => (classes.indexOf(f) === i)) + .sort() + .map((c) => { + return `import static com.mongodb.client.model.Accumulators.${c};`; + }).join('\n'); + } + 303ImportTemplate: !!js/function &303ImportTemplate > + (classes) => { + return classes + .filter((f, i) => (classes.indexOf(f) === i)) + .sort() + .map((c) => { + return `import static com.mongodb.client.model.Projections.${c};`; + }).join('\n'); + } + 304ImportTemplate: !!js/function &304ImportTemplate > + (classes) => { + return classes + .filter((f, i) => (classes.indexOf(f) === i)) + .sort() + .map((c) => { + return `import static com.mongodb.client.model.Sorts.${c};`; + }).join('\n'); + } + 305ImportTemplate: !!js/function &305ImportTemplate > + (classes) => { + return classes + .filter((f, i) => (classes.indexOf(f) === i)) + .sort() + .map((c) => { + return `import com.mongodb.client.model.geojson.${c};`; + }).join('\n'); + } + 306ImportTemplate: !!js/function &306ImportTemplate > + (classes) => { + return classes + .filter((f, i) => (classes.indexOf(f) === i)) + .sort() + .map((c) => { + return `import com.mongodb.client.model.${c};`; + }).join('\n'); + } diff --git a/packages/bson-transpilers/symbols/javascript/templates.yaml b/packages/bson-transpilers/symbols/javascript/templates.yaml index 7ef8f788f47..02941d551f3 100644 --- a/packages/bson-transpilers/symbols/javascript/templates.yaml +++ b/packages/bson-transpilers/symbols/javascript/templates.yaml @@ -1,651 +1,654 @@ # Javascript Templates Templates: - # Misc - RegexFlags: &RegexFlags - i: 'i' - m: 'm' - u: 'u' - y: 'y' - g: 'g' - BSONRegexFlags: &BSONRegexFlags - i: 'i' - m: 'm' - x: 'x' - s: 's' - l: 'l' - u: 'u' - # Syntax - DriverTemplate: &DriverTemplate !!js/function | - (spec) => { - const comment = `/* - * Requires the MongoDB Node.js Driver - * https://mongodb.github.io/node-mongodb-native - */`; - const translateKey = { - project: 'projection' - }; + # Misc + RegexFlags: &RegexFlags + i: 'i' + m: 'm' + u: 'u' + y: 'y' + g: 'g' + BSONRegexFlags: &BSONRegexFlags + i: 'i' + m: 'm' + x: 'x' + s: 's' + l: 'l' + u: 'u' + # Syntax + DriverTemplate: !!js/function &DriverTemplate | + (spec) => { + const comment = `/* + * Requires the MongoDB Node.js Driver + * https://mongodb.github.io/node-mongodb-native + */`; + const translateKey = { + project: 'projection' + }; - const exportMode = spec.exportMode; - delete spec.exportMode; + const exportMode = spec.exportMode; + delete spec.exportMode; - const args = {}; - Object.keys(spec).forEach((k) => { - if (k !== 'options') { - args[k in translateKey ? translateKey[k] : k] = spec[k]; - } - }); - - let cmd; - let defs; - if (exportMode == 'Delete Query') { - defs = `const filter = ${args.filter};\n`; - cmd = `const result = coll.deleteMany(filter);`; + const args = {}; + Object.keys(spec).forEach((k) => { + if (k !== 'options') { + args[k in translateKey ? translateKey[k] : k] = spec[k]; } - if ('aggregation' in spec) { - const agg = spec.aggregation; - cmd = `const cursor = coll.aggregate(agg);\nconst result = await cursor.toArray();`; - defs = `const agg = ${agg};\n`; - } else if (!cmd) { - let opts = ''; + }); + + let cmd; + let defs; + if (exportMode == 'Delete Query') { + defs = `const filter = ${args.filter};\n`; + cmd = `const result = coll.deleteMany(filter);`; + } + if ('aggregation' in spec) { + const agg = spec.aggregation; + cmd = `const cursor = coll.aggregate(agg);\nconst result = await cursor.toArray();`; + defs = `const agg = ${agg};\n`; + } else if (!cmd) { + let opts = ''; - if (Object.keys(args).length > 0) { - defs = Object.keys(args).reduce((s, k) => { - if (k !== 'filter') { - if (opts === '') { - opts = `${k}`; - } else { - opts = `${opts}, ${k}`; - } + if (Object.keys(args).length > 0) { + defs = Object.keys(args).reduce((s, k) => { + if (k !== 'filter') { + if (opts === '') { + opts = `${k}`; + } else { + opts = `${opts}, ${k}`; } - return `${s}const ${k} = ${args[k]};\n`; - }, ''); - opts = opts === '' ? '' : `, { ${opts} }`; - } - cmd = `const cursor = coll.find(filter${opts});\nconst result = await cursor.toArray();`; - } - return `${comment}\n\n${defs} - const client = await MongoClient.connect( - '${spec.options.uri}' - ); - const coll = client.db('${spec.options.database}').collection('${spec.options.collection}'); - ${cmd} - await client.close();`; - } - EqualitySyntaxTemplate: &EqualitySyntaxTemplate !!js/function > - (lhs, op, rhs) => { - if (op.includes('!') || op.includes('not')) { - return `${lhs} !== ${rhs}`; - } else if (op === '==' || op === '===' || op === 'is') { - return `${lhs} === ${rhs}`; + } + return `${s}const ${k} = ${args[k]};\n`; + }, ''); + opts = opts === '' ? '' : `, { ${opts} }`; } - return `${lhs} ${op} ${rhs}`; - } - InSyntaxTemplate: &InSyntaxTemplate !!js/function > - (lhs, op, rhs) => { - let str = '!=='; - if (op.includes('!') || op.includes('not')) { - str = '==='; + cmd = `const cursor = coll.find(filter${opts});\nconst result = await cursor.toArray();`; + } + return `${comment}\n\n${defs} + const client = await MongoClient.connect( + '${spec.options.uri}' + ); + const coll = client.db('${spec.options.database}').collection('${spec.options.collection}'); + ${cmd} + await client.close();`; + } + EqualitySyntaxTemplate: !!js/function &EqualitySyntaxTemplate > + (lhs, op, rhs) => { + if (op.includes('!') || op.includes('not')) { + return `${lhs} !== ${rhs}`; + } else if (op === '==' || op === '===' || op === 'is') { + return `${lhs} === ${rhs}`; + } + return `${lhs} ${op} ${rhs}`; + } + InSyntaxTemplate: !!js/function &InSyntaxTemplate > + (lhs, op, rhs) => { + let str = '!=='; + if (op.includes('!') || op.includes('not')) { + str = '==='; + } + return `${rhs}.indexOf(${lhs}) ${str} -1` + } + AndSyntaxTemplate: !!js/function &AndSyntaxTemplate > + (args) => { + return args.join(' && '); + } + OrSyntaxTemplate: !!js/function &OrSyntaxTemplate > + (args) => { + return args.join(' || '); + } + NotSyntaxTemplate: !!js/function &NotSyntaxTemplate > + (arg) => { + return `!${arg}`; + } + UnarySyntaxTemplate: &UnarySyntaxTemplate null + BinarySyntaxTemplate: !!js/function &BinarySyntaxTemplate > + (args) => { + return args.reduce((s, op, i, arr) => { + if (i % 2 === 0) { + return s; } - return `${rhs}.indexOf(${lhs}) ${str} -1` - } - AndSyntaxTemplate: &AndSyntaxTemplate !!js/function > - (args) => { - return args.join(' && '); - } - OrSyntaxTemplate: &OrSyntaxTemplate !!js/function > - (args) => { - return args.join(' || '); - } - NotSyntaxTemplate: &NotSyntaxTemplate !!js/function > - (arg) => { - return `!${arg}`; - } - UnarySyntaxTemplate: &UnarySyntaxTemplate null - BinarySyntaxTemplate: &BinarySyntaxTemplate !!js/function > - (args) => { - return args.reduce((s, op, i, arr) => { - if (i % 2 === 0) { - return s; - } - const rhs = arr[i + 1]; - switch(op) { - case '//': - return `Math.floor(${s}, ${rhs})`; - case '**': - return `Math.pow(${s}, ${rhs})`; - default: - return `${s} ${op} ${rhs}`; - } - }, args[0]); - } - ParensSyntaxTemplate: &ParensSyntaxTemplate null - EosSyntaxTemplate: &EosSyntaxTemplate null - EofSyntaxTemplate: &EofSyntaxTemplate null - NewTemplate: &NewSyntaxTemplate !!js/function > - (expr, skip, code) => { - // Add classes that don't use "new" to array. - // So far: [Date.now, Decimal128/NumberDecimal, Long/NumberLong] - noNew = [200.1, 112, 106]; - if (skip || (code && noNew.indexOf(code) !== -1)) { - return expr; + const rhs = arr[i + 1]; + switch(op) { + case '//': + return `Math.floor(${s}, ${rhs})`; + case '**': + return `Math.pow(${s}, ${rhs})`; + default: + return `${s} ${op} ${rhs}`; } - return `new ${expr}`; - } - # BSON Object Type templates - CodeTypeTemplate: &CodeTypeTemplate null - StringTypeTemplate: &StringTypeTemplate !!js/function > - (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + }, args[0]); + } + ParensSyntaxTemplate: &ParensSyntaxTemplate null + EosSyntaxTemplate: &EosSyntaxTemplate null + EofSyntaxTemplate: &EofSyntaxTemplate null + NewTemplate: !!js/function &NewSyntaxTemplate > + (expr, skip, code) => { + // Add classes that don't use "new" to array. + // So far: [Date.now, Decimal128/NumberDecimal, Long/NumberLong] + noNew = [200.1, 112, 106]; + if (skip || (code && noNew.indexOf(code) !== -1)) { + return expr; + } + return `new ${expr}`; + } + # BSON Object Type templates + CodeTypeTemplate: &CodeTypeTemplate null + StringTypeTemplate: !!js/function &StringTypeTemplate > + (str) => { + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + } + return `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; + } + RegexTypeTemplate: !!js/function &RegexTypeTemplate > + (pattern, flags) => { + const str = pattern; + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { newStr = str.substr(1, str.length - 2); - } - return `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; } - RegexTypeTemplate: &RegexTypeTemplate !!js/function > - (pattern, flags) => { - const str = pattern; + pattern = `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; + return `RegExp(${pattern}${flags ? ', ' + '\'' + flags + '\'': ''})`; + } + BoolTypeTemplate: !!js/function &BoolTypeTemplate > + (literal) => { + return literal.toLowerCase(); + } + IntegerTypeTemplate: &IntegerTypeTemplate null + DecimalTypeTemplate: &DecimalTypeTemplate null + LongBasicTypeTemplate: &LongBasicTypeTemplate null + HexTypeTemplate: &HexTypeTemplate null + OctalTypeTemplate: &OctalTypeTemplate null + NumericTypeTemplate: &NumericTypeTemplate null + ArrayTypeTemplate: !!js/function &ArrayTypeTemplate > + (literal, depth) => { + depth++; + if (literal === '') { + return '[]' + } + const indent = '\n' + ' '.repeat(depth); + const closingIndent = '\n' + ' '.repeat(depth - 1); + + return `[${indent}${literal}${closingIndent}]`; + } + ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate null + NullTypeTemplate: !!js/function &NullTypeTemplate > + () => { + return 'null'; + } + UndefinedTypeTemplate: !!js/function &UndefinedTypeTemplate > + () => { + return 'undefined'; + } + ObjectTypeTemplate: !!js/function &ObjectTypeTemplate > + (literal) => { + if (literal === '') { + return '{}'; + } + return literal; + } + ObjectTypeArgsTemplate: !!js/function &ObjectTypeArgsTemplate > + (args, depth) => { + if (args.length === 0) { + return '{}'; + } + depth++; + const indent = '\n' + ' '.repeat(depth); + const closingIndent = '\n' + ' '.repeat(depth - 1); + const singleStringify = (str) => { let newStr = str; if ( (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { newStr = str.substr(1, str.length - 2); } - pattern = `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; - return `RegExp(${pattern}${flags ? ', ' + '\'' + flags + '\'': ''})`; - } - BoolTypeTemplate: &BoolTypeTemplate !!js/function > - (literal) => { - return literal.toLowerCase(); - } - IntegerTypeTemplate: &IntegerTypeTemplate null - DecimalTypeTemplate: &DecimalTypeTemplate null - LongBasicTypeTemplate: &LongBasicTypeTemplate null - HexTypeTemplate: &HexTypeTemplate null - OctalTypeTemplate: &OctalTypeTemplate null - NumericTypeTemplate: &NumericTypeTemplate null - ArrayTypeTemplate: &ArrayTypeTemplate !!js/function > - (literal, depth) => { - depth++; - if (literal === '') { - return '[]' - } - const indent = '\n' + ' '.repeat(depth); - const closingIndent = '\n' + ' '.repeat(depth - 1); - - return `[${indent}${literal}${closingIndent}]`; - } - ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate null - NullTypeTemplate: &NullTypeTemplate !!js/function > - () => { - return 'null'; - } - UndefinedTypeTemplate: &UndefinedTypeTemplate !!js/function > - () => { - return 'undefined'; - } - ObjectTypeTemplate: &ObjectTypeTemplate !!js/function > - (literal) => { - if (literal === '') { - return '{}'; - } - return literal; + return `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; } - ObjectTypeArgsTemplate: &ObjectTypeArgsTemplate !!js/function > - (args, depth) => { - if (args.length === 0) { - return '{}'; - } - depth++; - const indent = '\n' + ' '.repeat(depth); - const closingIndent = '\n' + ' '.repeat(depth - 1); - const singleStringify = (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; - } - const pairs = args.map((arg) => { - return `${indent}${singleStringify(arg[0])}: ${arg[1]}`; - }).join(', '); + const pairs = args.map((arg) => { + return `${indent}${singleStringify(arg[0])}: ${arg[1]}`; + }).join(', '); - return `{${pairs}${closingIndent}}` - } - # BSON Object Method templates - CodeCodeTemplate: &CodeCodeTemplate null - CodeCodeArgsTemplate: &CodeCodeArgsTemplate null - CodeScopeTemplate: &CodeScopeTemplate null - CodeScopeArgsTemplate: &CodeScopeArgsTemplate null - ObjectIdToStringTemplate: &ObjectIdToStringTemplate null - ObjectIdToStringArgsTemplate: &ObjectIdToStringArgsTemplate null - ObjectIdEqualsTemplate: &ObjectIdEqualsTemplate null - ObjectIdEqualsArgsTemplate: &ObjectIdEqualsArgsTemplate null - ObjectIdGetTimestampTemplate: &ObjectIdGetTimestampTemplate null - ObjectIdGetTimestampArgsTemplate: &ObjectIdGetTimestampArgsTemplate null - BinaryValueTemplate: &BinaryValueTemplate null - BinaryValueArgsTemplate: &BinaryValueArgsTemplate null - BinaryLengthTemplate: &BinaryLengthTemplate null - BinaryLengthArgsTemplate: &BinaryLengthArgsTemplate null - BinaryToStringTemplate: &BinaryToStringTemplate null - BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate null - BinarySubtypeTemplate: &BinarySubtypeTemplate !!js/function > - (lhs) => { - return `${lhs}.sub_type`; - } - BinarySubtypeArgsTemplate: &BinarySubtypeArgsTemplate !!js/function > - () => { - return ''; - } - DBRefGetDBTemplate: &DBRefGetDBTemplate !!js/function > - (lhs) => { - return `${lhs}.db`; - } - DBRefGetCollectionTemplate: &DBRefGetCollectionTemplate !!js/function > - (lhs) => { - return `${lhs}.namespace`; - } - DBRefGetIdTemplate: &DBRefGetIdTemplate !!js/function > - (lhs) => { - return `${lhs}.oid`; - } - DBRefGetDBArgsTemplate: &DBRefGetDBArgsTemplate !!js/function > - () => { - return ''; - } - DBRefGetCollectionArgsTemplate: &DBRefGetCollectionArgsTemplate !!js/function > - () => { - return ''; - } - DBRefGetIdArgsTemplate: &DBRefGetIdArgsTemplate !!js/function > - () => { - return ''; - } - LongEqualsTemplate: &LongEqualsTemplate null - LongEqualsArgsTemplate: &LongEqualsArgsTemplate null - LongToStringTemplate: &LongToStringTemplate null - LongToStringArgsTemplate: &LongToStringArgsTemplate null - LongToIntTemplate: &LongToIntTemplate !!js/function > - (lhs) => { - return `${lhs}.toInt`; - } - LongToIntArgsTemplate: &LongToIntArgsTemplate null - LongToNumberTemplate: &LongToNumberTemplate null - LongToNumberArgsTemplate: &LongToNumberArgsTemplate null - LongAddTemplate: &LongAddTemplate null - LongAddArgsTemplate: &LongAddArgsTemplate null - LongSubtractTemplate: &LongSubtractTemplate null - LongSubtractArgsTemplate: &LongSubtractArgsTemplate null - LongMultiplyTemplate: &LongMultiplyTemplate null - LongMultiplyArgsTemplate: &LongMultiplyArgsTemplate null - LongDivTemplate: &LongDivTemplate null - LongDivArgsTemplate: &LongDivArgsTemplate null - LongModuloTemplate: &LongModuloTemplate null - LongModuloArgsTemplate: &LongModuloArgsTemplate null - LongAndTemplate: &LongAndTemplate null - LongAndArgsTemplate: &LongAndArgsTemplate null - LongOrTemplate: &LongOrTemplate null - LongOrArgsTemplate: &LongOrArgsTemplate null - LongXorTemplate: &LongXorTemplate null - LongXorArgsTemplate: &LongXorArgsTemplate null - LongShiftLeftTemplate: &LongShiftLeftTemplate null - LongShiftLeftArgsTemplate: &LongShiftLeftArgsTemplate null - LongShiftRightTemplate: &LongShiftRightTemplate null - LongShiftRightArgsTemplate: &LongShiftRightArgsTemplate null - LongCompareTemplate: &LongCompareTemplate null - LongCompareArgsTemplate: &LongCompareArgsTemplate null - LongIsOddTemplate: &LongIsOddTemplate null - LongIsOddArgsTemplate: &LongIsOddArgsTemplate null - LongIsZeroTemplate: &LongIsZeroTemplate null - LongIsZeroArgsTemplate: &LongIsZeroArgsTemplate null - LongIsNegativeTemplate: &LongIsNegativeTemplate null - LongIsNegativeArgsTemplate: &LongIsNegativeArgsTemplate null - LongNegateTemplate: &LongNegateTemplate null - LongNegateArgsTemplate: &LongNegateArgsTemplate null - LongNotTemplate: &LongNotTemplate null - LongNotArgsTemplate: &LongNotArgsTemplate null - LongNotEqualsTemplate: &LongNotEqualsTemplate null - LongNotEqualsArgsTemplate: &LongNotEqualsArgsTemplate null - LongGreaterThanTemplate: &LongGreaterThanTemplate null - LongGreaterThanArgsTemplate: &LongGreaterThanArgsTemplate null - LongGreaterThanOrEqualTemplate: &LongGreaterThanOrEqualTemplate null - LongGreaterThanOrEqualArgsTemplate: &LongGreaterThanOrEqualArgsTemplate null - LongLessThanTemplate: &LongLessThanTemplate null - LongLessThanArgsTemplate: &LongLessThanArgsTemplate null - LongLessThanOrEqualTemplate: &LongLessThanOrEqualTemplate null - LongLessThanOrEqualArgsTemplate: &LongLessThanOrEqualArgsTemplate null - LongFloatApproxTemplate: &LongFloatApproxTemplate !!js/function > - (lhs) => { - return `${lhs}.toNumber()`; - } - LongTopTemplate: &LongTopTemplate !!js/function > - (lhs) => { - return `${lhs}.getHighBits()`; - } - LongBottomTemplate: &LongBottomTemplate !!js/function > - (lhs) => { - return `${lhs}.getLowBits()`; - } - TimestampToStringTemplate: &TimestampToStringTemplate null - TimestampToStringArgsTemplate: &TimestampToStringArgsTemplate null - TimestampEqualsTemplate: &TimestampEqualsTemplate null - TimestampEqualsArgsTemplate: &TimestampEqualsArgsTemplate null - TimestampGetLowBitsTemplate: &TimestampGetLowBitsTemplate !!js/function > - (lhs) => { - return `${lhs}.getLowBits`; - } - TimestampGetLowBitsArgsTemplate: &TimestampGetLowBitsArgsTemplate null - TimestampGetHighBitsTemplate: &TimestampGetHighBitsTemplate !!js/function > - (lhs) => { - return `${lhs}.getHighBits`; - } - TimestampGetHighBitsArgsTemplate: &TimestampGetHighBitsArgsTemplate null - TimestampTTemplate: &TimestampTTemplate !!js/function > - (lhs) => { - return `${lhs}.getLowBits()`; - } - TimestampITemplate: &TimestampITemplate !!js/function > - (lhs) => { - return `${lhs}.getHighBits()`; - } - TimestampAsDateTemplate: &TimestampAsDateTemplate !!js/function > - (lhs) => { - return `new Date(${lhs}.getHighBits() * 1000)`; - } - TimestampAsDateArgsTemplate: &TimestampAsDateArgsTemplate !!js/function > - () => { - return ''; - } - TimestampCompareTemplate: &TimestampCompareTemplate null - TimestampCompareArgsTemplate: &TimestampCompareArgsTemplate null - TimestampNotEqualsTemplate: &TimestampNotEqualsTemplate null - TimestampNotEqualsArgsTemplate: &TimestampNotEqualsArgsTemplate null - TimestampGreaterThanTemplate: &TimestampGreaterThanTemplate null - TimestampGreaterThanArgsTemplate: &TimestampGreaterThanArgsTemplate null - TimestampGreaterThanOrEqualTemplate: &TimestampGreaterThanOrEqualTemplate null - TimestampGreaterThanOrEqualArgsTemplate: &TimestampGreaterThanOrEqualArgsTemplate null - TimestampLessThanTemplate: &TimestampLessThanTemplate null - TimestampLessThanArgsTemplate: &TimestampLessThanArgsTemplate null - TimestampLessThanOrEqualTemplate: &TimestampLessThanOrEqualTemplate null - TimestampLessThanOrEqualArgsTemplate: &TimestampLessThanOrEqualArgsTemplate null - SymbolValueOfTemplate: &SymbolValueOfTemplate null - SymbolValueOfArgsTemplate: &SymbolValueOfArgsTemplate null - SymbolInspectTemplate: &SymbolInspectTemplate null - SymbolInspectArgsTemplate: &SymbolInspectArgsTemplate null - SymbolToStringTemplate: &SymbolToStringTemplate null - SymbolToStringArgsTemplate: &SymbolToStringArgsTemplate null - # Symbol Templates - CodeSymbolTemplate: &CodeSymbolTemplate null - CodeSymbolArgsTemplate: &CodeSymbolArgsTemplate !!js/function > - (lhs, code, scope) => { - code = code === undefined ? '\'\'' : code; - scope = scope === undefined ? '' : `, ${scope}`; - return `(${code}${scope})`; - } - ObjectIdSymbolTemplate: &ObjectIdSymbolTemplate null - ObjectIdSymbolArgsTemplate: &ObjectIdSymbolArgsTemplate !!js/function > - (lhs, str) => { - if (!str || str.length === 0) { - return '()'; - } - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `('${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}')`; - } - BinarySymbolTemplate: &BinarySymbolTemplate !!js/function > - () => { - return 'Binary'; - } - BinarySymbolArgsTemplate: &BinarySymbolArgsTemplate !!js/function > - (lhs, buffer, subtype) => { - return `(${buffer.toString('base64')}, '${subtype}')`; - } - BinarySymbolSubtypeDefaultTemplate: &BinarySymbolSubtypeDefaultTemplate null - BinarySymbolSubtypeFunctionTemplate: &BinarySymbolSubtypeFunctionTemplate null - BinarySymbolSubtypeByteArrayTemplate: &BinarySymbolSubtypeByteArrayTemplate null - BinarySymbolSubtypeUuidOldTemplate: &BinarySymbolSubtypeUuidOldTemplate null - BinarySymbolSubtypeUuidTemplate: &BinarySymbolSubtypeUuidTemplate null - BinarySymbolSubtypeMd5Template: &BinarySymbolSubtypeMd5Template null - BinarySymbolSubtypeUserDefinedTemplate: &BinarySymbolSubtypeUserDefinedTemplate null - DBRefSymbolTemplate: &DBRefSymbolTemplate null - DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate null - DoubleSymbolTemplate: &DoubleSymbolTemplate !!js/function > - () => { - return 'Double'; - } - DoubleSymbolArgsTemplate: &DoubleSymbolArgsTemplate null - Int32SymbolTemplate: &Int32SymbolTemplate !!js/function > - () => { - return 'Int32'; - } - Int32SymbolArgsTemplate: &Int32SymbolArgsTemplate !!js/function > - (lhs, arg) => { - arg = arg === undefined ? 0 : arg; - return `(${arg})`; - } - LongSymbolTemplate: &LongSymbolTemplate !!js/function > - () => { - return ''; - } - LongSymbolArgsTemplate: &LongSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - if (type === '_string') { - return `Long.fromString(${arg})`; - } - return `Long.fromNumber(${arg})`; - } - LongSymbolMaxTemplate: &LongSymbolMaxTemplate null - LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null - LongSymbolMinTemplate: &LongSymbolMinTemplate null - LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null - LongSymbolZeroTemplate: &LongSymbolZeroTemplate null - LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null - LongSymbolOneTemplate: &LongSymbolOneTemplate null - LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null - LongSymbolNegOneTemplate: &LongSymbolNegOneTemplate null - LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null - LongSymbolFromBitsTemplate: &LongSymbolFromBitsTemplate null - LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate null - LongSymbolFromIntTemplate: &LongSymbolFromIntTemplate null - LongSymbolFromIntArgsTemplate: &LongSymbolFromIntArgsTemplate null - LongSymbolFromNumberTemplate: &LongSymbolFromNumberTemplate null - LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate null - LongSymbolFromStringTemplate: &LongSymbolFromStringTemplate null - LongSymbolFromStringArgsTemplate: &LongSymbolFromStringArgsTemplate null - MinKeySymbolTemplate: &MinKeySymbolTemplate null - MinKeySymbolArgsTemplate: &MinKeySymbolArgsTemplate null - MaxKeySymbolTemplate: &MaxKeySymbolTemplate null - MaxKeySymbolArgsTemplate: &MaxKeySymbolArgsTemplate null - TimestampSymbolTemplate: &TimestampSymbolTemplate null - TimestampSymbolArgsTemplate: &TimestampSymbolArgsTemplate !!js/function > - (lhs, arg1, arg2) => { - return `(${arg1 === undefined ? 0 : arg1}, ${arg2 === undefined ? 0 : arg2})`; - } - SymbolSymbolTemplate: &SymbolSymbolTemplate !!js/function > - () => { - return 'BSONSymbol'; - } - SymbolSymbolArgsTemplate: &SymbolSymbolArgsTemplate null - BSONRegExpSymbolTemplate: &BSONRegExpSymbolTemplate !!js/function > - () => { - return 'BSONRegExp'; - } - BSONRegExpSymbolArgsTemplate: &BSONRegExpSymbolArgsTemplate !!js/function > - (lhs, pattern, flags) => { - const singleStringify = (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `'${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}'`; - } - return `(${singleStringify(pattern)}${flags ? ', ' + singleStringify(flags) : ''})`; - } - Decimal128SymbolTemplate: &Decimal128SymbolTemplate !!js/function > - () => { - return 'Decimal128'; - } - Decimal128SymbolArgsTemplate: &Decimal128SymbolArgsTemplate !!js/function > - (lhs, arg) => { - arg = arg === undefined ? '0' : arg.toString(); - if (arg.charAt(0) === '\'' && arg.charAt(arg.length - 1) === '\'') { - return `.fromString(${arg})`; - } - return `.fromString('${arg}')`; - } - Decimal128SymbolFromStringTemplate: &Decimal128SymbolFromStringTemplate null - Decimal128SymbolFromStringArgsTemplate: &Decimal128SymbolFromStringArgsTemplate null - Decimal128ToStringTemplate: &Decimal128ToStringTemplate null - Decimal128ToStringArgsTemplate: &Decimal128ToStringArgsTemplate null - # BSON Util Templates - ObjectIdCreateFromHexStringTemplate: &ObjectIdCreateFromHexStringTemplate null - ObjectIdCreateFromHexStringArgsTemplate: &ObjectIdCreateFromHexStringArgsTemplate null - ObjectIdCreateFromTimeTemplate: &ObjectIdCreateFromTimeTemplate !!js/function > - () => { - return `ObjectId.createFromTime`; - } - ObjectIdCreateFromTimeArgsTemplate: &ObjectIdCreateFromTimeArgsTemplate !!js/function > - (lhs, arg, isNumber) => { - if (!isNumber) { - return `(${arg}.getTime() / 1000)`; + return `{${pairs}${closingIndent}}` + } + # BSON Object Method templates + CodeCodeTemplate: &CodeCodeTemplate null + CodeCodeArgsTemplate: &CodeCodeArgsTemplate null + CodeScopeTemplate: &CodeScopeTemplate null + CodeScopeArgsTemplate: &CodeScopeArgsTemplate null + ObjectIdToStringTemplate: &ObjectIdToStringTemplate null + ObjectIdToStringArgsTemplate: &ObjectIdToStringArgsTemplate null + ObjectIdEqualsTemplate: &ObjectIdEqualsTemplate null + ObjectIdEqualsArgsTemplate: &ObjectIdEqualsArgsTemplate null + ObjectIdGetTimestampTemplate: &ObjectIdGetTimestampTemplate null + ObjectIdGetTimestampArgsTemplate: &ObjectIdGetTimestampArgsTemplate null + BinaryValueTemplate: &BinaryValueTemplate null + BinaryValueArgsTemplate: &BinaryValueArgsTemplate null + BinaryLengthTemplate: &BinaryLengthTemplate null + BinaryLengthArgsTemplate: &BinaryLengthArgsTemplate null + BinaryToStringTemplate: &BinaryToStringTemplate null + BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate null + BinarySubtypeTemplate: !!js/function &BinarySubtypeTemplate > + (lhs) => { + return `${lhs}.sub_type`; + } + BinarySubtypeArgsTemplate: !!js/function &BinarySubtypeArgsTemplate > + () => { + return ''; + } + DBRefGetDBTemplate: !!js/function &DBRefGetDBTemplate > + (lhs) => { + return `${lhs}.db`; + } + DBRefGetCollectionTemplate: !!js/function &DBRefGetCollectionTemplate > + (lhs) => { + return `${lhs}.namespace`; + } + DBRefGetIdTemplate: !!js/function &DBRefGetIdTemplate > + (lhs) => { + return `${lhs}.oid`; + } + DBRefGetDBArgsTemplate: !!js/function &DBRefGetDBArgsTemplate > + () => { + return ''; + } + DBRefGetCollectionArgsTemplate: + !!js/function &DBRefGetCollectionArgsTemplate > + () => { + return ''; + } + DBRefGetIdArgsTemplate: !!js/function &DBRefGetIdArgsTemplate > + () => { + return ''; + } + LongEqualsTemplate: &LongEqualsTemplate null + LongEqualsArgsTemplate: &LongEqualsArgsTemplate null + LongToStringTemplate: &LongToStringTemplate null + LongToStringArgsTemplate: &LongToStringArgsTemplate null + LongToIntTemplate: !!js/function &LongToIntTemplate > + (lhs) => { + return `${lhs}.toInt`; + } + LongToIntArgsTemplate: &LongToIntArgsTemplate null + LongToNumberTemplate: &LongToNumberTemplate null + LongToNumberArgsTemplate: &LongToNumberArgsTemplate null + LongAddTemplate: &LongAddTemplate null + LongAddArgsTemplate: &LongAddArgsTemplate null + LongSubtractTemplate: &LongSubtractTemplate null + LongSubtractArgsTemplate: &LongSubtractArgsTemplate null + LongMultiplyTemplate: &LongMultiplyTemplate null + LongMultiplyArgsTemplate: &LongMultiplyArgsTemplate null + LongDivTemplate: &LongDivTemplate null + LongDivArgsTemplate: &LongDivArgsTemplate null + LongModuloTemplate: &LongModuloTemplate null + LongModuloArgsTemplate: &LongModuloArgsTemplate null + LongAndTemplate: &LongAndTemplate null + LongAndArgsTemplate: &LongAndArgsTemplate null + LongOrTemplate: &LongOrTemplate null + LongOrArgsTemplate: &LongOrArgsTemplate null + LongXorTemplate: &LongXorTemplate null + LongXorArgsTemplate: &LongXorArgsTemplate null + LongShiftLeftTemplate: &LongShiftLeftTemplate null + LongShiftLeftArgsTemplate: &LongShiftLeftArgsTemplate null + LongShiftRightTemplate: &LongShiftRightTemplate null + LongShiftRightArgsTemplate: &LongShiftRightArgsTemplate null + LongCompareTemplate: &LongCompareTemplate null + LongCompareArgsTemplate: &LongCompareArgsTemplate null + LongIsOddTemplate: &LongIsOddTemplate null + LongIsOddArgsTemplate: &LongIsOddArgsTemplate null + LongIsZeroTemplate: &LongIsZeroTemplate null + LongIsZeroArgsTemplate: &LongIsZeroArgsTemplate null + LongIsNegativeTemplate: &LongIsNegativeTemplate null + LongIsNegativeArgsTemplate: &LongIsNegativeArgsTemplate null + LongNegateTemplate: &LongNegateTemplate null + LongNegateArgsTemplate: &LongNegateArgsTemplate null + LongNotTemplate: &LongNotTemplate null + LongNotArgsTemplate: &LongNotArgsTemplate null + LongNotEqualsTemplate: &LongNotEqualsTemplate null + LongNotEqualsArgsTemplate: &LongNotEqualsArgsTemplate null + LongGreaterThanTemplate: &LongGreaterThanTemplate null + LongGreaterThanArgsTemplate: &LongGreaterThanArgsTemplate null + LongGreaterThanOrEqualTemplate: &LongGreaterThanOrEqualTemplate null + LongGreaterThanOrEqualArgsTemplate: &LongGreaterThanOrEqualArgsTemplate null + LongLessThanTemplate: &LongLessThanTemplate null + LongLessThanArgsTemplate: &LongLessThanArgsTemplate null + LongLessThanOrEqualTemplate: &LongLessThanOrEqualTemplate null + LongLessThanOrEqualArgsTemplate: &LongLessThanOrEqualArgsTemplate null + LongFloatApproxTemplate: !!js/function &LongFloatApproxTemplate > + (lhs) => { + return `${lhs}.toNumber()`; + } + LongTopTemplate: !!js/function &LongTopTemplate > + (lhs) => { + return `${lhs}.getHighBits()`; + } + LongBottomTemplate: !!js/function &LongBottomTemplate > + (lhs) => { + return `${lhs}.getLowBits()`; + } + TimestampToStringTemplate: &TimestampToStringTemplate null + TimestampToStringArgsTemplate: &TimestampToStringArgsTemplate null + TimestampEqualsTemplate: &TimestampEqualsTemplate null + TimestampEqualsArgsTemplate: &TimestampEqualsArgsTemplate null + TimestampGetLowBitsTemplate: !!js/function &TimestampGetLowBitsTemplate > + (lhs) => { + return `${lhs}.getLowBits`; + } + TimestampGetLowBitsArgsTemplate: &TimestampGetLowBitsArgsTemplate null + TimestampGetHighBitsTemplate: !!js/function &TimestampGetHighBitsTemplate > + (lhs) => { + return `${lhs}.getHighBits`; + } + TimestampGetHighBitsArgsTemplate: &TimestampGetHighBitsArgsTemplate null + TimestampTTemplate: !!js/function &TimestampTTemplate > + (lhs) => { + return `${lhs}.getLowBits()`; + } + TimestampITemplate: !!js/function &TimestampITemplate > + (lhs) => { + return `${lhs}.getHighBits()`; + } + TimestampAsDateTemplate: !!js/function &TimestampAsDateTemplate > + (lhs) => { + return `new Date(${lhs}.getHighBits() * 1000)`; + } + TimestampAsDateArgsTemplate: !!js/function &TimestampAsDateArgsTemplate > + () => { + return ''; + } + TimestampCompareTemplate: &TimestampCompareTemplate null + TimestampCompareArgsTemplate: &TimestampCompareArgsTemplate null + TimestampNotEqualsTemplate: &TimestampNotEqualsTemplate null + TimestampNotEqualsArgsTemplate: &TimestampNotEqualsArgsTemplate null + TimestampGreaterThanTemplate: &TimestampGreaterThanTemplate null + TimestampGreaterThanArgsTemplate: &TimestampGreaterThanArgsTemplate null + TimestampGreaterThanOrEqualTemplate: &TimestampGreaterThanOrEqualTemplate null + TimestampGreaterThanOrEqualArgsTemplate: &TimestampGreaterThanOrEqualArgsTemplate null + TimestampLessThanTemplate: &TimestampLessThanTemplate null + TimestampLessThanArgsTemplate: &TimestampLessThanArgsTemplate null + TimestampLessThanOrEqualTemplate: &TimestampLessThanOrEqualTemplate null + TimestampLessThanOrEqualArgsTemplate: &TimestampLessThanOrEqualArgsTemplate null + SymbolValueOfTemplate: &SymbolValueOfTemplate null + SymbolValueOfArgsTemplate: &SymbolValueOfArgsTemplate null + SymbolInspectTemplate: &SymbolInspectTemplate null + SymbolInspectArgsTemplate: &SymbolInspectArgsTemplate null + SymbolToStringTemplate: &SymbolToStringTemplate null + SymbolToStringArgsTemplate: &SymbolToStringArgsTemplate null + # Symbol Templates + CodeSymbolTemplate: &CodeSymbolTemplate null + CodeSymbolArgsTemplate: !!js/function &CodeSymbolArgsTemplate > + (lhs, code, scope) => { + code = code === undefined ? '\'\'' : code; + scope = scope === undefined ? '' : `, ${scope}`; + return `(${code}${scope})`; + } + ObjectIdSymbolTemplate: &ObjectIdSymbolTemplate null + ObjectIdSymbolArgsTemplate: !!js/function &ObjectIdSymbolArgsTemplate > + (lhs, str) => { + if (!str || str.length === 0) { + return '()'; + } + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + } + return `('${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}')`; + } + BinarySymbolTemplate: !!js/function &BinarySymbolTemplate > + () => { + return 'Binary'; + } + BinarySymbolArgsTemplate: !!js/function &BinarySymbolArgsTemplate > + (lhs, buffer, subtype) => { + return `(${buffer.toString('base64')}, '${subtype}')`; + } + BinarySymbolSubtypeDefaultTemplate: &BinarySymbolSubtypeDefaultTemplate null + BinarySymbolSubtypeFunctionTemplate: &BinarySymbolSubtypeFunctionTemplate null + BinarySymbolSubtypeByteArrayTemplate: &BinarySymbolSubtypeByteArrayTemplate null + BinarySymbolSubtypeUuidOldTemplate: &BinarySymbolSubtypeUuidOldTemplate null + BinarySymbolSubtypeUuidTemplate: &BinarySymbolSubtypeUuidTemplate null + BinarySymbolSubtypeMd5Template: &BinarySymbolSubtypeMd5Template null + BinarySymbolSubtypeUserDefinedTemplate: &BinarySymbolSubtypeUserDefinedTemplate null + DBRefSymbolTemplate: &DBRefSymbolTemplate null + DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate null + DoubleSymbolTemplate: !!js/function &DoubleSymbolTemplate > + () => { + return 'Double'; + } + DoubleSymbolArgsTemplate: &DoubleSymbolArgsTemplate null + Int32SymbolTemplate: !!js/function &Int32SymbolTemplate > + () => { + return 'Int32'; + } + Int32SymbolArgsTemplate: !!js/function &Int32SymbolArgsTemplate > + (lhs, arg) => { + arg = arg === undefined ? 0 : arg; + return `(${arg})`; + } + LongSymbolTemplate: !!js/function &LongSymbolTemplate > + () => { + return ''; + } + LongSymbolArgsTemplate: !!js/function &LongSymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + if (type === '_string') { + return `Long.fromString(${arg})`; + } + return `Long.fromNumber(${arg})`; + } + LongSymbolMaxTemplate: &LongSymbolMaxTemplate null + LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null + LongSymbolMinTemplate: &LongSymbolMinTemplate null + LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null + LongSymbolZeroTemplate: &LongSymbolZeroTemplate null + LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null + LongSymbolOneTemplate: &LongSymbolOneTemplate null + LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null + LongSymbolNegOneTemplate: &LongSymbolNegOneTemplate null + LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null + LongSymbolFromBitsTemplate: &LongSymbolFromBitsTemplate null + LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate null + LongSymbolFromIntTemplate: &LongSymbolFromIntTemplate null + LongSymbolFromIntArgsTemplate: &LongSymbolFromIntArgsTemplate null + LongSymbolFromNumberTemplate: &LongSymbolFromNumberTemplate null + LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate null + LongSymbolFromStringTemplate: &LongSymbolFromStringTemplate null + LongSymbolFromStringArgsTemplate: &LongSymbolFromStringArgsTemplate null + MinKeySymbolTemplate: &MinKeySymbolTemplate null + MinKeySymbolArgsTemplate: &MinKeySymbolArgsTemplate null + MaxKeySymbolTemplate: &MaxKeySymbolTemplate null + MaxKeySymbolArgsTemplate: &MaxKeySymbolArgsTemplate null + TimestampSymbolTemplate: &TimestampSymbolTemplate null + TimestampSymbolArgsTemplate: !!js/function &TimestampSymbolArgsTemplate > + (lhs, arg1, arg2) => { + return `(${arg1 === undefined ? 0 : arg1}, ${arg2 === undefined ? 0 : arg2})`; + } + SymbolSymbolTemplate: !!js/function &SymbolSymbolTemplate > + () => { + return 'BSONSymbol'; + } + SymbolSymbolArgsTemplate: &SymbolSymbolArgsTemplate null + BSONRegExpSymbolTemplate: !!js/function &BSONRegExpSymbolTemplate > + () => { + return 'BSONRegExp'; + } + BSONRegExpSymbolArgsTemplate: !!js/function &BSONRegExpSymbolArgsTemplate > + (lhs, pattern, flags) => { + const singleStringify = (str) => { + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); } - return `(${arg})`; - } - ObjectIdIsValidTemplate: &ObjectIdIsValidTemplate !!js/function > - (lhs) => { - return `${lhs}.isValid`; - } - ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate null - # JS Symbol Templates - NumberSymbolTemplate: &NumberSymbolTemplate !!js/function > - () => { - return 'Number'; - } - NumberSymbolArgsTemplate: &NumberSymbolArgsTemplate !!js/function > - (lhs, arg) => { - arg = arg === undefined ? '0' : arg; - return `(${arg})`; - } - DateSymbolTemplate: &DateSymbolTemplate !!js/function > - () => { - return 'Date'; - } - DateSymbolArgsTemplate: &DateSymbolArgsTemplate null - DateSymbolNowTemplate: &DateSymbolNowTemplate !!js/function > - () => { - return 'Date.now'; - } - DateSymbolNowArgsTemplate: &DateSymbolNowArgsTemplate null - RegExpSymbolTemplate: &RegExpSymbolTemplate !!js/function > - () => { - return 'RegExp'; - } - RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null - ImportTemplate: &ImportTemplate !!js/function > - (args) => { - const bson = []; - const other = []; - Object.keys(args).map( - (m) => { - if (m > 99 && m < 200) { - bson.push(args[m]); - } else { - other.push(args[m]); - } + return `'${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}'`; + } + return `(${singleStringify(pattern)}${flags ? ', ' + singleStringify(flags) : ''})`; + } + Decimal128SymbolTemplate: !!js/function &Decimal128SymbolTemplate > + () => { + return 'Decimal128'; + } + Decimal128SymbolArgsTemplate: !!js/function &Decimal128SymbolArgsTemplate > + (lhs, arg) => { + arg = arg === undefined ? '0' : arg.toString(); + if (arg.charAt(0) === '\'' && arg.charAt(arg.length - 1) === '\'') { + return `.fromString(${arg})`; + } + return `.fromString('${arg}')`; + } + Decimal128SymbolFromStringTemplate: &Decimal128SymbolFromStringTemplate null + Decimal128SymbolFromStringArgsTemplate: &Decimal128SymbolFromStringArgsTemplate null + Decimal128ToStringTemplate: &Decimal128ToStringTemplate null + Decimal128ToStringArgsTemplate: &Decimal128ToStringArgsTemplate null + # BSON Util Templates + ObjectIdCreateFromHexStringTemplate: &ObjectIdCreateFromHexStringTemplate null + ObjectIdCreateFromHexStringArgsTemplate: &ObjectIdCreateFromHexStringArgsTemplate null + ObjectIdCreateFromTimeTemplate: + !!js/function &ObjectIdCreateFromTimeTemplate > + () => { + return `ObjectId.createFromTime`; + } + ObjectIdCreateFromTimeArgsTemplate: + !!js/function &ObjectIdCreateFromTimeArgsTemplate > + (lhs, arg, isNumber) => { + if (!isNumber) { + return `(${arg}.getTime() / 1000)`; + } + return `(${arg})`; + } + ObjectIdIsValidTemplate: !!js/function &ObjectIdIsValidTemplate > + (lhs) => { + return `${lhs}.isValid`; + } + ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate null + # JS Symbol Templates + NumberSymbolTemplate: !!js/function &NumberSymbolTemplate > + () => { + return 'Number'; + } + NumberSymbolArgsTemplate: !!js/function &NumberSymbolArgsTemplate > + (lhs, arg) => { + arg = arg === undefined ? '0' : arg; + return `(${arg})`; + } + DateSymbolTemplate: !!js/function &DateSymbolTemplate > + () => { + return 'Date'; + } + DateSymbolArgsTemplate: &DateSymbolArgsTemplate null + DateSymbolNowTemplate: !!js/function &DateSymbolNowTemplate > + () => { + return 'Date.now'; + } + DateSymbolNowArgsTemplate: &DateSymbolNowArgsTemplate null + RegExpSymbolTemplate: !!js/function &RegExpSymbolTemplate > + () => { + return 'RegExp'; + } + RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null + ImportTemplate: !!js/function &ImportTemplate > + (args) => { + const bson = []; + const other = []; + Object.keys(args).map( + (m) => { + if (m > 99 && m < 200) { + bson.push(args[m]); + } else { + other.push(args[m]); } - ); - if (bson.length) { - other.push(`import {\n ${bson.join(',\n ')}\n} from 'mongodb';`); } - return other.join('\n'); - } - DriverImportTemplate: &DriverImportTemplate !!js/function > - () => { - return `import { MongoClient } from 'mongodb';`; - } - 0ImportTemplate: &0ImportTemplate null - 1ImportTemplate: &1ImportTemplate null - 2ImportTemplate: &2ImportTemplate null - 3ImportTemplate: &3ImportTemplate null - 4ImportTemplate: &4ImportTemplate null - 5ImportTemplate: &5ImportTemplate null - 6ImportTemplate: &6ImportTemplate null - 7ImportTemplate: &7ImportTemplate null - 8ImportTemplate: &8ImportTemplate null - 9ImportTemplate: &9ImportTemplate null - 10ImportTemplate: &10ImportTemplate null - 11ImportTemplate: &11ImportTemplate null - 12ImportTemplate: &12ImportTemplate null - 100ImportTemplate: &100ImportTemplate !!js/function > - () => { - return 'Code'; - } - 101ImportTemplate: &101ImportTemplate !!js/function > - () => { - return 'ObjectId'; - } - 102ImportTemplate: &102ImportTemplate !!js/function > - () => { - return 'Binary'; - } - 103ImportTemplate: &103ImportTemplate !!js/function > - () => { - return 'DBRef'; - } - 104ImportTemplate: &104ImportTemplate !!js/function > - () => { - return 'Double'; - } - 105ImportTemplate: &105ImportTemplate !!js/function > - () => { - return 'Int32'; - } - 106ImportTemplate: &106ImportTemplate !!js/function > - () => { - return 'Long'; - } - 107ImportTemplate: &107ImportTemplate !!js/function > - () => { - return 'MinKey'; - } - 108ImportTemplate: &108ImportTemplate !!js/function > - () => { - return 'MaxKey'; - } - 109ImportTemplate: &109ImportTemplate !!js/function > - () => { - return 'BSONRegExp'; - } - 110ImportTemplate: &110ImportTemplate !!js/function > - () => { - return 'Timestamp'; - } - 111ImportTemplate: &111ImportTemplate !!js/function > - () => { - return 'BSONSymbol'; - } - 112ImportTemplate: &112ImportTemplate !!js/function > - () => { - return 'Decimal128'; - } - 113ImportTemplate: &113ImportTemplate null - 114ImportTemplate: &114ImportTemplate null - 200ImportTemplate: &200ImportTemplate null - 201ImportTemplate: &201ImportTemplate null - 300ImportTemplate: &300ImportTemplate null - 301ImportTemplate: &301ImportTemplate null - 302ImportTemplate: &302ImportTemplate null - 303ImportTemplate: &303ImportTemplate null - 304ImportTemplate: &304ImportTemplate null - 305ImportTemplate: &305ImportTemplate null - 306ImportTemplate: &306ImportTemplate null + ); + if (bson.length) { + other.push(`import {\n ${bson.join(',\n ')}\n} from 'mongodb';`); + } + return other.join('\n'); + } + DriverImportTemplate: !!js/function &DriverImportTemplate > + () => { + return `import { MongoClient } from 'mongodb';`; + } + 0ImportTemplate: &0ImportTemplate null + 1ImportTemplate: &1ImportTemplate null + 2ImportTemplate: &2ImportTemplate null + 3ImportTemplate: &3ImportTemplate null + 4ImportTemplate: &4ImportTemplate null + 5ImportTemplate: &5ImportTemplate null + 6ImportTemplate: &6ImportTemplate null + 7ImportTemplate: &7ImportTemplate null + 8ImportTemplate: &8ImportTemplate null + 9ImportTemplate: &9ImportTemplate null + 10ImportTemplate: &10ImportTemplate null + 11ImportTemplate: &11ImportTemplate null + 12ImportTemplate: &12ImportTemplate null + 100ImportTemplate: !!js/function &100ImportTemplate > + () => { + return 'Code'; + } + 101ImportTemplate: !!js/function &101ImportTemplate > + () => { + return 'ObjectId'; + } + 102ImportTemplate: !!js/function &102ImportTemplate > + () => { + return 'Binary'; + } + 103ImportTemplate: !!js/function &103ImportTemplate > + () => { + return 'DBRef'; + } + 104ImportTemplate: !!js/function &104ImportTemplate > + () => { + return 'Double'; + } + 105ImportTemplate: !!js/function &105ImportTemplate > + () => { + return 'Int32'; + } + 106ImportTemplate: !!js/function &106ImportTemplate > + () => { + return 'Long'; + } + 107ImportTemplate: !!js/function &107ImportTemplate > + () => { + return 'MinKey'; + } + 108ImportTemplate: !!js/function &108ImportTemplate > + () => { + return 'MaxKey'; + } + 109ImportTemplate: !!js/function &109ImportTemplate > + () => { + return 'BSONRegExp'; + } + 110ImportTemplate: !!js/function &110ImportTemplate > + () => { + return 'Timestamp'; + } + 111ImportTemplate: !!js/function &111ImportTemplate > + () => { + return 'BSONSymbol'; + } + 112ImportTemplate: !!js/function &112ImportTemplate > + () => { + return 'Decimal128'; + } + 113ImportTemplate: &113ImportTemplate null + 114ImportTemplate: &114ImportTemplate null + 200ImportTemplate: &200ImportTemplate null + 201ImportTemplate: &201ImportTemplate null + 300ImportTemplate: &300ImportTemplate null + 301ImportTemplate: &301ImportTemplate null + 302ImportTemplate: &302ImportTemplate null + 303ImportTemplate: &303ImportTemplate null + 304ImportTemplate: &304ImportTemplate null + 305ImportTemplate: &305ImportTemplate null + 306ImportTemplate: &306ImportTemplate null diff --git a/packages/bson-transpilers/symbols/main.yaml b/packages/bson-transpilers/symbols/main.yaml index 2dd97c5543e..3804b55086a 100644 --- a/packages/bson-transpilers/symbols/main.yaml +++ b/packages/bson-transpilers/symbols/main.yaml @@ -1,20 +1,19 @@ SymbolTypes: - VAR: &var 0 - CONSTRUCTOR: &constructor 1 - FUNC: &func 2 + VAR: &var 0 + CONSTRUCTOR: &constructor 1 + FUNC: &func 2 # Internal patterns to save typing __type: &__type - id: null - callable: *var - args: null - type: null - attr: {} - template: null - argsTemplate: null + id: null + callable: *var + args: null + type: null + attr: {} + template: null + argsTemplate: null __func: &__func - callable: *func - args: [] - attr: {} - template: null - argsTemplate: null - + callable: *func + args: [] + attr: {} + template: null + argsTemplate: null diff --git a/packages/bson-transpilers/symbols/object/templates.yaml b/packages/bson-transpilers/symbols/object/templates.yaml index 96cc7a2af3a..b045860c0d6 100644 --- a/packages/bson-transpilers/symbols/object/templates.yaml +++ b/packages/bson-transpilers/symbols/object/templates.yaml @@ -18,596 +18,601 @@ # # ############################################# Templates: - ######## - # Misc # - ######## + ######## + # Misc # + ######## - # Filter out regex flags that have translations or are unsupported. - RegexFlags: &RegexFlags - i: 'i' - m: 'm' - u: 'u' - y: 'y' - g: 'g' - BSONRegexFlags: &BSONRegexFlags - i: 'i' - m: 'm' - x: 'x' - s: 's' - l: 'l' - u: 'u' + # Filter out regex flags that have translations or are unsupported. + RegexFlags: &RegexFlags + i: 'i' + m: 'm' + u: 'u' + y: 'y' + g: 'g' + BSONRegexFlags: &BSONRegexFlags + i: 'i' + m: 'm' + x: 'x' + s: 's' + l: 'l' + u: 'u' - ############################################# - # Syntax # - # # - # Templates for language syntax expressions # - # # - ############################################# + ############################################# + # Syntax # + # # + # Templates for language syntax expressions # + # # + ############################################# - DriverTemplate: &DriverTemplate null - EqualitySyntaxTemplate: &EqualitySyntaxTemplate !!js/function > - (lhs, op, rhs) => { - if (op.includes('!') || op.includes('not')) { - return lhs !== rhs; + DriverTemplate: &DriverTemplate null + EqualitySyntaxTemplate: !!js/function &EqualitySyntaxTemplate > + (lhs, op, rhs) => { + if (op.includes('!') || op.includes('not')) { + return lhs !== rhs; + } + if (op === '==' || op === '===' || op === 'is') { + if (typeof(lhs) === 'object' && 'equals' in lhs) { + // Use '.equals' for objects, if it exists. + return lhs.equals(rhs); } - if (op === '==' || op === '===' || op === 'is') { - if (typeof(lhs) === 'object' && 'equals' in lhs) { - // Use '.equals' for objects, if it exists. - return lhs.equals(rhs); - } - return lhs === rhs; - } - if (op === '>') { - return lhs > rhs; - } - if (op === '<') { - return lhs < rhs; - } - if (op === '>=') { - return lhs >= rhs; - } - if (op === '<=') { - return lhs <= rhs; - } - throw new Error(`unrecognized operation: ${op}`); + return lhs === rhs; } - InSyntaxTemplate: &InSyntaxTemplate !!js/function > - (lhs, op, rhs) => { - if (op.includes('!') || op.includes('not')) { - if (typeof rhs === 'array') { - return rhs.indexOf(lhs) === -1; - } - return !(lhs in rhs); - } - if (typeof rhs === 'array') { - return rhs.indexOf(lhs) !== -1; - } - return lhs in rhs; + if (op === '>') { + return lhs > rhs; } - - AndSyntaxTemplate: &AndSyntaxTemplate !!js/function > - (args) => { - return args.reduce((t, k, i) => { - return t && k; - }); + if (op === '<') { + return lhs < rhs; + } + if (op === '>=') { + return lhs >= rhs; } - OrSyntaxTemplate: &OrSyntaxTemplate !!js/function > - (args) => { - return args.reduce((t, k, i) => { - return t || k; - }); + if (op === '<=') { + return lhs <= rhs; + } + throw new Error(`unrecognized operation: ${op}`); + } + InSyntaxTemplate: !!js/function &InSyntaxTemplate > + (lhs, op, rhs) => { + if (op.includes('!') || op.includes('not')) { + if (typeof rhs === 'array') { + return rhs.indexOf(lhs) === -1; + } + return !(lhs in rhs); } - NotSyntaxTemplate: &NotSyntaxTemplate !!js/function > - (arg) => { - return !arg; + if (typeof rhs === 'array') { + return rhs.indexOf(lhs) !== -1; } - UnarySyntaxTemplate: &UnarySyntaxTemplate !!js/function > - (op, arg) => { + return lhs in rhs; + } + + AndSyntaxTemplate: !!js/function &AndSyntaxTemplate > + (args) => { + return args.reduce((t, k, i) => { + return t && k; + }); + } + OrSyntaxTemplate: !!js/function &OrSyntaxTemplate > + (args) => { + return args.reduce((t, k, i) => { + return t || k; + }); + } + NotSyntaxTemplate: !!js/function &NotSyntaxTemplate > + (arg) => { + return !arg; + } + UnarySyntaxTemplate: !!js/function &UnarySyntaxTemplate > + (op, arg) => { + switch(op) { + case '+': + return +arg; + case '-': + return -arg; + case '~': + return ~arg; + default: + throw new Error(`unrecognized operation: ${op}`); + } + } + BinarySyntaxTemplate: !!js/function &BinarySyntaxTemplate > + (args) => { + return args.reduce((s, op, i, arr) => { + if (i % 2 === 0) { + return s; + } + const rhs = arr[i + 1]; switch(op) { case '+': - return +arg; + return s + rhs; case '-': - return -arg; - case '~': - return ~arg; + return s - rhs; + case '*': + return s * rhs; + case '/': + return s / rhs; + case '**': + return Math.pow(s, rhs); + case '//': + return Math.floor(s, rhs); + case '%': + return s % rhs; + case '>>': + return s >> rhs; + case '<<': + return s << rhs; + case '|': + return s | rhs; + case '&': + return s & rhs; + case '^': + return s ^ rhs; default: throw new Error(`unrecognized operation: ${op}`); } - } - BinarySyntaxTemplate: &BinarySyntaxTemplate !!js/function > - (args) => { - return args.reduce((s, op, i, arr) => { - if (i % 2 === 0) { - return s; - } - const rhs = arr[i + 1]; - switch(op) { - case '+': - return s + rhs; - case '-': - return s - rhs; - case '*': - return s * rhs; - case '/': - return s / rhs; - case '**': - return Math.pow(s, rhs); - case '//': - return Math.floor(s, rhs); - case '%': - return s % rhs; - case '>>': - return s >> rhs; - case '<<': - return s << rhs; - case '|': - return s | rhs; - case '&': - return s & rhs; - case '^': - return s ^ rhs; - default: - throw new Error(`unrecognized operation: ${op}`); - } - }, args[0]); - } - ParensSyntaxTemplate: &ParensSyntaxTemplate !!js/function > - (arg) => { - return arg; - } - EosSyntaxTemplate: &EosSyntaxTemplate !!js/function > - () => { - return 'a unique thing'; - } - EofSyntaxTemplate: &EofSyntaxTemplate !!js/function > - () => { - return 'a unique thing'; - } - FloorDivTemplate: &FloorDivSyntaxTemplate null # Args: lhs, rhs - PowerTemplate: &PowerSyntaxTemplate null # Args: lhs, rhs - NewTemplate: &NewSyntaxTemplate null # Args: expression, skip?, code# [to check if meant to be skipped] + }, args[0]); + } + ParensSyntaxTemplate: !!js/function &ParensSyntaxTemplate > + (arg) => { + return arg; + } + EosSyntaxTemplate: !!js/function &EosSyntaxTemplate > + () => { + return 'a unique thing'; + } + EofSyntaxTemplate: !!js/function &EofSyntaxTemplate > + () => { + return 'a unique thing'; + } + FloorDivTemplate: &FloorDivSyntaxTemplate null # Args: lhs, rhs + PowerTemplate: &PowerSyntaxTemplate null # Args: lhs, rhs + NewTemplate: &NewSyntaxTemplate null # Args: expression, skip?, code# [to check if meant to be skipped] - ############################################# - # Literal Types # - # # - # Templates for literal type instance. Most # - # get passed the literal itself as an arg. # - # # - ############################################# - StringTypeTemplate: &StringTypeTemplate !!js/function > - (str) => { - let newStr = str.toString(); - if ( - (newStr.charAt(0) === '"' && newStr.charAt(newStr.length - 1) === '"') || - (newStr.charAt(0) === '\'' && newStr.charAt(newStr.length - 1) === '\'') - ) { - newStr = newStr.substr(1, newStr.length - 2); - } - return newStr; - } - RegexTypeTemplate: &RegexTypeTemplate !!js/function > - (pattern, flags) => { - return new RegExp(pattern, flags); - } - BoolTypeTemplate: &BoolTypeTemplate !!js/function > - (str) => { - return str.toLowerCase() === 'true'; - } - IntegerTypeTemplate: &IntegerTypeTemplate !!js/function > - (arg) => { - return parseInt(arg, 10); - } - DecimalTypeTemplate: &DecimalTypeTemplate !!js/function > - (arg) => { - return parseFloat(arg); - } - LongBasicTypeTemplate: &LongBasicTypeTemplate !!js/function > - (arg) => { - return parseInt(arg, 10); - } - HexTypeTemplate: &HexTypeTemplate !!js/function > - (arg) => { + ############################################# + # Literal Types # + # # + # Templates for literal type instance. Most # + # get passed the literal itself as an arg. # + # # + ############################################# + StringTypeTemplate: !!js/function &StringTypeTemplate > + (str) => { + let newStr = str.toString(); + if ( + (newStr.charAt(0) === '"' && newStr.charAt(newStr.length - 1) === '"') || + (newStr.charAt(0) === '\'' && newStr.charAt(newStr.length - 1) === '\'') + ) { + newStr = newStr.substr(1, newStr.length - 2); + } + return newStr; + } + RegexTypeTemplate: !!js/function &RegexTypeTemplate > + (pattern, flags) => { + return new RegExp(pattern, flags); + } + BoolTypeTemplate: !!js/function &BoolTypeTemplate > + (str) => { + return str.toLowerCase() === 'true'; + } + IntegerTypeTemplate: !!js/function &IntegerTypeTemplate > + (arg) => { + return parseInt(arg, 10); + } + DecimalTypeTemplate: !!js/function &DecimalTypeTemplate > + (arg) => { + return parseFloat(arg); + } + LongBasicTypeTemplate: !!js/function &LongBasicTypeTemplate > + (arg) => { + return parseInt(arg, 10); + } + HexTypeTemplate: !!js/function &HexTypeTemplate > + (arg) => { + return parseInt(arg, 16); + } + OctalTypeTemplate: !!js/function &OctalTypeTemplate > + (arg) => { + arg = arg.replace(/[oO]/g, '') + return parseInt(arg, 8); + } + NumericTypeTemplate: !!js/function &NumericTypeTemplate > + (arg) => { + if (arg.contains('x')) { return parseInt(arg, 16); } - OctalTypeTemplate: &OctalTypeTemplate !!js/function > - (arg) => { - arg = arg.replace(/[oO]/g, '') + if (arg.contains('o') || arg.startsWith('0')) { + arg = arg.replace(/o/g, '') return parseInt(arg, 8); } - NumericTypeTemplate: &NumericTypeTemplate !!js/function > - (arg) => { - if (arg.contains('x')) { - return parseInt(arg, 16); - } - if (arg.contains('o') || arg.startsWith('0')) { - arg = arg.replace(/o/g, '') - return parseInt(arg, 8); - } - return parseFloat(arg); - } - ArrayTypeTemplate: &ArrayTypeTemplate null - ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate null # Args: single array element, nestedness, lastElement? (note: not being used atm) - NullTypeTemplate: &NullTypeTemplate !!js/function > - () => { - return null; - } - UndefinedTypeTemplate: &UndefinedTypeTemplate !!js/function > - () => { - return undefined; - } - ObjectTypeTemplate: &ObjectTypeTemplate null # Args: literal (for empty array, is empty string. Otherwise all set) - ObjectTypeArgsTemplate: &ObjectTypeArgsTemplate null # Args: single object element [2] (i.e. array with [key, value]), nestedness# + return parseFloat(arg); + } + ArrayTypeTemplate: &ArrayTypeTemplate null + ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate null # Args: single array element, nestedness, lastElement? (note: not being used atm) + NullTypeTemplate: !!js/function &NullTypeTemplate > + () => { + return null; + } + UndefinedTypeTemplate: !!js/function &UndefinedTypeTemplate > + () => { + return undefined; + } + ObjectTypeTemplate: &ObjectTypeTemplate null # Args: literal (for empty array, is empty string. Otherwise all set) + ObjectTypeArgsTemplate: &ObjectTypeArgsTemplate null # Args: single object element [2] (i.e. array with [key, value]), nestedness# - ############################################# - # Symbols # - # # - # Templates for symbols, can be either # - # functions or variables. # - # # - # The *SymbolTemplates return names and # - # usually don't take any arguments. The # - # *SymbolArgsTemplates are invoked for func # - # calls. The first argument is always the # - # lhs, i.e. the symbol returned from the # - # corresponding SymbolTemplate. The rest of # - # the arguments are the processed arguments # - # passed to the original function. # - # # - ############################################# - CodeSymbolTemplate: &CodeSymbolTemplate null # No args - CodeSymbolArgsTemplate: &CodeSymbolArgsTemplate null # Args: code, scope - ObjectIdSymbolTemplate: &ObjectIdSymbolTemplate null # No args - ObjectIdSymbolArgsTemplate: &ObjectIdSymbolArgsTemplate null # Args: lhs, string (can be empty or null for no arg) - BinarySymbolTemplate: &BinarySymbolTemplate null - BinarySymbolArgsTemplate: &BinarySymbolArgsTemplate null - BinarySymbolSubtypeDefaultTemplate: &BinarySymbolSubtypeDefaultTemplate null - BinarySymbolSubtypeFunctionTemplate: &BinarySymbolSubtypeFunctionTemplate null - BinarySymbolSubtypeByteArrayTemplate: &BinarySymbolSubtypeByteArrayTemplate null - BinarySymbolSubtypeUuidOldTemplate: &BinarySymbolSubtypeUuidOldTemplate null - BinarySymbolSubtypeUuidTemplate: &BinarySymbolSubtypeUuidTemplate null - BinarySymbolSubtypeMd5Template: &BinarySymbolSubtypeMd5Template null - BinarySymbolSubtypeUserDefinedTemplate: &BinarySymbolSubtypeUserDefinedTemplate null - DBRefSymbolTemplate: &DBRefSymbolTemplate null # No args - DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate null # Args: lhs, coll, id, db - DoubleSymbolTemplate: &DoubleSymbolTemplate null # No args - DoubleSymbolArgsTemplate: &DoubleSymbolArgsTemplate null # Args: lhs, arg, argType (i.e. '_string', '_double') - Int32SymbolTemplate: &Int32SymbolTemplate null # No args - Int32SymbolArgsTemplate: &Int32SymbolArgsTemplate null # Args: lhs, arg, argType - LongSymbolTemplate: &LongSymbolTemplate null # No args - LongSymbolArgsTemplate: &LongSymbolArgsTemplate !!js/function > # Args: lhs, arg, argType - (lhs, arg) => { - return lhs.fromNumber(arg); - } - RegExpSymbolTemplate: &RegExpSymbolTemplate null # No args - RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null # Args: lhs, pattern, flags - SymbolSymbolTemplate: &SymbolSymbolTemplate null # No args - SymbolSymbolArgsTemplate: &SymbolSymbolArgsTemplate null # Args: lhs, arg - BSONRegExpSymbolTemplate: &BSONRegExpSymbolTemplate null # No args - BSONRegExpSymbolArgsTemplate: &BSONRegExpSymbolArgsTemplate null # Args: lhs, pattern, flags - Decimal128SymbolTemplate: &Decimal128SymbolTemplate null # No args - Decimal128SymbolArgsTemplate: &Decimal128SymbolArgsTemplate null # Args: lhs, arg - MinKeySymbolTemplate: &MinKeySymbolTemplate null # No args - MinKeySymbolArgsTemplate: &MinKeySymbolArgsTemplate null # No args - MaxKeySymbolTemplate: &MaxKeySymbolTemplate null # No args - MaxKeySymbolArgsTemplate: &MaxKeySymbolArgsTemplate null # No args - TimestampSymbolTemplate: &TimestampSymbolTemplate null # No args - TimestampSymbolArgsTemplate: &TimestampSymbolArgsTemplate null # Args: lhs, low, high - # non bson-specific - NumberSymbolTemplate: &NumberSymbolTemplate !!js/function > - () => { - return Number; - } - NumberSymbolArgsTemplate: &NumberSymbolArgsTemplate null # Args: lhs, arg, argType - DateSymbolTemplate: &DateSymbolTemplate null # No args - DateSymbolArgsTemplate: &DateSymbolArgsTemplate !!js/function > - (lhs, date, isString) => { - if (isString) { - return date.toString(); - } - return date; - } + ############################################# + # Symbols # + # # + # Templates for symbols, can be either # + # functions or variables. # + # # + # The *SymbolTemplates return names and # + # usually don't take any arguments. The # + # *SymbolArgsTemplates are invoked for func # + # calls. The first argument is always the # + # lhs, i.e. the symbol returned from the # + # corresponding SymbolTemplate. The rest of # + # the arguments are the processed arguments # + # passed to the original function. # + # # + ############################################# + CodeSymbolTemplate: &CodeSymbolTemplate null # No args + CodeSymbolArgsTemplate: &CodeSymbolArgsTemplate null # Args: code, scope + ObjectIdSymbolTemplate: &ObjectIdSymbolTemplate null # No args + ObjectIdSymbolArgsTemplate: &ObjectIdSymbolArgsTemplate null # Args: lhs, string (can be empty or null for no arg) + BinarySymbolTemplate: &BinarySymbolTemplate null + BinarySymbolArgsTemplate: &BinarySymbolArgsTemplate null + BinarySymbolSubtypeDefaultTemplate: &BinarySymbolSubtypeDefaultTemplate null + BinarySymbolSubtypeFunctionTemplate: &BinarySymbolSubtypeFunctionTemplate null + BinarySymbolSubtypeByteArrayTemplate: &BinarySymbolSubtypeByteArrayTemplate null + BinarySymbolSubtypeUuidOldTemplate: &BinarySymbolSubtypeUuidOldTemplate null + BinarySymbolSubtypeUuidTemplate: &BinarySymbolSubtypeUuidTemplate null + BinarySymbolSubtypeMd5Template: &BinarySymbolSubtypeMd5Template null + BinarySymbolSubtypeUserDefinedTemplate: &BinarySymbolSubtypeUserDefinedTemplate null + DBRefSymbolTemplate: &DBRefSymbolTemplate null # No args + DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate null # Args: lhs, coll, id, db + DoubleSymbolTemplate: &DoubleSymbolTemplate null # No args + DoubleSymbolArgsTemplate: &DoubleSymbolArgsTemplate null # Args: lhs, arg, argType (i.e. '_string', '_double') + Int32SymbolTemplate: &Int32SymbolTemplate null # No args + Int32SymbolArgsTemplate: &Int32SymbolArgsTemplate null # Args: lhs, arg, argType + LongSymbolTemplate: &LongSymbolTemplate null # No args + LongSymbolArgsTemplate: + !!js/function &LongSymbolArgsTemplate > # Args: lhs, arg, argType + (lhs, arg) => { + return lhs.fromNumber(arg); + } + RegExpSymbolTemplate: &RegExpSymbolTemplate null # No args + RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null # Args: lhs, pattern, flags + SymbolSymbolTemplate: &SymbolSymbolTemplate null # No args + SymbolSymbolArgsTemplate: &SymbolSymbolArgsTemplate null # Args: lhs, arg + BSONRegExpSymbolTemplate: &BSONRegExpSymbolTemplate null # No args + BSONRegExpSymbolArgsTemplate: &BSONRegExpSymbolArgsTemplate null # Args: lhs, pattern, flags + Decimal128SymbolTemplate: &Decimal128SymbolTemplate null # No args + Decimal128SymbolArgsTemplate: &Decimal128SymbolArgsTemplate null # Args: lhs, arg + MinKeySymbolTemplate: &MinKeySymbolTemplate null # No args + MinKeySymbolArgsTemplate: &MinKeySymbolArgsTemplate null # No args + MaxKeySymbolTemplate: &MaxKeySymbolTemplate null # No args + MaxKeySymbolArgsTemplate: &MaxKeySymbolArgsTemplate null # No args + TimestampSymbolTemplate: &TimestampSymbolTemplate null # No args + TimestampSymbolArgsTemplate: &TimestampSymbolArgsTemplate null # Args: lhs, low, high + # non bson-specific + NumberSymbolTemplate: !!js/function &NumberSymbolTemplate > + () => { + return Number; + } + NumberSymbolArgsTemplate: &NumberSymbolArgsTemplate null # Args: lhs, arg, argType + DateSymbolTemplate: &DateSymbolTemplate null # No args + DateSymbolArgsTemplate: !!js/function &DateSymbolArgsTemplate > + (lhs, date, isString) => { + if (isString) { + return date.toString(); + } + return date; + } - ############################################# - # Object Attributes/Methods # - # # - # These're variables or functions called on # - # instantiated objects. For example, # - # ObjectId().isValid() or Timestamp().t # - # # - # They follow the same pattern with the - # *Template/*ArgsTemplates: usually no args # - # to the Template and lhs plus any original # - # arguments to the ArgsTemplate. # - # # - ############################################# - CodeCodeTemplate: &CodeCodeTemplate null - CodeCodeArgsTemplate: &CodeCodeArgsTemplate null - CodeScopeTemplate: &CodeScopeTemplate null - CodeScopeArgsTemplate: &CodeScopeArgsTemplate null - ObjectIdToStringTemplate: &ObjectIdToStringTemplate !!js/function > - (lhs, rhs) => { - return lhs.toString(); - } - ObjectIdToStringArgsTemplate: &ObjectIdToStringArgsTemplate !!js/function > - (lhs) => { - return lhs; - } - ObjectIdEqualsTemplate: &ObjectIdEqualsTemplate !!js/function > - (lhs) => { - return lhs; - } - ObjectIdEqualsArgsTemplate: &ObjectIdEqualsArgsTemplate !!js/function > - (lhs, rhs) => { - return lhs.equals(rhs); - } - ObjectIdGetTimestampTemplate: &ObjectIdGetTimestampTemplate !!js/function > - (lhs, rhs) => { - return lhs.getTimestamp(); - } - ObjectIdGetTimestampArgsTemplate: &ObjectIdGetTimestampArgsTemplate !!js/function > - (lhs) => { - return lhs; - } - ObjectIdIsValidTemplate: &ObjectIdIsValidTemplate !!js/function > - (lhs, rhs) => { - return lhs.isValid; - } - ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate null - BinaryValueTemplate: &BinaryValueTemplate null - BinaryValueArgsTemplate: &BinaryValueArgsTemplate null - BinaryLengthTemplate: &BinaryLengthTemplate null - BinaryLengthArgsTemplate: &BinaryLengthArgsTemplate null - BinaryToStringTemplate: &BinaryToStringTemplate null - BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate null - BinarySubtypeTemplate: &BinarySubtypeTemplate null - BinarySubtypeArgsTemplate: &BinarySubtypeArgsTemplate null - DBRefGetDBTemplate: &DBRefGetDBTemplate !!js/function > - (lhs, rhs) => { - return lhs.db; - } - DBRefGetCollectionTemplate: &DBRefGetCollectionTemplate !!js/function > - (lhs, rhs) => { - return lhs.collection; - } - DBRefGetIdTemplate: &DBRefGetIdTemplate !!js/function > - (lhs, rhs) => { - return lhs.oid; - } - DBRefGetDBArgsTemplate: &DBRefGetDBArgsTemplate !!js/function > - (lhs, rhs) => { - return lhs; - } - DBRefGetCollectionArgsTemplate: &DBRefGetCollectionArgsTemplate !!js/function > - (lhs, rhs) => { - return lhs; - } - DBRefGetIdArgsTemplate: &DBRefGetIdArgsTemplate !!js/function > - (lhs, rhs) => { - return lhs; - } - LongEqualsTemplate: &LongEqualsTemplate null - LongEqualsArgsTemplate: &LongEqualsArgsTemplate null - LongToStringTemplate: &LongToStringTemplate null - LongToStringArgsTemplate: &LongToStringArgsTemplate null - LongToIntTemplate: &LongToIntTemplate null - LongToIntArgsTemplate: &LongToIntArgsTemplate null - LongValueOfTemplate: &LongValueOfTemplate null - LongValueOfArgsTemplate: &LongValueOfArgsTemplate null - LongToNumberTemplate: &LongToNumberTemplate null - LongToNumberArgsTemplate: &LongToNumberArgsTemplate null - LongAddTemplate: &LongAddTemplate null - LongAddArgsTemplate: &LongAddArgsTemplate null - LongSubtractTemplate: &LongSubtractTemplate null - LongSubtractArgsTemplate: &LongSubtractArgsTemplate null - LongMultiplyTemplate: &LongMultiplyTemplate null - LongMultiplyArgsTemplate: &LongMultiplyArgsTemplate null - LongDivTemplate: &LongDivTemplate null - LongDivArgsTemplate: &LongDivArgsTemplate null - LongModuloTemplate: &LongModuloTemplate null - LongModuloArgsTemplate: &LongModuloArgsTemplate null - LongAndTemplate: &LongAndTemplate null - LongAndArgsTemplate: &LongAndArgsTemplate null - LongOrTemplate: &LongOrTemplate null - LongOrArgsTemplate: &LongOrArgsTemplate null - LongXorTemplate: &LongXorTemplate null - LongXorArgsTemplate: &LongXorArgsTemplate null - LongShiftLeftTemplate: &LongShiftLeftTemplate null - LongShiftLeftArgsTemplate: &LongShiftLeftArgsTemplate null - LongShiftRightTemplate: &LongShiftRightTemplate null - LongShiftRightArgsTemplate: &LongShiftRightArgsTemplate null - LongCompareTemplate: &LongCompareTemplate null - LongCompareArgsTemplate: &LongCompareArgsTemplate null - LongIsOddTemplate: &LongIsOddTemplate null - LongIsOddArgsTemplate: &LongIsOddArgsTemplate null - LongIsZeroTemplate: &LongIsZeroTemplate null - LongIsZeroArgsTemplate: &LongIsZeroArgsTemplate null - LongIsNegativeTemplate: &LongIsNegativeTemplate null - LongIsNegativeArgsTemplate: &LongIsNegativeArgsTemplate null - LongNegateTemplate: &LongNegateTemplate null - LongNegateArgsTemplate: &LongNegateArgsTemplate null - LongNotTemplate: &LongNotTemplate null - LongNotArgsTemplate: &LongNotArgsTemplate null - LongNotEqualsTemplate: &LongNotEqualsTemplate null - LongNotEqualsArgsTemplate: &LongNotEqualsArgsTemplate null - LongGreaterThanTemplate: &LongGreaterThanTemplate null - LongGreaterThanArgsTemplate: &LongGreaterThanArgsTemplate null - LongGreaterThanOrEqualTemplate: &LongGreaterThanOrEqualTemplate null - LongGreaterThanOrEqualArgsTemplate: &LongGreaterThanOrEqualArgsTemplate null - LongLessThanTemplate: &LongLessThanTemplate null - LongLessThanArgsTemplate: &LongLessThanArgsTemplate null - LongLessThanOrEqualTemplate: &LongLessThanOrEqualTemplate null - LongLessThanOrEqualArgsTemplate: &LongLessThanOrEqualArgsTemplate null - LongFloatApproxTemplate: &LongFloatApproxTemplate !!js/function > - (lhs, rhs) => { - return lhs.toNumber(); - } - LongTopTemplate: &LongTopTemplate !!js/function > - (lhs, rhs) => { - return lhs.high; - } - LongBottomTemplate: &LongBottomTemplate !!js/function > - (lhs, rhs) => { - return lhs.low; - } - TimestampToStringTemplate: &TimestampToStringTemplate null - TimestampToStringArgsTemplate: &TimestampToStringArgsTemplate null - TimestampEqualsTemplate: &TimestampEqualsTemplate null - TimestampEqualsArgsTemplate: &TimestampEqualsArgsTemplate null - TimestampGetLowBitsTemplate: &TimestampGetLowBitsTemplate !!js/function > - (lhs, rhs) => { - return lhs.getLowBits(); - } - TimestampGetLowBitsArgsTemplate: &TimestampGetLowBitsArgsTemplate !!js/function > - (lhs, rhs) => { - return lhs; - } - TimestampGetHighBitsTemplate: &TimestampGetHighBitsTemplate !!js/function > - (lhs, rhs) => { - return lhs.getHighBits(); - } - TimestampGetHighBitsArgsTemplate: &TimestampGetHighBitsArgsTemplate !!js/function > - (lhs, rhs) => { - return lhs; - } - TimestampTTemplate: &TimestampTTemplate !!js/function > - (lhs, rhs) => { - return lhs.getLowBits(); - } - TimestampITemplate: &TimestampITemplate !!js/function > - (lhs, rhs) => { - return lhs.getHighBits(); - } - TimestampAsDateTemplate: &TimestampAsDateTemplate !!js/function > - (lhs, rhs) => { - return new Date(lhs.getHighBits() * 1000); - } - TimestampAsDateArgsTemplate: &TimestampAsDateArgsTemplate !!js/function > - (lhs, rhs) => { - return lhs; - } - TimestampCompareTemplate: &TimestampCompareTemplate null - TimestampCompareArgsTemplate: &TimestampCompareArgsTemplate null - TimestampNotEqualsTemplate: &TimestampNotEqualsTemplate null - TimestampNotEqualsArgsTemplate: &TimestampNotEqualsArgsTemplate null - TimestampGreaterThanTemplate: &TimestampGreaterThanTemplate null - TimestampGreaterThanArgsTemplate: &TimestampGreaterThanArgsTemplate null - TimestampGreaterThanOrEqualTemplate: &TimestampGreaterThanOrEqualTemplate null - TimestampGreaterThanOrEqualArgsTemplate: &TimestampGreaterThanOrEqualArgsTemplate null - TimestampLessThanTemplate: &TimestampLessThanTemplate null - TimestampLessThanArgsTemplate: &TimestampLessThanArgsTemplate null - TimestampLessThanOrEqualTemplate: &TimestampLessThanOrEqualTemplate null - TimestampLessThanOrEqualArgsTemplate: &TimestampLessThanOrEqualArgsTemplate null - SymbolValueOfTemplate: &SymbolValueOfTemplate null - SymbolValueOfArgsTemplate: &SymbolValueOfArgsTemplate null - SymbolInspectTemplate: &SymbolInspectTemplate null - SymbolInspectArgsTemplate: &SymbolInspectArgsTemplate null - SymbolToStringTemplate: &SymbolToStringTemplate null - SymbolToStringArgsTemplate: &SymbolToStringArgsTemplate null - Decimal128ToStringTemplate: &Decimal128ToStringTemplate null - Decimal128ToStringArgsTemplate: &Decimal128ToStringArgsTemplate null - # non bson-specific - DateSymbolNowTemplate: &DateSymbolNowTemplate !!js/function > - () => { - return Date.now; - } - DateSymbolNowArgsTemplate: &DateSymbolNowArgsTemplate null - - ############################################# - # Symbol Attributes/Methods # - # # - # These're variables or functions called on # - # symbols. Also called bson-utils. # - # # - # They are basically the same thing as # - # object attributes/methods, but need to be # - # distinguished since they are separate # - # namespaces that happen to have the same # - # name which is v confusing. # - # # - # For example, ObjectId().toString() is an # - # object method, while ObjectId.fromString # - # is a symbol attribute. These are two # - # separate ObjectId related namespaces that # - # don't overlap. # - # # - ############################################# - LongSymbolMaxTemplate: &LongSymbolMaxTemplate null - LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null - LongSymbolMinTemplate: &LongSymbolMinTemplate null - LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null - LongSymbolZeroTemplate: &LongSymbolZeroTemplate null - LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null - LongSymbolOneTemplate: &LongSymbolOneTemplate null - LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null - LongSymbolNegOneTemplate: &LongSymbolNegOneTemplate null - LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null - LongSymbolFromBitsTemplate: &LongSymbolFromBitsTemplate null - LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate null - LongSymbolFromIntTemplate: &LongSymbolFromIntTemplate null - LongSymbolFromIntArgsTemplate: &LongSymbolFromIntArgsTemplate null - LongSymbolFromNumberTemplate: &LongSymbolFromNumberTemplate null - LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate null - LongSymbolFromStringTemplate: &LongSymbolFromStringTemplate null - LongSymbolFromStringArgsTemplate: &LongSymbolFromStringArgsTemplate null - Decimal128SymbolFromStringTemplate: &Decimal128SymbolFromStringTemplate null - Decimal128SymbolFromStringArgsTemplate: &Decimal128SymbolFromStringArgsTemplate null - ObjectIdCreateFromHexStringTemplate: &ObjectIdCreateFromHexStringTemplate null - ObjectIdCreateFromHexStringArgsTemplate: &ObjectIdCreateFromHexStringArgsTemplate null - ObjectIdCreateFromTimeTemplate: &ObjectIdCreateFromTimeTemplate !!js/function > - (lhs, rhs) => { - return lhs.createFromTime; - } - ObjectIdCreateFromTimeArgsTemplate: &ObjectIdCreateFromTimeArgsTemplate null - # non bson-specific would go here, but there aren't any atm. + ############################################# + # Object Attributes/Methods # + # # + # These're variables or functions called on # + # instantiated objects. For example, # + # ObjectId().isValid() or Timestamp().t # + # # + # They follow the same pattern with the + # *Template/*ArgsTemplates: usually no args # + # to the Template and lhs plus any original # + # arguments to the ArgsTemplate. # + # # + ############################################# + CodeCodeTemplate: &CodeCodeTemplate null + CodeCodeArgsTemplate: &CodeCodeArgsTemplate null + CodeScopeTemplate: &CodeScopeTemplate null + CodeScopeArgsTemplate: &CodeScopeArgsTemplate null + ObjectIdToStringTemplate: !!js/function &ObjectIdToStringTemplate > + (lhs, rhs) => { + return lhs.toString(); + } + ObjectIdToStringArgsTemplate: !!js/function &ObjectIdToStringArgsTemplate > + (lhs) => { + return lhs; + } + ObjectIdEqualsTemplate: !!js/function &ObjectIdEqualsTemplate > + (lhs) => { + return lhs; + } + ObjectIdEqualsArgsTemplate: !!js/function &ObjectIdEqualsArgsTemplate > + (lhs, rhs) => { + return lhs.equals(rhs); + } + ObjectIdGetTimestampTemplate: !!js/function &ObjectIdGetTimestampTemplate > + (lhs, rhs) => { + return lhs.getTimestamp(); + } + ObjectIdGetTimestampArgsTemplate: + !!js/function &ObjectIdGetTimestampArgsTemplate > + (lhs) => { + return lhs; + } + ObjectIdIsValidTemplate: !!js/function &ObjectIdIsValidTemplate > + (lhs, rhs) => { + return lhs.isValid; + } + ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate null + BinaryValueTemplate: &BinaryValueTemplate null + BinaryValueArgsTemplate: &BinaryValueArgsTemplate null + BinaryLengthTemplate: &BinaryLengthTemplate null + BinaryLengthArgsTemplate: &BinaryLengthArgsTemplate null + BinaryToStringTemplate: &BinaryToStringTemplate null + BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate null + BinarySubtypeTemplate: &BinarySubtypeTemplate null + BinarySubtypeArgsTemplate: &BinarySubtypeArgsTemplate null + DBRefGetDBTemplate: !!js/function &DBRefGetDBTemplate > + (lhs, rhs) => { + return lhs.db; + } + DBRefGetCollectionTemplate: !!js/function &DBRefGetCollectionTemplate > + (lhs, rhs) => { + return lhs.collection; + } + DBRefGetIdTemplate: !!js/function &DBRefGetIdTemplate > + (lhs, rhs) => { + return lhs.oid; + } + DBRefGetDBArgsTemplate: !!js/function &DBRefGetDBArgsTemplate > + (lhs, rhs) => { + return lhs; + } + DBRefGetCollectionArgsTemplate: + !!js/function &DBRefGetCollectionArgsTemplate > + (lhs, rhs) => { + return lhs; + } + DBRefGetIdArgsTemplate: !!js/function &DBRefGetIdArgsTemplate > + (lhs, rhs) => { + return lhs; + } + LongEqualsTemplate: &LongEqualsTemplate null + LongEqualsArgsTemplate: &LongEqualsArgsTemplate null + LongToStringTemplate: &LongToStringTemplate null + LongToStringArgsTemplate: &LongToStringArgsTemplate null + LongToIntTemplate: &LongToIntTemplate null + LongToIntArgsTemplate: &LongToIntArgsTemplate null + LongValueOfTemplate: &LongValueOfTemplate null + LongValueOfArgsTemplate: &LongValueOfArgsTemplate null + LongToNumberTemplate: &LongToNumberTemplate null + LongToNumberArgsTemplate: &LongToNumberArgsTemplate null + LongAddTemplate: &LongAddTemplate null + LongAddArgsTemplate: &LongAddArgsTemplate null + LongSubtractTemplate: &LongSubtractTemplate null + LongSubtractArgsTemplate: &LongSubtractArgsTemplate null + LongMultiplyTemplate: &LongMultiplyTemplate null + LongMultiplyArgsTemplate: &LongMultiplyArgsTemplate null + LongDivTemplate: &LongDivTemplate null + LongDivArgsTemplate: &LongDivArgsTemplate null + LongModuloTemplate: &LongModuloTemplate null + LongModuloArgsTemplate: &LongModuloArgsTemplate null + LongAndTemplate: &LongAndTemplate null + LongAndArgsTemplate: &LongAndArgsTemplate null + LongOrTemplate: &LongOrTemplate null + LongOrArgsTemplate: &LongOrArgsTemplate null + LongXorTemplate: &LongXorTemplate null + LongXorArgsTemplate: &LongXorArgsTemplate null + LongShiftLeftTemplate: &LongShiftLeftTemplate null + LongShiftLeftArgsTemplate: &LongShiftLeftArgsTemplate null + LongShiftRightTemplate: &LongShiftRightTemplate null + LongShiftRightArgsTemplate: &LongShiftRightArgsTemplate null + LongCompareTemplate: &LongCompareTemplate null + LongCompareArgsTemplate: &LongCompareArgsTemplate null + LongIsOddTemplate: &LongIsOddTemplate null + LongIsOddArgsTemplate: &LongIsOddArgsTemplate null + LongIsZeroTemplate: &LongIsZeroTemplate null + LongIsZeroArgsTemplate: &LongIsZeroArgsTemplate null + LongIsNegativeTemplate: &LongIsNegativeTemplate null + LongIsNegativeArgsTemplate: &LongIsNegativeArgsTemplate null + LongNegateTemplate: &LongNegateTemplate null + LongNegateArgsTemplate: &LongNegateArgsTemplate null + LongNotTemplate: &LongNotTemplate null + LongNotArgsTemplate: &LongNotArgsTemplate null + LongNotEqualsTemplate: &LongNotEqualsTemplate null + LongNotEqualsArgsTemplate: &LongNotEqualsArgsTemplate null + LongGreaterThanTemplate: &LongGreaterThanTemplate null + LongGreaterThanArgsTemplate: &LongGreaterThanArgsTemplate null + LongGreaterThanOrEqualTemplate: &LongGreaterThanOrEqualTemplate null + LongGreaterThanOrEqualArgsTemplate: &LongGreaterThanOrEqualArgsTemplate null + LongLessThanTemplate: &LongLessThanTemplate null + LongLessThanArgsTemplate: &LongLessThanArgsTemplate null + LongLessThanOrEqualTemplate: &LongLessThanOrEqualTemplate null + LongLessThanOrEqualArgsTemplate: &LongLessThanOrEqualArgsTemplate null + LongFloatApproxTemplate: !!js/function &LongFloatApproxTemplate > + (lhs, rhs) => { + return lhs.toNumber(); + } + LongTopTemplate: !!js/function &LongTopTemplate > + (lhs, rhs) => { + return lhs.high; + } + LongBottomTemplate: !!js/function &LongBottomTemplate > + (lhs, rhs) => { + return lhs.low; + } + TimestampToStringTemplate: &TimestampToStringTemplate null + TimestampToStringArgsTemplate: &TimestampToStringArgsTemplate null + TimestampEqualsTemplate: &TimestampEqualsTemplate null + TimestampEqualsArgsTemplate: &TimestampEqualsArgsTemplate null + TimestampGetLowBitsTemplate: !!js/function &TimestampGetLowBitsTemplate > + (lhs, rhs) => { + return lhs.getLowBits(); + } + TimestampGetLowBitsArgsTemplate: + !!js/function &TimestampGetLowBitsArgsTemplate > + (lhs, rhs) => { + return lhs; + } + TimestampGetHighBitsTemplate: !!js/function &TimestampGetHighBitsTemplate > + (lhs, rhs) => { + return lhs.getHighBits(); + } + TimestampGetHighBitsArgsTemplate: + !!js/function &TimestampGetHighBitsArgsTemplate > + (lhs, rhs) => { + return lhs; + } + TimestampTTemplate: !!js/function &TimestampTTemplate > + (lhs, rhs) => { + return lhs.getLowBits(); + } + TimestampITemplate: !!js/function &TimestampITemplate > + (lhs, rhs) => { + return lhs.getHighBits(); + } + TimestampAsDateTemplate: !!js/function &TimestampAsDateTemplate > + (lhs, rhs) => { + return new Date(lhs.getHighBits() * 1000); + } + TimestampAsDateArgsTemplate: !!js/function &TimestampAsDateArgsTemplate > + (lhs, rhs) => { + return lhs; + } + TimestampCompareTemplate: &TimestampCompareTemplate null + TimestampCompareArgsTemplate: &TimestampCompareArgsTemplate null + TimestampNotEqualsTemplate: &TimestampNotEqualsTemplate null + TimestampNotEqualsArgsTemplate: &TimestampNotEqualsArgsTemplate null + TimestampGreaterThanTemplate: &TimestampGreaterThanTemplate null + TimestampGreaterThanArgsTemplate: &TimestampGreaterThanArgsTemplate null + TimestampGreaterThanOrEqualTemplate: &TimestampGreaterThanOrEqualTemplate null + TimestampGreaterThanOrEqualArgsTemplate: &TimestampGreaterThanOrEqualArgsTemplate null + TimestampLessThanTemplate: &TimestampLessThanTemplate null + TimestampLessThanArgsTemplate: &TimestampLessThanArgsTemplate null + TimestampLessThanOrEqualTemplate: &TimestampLessThanOrEqualTemplate null + TimestampLessThanOrEqualArgsTemplate: &TimestampLessThanOrEqualArgsTemplate null + SymbolValueOfTemplate: &SymbolValueOfTemplate null + SymbolValueOfArgsTemplate: &SymbolValueOfArgsTemplate null + SymbolInspectTemplate: &SymbolInspectTemplate null + SymbolInspectArgsTemplate: &SymbolInspectArgsTemplate null + SymbolToStringTemplate: &SymbolToStringTemplate null + SymbolToStringArgsTemplate: &SymbolToStringArgsTemplate null + Decimal128ToStringTemplate: &Decimal128ToStringTemplate null + Decimal128ToStringArgsTemplate: &Decimal128ToStringArgsTemplate null + # non bson-specific + DateSymbolNowTemplate: !!js/function &DateSymbolNowTemplate > + () => { + return Date.now; + } + DateSymbolNowArgsTemplate: &DateSymbolNowArgsTemplate null + ############################################# + # Symbol Attributes/Methods # + # # + # These're variables or functions called on # + # symbols. Also called bson-utils. # + # # + # They are basically the same thing as # + # object attributes/methods, but need to be # + # distinguished since they are separate # + # namespaces that happen to have the same # + # name which is v confusing. # + # # + # For example, ObjectId().toString() is an # + # object method, while ObjectId.fromString # + # is a symbol attribute. These are two # + # separate ObjectId related namespaces that # + # don't overlap. # + # # + ############################################# + LongSymbolMaxTemplate: &LongSymbolMaxTemplate null + LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null + LongSymbolMinTemplate: &LongSymbolMinTemplate null + LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null + LongSymbolZeroTemplate: &LongSymbolZeroTemplate null + LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null + LongSymbolOneTemplate: &LongSymbolOneTemplate null + LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null + LongSymbolNegOneTemplate: &LongSymbolNegOneTemplate null + LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null + LongSymbolFromBitsTemplate: &LongSymbolFromBitsTemplate null + LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate null + LongSymbolFromIntTemplate: &LongSymbolFromIntTemplate null + LongSymbolFromIntArgsTemplate: &LongSymbolFromIntArgsTemplate null + LongSymbolFromNumberTemplate: &LongSymbolFromNumberTemplate null + LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate null + LongSymbolFromStringTemplate: &LongSymbolFromStringTemplate null + LongSymbolFromStringArgsTemplate: &LongSymbolFromStringArgsTemplate null + Decimal128SymbolFromStringTemplate: &Decimal128SymbolFromStringTemplate null + Decimal128SymbolFromStringArgsTemplate: &Decimal128SymbolFromStringArgsTemplate null + ObjectIdCreateFromHexStringTemplate: &ObjectIdCreateFromHexStringTemplate null + ObjectIdCreateFromHexStringArgsTemplate: &ObjectIdCreateFromHexStringArgsTemplate null + ObjectIdCreateFromTimeTemplate: + !!js/function &ObjectIdCreateFromTimeTemplate > + (lhs, rhs) => { + return lhs.createFromTime; + } + ObjectIdCreateFromTimeArgsTemplate: &ObjectIdCreateFromTimeArgsTemplate null + # non bson-specific would go here, but there aren't any atm. - ############################################# - # Imports # - # # - # Each type has a 'code' that is consistent # - # between languages. The import templates # - # for each code generate the required # - # statement for each type. No args. # - # # - # The ImportTemplate collects everything # - # into one statement. # - # # - ############################################# - ImportTemplate: &ImportTemplate null - DriverImportTemplate: &DriverImportTemplate null - 0ImportTemplate: &0ImportTemplate null - 1ImportTemplate: &1ImportTemplate null - 2ImportTemplate: &2ImportTemplate null - 3ImportTemplate: &3ImportTemplate null - 4ImportTemplate: &4ImportTemplate null - 5ImportTemplate: &5ImportTemplate null - 6ImportTemplate: &6ImportTemplate null - 7ImportTemplate: &7ImportTemplate null - 8ImportTemplate: &8ImportTemplate null - 9ImportTemplate: &9ImportTemplate null - 10ImportTemplate: &10ImportTemplate null - 11ImportTemplate: &11ImportTemplate null - 12ImportTemplate: &12ImportTemplate null - 100ImportTemplate: &100ImportTemplate null - 101ImportTemplate: &101ImportTemplate null - 102ImportTemplate: &102ImportTemplate null - 103ImportTemplate: &103ImportTemplate null - 104ImportTemplate: &104ImportTemplate null - 105ImportTemplate: &105ImportTemplate null - 106ImportTemplate: &106ImportTemplate null - 107ImportTemplate: &107ImportTemplate null - 108ImportTemplate: &108ImportTemplate null - 109ImportTemplate: &109ImportTemplate null - 110ImportTemplate: &110ImportTemplate null - 111ImportTemplate: &111ImportTemplate null - 112ImportTemplate: &112ImportTemplate null - 113ImportTemplate: &113ImportTemplate null - 114ImportTemplate: &114ImportTemplate null - 200ImportTemplate: &200ImportTemplate null - 201ImportTemplate: &201ImportTemplate null - 300ImportTemplate: &300ImportTemplate null - 301ImportTemplate: &301ImportTemplate null - 302ImportTemplate: &302ImportTemplate null - 303ImportTemplate: &303ImportTemplate null - 304ImportTemplate: &304ImportTemplate null - 305ImportTemplate: &305ImportTemplate null - 306ImportTemplate: &306ImportTemplate null + ############################################# + # Imports # + # # + # Each type has a 'code' that is consistent # + # between languages. The import templates # + # for each code generate the required # + # statement for each type. No args. # + # # + # The ImportTemplate collects everything # + # into one statement. # + # # + ############################################# + ImportTemplate: &ImportTemplate null + DriverImportTemplate: &DriverImportTemplate null + 0ImportTemplate: &0ImportTemplate null + 1ImportTemplate: &1ImportTemplate null + 2ImportTemplate: &2ImportTemplate null + 3ImportTemplate: &3ImportTemplate null + 4ImportTemplate: &4ImportTemplate null + 5ImportTemplate: &5ImportTemplate null + 6ImportTemplate: &6ImportTemplate null + 7ImportTemplate: &7ImportTemplate null + 8ImportTemplate: &8ImportTemplate null + 9ImportTemplate: &9ImportTemplate null + 10ImportTemplate: &10ImportTemplate null + 11ImportTemplate: &11ImportTemplate null + 12ImportTemplate: &12ImportTemplate null + 100ImportTemplate: &100ImportTemplate null + 101ImportTemplate: &101ImportTemplate null + 102ImportTemplate: &102ImportTemplate null + 103ImportTemplate: &103ImportTemplate null + 104ImportTemplate: &104ImportTemplate null + 105ImportTemplate: &105ImportTemplate null + 106ImportTemplate: &106ImportTemplate null + 107ImportTemplate: &107ImportTemplate null + 108ImportTemplate: &108ImportTemplate null + 109ImportTemplate: &109ImportTemplate null + 110ImportTemplate: &110ImportTemplate null + 111ImportTemplate: &111ImportTemplate null + 112ImportTemplate: &112ImportTemplate null + 113ImportTemplate: &113ImportTemplate null + 114ImportTemplate: &114ImportTemplate null + 200ImportTemplate: &200ImportTemplate null + 201ImportTemplate: &201ImportTemplate null + 300ImportTemplate: &300ImportTemplate null + 301ImportTemplate: &301ImportTemplate null + 302ImportTemplate: &302ImportTemplate null + 303ImportTemplate: &303ImportTemplate null + 304ImportTemplate: &304ImportTemplate null + 305ImportTemplate: &305ImportTemplate null + 306ImportTemplate: &306ImportTemplate null diff --git a/packages/bson-transpilers/symbols/php/templates.yaml b/packages/bson-transpilers/symbols/php/templates.yaml index aa34155f9dc..e90af063cab 100644 --- a/packages/bson-transpilers/symbols/php/templates.yaml +++ b/packages/bson-transpilers/symbols/php/templates.yaml @@ -18,1234 +18,1263 @@ # # ############################################# Templates: - ######## - # Misc # - ######## + ######## + # Misc # + ######## - # Filter out regex flags that have translations or are unsupported. - RegexFlags: &RegexFlags - i: 'i' - m: 'm' - u: '' - y: '' - g: '' - BSONRegexFlags: &BSONRegexFlags - i: 'i' - m: 'm' - x: 'x' - s: 's' - l: '' - u: '' + # Filter out regex flags that have translations or are unsupported. + RegexFlags: &RegexFlags + i: 'i' + m: 'm' + u: '' + y: '' + g: '' + BSONRegexFlags: &BSONRegexFlags + i: 'i' + m: 'm' + x: 'x' + s: 's' + l: '' + u: '' - ############################################# - # Syntax # - # # - # Templates for language syntax expressions # - # # - ############################################# + ############################################# + # Syntax # + # # + # Templates for language syntax expressions # + # # + ############################################# - DriverTemplate: &DriverTemplate !!js/function > - (spec) => { - const getKey = k => { - let translateKey = { - project: 'projection', - } - return k in translateKey ? translateKey[k] : k - }; - const options = spec.options; - const filter = spec.filter || {}; - const exportMode = spec.exportMode; - delete spec.options; - delete spec.filter; - delete spec.exportMode; - - comment = [] - .concat('// Requires the MongoDB PHP Driver') - .concat('// https://www.mongodb.com/docs/drivers/php/') - .join('\n') - ; - const client = `$client = new Client('${options.uri}');`; - const collection = `$collection = $client->selectCollection('${options.database}', '${options.collection}');`; - - if ('aggregation' in spec) { - // Note: toPHPArray() may not be required here as Compass should always provide an array for spec.aggregation - return [] - .concat(comment) - .concat('') - .concat(client) - .concat(collection) - .concat(`$cursor = $collection->aggregate(${this.utils.toPHPArray(spec.aggregation)});`) - .join('\n') - ; - } - - let driverMethod; - switch (exportMode) { - case 'Delete Query': - driverMethod = 'delete_many'; - break; - case 'Update Query': - driverMethod = 'update_many'; - break; - default: - driverMethod = 'find'; + DriverTemplate: !!js/function &DriverTemplate > + (spec) => { + const getKey = k => { + let translateKey = { + project: 'projection', } + return k in translateKey ? translateKey[k] : k + }; + const options = spec.options; + const filter = spec.filter || {}; + const exportMode = spec.exportMode; + delete spec.options; + delete spec.filter; + delete spec.exportMode; - let args = Object.keys(spec).reduce( - (result, k) => { - let val = this.utils.removePHPObject(spec[k]); - const divider = result === '' ? '' : ',\n'; - return `${result}${divider} '${getKey(k)}' => ${val}`; - }, - '' - ); - args = args ? `, [\n${args}\n]` : ''; + comment = [] + .concat('// Requires the MongoDB PHP Driver') + .concat('// https://www.mongodb.com/docs/drivers/php/') + .join('\n') + ; + const client = `$client = new Client('${options.uri}');`; + const collection = `$collection = $client->selectCollection('${options.database}', '${options.collection}');`; + if ('aggregation' in spec) { + // Note: toPHPArray() may not be required here as Compass should always provide an array for spec.aggregation return [] .concat(comment) .concat('') .concat(client) .concat(collection) - .concat(`$cursor = $collection->${driverMethod}(${this.utils.removePHPObject(filter)}${args});`) + .concat(`$cursor = $collection->aggregate(${this.utils.toPHPArray(spec.aggregation)});`) .join('\n') ; } - EqualitySyntaxTemplate: &EqualitySyntaxTemplate !!js/function > - (lhs, op, rhs) => { - // Identity comparison - if (op.includes('is')) { - if (op.includes('not')) { - return `${lhs} !== ${rhs}`; - } else { - return `${lhs} === ${rhs}`; - } + + let driverMethod; + switch (exportMode) { + case 'Delete Query': + driverMethod = 'delete_many'; + break; + case 'Update Query': + driverMethod = 'update_many'; + break; + default: + driverMethod = 'find'; + } + + let args = Object.keys(spec).reduce( + (result, k) => { + let val = this.utils.removePHPObject(spec[k]); + const divider = result === '' ? '' : ',\n'; + return `${result}${divider} '${getKey(k)}' => ${val}`; + }, + '' + ); + args = args ? `, [\n${args}\n]` : ''; + + return [] + .concat(comment) + .concat('') + .concat(client) + .concat(collection) + .concat(`$cursor = $collection->${driverMethod}(${this.utils.removePHPObject(filter)}${args});`) + .join('\n') + ; + } + EqualitySyntaxTemplate: !!js/function &EqualitySyntaxTemplate > + (lhs, op, rhs) => { + // Identity comparison + if (op.includes('is')) { + if (op.includes('not')) { + return `${lhs} !== ${rhs}`; + } else { + return `${lhs} === ${rhs}`; } - // Not equal + } + // Not equal + if (op.includes('!') || op.includes('not')) { + return `${lhs} != ${rhs}`; + } + // Equal + if (op === '==' || op === '===') { + return `${lhs} == ${rhs}`; + } + // All other cases + return `${lhs} ${op} ${rhs}`; + } + InSyntaxTemplate: !!js/function &InSyntaxTemplate > + (lhs, op, rhs) => { + // array + if (rhs.charAt(0) === '[' && rhs.charAt(rhs.length - 1) === ']') { + let not = ''; if (op.includes('!') || op.includes('not')) { - return `${lhs} != ${rhs}`; + not = '! '; } - // Equal - if (op === '==' || op === '===') { - return `${lhs} == ${rhs}`; - } - // All other cases - return `${lhs} ${op} ${rhs}`; + return `${not}\\in_array(${lhs}, ${rhs})`; } - InSyntaxTemplate: &InSyntaxTemplate !!js/function > - (lhs, op, rhs) => { - // array - if (rhs.charAt(0) === '[' && rhs.charAt(rhs.length - 1) === ']') { - let not = ''; - if (op.includes('!') || op.includes('not')) { - not = '! '; - } - return `${not}\\in_array(${lhs}, ${rhs})`; - } - - //object - if (rhs.indexOf('(object) ') === 0) { - let not = ''; - if (op.includes('!') || op.includes('not')) { - not = '! '; - } - return `${not}\\property_exists(${rhs}, ${lhs})`; - } - - // string - all other cases - let targop = '!=='; + + //object + if (rhs.indexOf('(object) ') === 0) { + let not = ''; if (op.includes('!') || op.includes('not')) { - targop = '==='; + not = '! '; } - return `\\strpos(${rhs}, ${lhs}) ${targop} false`; + return `${not}\\property_exists(${rhs}, ${lhs})`; } - AndSyntaxTemplate: &AndSyntaxTemplate !!js/function > - (args) => { - return args.join(' && '); - } - OrSyntaxTemplate: &OrSyntaxTemplate !!js/function > - (args) => { - return args.join(' || '); - } - NotSyntaxTemplate: &NotSyntaxTemplate !!js/function > - (arg) => { - return `! ${arg}`; - } - UnarySyntaxTemplate: &UnarySyntaxTemplate !!js/function > - (op, arg) => { + + // string - all other cases + let targop = '!=='; + if (op.includes('!') || op.includes('not')) { + targop = '==='; + } + return `\\strpos(${rhs}, ${lhs}) ${targop} false`; + } + AndSyntaxTemplate: !!js/function &AndSyntaxTemplate > + (args) => { + return args.join(' && '); + } + OrSyntaxTemplate: !!js/function &OrSyntaxTemplate > + (args) => { + return args.join(' || '); + } + NotSyntaxTemplate: !!js/function &NotSyntaxTemplate > + (arg) => { + return `! ${arg}`; + } + UnarySyntaxTemplate: !!js/function &UnarySyntaxTemplate > + (op, arg) => { + switch(op) { + case '+': + return `+${arg}`; + case '-': + return `-${arg}`; + case '~': + return `~${arg}`; + default: + throw new Error(`unrecognized operation: ${op}`); + } + } + BinarySyntaxTemplate: !!js/function &BinarySyntaxTemplate > + (args) => { + return args.reduce((s, op, i, arr) => { + if (i % 2 === 0) { + return s; + } + const rhs = arr[i + 1]; switch(op) { case '+': - return `+${arg}`; + return `${s} + ${rhs}`; case '-': - return `-${arg}`; - case '~': - return `~${arg}`; + return `${s} - ${rhs}`; + case '*': + return `${s} * ${rhs}`; + case '/': + return `${s} / ${rhs}`; + case '**': + return `${s} ** ${rhs}`; + case '//': + return `\\intdiv(${s}, ${rhs})`; + case '%': + return `${s} % ${rhs}`; + case '>>': + return `${s} >> ${rhs}`; + case '<<': + return `${s} << ${rhs}`; + case '|': + return `${s} | ${rhs}`; + case '&': + return `${s} & ${rhs}`; + case '^': + return `${s} ^ ${rhs}`; default: throw new Error(`unrecognized operation: ${op}`); } - } - BinarySyntaxTemplate: &BinarySyntaxTemplate !!js/function > - (args) => { - return args.reduce((s, op, i, arr) => { - if (i % 2 === 0) { - return s; - } - const rhs = arr[i + 1]; - switch(op) { - case '+': - return `${s} + ${rhs}`; - case '-': - return `${s} - ${rhs}`; - case '*': - return `${s} * ${rhs}`; - case '/': - return `${s} / ${rhs}`; - case '**': - return `${s} ** ${rhs}`; - case '//': - return `\\intdiv(${s}, ${rhs})`; - case '%': - return `${s} % ${rhs}`; - case '>>': - return `${s} >> ${rhs}`; - case '<<': - return `${s} << ${rhs}`; - case '|': - return `${s} | ${rhs}`; - case '&': - return `${s} & ${rhs}`; - case '^': - return `${s} ^ ${rhs}`; - default: - throw new Error(`unrecognized operation: ${op}`); - } - }, args[0]); - } - ParensSyntaxTemplate: &ParensSyntaxTemplate null - EosTemplate: &EosSyntaxTemplate null # No args. End-of-line - EofTemplate: &EofSyntaxTemplate null # No args. End-of-file - FloorDivTemplate: &FloorDivSyntaxTemplate null # Args: lhs, rhs - PowerTemplate: &PowerSyntaxTemplate null # Args: lhs, rhs - NewTemplate: &NewSyntaxTemplate null # Args: expression, skip?, code# [to check if meant to be skipped] + }, args[0]); + } + ParensSyntaxTemplate: &ParensSyntaxTemplate null + EosTemplate: &EosSyntaxTemplate null # No args. End-of-line + EofTemplate: &EofSyntaxTemplate null # No args. End-of-file + FloorDivTemplate: &FloorDivSyntaxTemplate null # Args: lhs, rhs + PowerTemplate: &PowerSyntaxTemplate null # Args: lhs, rhs + NewTemplate: &NewSyntaxTemplate null # Args: expression, skip?, code# [to check if meant to be skipped] - ############################################# - # Literal Types # - # # - # Templates for literal type instance. Most # - # get passed the literal itself as an arg. # - # # - ############################################# - StringTypeTemplate: &StringTypeTemplate !!js/function > - (str) => { - // This is some standalone object context, which is generated to parse - // node and doesn't have access to main Generator object. Thus we can't - // use utility function call. All ~Template calls use this type of - // context. All ~ArgsTemplate have access to utility functions. - - stringifyWithSingleQuotes = (str) => { - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"') - ) { - str = str.substr(1, str.length - 2); - } - return `'${str.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; - }; + ############################################# + # Literal Types # + # # + # Templates for literal type instance. Most # + # get passed the literal itself as an arg. # + # # + ############################################# + StringTypeTemplate: !!js/function &StringTypeTemplate > + (str) => { + // This is some standalone object context, which is generated to parse + // node and doesn't have access to main Generator object. Thus we can't + // use utility function call. All ~Template calls use this type of + // context. All ~ArgsTemplate have access to utility functions. - return `${stringifyWithSingleQuotes(str)}`; - } - RegexTypeTemplate: &RegexTypeTemplate !!js/function > - (pattern, flags) => { - // This is some standalone object context, which is generated to parse - // node and doesn't have access to main Generator object. Thus we can't - // use utility function call. All ~Template calls use this type of - // context. All ~ArgsTemplate have access to utility functions. - - stringifyWithDoubleQuotes = (str) => { - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"') - ) { - str = str.substr(1, str.length - 2); - } - return `${str.replace(/\\([\s\S])|(")/g, '\\$1$2')}`; - }; - - pattern = `"${stringifyWithDoubleQuotes(pattern)}"`; - flags = flags ? `, "${flags}"` : ''; + stringifyWithSingleQuotes = (str) => { + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"') + ) { + str = str.substr(1, str.length - 2); + } + return `'${str.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; + }; - return `new Regex(${pattern}${flags})`; - } - BoolTypeTemplate: &BoolTypeTemplate !!js/function > - (literal) => { - return literal.toLowerCase(); - } - IntegerTypeTemplate: &IntegerTypeTemplate null # args: literal, argType (i.e. '_string', '_decimal' etc) - DecimalTypeTemplate: &DecimalTypeTemplate null # args: literal, argType - LongBasicTypeTemplate: &LongBasicTypeTemplate null # args: literal, argType - HexTypeTemplate: &HexTypeTemplate null # args: literal, argType - OctalTypeTemplate: &OctalTypeTemplate !!js/function > - (literal) => { - let offset = 0; + return `${stringifyWithSingleQuotes(str)}`; + } + RegexTypeTemplate: !!js/function &RegexTypeTemplate > + (pattern, flags) => { + // This is some standalone object context, which is generated to parse + // node and doesn't have access to main Generator object. Thus we can't + // use utility function call. All ~Template calls use this type of + // context. All ~ArgsTemplate have access to utility functions. + stringifyWithDoubleQuotes = (str) => { if ( - literal.charAt(0) === '0' && - (literal.charAt(1) === '0' || literal.charAt(1) === 'o' || literal.charAt(1) === 'O') + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"') ) { - offset = 2; - } else if (literal.charAt(0) === '0') { - offset = 1; + str = str.substr(1, str.length - 2); } + return `${str.replace(/\\([\s\S])|(")/g, '\\$1$2')}`; + }; - literal = `0${literal.substr(offset, literal.length - 1)}`; + pattern = `"${stringifyWithDoubleQuotes(pattern)}"`; + flags = flags ? `, "${flags}"` : ''; - return literal; - } - NumericTypeTemplate: &NumericTypeTemplate null # args: literal, argType - ArrayTypeTemplate: &ArrayTypeTemplate !!js/function > - (literal, depth) => { - if (literal === '') { - return '[]' - } - return `[${literal}]`; - } - ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate null # Args: single array element, nestedness, lastElement? (note: not being used atm) - NullTypeTemplate: &NullTypeTemplate !!js/function > - () => { - return 'null'; - } - UndefinedTypeTemplate: &UndefinedTypeTemplate !!js/function > - () => { - return 'null'; - } - ObjectTypeTemplate: &ObjectTypeTemplate !!js/function > - (literal) => { - return `${literal}`; + return `new Regex(${pattern}${flags})`; + } + BoolTypeTemplate: !!js/function &BoolTypeTemplate > + (literal) => { + return literal.toLowerCase(); + } + IntegerTypeTemplate: &IntegerTypeTemplate null # args: literal, argType (i.e. '_string', '_decimal' etc) + DecimalTypeTemplate: &DecimalTypeTemplate null # args: literal, argType + LongBasicTypeTemplate: &LongBasicTypeTemplate null # args: literal, argType + HexTypeTemplate: &HexTypeTemplate null # args: literal, argType + OctalTypeTemplate: !!js/function &OctalTypeTemplate > + (literal) => { + let offset = 0; + + if ( + literal.charAt(0) === '0' && + (literal.charAt(1) === '0' || literal.charAt(1) === 'o' || literal.charAt(1) === 'O') + ) { + offset = 2; + } else if (literal.charAt(0) === '0') { + offset = 1; } - ObjectTypeArgsTemplate: &ObjectTypeArgsTemplate !!js/function > - (args, depth) => { - let isObjectCastRequired = true; - - if (args.length === 0) { - return `(object) []`; - } - const isExpectedIndex = (actualIndex, expectedIndex) => { - return '' + actualIndex === '' + expectedIndex; - } - - let indexTest = 0; - let pairs = args.map((arg) => { - if (isObjectCastRequired && !isExpectedIndex(arg[0], indexTest)) { - isObjectCastRequired = false; - } - indexTest++; - return `${this.utils.stringifyWithSingleQuotes(arg[0])} => ${arg[1]}`; - }).join(', '); + literal = `0${literal.substr(offset, literal.length - 1)}`; - // Rebuilding pairs for numeric sequential indexes without quotes - if (isObjectCastRequired) { - pairs = args.map((arg) => { - return `${arg[0]} => ${arg[1]}`; - }).join(', '); - } + return literal; + } + NumericTypeTemplate: &NumericTypeTemplate null # args: literal, argType + ArrayTypeTemplate: !!js/function &ArrayTypeTemplate > + (literal, depth) => { + if (literal === '') { + return '[]' + } + return `[${literal}]`; + } + ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate null # Args: single array element, nestedness, lastElement? (note: not being used atm) + NullTypeTemplate: !!js/function &NullTypeTemplate > + () => { + return 'null'; + } + UndefinedTypeTemplate: !!js/function &UndefinedTypeTemplate > + () => { + return 'null'; + } + ObjectTypeTemplate: !!js/function &ObjectTypeTemplate > + (literal) => { + return `${literal}`; + } + ObjectTypeArgsTemplate: !!js/function &ObjectTypeArgsTemplate > + (args, depth) => { + let isObjectCastRequired = true; - return `${isObjectCastRequired ? '(object) ' : ''}[${pairs}]`; + if (args.length === 0) { + return `(object) []`; } - ############################################# - # Symbols # - # # - # Templates for symbols, can be either # - # functions or variables. # - # # - # The *SymbolTemplates return names and # - # usually don't take any arguments. The # - # *SymbolArgsTemplates are invoked for func # - # calls. The first argument is always the # - # lhs, i.e. the symbol returned from the # - # corresponding SymbolTemplate. The rest of # - # the arguments are the processed arguments # - # passed to the original function. # - # # - ############################################# - CodeSymbolTemplate: &CodeSymbolTemplate !!js/function > - () => { - return 'new Javascript'; - } - CodeSymbolArgsTemplate: &CodeSymbolArgsTemplate !!js/function > - (lhs, code, scope) => { - return !scope - ? `(${this.utils.stringifyWithSingleQuotes(code)})` - : `(${this.utils.stringifyWithSingleQuotes(code)}, ${scope})` - ; - } - ObjectIdSymbolTemplate: &ObjectIdSymbolTemplate !!js/function > - () => { - return 'new ObjectId'; - } - ObjectIdSymbolArgsTemplate: &ObjectIdSymbolArgsTemplate !!js/function > - (lhs, id) => { - return !id - ? `()` - : `(${this.utils.stringifyWithSingleQuotes(id)})` - ; - } - BinarySymbolTemplate: &BinarySymbolTemplate !!js/function > - () => { - return 'new Binary'; - } - BinarySymbolArgsTemplate: &BinarySymbolArgsTemplate !!js/function > - (lhs, bytes, type) => { - if (type === null) { - type = 'Binary::TYPE_GENERIC'; - } - return `(${this.utils.stringifyWithSingleQuotes(bytes)}, ${type})`; - } - BinarySymbolSubtypeDefaultTemplate: &BinarySymbolSubtypeDefaultTemplate !!js/function > - () => { - return 'Binary::TYPE_GENERIC'; - } - BinarySymbolSubtypeFunctionTemplate: &BinarySymbolSubtypeFunctionTemplate !!js/function > - () => { - return 'Binary::TYPE_FUNCTION'; + const isExpectedIndex = (actualIndex, expectedIndex) => { + return '' + actualIndex === '' + expectedIndex; } - BinarySymbolSubtypeByteArrayTemplate: &BinarySymbolSubtypeByteArrayTemplate !!js/function > - () => { - return 'Binary::TYPE_OLD_BINARY'; - } - BinarySymbolSubtypeUuidOldTemplate: &BinarySymbolSubtypeUuidOldTemplate !!js/function > - () => { - return 'Binary::TYPE_OLD_UUID'; - } - BinarySymbolSubtypeUuidTemplate: &BinarySymbolSubtypeUuidTemplate !!js/function > - () => { - return 'Binary::TYPE_UUID'; - } - BinarySymbolSubtypeMd5Template: &BinarySymbolSubtypeMd5Template !!js/function > - () => { - return 'Binary::TYPE_MD5'; - } - BinarySymbolSubtypeUserDefinedTemplate: &BinarySymbolSubtypeUserDefinedTemplate !!js/function > - () => { - return 'Binary::TYPE_USER_DEFINED'; - } - DBRefSymbolTemplate: &DBRefSymbolTemplate !!js/function > - () => { - return '' - } - DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate !!js/function > - (lhs, coll, id, db) => { - let coll_string = `'$ref' => ${this.utils.stringifyWithSingleQuotes(coll)}`; - let id_string = `, '$id' => ${id}`; - let db_string = db ? `, '$db' => ${this.utils.stringifyWithSingleQuotes(db)}` : `, '$db' => null`; - return `[${coll_string}${id_string}${db_string}]`; - } - DoubleSymbolTemplate: &DoubleSymbolTemplate !!js/function > - () => { - return ''; - } - DoubleSymbolArgsTemplate: &DoubleSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - if (type === '_decimal' || type === '_double') { - return arg; - } - if (type === '_integer' || type === '_long') { - return `${arg}.0`; - } - return `(float) ${arg}`; - } - Int32SymbolTemplate: &Int32SymbolTemplate !!js/function > - () => { - return ''; - } - Int32SymbolArgsTemplate: &Int32SymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - if (type === '_integer' || type === '_long' || type === '_hex' || type === '_octal') { - return arg; - } - return `(int) ${arg}`; - } - LongSymbolTemplate: &LongSymbolTemplate !!js/function > - () => { - return '' - } - LongSymbolArgsTemplate: &LongSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - if (type === '_integer' || type === '_long' || type === '_hex' || type === '_octal') { - return arg; - } - return `(int) ${arg}`; - } - RegExpSymbolTemplate: &RegExpSymbolTemplate !!js/function > - () => { - return 'new Regex'; - } - RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null # Args: lhs, pattern, flags - SymbolSymbolTemplate: &SymbolSymbolTemplate !!js/function > - () => { - return ''; - } - SymbolSymbolArgsTemplate: &SymbolSymbolArgsTemplate !!js/function > - (lhs, arg) => { - return arg; - } - BSONRegExpSymbolTemplate: &BSONRegExpSymbolTemplate !!js/function > - () => { - return 'new Regex'; - } - BSONRegExpSymbolArgsTemplate: &BSONRegExpSymbolArgsTemplate !!js/function > - (lhs, pattern, flags) => { - return `(${this.utils.stringifyWithDoubleQuotes(pattern)}${flags ? ', ' + this.utils.stringifyWithDoubleQuotes(flags) : ''})`; - } - Decimal128SymbolTemplate: &Decimal128SymbolTemplate !!js/function > - () => { - return 'new Decimal128'; - } - Decimal128SymbolArgsTemplate: &Decimal128SymbolArgsTemplate !!js/function > - (lhs, arg) => { - arg = arg === undefined ? '0' : arg.toString(); - return `('${this.utils.removeStringQuotes(arg)}')`; - } - MinKeySymbolTemplate: &MinKeySymbolTemplate !!js/function > - () => { - return 'new MinKey'; - } - MinKeySymbolArgsTemplate: &MinKeySymbolArgsTemplate !!js/function > - () => { - return `()`; - } - MaxKeySymbolTemplate: &MaxKeySymbolTemplate !!js/function > - () => { - return 'new MaxKey'; - } - MaxKeySymbolArgsTemplate: &MaxKeySymbolArgsTemplate !!js/function > - () => { - return `()`; - } - TimestampSymbolTemplate: &TimestampSymbolTemplate !!js/function > - () => { - return 'new Timestamp'; - } - TimestampSymbolArgsTemplate: &TimestampSymbolArgsTemplate !!js/function > - (lhs, arg1, arg2) => { - // PHP orders increment and timestamp args differently (see: PHPC-845) - return `(${arg2 === undefined ? 0 : arg2}, ${arg1 === undefined ? 0 : arg1})`; - } - # non bson-specific - NumberSymbolTemplate: &NumberSymbolTemplate !!js/function > - () => '' - NumberSymbolArgsTemplate: &NumberSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - switch(type) { - case '_string': - if ((arg.indexOf('.') !== -1) && (arg.indexOf('.') !== arg.length - 2)) { - return `(float) ${arg}` - } - return `(int) ${arg}` - default: - return `${arg}` - } - } - DateSymbolTemplate: &DateSymbolTemplate !!js/function > - () => { - return 'UTCDateTime'; - } - DateSymbolArgsTemplate: &DateSymbolArgsTemplate !!js/function > - (lhs, date, isString) => { - if (date === null) { - return `new ${lhs}()`; + let indexTest = 0; + let pairs = args.map((arg) => { + if (isObjectCastRequired && !isExpectedIndex(arg[0], indexTest)) { + isObjectCastRequired = false; } - return isString - ? `(new ${lhs}(${date.getTime()}))->toDateTime()->format(\\DateTimeInterface::RFC3339_EXTENDED)` - : `new ${lhs}(${date.getTime()})` - ; - } - DateSymbolNowTemplate: &DateSymbolNowTemplate !!js/function > - () => { - return `new UTCDateTime()`; - } - DateSymbolNowArgsTemplate: &DateSymbolNowArgsTemplate !!js/function > - (args) => { - return ''; - } + indexTest++; + return `${this.utils.stringifyWithSingleQuotes(arg[0])} => ${arg[1]}`; + }).join(', '); - ############################################# - # Object Attributes/Methods # - # # - # These're variables or functions called on # - # instantiated objects. For example, # - # ObjectId().isValid() or Timestamp().t # - # # - # They follow the same pattern with the - # *Template/*ArgsTemplates: usually no args # - # to the Template and lhs plus any original # - # arguments to the ArgsTemplate. # - # # - ############################################# - CodeCodeTemplate: &CodeCodeTemplate !!js/function > - (lhs) => { - return `(${lhs})->getCode()`; - } - CodeCodeArgsTemplate: &CodeCodeArgsTemplate !!js/function > - () => { - return ''; - } - CodeScopeTemplate: &CodeScopeTemplate !!js/function > - (lhs) => { - return `(${lhs})->getScope()`; - } - CodeScopeArgsTemplate: &CodeScopeArgsTemplate !!js/function > - () => { - return ''; - } - ObjectIdToStringTemplate: &ObjectIdToStringTemplate !!js/function > - (lhs) => { - return `(string) ${lhs}`; - } - ObjectIdToStringArgsTemplate: &ObjectIdToStringArgsTemplate !!js/function > - () => { - return ''; - } - ObjectIdEqualsTemplate: &ObjectIdEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} == `; - } - ObjectIdEqualsArgsTemplate: &ObjectIdEqualsArgsTemplate !!js/function > - (arg) => { - return `${arg}`; - } - ObjectIdGetTimestampTemplate: &ObjectIdGetTimestampTemplate !!js/function > - (lhs) => { - return `(${lhs})->getTimestamp()`; - } - ObjectIdGetTimestampArgsTemplate: &ObjectIdGetTimestampArgsTemplate !!js/function > - () => { - return ''; - } - ObjectIdIsValidTemplate: &ObjectIdIsValidTemplate !!js/function > - (lhs) => { - return ``; - } - ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate !!js/function > - (lhs, arg) => { - return `(\\ctype_xdigit(${this.utils.stringifyWithSingleQuotes(arg)}) && \\strlen(${this.utils.stringifyWithSingleQuotes(arg)}) == 24)`; - } - BinaryValueTemplate: &BinaryValueTemplate !!js/function > - (lhs) => { - return `(${lhs})->getData()`; - } - BinaryValueArgsTemplate: &BinaryValueArgsTemplate !!js/function > - () => { - return ''; - } - BinaryLengthTemplate: &BinaryLengthTemplate !!js/function > - (lhs) => { - return `\\strlen((${lhs})->getData())`; - } - BinaryLengthArgsTemplate: &BinaryLengthArgsTemplate !!js/function > - () => { - return ''; - } - BinaryToStringTemplate: &BinaryToStringTemplate !!js/function > - (lhs) => { - return `(${lhs})->getData()`; - } - BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate !!js/function > - () => { - return ''; - } - BinarySubtypeTemplate: &BinarySubtypeTemplate !!js/function > - (lhs) => { - return `(${lhs})->getType()`; - } - BinarySubtypeArgsTemplate: &BinarySubtypeArgsTemplate !!js/function > - () => { - return ''; - } - DBRefGetDBTemplate: &DBRefGetDBTemplate !!js/function > - (lhs) => { - return `${lhs}['$db']`; - } - DBRefGetCollectionTemplate: &DBRefGetCollectionTemplate !!js/function > - (lhs) => { - return `${lhs}['$ref']`; - } - DBRefGetIdTemplate: &DBRefGetIdTemplate !!js/function > - (lhs) => { - return `${lhs}['$id']`; - } - DBRefGetDBArgsTemplate: &DBRefGetDBArgsTemplate !!js/function > - (lhs) => { - return ''; - } - DBRefGetCollectionArgsTemplate: &DBRefGetCollectionArgsTemplate !!js/function > - (lhs) => { - return ''; - } - DBRefGetIdArgsTemplate: &DBRefGetIdArgsTemplate !!js/function > - (lhs) => { - return ''; - } - DBRefToStringTemplate: &DBRefToStringTemplate null - DBRefToStringArgsTemplate: &DBRefToStringArgsTemplate null - DoubleValueOfTemplate: &DoubleValueOfTemplate null - DoubleValueOfArgsTemplate: &DoubleValueOfArgsTemplate null - Int32ValueOfTemplate: &Int32ValueOfTemplate null - Int32ValueOfArgsTemplate: &Int32ValueOfArgsTemplate null - Int32ToStringTemplate: &Int32ToStringTemplate !!js/function > - (lhs) => { - return `(string) ${lhs}`; - } - Int32ToStringArgsTemplate: &Int32ToStringArgsTemplate !!js/function > - () => { - return ''; - } - LongEqualsTemplate: &LongEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} ==`; - } - LongEqualsArgsTemplate: &LongEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongToStringTemplate: &LongToStringTemplate !!js/function > - (lhs) => { - return `(string) ${lhs}`; - } - LongToStringArgsTemplate: &LongToStringArgsTemplate !!js/function > - () => { - return ''; - } - LongToIntTemplate: &LongToIntTemplate !!js/function > - (lhs) => { - return `${lhs}`; - } - LongToIntArgsTemplate: &LongToIntArgsTemplate !!js/function > - () => { - return ''; - } - LongValueOfTemplate: &LongValueOfTemplate null - LongValueOfArgsTemplate: &LongValueOfArgsTemplate null - LongToNumberTemplate: &LongToNumberTemplate !!js/function > - (lhs) => { - return `(float) ${lhs}`; - } - LongToNumberArgsTemplate: &LongToNumberArgsTemplate !!js/function > - () => { - return ''; - } - LongAddTemplate: &LongAddTemplate !!js/function > - (lhs) => { - return `${lhs} +`; - } - LongAddArgsTemplate: &LongAddArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongSubtractTemplate: &LongSubtractTemplate !!js/function > - (arg) => { - return `${arg} -`; - } - LongSubtractArgsTemplate: &LongSubtractArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongMultiplyTemplate: &LongMultiplyTemplate !!js/function > - (arg) => { - return `${arg} *`; - } - LongMultiplyArgsTemplate: &LongMultiplyArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongDivTemplate: &LongDivTemplate !!js/function > - (lhs) => { - return `${lhs} /`; - } - LongDivArgsTemplate: &LongDivArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongModuloTemplate: &LongModuloTemplate !!js/function > - (lhs) => { - return `${lhs} %`; - } - LongModuloArgsTemplate: &LongModuloArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongAndTemplate: &LongAndTemplate !!js/function > - (lhs) => { - return `${lhs} &`; - } - LongAndArgsTemplate: &LongAndArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongOrTemplate: &LongOrTemplate !!js/function > - (lhs) => { - return `${lhs} |`; - } - LongOrArgsTemplate: &LongOrArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongXorTemplate: &LongXorTemplate !!js/function > - (lhs) => { - return `${lhs} ^`; - } - LongXorArgsTemplate: &LongXorArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongShiftLeftTemplate: &LongShiftLeftTemplate !!js/function > - (lhs) => { - return `${lhs} <<`; - } - LongShiftLeftArgsTemplate: &LongShiftLeftArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongShiftRightTemplate: &LongShiftRightTemplate !!js/function > - (lhs) => { - return `${lhs} >>`; - } - LongShiftRightArgsTemplate: &LongShiftRightArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongCompareTemplate: &LongCompareTemplate !!js/function > - (lhs) => { - return `${lhs} <=>`; - } - LongCompareArgsTemplate: &LongCompareArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongIsOddTemplate: &LongIsOddTemplate !!js/function > - (lhs) => { - return `(${lhs} % 2) === 1`; - } - LongIsOddArgsTemplate: &LongIsOddArgsTemplate !!js/function > - () => { - return ''; - } - LongIsZeroTemplate: &LongIsZeroTemplate !!js/function > - (lhs) => { - return `${lhs} === 0`; - } - LongIsZeroArgsTemplate: &LongIsZeroArgsTemplate !!js/function > - () => { - return ''; - } - LongIsNegativeTemplate: &LongIsNegativeTemplate !!js/function > - (lhs) => { - return `${lhs} < 0`; - } - LongIsNegativeArgsTemplate: &LongIsNegativeArgsTemplate !!js/function > - () => { - return ''; - } - LongNegateTemplate: &LongNegateTemplate !!js/function > - () => { - return '-'; - } - LongNegateArgsTemplate: &LongNegateArgsTemplate !!js/function > - (lhs) => { - return lhs; - } - LongNotTemplate: &LongNotTemplate !!js/function > - () => { - return '~'; - } - LongNotArgsTemplate: &LongNotArgsTemplate !!js/function > - (lhs) => { - return lhs; - } - LongNotEqualsTemplate: &LongNotEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} !=`; - } - LongNotEqualsArgsTemplate: &LongNotEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongGreaterThanTemplate: &LongGreaterThanTemplate !!js/function > - (lhs) => { - return `${lhs} >`; - } - LongGreaterThanArgsTemplate: &LongGreaterThanArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongGreaterThanOrEqualTemplate: &LongGreaterThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} >=`; - } - LongGreaterThanOrEqualArgsTemplate: &LongGreaterThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongLessThanTemplate: &LongLessThanTemplate !!js/function > - (lhs) => { - return `${lhs} <`; - } - LongLessThanArgsTemplate: &LongLessThanArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongLessThanOrEqualTemplate: &LongLessThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} <=`; - } - LongLessThanOrEqualArgsTemplate: &LongLessThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongFloatApproxTemplate: &LongFloatApproxTemplate !!js/function > - (lhs) => { - return `(float) ${lhs}`; - } - LongTopTemplate: &LongTopTemplate !!js/function > - (lhs) => { - return `${lhs} >> 32`; - } - LongBottomTemplate: &LongBottomTemplate !!js/function > - (lhs) => { - return `${lhs} & 0x00000000ffffffff`; - } - TimestampToStringTemplate: &TimestampToStringTemplate !!js/function > - (lhs) => { - return `(string) ${lhs}`; - } - TimestampToStringArgsTemplate: &TimestampToStringArgsTemplate !!js/function > - () => { - return ''; - } - TimestampEqualsTemplate: &TimestampEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} == `; - } - TimestampEqualsArgsTemplate: &TimestampEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - TimestampGetLowBitsTemplate: &TimestampGetLowBitsTemplate !!js/function > - (lhs) => { - return `(${lhs})->getTimestamp()`; - } - TimestampGetLowBitsArgsTemplate: &TimestampGetLowBitsArgsTemplate !!js/function > - () => { - return '' - } - TimestampGetHighBitsTemplate: &TimestampGetHighBitsTemplate !!js/function > - (lhs) => { - return `(${lhs})->getIncrement()`; - } - TimestampGetHighBitsArgsTemplate: &TimestampGetHighBitsArgsTemplate !!js/function > - () => { - return '' - } - TimestampTTemplate: &TimestampTTemplate !!js/function > - (lhs) => { - return `(${lhs})->getTimestamp()`; - } - TimestampITemplate: &TimestampITemplate !!js/function > - (lhs) => { - return `(${lhs})->getIncrement()`; - } - TimestampAsDateTemplate: &TimestampAsDateTemplate !!js/function > - (lhs) => { - return `new UTCDateTime((${lhs})->getTimestamp() * 1000)`; - } - TimestampAsDateArgsTemplate: &TimestampAsDateArgsTemplate null - TimestampCompareTemplate: &TimestampCompareTemplate !!js/function > - (lhs) => { - return `${lhs} <=> `; - } - TimestampCompareArgsTemplate: &TimestampCompareArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - TimestampNotEqualsTemplate: &TimestampNotEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} != `; - } - TimestampNotEqualsArgsTemplate: &TimestampNotEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - TimestampGreaterThanTemplate: &TimestampGreaterThanTemplate !!js/function > - (lhs) => { - return `${lhs} > `; - } - TimestampGreaterThanArgsTemplate: &TimestampGreaterThanArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - TimestampGreaterThanOrEqualTemplate: &TimestampGreaterThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} >= `; - } - TimestampGreaterThanOrEqualArgsTemplate: &TimestampGreaterThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - TimestampLessThanTemplate: &TimestampLessThanTemplate !!js/function > - (lhs) => { - return `${lhs} < `; - } - TimestampLessThanArgsTemplate: &TimestampLessThanArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - TimestampLessThanOrEqualTemplate: &TimestampLessThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} <= `; - } - TimestampLessThanOrEqualArgsTemplate: &TimestampLessThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - SymbolValueOfTemplate: &SymbolValueOfTemplate !!js/function > - (lhs) => { - return lhs; - } - SymbolValueOfArgsTemplate: &SymbolValueOfArgsTemplate !!js/function > - () => { - return ''; - } - SymbolInspectTemplate: &SymbolInspectTemplate !!js/function > - (lhs) => { - return lhs; - } - SymbolInspectArgsTemplate: &SymbolInspectArgsTemplate !!js/function > - () => { - return ''; - } - SymbolToStringTemplate: &SymbolToStringTemplate !!js/function > - (lhs) => { - return lhs; - } - SymbolToStringArgsTemplate: &SymbolToStringArgsTemplate !!js/function > - (lhs) => { - return ''; - } - Decimal128ToStringTemplate: &Decimal128ToStringTemplate !!js/function > - (lhs) => { - return `(string) ${lhs}`; - } - Decimal128ToStringArgsTemplate: &Decimal128ToStringArgsTemplate !!js/function > - (lhs) => { - return ''; + // Rebuilding pairs for numeric sequential indexes without quotes + if (isObjectCastRequired) { + pairs = args.map((arg) => { + return `${arg[0]} => ${arg[1]}`; + }).join(', '); } - ############################################# - # Symbol Attributes/Methods # - # # - # These're variables or functions called on # - # symbols. Also called bson-utils. # - # # - # They are basically the same thing as # - # object attributes/methods, but need to be # - # distinguished since they are separate # - # namespaces that happen to have the same # - # name which is v confusing. # - # # - # For example, ObjectId().toString() is an # - # object method, while ObjectId.fromString # - # is a symbol attribute. These are two # - # separate ObjectId related namespaces that # - # don't overlap. # - # # - ############################################# - LongSymbolMaxTemplate: &LongSymbolMaxTemplate !!js/function > - () => { - return '\\PHP_INT_MAX'; - } - LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null - LongSymbolMinTemplate: &LongSymbolMinTemplate !!js/function > - () => { - return '\\PHP_INT_MIN'; - } - LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null - LongSymbolZeroTemplate: &LongSymbolZeroTemplate !!js/function > - () => { - return '0'; - } - LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null - LongSymbolOneTemplate: &LongSymbolOneTemplate !!js/function > - () => { - return '1'; - } - LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null - LongSymbolNegOneTemplate: &LongSymbolNegOneTemplate !!js/function > - () => { - return '-1'; - } - LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null - LongSymbolFromBitsTemplate: &LongSymbolFromBitsTemplate !!js/function > - () => { - return ''; - } - LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate !!js/function > - (lhs, arg) => { - return `(int) ${arg}`; - } - LongSymbolFromIntTemplate: &LongSymbolFromIntTemplate !!js/function > - () => { - return ''; - } - LongSymbolFromIntArgsTemplate: &LongSymbolFromIntArgsTemplate !!js/function > - (lhs, arg) => { + return `${isObjectCastRequired ? '(object) ' : ''}[${pairs}]`; + } + + ############################################# + # Symbols # + # # + # Templates for symbols, can be either # + # functions or variables. # + # # + # The *SymbolTemplates return names and # + # usually don't take any arguments. The # + # *SymbolArgsTemplates are invoked for func # + # calls. The first argument is always the # + # lhs, i.e. the symbol returned from the # + # corresponding SymbolTemplate. The rest of # + # the arguments are the processed arguments # + # passed to the original function. # + # # + ############################################# + CodeSymbolTemplate: !!js/function &CodeSymbolTemplate > + () => { + return 'new Javascript'; + } + CodeSymbolArgsTemplate: !!js/function &CodeSymbolArgsTemplate > + (lhs, code, scope) => { + return !scope + ? `(${this.utils.stringifyWithSingleQuotes(code)})` + : `(${this.utils.stringifyWithSingleQuotes(code)}, ${scope})` + ; + } + ObjectIdSymbolTemplate: !!js/function &ObjectIdSymbolTemplate > + () => { + return 'new ObjectId'; + } + ObjectIdSymbolArgsTemplate: !!js/function &ObjectIdSymbolArgsTemplate > + (lhs, id) => { + return !id + ? `()` + : `(${this.utils.stringifyWithSingleQuotes(id)})` + ; + } + BinarySymbolTemplate: !!js/function &BinarySymbolTemplate > + () => { + return 'new Binary'; + } + BinarySymbolArgsTemplate: !!js/function &BinarySymbolArgsTemplate > + (lhs, bytes, type) => { + if (type === null) { + type = 'Binary::TYPE_GENERIC'; + } + return `(${this.utils.stringifyWithSingleQuotes(bytes)}, ${type})`; + } + BinarySymbolSubtypeDefaultTemplate: + !!js/function &BinarySymbolSubtypeDefaultTemplate > + () => { + return 'Binary::TYPE_GENERIC'; + } + BinarySymbolSubtypeFunctionTemplate: + !!js/function &BinarySymbolSubtypeFunctionTemplate > + () => { + return 'Binary::TYPE_FUNCTION'; + } + BinarySymbolSubtypeByteArrayTemplate: + !!js/function &BinarySymbolSubtypeByteArrayTemplate > + () => { + return 'Binary::TYPE_OLD_BINARY'; + } + BinarySymbolSubtypeUuidOldTemplate: + !!js/function &BinarySymbolSubtypeUuidOldTemplate > + () => { + return 'Binary::TYPE_OLD_UUID'; + } + BinarySymbolSubtypeUuidTemplate: + !!js/function &BinarySymbolSubtypeUuidTemplate > + () => { + return 'Binary::TYPE_UUID'; + } + BinarySymbolSubtypeMd5Template: + !!js/function &BinarySymbolSubtypeMd5Template > + () => { + return 'Binary::TYPE_MD5'; + } + BinarySymbolSubtypeUserDefinedTemplate: + !!js/function &BinarySymbolSubtypeUserDefinedTemplate > + () => { + return 'Binary::TYPE_USER_DEFINED'; + } + DBRefSymbolTemplate: !!js/function &DBRefSymbolTemplate > + () => { + return '' + } + DBRefSymbolArgsTemplate: !!js/function &DBRefSymbolArgsTemplate > + (lhs, coll, id, db) => { + let coll_string = `'$ref' => ${this.utils.stringifyWithSingleQuotes(coll)}`; + let id_string = `, '$id' => ${id}`; + let db_string = db ? `, '$db' => ${this.utils.stringifyWithSingleQuotes(db)}` : `, '$db' => null`; + return `[${coll_string}${id_string}${db_string}]`; + } + DoubleSymbolTemplate: !!js/function &DoubleSymbolTemplate > + () => { + return ''; + } + DoubleSymbolArgsTemplate: !!js/function &DoubleSymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + if (type === '_decimal' || type === '_double') { return arg; } - LongSymbolFromNumberTemplate: &LongSymbolFromNumberTemplate !!js/function > - () => { - return ''; - } - LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate !!js/function > - (lhs, arg) => { - return `(int) ${arg}`; - } - LongSymbolFromStringTemplate: &LongSymbolFromStringTemplate !!js/function > - () => { - return ''; - } - LongSymbolFromStringArgsTemplate: &LongSymbolFromStringArgsTemplate !!js/function > - (lhs, arg) => { - return `(int) ${arg}`; - } - Decimal128SymbolFromStringTemplate: &Decimal128SymbolFromStringTemplate !!js/function > - () => { - return 'new Decimal128'; - } - Decimal128SymbolFromStringArgsTemplate: &Decimal128SymbolFromStringArgsTemplate !!js/function > - (lhs, arg) => { - return `(${arg})`; - } - ObjectIdCreateFromHexStringTemplate: &ObjectIdCreateFromHexStringTemplate !!js/function > - () => { - return 'new ObjectId'; - } - ObjectIdCreateFromHexStringArgsTemplate: &ObjectIdCreateFromHexStringArgsTemplate !!js/function > - (lhs, arg) => { - return `(${arg})`; - } - ObjectIdCreateFromTimeTemplate: &ObjectIdCreateFromTimeTemplate !!js/function > - () => { - return 'new ObjectId'; + if (type === '_integer' || type === '_long') { + return `${arg}.0`; + } + return `(float) ${arg}`; + } + Int32SymbolTemplate: !!js/function &Int32SymbolTemplate > + () => { + return ''; + } + Int32SymbolArgsTemplate: !!js/function &Int32SymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + if (type === '_integer' || type === '_long' || type === '_hex' || type === '_octal') { + return arg; } - ObjectIdCreateFromTimeArgsTemplate: &ObjectIdCreateFromTimeArgsTemplate !!js/function > - (lhs, arg, isNumber) => { - if (!isNumber) { - return `(\\str_pad(\\bin2hex(\\pack('N', (${arg})->toDateTime()->getTimestamp())), 24, '0'))`; - } - return `(\\str_pad(\\bin2hex(\\pack('N', ${arg})), 24, '0'))`; + return `(int) ${arg}`; + } + LongSymbolTemplate: !!js/function &LongSymbolTemplate > + () => { + return '' + } + LongSymbolArgsTemplate: !!js/function &LongSymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + if (type === '_integer' || type === '_long' || type === '_hex' || type === '_octal') { + return arg; } - # non bson-specific would go here, but there aren't any atm. + return `(int) ${arg}`; + } + RegExpSymbolTemplate: !!js/function &RegExpSymbolTemplate > + () => { + return 'new Regex'; + } + RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null # Args: lhs, pattern, flags + SymbolSymbolTemplate: !!js/function &SymbolSymbolTemplate > + () => { + return ''; + } + SymbolSymbolArgsTemplate: !!js/function &SymbolSymbolArgsTemplate > + (lhs, arg) => { + return arg; + } + BSONRegExpSymbolTemplate: !!js/function &BSONRegExpSymbolTemplate > + () => { + return 'new Regex'; + } + BSONRegExpSymbolArgsTemplate: !!js/function &BSONRegExpSymbolArgsTemplate > + (lhs, pattern, flags) => { + return `(${this.utils.stringifyWithDoubleQuotes(pattern)}${flags ? ', ' + this.utils.stringifyWithDoubleQuotes(flags) : ''})`; + } + Decimal128SymbolTemplate: !!js/function &Decimal128SymbolTemplate > + () => { + return 'new Decimal128'; + } + Decimal128SymbolArgsTemplate: !!js/function &Decimal128SymbolArgsTemplate > + (lhs, arg) => { + arg = arg === undefined ? '0' : arg.toString(); + return `('${this.utils.removeStringQuotes(arg)}')`; + } + MinKeySymbolTemplate: !!js/function &MinKeySymbolTemplate > + () => { + return 'new MinKey'; + } + MinKeySymbolArgsTemplate: !!js/function &MinKeySymbolArgsTemplate > + () => { + return `()`; + } + MaxKeySymbolTemplate: !!js/function &MaxKeySymbolTemplate > + () => { + return 'new MaxKey'; + } + MaxKeySymbolArgsTemplate: !!js/function &MaxKeySymbolArgsTemplate > + () => { + return `()`; + } + TimestampSymbolTemplate: !!js/function &TimestampSymbolTemplate > + () => { + return 'new Timestamp'; + } + TimestampSymbolArgsTemplate: !!js/function &TimestampSymbolArgsTemplate > + (lhs, arg1, arg2) => { + // PHP orders increment and timestamp args differently (see: PHPC-845) + return `(${arg2 === undefined ? 0 : arg2}, ${arg1 === undefined ? 0 : arg1})`; + } + # non bson-specific + NumberSymbolTemplate: !!js/function &NumberSymbolTemplate > + () => '' + NumberSymbolArgsTemplate: !!js/function &NumberSymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; - ############################################# - # Imports # - # # - # Each type has a 'code' that is consistent # - # between languages. The import templates # - # for each code generate the required # - # statement for each type. No args. # - # # - # The ImportTemplate collects everything # - # into one statement. # - # # - ############################################# - ImportTemplate: &ImportTemplate !!js/function > - (args) => { - let set = new Set(Object.values(args)); - return [...set].sort().join('\n'); - } - DriverImportTemplate: &DriverImportTemplate !!js/function > - () => { - return `use MongoDB\\Client;`; - } - 0ImportTemplate: &0ImportTemplate null - 1ImportTemplate: &1ImportTemplate null - 2ImportTemplate: &2ImportTemplate null - 3ImportTemplate: &3ImportTemplate null - 4ImportTemplate: &4ImportTemplate null - 5ImportTemplate: &5ImportTemplate null - 6ImportTemplate: &6ImportTemplate null - 7ImportTemplate: &7ImportTemplate null - # Common internal Regexp - 8ImportTemplate: &8ImportTemplate !!js/function > - () => { - return `use MongoDB\\BSON\\Regex;`; - } - 9ImportTemplate: &9ImportTemplate null - 10ImportTemplate: &10ImportTemplate null - 11ImportTemplate: &11ImportTemplate null - 12ImportTemplate: &12ImportTemplate null - # Code - 100ImportTemplate: &100ImportTemplate !!js/function > - () => { - return `use MongoDB\\BSON\\Javascript;`; - } - # ObjectId - 101ImportTemplate: &101ImportTemplate !!js/function > - () => { - return `use MongoDB\\BSON\\ObjectId;`; - } - # Binary - 102ImportTemplate: &102ImportTemplate !!js/function > - () => { - return `use MongoDB\\BSON\\Binary;`; - } - # DBRef - 103ImportTemplate: &103ImportTemplate null - 104ImportTemplate: &104ImportTemplate null - 105ImportTemplate: &105ImportTemplate null - # Int64 - 106ImportTemplate: &106ImportTemplate null - # MinKey - 107ImportTemplate: &107ImportTemplate !!js/function > - () => { - return `use MongoDB\\BSON\\MinKey;`; - } - # MaxKey - 108ImportTemplate: &108ImportTemplate !!js/function > - () => { - return `use MongoDB\\BSON\\MaxKey;`; - } - # Regex - 109ImportTemplate: &109ImportTemplate !!js/function > - () => { - return `use MongoDB\\BSON\\Regex;`; - } - # Timestamp - 110ImportTemplate: &110ImportTemplate !!js/function > - () => { - return `use MongoDB\\BSON\\Timestamp;`; - } - 111ImportTemplate: &111ImportTemplate null - # Decimal128 - 112ImportTemplate: &112ImportTemplate !!js/function > - () => { - return `use MongoDB\\BSON\\Decimal128;`; - } - 113ImportTemplate: &113ImportTemplate null - 114ImportTemplate: &114ImportTemplate null - 200ImportTemplate: &200ImportTemplate !!js/function > - () => { - return `use MongoDB\\BSON\\UTCDateTime;`; - } - 201ImportTemplate: &201ImportTemplate null - 300ImportTemplate: &300ImportTemplate null - 301ImportTemplate: &301ImportTemplate null - 302ImportTemplate: &302ImportTemplate null - 303ImportTemplate: &303ImportTemplate null - 304ImportTemplate: &304ImportTemplate null - 305ImportTemplate: &305ImportTemplate null - 306ImportTemplate: &306ImportTemplate null + switch(type) { + case '_string': + if ((arg.indexOf('.') !== -1) && (arg.indexOf('.') !== arg.length - 2)) { + return `(float) ${arg}` + } + return `(int) ${arg}` + default: + return `${arg}` + } + } + DateSymbolTemplate: !!js/function &DateSymbolTemplate > + () => { + return 'UTCDateTime'; + } + DateSymbolArgsTemplate: !!js/function &DateSymbolArgsTemplate > + (lhs, date, isString) => { + if (date === null) { + return `new ${lhs}()`; + } + return isString + ? `(new ${lhs}(${date.getTime()}))->toDateTime()->format(\\DateTimeInterface::RFC3339_EXTENDED)` + : `new ${lhs}(${date.getTime()})` + ; + } + DateSymbolNowTemplate: !!js/function &DateSymbolNowTemplate > + () => { + return `new UTCDateTime()`; + } + DateSymbolNowArgsTemplate: !!js/function &DateSymbolNowArgsTemplate > + (args) => { + return ''; + } + + ############################################# + # Object Attributes/Methods # + # # + # These're variables or functions called on # + # instantiated objects. For example, # + # ObjectId().isValid() or Timestamp().t # + # # + # They follow the same pattern with the + # *Template/*ArgsTemplates: usually no args # + # to the Template and lhs plus any original # + # arguments to the ArgsTemplate. # + # # + ############################################# + CodeCodeTemplate: !!js/function &CodeCodeTemplate > + (lhs) => { + return `(${lhs})->getCode()`; + } + CodeCodeArgsTemplate: !!js/function &CodeCodeArgsTemplate > + () => { + return ''; + } + CodeScopeTemplate: !!js/function &CodeScopeTemplate > + (lhs) => { + return `(${lhs})->getScope()`; + } + CodeScopeArgsTemplate: !!js/function &CodeScopeArgsTemplate > + () => { + return ''; + } + ObjectIdToStringTemplate: !!js/function &ObjectIdToStringTemplate > + (lhs) => { + return `(string) ${lhs}`; + } + ObjectIdToStringArgsTemplate: !!js/function &ObjectIdToStringArgsTemplate > + () => { + return ''; + } + ObjectIdEqualsTemplate: !!js/function &ObjectIdEqualsTemplate > + (lhs) => { + return `${lhs} == `; + } + ObjectIdEqualsArgsTemplate: !!js/function &ObjectIdEqualsArgsTemplate > + (arg) => { + return `${arg}`; + } + ObjectIdGetTimestampTemplate: !!js/function &ObjectIdGetTimestampTemplate > + (lhs) => { + return `(${lhs})->getTimestamp()`; + } + ObjectIdGetTimestampArgsTemplate: + !!js/function &ObjectIdGetTimestampArgsTemplate > + () => { + return ''; + } + ObjectIdIsValidTemplate: !!js/function &ObjectIdIsValidTemplate > + (lhs) => { + return ``; + } + ObjectIdIsValidArgsTemplate: !!js/function &ObjectIdIsValidArgsTemplate > + (lhs, arg) => { + return `(\\ctype_xdigit(${this.utils.stringifyWithSingleQuotes(arg)}) && \\strlen(${this.utils.stringifyWithSingleQuotes(arg)}) == 24)`; + } + BinaryValueTemplate: !!js/function &BinaryValueTemplate > + (lhs) => { + return `(${lhs})->getData()`; + } + BinaryValueArgsTemplate: !!js/function &BinaryValueArgsTemplate > + () => { + return ''; + } + BinaryLengthTemplate: !!js/function &BinaryLengthTemplate > + (lhs) => { + return `\\strlen((${lhs})->getData())`; + } + BinaryLengthArgsTemplate: !!js/function &BinaryLengthArgsTemplate > + () => { + return ''; + } + BinaryToStringTemplate: !!js/function &BinaryToStringTemplate > + (lhs) => { + return `(${lhs})->getData()`; + } + BinaryToStringArgsTemplate: !!js/function &BinaryToStringArgsTemplate > + () => { + return ''; + } + BinarySubtypeTemplate: !!js/function &BinarySubtypeTemplate > + (lhs) => { + return `(${lhs})->getType()`; + } + BinarySubtypeArgsTemplate: !!js/function &BinarySubtypeArgsTemplate > + () => { + return ''; + } + DBRefGetDBTemplate: !!js/function &DBRefGetDBTemplate > + (lhs) => { + return `${lhs}['$db']`; + } + DBRefGetCollectionTemplate: !!js/function &DBRefGetCollectionTemplate > + (lhs) => { + return `${lhs}['$ref']`; + } + DBRefGetIdTemplate: !!js/function &DBRefGetIdTemplate > + (lhs) => { + return `${lhs}['$id']`; + } + DBRefGetDBArgsTemplate: !!js/function &DBRefGetDBArgsTemplate > + (lhs) => { + return ''; + } + DBRefGetCollectionArgsTemplate: + !!js/function &DBRefGetCollectionArgsTemplate > + (lhs) => { + return ''; + } + DBRefGetIdArgsTemplate: !!js/function &DBRefGetIdArgsTemplate > + (lhs) => { + return ''; + } + DBRefToStringTemplate: &DBRefToStringTemplate null + DBRefToStringArgsTemplate: &DBRefToStringArgsTemplate null + DoubleValueOfTemplate: &DoubleValueOfTemplate null + DoubleValueOfArgsTemplate: &DoubleValueOfArgsTemplate null + Int32ValueOfTemplate: &Int32ValueOfTemplate null + Int32ValueOfArgsTemplate: &Int32ValueOfArgsTemplate null + Int32ToStringTemplate: !!js/function &Int32ToStringTemplate > + (lhs) => { + return `(string) ${lhs}`; + } + Int32ToStringArgsTemplate: !!js/function &Int32ToStringArgsTemplate > + () => { + return ''; + } + LongEqualsTemplate: !!js/function &LongEqualsTemplate > + (lhs) => { + return `${lhs} ==`; + } + LongEqualsArgsTemplate: !!js/function &LongEqualsArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongToStringTemplate: !!js/function &LongToStringTemplate > + (lhs) => { + return `(string) ${lhs}`; + } + LongToStringArgsTemplate: !!js/function &LongToStringArgsTemplate > + () => { + return ''; + } + LongToIntTemplate: !!js/function &LongToIntTemplate > + (lhs) => { + return `${lhs}`; + } + LongToIntArgsTemplate: !!js/function &LongToIntArgsTemplate > + () => { + return ''; + } + LongValueOfTemplate: &LongValueOfTemplate null + LongValueOfArgsTemplate: &LongValueOfArgsTemplate null + LongToNumberTemplate: !!js/function &LongToNumberTemplate > + (lhs) => { + return `(float) ${lhs}`; + } + LongToNumberArgsTemplate: !!js/function &LongToNumberArgsTemplate > + () => { + return ''; + } + LongAddTemplate: !!js/function &LongAddTemplate > + (lhs) => { + return `${lhs} +`; + } + LongAddArgsTemplate: !!js/function &LongAddArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongSubtractTemplate: !!js/function &LongSubtractTemplate > + (arg) => { + return `${arg} -`; + } + LongSubtractArgsTemplate: !!js/function &LongSubtractArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongMultiplyTemplate: !!js/function &LongMultiplyTemplate > + (arg) => { + return `${arg} *`; + } + LongMultiplyArgsTemplate: !!js/function &LongMultiplyArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongDivTemplate: !!js/function &LongDivTemplate > + (lhs) => { + return `${lhs} /`; + } + LongDivArgsTemplate: !!js/function &LongDivArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongModuloTemplate: !!js/function &LongModuloTemplate > + (lhs) => { + return `${lhs} %`; + } + LongModuloArgsTemplate: !!js/function &LongModuloArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongAndTemplate: !!js/function &LongAndTemplate > + (lhs) => { + return `${lhs} &`; + } + LongAndArgsTemplate: !!js/function &LongAndArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongOrTemplate: !!js/function &LongOrTemplate > + (lhs) => { + return `${lhs} |`; + } + LongOrArgsTemplate: !!js/function &LongOrArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongXorTemplate: !!js/function &LongXorTemplate > + (lhs) => { + return `${lhs} ^`; + } + LongXorArgsTemplate: !!js/function &LongXorArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongShiftLeftTemplate: !!js/function &LongShiftLeftTemplate > + (lhs) => { + return `${lhs} <<`; + } + LongShiftLeftArgsTemplate: !!js/function &LongShiftLeftArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongShiftRightTemplate: !!js/function &LongShiftRightTemplate > + (lhs) => { + return `${lhs} >>`; + } + LongShiftRightArgsTemplate: !!js/function &LongShiftRightArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongCompareTemplate: !!js/function &LongCompareTemplate > + (lhs) => { + return `${lhs} <=>`; + } + LongCompareArgsTemplate: !!js/function &LongCompareArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongIsOddTemplate: !!js/function &LongIsOddTemplate > + (lhs) => { + return `(${lhs} % 2) === 1`; + } + LongIsOddArgsTemplate: !!js/function &LongIsOddArgsTemplate > + () => { + return ''; + } + LongIsZeroTemplate: !!js/function &LongIsZeroTemplate > + (lhs) => { + return `${lhs} === 0`; + } + LongIsZeroArgsTemplate: !!js/function &LongIsZeroArgsTemplate > + () => { + return ''; + } + LongIsNegativeTemplate: !!js/function &LongIsNegativeTemplate > + (lhs) => { + return `${lhs} < 0`; + } + LongIsNegativeArgsTemplate: !!js/function &LongIsNegativeArgsTemplate > + () => { + return ''; + } + LongNegateTemplate: !!js/function &LongNegateTemplate > + () => { + return '-'; + } + LongNegateArgsTemplate: !!js/function &LongNegateArgsTemplate > + (lhs) => { + return lhs; + } + LongNotTemplate: !!js/function &LongNotTemplate > + () => { + return '~'; + } + LongNotArgsTemplate: !!js/function &LongNotArgsTemplate > + (lhs) => { + return lhs; + } + LongNotEqualsTemplate: !!js/function &LongNotEqualsTemplate > + (lhs) => { + return `${lhs} !=`; + } + LongNotEqualsArgsTemplate: !!js/function &LongNotEqualsArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongGreaterThanTemplate: !!js/function &LongGreaterThanTemplate > + (lhs) => { + return `${lhs} >`; + } + LongGreaterThanArgsTemplate: !!js/function &LongGreaterThanArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongGreaterThanOrEqualTemplate: + !!js/function &LongGreaterThanOrEqualTemplate > + (lhs) => { + return `${lhs} >=`; + } + LongGreaterThanOrEqualArgsTemplate: + !!js/function &LongGreaterThanOrEqualArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongLessThanTemplate: !!js/function &LongLessThanTemplate > + (lhs) => { + return `${lhs} <`; + } + LongLessThanArgsTemplate: !!js/function &LongLessThanArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongLessThanOrEqualTemplate: !!js/function &LongLessThanOrEqualTemplate > + (lhs) => { + return `${lhs} <=`; + } + LongLessThanOrEqualArgsTemplate: + !!js/function &LongLessThanOrEqualArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongFloatApproxTemplate: !!js/function &LongFloatApproxTemplate > + (lhs) => { + return `(float) ${lhs}`; + } + LongTopTemplate: !!js/function &LongTopTemplate > + (lhs) => { + return `${lhs} >> 32`; + } + LongBottomTemplate: !!js/function &LongBottomTemplate > + (lhs) => { + return `${lhs} & 0x00000000ffffffff`; + } + TimestampToStringTemplate: !!js/function &TimestampToStringTemplate > + (lhs) => { + return `(string) ${lhs}`; + } + TimestampToStringArgsTemplate: !!js/function &TimestampToStringArgsTemplate > + () => { + return ''; + } + TimestampEqualsTemplate: !!js/function &TimestampEqualsTemplate > + (lhs) => { + return `${lhs} == `; + } + TimestampEqualsArgsTemplate: !!js/function &TimestampEqualsArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + TimestampGetLowBitsTemplate: !!js/function &TimestampGetLowBitsTemplate > + (lhs) => { + return `(${lhs})->getTimestamp()`; + } + TimestampGetLowBitsArgsTemplate: + !!js/function &TimestampGetLowBitsArgsTemplate > + () => { + return '' + } + TimestampGetHighBitsTemplate: !!js/function &TimestampGetHighBitsTemplate > + (lhs) => { + return `(${lhs})->getIncrement()`; + } + TimestampGetHighBitsArgsTemplate: + !!js/function &TimestampGetHighBitsArgsTemplate > + () => { + return '' + } + TimestampTTemplate: !!js/function &TimestampTTemplate > + (lhs) => { + return `(${lhs})->getTimestamp()`; + } + TimestampITemplate: !!js/function &TimestampITemplate > + (lhs) => { + return `(${lhs})->getIncrement()`; + } + TimestampAsDateTemplate: !!js/function &TimestampAsDateTemplate > + (lhs) => { + return `new UTCDateTime((${lhs})->getTimestamp() * 1000)`; + } + TimestampAsDateArgsTemplate: &TimestampAsDateArgsTemplate null + TimestampCompareTemplate: !!js/function &TimestampCompareTemplate > + (lhs) => { + return `${lhs} <=> `; + } + TimestampCompareArgsTemplate: !!js/function &TimestampCompareArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + TimestampNotEqualsTemplate: !!js/function &TimestampNotEqualsTemplate > + (lhs) => { + return `${lhs} != `; + } + TimestampNotEqualsArgsTemplate: + !!js/function &TimestampNotEqualsArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + TimestampGreaterThanTemplate: !!js/function &TimestampGreaterThanTemplate > + (lhs) => { + return `${lhs} > `; + } + TimestampGreaterThanArgsTemplate: + !!js/function &TimestampGreaterThanArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + TimestampGreaterThanOrEqualTemplate: + !!js/function &TimestampGreaterThanOrEqualTemplate > + (lhs) => { + return `${lhs} >= `; + } + TimestampGreaterThanOrEqualArgsTemplate: + !!js/function &TimestampGreaterThanOrEqualArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + TimestampLessThanTemplate: !!js/function &TimestampLessThanTemplate > + (lhs) => { + return `${lhs} < `; + } + TimestampLessThanArgsTemplate: !!js/function &TimestampLessThanArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + TimestampLessThanOrEqualTemplate: + !!js/function &TimestampLessThanOrEqualTemplate > + (lhs) => { + return `${lhs} <= `; + } + TimestampLessThanOrEqualArgsTemplate: + !!js/function &TimestampLessThanOrEqualArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + SymbolValueOfTemplate: !!js/function &SymbolValueOfTemplate > + (lhs) => { + return lhs; + } + SymbolValueOfArgsTemplate: !!js/function &SymbolValueOfArgsTemplate > + () => { + return ''; + } + SymbolInspectTemplate: !!js/function &SymbolInspectTemplate > + (lhs) => { + return lhs; + } + SymbolInspectArgsTemplate: !!js/function &SymbolInspectArgsTemplate > + () => { + return ''; + } + SymbolToStringTemplate: !!js/function &SymbolToStringTemplate > + (lhs) => { + return lhs; + } + SymbolToStringArgsTemplate: !!js/function &SymbolToStringArgsTemplate > + (lhs) => { + return ''; + } + Decimal128ToStringTemplate: !!js/function &Decimal128ToStringTemplate > + (lhs) => { + return `(string) ${lhs}`; + } + Decimal128ToStringArgsTemplate: + !!js/function &Decimal128ToStringArgsTemplate > + (lhs) => { + return ''; + } + + ############################################# + # Symbol Attributes/Methods # + # # + # These're variables or functions called on # + # symbols. Also called bson-utils. # + # # + # They are basically the same thing as # + # object attributes/methods, but need to be # + # distinguished since they are separate # + # namespaces that happen to have the same # + # name which is v confusing. # + # # + # For example, ObjectId().toString() is an # + # object method, while ObjectId.fromString # + # is a symbol attribute. These are two # + # separate ObjectId related namespaces that # + # don't overlap. # + # # + ############################################# + LongSymbolMaxTemplate: !!js/function &LongSymbolMaxTemplate > + () => { + return '\\PHP_INT_MAX'; + } + LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null + LongSymbolMinTemplate: !!js/function &LongSymbolMinTemplate > + () => { + return '\\PHP_INT_MIN'; + } + LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null + LongSymbolZeroTemplate: !!js/function &LongSymbolZeroTemplate > + () => { + return '0'; + } + LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null + LongSymbolOneTemplate: !!js/function &LongSymbolOneTemplate > + () => { + return '1'; + } + LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null + LongSymbolNegOneTemplate: !!js/function &LongSymbolNegOneTemplate > + () => { + return '-1'; + } + LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null + LongSymbolFromBitsTemplate: !!js/function &LongSymbolFromBitsTemplate > + () => { + return ''; + } + LongSymbolFromBitsArgsTemplate: + !!js/function &LongSymbolFromBitsArgsTemplate > + (lhs, arg) => { + return `(int) ${arg}`; + } + LongSymbolFromIntTemplate: !!js/function &LongSymbolFromIntTemplate > + () => { + return ''; + } + LongSymbolFromIntArgsTemplate: !!js/function &LongSymbolFromIntArgsTemplate > + (lhs, arg) => { + return arg; + } + LongSymbolFromNumberTemplate: !!js/function &LongSymbolFromNumberTemplate > + () => { + return ''; + } + LongSymbolFromNumberArgsTemplate: + !!js/function &LongSymbolFromNumberArgsTemplate > + (lhs, arg) => { + return `(int) ${arg}`; + } + LongSymbolFromStringTemplate: !!js/function &LongSymbolFromStringTemplate > + () => { + return ''; + } + LongSymbolFromStringArgsTemplate: + !!js/function &LongSymbolFromStringArgsTemplate > + (lhs, arg) => { + return `(int) ${arg}`; + } + Decimal128SymbolFromStringTemplate: + !!js/function &Decimal128SymbolFromStringTemplate > + () => { + return 'new Decimal128'; + } + Decimal128SymbolFromStringArgsTemplate: + !!js/function &Decimal128SymbolFromStringArgsTemplate > + (lhs, arg) => { + return `(${arg})`; + } + ObjectIdCreateFromHexStringTemplate: + !!js/function &ObjectIdCreateFromHexStringTemplate > + () => { + return 'new ObjectId'; + } + ObjectIdCreateFromHexStringArgsTemplate: + !!js/function &ObjectIdCreateFromHexStringArgsTemplate > + (lhs, arg) => { + return `(${arg})`; + } + ObjectIdCreateFromTimeTemplate: + !!js/function &ObjectIdCreateFromTimeTemplate > + () => { + return 'new ObjectId'; + } + ObjectIdCreateFromTimeArgsTemplate: + !!js/function &ObjectIdCreateFromTimeArgsTemplate > + (lhs, arg, isNumber) => { + if (!isNumber) { + return `(\\str_pad(\\bin2hex(\\pack('N', (${arg})->toDateTime()->getTimestamp())), 24, '0'))`; + } + return `(\\str_pad(\\bin2hex(\\pack('N', ${arg})), 24, '0'))`; + } + # non bson-specific would go here, but there aren't any atm. + ############################################# + # Imports # + # # + # Each type has a 'code' that is consistent # + # between languages. The import templates # + # for each code generate the required # + # statement for each type. No args. # + # # + # The ImportTemplate collects everything # + # into one statement. # + # # + ############################################# + ImportTemplate: !!js/function &ImportTemplate > + (args) => { + let set = new Set(Object.values(args)); + return [...set].sort().join('\n'); + } + DriverImportTemplate: !!js/function &DriverImportTemplate > + () => { + return `use MongoDB\\Client;`; + } + 0ImportTemplate: &0ImportTemplate null + 1ImportTemplate: &1ImportTemplate null + 2ImportTemplate: &2ImportTemplate null + 3ImportTemplate: &3ImportTemplate null + 4ImportTemplate: &4ImportTemplate null + 5ImportTemplate: &5ImportTemplate null + 6ImportTemplate: &6ImportTemplate null + 7ImportTemplate: &7ImportTemplate null + # Common internal Regexp + 8ImportTemplate: !!js/function &8ImportTemplate > + () => { + return `use MongoDB\\BSON\\Regex;`; + } + 9ImportTemplate: &9ImportTemplate null + 10ImportTemplate: &10ImportTemplate null + 11ImportTemplate: &11ImportTemplate null + 12ImportTemplate: &12ImportTemplate null + # Code + 100ImportTemplate: !!js/function &100ImportTemplate > + () => { + return `use MongoDB\\BSON\\Javascript;`; + } + # ObjectId + 101ImportTemplate: !!js/function &101ImportTemplate > + () => { + return `use MongoDB\\BSON\\ObjectId;`; + } + # Binary + 102ImportTemplate: !!js/function &102ImportTemplate > + () => { + return `use MongoDB\\BSON\\Binary;`; + } + # DBRef + 103ImportTemplate: &103ImportTemplate null + 104ImportTemplate: &104ImportTemplate null + 105ImportTemplate: &105ImportTemplate null + # Int64 + 106ImportTemplate: &106ImportTemplate null + # MinKey + 107ImportTemplate: !!js/function &107ImportTemplate > + () => { + return `use MongoDB\\BSON\\MinKey;`; + } + # MaxKey + 108ImportTemplate: !!js/function &108ImportTemplate > + () => { + return `use MongoDB\\BSON\\MaxKey;`; + } + # Regex + 109ImportTemplate: !!js/function &109ImportTemplate > + () => { + return `use MongoDB\\BSON\\Regex;`; + } + # Timestamp + 110ImportTemplate: !!js/function &110ImportTemplate > + () => { + return `use MongoDB\\BSON\\Timestamp;`; + } + 111ImportTemplate: &111ImportTemplate null + # Decimal128 + 112ImportTemplate: !!js/function &112ImportTemplate > + () => { + return `use MongoDB\\BSON\\Decimal128;`; + } + 113ImportTemplate: &113ImportTemplate null + 114ImportTemplate: &114ImportTemplate null + 200ImportTemplate: !!js/function &200ImportTemplate > + () => { + return `use MongoDB\\BSON\\UTCDateTime;`; + } + 201ImportTemplate: &201ImportTemplate null + 300ImportTemplate: &300ImportTemplate null + 301ImportTemplate: &301ImportTemplate null + 302ImportTemplate: &302ImportTemplate null + 303ImportTemplate: &303ImportTemplate null + 304ImportTemplate: &304ImportTemplate null + 305ImportTemplate: &305ImportTemplate null + 306ImportTemplate: &306ImportTemplate null diff --git a/packages/bson-transpilers/symbols/python/templates.yaml b/packages/bson-transpilers/symbols/python/templates.yaml index 5eced8c2ffa..c1828b20fea 100644 --- a/packages/bson-transpilers/symbols/python/templates.yaml +++ b/packages/bson-transpilers/symbols/python/templates.yaml @@ -1,1043 +1,1073 @@ # Python Templates Templates: - # Misc - RegexFlags: &RegexFlags - i: 'i' - m: 'm' - u: 'a' - y: '' - g: 's' - BSONRegexFlags: &BSONRegexFlags - i: 'i' - m: 'm' - x: 'x' - s: 's' - l: 'l' - u: 'u' - # Syntax + # Misc + RegexFlags: &RegexFlags + i: 'i' + m: 'm' + u: 'a' + y: '' + g: 's' + BSONRegexFlags: &BSONRegexFlags + i: 'i' + m: 'm' + x: 'x' + s: 's' + l: 'l' + u: 'u' + # Syntax - # filter, project, sort, collation, skip, limit, maxTimeMS - DriverTemplate: &DriverTemplate !!js/function > - (spec) => { - const comment = `# Requires the PyMongo package. - # https://api.mongodb.com/python/current`; - const translateKey = { - filter: 'filter', - project: 'projection', - sort: 'sort', - collation: 'collation', - skip: 'skip', - limit: 'limit', - maxTimeMS: 'max_time_ms' - }; - const options = spec.options; - const exportMode = spec.exportMode; - delete spec.options; - delete spec.exportMode; + # filter, project, sort, collation, skip, limit, maxTimeMS + DriverTemplate: !!js/function &DriverTemplate > + (spec) => { + const comment = `# Requires the PyMongo package. + # https://api.mongodb.com/python/current`; + const translateKey = { + filter: 'filter', + project: 'projection', + sort: 'sort', + collation: 'collation', + skip: 'skip', + limit: 'limit', + maxTimeMS: 'max_time_ms' + }; + const options = spec.options; + const exportMode = spec.exportMode; + delete spec.options; + delete spec.exportMode; - const connect = `client = MongoClient('${options.uri}')`; - const coll = `client['${options.database}']['${options.collection}']`; + const connect = `client = MongoClient('${options.uri}')`; + const coll = `client['${options.database}']['${options.collection}']`; - let driverMethod; - switch (exportMode) { - case 'Delete Query': - driverMethod = 'delete_many'; - break; - case 'Update Query': - driverMethod = 'update_many'; - break; - default: - driverMethod = 'find'; - } + let driverMethod; + switch (exportMode) { + case 'Delete Query': + driverMethod = 'delete_many'; + break; + case 'Update Query': + driverMethod = 'update_many'; + break; + default: + driverMethod = 'find'; + } - if ('aggregation' in spec) { - return `${comment}\n\n${connect}\nresult = ${coll}.aggregate(${spec.aggregation})`; - } + if ('aggregation' in spec) { + return `${comment}\n\n${connect}\nresult = ${coll}.aggregate(${spec.aggregation})`; + } - const vars = Object.keys(spec).reduce( - (result, k) => { - if (k === 'sort') { - return `${result}\n${k}=list(${spec[k]}.items())`; - } - return `${result}\n${k}=${spec[k]}`; - }, - connect - ); + const vars = Object.keys(spec).reduce( + (result, k) => { + if (k === 'sort') { + return `${result}\n${k}=list(${spec[k]}.items())`; + } + return `${result}\n${k}=${spec[k]}`; + }, + connect + ); - const args = Object.keys(spec).reduce( - (result, k) => { - const divider = result === '' ? '' : ',\n'; - return `${result}${divider} ${ - k in translateKey ? translateKey[k] : k - }=${k}`; - }, - '' - ); - const cmd = `result = ${coll}.${driverMethod}(\n${args}\n)`; + const args = Object.keys(spec).reduce( + (result, k) => { + const divider = result === '' ? '' : ',\n'; + return `${result}${divider} ${ + k in translateKey ? translateKey[k] : k + }=${k}`; + }, + '' + ); + const cmd = `result = ${coll}.${driverMethod}(\n${args}\n)`; - return `${comment}\n\n${vars}\n\n${cmd}`; - } - EqualitySyntaxTemplate: &EqualitySyntaxTemplate !!js/function > - (lhs, op, rhs) => { - if (op.includes('!')) { - return `${lhs} != ${rhs}`; + return `${comment}\n\n${vars}\n\n${cmd}`; + } + EqualitySyntaxTemplate: !!js/function &EqualitySyntaxTemplate > + (lhs, op, rhs) => { + if (op.includes('!')) { + return `${lhs} != ${rhs}`; + } + else if (op === '==' || op === '===' || op === 'is') { + return `${lhs} == ${rhs}`; + } + return `${lhs} ${op} ${rhs}`; + } + InSyntaxTemplate: !!js/function &InSyntaxTemplate > + (lhs, op, rhs) => { + let str = 'in'; + if (op.includes('!') || op.includes('not')) { + str = 'not in'; + } + return `${lhs} ${str} ${rhs}` + } + AndSyntaxTemplate: !!js/function &AndSyntaxTemplate > + (args) => { + return args.join(' and '); + } + OrSyntaxTemplate: !!js/function &OrSyntaxTemplate > + (args) => { + return args.join(' or '); + } + NotSyntaxTemplate: !!js/function &NotSyntaxTemplate > + (arg) => { + return `not ${arg}`; + } + UnarySyntaxTemplate: &UnarySyntaxTemplate null + BinarySyntaxTemplate: !!js/function &BinarySyntaxTemplate > + (args) => { + return args.reduce((s, op, i, arr) => { + if (i % 2 === 0) { + return s; } - else if (op === '==' || op === '===' || op === 'is') { - return `${lhs} == ${rhs}`; - } - return `${lhs} ${op} ${rhs}`; - } - InSyntaxTemplate: &InSyntaxTemplate !!js/function > - (lhs, op, rhs) => { - let str = 'in'; - if (op.includes('!') || op.includes('not')) { - str = 'not in'; + const rhs = arr[i + 1]; + switch(op) { + case '//': + return `${s} // ${rhs}`; + case '**': + return `${s} ** ${rhs}`; + default: + return `${s} ${op} ${rhs}`; } - return `${lhs} ${str} ${rhs}` - } - AndSyntaxTemplate: &AndSyntaxTemplate !!js/function > - (args) => { - return args.join(' and '); - } - OrSyntaxTemplate: &OrSyntaxTemplate !!js/function > - (args) => { - return args.join(' or '); - } - NotSyntaxTemplate: &NotSyntaxTemplate !!js/function > - (arg) => { - return `not ${arg}`; - } - UnarySyntaxTemplate: &UnarySyntaxTemplate null - BinarySyntaxTemplate: &BinarySyntaxTemplate !!js/function > - (args) => { - return args.reduce((s, op, i, arr) => { - if (i % 2 === 0) { - return s; - } - const rhs = arr[i + 1]; - switch(op) { - case '//': - return `${s} // ${rhs}`; - case '**': - return `${s} ** ${rhs}`; - default: - return `${s} ${op} ${rhs}`; - } - }, args[0]); - } - ParensSyntaxTemplate: &ParensSyntaxTemplate null - EosSyntaxTemplate: &EosSyntaxTemplate null - EofSyntaxTemplate: &EofSyntaxTemplate null - NewTemplate: &NewSyntaxTemplate null - # BSON Object Type templates - CodeTypeTemplate: &CodeTypeTemplate null - StringTypeTemplate: &StringTypeTemplate !!js/function > - (str) => { - let newStr = str; - if ( + }, args[0]); + } + ParensSyntaxTemplate: &ParensSyntaxTemplate null + EosSyntaxTemplate: &EosSyntaxTemplate null + EofSyntaxTemplate: &EofSyntaxTemplate null + NewTemplate: &NewSyntaxTemplate null + # BSON Object Type templates + CodeTypeTemplate: &CodeTypeTemplate null + StringTypeTemplate: !!js/function &StringTypeTemplate > + (str) => { + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + } + return `'${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}'`; + } + RegexTypeTemplate: !!js/function &RegexTypeTemplate > + (pattern, flags) => { + flags = flags === '' ? '' : `(?${flags})`; + + // Double-quote stringify + const str = pattern + flags; + let newStr = str; + if ( (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `'${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}'`; + newStr = str.substr(1, str.length - 2); } - RegexTypeTemplate: &RegexTypeTemplate !!js/function > - (pattern, flags) => { - flags = flags === '' ? '' : `(?${flags})`; + return `re.compile(r"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}")`; + } + BoolTypeTemplate: !!js/function &BoolTypeTemplate > + (str) => { + return `${str.charAt(0).toUpperCase()}${str.slice(1)}`; + } + IntegerTypeTemplate: &IntegerTypeTemplate null + DecimalTypeTemplate: &DecimalTypeTemplate null + LongBasicTypeTemplate: &LongBasicTypeTemplate null + HexTypeTemplate: &HexTypeTemplate null + OctalTypeTemplate: !!js/function &OctalTypeTemplate > + (literal) => { + let offset = 0; - // Double-quote stringify - const str = pattern + flags; - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `re.compile(r"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}")`; + if ( + literal.charAt(0) === '0' && + (literal.charAt(1) === '0' || literal.charAt(1) === 'o' || literal.charAt(1) === 'O') + ) { + offset = 2; + } else if (literal.charAt(0) === '0') { + offset = 1; } - BoolTypeTemplate: &BoolTypeTemplate !!js/function > - (str) => { - return `${str.charAt(0).toUpperCase()}${str.slice(1)}`; - } - IntegerTypeTemplate: &IntegerTypeTemplate null - DecimalTypeTemplate: &DecimalTypeTemplate null - LongBasicTypeTemplate: &LongBasicTypeTemplate null - HexTypeTemplate: &HexTypeTemplate null - OctalTypeTemplate: &OctalTypeTemplate !!js/function > - (literal) => { - let offset = 0; - if ( - literal.charAt(0) === '0' && - (literal.charAt(1) === '0' || literal.charAt(1) === 'o' || literal.charAt(1) === 'O') - ) { - offset = 2; - } else if (literal.charAt(0) === '0') { - offset = 1; - } - - literal = `0o${literal.substr(offset, literal.length - 1)}`; + literal = `0o${literal.substr(offset, literal.length - 1)}`; - return literal; - } - NumericTypeTemplate: &NumericTypeTemplate null - ArrayTypeTemplate: &ArrayTypeTemplate !!js/function > - (literal, depth) => { - depth++; - if (literal === '') { - return '[]' - } - const indent = '\n' + ' '.repeat(depth); - const closingIndent = '\n' + ' '.repeat(depth - 1); + return literal; + } + NumericTypeTemplate: &NumericTypeTemplate null + ArrayTypeTemplate: !!js/function &ArrayTypeTemplate > + (literal, depth) => { + depth++; + if (literal === '') { + return '[]' + } + const indent = '\n' + ' '.repeat(depth); + const closingIndent = '\n' + ' '.repeat(depth - 1); - return `[${indent}${literal}${closingIndent}]`; - } - ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate null - NullTypeTemplate: &NullTypeTemplate !!js/function > - () => { - return 'None'; - } - UndefinedTypeTemplate: &UndefinedTypeTemplate !!js/function > - () => { - return 'None'; - } - ObjectTypeTemplate: &ObjectTypeTemplate !!js/function > - (literal, depth) => { - if (literal === '') { - return '{}'; + return `[${indent}${literal}${closingIndent}]`; + } + ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate null + NullTypeTemplate: !!js/function &NullTypeTemplate > + () => { + return 'None'; + } + UndefinedTypeTemplate: !!js/function &UndefinedTypeTemplate > + () => { + return 'None'; + } + ObjectTypeTemplate: !!js/function &ObjectTypeTemplate > + (literal, depth) => { + if (literal === '') { + return '{}'; + } + return literal; + } + ObjectTypeArgsTemplate: !!js/function &ObjectTypeArgsTemplate > + (args, depth) => { + if (args.length === 0) { + return '{}'; + } + depth++; + const indent = '\n' + ' '.repeat(depth); + const closingIndent = '\n' + ' '.repeat(depth - 1); + const singleStringify = (str) => { + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); } - return literal; + return `'${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}'`; } - ObjectTypeArgsTemplate: &ObjectTypeArgsTemplate !!js/function > - (args, depth) => { - if (args.length === 0) { - return '{}'; - } - depth++; - const indent = '\n' + ' '.repeat(depth); - const closingIndent = '\n' + ' '.repeat(depth - 1); - const singleStringify = (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `'${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}'`; - } - const pairs = args.map((arg) => { - return `${indent}${singleStringify(arg[0])}: ${arg[1]}`; - }).join(', '); + const pairs = args.map((arg) => { + return `${indent}${singleStringify(arg[0])}: ${arg[1]}`; + }).join(', '); - return `{${pairs}${closingIndent}}`; - } - # BSON Object Method templates - CodeCodeTemplate: &CodeCodeTemplate !!js/function > - (lhs) => { - return `str(${lhs})`; - } - CodeCodeArgsTemplate: &CodeCodeArgsTemplate null - CodeScopeTemplate: &CodeScopeTemplate null - CodeScopeArgsTemplate: &CodeScopeArgsTemplate null - ObjectIdToStringTemplate: &ObjectIdToStringTemplate !!js/function > - (lhs) => { - return `str(${lhs})`; - } - ObjectIdToStringArgsTemplate: &ObjectIdToStringArgsTemplate !!js/function > - (lhs) => { - return ''; - } - ObjectIdEqualsTemplate: &ObjectIdEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} ==`; - } - ObjectIdEqualsArgsTemplate: &ObjectIdEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - ObjectIdGetTimestampTemplate: &ObjectIdGetTimestampTemplate !!js/function > - (lhs) => { - return `${lhs}.generation_time`; - } - ObjectIdGetTimestampArgsTemplate: &ObjectIdGetTimestampArgsTemplate !!js/function > - () => { - return ''; - } - BinaryValueTemplate: &BinaryValueTemplate !!js/function > - () => { - return ''; - } - BinaryValueArgsTemplate: &BinaryValueArgsTemplate !!js/function > - (lhs) => { - return `str(${lhs})`; - } - BinaryLengthTemplate: &BinaryLengthTemplate !!js/function > - () => { - return ''; - } - BinaryLengthArgsTemplate: &BinaryLengthArgsTemplate !!js/function > - (lhs) => { - return `len(${lhs})`; - } - BinaryToStringTemplate: &BinaryToStringTemplate !!js/function > - () => { - return ''; - } - BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate !!js/function > - (lhs) => { - return `str(${lhs})`; - } - BinarySubtypeTemplate: &BinarySubtypeTemplate !!js/function > - (lhs) => { - return `${lhs}.subtype`; - } - BinarySubtypeArgsTemplate: &BinarySubtypeArgsTemplate null - DBRefGetDBTemplate: &DBRefGetDBTemplate !!js/function > - (lhs) => { - return `${lhs}.database`; - } - DBRefGetCollectionTemplate: &DBRefGetCollectionTemplate !!js/function > - (lhs) => { - return `${lhs}.collection`; - } - DBRefGetIdTemplate: &DBRefGetIdTemplate !!js/function > - (lhs) => { - return `${lhs}.id`; - } - DBRefGetIdArgsTemplate: &DBRefGetIdArgsTemplate !!js/function - () => { - return ''; - } - DBRefGetDBArgsTemplate: &DBRefGetDBArgsTemplate !!js/function > - () => { - return ''; - } - DBRefGetCollectionArgsTemplate: &DBRefGetCollectionArgsTemplate !!js/function - () => { - return ''; - } - LongEqualsTemplate: &LongEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} ==`; - } - LongEqualsArgsTemplate: &LongEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongToIntTemplate: &LongToIntTemplate !!js/function > - (lhs) => { - return `int(${lhs})`; - } - LongToIntArgsTemplate: &LongToIntArgsTemplate !!js/function > - () => { - return ''; - } - LongToStringTemplate: &LongToStringTemplate !!js/function > - () => { - return 'str'; - } - LongToStringArgsTemplate: &LongToStringArgsTemplate !!js/function > - (lhs) => { - return `(${lhs})`; - } - LongToNumberTemplate: &LongToNumberTemplate !!js/function > - (lhs) => { - return `float(${lhs})`; - } - LongToNumberArgsTemplate: &LongToNumberArgsTemplate !!js/function > - () => { - return ''; - } - LongAddTemplate: &LongAddTemplate !!js/function > - (lhs) => { - return `${lhs} +`; - } - LongAddArgsTemplate: &LongAddArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongSubtractTemplate: &LongSubtractTemplate !!js/function > - (arg) => { - return `${arg} -`; - } - LongSubtractArgsTemplate: &LongSubtractArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongMultiplyTemplate: &LongMultiplyTemplate !!js/function > - (arg) => { - return `${arg} *`; - } - LongMultiplyArgsTemplate: &LongMultiplyArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongDivTemplate: &LongDivTemplate !!js/function > - (lhs) => { - return `${lhs} /`; - } - LongDivArgsTemplate: &LongDivArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongModuloTemplate: &LongModuloTemplate !!js/function > - (lhs) => { - return `${lhs} %`; - } - LongModuloArgsTemplate: &LongModuloArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongAndTemplate: &LongAndTemplate !!js/function > - (lhs) => { - return `${lhs} &`; - } - LongAndArgsTemplate: &LongAndArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongOrTemplate: &LongOrTemplate !!js/function > - (lhs) => { - return `${lhs} |`; - } - LongOrArgsTemplate: &LongOrArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongXorTemplate: &LongXorTemplate !!js/function > - (lhs) => { - return `${lhs} ^`; - } - LongXorArgsTemplate: &LongXorArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongShiftLeftTemplate: &LongShiftLeftTemplate !!js/function > - (lhs) => { - return `${lhs} <<`; - } - LongShiftLeftArgsTemplate: &LongShiftLeftArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongShiftRightTemplate: &LongShiftRightTemplate !!js/function > - (lhs) => { - return `${lhs} >>`; - } - LongShiftRightArgsTemplate: &LongShiftRightArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongCompareTemplate: &LongCompareTemplate !!js/function > - (lhs) => { - return `${lhs} -`; - } - LongCompareArgsTemplate: &LongCompareArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongIsOddTemplate: &LongIsOddTemplate !!js/function > - (lhs) => { - return `(${lhs} % 2) == 1`; - } - LongIsOddArgsTemplate: &LongIsOddArgsTemplate !!js/function > - () => { - return ''; - } - LongIsZeroTemplate: &LongIsZeroTemplate !!js/function > - (lhs) => { - return `${lhs} == 0`; - } - LongIsZeroArgsTemplate: &LongIsZeroArgsTemplate !!js/function > - () => { - return ''; - } - LongIsNegativeTemplate: &LongIsNegativeTemplate !!js/function > - (lhs) => { - return `${lhs} < 0`; - } - LongIsNegativeArgsTemplate: &LongIsNegativeArgsTemplate !!js/function > - () => { - return ''; - } - LongNegateTemplate: &LongNegateTemplate !!js/function > - () => { - return '-'; - } - LongNegateArgsTemplate: &LongNegateArgsTemplate !!js/function > - (lhs) => { - return lhs; - } - LongNotTemplate: &LongNotTemplate !!js/function > - () => { - return '~'; - } - LongNotArgsTemplate: &LongNotArgsTemplate !!js/function > - (lhs) => { - return lhs; - } - LongNotEqualsTemplate: &LongNotEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} !=`; - } - LongNotEqualsArgsTemplate: &LongNotEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongGreaterThanTemplate: &LongGreaterThanTemplate !!js/function > - (lhs) => { - return `${lhs} >`; - } - LongGreaterThanArgsTemplate: &LongGreaterThanArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongGreaterThanOrEqualTemplate: &LongGreaterThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} >=`; - } - LongGreaterThanOrEqualArgsTemplate: &LongGreaterThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongLessThanTemplate: &LongLessThanTemplate !!js/function > - (lhs) => { - return `${lhs} <`; - } - LongLessThanArgsTemplate: &LongLessThanArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongLessThanOrEqualTemplate: &LongLessThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} <=`; - } - LongLessThanOrEqualArgsTemplate: &LongLessThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongFloatApproxTemplate: &LongFloatApproxTemplate !!js/function > - (lhs) => { - return `float(${lhs})`; - } - LongTopTemplate: &LongTopTemplate !!js/function > - (lhs) => { - return `${lhs} >> 32`; - } - LongBottomTemplate: &LongBottomTemplate !!js/function > - (lhs) => { - return `${lhs} & 0x0000ffff`; - } - TimestampToStringTemplate: &TimestampToStringTemplate !!js/function > - () => { - return 'str'; - } - TimestampToStringArgsTemplate: &TimestampToStringArgsTemplate !!js/function > - (lhs) => { - return `(${lhs})`; - } - TimestampEqualsTemplate: &TimestampEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} ==`; - } - TimestampEqualsArgsTemplate: &TimestampEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - TimestampGetLowBitsTemplate: &TimestampGetLowBitsTemplate !!js/function > - (lhs) => { - return `${lhs}.time`; - } - TimestampGetLowBitsArgsTemplate: &TimestampGetLowBitsArgsTemplate !!js/function > - () => { - return ''; - } - TimestampGetHighBitsTemplate: &TimestampGetHighBitsTemplate !!js/function > - (lhs) => { - return `${lhs}.inc`; - } - TimestampGetHighBitsArgsTemplate: &TimestampGetHighBitsArgsTemplate !!js/function > - () => { - return ''; - } - TimestampTTemplate: &TimestampTTemplate !!js/function > - (lhs) => { - return `${lhs}.time`; - } - TimestampITemplate: &TimestampITemplate !!js/function > - (lhs) => { - return `${lhs}.inc`; - } - TimestampAsDateTemplate: &TimestampAsDateTemplate null - TimestampAsDateArgsTemplate: &TimestampAsDateArgsTemplate !!js/function > - () => { - return '.as_datetime()'; - } - TimestampCompareTemplate: &TimestampCompareTemplate !!js/function > - (lhs) => { - return `(${lhs}.as_datetime() - `; - } - TimestampCompareArgsTemplate: &TimestampCompareArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}.as_datetime()).total_seconds()`; - } - TimestampNotEqualsTemplate: &TimestampNotEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} !=`; - } - TimestampNotEqualsArgsTemplate: &TimestampNotEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - TimestampGreaterThanTemplate: &TimestampGreaterThanTemplate !!js/function > - (lhs) => { - return `${lhs} >`; - } - TimestampGreaterThanArgsTemplate: &TimestampGreaterThanArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - TimestampGreaterThanOrEqualTemplate: &TimestampGreaterThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} >=`; - } - TimestampGreaterThanOrEqualArgsTemplate: &TimestampGreaterThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - TimestampLessThanTemplate: &TimestampLessThanTemplate !!js/function > - (lhs) => { - return `${lhs} <`; - } - TimestampLessThanArgsTemplate: &TimestampLessThanArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - TimestampLessThanOrEqualTemplate: &TimestampLessThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} <=`; - } - TimestampLessThanOrEqualArgsTemplate: &TimestampLessThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - SymbolValueOfTemplate: &SymbolValueOfTemplate !!js/function > - (lhs) => { - return lhs; - } - SymbolValueOfArgsTemplate: &SymbolValueOfArgsTemplate !!js/function > - () => { - return ''; - } - SymbolInspectTemplate: &SymbolInspectTemplate !!js/function > - (lhs) => { - return lhs; - } - SymbolInspectArgsTemplate: &SymbolInspectArgsTemplate !!js/function > - () => { - return ''; - } - SymbolToStringTemplate: &SymbolToStringTemplate !!js/function > - (lhs) => { - return lhs; - } - SymbolToStringArgsTemplate: &SymbolToStringArgsTemplate !!js/function > - () => { - return ''; - } - # Symbol Templates - CodeSymbolTemplate: &CodeSymbolTemplate !!js/function > # Also has process method - () => { - return 'Code'; - } - CodeSymbolArgsTemplate: &CodeSymbolArgsTemplate !!js/function > # Also has process method - (lhs, code, scope) => { - // Single quote stringify - const scopestr = scope === undefined ? '' : `, ${scope}`; - let newStr = code === undefined ? '' : code; - const str = newStr; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + return `{${pairs}${closingIndent}}`; + } + # BSON Object Method templates + CodeCodeTemplate: !!js/function &CodeCodeTemplate > + (lhs) => { + return `str(${lhs})`; + } + CodeCodeArgsTemplate: &CodeCodeArgsTemplate null + CodeScopeTemplate: &CodeScopeTemplate null + CodeScopeArgsTemplate: &CodeScopeArgsTemplate null + ObjectIdToStringTemplate: !!js/function &ObjectIdToStringTemplate > + (lhs) => { + return `str(${lhs})`; + } + ObjectIdToStringArgsTemplate: !!js/function &ObjectIdToStringArgsTemplate > + (lhs) => { + return ''; + } + ObjectIdEqualsTemplate: !!js/function &ObjectIdEqualsTemplate > + (lhs) => { + return `${lhs} ==`; + } + ObjectIdEqualsArgsTemplate: !!js/function &ObjectIdEqualsArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + ObjectIdGetTimestampTemplate: !!js/function &ObjectIdGetTimestampTemplate > + (lhs) => { + return `${lhs}.generation_time`; + } + ObjectIdGetTimestampArgsTemplate: + !!js/function &ObjectIdGetTimestampArgsTemplate > + () => { + return ''; + } + BinaryValueTemplate: !!js/function &BinaryValueTemplate > + () => { + return ''; + } + BinaryValueArgsTemplate: !!js/function &BinaryValueArgsTemplate > + (lhs) => { + return `str(${lhs})`; + } + BinaryLengthTemplate: !!js/function &BinaryLengthTemplate > + () => { + return ''; + } + BinaryLengthArgsTemplate: !!js/function &BinaryLengthArgsTemplate > + (lhs) => { + return `len(${lhs})`; + } + BinaryToStringTemplate: !!js/function &BinaryToStringTemplate > + () => { + return ''; + } + BinaryToStringArgsTemplate: !!js/function &BinaryToStringArgsTemplate > + (lhs) => { + return `str(${lhs})`; + } + BinarySubtypeTemplate: !!js/function &BinarySubtypeTemplate > + (lhs) => { + return `${lhs}.subtype`; + } + BinarySubtypeArgsTemplate: &BinarySubtypeArgsTemplate null + DBRefGetDBTemplate: !!js/function &DBRefGetDBTemplate > + (lhs) => { + return `${lhs}.database`; + } + DBRefGetCollectionTemplate: !!js/function &DBRefGetCollectionTemplate > + (lhs) => { + return `${lhs}.collection`; + } + DBRefGetIdTemplate: !!js/function &DBRefGetIdTemplate > + (lhs) => { + return `${lhs}.id`; + } + DBRefGetIdArgsTemplate: !!js/function &DBRefGetIdArgsTemplate () => { + return ''; + } + DBRefGetDBArgsTemplate: !!js/function &DBRefGetDBArgsTemplate > + () => { + return ''; + } + DBRefGetCollectionArgsTemplate: + !!js/function &DBRefGetCollectionArgsTemplate () => { + return ''; + } + LongEqualsTemplate: !!js/function &LongEqualsTemplate > + (lhs) => { + return `${lhs} ==`; + } + LongEqualsArgsTemplate: !!js/function &LongEqualsArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongToIntTemplate: !!js/function &LongToIntTemplate > + (lhs) => { + return `int(${lhs})`; + } + LongToIntArgsTemplate: !!js/function &LongToIntArgsTemplate > + () => { + return ''; + } + LongToStringTemplate: !!js/function &LongToStringTemplate > + () => { + return 'str'; + } + LongToStringArgsTemplate: !!js/function &LongToStringArgsTemplate > + (lhs) => { + return `(${lhs})`; + } + LongToNumberTemplate: !!js/function &LongToNumberTemplate > + (lhs) => { + return `float(${lhs})`; + } + LongToNumberArgsTemplate: !!js/function &LongToNumberArgsTemplate > + () => { + return ''; + } + LongAddTemplate: !!js/function &LongAddTemplate > + (lhs) => { + return `${lhs} +`; + } + LongAddArgsTemplate: !!js/function &LongAddArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongSubtractTemplate: !!js/function &LongSubtractTemplate > + (arg) => { + return `${arg} -`; + } + LongSubtractArgsTemplate: !!js/function &LongSubtractArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongMultiplyTemplate: !!js/function &LongMultiplyTemplate > + (arg) => { + return `${arg} *`; + } + LongMultiplyArgsTemplate: !!js/function &LongMultiplyArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongDivTemplate: !!js/function &LongDivTemplate > + (lhs) => { + return `${lhs} /`; + } + LongDivArgsTemplate: !!js/function &LongDivArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongModuloTemplate: !!js/function &LongModuloTemplate > + (lhs) => { + return `${lhs} %`; + } + LongModuloArgsTemplate: !!js/function &LongModuloArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongAndTemplate: !!js/function &LongAndTemplate > + (lhs) => { + return `${lhs} &`; + } + LongAndArgsTemplate: !!js/function &LongAndArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongOrTemplate: !!js/function &LongOrTemplate > + (lhs) => { + return `${lhs} |`; + } + LongOrArgsTemplate: !!js/function &LongOrArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongXorTemplate: !!js/function &LongXorTemplate > + (lhs) => { + return `${lhs} ^`; + } + LongXorArgsTemplate: !!js/function &LongXorArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongShiftLeftTemplate: !!js/function &LongShiftLeftTemplate > + (lhs) => { + return `${lhs} <<`; + } + LongShiftLeftArgsTemplate: !!js/function &LongShiftLeftArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongShiftRightTemplate: !!js/function &LongShiftRightTemplate > + (lhs) => { + return `${lhs} >>`; + } + LongShiftRightArgsTemplate: !!js/function &LongShiftRightArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongCompareTemplate: !!js/function &LongCompareTemplate > + (lhs) => { + return `${lhs} -`; + } + LongCompareArgsTemplate: !!js/function &LongCompareArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongIsOddTemplate: !!js/function &LongIsOddTemplate > + (lhs) => { + return `(${lhs} % 2) == 1`; + } + LongIsOddArgsTemplate: !!js/function &LongIsOddArgsTemplate > + () => { + return ''; + } + LongIsZeroTemplate: !!js/function &LongIsZeroTemplate > + (lhs) => { + return `${lhs} == 0`; + } + LongIsZeroArgsTemplate: !!js/function &LongIsZeroArgsTemplate > + () => { + return ''; + } + LongIsNegativeTemplate: !!js/function &LongIsNegativeTemplate > + (lhs) => { + return `${lhs} < 0`; + } + LongIsNegativeArgsTemplate: !!js/function &LongIsNegativeArgsTemplate > + () => { + return ''; + } + LongNegateTemplate: !!js/function &LongNegateTemplate > + () => { + return '-'; + } + LongNegateArgsTemplate: !!js/function &LongNegateArgsTemplate > + (lhs) => { + return lhs; + } + LongNotTemplate: !!js/function &LongNotTemplate > + () => { + return '~'; + } + LongNotArgsTemplate: !!js/function &LongNotArgsTemplate > + (lhs) => { + return lhs; + } + LongNotEqualsTemplate: !!js/function &LongNotEqualsTemplate > + (lhs) => { + return `${lhs} !=`; + } + LongNotEqualsArgsTemplate: !!js/function &LongNotEqualsArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongGreaterThanTemplate: !!js/function &LongGreaterThanTemplate > + (lhs) => { + return `${lhs} >`; + } + LongGreaterThanArgsTemplate: !!js/function &LongGreaterThanArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongGreaterThanOrEqualTemplate: + !!js/function &LongGreaterThanOrEqualTemplate > + (lhs) => { + return `${lhs} >=`; + } + LongGreaterThanOrEqualArgsTemplate: + !!js/function &LongGreaterThanOrEqualArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongLessThanTemplate: !!js/function &LongLessThanTemplate > + (lhs) => { + return `${lhs} <`; + } + LongLessThanArgsTemplate: !!js/function &LongLessThanArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongLessThanOrEqualTemplate: !!js/function &LongLessThanOrEqualTemplate > + (lhs) => { + return `${lhs} <=`; + } + LongLessThanOrEqualArgsTemplate: + !!js/function &LongLessThanOrEqualArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongFloatApproxTemplate: !!js/function &LongFloatApproxTemplate > + (lhs) => { + return `float(${lhs})`; + } + LongTopTemplate: !!js/function &LongTopTemplate > + (lhs) => { + return `${lhs} >> 32`; + } + LongBottomTemplate: !!js/function &LongBottomTemplate > + (lhs) => { + return `${lhs} & 0x0000ffff`; + } + TimestampToStringTemplate: !!js/function &TimestampToStringTemplate > + () => { + return 'str'; + } + TimestampToStringArgsTemplate: !!js/function &TimestampToStringArgsTemplate > + (lhs) => { + return `(${lhs})`; + } + TimestampEqualsTemplate: !!js/function &TimestampEqualsTemplate > + (lhs) => { + return `${lhs} ==`; + } + TimestampEqualsArgsTemplate: !!js/function &TimestampEqualsArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + TimestampGetLowBitsTemplate: !!js/function &TimestampGetLowBitsTemplate > + (lhs) => { + return `${lhs}.time`; + } + TimestampGetLowBitsArgsTemplate: + !!js/function &TimestampGetLowBitsArgsTemplate > + () => { + return ''; + } + TimestampGetHighBitsTemplate: !!js/function &TimestampGetHighBitsTemplate > + (lhs) => { + return `${lhs}.inc`; + } + TimestampGetHighBitsArgsTemplate: + !!js/function &TimestampGetHighBitsArgsTemplate > + () => { + return ''; + } + TimestampTTemplate: !!js/function &TimestampTTemplate > + (lhs) => { + return `${lhs}.time`; + } + TimestampITemplate: !!js/function &TimestampITemplate > + (lhs) => { + return `${lhs}.inc`; + } + TimestampAsDateTemplate: &TimestampAsDateTemplate null + TimestampAsDateArgsTemplate: !!js/function &TimestampAsDateArgsTemplate > + () => { + return '.as_datetime()'; + } + TimestampCompareTemplate: !!js/function &TimestampCompareTemplate > + (lhs) => { + return `(${lhs}.as_datetime() - `; + } + TimestampCompareArgsTemplate: !!js/function &TimestampCompareArgsTemplate > + (lhs, arg) => { + return `${arg}.as_datetime()).total_seconds()`; + } + TimestampNotEqualsTemplate: !!js/function &TimestampNotEqualsTemplate > + (lhs) => { + return `${lhs} !=`; + } + TimestampNotEqualsArgsTemplate: + !!js/function &TimestampNotEqualsArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + TimestampGreaterThanTemplate: !!js/function &TimestampGreaterThanTemplate > + (lhs) => { + return `${lhs} >`; + } + TimestampGreaterThanArgsTemplate: + !!js/function &TimestampGreaterThanArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + TimestampGreaterThanOrEqualTemplate: + !!js/function &TimestampGreaterThanOrEqualTemplate > + (lhs) => { + return `${lhs} >=`; + } + TimestampGreaterThanOrEqualArgsTemplate: + !!js/function &TimestampGreaterThanOrEqualArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + TimestampLessThanTemplate: !!js/function &TimestampLessThanTemplate > + (lhs) => { + return `${lhs} <`; + } + TimestampLessThanArgsTemplate: !!js/function &TimestampLessThanArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + TimestampLessThanOrEqualTemplate: + !!js/function &TimestampLessThanOrEqualTemplate > + (lhs) => { + return `${lhs} <=`; + } + TimestampLessThanOrEqualArgsTemplate: + !!js/function &TimestampLessThanOrEqualArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + SymbolValueOfTemplate: !!js/function &SymbolValueOfTemplate > + (lhs) => { + return lhs; + } + SymbolValueOfArgsTemplate: !!js/function &SymbolValueOfArgsTemplate > + () => { + return ''; + } + SymbolInspectTemplate: !!js/function &SymbolInspectTemplate > + (lhs) => { + return lhs; + } + SymbolInspectArgsTemplate: !!js/function &SymbolInspectArgsTemplate > + () => { + return ''; + } + SymbolToStringTemplate: !!js/function &SymbolToStringTemplate > + (lhs) => { + return lhs; + } + SymbolToStringArgsTemplate: !!js/function &SymbolToStringArgsTemplate > + () => { + return ''; + } + # Symbol Templates + CodeSymbolTemplate: + !!js/function &CodeSymbolTemplate > # Also has process method + () => { + return 'Code'; + } + CodeSymbolArgsTemplate: + !!js/function &CodeSymbolArgsTemplate > # Also has process method + (lhs, code, scope) => { + // Single quote stringify + const scopestr = scope === undefined ? '' : `, ${scope}`; + let newStr = code === undefined ? '' : code; + const str = newStr; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + } + code = `'${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}'`; + return `(${code}${scopestr})`; + } + ObjectIdSymbolTemplate: &ObjectIdSymbolTemplate null + ObjectIdSymbolArgsTemplate: !!js/function &ObjectIdSymbolArgsTemplate > + (lhs, str) => { + if (!str || str.length === 0) { + return '()'; + } + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + } + return `('${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}')`; + } + BinarySymbolTemplate: &BinarySymbolTemplate null + BinarySymbolArgsTemplate: !!js/function &BinarySymbolArgsTemplate > + (lhs, bytes, type) => { + const str = bytes; + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { newStr = str.substr(1, str.length - 2); - } - code = `'${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}'`; - return `(${code}${scopestr})`; } - ObjectIdSymbolTemplate: &ObjectIdSymbolTemplate null - ObjectIdSymbolArgsTemplate: &ObjectIdSymbolArgsTemplate !!js/function > - (lhs, str) => { - if (!str || str.length === 0) { - return '()'; - } - let newStr = str; - if ( + bytes = `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; + + if (type === null) { + return `(b${bytes})`; + } + return `(b${bytes}, ${type})`; + } + BinarySymbolSubtypeDefaultTemplate: + !!js/function &BinarySymbolSubtypeDefaultTemplate > + () => { + return 'binary.BINARY_SUBTYPE'; + } + BinarySymbolSubtypeFunctionTemplate: + !!js/function &BinarySymbolSubtypeFunctionTemplate > + () => { + return 'binary.FUNCTION_SUBTYPE'; + } + BinarySymbolSubtypeByteArrayTemplate: + !!js/function &BinarySymbolSubtypeByteArrayTemplate > + () => { + return 'binary.BINARY_SUBTYPE'; + } + BinarySymbolSubtypeUuidOldTemplate: + !!js/function &BinarySymbolSubtypeUuidOldTemplate > + () => { + return 'binary.OLD_UUID_SUBTYPE'; + } + BinarySymbolSubtypeUuidTemplate: + !!js/function &BinarySymbolSubtypeUuidTemplate > + () => { + return 'binary.UUID_SUBTYPE'; + } + BinarySymbolSubtypeMd5Template: + !!js/function &BinarySymbolSubtypeMd5Template > + () => { + return 'binary.MD5_SUBTYPE'; + } + BinarySymbolSubtypeUserDefinedTemplate: + !!js/function &BinarySymbolSubtypeUserDefinedTemplate > + () => { + return 'binary.USER_DEFINED_SUBTYPE'; + } + DBRefSymbolTemplate: &DBRefSymbolTemplate null + DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate null + DoubleSymbolTemplate: !!js/function &DoubleSymbolTemplate > + () => { + return 'float'; + } + DoubleSymbolArgsTemplate: &DoubleSymbolArgsTemplate null + Int32SymbolTemplate: !!js/function &Int32SymbolTemplate > + () => { + return 'int'; + } + Int32SymbolArgsTemplate: !!js/function &Int32SymbolArgsTemplate > + (lhs, arg) => { + arg = arg === undefined ? 0 : arg; + const str = arg.toString(); + let newStr = str; + if ( (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { newStr = str.substr(1, str.length - 2); - } - return `('${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}')`; - } - BinarySymbolTemplate: &BinarySymbolTemplate null - BinarySymbolArgsTemplate: &BinarySymbolArgsTemplate !!js/function > - (lhs, bytes, type) => { - const str = bytes; + return `('${newStr}')`; + } else { + return `(${newStr})`; + } + } + LongSymbolTemplate: !!js/function &LongSymbolTemplate > + () => { + return 'Int64'; + } + LongSymbolArgsTemplate: &LongSymbolArgsTemplate null + LongSymbolMaxTemplate: !!js/function &LongSymbolMaxTemplate > + () => { + return 'sys.maxsize'; + } + LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null + LongSymbolMinTemplate: !!js/function &LongSymbolMinTemplate > + () => { + return '-sys.maxsize -1'; + } + LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null + LongSymbolZeroTemplate: !!js/function &LongSymbolZeroTemplate > + () => { + return 'Int64(0)'; + } + LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null + LongSymbolOneTemplate: !!js/function &LongSymbolOneTemplate > + () => { + return 'Int64(1)'; + } + LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null + LongSymbolNegOneTemplate: !!js/function &LongSymbolNegOneTemplate > + () => { + return 'Int64(-1)'; + } + LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null + LongSymbolFromBitsTemplate: + !!js/function &LongSymbolFromBitsTemplate > # Also has process method + () => { + return 'Int64'; + } + LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate null + LongSymbolFromIntTemplate: !!js/function &LongSymbolFromIntTemplate > + () => { + return 'Int64'; + } + LongSymbolFromIntArgsTemplate: &LongSymbolFromIntArgsTemplate null + LongSymbolFromNumberTemplate: !!js/function &LongSymbolFromNumberTemplate > + () => { + return 'Int64'; + } + LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate null + LongSymbolFromStringTemplate: !!js/function &LongSymbolFromStringTemplate > + (lhs, arg) => { + return 'Int64'; + } + LongSymbolFromStringArgsTemplate: + !!js/function &LongSymbolFromStringArgsTemplate > + (lhs, arg) => { + return `(int(${arg}))`; + } + MinKeySymbolTemplate: &MinKeySymbolTemplate null + MinKeySymbolArgsTemplate: &MinKeySymbolArgsTemplate null + MaxKeySymbolTemplate: &MaxKeySymbolTemplate null + MaxKeySymbolArgsTemplate: &MaxKeySymbolArgsTemplate null + TimestampSymbolTemplate: !!js/function &TimestampSymbolTemplate > + () => { + return 'Timestamp'; + } + TimestampSymbolArgsTemplate: !!js/function &TimestampSymbolArgsTemplate > + (lhs, arg1, arg2) => { + return `(${arg1 === undefined ? 0 : arg1}, ${arg2 === undefined ? 0 : arg2})`; + } + SymbolSymbolTemplate: !!js/function &SymbolSymbolTemplate > + () => { + return ''; + } + SymbolSymbolArgsTemplate: !!js/function &SymbolSymbolArgsTemplate > + (lhs, arg) => { + return arg; + } + BSONRegExpSymbolTemplate: !!js/function &BSONRegExpSymbolTemplate > + () => { + return 'Regex'; + } + BSONRegExpSymbolArgsTemplate: !!js/function &BSONRegExpSymbolArgsTemplate > + (lhs, pattern, flags) => { + const singleStringify = (str) => { let newStr = str; if ( (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { newStr = str.substr(1, str.length - 2); } - bytes = `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; - - if (type === null) { - return `(b${bytes})`; - } - return `(b${bytes}, ${type})`; - } - BinarySymbolSubtypeDefaultTemplate: &BinarySymbolSubtypeDefaultTemplate !!js/function > - () => { - return 'binary.BINARY_SUBTYPE'; - } - BinarySymbolSubtypeFunctionTemplate: &BinarySymbolSubtypeFunctionTemplate !!js/function > - () => { - return 'binary.FUNCTION_SUBTYPE'; - } - BinarySymbolSubtypeByteArrayTemplate: &BinarySymbolSubtypeByteArrayTemplate !!js/function > - () => { - return 'binary.BINARY_SUBTYPE'; - } - BinarySymbolSubtypeUuidOldTemplate: &BinarySymbolSubtypeUuidOldTemplate !!js/function > - () => { - return 'binary.OLD_UUID_SUBTYPE'; - } - BinarySymbolSubtypeUuidTemplate: &BinarySymbolSubtypeUuidTemplate !!js/function > - () => { - return 'binary.UUID_SUBTYPE'; - } - BinarySymbolSubtypeMd5Template: &BinarySymbolSubtypeMd5Template !!js/function > - () => { - return 'binary.MD5_SUBTYPE'; - } - BinarySymbolSubtypeUserDefinedTemplate: &BinarySymbolSubtypeUserDefinedTemplate !!js/function > - () => { - return 'binary.USER_DEFINED_SUBTYPE'; - } - DBRefSymbolTemplate: &DBRefSymbolTemplate null - DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate null - DoubleSymbolTemplate: &DoubleSymbolTemplate !!js/function > - () => { - return 'float'; - } - DoubleSymbolArgsTemplate: &DoubleSymbolArgsTemplate null - Int32SymbolTemplate: &Int32SymbolTemplate !!js/function > - () => { - return 'int'; - } - Int32SymbolArgsTemplate: &Int32SymbolArgsTemplate !!js/function > - (lhs, arg) => { - arg = arg === undefined ? 0 : arg; - const str = arg.toString(); - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - return `('${newStr}')`; - } else { - return `(${newStr})`; - } - } - LongSymbolTemplate: &LongSymbolTemplate !!js/function > - () => { - return 'Int64'; - } - LongSymbolArgsTemplate: &LongSymbolArgsTemplate null - LongSymbolMaxTemplate: &LongSymbolMaxTemplate !!js/function > - () => { - return 'sys.maxsize'; - } - LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null - LongSymbolMinTemplate: &LongSymbolMinTemplate !!js/function > - () => { - return '-sys.maxsize -1'; - } - LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null - LongSymbolZeroTemplate: &LongSymbolZeroTemplate !!js/function > - () => { - return 'Int64(0)'; - } - LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null - LongSymbolOneTemplate: &LongSymbolOneTemplate !!js/function > - () => { - return 'Int64(1)'; - } - LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null - LongSymbolNegOneTemplate: &LongSymbolNegOneTemplate !!js/function > - () => { - return 'Int64(-1)'; - } - LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null - LongSymbolFromBitsTemplate: &LongSymbolFromBitsTemplate !!js/function > # Also has process method - () => { - return 'Int64'; - } - LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate null - LongSymbolFromIntTemplate: &LongSymbolFromIntTemplate !!js/function > - () => { - return 'Int64'; - } - LongSymbolFromIntArgsTemplate: &LongSymbolFromIntArgsTemplate null - LongSymbolFromNumberTemplate: &LongSymbolFromNumberTemplate !!js/function > - () => { - return 'Int64'; - } - LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate null - LongSymbolFromStringTemplate: &LongSymbolFromStringTemplate !!js/function > - (lhs, arg) => { - return 'Int64'; - } - LongSymbolFromStringArgsTemplate: &LongSymbolFromStringArgsTemplate !!js/function > - (lhs, arg) => { - return `(int(${arg}))`; - } - MinKeySymbolTemplate: &MinKeySymbolTemplate null - MinKeySymbolArgsTemplate: &MinKeySymbolArgsTemplate null - MaxKeySymbolTemplate: &MaxKeySymbolTemplate null - MaxKeySymbolArgsTemplate: &MaxKeySymbolArgsTemplate null - TimestampSymbolTemplate: &TimestampSymbolTemplate !!js/function > - () => { - return 'Timestamp'; - } - TimestampSymbolArgsTemplate: &TimestampSymbolArgsTemplate !!js/function > - (lhs, arg1, arg2) => { - return `(${arg1 === undefined ? 0 : arg1}, ${arg2 === undefined ? 0 : arg2})`; - } - SymbolSymbolTemplate: &SymbolSymbolTemplate !!js/function > - () => { - return ''; - } - SymbolSymbolArgsTemplate: &SymbolSymbolArgsTemplate !!js/function > - (lhs, arg) => { - return arg; - } - BSONRegExpSymbolTemplate: &BSONRegExpSymbolTemplate !!js/function > - () => { - return 'Regex'; - } - BSONRegExpSymbolArgsTemplate: &BSONRegExpSymbolArgsTemplate !!js/function > - (lhs, pattern, flags) => { - const singleStringify = (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `'${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}'`; - } - return `(${singleStringify(pattern)}${flags ? ', ' + singleStringify(flags) : ''})`; - } - Decimal128SymbolTemplate: &Decimal128SymbolTemplate !!js/function > - () => { - return 'Decimal128'; - } - Decimal128SymbolArgsTemplate: &Decimal128SymbolArgsTemplate !!js/function > - (lhs, str) => { - let newStr = str; - if ( + return `'${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}'`; + } + return `(${singleStringify(pattern)}${flags ? ', ' + singleStringify(flags) : ''})`; + } + Decimal128SymbolTemplate: !!js/function &Decimal128SymbolTemplate > + () => { + return 'Decimal128'; + } + Decimal128SymbolArgsTemplate: !!js/function &Decimal128SymbolArgsTemplate > + (lhs, str) => { + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + } + return `('${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}')`; + } + Decimal128SymbolFromStringTemplate: + !!js/function &Decimal128SymbolFromStringTemplate > + () => { + return 'Decimal128'; + } + Decimal128SymbolFromStringArgsTemplate: + !!js/function &Decimal128SymbolFromStringArgsTemplate > + (lhs, arg) => { + return `(${arg})`; + } + Decimal128ToStringTemplate: !!js/function &Decimal128ToStringTemplate > + () => { + return 'str'; + } + Decimal128ToStringArgsTemplate: + !!js/function &Decimal128ToStringArgsTemplate > + (lhs) => { + return `(${lhs})`; + } + # BSON Util Templates + ObjectIdCreateFromHexStringTemplate: + !!js/function &ObjectIdCreateFromHexStringTemplate > + () => { + return 'ObjectId'; + } + ObjectIdCreateFromHexStringArgsTemplate: + !!js/function &ObjectIdCreateFromHexStringArgsTemplate > + (lhs, arg) => { + return `(${arg})`; + } + ObjectIdCreateFromTimeTemplate: + !!js/function &ObjectIdCreateFromTimeTemplate > + () => { + return `ObjectId.from_datetime`; + } + ObjectIdCreateFromTimeArgsTemplate: + !!js/function &ObjectIdCreateFromTimeArgsTemplate > + (lhs, arg, isNumber) => { + if (isNumber) { + return `(datetime.fromtimestamp(${arg}))`; + } + return `(${arg})`; + } + ObjectIdIsValidTemplate: !!js/function &ObjectIdIsValidTemplate > + (lhs) => { + return `${lhs}.is_valid`; + } + ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate null + # JS Symbol Templates + NumberSymbolTemplate: !!js/function &NumberSymbolTemplate > + () => { + return ''; + } + NumberSymbolArgsTemplate: !!js/function &NumberSymbolArgsTemplate > + (lhs, arg) => { + arg = arg === undefined ? 0 : arg; + const str = arg.toString(); + let newStr = str; + if ( (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { newStr = str.substr(1, str.length - 2); - } - return `('${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}')`; - } - Decimal128SymbolFromStringTemplate: &Decimal128SymbolFromStringTemplate !!js/function > - () => { - return 'Decimal128'; - } - Decimal128SymbolFromStringArgsTemplate: &Decimal128SymbolFromStringArgsTemplate !!js/function > - (lhs, arg) => { - return `(${arg})`; - } - Decimal128ToStringTemplate: &Decimal128ToStringTemplate !!js/function > - () => { - return 'str'; - } - Decimal128ToStringArgsTemplate: &Decimal128ToStringArgsTemplate !!js/function > - (lhs) => { - return `(${lhs})`; - } - # BSON Util Templates - ObjectIdCreateFromHexStringTemplate: &ObjectIdCreateFromHexStringTemplate !!js/function > - () => { - return 'ObjectId'; - } - ObjectIdCreateFromHexStringArgsTemplate: &ObjectIdCreateFromHexStringArgsTemplate !!js/function > - (lhs, arg) => { - return `(${arg})`; - } - ObjectIdCreateFromTimeTemplate: &ObjectIdCreateFromTimeTemplate !!js/function > - () => { - return `ObjectId.from_datetime`; - } - ObjectIdCreateFromTimeArgsTemplate: &ObjectIdCreateFromTimeArgsTemplate !!js/function > - (lhs, arg, isNumber) => { - if (isNumber) { - return `(datetime.fromtimestamp(${arg}))`; - } - return `(${arg})`; - } - ObjectIdIsValidTemplate: &ObjectIdIsValidTemplate !!js/function > - (lhs) => { - return `${lhs}.is_valid`; - } - ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate null - # JS Symbol Templates - NumberSymbolTemplate: &NumberSymbolTemplate !!js/function > - () => { - return ''; - } - NumberSymbolArgsTemplate: &NumberSymbolArgsTemplate !!js/function > - (lhs, arg) => { - arg = arg === undefined ? 0 : arg; - const str = arg.toString(); - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - return `float('${newStr}')`; - } else { - return `${newStr}`; - } - } - DateSymbolTemplate: &DateSymbolTemplate !!js/function > - () => { - return 'datetime'; - } - DateSymbolArgsTemplate: &DateSymbolArgsTemplate !!js/function > - (lhs, date, isString) => { - const toStr = isString ? '.strftime(\'%a %b %d %Y %H:%M:%S %Z\')' : ''; + return `float('${newStr}')`; + } else { + return `${newStr}`; + } + } + DateSymbolTemplate: !!js/function &DateSymbolTemplate > + () => { + return 'datetime'; + } + DateSymbolArgsTemplate: !!js/function &DateSymbolArgsTemplate > + (lhs, date, isString) => { + const toStr = isString ? '.strftime(\'%a %b %d %Y %H:%M:%S %Z\')' : ''; - if (date === null) { - return `${lhs}.utcnow()${toStr}`; - } + if (date === null) { + return `${lhs}.utcnow()${toStr}`; + } - const dateStr = [ - date.getUTCFullYear(), - date.getUTCMonth() + 1, - date.getUTCDate(), - date.getUTCHours(), - date.getUTCMinutes(), - date.getUTCSeconds() - ].join(', '); + const dateStr = [ + date.getUTCFullYear(), + date.getUTCMonth() + 1, + date.getUTCDate(), + date.getUTCHours(), + date.getUTCMinutes(), + date.getUTCSeconds() + ].join(', '); - return `${lhs}(${dateStr}, tzinfo=timezone.utc)${toStr}`; - } - DateSymbolNowTemplate: &DateSymbolNowTemplate !!js/function > - () => { - return 'datetime.utcnow'; - } - DateSymbolNowArgsTemplate: &DateSymbolNowArgsTemplate null - RegExpSymbolTemplate: &RegExpSymbolTemplate !!js/function > # Also has process method - () => { - return 're'; - } - RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null - ImportTemplate: &ImportTemplate !!js/function > - (args) => { - const bson = []; - const other = []; - Object.keys(args).map( - (m) => { - if (m > 99 && m < 200) { - bson.push(args[m]); - } else { - other.push(args[m]); - } + return `${lhs}(${dateStr}, tzinfo=timezone.utc)${toStr}`; + } + DateSymbolNowTemplate: !!js/function &DateSymbolNowTemplate > + () => { + return 'datetime.utcnow'; + } + DateSymbolNowArgsTemplate: &DateSymbolNowArgsTemplate null + RegExpSymbolTemplate: + !!js/function &RegExpSymbolTemplate > # Also has process method + () => { + return 're'; + } + RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null + ImportTemplate: !!js/function &ImportTemplate > + (args) => { + const bson = []; + const other = []; + Object.keys(args).map( + (m) => { + if (m > 99 && m < 200) { + bson.push(args[m]); + } else { + other.push(args[m]); } - ); - if (bson.length) { - other.push(`from bson import ${bson.join(', ')}`); } - return other.join('\n'); - } - DriverImportTemplate: &DriverImportTemplate !!js/function > - () => { - return 'from pymongo import MongoClient'; - } - 0ImportTemplate: &0ImportTemplate null - 1ImportTemplate: &1ImportTemplate null - 2ImportTemplate: &2ImportTemplate null - 3ImportTemplate: &3ImportTemplate null - 4ImportTemplate: &4ImportTemplate null - 5ImportTemplate: &5ImportTemplate null - 6ImportTemplate: &6ImportTemplate null - 7ImportTemplate: &7ImportTemplate null - 8ImportTemplate: &8ImportTemplate !!js/function > - () => { - return 'import re'; - } - 9ImportTemplate: &9ImportTemplate null - 10ImportTemplate: &10ImportTemplate null - 11ImportTemplate: &11ImportTemplate null - 12ImportTemplate: &12ImportTemplate null - 100ImportTemplate: &100ImportTemplate !!js/function > - () => { - return 'Code'; - } - 101ImportTemplate: &101ImportTemplate !!js/function > - () => { - return 'ObjectId'; - } - 102ImportTemplate: &102ImportTemplate !!js/function > - () => { - return 'Binary'; - } - 103ImportTemplate: &103ImportTemplate !!js/function > - () => { - return 'DBRef'; - } - 104ImportTemplate: &104ImportTemplate null - 105ImportTemplate: &105ImportTemplate null - 106ImportTemplate: &106ImportTemplate !!js/function > - () => { - return 'Int64'; - } - 107ImportTemplate: &107ImportTemplate !!js/function > - () => { - return 'MinKey'; - } - 108ImportTemplate: &108ImportTemplate !!js/function > - () => { - return 'MaxKey'; - } - 109ImportTemplate: &109ImportTemplate !!js/function > - () => { - return 'Regex'; - } - 110ImportTemplate: &110ImportTemplate !!js/function > - () => { - return 'Timestamp'; - } - 111ImportTemplate: &111ImportTemplate null - 112ImportTemplate: &112ImportTemplate !!js/function > - () => { - return 'Decimal128'; - } - 113ImportTemplate: &113ImportTemplate null - 114ImportTemplate: &114ImportTemplate null - 200ImportTemplate: &200ImportTemplate !!js/function > - () => { - return 'from datetime import datetime, tzinfo, timezone'; - } - 201ImportTemplate: &201ImportTemplate null - 300ImportTemplate: &300ImportTemplate null - 301ImportTemplate: &301ImportTemplate null - 302ImportTemplate: &302ImportTemplate null - 303ImportTemplate: &303ImportTemplate null - 304ImportTemplate: &304ImportTemplate null - 305ImportTemplate: &305ImportTemplate null - 306ImportTemplate: &306ImportTemplate null + ); + if (bson.length) { + other.push(`from bson import ${bson.join(', ')}`); + } + return other.join('\n'); + } + DriverImportTemplate: !!js/function &DriverImportTemplate > + () => { + return 'from pymongo import MongoClient'; + } + 0ImportTemplate: &0ImportTemplate null + 1ImportTemplate: &1ImportTemplate null + 2ImportTemplate: &2ImportTemplate null + 3ImportTemplate: &3ImportTemplate null + 4ImportTemplate: &4ImportTemplate null + 5ImportTemplate: &5ImportTemplate null + 6ImportTemplate: &6ImportTemplate null + 7ImportTemplate: &7ImportTemplate null + 8ImportTemplate: !!js/function &8ImportTemplate > + () => { + return 'import re'; + } + 9ImportTemplate: &9ImportTemplate null + 10ImportTemplate: &10ImportTemplate null + 11ImportTemplate: &11ImportTemplate null + 12ImportTemplate: &12ImportTemplate null + 100ImportTemplate: !!js/function &100ImportTemplate > + () => { + return 'Code'; + } + 101ImportTemplate: !!js/function &101ImportTemplate > + () => { + return 'ObjectId'; + } + 102ImportTemplate: !!js/function &102ImportTemplate > + () => { + return 'Binary'; + } + 103ImportTemplate: !!js/function &103ImportTemplate > + () => { + return 'DBRef'; + } + 104ImportTemplate: &104ImportTemplate null + 105ImportTemplate: &105ImportTemplate null + 106ImportTemplate: !!js/function &106ImportTemplate > + () => { + return 'Int64'; + } + 107ImportTemplate: !!js/function &107ImportTemplate > + () => { + return 'MinKey'; + } + 108ImportTemplate: !!js/function &108ImportTemplate > + () => { + return 'MaxKey'; + } + 109ImportTemplate: !!js/function &109ImportTemplate > + () => { + return 'Regex'; + } + 110ImportTemplate: !!js/function &110ImportTemplate > + () => { + return 'Timestamp'; + } + 111ImportTemplate: &111ImportTemplate null + 112ImportTemplate: !!js/function &112ImportTemplate > + () => { + return 'Decimal128'; + } + 113ImportTemplate: &113ImportTemplate null + 114ImportTemplate: &114ImportTemplate null + 200ImportTemplate: !!js/function &200ImportTemplate > + () => { + return 'from datetime import datetime, tzinfo, timezone'; + } + 201ImportTemplate: &201ImportTemplate null + 300ImportTemplate: &300ImportTemplate null + 301ImportTemplate: &301ImportTemplate null + 302ImportTemplate: &302ImportTemplate null + 303ImportTemplate: &303ImportTemplate null + 304ImportTemplate: &304ImportTemplate null + 305ImportTemplate: &305ImportTemplate null + 306ImportTemplate: &306ImportTemplate null diff --git a/packages/bson-transpilers/symbols/ruby/templates.yaml b/packages/bson-transpilers/symbols/ruby/templates.yaml index 65ee4987335..54fd0394c1b 100644 --- a/packages/bson-transpilers/symbols/ruby/templates.yaml +++ b/packages/bson-transpilers/symbols/ruby/templates.yaml @@ -18,1124 +18,1144 @@ # # ############################################# Templates: - ######## - # Misc # - ######## + ######## + # Misc # + ######## - # Filter out regex flags that have translations or are unsupported. - RegexFlags: &RegexFlags - i: 'i' - m: 'm' - u: '' - y: '' - g: '' - BSONRegexFlags: &BSONRegexFlags - i: 'i' - m: 'm' - x: 'x' - s: '' - l: '' - u: '' + # Filter out regex flags that have translations or are unsupported. + RegexFlags: &RegexFlags + i: 'i' + m: 'm' + u: '' + y: '' + g: '' + BSONRegexFlags: &BSONRegexFlags + i: 'i' + m: 'm' + x: 'x' + s: '' + l: '' + u: '' - ############################################# - # Syntax # - # # - # Templates for language syntax expressions # - # # - ############################################# + ############################################# + # Syntax # + # # + # Templates for language syntax expressions # + # # + ############################################# - DriverTemplate: &DriverTemplate !!js/function > - (spec) => { - comment = '# Requires the MongoDB Ruby Driver\n# https://docs.mongodb.com/ruby-driver/master/'; + DriverTemplate: !!js/function &DriverTemplate > + (spec) => { + comment = '# Requires the MongoDB Ruby Driver\n# https://docs.mongodb.com/ruby-driver/master/'; - const getKey = k => { - let translateKey = { - project: 'projection', - maxTimeMS: 'max_time_ms' - } - return k in translateKey ? translateKey[k] : k - }; - const options = spec.options; - const filter = spec.filter || {} - const exportMode = spec.exportMode; + const getKey = k => { + let translateKey = { + project: 'projection', + maxTimeMS: 'max_time_ms' + } + return k in translateKey ? translateKey[k] : k + }; + const options = spec.options; + const filter = spec.filter || {} + const exportMode = spec.exportMode; - delete spec.options; - delete spec.filter - delete spec.exportMode; + delete spec.options; + delete spec.filter + delete spec.exportMode; - const connect = `client = Mongo::Client.new('${options.uri}', :database => '${options.database}')`; - const coll = `client.database['${options.collection}']`; + const connect = `client = Mongo::Client.new('${options.uri}', :database => '${options.database}')`; + const coll = `client.database['${options.collection}']`; - let driverMethod; - switch (exportMode) { - case 'Delete Query': - driverMethod = 'delete_many'; - break; - case 'Update Query': - driverMethod = 'update_many'; - break; - default: - driverMethod = 'find'; - } + let driverMethod; + switch (exportMode) { + case 'Delete Query': + driverMethod = 'delete_many'; + break; + case 'Update Query': + driverMethod = 'update_many'; + break; + default: + driverMethod = 'find'; + } - if ('aggregation' in spec) { - return `${comment}\n\n${connect}\nresult = ${coll}.aggregate(${spec.aggregation})`; - } + if ('aggregation' in spec) { + return `${comment}\n\n${connect}\nresult = ${coll}.aggregate(${spec.aggregation})`; + } - const vars = Object.keys(spec).reduce( - (result, k) => { - return `${result}\n${getKey(k)} = ${spec[k]}`; - }, - connect - ); + const vars = Object.keys(spec).reduce( + (result, k) => { + return `${result}\n${getKey(k)} = ${spec[k]}`; + }, + connect + ); - const args = Object.keys(spec).reduce( - (result, k) => { - const divider = result === '' ? '' : ',\n'; - return `${result}${divider} ${getKey(k)}: ${getKey(k)}`; - }, - '' - ); + const args = Object.keys(spec).reduce( + (result, k) => { + const divider = result === '' ? '' : ',\n'; + return `${result}${divider} ${getKey(k)}: ${getKey(k)}`; + }, + '' + ); - const cmd = `result = ${coll}.${driverMethod}(${filter}${args ? `, {\n${args}\n}` : ''})`; + const cmd = `result = ${coll}.${driverMethod}(${filter}${args ? `, {\n${args}\n}` : ''})`; - return `${comment}\n\n${vars}\n\n${cmd}`; - } - EqualitySyntaxTemplate: &EqualitySyntaxTemplate !!js/function > - (lhs, op, rhs) => { - if (op.includes('is')) { - let not = op.includes('not') ? '!' : '' - return `${not}${lhs}.equal?(${rhs})` - } else if (op.includes('!') || op.includes('not')) { - return `${lhs} != ${rhs}`; - } else if (op === '==' || op === '===') { - return `${lhs} == ${rhs}`; + return `${comment}\n\n${vars}\n\n${cmd}`; + } + EqualitySyntaxTemplate: !!js/function &EqualitySyntaxTemplate > + (lhs, op, rhs) => { + if (op.includes('is')) { + let not = op.includes('not') ? '!' : '' + return `${not}${lhs}.equal?(${rhs})` + } else if (op.includes('!') || op.includes('not')) { + return `${lhs} != ${rhs}`; + } else if (op === '==' || op === '===') { + return `${lhs} == ${rhs}`; + } + return `${lhs} ${op} ${rhs}`; + } + InSyntaxTemplate: !!js/function &InSyntaxTemplate > + (lhs, op, rhs) => { + let str = ''; + if (op.includes('!') || op.includes('not')) { + str = '!'; + } + return `${str}${rhs}.include?(${lhs})` + } + AndSyntaxTemplate: !!js/function &AndSyntaxTemplate > + (args) => { + return args.join(' && '); + } + OrSyntaxTemplate: !!js/function &OrSyntaxTemplate > + (args) => { + return args.join(' || '); + } + NotSyntaxTemplate: !!js/function &NotSyntaxTemplate > + (arg) => { + return `!${arg}`; + } + UnarySyntaxTemplate: &UnarySyntaxTemplate null + BinarySyntaxTemplate: !!js/function &BinarySyntaxTemplate > + (args) => { + return args.reduce((s, op, i, arr) => { + if (i % 2 === 0) { + return s; } - return `${lhs} ${op} ${rhs}`; - } - InSyntaxTemplate: &InSyntaxTemplate !!js/function > - (lhs, op, rhs) => { - let str = ''; - if (op.includes('!') || op.includes('not')) { - str = '!'; + const rhs = arr[i + 1]; + switch(op) { + case '//': + return `${s}.div(${rhs})`; + case '**': + return `${s} ** ${rhs}`; + default: + return `${s} ${op} ${rhs}`; } - return `${str}${rhs}.include?(${lhs})` - } - AndSyntaxTemplate: &AndSyntaxTemplate !!js/function > - (args) => { - return args.join(' && '); - } - OrSyntaxTemplate: &OrSyntaxTemplate !!js/function > - (args) => { - return args.join(' || '); - } - NotSyntaxTemplate: &NotSyntaxTemplate !!js/function > - (arg) => { - return `!${arg}`; - } - UnarySyntaxTemplate: &UnarySyntaxTemplate null - BinarySyntaxTemplate: &BinarySyntaxTemplate !!js/function > - (args) => { - return args.reduce((s, op, i, arr) => { - if (i % 2 === 0) { - return s; - } - const rhs = arr[i + 1]; - switch(op) { - case '//': - return `${s}.div(${rhs})`; - case '**': - return `${s} ** ${rhs}`; - default: - return `${s} ${op} ${rhs}`; - } - }, args[0]); - } - ParensSyntaxTemplate: &ParensSyntaxTemplate null - EosTemplate: &EosSyntaxTemplate null # No args. End-of-line - EofTemplate: &EofSyntaxTemplate null # No args. End-of-file - FloorDivTemplate: &FloorDivSyntaxTemplate null # Args: lhs, rhs - PowerTemplate: &PowerSyntaxTemplate null # Args: lhs, rhs - NewTemplate: &NewSyntaxTemplate null # Args: expression, skip?, code# [to check if meant to be skipped] + }, args[0]); + } + ParensSyntaxTemplate: &ParensSyntaxTemplate null + EosTemplate: &EosSyntaxTemplate null # No args. End-of-line + EofTemplate: &EofSyntaxTemplate null # No args. End-of-file + FloorDivTemplate: &FloorDivSyntaxTemplate null # Args: lhs, rhs + PowerTemplate: &PowerSyntaxTemplate null # Args: lhs, rhs + NewTemplate: &NewSyntaxTemplate null # Args: expression, skip?, code# [to check if meant to be skipped] - ############################################# - # Literal Types # - # # - # Templates for literal type instance. Most # - # get passed the literal itself as an arg. # - # # - ############################################# - StringTypeTemplate: &StringTypeTemplate !!js/function > - (str) => { - let newStr = str; - if ( + ############################################# + # Literal Types # + # # + # Templates for literal type instance. Most # + # get passed the literal itself as an arg. # + # # + ############################################# + StringTypeTemplate: !!js/function &StringTypeTemplate > + (str) => { + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + } + return `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; + } + RegexTypeTemplate: !!js/function &RegexTypeTemplate > + (pattern, flags) => { + const str = pattern; + let newStr = str; + if ( (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { newStr = str.substr(1, str.length - 2); - } - return `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; } - RegexTypeTemplate: &RegexTypeTemplate !!js/function > - (pattern, flags) => { - const str = pattern; - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - pattern = `${newStr.replace(/\\([\s\S])/g, '\\$1')}`; - return `/${pattern}/${flags ? flags : ''}`; - } - BoolTypeTemplate: &BoolTypeTemplate !!js/function > - (literal) => { - return literal.toLowerCase(); - } - IntegerTypeTemplate: &IntegerTypeTemplate null # args: literal, argType (i.e. '_string', '_decimal' etc) - DecimalTypeTemplate: &DecimalTypeTemplate null # args: literal, argType - LongBasicTypeTemplate: &LongBasicTypeTemplate null # args: literal, argType - HexTypeTemplate: &HexTypeTemplate null # args: literal, argType - OctalTypeTemplate: &OctalTypeTemplate !!js/function > - (literal) => { - let offset = 0; + pattern = `${newStr.replace(/\\([\s\S])/g, '\\$1')}`; + return `/${pattern}/${flags ? flags : ''}`; + } + BoolTypeTemplate: !!js/function &BoolTypeTemplate > + (literal) => { + return literal.toLowerCase(); + } + IntegerTypeTemplate: &IntegerTypeTemplate null # args: literal, argType (i.e. '_string', '_decimal' etc) + DecimalTypeTemplate: &DecimalTypeTemplate null # args: literal, argType + LongBasicTypeTemplate: &LongBasicTypeTemplate null # args: literal, argType + HexTypeTemplate: &HexTypeTemplate null # args: literal, argType + OctalTypeTemplate: !!js/function &OctalTypeTemplate > + (literal) => { + let offset = 0; - if ( - literal.charAt(0) === '0' && - (literal.charAt(1) === '0' || literal.charAt(1) === 'o' || literal.charAt(1) === 'O') - ) { - offset = 2; - } else if (literal.charAt(0) === '0') { - offset = 1; - } - - literal = `0o${literal.substr(offset, literal.length - 1)}`; - - return literal; + if ( + literal.charAt(0) === '0' && + (literal.charAt(1) === '0' || literal.charAt(1) === 'o' || literal.charAt(1) === 'O') + ) { + offset = 2; + } else if (literal.charAt(0) === '0') { + offset = 1; } - NumericTypeTemplate: &NumericTypeTemplate null # args: literal, argType - ArrayTypeTemplate: &ArrayTypeTemplate !!js/function > - (literal, depth) => { - depth++; - if (literal === '') { - return '[]' - } - const indent = '\n' + ' '.repeat(depth); - const closingIndent = '\n' + ' '.repeat(depth - 1); - return `[${indent}${literal}${closingIndent}]`; - } - ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate null # Args: single array element, nestedness, lastElement? (note: not being used atm) - NullTypeTemplate: &NullTypeTemplate !!js/function > - () => { - return 'nil'; - } - UndefinedTypeTemplate: &UndefinedTypeTemplate !!js/function > - () => { - return 'nil'; - } - ObjectTypeTemplate: &ObjectTypeTemplate !!js/function > - (literal) => { - if (literal === '') { - return '{}'; - } - return literal; - } - ObjectTypeArgsTemplate: &ObjectTypeArgsTemplate !!js/function > - (args, depth) => { - if (args.length === 0) { - return '{}'; - } - depth++; - const indent = '\n' + ' '.repeat(depth); - const closingIndent = '\n' + ' '.repeat(depth - 1); - const singleStringify = (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; - } - const pairs = args.map((arg) => { - return `${indent}${singleStringify(arg[0])} => ${arg[1]}`; - }).join(','); + literal = `0o${literal.substr(offset, literal.length - 1)}`; - return `{${pairs}${closingIndent}}` - } + return literal; + } + NumericTypeTemplate: &NumericTypeTemplate null # args: literal, argType + ArrayTypeTemplate: !!js/function &ArrayTypeTemplate > + (literal, depth) => { + depth++; + if (literal === '') { + return '[]' + } + const indent = '\n' + ' '.repeat(depth); + const closingIndent = '\n' + ' '.repeat(depth - 1); - ############################################# - # Symbols # - # # - # Templates for symbols, can be either # - # functions or variables. # - # # - # The *SymbolTemplates return names and # - # usually don't take any arguments. The # - # *SymbolArgsTemplates are invoked for func # - # calls. The first argument is always the # - # lhs, i.e. the symbol returned from the # - # corresponding SymbolTemplate. The rest of # - # the arguments are the processed arguments # - # passed to the original function. # - # # - ############################################# - CodeSymbolTemplate: &CodeSymbolTemplate !!js/function > - () => { - return 'BSON::Code' - } - CodeSymbolArgsTemplate: &CodeSymbolArgsTemplate !!js/function > - (lhs, code, scope) => { - const singleStringify = (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; - } - if (code === undefined) { - return '.new' - } - return !scope ? `.new(${singleStringify(code)})` : `WithScope.new(${singleStringify(code)}, ${scope})` - } - ObjectIdSymbolTemplate: &ObjectIdSymbolTemplate !!js/function > - () => { - return 'BSON::ObjectId'; - } - ObjectIdSymbolArgsTemplate: &ObjectIdSymbolArgsTemplate !!js/function > - (lhs, id) => { - const singleStringify = (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; + return `[${indent}${literal}${closingIndent}]`; + } + ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate null # Args: single array element, nestedness, lastElement? (note: not being used atm) + NullTypeTemplate: !!js/function &NullTypeTemplate > + () => { + return 'nil'; + } + UndefinedTypeTemplate: !!js/function &UndefinedTypeTemplate > + () => { + return 'nil'; + } + ObjectTypeTemplate: !!js/function &ObjectTypeTemplate > + (literal) => { + if (literal === '') { + return '{}'; + } + return literal; + } + ObjectTypeArgsTemplate: !!js/function &ObjectTypeArgsTemplate > + (args, depth) => { + if (args.length === 0) { + return '{}'; + } + depth++; + const indent = '\n' + ' '.repeat(depth); + const closingIndent = '\n' + ' '.repeat(depth - 1); + const singleStringify = (str) => { + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); } - return !id ? '.new' : `(${singleStringify(id)})`; + return `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; } - BinarySymbolTemplate: &BinarySymbolTemplate null - BinarySymbolArgsTemplate: &BinarySymbolArgsTemplate null - BinarySymbolSubtypeDefaultTemplate: &BinarySymbolSubtypeDefaultTemplate null - BinarySymbolSubtypeFunctionTemplate: &BinarySymbolSubtypeFunctionTemplate null - BinarySymbolSubtypeByteArrayTemplate: &BinarySymbolSubtypeByteArrayTemplate null - BinarySymbolSubtypeUuidOldTemplate: &BinarySymbolSubtypeUuidOldTemplate null - BinarySymbolSubtypeUuidTemplate: &BinarySymbolSubtypeUuidTemplate null - BinarySymbolSubtypeMd5Template: &BinarySymbolSubtypeMd5Template null - BinarySymbolSubtypeUserDefinedTemplate: &BinarySymbolSubtypeUserDefinedTemplate null - DBRefSymbolTemplate: &DBRefSymbolTemplate !!js/function > - () => { - return 'BSON::DBRef' - } - DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate !!js/function > - (lhs, coll, id, db) => { - const singleStringify = (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; - } + const pairs = args.map((arg) => { + return `${indent}${singleStringify(arg[0])} => ${arg[1]}`; + }).join(','); - let db_string = db ? `,\n '$db' => ${singleStringify(db)}` : '' - return `.new(\n '$ref' => ${singleStringify(coll)},\n '$id' => ${id}${db_string}\n)` - } - DoubleSymbolTemplate: &DoubleSymbolTemplate !!js/function > - () => { - return ''; - } - DoubleSymbolArgsTemplate: &DoubleSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - if (type === '_decimal' || type === '_double') { - return arg; - } - return `${arg}.to_f`; - } - Int32SymbolTemplate: &Int32SymbolTemplate !!js/function > - () => { - return ''; - } - Int32SymbolArgsTemplate: &Int32SymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - if (type === '_integer' || type === '_long') { - return arg; - } - return `${arg}.to_i`; - } - LongSymbolTemplate: &LongSymbolTemplate !!js/function > - () => { - return '' - } - LongSymbolArgsTemplate: &LongSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - if (type === '_integer' || type === '_long') { - return arg; - } - return `${arg}.to_i`; - } - RegExpSymbolTemplate: &RegExpSymbolTemplate !!js/function > - () => { - return ''; - } - RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null # Args: lhs, pattern, flags - SymbolSymbolTemplate: &SymbolSymbolTemplate !!js/function > - () => { - return ''; - } - SymbolSymbolArgsTemplate: &SymbolSymbolArgsTemplate !!js/function > - (lhs, arg) => { - arg = arg === undefined ? '' : arg; - const str = arg.toString(); + return `{${pairs}${closingIndent}}` + } + + ############################################# + # Symbols # + # # + # Templates for symbols, can be either # + # functions or variables. # + # # + # The *SymbolTemplates return names and # + # usually don't take any arguments. The # + # *SymbolArgsTemplates are invoked for func # + # calls. The first argument is always the # + # lhs, i.e. the symbol returned from the # + # corresponding SymbolTemplate. The rest of # + # the arguments are the processed arguments # + # passed to the original function. # + # # + ############################################# + CodeSymbolTemplate: !!js/function &CodeSymbolTemplate > + () => { + return 'BSON::Code' + } + CodeSymbolArgsTemplate: !!js/function &CodeSymbolArgsTemplate > + (lhs, code, scope) => { + const singleStringify = (str) => { let newStr = str; if ( (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { newStr = str.substr(1, str.length - 2); - return `:'${newStr}'`; - } else { - return `${newStr}.to_sym`; } - } - BSONRegExpSymbolTemplate: &BSONRegExpSymbolTemplate !!js/function > - () => { - return ''; - } - BSONRegExpSymbolArgsTemplate: &BSONRegExpSymbolArgsTemplate !!js/function > - (lhs, pattern, flags) => { - const singleStringify = (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `${newStr.replace(/\\([\s\S])/g, '\\$1')}`; + return `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; + } + if (code === undefined) { + return '.new' + } + return !scope ? `.new(${singleStringify(code)})` : `WithScope.new(${singleStringify(code)}, ${scope})` + } + ObjectIdSymbolTemplate: !!js/function &ObjectIdSymbolTemplate > + () => { + return 'BSON::ObjectId'; + } + ObjectIdSymbolArgsTemplate: !!js/function &ObjectIdSymbolArgsTemplate > + (lhs, id) => { + const singleStringify = (str) => { + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); } - return `/${singleStringify(pattern)}/${flags ? singleStringify(flags) : ''}`; - } - Decimal128SymbolTemplate: &Decimal128SymbolTemplate !!js/function > - () => { - return 'BSON::Decimal128'; - } - Decimal128SymbolArgsTemplate: &Decimal128SymbolArgsTemplate !!js/function > - (lhs, arg) => { - arg = arg === undefined ? '0' : arg.toString(); - if (arg.charAt(0) === '\'' && arg.charAt(arg.length - 1) === '\'') { - return `.new(${arg})`; + return `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; + } + return !id ? '.new' : `(${singleStringify(id)})`; + } + BinarySymbolTemplate: &BinarySymbolTemplate null + BinarySymbolArgsTemplate: &BinarySymbolArgsTemplate null + BinarySymbolSubtypeDefaultTemplate: &BinarySymbolSubtypeDefaultTemplate null + BinarySymbolSubtypeFunctionTemplate: &BinarySymbolSubtypeFunctionTemplate null + BinarySymbolSubtypeByteArrayTemplate: &BinarySymbolSubtypeByteArrayTemplate null + BinarySymbolSubtypeUuidOldTemplate: &BinarySymbolSubtypeUuidOldTemplate null + BinarySymbolSubtypeUuidTemplate: &BinarySymbolSubtypeUuidTemplate null + BinarySymbolSubtypeMd5Template: &BinarySymbolSubtypeMd5Template null + BinarySymbolSubtypeUserDefinedTemplate: &BinarySymbolSubtypeUserDefinedTemplate null + DBRefSymbolTemplate: !!js/function &DBRefSymbolTemplate > + () => { + return 'BSON::DBRef' + } + DBRefSymbolArgsTemplate: !!js/function &DBRefSymbolArgsTemplate > + (lhs, coll, id, db) => { + const singleStringify = (str) => { + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); } - return `.new('${arg}')`; - } - MinKeySymbolTemplate: &MinKeySymbolTemplate !!js/function > - () => { - return 'BSON::MinKey'; - } - MinKeySymbolArgsTemplate: &MinKeySymbolArgsTemplate !!js/function > - () => { - return '.new'; - } - MaxKeySymbolTemplate: &MaxKeySymbolTemplate !!js/function > - () => { - return 'BSON::MaxKey'; + return `'${newStr.replace(/\\([\s\S])|(')/g, '\\$1$2')}'`; } - MaxKeySymbolArgsTemplate: &MaxKeySymbolArgsTemplate !!js/function > - () => { - return '.new'; - } - TimestampSymbolTemplate: &TimestampSymbolTemplate !!js/function > - () => { - return 'BSON::Timestamp'; + + let db_string = db ? `,\n '$db' => ${singleStringify(db)}` : '' + return `.new(\n '$ref' => ${singleStringify(coll)},\n '$id' => ${id}${db_string}\n)` + } + DoubleSymbolTemplate: !!js/function &DoubleSymbolTemplate > + () => { + return ''; + } + DoubleSymbolArgsTemplate: !!js/function &DoubleSymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + if (type === '_decimal' || type === '_double') { + return arg; } - TimestampSymbolArgsTemplate: &TimestampSymbolArgsTemplate !!js/function > - (lhs, arg1, arg2) => { - return `.new(${arg1 === undefined ? 0 : arg1}, ${arg2 === undefined ? 0 : arg2})`; + return `${arg}.to_f`; + } + Int32SymbolTemplate: !!js/function &Int32SymbolTemplate > + () => { + return ''; + } + Int32SymbolArgsTemplate: !!js/function &Int32SymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + if (type === '_integer' || type === '_long') { + return arg; } - # non bson-specific - NumberSymbolTemplate: &NumberSymbolTemplate !!js/function > - () => { - return ''; + return `${arg}.to_i`; + } + LongSymbolTemplate: !!js/function &LongSymbolTemplate > + () => { + return '' + } + LongSymbolArgsTemplate: !!js/function &LongSymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + if (type === '_integer' || type === '_long') { + return arg; } - NumberSymbolArgsTemplate: &NumberSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - const str = arg.toString(); + return `${arg}.to_i`; + } + RegExpSymbolTemplate: !!js/function &RegExpSymbolTemplate > + () => { + return ''; + } + RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null # Args: lhs, pattern, flags + SymbolSymbolTemplate: !!js/function &SymbolSymbolTemplate > + () => { + return ''; + } + SymbolSymbolArgsTemplate: !!js/function &SymbolSymbolArgsTemplate > + (lhs, arg) => { + arg = arg === undefined ? '' : arg; + const str = arg.toString(); + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + return `:'${newStr}'`; + } else { + return `${newStr}.to_sym`; + } + } + BSONRegExpSymbolTemplate: !!js/function &BSONRegExpSymbolTemplate > + () => { + return ''; + } + BSONRegExpSymbolArgsTemplate: !!js/function &BSONRegExpSymbolArgsTemplate > + (lhs, pattern, flags) => { + const singleStringify = (str) => { let newStr = str; if ( (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { newStr = str.substr(1, str.length - 2); - return `'${newStr}'.to_f`; - } else if (type === '_decimal' || type === '_double') { - return newStr; - } else { - return `${newStr}.to_f`; } + return `${newStr.replace(/\\([\s\S])/g, '\\$1')}`; + } + return `/${singleStringify(pattern)}/${flags ? singleStringify(flags) : ''}`; + } + Decimal128SymbolTemplate: !!js/function &Decimal128SymbolTemplate > + () => { + return 'BSON::Decimal128'; + } + Decimal128SymbolArgsTemplate: !!js/function &Decimal128SymbolArgsTemplate > + (lhs, arg) => { + arg = arg === undefined ? '0' : arg.toString(); + if (arg.charAt(0) === '\'' && arg.charAt(arg.length - 1) === '\'') { + return `.new(${arg})`; } - DateSymbolTemplate: &DateSymbolTemplate !!js/function > - () => { - return 'Time'; + return `.new('${arg}')`; + } + MinKeySymbolTemplate: !!js/function &MinKeySymbolTemplate > + () => { + return 'BSON::MinKey'; + } + MinKeySymbolArgsTemplate: !!js/function &MinKeySymbolArgsTemplate > + () => { + return '.new'; + } + MaxKeySymbolTemplate: !!js/function &MaxKeySymbolTemplate > + () => { + return 'BSON::MaxKey'; + } + MaxKeySymbolArgsTemplate: !!js/function &MaxKeySymbolArgsTemplate > + () => { + return '.new'; + } + TimestampSymbolTemplate: !!js/function &TimestampSymbolTemplate > + () => { + return 'BSON::Timestamp'; + } + TimestampSymbolArgsTemplate: !!js/function &TimestampSymbolArgsTemplate > + (lhs, arg1, arg2) => { + return `.new(${arg1 === undefined ? 0 : arg1}, ${arg2 === undefined ? 0 : arg2})`; + } + # non bson-specific + NumberSymbolTemplate: !!js/function &NumberSymbolTemplate > + () => { + return ''; + } + NumberSymbolArgsTemplate: !!js/function &NumberSymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + const str = arg.toString(); + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + return `'${newStr}'.to_f`; + } else if (type === '_decimal' || type === '_double') { + return newStr; + } else { + return `${newStr}.to_f`; + } + } + DateSymbolTemplate: !!js/function &DateSymbolTemplate > + () => { + return 'Time'; + } + DateSymbolArgsTemplate: !!js/function &DateSymbolArgsTemplate > + (lhs, date, isString) => { + const toStr = isString ? '.strftime(\'%a %b %d %Y %H:%M:%S %Z\')' : ''; + + if (date === null) { + return `${lhs}.new.utc${toStr}`; } - DateSymbolArgsTemplate: &DateSymbolArgsTemplate !!js/function > - (lhs, date, isString) => { - const toStr = isString ? '.strftime(\'%a %b %d %Y %H:%M:%S %Z\')' : ''; - if (date === null) { - return `${lhs}.new.utc${toStr}`; - } + const dateStr = [ + date.getUTCFullYear(), + date.getUTCMonth() + 1, + date.getUTCDate(), + date.getUTCHours(), + date.getUTCMinutes(), + date.getUTCSeconds() + ].join(', '); - const dateStr = [ - date.getUTCFullYear(), - date.getUTCMonth() + 1, - date.getUTCDate(), - date.getUTCHours(), - date.getUTCMinutes(), - date.getUTCSeconds() - ].join(', '); + return `${lhs}.utc(${dateStr})${toStr}`; + } - return `${lhs}.utc(${dateStr})${toStr}`; - } + DateSymbolNowTemplate: !!js/function &DateSymbolNowTemplate > + () => { + return 'Time.now.utc'; + } + DateSymbolNowArgsTemplate: !!js/function &DateSymbolNowArgsTemplate > + (args) => { + return ''; + } - DateSymbolNowTemplate: &DateSymbolNowTemplate !!js/function > - () => { - return 'Time.now.utc'; - } - DateSymbolNowArgsTemplate: &DateSymbolNowArgsTemplate !!js/function > - (args) => { - return ''; - } + ############################################# + # Object Attributes/Methods # + # # + # These're variables or functions called on # + # instantiated objects. For example, # + # ObjectId().isValid() or Timestamp().t # + # # + # They follow the same pattern with the + # *Template/*ArgsTemplates: usually no args # + # to the Template and lhs plus any original # + # arguments to the ArgsTemplate. # + # # + ############################################# + CodeCodeTemplate: !!js/function &CodeCodeTemplate > + (lhs) => { + return `${lhs}.javascript`; + } + CodeCodeArgsTemplate: !!js/function &CodeCodeArgsTemplate > + () => { + return ''; + } + CodeScopeTemplate: !!js/function &CodeScopeTemplate > + (lhs) => { + return `${lhs}.scope`; + } + CodeScopeArgsTemplate: !!js/function &CodeScopeArgsTemplate > + () => { + return ''; + } + ObjectIdToStringTemplate: !!js/function &ObjectIdToStringTemplate > + (lhs) => { + return `${lhs}.to_s`; + } + ObjectIdToStringArgsTemplate: !!js/function &ObjectIdToStringArgsTemplate > + () => { + return ''; + } + ObjectIdEqualsTemplate: !!js/function &ObjectIdEqualsTemplate > + (lhs) => { + return `${lhs} == `; + } + ObjectIdEqualsArgsTemplate: !!js/function &ObjectIdEqualsArgsTemplate > + (arg) => { + return `${arg}`; + } + ObjectIdGetTimestampTemplate: !!js/function &ObjectIdGetTimestampTemplate > + (lhs) => { + return `${lhs}.to_time`; + } + ObjectIdGetTimestampArgsTemplate: + !!js/function &ObjectIdGetTimestampArgsTemplate > + () => { + return ''; + } + ObjectIdIsValidTemplate: !!js/function &ObjectIdIsValidTemplate > + (lhs) => { + return `${lhs}.legal?` + } + ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate null + BinaryValueTemplate: &BinaryValueTemplate null + BinaryValueArgsTemplate: &BinaryValueArgsTemplate null + BinaryLengthTemplate: &BinaryLengthTemplate null + BinaryLengthArgsTemplate: &BinaryLengthArgsTemplate null + BinaryToStringTemplate: &BinaryToStringTemplate null + BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate null + BinarySubtypeTemplate: &BinarySubtypeTemplate null + BinarySubtypeArgsTemplate: &BinarySubtypeArgsTemplate null + DBRefGetDBTemplate: !!js/function &DBRefGetDBTemplate > + (lhs) => { + return `${lhs}.database`; + } + DBRefGetCollectionTemplate: !!js/function &DBRefGetCollectionTemplate > + (lhs) => { + return `${lhs}.collection`; + } + DBRefGetIdTemplate: !!js/function &DBRefGetIdTemplate > + (lhs) => { + return `${lhs}.id`; + } + DBRefGetDBArgsTemplate: !!js/function &DBRefGetDBArgsTemplate > + (lhs) => { + return ''; + } + DBRefGetCollectionArgsTemplate: + !!js/function &DBRefGetCollectionArgsTemplate > + (lhs) => { + return ''; + } + DBRefGetIdArgsTemplate: !!js/function &DBRefGetIdArgsTemplate > + (lhs) => { + return ''; + } + DBRefToStringTemplate: !!js/function &DBRefToStringTemplate > + (lhs) => { + return '${lhs}.to_s'; + } + DBRefToStringArgsTemplate: !!js/function &DBRefToStringArgsTemplate > + () => { + return ''; + } + DoubleValueOfTemplate: &DoubleValueOfTemplate null + DoubleValueOfArgsTemplate: &DoubleValueOfArgsTemplate null + Int32ValueOfTemplate: &Int32ValueOfTemplate null + Int32ValueOfArgsTemplate: &Int32ValueOfArgsTemplate null + Int32ToStringTemplate: &Int32ToStringTemplate null + Int32ToStringArgsTemplate: &Int32ToStringArgsTemplate null + LongEqualsTemplate: !!js/function &LongEqualsTemplate > + (lhs) => { + return `${lhs} ==`; + } + LongEqualsArgsTemplate: !!js/function &LongEqualsArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongToIntTemplate: !!js/function &LongToIntTemplate > + (lhs) => { + return `${lhs}`; + } + LongToIntArgsTemplate: !!js/function &LongToIntArgsTemplate > + () => { + return ''; + } + LongToStringTemplate: !!js/function &LongToStringTemplate > + (lhs) => { + return `${lhs}.to_s`; + } + LongToStringArgsTemplate: !!js/function &LongToStringArgsTemplate > + () => { + return ''; + } + LongToNumberTemplate: !!js/function &LongToNumberTemplate > + (lhs) => { + return `${lhs}.to_f`; + } + LongToNumberArgsTemplate: !!js/function &LongToNumberArgsTemplate > + () => { + return ''; + } + LongAddTemplate: !!js/function &LongAddTemplate > + (lhs) => { + return `${lhs} +`; + } + LongAddArgsTemplate: !!js/function &LongAddArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongSubtractTemplate: !!js/function &LongSubtractTemplate > + (arg) => { + return `${arg} -`; + } + LongSubtractArgsTemplate: !!js/function &LongSubtractArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongMultiplyTemplate: !!js/function &LongMultiplyTemplate > + (arg) => { + return `${arg} *`; + } + LongMultiplyArgsTemplate: !!js/function &LongMultiplyArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongDivTemplate: !!js/function &LongDivTemplate > + (lhs) => { + return `${lhs} /`; + } + LongDivArgsTemplate: !!js/function &LongDivArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongModuloTemplate: !!js/function &LongModuloTemplate > + (lhs) => { + return `${lhs} %`; + } + LongModuloArgsTemplate: !!js/function &LongModuloArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongAndTemplate: !!js/function &LongAndTemplate > + (lhs) => { + return `${lhs} &`; + } + LongAndArgsTemplate: !!js/function &LongAndArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongOrTemplate: !!js/function &LongOrTemplate > + (lhs) => { + return `${lhs} |`; + } + LongOrArgsTemplate: !!js/function &LongOrArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongXorTemplate: !!js/function &LongXorTemplate > + (lhs) => { + return `${lhs} ^`; + } + LongXorArgsTemplate: !!js/function &LongXorArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongShiftLeftTemplate: !!js/function &LongShiftLeftTemplate > + (lhs) => { + return `${lhs} <<`; + } + LongShiftLeftArgsTemplate: !!js/function &LongShiftLeftArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongShiftRightTemplate: !!js/function &LongShiftRightTemplate > + (lhs) => { + return `${lhs} >>`; + } + LongShiftRightArgsTemplate: !!js/function &LongShiftRightArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongCompareTemplate: !!js/function &LongCompareTemplate > + (lhs) => { + return `${lhs} -`; + } + LongCompareArgsTemplate: !!js/function &LongCompareArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongIsOddTemplate: !!js/function &LongIsOddTemplate > + (lhs) => { + return `(${lhs} % 2) == 1`; + } + LongIsOddArgsTemplate: !!js/function &LongIsOddArgsTemplate > + () => { + return ''; + } + LongIsZeroTemplate: !!js/function &LongIsZeroTemplate > + (lhs) => { + return `${lhs} == 0`; + } + LongIsZeroArgsTemplate: !!js/function &LongIsZeroArgsTemplate > + () => { + return ''; + } + LongIsNegativeTemplate: !!js/function &LongIsNegativeTemplate > + (lhs) => { + return `${lhs} < 0`; + } + LongIsNegativeArgsTemplate: !!js/function &LongIsNegativeArgsTemplate > + () => { + return ''; + } + LongNegateTemplate: !!js/function &LongNegateTemplate > + () => { + return '-'; + } + LongNegateArgsTemplate: !!js/function &LongNegateArgsTemplate > + (lhs) => { + return lhs; + } + LongNotTemplate: !!js/function &LongNotTemplate > + () => { + return '~'; + } + LongNotArgsTemplate: !!js/function &LongNotArgsTemplate > + (lhs) => { + return lhs; + } + LongNotEqualsTemplate: !!js/function &LongNotEqualsTemplate > + (lhs) => { + return `${lhs} !=`; + } + LongNotEqualsArgsTemplate: !!js/function &LongNotEqualsArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongGreaterThanTemplate: !!js/function &LongGreaterThanTemplate > + (lhs) => { + return `${lhs} >`; + } + LongGreaterThanArgsTemplate: !!js/function &LongGreaterThanArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongGreaterThanOrEqualTemplate: + !!js/function &LongGreaterThanOrEqualTemplate > + (lhs) => { + return `${lhs} >=`; + } + LongGreaterThanOrEqualArgsTemplate: + !!js/function &LongGreaterThanOrEqualArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongLessThanTemplate: !!js/function &LongLessThanTemplate > + (lhs) => { + return `${lhs} <`; + } + LongLessThanArgsTemplate: !!js/function &LongLessThanArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongLessThanOrEqualTemplate: !!js/function &LongLessThanOrEqualTemplate > + (lhs) => { + return `${lhs} <=`; + } + LongLessThanOrEqualArgsTemplate: + !!js/function &LongLessThanOrEqualArgsTemplate > + (lhs, arg) => { + return ` ${arg}`; + } + LongFloatApproxTemplate: !!js/function &LongFloatApproxTemplate > + (lhs) => { + return `${lhs}.to_f`; + } + LongTopTemplate: !!js/function &LongTopTemplate > + (lhs) => { + return `${lhs} >> 32`; + } + LongBottomTemplate: !!js/function &LongBottomTemplate > + (lhs) => { + return `${lhs} & 0x0000ffff`; + } + TimestampToStringTemplate: !!js/function &TimestampToStringTemplate > + (lhs) => { + return `${lhs}.to_s`; + } + TimestampToStringArgsTemplate: !!js/function &TimestampToStringArgsTemplate > + () => { + return ''; + } + TimestampEqualsTemplate: !!js/function &TimestampEqualsTemplate > + (lhs) => { + return `${lhs} == `; + } + TimestampEqualsArgsTemplate: !!js/function &TimestampEqualsArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + TimestampGetLowBitsTemplate: !!js/function &TimestampGetLowBitsTemplate > + (lhs) => { + return `${lhs}.seconds`; + } + TimestampGetLowBitsArgsTemplate: + !!js/function &TimestampGetLowBitsArgsTemplate > + () => { + return '' + } + TimestampGetHighBitsTemplate: !!js/function &TimestampGetHighBitsTemplate > + (lhs) => { + return `${lhs}.increment`; + } + TimestampGetHighBitsArgsTemplate: + !!js/function &TimestampGetHighBitsArgsTemplate > + () => { + return '' + } + TimestampTTemplate: !!js/function &TimestampTTemplate > + (lhs) => { + return `${lhs}.seconds`; + } + TimestampITemplate: !!js/function &TimestampITemplate > + (lhs) => { + return `${lhs}.increment`; + } + TimestampAsDateTemplate: !!js/function &TimestampAsDateTemplate > + (lhs) => { + return `Time.at(${lhs}.increment).utc`; + } + TimestampAsDateArgsTemplate: &TimestampAsDateArgsTemplate null + TimestampCompareTemplate: !!js/function &TimestampCompareTemplate > + (lhs) => { + return `${lhs} <=> `; + } + TimestampCompareArgsTemplate: !!js/function &TimestampCompareArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + TimestampNotEqualsTemplate: !!js/function &TimestampNotEqualsTemplate > + (lhs) => { + return `${lhs} != `; + } + TimestampNotEqualsArgsTemplate: + !!js/function &TimestampNotEqualsArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + TimestampGreaterThanTemplate: !!js/function &TimestampGreaterThanTemplate > + (lhs) => { + return `${lhs} > `; + } + TimestampGreaterThanArgsTemplate: + !!js/function &TimestampGreaterThanArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + TimestampGreaterThanOrEqualTemplate: + !!js/function &TimestampGreaterThanOrEqualTemplate > + (lhs) => { + return `${lhs} >= `; + } + TimestampGreaterThanOrEqualArgsTemplate: + !!js/function &TimestampGreaterThanOrEqualArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + TimestampLessThanTemplate: !!js/function &TimestampLessThanTemplate > + (lhs) => { + return `${lhs} < `; + } + TimestampLessThanArgsTemplate: !!js/function &TimestampLessThanArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + TimestampLessThanOrEqualTemplate: + !!js/function &TimestampLessThanOrEqualTemplate > + (lhs) => { + return `${lhs} <= `; + } + TimestampLessThanOrEqualArgsTemplate: + !!js/function &TimestampLessThanOrEqualArgsTemplate > + (lhs, arg) => { + return `${arg}`; + } + SymbolValueOfTemplate: !!js/function &SymbolValueOfTemplate > + (lhs) => { + return lhs; + } + SymbolValueOfArgsTemplate: !!js/function &SymbolValueOfArgsTemplate > + () => { + return ''; + } + SymbolInspectTemplate: !!js/function &SymbolInspectTemplate > + (lhs) => { + return `${lhs}.inspect`; + } + SymbolInspectArgsTemplate: !!js/function &SymbolInspectArgsTemplate > + () => { + return ''; + } + SymbolToStringTemplate: !!js/function &SymbolToStringTemplate > + (lhs) => { + let extractRegex = (lhs) => { + let r = /^:'(.*)'$/; + let arr = r.exec(lhs); + return arr ? arr[1] : '' - ############################################# - # Object Attributes/Methods # - # # - # These're variables or functions called on # - # instantiated objects. For example, # - # ObjectId().isValid() or Timestamp().t # - # # - # They follow the same pattern with the - # *Template/*ArgsTemplates: usually no args # - # to the Template and lhs plus any original # - # arguments to the ArgsTemplate. # - # # - ############################################# - CodeCodeTemplate: &CodeCodeTemplate !!js/function > - (lhs) => { - return `${lhs}.javascript`; - } - CodeCodeArgsTemplate: &CodeCodeArgsTemplate !!js/function > - () => { - return ''; - } - CodeScopeTemplate: &CodeScopeTemplate !!js/function > - (lhs) => { - return `${lhs}.scope`; - } - CodeScopeArgsTemplate: &CodeScopeArgsTemplate !!js/function > - () => { - return ''; - } - ObjectIdToStringTemplate: &ObjectIdToStringTemplate !!js/function > - (lhs) => { - return `${lhs}.to_s`; - } - ObjectIdToStringArgsTemplate: &ObjectIdToStringArgsTemplate !!js/function > - () => { - return ''; - } - ObjectIdEqualsTemplate: &ObjectIdEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} == `; - } - ObjectIdEqualsArgsTemplate: &ObjectIdEqualsArgsTemplate !!js/function > - (arg) => { - return `${arg}`; - } - ObjectIdGetTimestampTemplate: &ObjectIdGetTimestampTemplate !!js/function > - (lhs) => { - return `${lhs}.to_time`; - } - ObjectIdGetTimestampArgsTemplate: &ObjectIdGetTimestampArgsTemplate !!js/function > - () => { - return ''; - } - ObjectIdIsValidTemplate: &ObjectIdIsValidTemplate !!js/function > - (lhs) => { - return `${lhs}.legal?` - } - ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate null - BinaryValueTemplate: &BinaryValueTemplate null - BinaryValueArgsTemplate: &BinaryValueArgsTemplate null - BinaryLengthTemplate: &BinaryLengthTemplate null - BinaryLengthArgsTemplate: &BinaryLengthArgsTemplate null - BinaryToStringTemplate: &BinaryToStringTemplate null - BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate null - BinarySubtypeTemplate: &BinarySubtypeTemplate null - BinarySubtypeArgsTemplate: &BinarySubtypeArgsTemplate null - DBRefGetDBTemplate: &DBRefGetDBTemplate !!js/function > - (lhs) => { - return `${lhs}.database`; - } - DBRefGetCollectionTemplate: &DBRefGetCollectionTemplate !!js/function > - (lhs) => { - return `${lhs}.collection`; - } - DBRefGetIdTemplate: &DBRefGetIdTemplate !!js/function > - (lhs) => { - return `${lhs}.id`; - } - DBRefGetDBArgsTemplate: &DBRefGetDBArgsTemplate !!js/function > - (lhs) => { - return ''; - } - DBRefGetCollectionArgsTemplate: &DBRefGetCollectionArgsTemplate !!js/function > - (lhs) => { - return ''; - } - DBRefGetIdArgsTemplate: &DBRefGetIdArgsTemplate !!js/function > - (lhs) => { - return ''; - } - DBRefToStringTemplate: &DBRefToStringTemplate !!js/function > - (lhs) => { - return '${lhs}.to_s'; - } - DBRefToStringArgsTemplate: &DBRefToStringArgsTemplate !!js/function > - () => { - return ''; - } - DoubleValueOfTemplate: &DoubleValueOfTemplate null - DoubleValueOfArgsTemplate: &DoubleValueOfArgsTemplate null - Int32ValueOfTemplate: &Int32ValueOfTemplate null - Int32ValueOfArgsTemplate: &Int32ValueOfArgsTemplate null - Int32ToStringTemplate: &Int32ToStringTemplate null - Int32ToStringArgsTemplate: &Int32ToStringArgsTemplate null - LongEqualsTemplate: &LongEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} ==`; - } - LongEqualsArgsTemplate: &LongEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongToIntTemplate: &LongToIntTemplate !!js/function > - (lhs) => { - return `${lhs}`; } - LongToIntArgsTemplate: &LongToIntArgsTemplate !!js/function > - () => { - return ''; - } - LongToStringTemplate: &LongToStringTemplate !!js/function > - (lhs) => { - return `${lhs}.to_s`; - } - LongToStringArgsTemplate: &LongToStringArgsTemplate !!js/function > - () => { - return ''; - } - LongToNumberTemplate: &LongToNumberTemplate !!js/function > - (lhs) => { - return `${lhs}.to_f`; - } - LongToNumberArgsTemplate: &LongToNumberArgsTemplate !!js/function > - () => { - return ''; - } - LongAddTemplate: &LongAddTemplate !!js/function > - (lhs) => { - return `${lhs} +`; - } - LongAddArgsTemplate: &LongAddArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongSubtractTemplate: &LongSubtractTemplate !!js/function > - (arg) => { - return `${arg} -`; - } - LongSubtractArgsTemplate: &LongSubtractArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongMultiplyTemplate: &LongMultiplyTemplate !!js/function > - (arg) => { - return `${arg} *`; - } - LongMultiplyArgsTemplate: &LongMultiplyArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongDivTemplate: &LongDivTemplate !!js/function > - (lhs) => { - return `${lhs} /`; - } - LongDivArgsTemplate: &LongDivArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongModuloTemplate: &LongModuloTemplate !!js/function > - (lhs) => { - return `${lhs} %`; - } - LongModuloArgsTemplate: &LongModuloArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongAndTemplate: &LongAndTemplate !!js/function > - (lhs) => { - return `${lhs} &`; - } - LongAndArgsTemplate: &LongAndArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongOrTemplate: &LongOrTemplate !!js/function > - (lhs) => { - return `${lhs} |`; - } - LongOrArgsTemplate: &LongOrArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongXorTemplate: &LongXorTemplate !!js/function > - (lhs) => { - return `${lhs} ^`; - } - LongXorArgsTemplate: &LongXorArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongShiftLeftTemplate: &LongShiftLeftTemplate !!js/function > - (lhs) => { - return `${lhs} <<`; - } - LongShiftLeftArgsTemplate: &LongShiftLeftArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongShiftRightTemplate: &LongShiftRightTemplate !!js/function > - (lhs) => { - return `${lhs} >>`; - } - LongShiftRightArgsTemplate: &LongShiftRightArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongCompareTemplate: &LongCompareTemplate !!js/function > - (lhs) => { - return `${lhs} -`; - } - LongCompareArgsTemplate: &LongCompareArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongIsOddTemplate: &LongIsOddTemplate !!js/function > - (lhs) => { - return `(${lhs} % 2) == 1`; - } - LongIsOddArgsTemplate: &LongIsOddArgsTemplate !!js/function > - () => { - return ''; - } - LongIsZeroTemplate: &LongIsZeroTemplate !!js/function > - (lhs) => { - return `${lhs} == 0`; - } - LongIsZeroArgsTemplate: &LongIsZeroArgsTemplate !!js/function > - () => { - return ''; - } - LongIsNegativeTemplate: &LongIsNegativeTemplate !!js/function > - (lhs) => { - return `${lhs} < 0`; - } - LongIsNegativeArgsTemplate: &LongIsNegativeArgsTemplate !!js/function > - () => { - return ''; - } - LongNegateTemplate: &LongNegateTemplate !!js/function > - () => { - return '-'; - } - LongNegateArgsTemplate: &LongNegateArgsTemplate !!js/function > - (lhs) => { - return lhs; - } - LongNotTemplate: &LongNotTemplate !!js/function > - () => { - return '~'; - } - LongNotArgsTemplate: &LongNotArgsTemplate !!js/function > - (lhs) => { - return lhs; - } - LongNotEqualsTemplate: &LongNotEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} !=`; - } - LongNotEqualsArgsTemplate: &LongNotEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongGreaterThanTemplate: &LongGreaterThanTemplate !!js/function > - (lhs) => { - return `${lhs} >`; - } - LongGreaterThanArgsTemplate: &LongGreaterThanArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongGreaterThanOrEqualTemplate: &LongGreaterThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} >=`; - } - LongGreaterThanOrEqualArgsTemplate: &LongGreaterThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongLessThanTemplate: &LongLessThanTemplate !!js/function > - (lhs) => { - return `${lhs} <`; - } - LongLessThanArgsTemplate: &LongLessThanArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongLessThanOrEqualTemplate: &LongLessThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} <=`; - } - LongLessThanOrEqualArgsTemplate: &LongLessThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return ` ${arg}`; - } - LongFloatApproxTemplate: &LongFloatApproxTemplate !!js/function > - (lhs) => { - return `${lhs}.to_f`; - } - LongTopTemplate: &LongTopTemplate !!js/function > - (lhs) => { - return `${lhs} >> 32`; - } - LongBottomTemplate: &LongBottomTemplate !!js/function > - (lhs) => { - return `${lhs} & 0x0000ffff`; - } - TimestampToStringTemplate: &TimestampToStringTemplate !!js/function > - (lhs) => { - return `${lhs}.to_s`; - } - TimestampToStringArgsTemplate: &TimestampToStringArgsTemplate !!js/function > - () => { - return ''; - } - TimestampEqualsTemplate: &TimestampEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} == `; - } - TimestampEqualsArgsTemplate: &TimestampEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - TimestampGetLowBitsTemplate: &TimestampGetLowBitsTemplate !!js/function > - (lhs) => { - return `${lhs}.seconds`; - } - TimestampGetLowBitsArgsTemplate: &TimestampGetLowBitsArgsTemplate !!js/function > - () => { - return '' - } - TimestampGetHighBitsTemplate: &TimestampGetHighBitsTemplate !!js/function > - (lhs) => { - return `${lhs}.increment`; - } - TimestampGetHighBitsArgsTemplate: &TimestampGetHighBitsArgsTemplate !!js/function > - () => { - return '' - } - TimestampTTemplate: &TimestampTTemplate !!js/function > - (lhs) => { - return `${lhs}.seconds`; - } - TimestampITemplate: &TimestampITemplate !!js/function > - (lhs) => { - return `${lhs}.increment`; - } - TimestampAsDateTemplate: &TimestampAsDateTemplate !!js/function > - (lhs) => { - return `Time.at(${lhs}.increment).utc`; - } - TimestampAsDateArgsTemplate: &TimestampAsDateArgsTemplate null - TimestampCompareTemplate: &TimestampCompareTemplate !!js/function > - (lhs) => { - return `${lhs} <=> `; - } - TimestampCompareArgsTemplate: &TimestampCompareArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - TimestampNotEqualsTemplate: &TimestampNotEqualsTemplate !!js/function > - (lhs) => { - return `${lhs} != `; - } - TimestampNotEqualsArgsTemplate: &TimestampNotEqualsArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - TimestampGreaterThanTemplate: &TimestampGreaterThanTemplate !!js/function > - (lhs) => { - return `${lhs} > `; - } - TimestampGreaterThanArgsTemplate: &TimestampGreaterThanArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - TimestampGreaterThanOrEqualTemplate: &TimestampGreaterThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} >= `; - } - TimestampGreaterThanOrEqualArgsTemplate: &TimestampGreaterThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - TimestampLessThanTemplate: &TimestampLessThanTemplate !!js/function > - (lhs) => { - return `${lhs} < `; - } - TimestampLessThanArgsTemplate: &TimestampLessThanArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - TimestampLessThanOrEqualTemplate: &TimestampLessThanOrEqualTemplate !!js/function > - (lhs) => { - return `${lhs} <= `; - } - TimestampLessThanOrEqualArgsTemplate: &TimestampLessThanOrEqualArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}`; - } - SymbolValueOfTemplate: &SymbolValueOfTemplate !!js/function > - (lhs) => { - return lhs; - } - SymbolValueOfArgsTemplate: &SymbolValueOfArgsTemplate !!js/function > - () => { - return ''; - } - SymbolInspectTemplate: &SymbolInspectTemplate !!js/function > - (lhs) => { - return `${lhs}.inspect`; - } - SymbolInspectArgsTemplate: &SymbolInspectArgsTemplate !!js/function > - () => { - return ''; - } - SymbolToStringTemplate: &SymbolToStringTemplate !!js/function > - (lhs) => { - let extractRegex = (lhs) => { - let r = /^:'(.*)'$/; - let arr = r.exec(lhs); - return arr ? arr[1] : '' + let res = extractRegex(lhs) + return res ? `'${res}'` : `${lhs}.to_s`; + } + SymbolToStringArgsTemplate: !!js/function &SymbolToStringArgsTemplate > + (lhs) => { + return ''; + } + Decimal128ToStringTemplate: !!js/function &Decimal128ToStringTemplate > + (lhs) => { + return `${lhs}.to_s`; + } + Decimal128ToStringArgsTemplate: + !!js/function &Decimal128ToStringArgsTemplate > + (lhs) => { + return ''; + } - } - let res = extractRegex(lhs) - return res ? `'${res}'` : `${lhs}.to_s`; - } - SymbolToStringArgsTemplate: &SymbolToStringArgsTemplate !!js/function > - (lhs) => { - return ''; - } - Decimal128ToStringTemplate: &Decimal128ToStringTemplate !!js/function > - (lhs) => { - return `${lhs}.to_s`; - } - Decimal128ToStringArgsTemplate: &Decimal128ToStringArgsTemplate !!js/function > - (lhs) => { - return ''; - } - - ############################################# - # Symbol Attributes/Methods # - # # - # These're variables or functions called on # - # symbols. Also called bson-utils. # - # # - # They are basically the same thing as # - # object attributes/methods, but need to be # - # distinguished since they are separate # - # namespaces that happen to have the same # - # name which is v confusing. # - # # - # For example, ObjectId().toString() is an # - # object method, while ObjectId.fromString # - # is a symbol attribute. These are two # - # separate ObjectId related namespaces that # - # don't overlap. # - # # - ############################################# - LongSymbolMaxTemplate: &LongSymbolMaxTemplate !!js/function > - () => { - return '9223372036854775807'; - } - LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null - LongSymbolMinTemplate: &LongSymbolMinTemplate !!js/function > - () => { - return '-9223372036854775808'; - } - LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null - LongSymbolZeroTemplate: &LongSymbolZeroTemplate !!js/function > - () => { - return '0'; - } - LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null - LongSymbolOneTemplate: &LongSymbolOneTemplate !!js/function > - () => { - return '1'; - } - LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null - LongSymbolNegOneTemplate: &LongSymbolNegOneTemplate !!js/function > - () => { - return '-1'; - } - LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null - LongSymbolFromBitsTemplate: &LongSymbolFromBitsTemplate !!js/function > - () => { - return ''; - } - LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate null - LongSymbolFromIntTemplate: &LongSymbolFromIntTemplate !!js/function > - () => { - return ''; - } - LongSymbolFromIntArgsTemplate: &LongSymbolFromIntArgsTemplate !!js/function > - (lhs, arg) => { - return arg; - } - LongSymbolFromNumberTemplate: &LongSymbolFromNumberTemplate null - LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate null - LongSymbolFromStringTemplate: &LongSymbolFromStringTemplate !!js/function > - () => { - return ''; - } - LongSymbolFromStringArgsTemplate: &LongSymbolFromStringArgsTemplate !!js/function > - (lhs, arg) => { - return `${arg}.to_i`; - } - Decimal128SymbolFromStringTemplate: &Decimal128SymbolFromStringTemplate !!js/function > - () => { - return 'BSON::Decimal128'; - } - Decimal128SymbolFromStringArgsTemplate: &Decimal128SymbolFromStringArgsTemplate !!js/function > - (lhs, arg) => { - return `.new(${arg})`; - } - ObjectIdCreateFromHexStringTemplate: &ObjectIdCreateFromHexStringTemplate !!js/function > - () => { - return 'BSON::ObjectId'; - } - ObjectIdCreateFromHexStringArgsTemplate: &ObjectIdCreateFromHexStringArgsTemplate !!js/function > - (lhs, arg) => { + ############################################# + # Symbol Attributes/Methods # + # # + # These're variables or functions called on # + # symbols. Also called bson-utils. # + # # + # They are basically the same thing as # + # object attributes/methods, but need to be # + # distinguished since they are separate # + # namespaces that happen to have the same # + # name which is v confusing. # + # # + # For example, ObjectId().toString() is an # + # object method, while ObjectId.fromString # + # is a symbol attribute. These are two # + # separate ObjectId related namespaces that # + # don't overlap. # + # # + ############################################# + LongSymbolMaxTemplate: !!js/function &LongSymbolMaxTemplate > + () => { + return '9223372036854775807'; + } + LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null + LongSymbolMinTemplate: !!js/function &LongSymbolMinTemplate > + () => { + return '-9223372036854775808'; + } + LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null + LongSymbolZeroTemplate: !!js/function &LongSymbolZeroTemplate > + () => { + return '0'; + } + LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null + LongSymbolOneTemplate: !!js/function &LongSymbolOneTemplate > + () => { + return '1'; + } + LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null + LongSymbolNegOneTemplate: !!js/function &LongSymbolNegOneTemplate > + () => { + return '-1'; + } + LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null + LongSymbolFromBitsTemplate: !!js/function &LongSymbolFromBitsTemplate > + () => { + return ''; + } + LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate null + LongSymbolFromIntTemplate: !!js/function &LongSymbolFromIntTemplate > + () => { + return ''; + } + LongSymbolFromIntArgsTemplate: !!js/function &LongSymbolFromIntArgsTemplate > + (lhs, arg) => { + return arg; + } + LongSymbolFromNumberTemplate: &LongSymbolFromNumberTemplate null + LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate null + LongSymbolFromStringTemplate: !!js/function &LongSymbolFromStringTemplate > + () => { + return ''; + } + LongSymbolFromStringArgsTemplate: + !!js/function &LongSymbolFromStringArgsTemplate > + (lhs, arg) => { + return `${arg}.to_i`; + } + Decimal128SymbolFromStringTemplate: + !!js/function &Decimal128SymbolFromStringTemplate > + () => { + return 'BSON::Decimal128'; + } + Decimal128SymbolFromStringArgsTemplate: + !!js/function &Decimal128SymbolFromStringArgsTemplate > + (lhs, arg) => { + return `.new(${arg})`; + } + ObjectIdCreateFromHexStringTemplate: + !!js/function &ObjectIdCreateFromHexStringTemplate > + () => { + return 'BSON::ObjectId'; + } + ObjectIdCreateFromHexStringArgsTemplate: + !!js/function &ObjectIdCreateFromHexStringArgsTemplate > + (lhs, arg) => { + return `(${arg})`; + } + ObjectIdCreateFromTimeTemplate: + !!js/function &ObjectIdCreateFromTimeTemplate > + () => { + return 'BSON::ObjectId.from_time'; + } + ObjectIdCreateFromTimeArgsTemplate: + !!js/function &ObjectIdCreateFromTimeArgsTemplate > + (lhs, arg, isNumber) => { + if (!isNumber) { return `(${arg})`; } - ObjectIdCreateFromTimeTemplate: &ObjectIdCreateFromTimeTemplate !!js/function > - () => { - return 'BSON::ObjectId.from_time'; - } - ObjectIdCreateFromTimeArgsTemplate: &ObjectIdCreateFromTimeArgsTemplate !!js/function > - (lhs, arg, isNumber) => { - if (!isNumber) { - return `(${arg})`; - } - return `(Time.at(${arg}))`; - } - # non bson-specific would go here, but there aren't any atm. - - ############################################# - # Imports # - # # - # Each type has a 'code' that is consistent # - # between languages. The import templates # - # for each code generate the required # - # statement for each type. No args. # - # # - # The ImportTemplate collects everything # - # into one statement. # - # # - ############################################# - ImportTemplate: &ImportTemplate !!js/function > - (args) => { - let set = new Set(Object.values(args)) - if (set.has(`require 'mongo'`)) return `require 'mongo'` - return [...set].sort().join('\n'); - } - DriverImportTemplate: &DriverImportTemplate !!js/function > - () => { - return `require 'mongo'` - } - 0ImportTemplate: &0ImportTemplate null - 1ImportTemplate: &1ImportTemplate null - 2ImportTemplate: &2ImportTemplate null - 3ImportTemplate: &3ImportTemplate null - 4ImportTemplate: &4ImportTemplate null - 5ImportTemplate: &5ImportTemplate null - 6ImportTemplate: &6ImportTemplate null - 7ImportTemplate: &7ImportTemplate null - 8ImportTemplate: &8ImportTemplate null - 9ImportTemplate: &9ImportTemplate null - 10ImportTemplate: &10ImportTemplate null - 11ImportTemplate: &11ImportTemplate null - 12ImportTemplate: &12ImportTemplate null - 100ImportTemplate: &100ImportTemplate !!js/function > - () => { - return `require 'bson'` - } - 101ImportTemplate: &101ImportTemplate !!js/function > - () => { - return `require 'bson'` - } - 102ImportTemplate: &102ImportTemplate !!js/function > - () => { - return `require 'bson'` - } - 103ImportTemplate: &103ImportTemplate !!js/function > - () => { - return `require 'bson'` - } - 104ImportTemplate: &104ImportTemplate null - 105ImportTemplate: &105ImportTemplate null - 106ImportTemplate: &106ImportTemplate null - 107ImportTemplate: &107ImportTemplate !!js/function > - () => { - return `require 'bson'` - } - 108ImportTemplate: &108ImportTemplate !!js/function > - () => { - return `require 'bson'` - } - 109ImportTemplate: &109ImportTemplate null - 110ImportTemplate: &110ImportTemplate !!js/function > - () => { - return `require 'bson'` - } - 111ImportTemplate: &111ImportTemplate null - 112ImportTemplate: &112ImportTemplate !!js/function > - () => { - return `require 'bson'` - } - 113ImportTemplate: &113ImportTemplate null - 114ImportTemplate: &114ImportTemplate null - 200ImportTemplate: &200ImportTemplate null - 201ImportTemplate: &201ImportTemplate null - 300ImportTemplate: &300ImportTemplate null - 301ImportTemplate: &301ImportTemplate null - 302ImportTemplate: &302ImportTemplate null - 303ImportTemplate: &303ImportTemplate null - 304ImportTemplate: &304ImportTemplate null - 305ImportTemplate: &305ImportTemplate null - 306ImportTemplate: &306ImportTemplate null + return `(Time.at(${arg}))`; + } + # non bson-specific would go here, but there aren't any atm. + ############################################# + # Imports # + # # + # Each type has a 'code' that is consistent # + # between languages. The import templates # + # for each code generate the required # + # statement for each type. No args. # + # # + # The ImportTemplate collects everything # + # into one statement. # + # # + ############################################# + ImportTemplate: !!js/function &ImportTemplate > + (args) => { + let set = new Set(Object.values(args)) + if (set.has(`require 'mongo'`)) return `require 'mongo'` + return [...set].sort().join('\n'); + } + DriverImportTemplate: !!js/function &DriverImportTemplate > + () => { + return `require 'mongo'` + } + 0ImportTemplate: &0ImportTemplate null + 1ImportTemplate: &1ImportTemplate null + 2ImportTemplate: &2ImportTemplate null + 3ImportTemplate: &3ImportTemplate null + 4ImportTemplate: &4ImportTemplate null + 5ImportTemplate: &5ImportTemplate null + 6ImportTemplate: &6ImportTemplate null + 7ImportTemplate: &7ImportTemplate null + 8ImportTemplate: &8ImportTemplate null + 9ImportTemplate: &9ImportTemplate null + 10ImportTemplate: &10ImportTemplate null + 11ImportTemplate: &11ImportTemplate null + 12ImportTemplate: &12ImportTemplate null + 100ImportTemplate: !!js/function &100ImportTemplate > + () => { + return `require 'bson'` + } + 101ImportTemplate: !!js/function &101ImportTemplate > + () => { + return `require 'bson'` + } + 102ImportTemplate: !!js/function &102ImportTemplate > + () => { + return `require 'bson'` + } + 103ImportTemplate: !!js/function &103ImportTemplate > + () => { + return `require 'bson'` + } + 104ImportTemplate: &104ImportTemplate null + 105ImportTemplate: &105ImportTemplate null + 106ImportTemplate: &106ImportTemplate null + 107ImportTemplate: !!js/function &107ImportTemplate > + () => { + return `require 'bson'` + } + 108ImportTemplate: !!js/function &108ImportTemplate > + () => { + return `require 'bson'` + } + 109ImportTemplate: &109ImportTemplate null + 110ImportTemplate: !!js/function &110ImportTemplate > + () => { + return `require 'bson'` + } + 111ImportTemplate: &111ImportTemplate null + 112ImportTemplate: !!js/function &112ImportTemplate > + () => { + return `require 'bson'` + } + 113ImportTemplate: &113ImportTemplate null + 114ImportTemplate: &114ImportTemplate null + 200ImportTemplate: &200ImportTemplate null + 201ImportTemplate: &201ImportTemplate null + 300ImportTemplate: &300ImportTemplate null + 301ImportTemplate: &301ImportTemplate null + 302ImportTemplate: &302ImportTemplate null + 303ImportTemplate: &303ImportTemplate null + 304ImportTemplate: &304ImportTemplate null + 305ImportTemplate: &305ImportTemplate null + 306ImportTemplate: &306ImportTemplate null diff --git a/packages/bson-transpilers/symbols/rust/templates.yaml b/packages/bson-transpilers/symbols/rust/templates.yaml index 8aaa18f0f2f..20face66663 100644 --- a/packages/bson-transpilers/symbols/rust/templates.yaml +++ b/packages/bson-transpilers/symbols/rust/templates.yaml @@ -18,843 +18,867 @@ # # ############################################# Templates: - ######## - # Misc # - ######## + ######## + # Misc # + ######## - # Filter out regex flags that have translations or are unsupported. - RegexFlags: &RegexFlags - i: 'i' - m: 'm' - u: 'u' - y: '' - g: '' - BSONRegexFlags: &BSONRegexFlags - i: 'i' - m: 'm' - x: 'x' - s: 's' - l: 'l' - u: 'u' + # Filter out regex flags that have translations or are unsupported. + RegexFlags: &RegexFlags + i: 'i' + m: 'm' + u: 'u' + y: '' + g: '' + BSONRegexFlags: &BSONRegexFlags + i: 'i' + m: 'm' + x: 'x' + s: 's' + l: 'l' + u: 'u' - ############################################# - # Syntax # - # # - # Templates for language syntax expressions # - # # - ############################################# + ############################################# + # Syntax # + # # + # Templates for language syntax expressions # + # # + ############################################# - DriverTemplate: &DriverTemplate !!js/function > - (spec) => { - const comment = `// Requires the MongoDB crate.\n// https://crates.io/crates/mongodb`; - - const options = spec.options; - const filter = spec.filter || 'None'; - const exportMode = spec.exportMode; - delete spec.options; - delete spec.filter; - delete spec.exportMode; + DriverTemplate: !!js/function &DriverTemplate > + (spec) => { + const comment = `// Requires the MongoDB crate.\n// https://crates.io/crates/mongodb`; + + const options = spec.options; + const filter = spec.filter || 'None'; + const exportMode = spec.exportMode; + delete spec.options; + delete spec.filter; + delete spec.exportMode; - const connect = `let client = Client::with_uri_str("${options.uri}").await?;` - const coll = `client.database("${options.database}").collection::("${options.collection}")`; + const connect = `let client = Client::with_uri_str("${options.uri}").await?;` + const coll = `client.database("${options.database}").collection::("${options.collection}")`; - if ('aggregation' in spec) { - let agg = spec.aggregation; - if (agg.charAt(0) != '[') { - agg = `[${agg}]`; - } - return `${comment}\n\n${connect}\nlet result = ${coll}.aggregate(${agg}, None).await?;`; + if ('aggregation' in spec) { + let agg = spec.aggregation; + if (agg.charAt(0) != '[') { + agg = `[${agg}]`; } + return `${comment}\n\n${connect}\nlet result = ${coll}.aggregate(${agg}, None).await?;`; + } - let driverMethod; - let optionsName; - switch (exportMode) { - case 'Delete Query': - driverMethod = 'delete_many'; - optionsName = 'DeleteOptions'; - break; - case 'Update Query': - driverMethod = 'update_many'; - optionsName = 'UpdateOptions'; + let driverMethod; + let optionsName; + switch (exportMode) { + case 'Delete Query': + driverMethod = 'delete_many'; + optionsName = 'DeleteOptions'; + break; + case 'Update Query': + driverMethod = 'update_many'; + optionsName = 'UpdateOptions'; + break; + default: + driverMethod = 'find'; + optionsName = 'FindOptions'; + break; + } + + const findOpts = []; + for (const k in spec) { + let optName = k; + let optValue = spec[k]; + switch(k) { + case 'project': + optName = 'projection'; break; - default: - driverMethod = 'find'; - optionsName = 'FindOptions'; + case 'maxTimeMS': + optName = 'max_time'; + optValue = `std::time::Duration::from_millis(${optValue})`; break; } - - const findOpts = []; - for (const k in spec) { - let optName = k; - let optValue = spec[k]; - switch(k) { - case 'project': - optName = 'projection'; - break; - case 'maxTimeMS': - optName = 'max_time'; - optValue = `std::time::Duration::from_millis(${optValue})`; - break; - } - findOpts.push(` .${optName}(${optValue})`); - } - let optStr = ''; - if (findOpts.length > 0) { - optStr = `let options = mongodb::options::${optionsName}::builder()\n${findOpts.join('\n')}\n .build();\n`; - } - let optRef = optStr ? 'options' : 'None'; - const cmd = `let result = ${coll}.${driverMethod}(${filter}, ${optRef}).await?;`; - - return `${comment}\n\n${connect}\n${optStr}${cmd}`; + findOpts.push(` .${optName}(${optValue})`); } - EqualitySyntaxTemplate: &EqualitySyntaxTemplate !!js/function > - (lhs, op, rhs) => { - if (op.includes('!') || op.includes('not')) { - return `${lhs} != ${rhs}`; - } - else if (op === '==' || op === '===' || op === 'is') { - return `${lhs} == ${rhs}`; - } - return `${lhs} ${op} ${rhs}`; + let optStr = ''; + if (findOpts.length > 0) { + optStr = `let options = mongodb::options::${optionsName}::builder()\n${findOpts.join('\n')}\n .build();\n`; } - InSyntaxTemplate: &InSyntaxTemplate !!js/function > - (lhs, op, rhs) => { - let prefix = ''; - if (op.includes('!') || op.includes('not')) { - prefix = '!'; - } - return `${prefix}${rhs}.contains(&${lhs})` + let optRef = optStr ? 'options' : 'None'; + const cmd = `let result = ${coll}.${driverMethod}(${filter}, ${optRef}).await?;`; + + return `${comment}\n\n${connect}\n${optStr}${cmd}`; + } + EqualitySyntaxTemplate: !!js/function &EqualitySyntaxTemplate > + (lhs, op, rhs) => { + if (op.includes('!') || op.includes('not')) { + return `${lhs} != ${rhs}`; } - AndSyntaxTemplate: &AndSyntaxTemplate !!js/function > - (args) => { - return args.join(' && '); + else if (op === '==' || op === '===' || op === 'is') { + return `${lhs} == ${rhs}`; } - OrSyntaxTemplate: &OrSyntaxTemplate !!js/function > - (args) => { - return args.join(' || '); + return `${lhs} ${op} ${rhs}`; + } + InSyntaxTemplate: !!js/function &InSyntaxTemplate > + (lhs, op, rhs) => { + let prefix = ''; + if (op.includes('!') || op.includes('not')) { + prefix = '!'; } - NotSyntaxTemplate: &NotSyntaxTemplate !!js/function > - (arg) => { - return `!${arg}`; + return `${prefix}${rhs}.contains(&${lhs})` + } + AndSyntaxTemplate: !!js/function &AndSyntaxTemplate > + (args) => { + return args.join(' && '); + } + OrSyntaxTemplate: !!js/function &OrSyntaxTemplate > + (args) => { + return args.join(' || '); + } + NotSyntaxTemplate: !!js/function &NotSyntaxTemplate > + (arg) => { + return `!${arg}`; + } + UnarySyntaxTemplate: !!js/function &UnarySyntaxTemplate > + (op, val) => { + switch(op) { + case '+': + return val; + case '~': + return `!${val}`; + default: + return `${op}${val}`; } - UnarySyntaxTemplate: &UnarySyntaxTemplate !!js/function > - (op, val) => { + return `${op}${val}`; + } + BinarySyntaxTemplate: !!js/function &BinarySyntaxTemplate > + (args) => { + return args.reduce((s, op, i, arr) => { + if (i % 2 === 0) { + return s; + } + const rhs = arr[i + 1]; switch(op) { - case '+': - return val; - case '~': - return `!${val}`; + case '//': + return `${s} / ${rhs}` + case '**': + return `${s}.pow(${rhs})` default: - return `${op}${val}`; - } - return `${op}${val}`; - } - BinarySyntaxTemplate: &BinarySyntaxTemplate !!js/function > - (args) => { - return args.reduce((s, op, i, arr) => { - if (i % 2 === 0) { - return s; - } - const rhs = arr[i + 1]; - switch(op) { - case '//': - return `${s} / ${rhs}` - case '**': - return `${s}.pow(${rhs})` - default: - return `${s} ${op} ${rhs}`; - } - }, args[0]); - } - ParensSyntaxTemplate: &ParensSyntaxTemplate null - EosTemplate: &EosSyntaxTemplate null # No args. End-of-line - EofTemplate: &EofSyntaxTemplate null # No args. End-of-file - FloorDivTemplate: &FloorDivSyntaxTemplate null # Args: lhs, rhs - PowerTemplate: &PowerSyntaxTemplate null # Args: lhs, rhs - NewTemplate: &NewSyntaxTemplate null # Args: expression, skip?, code# [to check if meant to be skipped] + return `${s} ${op} ${rhs}`; + } + }, args[0]); + } + ParensSyntaxTemplate: &ParensSyntaxTemplate null + EosTemplate: &EosSyntaxTemplate null # No args. End-of-line + EofTemplate: &EofSyntaxTemplate null # No args. End-of-file + FloorDivTemplate: &FloorDivSyntaxTemplate null # Args: lhs, rhs + PowerTemplate: &PowerSyntaxTemplate null # Args: lhs, rhs + NewTemplate: &NewSyntaxTemplate null # Args: expression, skip?, code# [to check if meant to be skipped] - ############################################# - # Literal Types # - # # - # Templates for literal type instance. Most # - # get passed the literal itself as an arg. # - # # - ############################################# - StringTypeTemplate: &StringTypeTemplate !!js/function > - (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; + ############################################# + # Literal Types # + # # + # Templates for literal type instance. Most # + # get passed the literal itself as an arg. # + # # + ############################################# + StringTypeTemplate: !!js/function &StringTypeTemplate > + (str) => { + let newStr = str; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); + } + return `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; + } + RegexTypeTemplate: !!js/function &RegexTypeTemplate > + (pattern, flags) => { + // Double-quote stringify + let newPat = pattern; + if ( + (pattern.charAt(0) === '\'' && pattern.charAt(pattern.length - 1) === '\'') || + (pattern.charAt(0) === '"' && pattern.charAt(pattern.length - 1) === '"')) { + newPat = pattern.substr(1, pattern.length - 2); + } + return `Regex { pattern: "${newPat.replace(/\\([\s\S])|(")/g, '\\$1$2')}".to_string(), options: "${flags}".to_string() }`; + } + BoolTypeTemplate: !!js/function &BoolTypeTemplate > + (literal) => { + return literal.toLowerCase(); + } + IntegerTypeTemplate: &IntegerTypeTemplate null # args: literal, argType (i.e. '_string', '_decimal' etc) + DecimalTypeTemplate: &DecimalTypeTemplate null # args: literal, argType + LongBasicTypeTemplate: &LongBasicTypeTemplate null + HexTypeTemplate: !!js/function &HexTypeTemplate > + (literal, type) => { + if (literal.charAt(1) === 'X') { + return literal.charAt(0) + 'x' + literal.substring(2); + } + return literal; + } + OctalTypeTemplate: !!js/function &OctalTypeTemplate > + (literal, type) => { + switch(literal.charAt(1)) { + case 'o': + return literal; + case 'O': + case '0': + return literal.charAt(0) + 'o' + literal.substring(2); + default: + return literal.charAt(0) + 'o' + literal.substring(1); } - RegexTypeTemplate: &RegexTypeTemplate !!js/function > - (pattern, flags) => { - // Double-quote stringify - let newPat = pattern; + } + NumericTypeTemplate: &NumericTypeTemplate null # args: literal, argType + ArrayTypeTemplate: !!js/function &ArrayTypeTemplate > + (literal, depth) => { + if (literal === '') { + return '[]' + } + return `[${literal}]`; + } + ArrayTypeArgsTemplate: !!js/function &ArrayTypeArgsTemplate > + (element, depth, isLast) => { + depth++; + const indent = '\n' + ' '.repeat(depth); + const closingIndent = isLast ? '\n' + ' '.repeat(depth - 1) : ','; + return `${indent}${element}${closingIndent}`; + } + NullTypeTemplate: !!js/function &NullTypeTemplate > + () => 'Bson::Null' + UndefinedTypeTemplate: !!js/function &UndefinedTypeTemplate > + () => 'Bson::Undefined' + ObjectTypeTemplate: !!js/function &ObjectTypeTemplate > + (literal) => `doc! {${literal}}` + ObjectTypeArgsTemplate: !!js/function &ObjectTypeArgsTemplate > + (args, depth) => { + if (args.length === 0) { + return ''; + } + depth++; + const indent = '\n' + ' '.repeat(depth); + const closingIndent = '\n' + ' '.repeat(depth - 1); + const doubleStringify = (str) => { + let newStr = str; if ( - (pattern.charAt(0) === '\'' && pattern.charAt(pattern.length - 1) === '\'') || - (pattern.charAt(0) === '"' && pattern.charAt(pattern.length - 1) === '"')) { - newPat = pattern.substr(1, pattern.length - 2); - } - return `Regex { pattern: "${newPat.replace(/\\([\s\S])|(")/g, '\\$1$2')}".to_string(), options: "${flags}".to_string() }`; - } - BoolTypeTemplate: &BoolTypeTemplate !!js/function > - (literal) => { - return literal.toLowerCase(); - } - IntegerTypeTemplate: &IntegerTypeTemplate null # args: literal, argType (i.e. '_string', '_decimal' etc) - DecimalTypeTemplate: &DecimalTypeTemplate null # args: literal, argType - LongBasicTypeTemplate: &LongBasicTypeTemplate null - HexTypeTemplate: &HexTypeTemplate !!js/function > - (literal, type) => { - if (literal.charAt(1) === 'X') { - return literal.charAt(0) + 'x' + literal.substring(2); - } - return literal; - } - OctalTypeTemplate: &OctalTypeTemplate !!js/function > - (literal, type) => { - switch(literal.charAt(1)) { - case 'o': - return literal; - case 'O': - case '0': - return literal.charAt(0) + 'o' + literal.substring(2); - default: - return literal.charAt(0) + 'o' + literal.substring(1); + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); } + return `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; } - NumericTypeTemplate: &NumericTypeTemplate null # args: literal, argType - ArrayTypeTemplate: &ArrayTypeTemplate !!js/function > - (literal, depth) => { - if (literal === '') { - return '[]' - } - return `[${literal}]`; - } - ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate !!js/function > - (element, depth, isLast) => { - depth++; - const indent = '\n' + ' '.repeat(depth); - const closingIndent = isLast ? '\n' + ' '.repeat(depth - 1) : ','; - return `${indent}${element}${closingIndent}`; - } - NullTypeTemplate: &NullTypeTemplate !!js/function > - () => 'Bson::Null' - UndefinedTypeTemplate: &UndefinedTypeTemplate !!js/function > - () => 'Bson::Undefined' - ObjectTypeTemplate: &ObjectTypeTemplate !!js/function > - (literal) => `doc! {${literal}}` - ObjectTypeArgsTemplate: &ObjectTypeArgsTemplate !!js/function > - (args, depth) => { - if (args.length === 0) { - return ''; - } - depth++; - const indent = '\n' + ' '.repeat(depth); - const closingIndent = '\n' + ' '.repeat(depth - 1); - const doubleStringify = (str) => { - let newStr = str; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - return `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - } - const pairs = args.map((pair) => { - return `${indent}${doubleStringify(pair[0])}: ${pair[1]}`; - }).join(','); + const pairs = args.map((pair) => { + return `${indent}${doubleStringify(pair[0])}: ${pair[1]}`; + }).join(','); - return `${pairs}${closingIndent}`; + return `${pairs}${closingIndent}`; - } + } - ############################################# - # Symbols # - # # - # Templates for symbols, can be either # - # functions or variables. # - # # - # The *SymbolTemplates return names and # - # usually don't take any arguments. The # - # *SymbolArgsTemplates are invoked for func # - # calls. The first argument is always the # - # lhs, i.e. the symbol returned from the # - # corresponding SymbolTemplate. The rest of # - # the arguments are the processed arguments # - # passed to the original function. # - # # - ############################################# - CodeSymbolTemplate: &CodeSymbolTemplate !!js/function > - () => '' - CodeSymbolArgsTemplate: &CodeSymbolArgsTemplate !!js/function > - (lhs, code, scope) => { - // Double quote stringify - let newStr = code === undefined ? '' : code; - const str = newStr; - if ( - (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || - (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { - newStr = str.substr(1, str.length - 2); - } - code = `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}".to_string()`; - if (scope === undefined) { - return `Bson::JavaScriptCode(${code})`; - } else { - return `JavaScriptCodeWithScope { code: ${code}, scope: ${scope} }`; - } + ############################################# + # Symbols # + # # + # Templates for symbols, can be either # + # functions or variables. # + # # + # The *SymbolTemplates return names and # + # usually don't take any arguments. The # + # *SymbolArgsTemplates are invoked for func # + # calls. The first argument is always the # + # lhs, i.e. the symbol returned from the # + # corresponding SymbolTemplate. The rest of # + # the arguments are the processed arguments # + # passed to the original function. # + # # + ############################################# + CodeSymbolTemplate: !!js/function &CodeSymbolTemplate > + () => '' + CodeSymbolArgsTemplate: !!js/function &CodeSymbolArgsTemplate > + (lhs, code, scope) => { + // Double quote stringify + let newStr = code === undefined ? '' : code; + const str = newStr; + if ( + (str.charAt(0) === '\'' && str.charAt(str.length - 1) === '\'') || + (str.charAt(0) === '"' && str.charAt(str.length - 1) === '"')) { + newStr = str.substr(1, str.length - 2); } - ObjectIdSymbolTemplate: &ObjectIdSymbolTemplate !!js/function > - () => 'ObjectId' - ObjectIdSymbolArgsTemplate: &ObjectIdSymbolArgsTemplate !!js/function > - (lhs, arg) => { - if (arg === undefined || arg === '') { - return '::new()'; - } - // Double quote stringify - let newArg = arg; - if ( - (arg.charAt(0) === '\'' && arg.charAt(arg.length - 1) === '\'') || - (arg.charAt(0) === '"' && arg.charAt(arg.length - 1) === '"')) { - newArg = arg.substr(1, arg.length - 2); - } - newArg = `"${newArg.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - return `::parse_str(${newArg})?`; - } - BinarySymbolTemplate: &BinarySymbolTemplate null - BinarySymbolArgsTemplate: &BinarySymbolArgsTemplate null - BinarySymbolSubtypeDefaultTemplate: &BinarySymbolSubtypeDefaultTemplate !!js/function > - () => 'BinarySubtype::Generic' - BinarySymbolSubtypeFunctionTemplate: &BinarySymbolSubtypeFunctionTemplate !!js/function > - () => 'BinarySubtype::Function' - BinarySymbolSubtypeByteArrayTemplate: &BinarySymbolSubtypeByteArrayTemplate !!js/function > - () => 'BinarySubtype::BinaryOld' - BinarySymbolSubtypeUuidOldTemplate: &BinarySymbolSubtypeUuidOldTemplate !!js/function > - () => 'BinarySubtype::UuidOld' - BinarySymbolSubtypeUuidTemplate: &BinarySymbolSubtypeUuidTemplate !!js/function > - () => 'BinarySubtype::Uuid' - BinarySymbolSubtypeMd5Template: &BinarySymbolSubtypeMd5Template !!js/function > - () => 'BinarySubtype::Md5' - BinarySymbolSubtypeUserDefinedTemplate: &BinarySymbolSubtypeUserDefinedTemplate !!js/function > - (arg) => `BinarySubtype::UserDefined(${arg})` - DBRefSymbolTemplate: &DBRefSymbolTemplate null # No args - DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate null # Args: lhs, coll, id, db - DoubleSymbolTemplate: &DoubleSymbolTemplate !!js/function > - () => '' - DoubleSymbolArgsTemplate: &DoubleSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - if (type === '_decimal' || type === '_double') { - return arg; - } - if (type === '_integer' || type === '_long') { - return `${arg}.0`; - } - if (type === '_string') { - return `${arg}.parse::()?`; - } - return `f32::try_from(${arg})?`; - } - Int32SymbolTemplate: &Int32SymbolTemplate !!js/function > - () => '' - Int32SymbolArgsTemplate: &Int32SymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - if (type === '_integer' || type === '_long' || type === '_hex' || type === '_octal') { - return arg; - } - if (type === '_string') { - return `${arg}.parse::()?`; - } - return `i32::try_from(${arg})?`; - } - LongSymbolTemplate: &LongSymbolTemplate !!js/function > - () => '' - LongSymbolArgsTemplate: &LongSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; - if (type === '_integer' || type === '_long' || type === '_hex' || type === '_octal') { - return `${arg}i64`; - } - if (type === '_string') { - return `${arg}.parse::()?`; - } - return `i64::try_from(${arg})?`; - } - RegExpSymbolTemplate: &RegExpSymbolTemplate !!js/function > - () => 'Regex' - RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null # Args: lhs, pattern, flags - SymbolSymbolTemplate: &SymbolSymbolTemplate !!js/function > - () => 'Bson::Symbol' - SymbolSymbolArgsTemplate: &SymbolSymbolArgsTemplate !!js/function > - (_, arg) => `(${arg})` - BSONRegExpSymbolTemplate: &BSONRegExpSymbolTemplate !!js/function > - () => 'Regex' - BSONRegExpSymbolArgsTemplate: &BSONRegExpSymbolArgsTemplate !!js/function > - (_, pattern, flags) => { - if (flags === null || flags === undefined) { - flags = ''; - } - if ( - (flags.charAt(0) === '\'' && flags.charAt(flags.length - 1) === '\'') || - (flags.charAt(0) === '"' && flags.charAt(flags.length - 1) === '"')) { - flags = flags.substr(1, flags.length - 2); - } - // Double-quote stringify - let newPat = pattern; - if ( - (pattern.charAt(0) === '\'' && pattern.charAt(pattern.length - 1) === '\'') || - (pattern.charAt(0) === '"' && pattern.charAt(pattern.length - 1) === '"')) { - newPat = pattern.substr(1, pattern.length - 2); - } - return ` { pattern: "${newPat.replace(/\\([\s\S])|(")/g, '\\$1$2')}", flags: "${flags}" }`; - } - Decimal128SymbolTemplate: &Decimal128SymbolTemplate null # No args - Decimal128SymbolArgsTemplate: &Decimal128SymbolArgsTemplate null # Args: lhs, arg - MinKeySymbolTemplate: &MinKeySymbolTemplate !!js/function > - () => 'Bson::MinKey' - MinKeySymbolArgsTemplate: &MinKeySymbolArgsTemplate !!js/function > - () => '' - MaxKeySymbolTemplate: &MaxKeySymbolTemplate !!js/function > - () => 'Bson::MaxKey' - MaxKeySymbolArgsTemplate: &MaxKeySymbolArgsTemplate !!js/function > - () => '' - TimestampSymbolTemplate: &TimestampSymbolTemplate !!js/function > - () => 'Timestamp' - TimestampSymbolArgsTemplate: &TimestampSymbolArgsTemplate !!js/function > - (lhs, low, high) => { - if (low === undefined) { - low = 0; - high = 0; - } - return ` { time: ${low}, increment: ${high} }` - } - # non bson-specific - NumberSymbolTemplate: &NumberSymbolTemplate !!js/function > - () => '' - NumberSymbolArgsTemplate: &NumberSymbolArgsTemplate !!js/function > - (lhs, arg, type) => { - arg = arg === undefined ? 0 : arg; + code = `"${newStr.replace(/\\([\s\S])|(")/g, '\\$1$2')}".to_string()`; + if (scope === undefined) { + return `Bson::JavaScriptCode(${code})`; + } else { + return `JavaScriptCodeWithScope { code: ${code}, scope: ${scope} }`; + } + } + ObjectIdSymbolTemplate: !!js/function &ObjectIdSymbolTemplate > + () => 'ObjectId' + ObjectIdSymbolArgsTemplate: !!js/function &ObjectIdSymbolArgsTemplate > + (lhs, arg) => { + if (arg === undefined || arg === '') { + return '::new()'; + } + // Double quote stringify + let newArg = arg; + if ( + (arg.charAt(0) === '\'' && arg.charAt(arg.length - 1) === '\'') || + (arg.charAt(0) === '"' && arg.charAt(arg.length - 1) === '"')) { + newArg = arg.substr(1, arg.length - 2); + } + newArg = `"${newArg.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; + return `::parse_str(${newArg})?`; + } + BinarySymbolTemplate: &BinarySymbolTemplate null + BinarySymbolArgsTemplate: &BinarySymbolArgsTemplate null + BinarySymbolSubtypeDefaultTemplate: + !!js/function &BinarySymbolSubtypeDefaultTemplate > + () => 'BinarySubtype::Generic' + BinarySymbolSubtypeFunctionTemplate: + !!js/function &BinarySymbolSubtypeFunctionTemplate > + () => 'BinarySubtype::Function' + BinarySymbolSubtypeByteArrayTemplate: + !!js/function &BinarySymbolSubtypeByteArrayTemplate > + () => 'BinarySubtype::BinaryOld' + BinarySymbolSubtypeUuidOldTemplate: + !!js/function &BinarySymbolSubtypeUuidOldTemplate > + () => 'BinarySubtype::UuidOld' + BinarySymbolSubtypeUuidTemplate: + !!js/function &BinarySymbolSubtypeUuidTemplate > + () => 'BinarySubtype::Uuid' + BinarySymbolSubtypeMd5Template: + !!js/function &BinarySymbolSubtypeMd5Template > + () => 'BinarySubtype::Md5' + BinarySymbolSubtypeUserDefinedTemplate: + !!js/function &BinarySymbolSubtypeUserDefinedTemplate > + (arg) => `BinarySubtype::UserDefined(${arg})` + DBRefSymbolTemplate: &DBRefSymbolTemplate null # No args + DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate null # Args: lhs, coll, id, db + DoubleSymbolTemplate: !!js/function &DoubleSymbolTemplate > + () => '' + DoubleSymbolArgsTemplate: !!js/function &DoubleSymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + if (type === '_decimal' || type === '_double') { + return arg; + } + if (type === '_integer' || type === '_long') { + return `${arg}.0`; + } + if (type === '_string') { + return `${arg}.parse::()?`; + } + return `f32::try_from(${arg})?`; + } + Int32SymbolTemplate: !!js/function &Int32SymbolTemplate > + () => '' + Int32SymbolArgsTemplate: !!js/function &Int32SymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + if (type === '_integer' || type === '_long' || type === '_hex' || type === '_octal') { + return arg; + } + if (type === '_string') { + return `${arg}.parse::()?`; + } + return `i32::try_from(${arg})?`; + } + LongSymbolTemplate: !!js/function &LongSymbolTemplate > + () => '' + LongSymbolArgsTemplate: !!js/function &LongSymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; + if (type === '_integer' || type === '_long' || type === '_hex' || type === '_octal') { + return `${arg}i64`; + } + if (type === '_string') { + return `${arg}.parse::()?`; + } + return `i64::try_from(${arg})?`; + } + RegExpSymbolTemplate: !!js/function &RegExpSymbolTemplate > + () => 'Regex' + RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null # Args: lhs, pattern, flags + SymbolSymbolTemplate: !!js/function &SymbolSymbolTemplate > + () => 'Bson::Symbol' + SymbolSymbolArgsTemplate: !!js/function &SymbolSymbolArgsTemplate > + (_, arg) => `(${arg})` + BSONRegExpSymbolTemplate: !!js/function &BSONRegExpSymbolTemplate > + () => 'Regex' + BSONRegExpSymbolArgsTemplate: !!js/function &BSONRegExpSymbolArgsTemplate > + (_, pattern, flags) => { + if (flags === null || flags === undefined) { + flags = ''; + } + if ( + (flags.charAt(0) === '\'' && flags.charAt(flags.length - 1) === '\'') || + (flags.charAt(0) === '"' && flags.charAt(flags.length - 1) === '"')) { + flags = flags.substr(1, flags.length - 2); + } + // Double-quote stringify + let newPat = pattern; + if ( + (pattern.charAt(0) === '\'' && pattern.charAt(pattern.length - 1) === '\'') || + (pattern.charAt(0) === '"' && pattern.charAt(pattern.length - 1) === '"')) { + newPat = pattern.substr(1, pattern.length - 2); + } + return ` { pattern: "${newPat.replace(/\\([\s\S])|(")/g, '\\$1$2')}", flags: "${flags}" }`; + } + Decimal128SymbolTemplate: &Decimal128SymbolTemplate null # No args + Decimal128SymbolArgsTemplate: &Decimal128SymbolArgsTemplate null # Args: lhs, arg + MinKeySymbolTemplate: !!js/function &MinKeySymbolTemplate > + () => 'Bson::MinKey' + MinKeySymbolArgsTemplate: !!js/function &MinKeySymbolArgsTemplate > + () => '' + MaxKeySymbolTemplate: !!js/function &MaxKeySymbolTemplate > + () => 'Bson::MaxKey' + MaxKeySymbolArgsTemplate: !!js/function &MaxKeySymbolArgsTemplate > + () => '' + TimestampSymbolTemplate: !!js/function &TimestampSymbolTemplate > + () => 'Timestamp' + TimestampSymbolArgsTemplate: !!js/function &TimestampSymbolArgsTemplate > + (lhs, low, high) => { + if (low === undefined) { + low = 0; + high = 0; + } + return ` { time: ${low}, increment: ${high} }` + } + # non bson-specific + NumberSymbolTemplate: !!js/function &NumberSymbolTemplate > + () => '' + NumberSymbolArgsTemplate: !!js/function &NumberSymbolArgsTemplate > + (lhs, arg, type) => { + arg = arg === undefined ? 0 : arg; - switch(type) { - case '_string': - if (arg.indexOf('.') !== -1) { - return `${arg}.parse::()?`; - } - return `${arg}.parse::()?`; - case '_integer': - case '_long': - case '_decimal': - return `${arg}`; - default: - return `f32::try_from(${arg})?`; - } + switch(type) { + case '_string': + if (arg.indexOf('.') !== -1) { + return `${arg}.parse::()?`; + } + return `${arg}.parse::()?`; + case '_integer': + case '_long': + case '_decimal': + return `${arg}`; + default: + return `f32::try_from(${arg})?`; } - DateSymbolTemplate: &DateSymbolTemplate !!js/function > - () => 'DateTime' - DateSymbolArgsTemplate: &DateSymbolArgsTemplate !!js/function > - (lhs, date, isString) => { - let toStr = isString ? '.to_rfc3339_string()' : ''; - if (date === null) { - return `${lhs}::now()${toStr}`; - } - return `${lhs}::parse_rfc3339_str("${date.toISOString()}")?${toStr}`; + } + DateSymbolTemplate: !!js/function &DateSymbolTemplate > + () => 'DateTime' + DateSymbolArgsTemplate: !!js/function &DateSymbolArgsTemplate > + (lhs, date, isString) => { + let toStr = isString ? '.to_rfc3339_string()' : ''; + if (date === null) { + return `${lhs}::now()${toStr}`; } + return `${lhs}::parse_rfc3339_str("${date.toISOString()}")?${toStr}`; + } - ############################################# - # Object Attributes/Methods # - # # - # These're variables or functions called on # - # instantiated objects. For example, # - # ObjectId().isValid() or Timestamp().t # - # # - # They follow the same pattern with the - # *Template/*ArgsTemplates: usually no args # - # to the Template and lhs plus any original # - # arguments to the ArgsTemplate. # - # # - ############################################# - CodeCodeTemplate: &CodeCodeTemplate null - CodeCodeArgsTemplate: &CodeCodeArgsTemplate null - CodeScopeTemplate: &CodeScopeTemplate !!js/function > - (lhs) => `${lhs}.scope` - CodeScopeArgsTemplate: &CodeScopeArgsTemplate null - ObjectIdToStringTemplate: &ObjectIdToStringTemplate !!js/function > - (lhs) => `${lhs}.to_hex()` - ObjectIdToStringArgsTemplate: &ObjectIdToStringArgsTemplate !!js/function > - () => '' - ObjectIdEqualsTemplate: &ObjectIdEqualsTemplate !!js/function > - (lhs) => `${lhs} == ` - ObjectIdEqualsArgsTemplate: &ObjectIdEqualsArgsTemplate !!js/function > - (_, arg) => arg - ObjectIdGetTimestampTemplate: &ObjectIdGetTimestampTemplate !!js/function > - (lhs) => `${lhs}.timestamp()` - ObjectIdGetTimestampArgsTemplate: &ObjectIdGetTimestampArgsTemplate !!js/function > - () => '' - ObjectIdIsValidTemplate: &ObjectIdIsValidTemplate null - ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate null - BinaryValueTemplate: &BinaryValueTemplate !!js/function > - (arg) => `${arg}.bytes` - BinaryValueArgsTemplate: &BinaryValueArgsTemplate !!js/function > - () => '' - BinaryLengthTemplate: &BinaryLengthTemplate !!js/function > - (arg) => `${arg}.bytes.len()` - BinaryLengthArgsTemplate: &BinaryLengthArgsTemplate !!js/function > - () => '' - BinaryToStringTemplate: &BinaryToStringTemplate !!js/function > - (arg) => `format!("{}", ${arg})` - BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate !!js/function > - () => '' - BinarySubtypeTemplate: &BinarySubtypeTemplate !!js/function > - (arg) => `${arg}.subtype` - BinarySubtypeArgsTemplate: &BinarySubtypeArgsTemplate !!js/function > - () => '' - DBRefGetDBTemplate: &DBRefGetDBTemplate null - DBRefGetCollectionTemplate: &DBRefGetCollectionTemplate null - DBRefGetIdTemplate: &DBRefGetIdTemplate null - DBRefGetDBArgsTemplate: &DBRefGetDBArgsTemplate null - DBRefGetCollectionArgsTemplate: &DBRefGetCollectionArgsTemplate null - DBRefGetIdArgsTemplate: &DBRefGetIdArgsTemplate null - DBRefToStringTemplate: &DBRefToStringTemplate null - DBRefToStringArgsTemplate: &DBRefToStringArgsTemplate null - DoubleValueOfTemplate: &DoubleValueOfTemplate null - DoubleValueOfArgsTemplate: &DoubleValueOfArgsTemplate null - Int32ValueOfTemplate: &Int32ValueOfTemplate null - Int32ValueOfArgsTemplate: &Int32ValueOfArgsTemplate null - Int32ToStringTemplate: &Int32ToStringTemplate null - Int32ToStringArgsTemplate: &Int32ToStringArgsTemplate null - LongEqualsTemplate: &LongEqualsTemplate !!js/function > - (lhs) => `${lhs} == ` - LongEqualsArgsTemplate: &LongEqualsArgsTemplate !!js/function > - (_, rhs) => rhs - LongToStringTemplate: &LongToStringTemplate !!js/function > - (arg) => arg - LongToStringArgsTemplate: &LongToStringArgsTemplate null - LongToIntTemplate: &LongToIntTemplate !!js/function > - (arg) => `${arg} as i32` - LongToIntArgsTemplate: &LongToIntArgsTemplate !!js/function > - () => '' - LongValueOfTemplate: &LongValueOfTemplate null - LongValueOfArgsTemplate: &LongValueOfArgsTemplate null - LongToNumberTemplate: &LongToNumberTemplate !!js/function > - (arg) => `${arg} as f64` - LongToNumberArgsTemplate: &LongToNumberArgsTemplate !!js/function > - () => '' - LongAddTemplate: &LongAddTemplate !!js/function > - (lhs) => `${lhs} + ` - LongAddArgsTemplate: &LongAddArgsTemplate !!js/function > - (_, rhs) => rhs - LongSubtractTemplate: &LongSubtractTemplate !!js/function > - (lhs) => `${lhs} - ` - LongSubtractArgsTemplate: &LongSubtractArgsTemplate !!js/function > - (_, rhs) => rhs - LongMultiplyTemplate: &LongMultiplyTemplate !!js/function > - (lhs) => `${lhs} * ` - LongMultiplyArgsTemplate: &LongMultiplyArgsTemplate !!js/function > - (_, rhs) => rhs - LongDivTemplate: &LongDivTemplate !!js/function > - (lhs) => `${lhs} / ` - LongDivArgsTemplate: &LongDivArgsTemplate !!js/function > - (_, rhs) => rhs - LongModuloTemplate: &LongModuloTemplate !!js/function > - (lhs) => `${lhs} % ` - LongModuloArgsTemplate: &LongModuloArgsTemplate !!js/function > - (_, rhs) => rhs - LongAndTemplate: &LongAndTemplate !!js/function > - (lhs) => `${lhs} & ` - LongAndArgsTemplate: &LongAndArgsTemplate !!js/function > - (_, rhs) => rhs - LongOrTemplate: &LongOrTemplate !!js/function > - (lhs) => `${lhs} | ` - LongOrArgsTemplate: &LongOrArgsTemplate !!js/function > - (_, rhs) => rhs - LongXorTemplate: &LongXorTemplate !!js/function > - (lhs) => `${lhs} ^ ` - LongXorArgsTemplate: &LongXorArgsTemplate !!js/function > - (_, rhs) => rhs - LongShiftLeftTemplate: &LongShiftLeftTemplate !!js/function > - (lhs) => `${lhs} << ` - LongShiftLeftArgsTemplate: &LongShiftLeftArgsTemplate !!js/function > - (_, rhs) => rhs - LongShiftRightTemplate: &LongShiftRightTemplate !!js/function > - (lhs) => `${lhs} >> ` - LongShiftRightArgsTemplate: &LongShiftRightArgsTemplate !!js/function > - (_, rhs) => rhs - LongCompareTemplate: &LongCompareTemplate !!js/function > - (lhs) => `${lhs} - ` - LongCompareArgsTemplate: &LongCompareArgsTemplate !!js/function > - (_, rhs) => rhs - LongIsOddTemplate: &LongIsOddTemplate !!js/function > - (arg) => `${arg} % 2 == 1` - LongIsOddArgsTemplate: &LongIsOddArgsTemplate !!js/function > - () => '' - LongIsZeroTemplate: &LongIsZeroTemplate !!js/function > - (arg) => `${arg} == 0` - LongIsZeroArgsTemplate: &LongIsZeroArgsTemplate !!js/function > - () => '' - LongIsNegativeTemplate: &LongIsNegativeTemplate !!js/function > - (arg) => `${arg} < 0` - LongIsNegativeArgsTemplate: &LongIsNegativeArgsTemplate !!js/function > - () => '' - LongNegateTemplate: &LongNegateTemplate !!js/function > - () => '-' - LongNegateArgsTemplate: &LongNegateArgsTemplate !!js/function > - (arg) => arg - LongNotTemplate: &LongNotTemplate !!js/function > - () => '~' - LongNotArgsTemplate: &LongNotArgsTemplate !!js/function > - (arg) => arg - LongNotEqualsTemplate: &LongNotEqualsTemplate !!js/function > - (lhs) => `${lhs} != ` - LongNotEqualsArgsTemplate: &LongNotEqualsArgsTemplate !!js/function > - (_, rhs) => rhs - LongGreaterThanTemplate: &LongGreaterThanTemplate !!js/function > - (lhs) => `${lhs} > ` - LongGreaterThanArgsTemplate: &LongGreaterThanArgsTemplate !!js/function > - (_, rhs) => rhs - LongGreaterThanOrEqualTemplate: &LongGreaterThanOrEqualTemplate !!js/function > - (lhs) => `${lhs} >= ` - LongGreaterThanOrEqualArgsTemplate: &LongGreaterThanOrEqualArgsTemplate !!js/function > - (_, rhs) => rhs - LongLessThanTemplate: &LongLessThanTemplate !!js/function > - (lhs) => `${lhs} < ` - LongLessThanArgsTemplate: &LongLessThanArgsTemplate !!js/function > - (_, rhs) => rhs - LongLessThanOrEqualTemplate: &LongLessThanOrEqualTemplate !!js/function > - (lhs) => `${lhs} <= ` - LongLessThanOrEqualArgsTemplate: &LongLessThanOrEqualArgsTemplate !!js/function > - (_, rhs) => rhs - LongFloatApproxTemplate: &LongFloatApproxTemplate !!js/function > - (arg) => `${arg} as f32` - LongTopTemplate: &LongTopTemplate !!js/function > - (arg) => `${arg} >> 32` - LongBottomTemplate: &LongBottomTemplate !!js/function > - (arg) => `${arg} & 0x0000ffff` - TimestampToStringTemplate: &TimestampToStringTemplate !!js/function > - (arg) => `${arg}.to_string()` - TimestampToStringArgsTemplate: &TimestampToStringArgsTemplate !!js/function > - () => '' - TimestampEqualsTemplate: &TimestampEqualsTemplate !!js/function > - (lhs) => `${lhs} == ` - TimestampEqualsArgsTemplate: &TimestampEqualsArgsTemplate !!js/function > - (_, rhs) => rhs - TimestampGetLowBitsTemplate: &TimestampGetLowBitsTemplate !!js/function > - (arg) => `${arg}.time` - TimestampGetLowBitsArgsTemplate: &TimestampGetLowBitsArgsTemplate !!js/function > - () => '' - TimestampGetHighBitsTemplate: &TimestampGetHighBitsTemplate !!js/function > - (arg) => `${arg}.increment` - TimestampGetHighBitsArgsTemplate: &TimestampGetHighBitsArgsTemplate !!js/function > - () => '' - TimestampTTemplate: &TimestampTTemplate !!js/function > - (arg) => `${arg}.time` - TimestampITemplate: &TimestampITemplate !!js/function > - (arg) => `${arg}.increment` - TimestampAsDateTemplate: &TimestampAsDateTemplate !!js/function > - (arg) => `DateTime::from_millis(${arg}.time)` - TimestampAsDateArgsTemplate: &TimestampAsDateArgsTemplate !!js/function > - () => '' - TimestampCompareTemplate: &TimestampCompareTemplate !!js/function > - (arg) => `${arg}.cmp` - TimestampCompareArgsTemplate: &TimestampCompareArgsTemplate !!js/function > - (_, rhs) => `(${rhs})` - TimestampNotEqualsTemplate: &TimestampNotEqualsTemplate !!js/function > - (lhs) => `${lhs} != ` - TimestampNotEqualsArgsTemplate: &TimestampNotEqualsArgsTemplate !!js/function > - (_, rhs) => rhs - TimestampGreaterThanTemplate: &TimestampGreaterThanTemplate !!js/function > - (lhs) => `${lhs} > ` - TimestampGreaterThanArgsTemplate: &TimestampGreaterThanArgsTemplate !!js/function > - (_, rhs) => rhs - TimestampGreaterThanOrEqualTemplate: &TimestampGreaterThanOrEqualTemplate !!js/function > - (lhs) => `${lhs} >= ` - TimestampGreaterThanOrEqualArgsTemplate: &TimestampGreaterThanOrEqualArgsTemplate !!js/function > - (_, rhs) => rhs - TimestampLessThanTemplate: &TimestampLessThanTemplate !!js/function > - (lhs) => `${lhs} < ` - TimestampLessThanArgsTemplate: &TimestampLessThanArgsTemplate !!js/function > - (_, rhs) => rhs - TimestampLessThanOrEqualTemplate: &TimestampLessThanOrEqualTemplate !!js/function > - (lhs) => `${lhs} <= ` - TimestampLessThanOrEqualArgsTemplate: &TimestampLessThanOrEqualArgsTemplate !!js/function > - (_, rhs) => rhs - SymbolValueOfTemplate: &SymbolValueOfTemplate !!js/function > - (arg) => `${arg}.as_symbol().unwrap()` - SymbolValueOfArgsTemplate: &SymbolValueOfArgsTemplate !!js/function > - () => '' - SymbolInspectTemplate: &SymbolInspectTemplate !!js/function > - (arg) => `format!("{:?}", ${arg})` - SymbolInspectArgsTemplate: &SymbolInspectArgsTemplate !!js/function > - () => '' - SymbolToStringTemplate: &SymbolToStringTemplate !!js/function > - (arg) => `${arg}.as_symbol().unwrap()` - SymbolToStringArgsTemplate: &SymbolToStringArgsTemplate !!js/function > - () => '' - Decimal128ToStringTemplate: &Decimal128ToStringTemplate null - Decimal128ToStringArgsTemplate: &Decimal128ToStringArgsTemplate null - # non bson-specific - DateSymbolNowTemplate: &DateSymbolNowTemplate !!js/function > - () => 'DateTime::now()' - DateSymbolNowArgsTemplate: &DateSymbolNowArgsTemplate !!js/function > - () => '' + ############################################# + # Object Attributes/Methods # + # # + # These're variables or functions called on # + # instantiated objects. For example, # + # ObjectId().isValid() or Timestamp().t # + # # + # They follow the same pattern with the + # *Template/*ArgsTemplates: usually no args # + # to the Template and lhs plus any original # + # arguments to the ArgsTemplate. # + # # + ############################################# + CodeCodeTemplate: &CodeCodeTemplate null + CodeCodeArgsTemplate: &CodeCodeArgsTemplate null + CodeScopeTemplate: !!js/function &CodeScopeTemplate > + (lhs) => `${lhs}.scope` + CodeScopeArgsTemplate: &CodeScopeArgsTemplate null + ObjectIdToStringTemplate: !!js/function &ObjectIdToStringTemplate > + (lhs) => `${lhs}.to_hex()` + ObjectIdToStringArgsTemplate: !!js/function &ObjectIdToStringArgsTemplate > + () => '' + ObjectIdEqualsTemplate: !!js/function &ObjectIdEqualsTemplate > + (lhs) => `${lhs} == ` + ObjectIdEqualsArgsTemplate: !!js/function &ObjectIdEqualsArgsTemplate > + (_, arg) => arg + ObjectIdGetTimestampTemplate: !!js/function &ObjectIdGetTimestampTemplate > + (lhs) => `${lhs}.timestamp()` + ObjectIdGetTimestampArgsTemplate: + !!js/function &ObjectIdGetTimestampArgsTemplate > + () => '' + ObjectIdIsValidTemplate: &ObjectIdIsValidTemplate null + ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate null + BinaryValueTemplate: !!js/function &BinaryValueTemplate > + (arg) => `${arg}.bytes` + BinaryValueArgsTemplate: !!js/function &BinaryValueArgsTemplate > + () => '' + BinaryLengthTemplate: !!js/function &BinaryLengthTemplate > + (arg) => `${arg}.bytes.len()` + BinaryLengthArgsTemplate: !!js/function &BinaryLengthArgsTemplate > + () => '' + BinaryToStringTemplate: !!js/function &BinaryToStringTemplate > + (arg) => `format!("{}", ${arg})` + BinaryToStringArgsTemplate: !!js/function &BinaryToStringArgsTemplate > + () => '' + BinarySubtypeTemplate: !!js/function &BinarySubtypeTemplate > + (arg) => `${arg}.subtype` + BinarySubtypeArgsTemplate: !!js/function &BinarySubtypeArgsTemplate > + () => '' + DBRefGetDBTemplate: &DBRefGetDBTemplate null + DBRefGetCollectionTemplate: &DBRefGetCollectionTemplate null + DBRefGetIdTemplate: &DBRefGetIdTemplate null + DBRefGetDBArgsTemplate: &DBRefGetDBArgsTemplate null + DBRefGetCollectionArgsTemplate: &DBRefGetCollectionArgsTemplate null + DBRefGetIdArgsTemplate: &DBRefGetIdArgsTemplate null + DBRefToStringTemplate: &DBRefToStringTemplate null + DBRefToStringArgsTemplate: &DBRefToStringArgsTemplate null + DoubleValueOfTemplate: &DoubleValueOfTemplate null + DoubleValueOfArgsTemplate: &DoubleValueOfArgsTemplate null + Int32ValueOfTemplate: &Int32ValueOfTemplate null + Int32ValueOfArgsTemplate: &Int32ValueOfArgsTemplate null + Int32ToStringTemplate: &Int32ToStringTemplate null + Int32ToStringArgsTemplate: &Int32ToStringArgsTemplate null + LongEqualsTemplate: !!js/function &LongEqualsTemplate > + (lhs) => `${lhs} == ` + LongEqualsArgsTemplate: !!js/function &LongEqualsArgsTemplate > + (_, rhs) => rhs + LongToStringTemplate: !!js/function &LongToStringTemplate > + (arg) => arg + LongToStringArgsTemplate: &LongToStringArgsTemplate null + LongToIntTemplate: !!js/function &LongToIntTemplate > + (arg) => `${arg} as i32` + LongToIntArgsTemplate: !!js/function &LongToIntArgsTemplate > + () => '' + LongValueOfTemplate: &LongValueOfTemplate null + LongValueOfArgsTemplate: &LongValueOfArgsTemplate null + LongToNumberTemplate: !!js/function &LongToNumberTemplate > + (arg) => `${arg} as f64` + LongToNumberArgsTemplate: !!js/function &LongToNumberArgsTemplate > + () => '' + LongAddTemplate: !!js/function &LongAddTemplate > + (lhs) => `${lhs} + ` + LongAddArgsTemplate: !!js/function &LongAddArgsTemplate > + (_, rhs) => rhs + LongSubtractTemplate: !!js/function &LongSubtractTemplate > + (lhs) => `${lhs} - ` + LongSubtractArgsTemplate: !!js/function &LongSubtractArgsTemplate > + (_, rhs) => rhs + LongMultiplyTemplate: !!js/function &LongMultiplyTemplate > + (lhs) => `${lhs} * ` + LongMultiplyArgsTemplate: !!js/function &LongMultiplyArgsTemplate > + (_, rhs) => rhs + LongDivTemplate: !!js/function &LongDivTemplate > + (lhs) => `${lhs} / ` + LongDivArgsTemplate: !!js/function &LongDivArgsTemplate > + (_, rhs) => rhs + LongModuloTemplate: !!js/function &LongModuloTemplate > + (lhs) => `${lhs} % ` + LongModuloArgsTemplate: !!js/function &LongModuloArgsTemplate > + (_, rhs) => rhs + LongAndTemplate: !!js/function &LongAndTemplate > + (lhs) => `${lhs} & ` + LongAndArgsTemplate: !!js/function &LongAndArgsTemplate > + (_, rhs) => rhs + LongOrTemplate: !!js/function &LongOrTemplate > + (lhs) => `${lhs} | ` + LongOrArgsTemplate: !!js/function &LongOrArgsTemplate > + (_, rhs) => rhs + LongXorTemplate: !!js/function &LongXorTemplate > + (lhs) => `${lhs} ^ ` + LongXorArgsTemplate: !!js/function &LongXorArgsTemplate > + (_, rhs) => rhs + LongShiftLeftTemplate: !!js/function &LongShiftLeftTemplate > + (lhs) => `${lhs} << ` + LongShiftLeftArgsTemplate: !!js/function &LongShiftLeftArgsTemplate > + (_, rhs) => rhs + LongShiftRightTemplate: !!js/function &LongShiftRightTemplate > + (lhs) => `${lhs} >> ` + LongShiftRightArgsTemplate: !!js/function &LongShiftRightArgsTemplate > + (_, rhs) => rhs + LongCompareTemplate: !!js/function &LongCompareTemplate > + (lhs) => `${lhs} - ` + LongCompareArgsTemplate: !!js/function &LongCompareArgsTemplate > + (_, rhs) => rhs + LongIsOddTemplate: !!js/function &LongIsOddTemplate > + (arg) => `${arg} % 2 == 1` + LongIsOddArgsTemplate: !!js/function &LongIsOddArgsTemplate > + () => '' + LongIsZeroTemplate: !!js/function &LongIsZeroTemplate > + (arg) => `${arg} == 0` + LongIsZeroArgsTemplate: !!js/function &LongIsZeroArgsTemplate > + () => '' + LongIsNegativeTemplate: !!js/function &LongIsNegativeTemplate > + (arg) => `${arg} < 0` + LongIsNegativeArgsTemplate: !!js/function &LongIsNegativeArgsTemplate > + () => '' + LongNegateTemplate: !!js/function &LongNegateTemplate > + () => '-' + LongNegateArgsTemplate: !!js/function &LongNegateArgsTemplate > + (arg) => arg + LongNotTemplate: !!js/function &LongNotTemplate > + () => '~' + LongNotArgsTemplate: !!js/function &LongNotArgsTemplate > + (arg) => arg + LongNotEqualsTemplate: !!js/function &LongNotEqualsTemplate > + (lhs) => `${lhs} != ` + LongNotEqualsArgsTemplate: !!js/function &LongNotEqualsArgsTemplate > + (_, rhs) => rhs + LongGreaterThanTemplate: !!js/function &LongGreaterThanTemplate > + (lhs) => `${lhs} > ` + LongGreaterThanArgsTemplate: !!js/function &LongGreaterThanArgsTemplate > + (_, rhs) => rhs + LongGreaterThanOrEqualTemplate: + !!js/function &LongGreaterThanOrEqualTemplate > + (lhs) => `${lhs} >= ` + LongGreaterThanOrEqualArgsTemplate: + !!js/function &LongGreaterThanOrEqualArgsTemplate > + (_, rhs) => rhs + LongLessThanTemplate: !!js/function &LongLessThanTemplate > + (lhs) => `${lhs} < ` + LongLessThanArgsTemplate: !!js/function &LongLessThanArgsTemplate > + (_, rhs) => rhs + LongLessThanOrEqualTemplate: !!js/function &LongLessThanOrEqualTemplate > + (lhs) => `${lhs} <= ` + LongLessThanOrEqualArgsTemplate: + !!js/function &LongLessThanOrEqualArgsTemplate > + (_, rhs) => rhs + LongFloatApproxTemplate: !!js/function &LongFloatApproxTemplate > + (arg) => `${arg} as f32` + LongTopTemplate: !!js/function &LongTopTemplate > + (arg) => `${arg} >> 32` + LongBottomTemplate: !!js/function &LongBottomTemplate > + (arg) => `${arg} & 0x0000ffff` + TimestampToStringTemplate: !!js/function &TimestampToStringTemplate > + (arg) => `${arg}.to_string()` + TimestampToStringArgsTemplate: !!js/function &TimestampToStringArgsTemplate > + () => '' + TimestampEqualsTemplate: !!js/function &TimestampEqualsTemplate > + (lhs) => `${lhs} == ` + TimestampEqualsArgsTemplate: !!js/function &TimestampEqualsArgsTemplate > + (_, rhs) => rhs + TimestampGetLowBitsTemplate: !!js/function &TimestampGetLowBitsTemplate > + (arg) => `${arg}.time` + TimestampGetLowBitsArgsTemplate: + !!js/function &TimestampGetLowBitsArgsTemplate > + () => '' + TimestampGetHighBitsTemplate: !!js/function &TimestampGetHighBitsTemplate > + (arg) => `${arg}.increment` + TimestampGetHighBitsArgsTemplate: + !!js/function &TimestampGetHighBitsArgsTemplate > + () => '' + TimestampTTemplate: !!js/function &TimestampTTemplate > + (arg) => `${arg}.time` + TimestampITemplate: !!js/function &TimestampITemplate > + (arg) => `${arg}.increment` + TimestampAsDateTemplate: !!js/function &TimestampAsDateTemplate > + (arg) => `DateTime::from_millis(${arg}.time)` + TimestampAsDateArgsTemplate: !!js/function &TimestampAsDateArgsTemplate > + () => '' + TimestampCompareTemplate: !!js/function &TimestampCompareTemplate > + (arg) => `${arg}.cmp` + TimestampCompareArgsTemplate: !!js/function &TimestampCompareArgsTemplate > + (_, rhs) => `(${rhs})` + TimestampNotEqualsTemplate: !!js/function &TimestampNotEqualsTemplate > + (lhs) => `${lhs} != ` + TimestampNotEqualsArgsTemplate: + !!js/function &TimestampNotEqualsArgsTemplate > + (_, rhs) => rhs + TimestampGreaterThanTemplate: !!js/function &TimestampGreaterThanTemplate > + (lhs) => `${lhs} > ` + TimestampGreaterThanArgsTemplate: + !!js/function &TimestampGreaterThanArgsTemplate > + (_, rhs) => rhs + TimestampGreaterThanOrEqualTemplate: + !!js/function &TimestampGreaterThanOrEqualTemplate > + (lhs) => `${lhs} >= ` + TimestampGreaterThanOrEqualArgsTemplate: + !!js/function &TimestampGreaterThanOrEqualArgsTemplate > + (_, rhs) => rhs + TimestampLessThanTemplate: !!js/function &TimestampLessThanTemplate > + (lhs) => `${lhs} < ` + TimestampLessThanArgsTemplate: !!js/function &TimestampLessThanArgsTemplate > + (_, rhs) => rhs + TimestampLessThanOrEqualTemplate: + !!js/function &TimestampLessThanOrEqualTemplate > + (lhs) => `${lhs} <= ` + TimestampLessThanOrEqualArgsTemplate: + !!js/function &TimestampLessThanOrEqualArgsTemplate > + (_, rhs) => rhs + SymbolValueOfTemplate: !!js/function &SymbolValueOfTemplate > + (arg) => `${arg}.as_symbol().unwrap()` + SymbolValueOfArgsTemplate: !!js/function &SymbolValueOfArgsTemplate > + () => '' + SymbolInspectTemplate: !!js/function &SymbolInspectTemplate > + (arg) => `format!("{:?}", ${arg})` + SymbolInspectArgsTemplate: !!js/function &SymbolInspectArgsTemplate > + () => '' + SymbolToStringTemplate: !!js/function &SymbolToStringTemplate > + (arg) => `${arg}.as_symbol().unwrap()` + SymbolToStringArgsTemplate: !!js/function &SymbolToStringArgsTemplate > + () => '' + Decimal128ToStringTemplate: &Decimal128ToStringTemplate null + Decimal128ToStringArgsTemplate: &Decimal128ToStringArgsTemplate null + # non bson-specific + DateSymbolNowTemplate: !!js/function &DateSymbolNowTemplate > + () => 'DateTime::now()' + DateSymbolNowArgsTemplate: !!js/function &DateSymbolNowArgsTemplate > + () => '' - ############################################# - # Symbol Attributes/Methods # - # # - # These're variables or functions called on # - # symbols. Also called bson-utils. # - # # - # They are basically the same thing as # - # object attributes/methods, but need to be # - # distinguished since they are separate # - # namespaces that happen to have the same # - # name which is v confusing. # - # # - # For example, ObjectId().toString() is an # - # object method, while ObjectId.fromString # - # is a symbol attribute. These are two # - # separate ObjectId related namespaces that # - # don't overlap. # - # # - ############################################# - LongSymbolMaxTemplate: &LongSymbolMaxTemplate !!js/function > - () => 'i64::MAX' - LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate !!js/function > - () => '' - LongSymbolMinTemplate: &LongSymbolMinTemplate !!js/function > - () => 'i64::MIN' - LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate !!js/function > - () => '' - LongSymbolZeroTemplate: &LongSymbolZeroTemplate !!js/function > - () => '0i64' - LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate !!js/function > - () => '' - LongSymbolOneTemplate: &LongSymbolOneTemplate !!js/function > - () => '1i64' - LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate !!js/function > - () => '' - LongSymbolNegOneTemplate: &LongSymbolNegOneTemplate !!js/function > - () => '-1i64' - LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate !!js/function > - () => '' - LongSymbolFromBitsTemplate: &LongSymbolFromBitsTemplate !!js/function > - () => '' - LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate !!js/function > - (_, arg) => `${arg}i64` - LongSymbolFromIntTemplate: &LongSymbolFromIntTemplate !!js/function > - () => '' - LongSymbolFromIntArgsTemplate: &LongSymbolFromIntArgsTemplate !!js/function > - (_, arg) => `${arg}i64` - LongSymbolFromNumberTemplate: &LongSymbolFromNumberTemplate !!js/function > - () => '' - LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate !!js/function > - (_, arg) => `${arg} as i64` - LongSymbolFromStringTemplate: &LongSymbolFromStringTemplate !!js/function > - () => '' - LongSymbolFromStringArgsTemplate: &LongSymbolFromStringArgsTemplate !!js/function > - (_, arg, radix) => { - if (radix) { - return `i64::from_str_radix(${arg}, ${radix})?`; - } - return `${arg}.parse::()?`; + ############################################# + # Symbol Attributes/Methods # + # # + # These're variables or functions called on # + # symbols. Also called bson-utils. # + # # + # They are basically the same thing as # + # object attributes/methods, but need to be # + # distinguished since they are separate # + # namespaces that happen to have the same # + # name which is v confusing. # + # # + # For example, ObjectId().toString() is an # + # object method, while ObjectId.fromString # + # is a symbol attribute. These are two # + # separate ObjectId related namespaces that # + # don't overlap. # + # # + ############################################# + LongSymbolMaxTemplate: !!js/function &LongSymbolMaxTemplate > + () => 'i64::MAX' + LongSymbolMaxArgsTemplate: !!js/function &LongSymbolMaxArgsTemplate > + () => '' + LongSymbolMinTemplate: !!js/function &LongSymbolMinTemplate > + () => 'i64::MIN' + LongSymbolMinArgsTemplate: !!js/function &LongSymbolMinArgsTemplate > + () => '' + LongSymbolZeroTemplate: !!js/function &LongSymbolZeroTemplate > + () => '0i64' + LongSymbolZeroArgsTemplate: !!js/function &LongSymbolZeroArgsTemplate > + () => '' + LongSymbolOneTemplate: !!js/function &LongSymbolOneTemplate > + () => '1i64' + LongSymbolOneArgsTemplate: !!js/function &LongSymbolOneArgsTemplate > + () => '' + LongSymbolNegOneTemplate: !!js/function &LongSymbolNegOneTemplate > + () => '-1i64' + LongSymbolNegOneArgsTemplate: !!js/function &LongSymbolNegOneArgsTemplate > + () => '' + LongSymbolFromBitsTemplate: !!js/function &LongSymbolFromBitsTemplate > + () => '' + LongSymbolFromBitsArgsTemplate: + !!js/function &LongSymbolFromBitsArgsTemplate > + (_, arg) => `${arg}i64` + LongSymbolFromIntTemplate: !!js/function &LongSymbolFromIntTemplate > + () => '' + LongSymbolFromIntArgsTemplate: !!js/function &LongSymbolFromIntArgsTemplate > + (_, arg) => `${arg}i64` + LongSymbolFromNumberTemplate: !!js/function &LongSymbolFromNumberTemplate > + () => '' + LongSymbolFromNumberArgsTemplate: + !!js/function &LongSymbolFromNumberArgsTemplate > + (_, arg) => `${arg} as i64` + LongSymbolFromStringTemplate: !!js/function &LongSymbolFromStringTemplate > + () => '' + LongSymbolFromStringArgsTemplate: + !!js/function &LongSymbolFromStringArgsTemplate > + (_, arg, radix) => { + if (radix) { + return `i64::from_str_radix(${arg}, ${radix})?`; } - Decimal128SymbolFromStringTemplate: &Decimal128SymbolFromStringTemplate null - Decimal128SymbolFromStringArgsTemplate: &Decimal128SymbolFromStringArgsTemplate null - ObjectIdCreateFromHexStringTemplate: &ObjectIdCreateFromHexStringTemplate !!js/function > - (lhs) => lhs - ObjectIdCreateFromHexStringArgsTemplate: &ObjectIdCreateFromHexStringArgsTemplate !!js/function > - (lhs, arg) => { - // Double quote stringify - let newArg = arg; - if ( - (arg.charAt(0) === '\'' && arg.charAt(arg.length - 1) === '\'') || - (arg.charAt(0) === '"' && arg.charAt(arg.length - 1) === '"')) { - newArg = arg.substr(1, arg.length - 2); - } - newArg = `"${newArg.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; - return `::parse_str(${newArg})?`; + return `${arg}.parse::()?`; + } + Decimal128SymbolFromStringTemplate: &Decimal128SymbolFromStringTemplate null + Decimal128SymbolFromStringArgsTemplate: &Decimal128SymbolFromStringArgsTemplate null + ObjectIdCreateFromHexStringTemplate: + !!js/function &ObjectIdCreateFromHexStringTemplate > + (lhs) => lhs + ObjectIdCreateFromHexStringArgsTemplate: + !!js/function &ObjectIdCreateFromHexStringArgsTemplate > + (lhs, arg) => { + // Double quote stringify + let newArg = arg; + if ( + (arg.charAt(0) === '\'' && arg.charAt(arg.length - 1) === '\'') || + (arg.charAt(0) === '"' && arg.charAt(arg.length - 1) === '"')) { + newArg = arg.substr(1, arg.length - 2); } - ObjectIdCreateFromTimeTemplate: &ObjectIdCreateFromTimeTemplate null - ObjectIdCreateFromTimeArgsTemplate: &ObjectIdCreateFromTimeArgsTemplate null - # non bson-specific would go here, but there aren't any atm. + newArg = `"${newArg.replace(/\\([\s\S])|(")/g, '\\$1$2')}"`; + return `::parse_str(${newArg})?`; + } + ObjectIdCreateFromTimeTemplate: &ObjectIdCreateFromTimeTemplate null + ObjectIdCreateFromTimeArgsTemplate: &ObjectIdCreateFromTimeArgsTemplate null + # non bson-specific would go here, but there aren't any atm. - ############################################# - # Imports # - # # - # Each type has a 'code' that is consistent # - # between languages. The import templates # - # for each code generate the required # - # statement for each type. No args. # - # # - # The ImportTemplate collects everything # - # into one statement. # - # # - ############################################# - ImportTemplate: &ImportTemplate !!js/function > - (args) => { - let merged = new Set(Object.values(args)); - return [...merged].sort().join('\n'); - } - DriverImportTemplate: &DriverImportTemplate !!js/function > - () => 'use mongodb::Client;' - 0ImportTemplate: &0ImportTemplate null - 1ImportTemplate: &1ImportTemplate null - 2ImportTemplate: &2ImportTemplate null - 3ImportTemplate: &3ImportTemplate null - 4ImportTemplate: &4ImportTemplate null - 5ImportTemplate: &5ImportTemplate null - 6ImportTemplate: &6ImportTemplate null - 7ImportTemplate: &7ImportTemplate null - 8ImportTemplate: &8ImportTemplate !!js/function > - () => 'use mongodb::bson::Regex;' - 9ImportTemplate: &9ImportTemplate null - 10ImportTemplate: &10ImportTemplate !!js/function > - () => 'use mongodb::bson::doc;' - # Null - 11ImportTemplate: &11ImportTemplate !!js/function > - () => 'use mongodb::bson::Bson;' - # Undefined - 12ImportTemplate: &12ImportTemplate !!js/function > - () => 'use mongodb::bson::Bson;' - # Code - 100ImportTemplate: &100ImportTemplate !!js/function > - () => 'use mongodb::bson::Bson;' - 101ImportTemplate: &101ImportTemplate !!js/function > - () => 'use mongodb::bson::oid::ObjectId;' - 102ImportTemplate: &102ImportTemplate !!js/function > - () => 'use mongodb::bson::Binary;' - 103ImportTemplate: &103ImportTemplate null - 104ImportTemplate: &104ImportTemplate null - 105ImportTemplate: &105ImportTemplate null - 106ImportTemplate: &106ImportTemplate null - # MinKey - 107ImportTemplate: &107ImportTemplate !!js/function > - () => 'use mongodb::bson::Bson;' - # MaxKey - 108ImportTemplate: &108ImportTemplate !!js/function > - () => 'use mongodb::bson::Bson;' - 109ImportTemplate: &109ImportTemplate !!js/function > - () => 'use mongodb::bson::Regex;' - 110ImportTemplate: &110ImportTemplate !!js/function > - () => 'use mongodb::bson::Timestamp;' - 111ImportTemplate: &111ImportTemplate null - 112ImportTemplate: &112ImportTemplate null - 113ImportTemplate: &113ImportTemplate !!js/function > - () => 'use mongodb::bson::JavaScriptCodeWithScope;' - 114ImportTemplate: &114ImportTemplate !!js/function > - () => 'use mongodb::bson::spec::BinarySubtype;' - 200ImportTemplate: &200ImportTemplate !!js/function > - () => 'use mongodb::bson::DateTime;' - 201ImportTemplate: &201ImportTemplate null - 300ImportTemplate: &300ImportTemplate null - 301ImportTemplate: &301ImportTemplate null - 302ImportTemplate: &302ImportTemplate null - 303ImportTemplate: &303ImportTemplate null - 304ImportTemplate: &304ImportTemplate null - 305ImportTemplate: &305ImportTemplate null - 306ImportTemplate: &306ImportTemplate null + ############################################# + # Imports # + # # + # Each type has a 'code' that is consistent # + # between languages. The import templates # + # for each code generate the required # + # statement for each type. No args. # + # # + # The ImportTemplate collects everything # + # into one statement. # + # # + ############################################# + ImportTemplate: !!js/function &ImportTemplate > + (args) => { + let merged = new Set(Object.values(args)); + return [...merged].sort().join('\n'); + } + DriverImportTemplate: !!js/function &DriverImportTemplate > + () => 'use mongodb::Client;' + 0ImportTemplate: &0ImportTemplate null + 1ImportTemplate: &1ImportTemplate null + 2ImportTemplate: &2ImportTemplate null + 3ImportTemplate: &3ImportTemplate null + 4ImportTemplate: &4ImportTemplate null + 5ImportTemplate: &5ImportTemplate null + 6ImportTemplate: &6ImportTemplate null + 7ImportTemplate: &7ImportTemplate null + 8ImportTemplate: !!js/function &8ImportTemplate > + () => 'use mongodb::bson::Regex;' + 9ImportTemplate: &9ImportTemplate null + 10ImportTemplate: !!js/function &10ImportTemplate > + () => 'use mongodb::bson::doc;' + # Null + 11ImportTemplate: !!js/function &11ImportTemplate > + () => 'use mongodb::bson::Bson;' + # Undefined + 12ImportTemplate: !!js/function &12ImportTemplate > + () => 'use mongodb::bson::Bson;' + # Code + 100ImportTemplate: !!js/function &100ImportTemplate > + () => 'use mongodb::bson::Bson;' + 101ImportTemplate: !!js/function &101ImportTemplate > + () => 'use mongodb::bson::oid::ObjectId;' + 102ImportTemplate: !!js/function &102ImportTemplate > + () => 'use mongodb::bson::Binary;' + 103ImportTemplate: &103ImportTemplate null + 104ImportTemplate: &104ImportTemplate null + 105ImportTemplate: &105ImportTemplate null + 106ImportTemplate: &106ImportTemplate null + # MinKey + 107ImportTemplate: !!js/function &107ImportTemplate > + () => 'use mongodb::bson::Bson;' + # MaxKey + 108ImportTemplate: !!js/function &108ImportTemplate > + () => 'use mongodb::bson::Bson;' + 109ImportTemplate: !!js/function &109ImportTemplate > + () => 'use mongodb::bson::Regex;' + 110ImportTemplate: !!js/function &110ImportTemplate > + () => 'use mongodb::bson::Timestamp;' + 111ImportTemplate: &111ImportTemplate null + 112ImportTemplate: &112ImportTemplate null + 113ImportTemplate: !!js/function &113ImportTemplate > + () => 'use mongodb::bson::JavaScriptCodeWithScope;' + 114ImportTemplate: !!js/function &114ImportTemplate > + () => 'use mongodb::bson::spec::BinarySubtype;' + 200ImportTemplate: !!js/function &200ImportTemplate > + () => 'use mongodb::bson::DateTime;' + 201ImportTemplate: &201ImportTemplate null + 300ImportTemplate: &300ImportTemplate null + 301ImportTemplate: &301ImportTemplate null + 302ImportTemplate: &302ImportTemplate null + 303ImportTemplate: &303ImportTemplate null + 304ImportTemplate: &304ImportTemplate null + 305ImportTemplate: &305ImportTemplate null + 306ImportTemplate: &306ImportTemplate null diff --git a/packages/bson-transpilers/symbols/sample_template.yaml b/packages/bson-transpilers/symbols/sample_template.yaml index e5cfa1ca2ce..45d3d0d3eea 100644 --- a/packages/bson-transpilers/symbols/sample_template.yaml +++ b/packages/bson-transpilers/symbols/sample_template.yaml @@ -18,358 +18,358 @@ # # ############################################# Templates: - ######## - # Misc # - ######## + ######## + # Misc # + ######## - # Filter out regex flags that have translations or are unsupported. - RegexFlags: &RegexFlags - i: 'i' - m: 'm' - u: 'u' - y: 'y' - g: 'g' - BSONRegexFlags: &BSONRegexFlags - i: 'i' - m: 'm' - x: 'x' - s: 's' - l: 'l' - u: 'u' + # Filter out regex flags that have translations or are unsupported. + RegexFlags: &RegexFlags + i: 'i' + m: 'm' + u: 'u' + y: 'y' + g: 'g' + BSONRegexFlags: &BSONRegexFlags + i: 'i' + m: 'm' + x: 'x' + s: 's' + l: 'l' + u: 'u' - ############################################# - # Syntax # - # # - # Templates for language syntax expressions # - # # - ############################################# + ############################################# + # Syntax # + # # + # Templates for language syntax expressions # + # # + ############################################# - DriverTemplate: &DriverTemplate null - EqualitySyntaxTemplate: &EqualitySyntaxTemplate null # Args: lhs, operation, rhs - InSyntaxTemplate: &InSyntaxTemplate null # Args: lhs, operation, rhs - AndSyntaxTemplate: &AndSyntaxTemplate null # Args: items to compare as an array - OrSyntaxTemplate: &OrSyntaxTemplate null # Args: items to compare as an array - NotSyntaxTemplate: &NotSyntaxTemplate null # Args: item to negate - UnarySyntaxTemplate: &UnarySyntaxTemplate null - BinarySyntaxTemplate: &BinarySyntaxTemplate null - ParensSyntaxTemplate: &ParensSyntaxTemplate null - EosTemplate: &EosSyntaxTemplate null # No args. End-of-line - EofTemplate: &EofSyntaxTemplate null # No args. End-of-file - FloorDivTemplate: &FloorDivSyntaxTemplate null # Args: lhs, rhs - PowerTemplate: &PowerSyntaxTemplate null # Args: lhs, rhs - NewTemplate: &NewSyntaxTemplate null # Args: expression, skip?, code# [to check if meant to be skipped] + DriverTemplate: &DriverTemplate null + EqualitySyntaxTemplate: &EqualitySyntaxTemplate null # Args: lhs, operation, rhs + InSyntaxTemplate: &InSyntaxTemplate null # Args: lhs, operation, rhs + AndSyntaxTemplate: &AndSyntaxTemplate null # Args: items to compare as an array + OrSyntaxTemplate: &OrSyntaxTemplate null # Args: items to compare as an array + NotSyntaxTemplate: &NotSyntaxTemplate null # Args: item to negate + UnarySyntaxTemplate: &UnarySyntaxTemplate null + BinarySyntaxTemplate: &BinarySyntaxTemplate null + ParensSyntaxTemplate: &ParensSyntaxTemplate null + EosTemplate: &EosSyntaxTemplate null # No args. End-of-line + EofTemplate: &EofSyntaxTemplate null # No args. End-of-file + FloorDivTemplate: &FloorDivSyntaxTemplate null # Args: lhs, rhs + PowerTemplate: &PowerSyntaxTemplate null # Args: lhs, rhs + NewTemplate: &NewSyntaxTemplate null # Args: expression, skip?, code# [to check if meant to be skipped] - ############################################# - # Literal Types # - # # - # Templates for literal type instance. Most # - # get passed the literal itself as an arg. # - # # - ############################################# - StringTypeTemplate: &StringTypeTemplate null # Args: literal (can be w/w/out quotes and unescaped interior quotes.) - RegexTypeTemplate: &RegexTypeTemplate null # Args: pattern, flag - BoolTypeTemplate: &BoolTypeTemplate null # Args: literal - IntegerTypeTemplate: &IntegerTypeTemplate null # args: literal, argType (i.e. '_string', '_decimal' etc) - DecimalTypeTemplate: &DecimalTypeTemplate null # args: literal, argType - LongBasicTypeTemplate: &LongBasicTypeTemplate null # args: literal, argType - HexTypeTemplate: &HexTypeTemplate null # args: literal, argType - OctalTypeTemplate: &OctalTypeTemplate null # args: literal, argType - NumericTypeTemplate: &NumericTypeTemplate null # args: literal, argType - ArrayTypeTemplate: &ArrayTypeTemplate null # Args: the interior of the array (i.e. '1, 2'), nestedness# - ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate null # Args: single array element, nestedness, lastElement? (note: not being used atm) - NullTypeTemplate: &NullTypeTemplate null # No args - UndefinedTypeTemplate: &UndefinedTypeTemplate null # No args: - ObjectTypeTemplate: &ObjectTypeTemplate null # Args: literal (for empty array, is empty string. Otherwise all set) - ObjectTypeArgsTemplate: &ObjectTypeArgsTemplate null # Args: single object element [2] (i.e. array with [key, value]), nestedness# + ############################################# + # Literal Types # + # # + # Templates for literal type instance. Most # + # get passed the literal itself as an arg. # + # # + ############################################# + StringTypeTemplate: &StringTypeTemplate null # Args: literal (can be w/w/out quotes and unescaped interior quotes.) + RegexTypeTemplate: &RegexTypeTemplate null # Args: pattern, flag + BoolTypeTemplate: &BoolTypeTemplate null # Args: literal + IntegerTypeTemplate: &IntegerTypeTemplate null # args: literal, argType (i.e. '_string', '_decimal' etc) + DecimalTypeTemplate: &DecimalTypeTemplate null # args: literal, argType + LongBasicTypeTemplate: &LongBasicTypeTemplate null # args: literal, argType + HexTypeTemplate: &HexTypeTemplate null # args: literal, argType + OctalTypeTemplate: &OctalTypeTemplate null # args: literal, argType + NumericTypeTemplate: &NumericTypeTemplate null # args: literal, argType + ArrayTypeTemplate: &ArrayTypeTemplate null # Args: the interior of the array (i.e. '1, 2'), nestedness# + ArrayTypeArgsTemplate: &ArrayTypeArgsTemplate null # Args: single array element, nestedness, lastElement? (note: not being used atm) + NullTypeTemplate: &NullTypeTemplate null # No args + UndefinedTypeTemplate: &UndefinedTypeTemplate null # No args: + ObjectTypeTemplate: &ObjectTypeTemplate null # Args: literal (for empty array, is empty string. Otherwise all set) + ObjectTypeArgsTemplate: &ObjectTypeArgsTemplate null # Args: single object element [2] (i.e. array with [key, value]), nestedness# - ############################################# - # Symbols # - # # - # Templates for symbols, can be either # - # functions or variables. # - # # - # The *SymbolTemplates return names and # - # usually don't take any arguments. The # - # *SymbolArgsTemplates are invoked for func # - # calls. The first argument is always the # - # lhs, i.e. the symbol returned from the # - # corresponding SymbolTemplate. The rest of # - # the arguments are the processed arguments # - # passed to the original function. # - # # - ############################################# - CodeSymbolTemplate: &CodeSymbolTemplate null # No args - CodeSymbolArgsTemplate: &CodeSymbolArgsTemplate null # Args: code, scope - ObjectIdSymbolTemplate: &ObjectIdSymbolTemplate null # No args - ObjectIdSymbolArgsTemplate: &ObjectIdSymbolArgsTemplate null # Args: lhs, string (can be empty or null for no arg) - BinarySymbolTemplate: &BinarySymbolTemplate null - BinarySymbolArgsTemplate: &BinarySymbolArgsTemplate null - BinarySymbolSubtypeDefaultTemplate: &BinarySymbolSubtypeDefaultTemplate null - BinarySymbolSubtypeFunctionTemplate: &BinarySymbolSubtypeFunctionTemplate null - BinarySymbolSubtypeByteArrayTemplate: &BinarySymbolSubtypeByteArrayTemplate null - BinarySymbolSubtypeUuidOldTemplate: &BinarySymbolSubtypeUuidOldTemplate null - BinarySymbolSubtypeUuidTemplate: &BinarySymbolSubtypeUuidTemplate null - BinarySymbolSubtypeMd5Template: &BinarySymbolSubtypeMd5Template null - BinarySymbolSubtypeUserDefinedTemplate: &BinarySymbolSubtypeUserDefinedTemplate null - DBRefSymbolTemplate: &DBRefSymbolTemplate null # No args - DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate null # Args: lhs, coll, id, db - DoubleSymbolTemplate: &DoubleSymbolTemplate null # No args - DoubleSymbolArgsTemplate: &DoubleSymbolArgsTemplate null # Args: lhs, arg, argType (i.e. '_string', '_double') - Int32SymbolTemplate: &Int32SymbolTemplate null # No args - Int32SymbolArgsTemplate: &Int32SymbolArgsTemplate null # Args: lhs, arg, argType - LongSymbolTemplate: &LongSymbolTemplate null # No args - LongSymbolArgsTemplate: &LongSymbolArgsTemplate null # Args: lhs, arg, argType - RegExpSymbolTemplate: &RegExpSymbolTemplate null # No args - RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null # Args: lhs, pattern, flags - SymbolSymbolTemplate: &SymbolSymbolTemplate null # No args - SymbolSymbolArgsTemplate: &SymbolSymbolArgsTemplate null # Args: lhs, arg - BSONRegExpSymbolTemplate: &BSONRegExpSymbolTemplate null # No args - BSONRegExpSymbolArgsTemplate: &BSONRegExpSymbolArgsTemplate null # Args: lhs, pattern, flags - Decimal128SymbolTemplate: &Decimal128SymbolTemplate null # No args - Decimal128SymbolArgsTemplate: &Decimal128SymbolArgsTemplate null # Args: lhs, arg - MinKeySymbolTemplate: &MinKeySymbolTemplate null # No args - MinKeySymbolArgsTemplate: &MinKeySymbolArgsTemplate null # No args - MaxKeySymbolTemplate: &MaxKeySymbolTemplate null # No args - MaxKeySymbolArgsTemplate: &MaxKeySymbolArgsTemplate null # No args - TimestampSymbolTemplate: &TimestampSymbolTemplate null # No args - TimestampSymbolArgsTemplate: &TimestampSymbolArgsTemplate null # Args: lhs, low, high - # non bson-specific - NumberSymbolTemplate: &NumberSymbolTemplate null # No args - NumberSymbolArgsTemplate: &NumberSymbolArgsTemplate null # Args: lhs, arg, argType - DateSymbolTemplate: &DateSymbolTemplate null # No args - DateSymbolArgsTemplate: &DateSymbolArgsTemplate null # Args: lhs, date (Date object), isString? (if the result needs to be a date string instead of a date instance) + ############################################# + # Symbols # + # # + # Templates for symbols, can be either # + # functions or variables. # + # # + # The *SymbolTemplates return names and # + # usually don't take any arguments. The # + # *SymbolArgsTemplates are invoked for func # + # calls. The first argument is always the # + # lhs, i.e. the symbol returned from the # + # corresponding SymbolTemplate. The rest of # + # the arguments are the processed arguments # + # passed to the original function. # + # # + ############################################# + CodeSymbolTemplate: &CodeSymbolTemplate null # No args + CodeSymbolArgsTemplate: &CodeSymbolArgsTemplate null # Args: code, scope + ObjectIdSymbolTemplate: &ObjectIdSymbolTemplate null # No args + ObjectIdSymbolArgsTemplate: &ObjectIdSymbolArgsTemplate null # Args: lhs, string (can be empty or null for no arg) + BinarySymbolTemplate: &BinarySymbolTemplate null + BinarySymbolArgsTemplate: &BinarySymbolArgsTemplate null + BinarySymbolSubtypeDefaultTemplate: &BinarySymbolSubtypeDefaultTemplate null + BinarySymbolSubtypeFunctionTemplate: &BinarySymbolSubtypeFunctionTemplate null + BinarySymbolSubtypeByteArrayTemplate: &BinarySymbolSubtypeByteArrayTemplate null + BinarySymbolSubtypeUuidOldTemplate: &BinarySymbolSubtypeUuidOldTemplate null + BinarySymbolSubtypeUuidTemplate: &BinarySymbolSubtypeUuidTemplate null + BinarySymbolSubtypeMd5Template: &BinarySymbolSubtypeMd5Template null + BinarySymbolSubtypeUserDefinedTemplate: &BinarySymbolSubtypeUserDefinedTemplate null + DBRefSymbolTemplate: &DBRefSymbolTemplate null # No args + DBRefSymbolArgsTemplate: &DBRefSymbolArgsTemplate null # Args: lhs, coll, id, db + DoubleSymbolTemplate: &DoubleSymbolTemplate null # No args + DoubleSymbolArgsTemplate: &DoubleSymbolArgsTemplate null # Args: lhs, arg, argType (i.e. '_string', '_double') + Int32SymbolTemplate: &Int32SymbolTemplate null # No args + Int32SymbolArgsTemplate: &Int32SymbolArgsTemplate null # Args: lhs, arg, argType + LongSymbolTemplate: &LongSymbolTemplate null # No args + LongSymbolArgsTemplate: &LongSymbolArgsTemplate null # Args: lhs, arg, argType + RegExpSymbolTemplate: &RegExpSymbolTemplate null # No args + RegExpSymbolArgsTemplate: &RegExpSymbolArgsTemplate null # Args: lhs, pattern, flags + SymbolSymbolTemplate: &SymbolSymbolTemplate null # No args + SymbolSymbolArgsTemplate: &SymbolSymbolArgsTemplate null # Args: lhs, arg + BSONRegExpSymbolTemplate: &BSONRegExpSymbolTemplate null # No args + BSONRegExpSymbolArgsTemplate: &BSONRegExpSymbolArgsTemplate null # Args: lhs, pattern, flags + Decimal128SymbolTemplate: &Decimal128SymbolTemplate null # No args + Decimal128SymbolArgsTemplate: &Decimal128SymbolArgsTemplate null # Args: lhs, arg + MinKeySymbolTemplate: &MinKeySymbolTemplate null # No args + MinKeySymbolArgsTemplate: &MinKeySymbolArgsTemplate null # No args + MaxKeySymbolTemplate: &MaxKeySymbolTemplate null # No args + MaxKeySymbolArgsTemplate: &MaxKeySymbolArgsTemplate null # No args + TimestampSymbolTemplate: &TimestampSymbolTemplate null # No args + TimestampSymbolArgsTemplate: &TimestampSymbolArgsTemplate null # Args: lhs, low, high + # non bson-specific + NumberSymbolTemplate: &NumberSymbolTemplate null # No args + NumberSymbolArgsTemplate: &NumberSymbolArgsTemplate null # Args: lhs, arg, argType + DateSymbolTemplate: &DateSymbolTemplate null # No args + DateSymbolArgsTemplate: &DateSymbolArgsTemplate null # Args: lhs, date (Date object), isString? (if the result needs to be a date string instead of a date instance) - ############################################# - # Object Attributes/Methods # - # # - # These're variables or functions called on # - # instantiated objects. For example, # - # ObjectId().isValid() or Timestamp().t # - # # - # They follow the same pattern with the - # *Template/*ArgsTemplates: usually no args # - # to the Template and lhs plus any original # - # arguments to the ArgsTemplate. # - # # - ############################################# - CodeCodeTemplate: &CodeCodeTemplate null - CodeCodeArgsTemplate: &CodeCodeArgsTemplate null - CodeScopeTemplate: &CodeScopeTemplate null - CodeScopeArgsTemplate: &CodeScopeArgsTemplate null - ObjectIdToStringTemplate: &ObjectIdToStringTemplate null - ObjectIdToStringArgsTemplate: &ObjectIdToStringArgsTemplate null - ObjectIdEqualsTemplate: &ObjectIdEqualsTemplate null - ObjectIdEqualsArgsTemplate: &ObjectIdEqualsArgsTemplate null - ObjectIdGetTimestampTemplate: &ObjectIdGetTimestampTemplate null - ObjectIdGetTimestampArgsTemplate: &ObjectIdGetTimestampArgsTemplate null - ObjectIdIsValidTemplate: &ObjectIdIsValidTemplate null - ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate null - BinaryValueTemplate: &BinaryValueTemplate null - BinaryValueArgsTemplate: &BinaryValueArgsTemplate null - BinaryLengthTemplate: &BinaryLengthTemplate null - BinaryLengthArgsTemplate: &BinaryLengthArgsTemplate null - BinaryToStringTemplate: &BinaryToStringTemplate null - BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate null - BinarySubtypeTemplate: &BinarySubtypeTemplate null - BinarySubtypeArgsTemplate: &BinarySubtypeArgsTemplate null - DBRefGetDBTemplate: &DBRefGetDBTemplate null - DBRefGetCollectionTemplate: &DBRefGetCollectionTemplate null - DBRefGetIdTemplate: &DBRefGetIdTemplate null - DBRefGetDBArgsTemplate: &DBRefGetDBArgsTemplate null - DBRefGetCollectionArgsTemplate: &DBRefGetCollectionArgsTemplate null - DBRefGetIdArgsTemplate: &DBRefGetIdArgsTemplate null - DBRefToStringTemplate: &DBRefToStringTemplate null - DBRefToStringArgsTemplate: &DBRefToStringArgsTemplate null - DoubleValueOfTemplate: &DoubleValueOfTemplate null - DoubleValueOfArgsTemplate: &DoubleValueOfArgsTemplate null - Int32ValueOfTemplate: &Int32ValueOfTemplate null - Int32ValueOfArgsTemplate: &Int32ValueOfArgsTemplate null - Int32ToStringTemplate: &Int32ToStringTemplate null - Int32ToStringArgsTemplate: &Int32ToStringArgsTemplate null - LongEqualsTemplate: &LongEqualsTemplate null - LongEqualsArgsTemplate: &LongEqualsArgsTemplate null - LongToStringTemplate: &LongToStringTemplate null - LongToStringArgsTemplate: &LongToStringArgsTemplate null - LongToIntTemplate: &LongToIntTemplate null - LongToIntArgsTemplate: &LongToIntArgsTemplate null - LongValueOfTemplate: &LongValueOfTemplate null - LongValueOfArgsTemplate: &LongValueOfArgsTemplate null - LongToNumberTemplate: &LongToNumberTemplate null - LongToNumberArgsTemplate: &LongToNumberArgsTemplate null - LongAddTemplate: &LongAddTemplate null - LongAddArgsTemplate: &LongAddArgsTemplate null - LongSubtractTemplate: &LongSubtractTemplate null - LongSubtractArgsTemplate: &LongSubtractArgsTemplate null - LongMultiplyTemplate: &LongMultiplyTemplate null - LongMultiplyArgsTemplate: &LongMultiplyArgsTemplate null - LongDivTemplate: &LongDivTemplate null - LongDivArgsTemplate: &LongDivArgsTemplate null - LongModuloTemplate: &LongModuloTemplate null - LongModuloArgsTemplate: &LongModuloArgsTemplate null - LongAndTemplate: &LongAndTemplate null - LongAndArgsTemplate: &LongAndArgsTemplate null - LongOrTemplate: &LongOrTemplate null - LongOrArgsTemplate: &LongOrArgsTemplate null - LongXorTemplate: &LongXorTemplate null - LongXorArgsTemplate: &LongXorArgsTemplate null - LongShiftLeftTemplate: &LongShiftLeftTemplate null - LongShiftLeftArgsTemplate: &LongShiftLeftArgsTemplate null - LongShiftRightTemplate: &LongShiftRightTemplate null - LongShiftRightArgsTemplate: &LongShiftRightArgsTemplate null - LongCompareTemplate: &LongCompareTemplate null - LongCompareArgsTemplate: &LongCompareArgsTemplate null - LongIsOddTemplate: &LongIsOddTemplate null - LongIsOddArgsTemplate: &LongIsOddArgsTemplate null - LongIsZeroTemplate: &LongIsZeroTemplate null - LongIsZeroArgsTemplate: &LongIsZeroArgsTemplate null - LongIsNegativeTemplate: &LongIsNegativeTemplate null - LongIsNegativeArgsTemplate: &LongIsNegativeArgsTemplate null - LongNegateTemplate: &LongNegateTemplate null - LongNegateArgsTemplate: &LongNegateArgsTemplate null - LongNotTemplate: &LongNotTemplate null - LongNotArgsTemplate: &LongNotArgsTemplate null - LongNotEqualsTemplate: &LongNotEqualsTemplate null - LongNotEqualsArgsTemplate: &LongNotEqualsArgsTemplate null - LongGreaterThanTemplate: &LongGreaterThanTemplate null - LongGreaterThanArgsTemplate: &LongGreaterThanArgsTemplate null - LongGreaterThanOrEqualTemplate: &LongGreaterThanOrEqualTemplate null - LongGreaterThanOrEqualArgsTemplate: &LongGreaterThanOrEqualArgsTemplate null - LongLessThanTemplate: &LongLessThanTemplate null - LongLessThanArgsTemplate: &LongLessThanArgsTemplate null - LongLessThanOrEqualTemplate: &LongLessThanOrEqualTemplate null - LongLessThanOrEqualArgsTemplate: &LongLessThanOrEqualArgsTemplate null - LongFloatApproxTemplate: &LongFloatApproxTemplate null - LongTopTemplate: &LongTopTemplate null - LongBottomTemplate: &LongBottomTemplate null - TimestampToStringTemplate: &TimestampToStringTemplate null - TimestampToStringArgsTemplate: &TimestampToStringArgsTemplate null - TimestampEqualsTemplate: &TimestampEqualsTemplate null - TimestampEqualsArgsTemplate: &TimestampEqualsArgsTemplate null - TimestampGetLowBitsTemplate: &TimestampGetLowBitsTemplate null - TimestampGetLowBitsArgsTemplate: &TimestampGetLowBitsArgsTemplate null - TimestampGetHighBitsTemplate: &TimestampGetHighBitsTemplate null - TimestampGetHighBitsArgsTemplate: &TimestampGetHighBitsArgsTemplate null - TimestampTTemplate: &TimestampTTemplate null - TimestampITemplate: &TimestampITemplate null - TimestampAsDateTemplate: &TimestampAsDateTemplate null - TimestampAsDateArgsTemplate: &TimestampAsDateArgsTemplate null - TimestampCompareTemplate: &TimestampCompareTemplate null - TimestampCompareArgsTemplate: &TimestampCompareArgsTemplate null - TimestampNotEqualsTemplate: &TimestampNotEqualsTemplate null - TimestampNotEqualsArgsTemplate: &TimestampNotEqualsArgsTemplate null - TimestampGreaterThanTemplate: &TimestampGreaterThanTemplate null - TimestampGreaterThanArgsTemplate: &TimestampGreaterThanArgsTemplate null - TimestampGreaterThanOrEqualTemplate: &TimestampGreaterThanOrEqualTemplate null - TimestampGreaterThanOrEqualArgsTemplate: &TimestampGreaterThanOrEqualArgsTemplate null - TimestampLessThanTemplate: &TimestampLessThanTemplate null - TimestampLessThanArgsTemplate: &TimestampLessThanArgsTemplate null - TimestampLessThanOrEqualTemplate: &TimestampLessThanOrEqualTemplate null - TimestampLessThanOrEqualArgsTemplate: &TimestampLessThanOrEqualArgsTemplate null - SymbolValueOfTemplate: &SymbolValueOfTemplate null - SymbolValueOfArgsTemplate: &SymbolValueOfArgsTemplate null - SymbolInspectTemplate: &SymbolInspectTemplate null - SymbolInspectArgsTemplate: &SymbolInspectArgsTemplate null - SymbolToStringTemplate: &SymbolToStringTemplate null - SymbolToStringArgsTemplate: &SymbolToStringArgsTemplate null - Decimal128ToStringTemplate: &Decimal128ToStringTemplate null - Decimal128ToStringArgsTemplate: &Decimal128ToStringArgsTemplate null - # non bson-specific - DateSymbolNowTemplate: &DateSymbolNowTemplate null - DateSymbolNowArgsTemplate: &DateSymbolNowArgsTemplate null + ############################################# + # Object Attributes/Methods # + # # + # These're variables or functions called on # + # instantiated objects. For example, # + # ObjectId().isValid() or Timestamp().t # + # # + # They follow the same pattern with the + # *Template/*ArgsTemplates: usually no args # + # to the Template and lhs plus any original # + # arguments to the ArgsTemplate. # + # # + ############################################# + CodeCodeTemplate: &CodeCodeTemplate null + CodeCodeArgsTemplate: &CodeCodeArgsTemplate null + CodeScopeTemplate: &CodeScopeTemplate null + CodeScopeArgsTemplate: &CodeScopeArgsTemplate null + ObjectIdToStringTemplate: &ObjectIdToStringTemplate null + ObjectIdToStringArgsTemplate: &ObjectIdToStringArgsTemplate null + ObjectIdEqualsTemplate: &ObjectIdEqualsTemplate null + ObjectIdEqualsArgsTemplate: &ObjectIdEqualsArgsTemplate null + ObjectIdGetTimestampTemplate: &ObjectIdGetTimestampTemplate null + ObjectIdGetTimestampArgsTemplate: &ObjectIdGetTimestampArgsTemplate null + ObjectIdIsValidTemplate: &ObjectIdIsValidTemplate null + ObjectIdIsValidArgsTemplate: &ObjectIdIsValidArgsTemplate null + BinaryValueTemplate: &BinaryValueTemplate null + BinaryValueArgsTemplate: &BinaryValueArgsTemplate null + BinaryLengthTemplate: &BinaryLengthTemplate null + BinaryLengthArgsTemplate: &BinaryLengthArgsTemplate null + BinaryToStringTemplate: &BinaryToStringTemplate null + BinaryToStringArgsTemplate: &BinaryToStringArgsTemplate null + BinarySubtypeTemplate: &BinarySubtypeTemplate null + BinarySubtypeArgsTemplate: &BinarySubtypeArgsTemplate null + DBRefGetDBTemplate: &DBRefGetDBTemplate null + DBRefGetCollectionTemplate: &DBRefGetCollectionTemplate null + DBRefGetIdTemplate: &DBRefGetIdTemplate null + DBRefGetDBArgsTemplate: &DBRefGetDBArgsTemplate null + DBRefGetCollectionArgsTemplate: &DBRefGetCollectionArgsTemplate null + DBRefGetIdArgsTemplate: &DBRefGetIdArgsTemplate null + DBRefToStringTemplate: &DBRefToStringTemplate null + DBRefToStringArgsTemplate: &DBRefToStringArgsTemplate null + DoubleValueOfTemplate: &DoubleValueOfTemplate null + DoubleValueOfArgsTemplate: &DoubleValueOfArgsTemplate null + Int32ValueOfTemplate: &Int32ValueOfTemplate null + Int32ValueOfArgsTemplate: &Int32ValueOfArgsTemplate null + Int32ToStringTemplate: &Int32ToStringTemplate null + Int32ToStringArgsTemplate: &Int32ToStringArgsTemplate null + LongEqualsTemplate: &LongEqualsTemplate null + LongEqualsArgsTemplate: &LongEqualsArgsTemplate null + LongToStringTemplate: &LongToStringTemplate null + LongToStringArgsTemplate: &LongToStringArgsTemplate null + LongToIntTemplate: &LongToIntTemplate null + LongToIntArgsTemplate: &LongToIntArgsTemplate null + LongValueOfTemplate: &LongValueOfTemplate null + LongValueOfArgsTemplate: &LongValueOfArgsTemplate null + LongToNumberTemplate: &LongToNumberTemplate null + LongToNumberArgsTemplate: &LongToNumberArgsTemplate null + LongAddTemplate: &LongAddTemplate null + LongAddArgsTemplate: &LongAddArgsTemplate null + LongSubtractTemplate: &LongSubtractTemplate null + LongSubtractArgsTemplate: &LongSubtractArgsTemplate null + LongMultiplyTemplate: &LongMultiplyTemplate null + LongMultiplyArgsTemplate: &LongMultiplyArgsTemplate null + LongDivTemplate: &LongDivTemplate null + LongDivArgsTemplate: &LongDivArgsTemplate null + LongModuloTemplate: &LongModuloTemplate null + LongModuloArgsTemplate: &LongModuloArgsTemplate null + LongAndTemplate: &LongAndTemplate null + LongAndArgsTemplate: &LongAndArgsTemplate null + LongOrTemplate: &LongOrTemplate null + LongOrArgsTemplate: &LongOrArgsTemplate null + LongXorTemplate: &LongXorTemplate null + LongXorArgsTemplate: &LongXorArgsTemplate null + LongShiftLeftTemplate: &LongShiftLeftTemplate null + LongShiftLeftArgsTemplate: &LongShiftLeftArgsTemplate null + LongShiftRightTemplate: &LongShiftRightTemplate null + LongShiftRightArgsTemplate: &LongShiftRightArgsTemplate null + LongCompareTemplate: &LongCompareTemplate null + LongCompareArgsTemplate: &LongCompareArgsTemplate null + LongIsOddTemplate: &LongIsOddTemplate null + LongIsOddArgsTemplate: &LongIsOddArgsTemplate null + LongIsZeroTemplate: &LongIsZeroTemplate null + LongIsZeroArgsTemplate: &LongIsZeroArgsTemplate null + LongIsNegativeTemplate: &LongIsNegativeTemplate null + LongIsNegativeArgsTemplate: &LongIsNegativeArgsTemplate null + LongNegateTemplate: &LongNegateTemplate null + LongNegateArgsTemplate: &LongNegateArgsTemplate null + LongNotTemplate: &LongNotTemplate null + LongNotArgsTemplate: &LongNotArgsTemplate null + LongNotEqualsTemplate: &LongNotEqualsTemplate null + LongNotEqualsArgsTemplate: &LongNotEqualsArgsTemplate null + LongGreaterThanTemplate: &LongGreaterThanTemplate null + LongGreaterThanArgsTemplate: &LongGreaterThanArgsTemplate null + LongGreaterThanOrEqualTemplate: &LongGreaterThanOrEqualTemplate null + LongGreaterThanOrEqualArgsTemplate: &LongGreaterThanOrEqualArgsTemplate null + LongLessThanTemplate: &LongLessThanTemplate null + LongLessThanArgsTemplate: &LongLessThanArgsTemplate null + LongLessThanOrEqualTemplate: &LongLessThanOrEqualTemplate null + LongLessThanOrEqualArgsTemplate: &LongLessThanOrEqualArgsTemplate null + LongFloatApproxTemplate: &LongFloatApproxTemplate null + LongTopTemplate: &LongTopTemplate null + LongBottomTemplate: &LongBottomTemplate null + TimestampToStringTemplate: &TimestampToStringTemplate null + TimestampToStringArgsTemplate: &TimestampToStringArgsTemplate null + TimestampEqualsTemplate: &TimestampEqualsTemplate null + TimestampEqualsArgsTemplate: &TimestampEqualsArgsTemplate null + TimestampGetLowBitsTemplate: &TimestampGetLowBitsTemplate null + TimestampGetLowBitsArgsTemplate: &TimestampGetLowBitsArgsTemplate null + TimestampGetHighBitsTemplate: &TimestampGetHighBitsTemplate null + TimestampGetHighBitsArgsTemplate: &TimestampGetHighBitsArgsTemplate null + TimestampTTemplate: &TimestampTTemplate null + TimestampITemplate: &TimestampITemplate null + TimestampAsDateTemplate: &TimestampAsDateTemplate null + TimestampAsDateArgsTemplate: &TimestampAsDateArgsTemplate null + TimestampCompareTemplate: &TimestampCompareTemplate null + TimestampCompareArgsTemplate: &TimestampCompareArgsTemplate null + TimestampNotEqualsTemplate: &TimestampNotEqualsTemplate null + TimestampNotEqualsArgsTemplate: &TimestampNotEqualsArgsTemplate null + TimestampGreaterThanTemplate: &TimestampGreaterThanTemplate null + TimestampGreaterThanArgsTemplate: &TimestampGreaterThanArgsTemplate null + TimestampGreaterThanOrEqualTemplate: &TimestampGreaterThanOrEqualTemplate null + TimestampGreaterThanOrEqualArgsTemplate: &TimestampGreaterThanOrEqualArgsTemplate null + TimestampLessThanTemplate: &TimestampLessThanTemplate null + TimestampLessThanArgsTemplate: &TimestampLessThanArgsTemplate null + TimestampLessThanOrEqualTemplate: &TimestampLessThanOrEqualTemplate null + TimestampLessThanOrEqualArgsTemplate: &TimestampLessThanOrEqualArgsTemplate null + SymbolValueOfTemplate: &SymbolValueOfTemplate null + SymbolValueOfArgsTemplate: &SymbolValueOfArgsTemplate null + SymbolInspectTemplate: &SymbolInspectTemplate null + SymbolInspectArgsTemplate: &SymbolInspectArgsTemplate null + SymbolToStringTemplate: &SymbolToStringTemplate null + SymbolToStringArgsTemplate: &SymbolToStringArgsTemplate null + Decimal128ToStringTemplate: &Decimal128ToStringTemplate null + Decimal128ToStringArgsTemplate: &Decimal128ToStringArgsTemplate null + # non bson-specific + DateSymbolNowTemplate: &DateSymbolNowTemplate null + DateSymbolNowArgsTemplate: &DateSymbolNowArgsTemplate null - ############################################# - # Symbol Attributes/Methods # - # # - # These're variables or functions called on # - # symbols. Also called bson-utils. # - # # - # They are basically the same thing as # - # object attributes/methods, but need to be # - # distinguished since they are separate # - # namespaces that happen to have the same # - # name which is v confusing. # - # # - # For example, ObjectId().toString() is an # - # object method, while ObjectId.fromString # - # is a symbol attribute. These are two # - # separate ObjectId related namespaces that # - # don't overlap. # - # # - ############################################# - LongSymbolMaxTemplate: &LongSymbolMaxTemplate null - LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null - LongSymbolMinTemplate: &LongSymbolMinTemplate null - LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null - LongSymbolZeroTemplate: &LongSymbolZeroTemplate null - LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null - LongSymbolOneTemplate: &LongSymbolOneTemplate null - LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null - LongSymbolNegOneTemplate: &LongSymbolNegOneTemplate null - LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null - LongSymbolFromBitsTemplate: &LongSymbolFromBitsTemplate null - LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate null - LongSymbolFromIntTemplate: &LongSymbolFromIntTemplate null - LongSymbolFromIntArgsTemplate: &LongSymbolFromIntArgsTemplate null - LongSymbolFromNumberTemplate: &LongSymbolFromNumberTemplate null - LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate null - LongSymbolFromStringTemplate: &LongSymbolFromStringTemplate null - LongSymbolFromStringArgsTemplate: &LongSymbolFromStringArgsTemplate null - Decimal128SymbolFromStringTemplate: &Decimal128SymbolFromStringTemplate null - Decimal128SymbolFromStringArgsTemplate: &Decimal128SymbolFromStringArgsTemplate null - ObjectIdCreateFromHexStringTemplate: &ObjectIdCreateFromHexStringTemplate null - ObjectIdCreateFromHexStringArgsTemplate: &ObjectIdCreateFromHexStringArgsTemplate null - ObjectIdCreateFromTimeTemplate: &ObjectIdCreateFromTimeTemplate null - ObjectIdCreateFromTimeArgsTemplate: &ObjectIdCreateFromTimeArgsTemplate null - # non bson-specific would go here, but there aren't any atm. + ############################################# + # Symbol Attributes/Methods # + # # + # These're variables or functions called on # + # symbols. Also called bson-utils. # + # # + # They are basically the same thing as # + # object attributes/methods, but need to be # + # distinguished since they are separate # + # namespaces that happen to have the same # + # name which is v confusing. # + # # + # For example, ObjectId().toString() is an # + # object method, while ObjectId.fromString # + # is a symbol attribute. These are two # + # separate ObjectId related namespaces that # + # don't overlap. # + # # + ############################################# + LongSymbolMaxTemplate: &LongSymbolMaxTemplate null + LongSymbolMaxArgsTemplate: &LongSymbolMaxArgsTemplate null + LongSymbolMinTemplate: &LongSymbolMinTemplate null + LongSymbolMinArgsTemplate: &LongSymbolMinArgsTemplate null + LongSymbolZeroTemplate: &LongSymbolZeroTemplate null + LongSymbolZeroArgsTemplate: &LongSymbolZeroArgsTemplate null + LongSymbolOneTemplate: &LongSymbolOneTemplate null + LongSymbolOneArgsTemplate: &LongSymbolOneArgsTemplate null + LongSymbolNegOneTemplate: &LongSymbolNegOneTemplate null + LongSymbolNegOneArgsTemplate: &LongSymbolNegOneArgsTemplate null + LongSymbolFromBitsTemplate: &LongSymbolFromBitsTemplate null + LongSymbolFromBitsArgsTemplate: &LongSymbolFromBitsArgsTemplate null + LongSymbolFromIntTemplate: &LongSymbolFromIntTemplate null + LongSymbolFromIntArgsTemplate: &LongSymbolFromIntArgsTemplate null + LongSymbolFromNumberTemplate: &LongSymbolFromNumberTemplate null + LongSymbolFromNumberArgsTemplate: &LongSymbolFromNumberArgsTemplate null + LongSymbolFromStringTemplate: &LongSymbolFromStringTemplate null + LongSymbolFromStringArgsTemplate: &LongSymbolFromStringArgsTemplate null + Decimal128SymbolFromStringTemplate: &Decimal128SymbolFromStringTemplate null + Decimal128SymbolFromStringArgsTemplate: &Decimal128SymbolFromStringArgsTemplate null + ObjectIdCreateFromHexStringTemplate: &ObjectIdCreateFromHexStringTemplate null + ObjectIdCreateFromHexStringArgsTemplate: &ObjectIdCreateFromHexStringArgsTemplate null + ObjectIdCreateFromTimeTemplate: &ObjectIdCreateFromTimeTemplate null + ObjectIdCreateFromTimeArgsTemplate: &ObjectIdCreateFromTimeArgsTemplate null + # non bson-specific would go here, but there aren't any atm. - ############################################# - # Imports # - # # - # Each type has a 'code' that is consistent # - # between languages. The import templates # - # for each code generate the required # - # statement for each type. No args. # - # # - # The ImportTemplate collects everything # - # into one statement. # - # # - ############################################# - ImportTemplate: &ImportTemplate null - DriverImportTemplate: &DriverImportTemplate null - 0ImportTemplate: &0ImportTemplate null - 1ImportTemplate: &1ImportTemplate null - 2ImportTemplate: &2ImportTemplate null - 3ImportTemplate: &3ImportTemplate null - 4ImportTemplate: &4ImportTemplate null - 5ImportTemplate: &5ImportTemplate null - 6ImportTemplate: &6ImportTemplate null - 7ImportTemplate: &7ImportTemplate null - 8ImportTemplate: &8ImportTemplate null - 9ImportTemplate: &9ImportTemplate null - 10ImportTemplate: &10ImportTemplate null - 11ImportTemplate: &11ImportTemplate null - 12ImportTemplate: &12ImportTemplate null - 100ImportTemplate: &100ImportTemplate null - 101ImportTemplate: &101ImportTemplate null - 102ImportTemplate: &102ImportTemplate null - 103ImportTemplate: &103ImportTemplate null - 104ImportTemplate: &104ImportTemplate null - 105ImportTemplate: &105ImportTemplate null - 106ImportTemplate: &106ImportTemplate null - 107ImportTemplate: &107ImportTemplate null - 108ImportTemplate: &108ImportTemplate null - 109ImportTemplate: &109ImportTemplate null - 110ImportTemplate: &110ImportTemplate null - 111ImportTemplate: &111ImportTemplate null - 112ImportTemplate: &112ImportTemplate null - 113ImportTemplate: &113ImportTemplate null - 114ImportTemplate: &114ImportTemplate null - 200ImportTemplate: &200ImportTemplate null - 201ImportTemplate: &201ImportTemplate null - 300ImportTemplate: &300ImportTemplate null - 301ImportTemplate: &301ImportTemplate null - 302ImportTemplate: &302ImportTemplate null - 303ImportTemplate: &303ImportTemplate null - 304ImportTemplate: &304ImportTemplate null - 305ImportTemplate: &305ImportTemplate null - 306ImportTemplate: &306ImportTemplate null + ############################################# + # Imports # + # # + # Each type has a 'code' that is consistent # + # between languages. The import templates # + # for each code generate the required # + # statement for each type. No args. # + # # + # The ImportTemplate collects everything # + # into one statement. # + # # + ############################################# + ImportTemplate: &ImportTemplate null + DriverImportTemplate: &DriverImportTemplate null + 0ImportTemplate: &0ImportTemplate null + 1ImportTemplate: &1ImportTemplate null + 2ImportTemplate: &2ImportTemplate null + 3ImportTemplate: &3ImportTemplate null + 4ImportTemplate: &4ImportTemplate null + 5ImportTemplate: &5ImportTemplate null + 6ImportTemplate: &6ImportTemplate null + 7ImportTemplate: &7ImportTemplate null + 8ImportTemplate: &8ImportTemplate null + 9ImportTemplate: &9ImportTemplate null + 10ImportTemplate: &10ImportTemplate null + 11ImportTemplate: &11ImportTemplate null + 12ImportTemplate: &12ImportTemplate null + 100ImportTemplate: &100ImportTemplate null + 101ImportTemplate: &101ImportTemplate null + 102ImportTemplate: &102ImportTemplate null + 103ImportTemplate: &103ImportTemplate null + 104ImportTemplate: &104ImportTemplate null + 105ImportTemplate: &105ImportTemplate null + 106ImportTemplate: &106ImportTemplate null + 107ImportTemplate: &107ImportTemplate null + 108ImportTemplate: &108ImportTemplate null + 109ImportTemplate: &109ImportTemplate null + 110ImportTemplate: &110ImportTemplate null + 111ImportTemplate: &111ImportTemplate null + 112ImportTemplate: &112ImportTemplate null + 113ImportTemplate: &113ImportTemplate null + 114ImportTemplate: &114ImportTemplate null + 200ImportTemplate: &200ImportTemplate null + 201ImportTemplate: &201ImportTemplate null + 300ImportTemplate: &300ImportTemplate null + 301ImportTemplate: &301ImportTemplate null + 302ImportTemplate: &302ImportTemplate null + 303ImportTemplate: &303ImportTemplate null + 304ImportTemplate: &304ImportTemplate null + 305ImportTemplate: &305ImportTemplate null + 306ImportTemplate: &306ImportTemplate null diff --git a/packages/bson-transpilers/test/casting.test.js b/packages/bson-transpilers/test/casting.test.js index 95bdecd6d30..1dbc97e401c 100644 --- a/packages/bson-transpilers/test/casting.test.js +++ b/packages/bson-transpilers/test/casting.test.js @@ -10,13 +10,13 @@ const yaml = require('js-yaml'); const modes = process.env.MODE ? process.env.MODE.split(',') : []; -const JavascriptANTLRVisitor = require('../lib/antlr/ECMAScriptVisitor').ECMAScriptVisitor; +const JavascriptANTLRVisitor = + require('../lib/antlr/ECMAScriptVisitor').ECMAScriptVisitor; const getCodeGenerationVisitor = require('../codegeneration/CodeGenerationVisitor'); const getJavascriptVisitor = require('../codegeneration/javascript/Visitor'); - const getANTLRVisitor = { - shell: () => ( getJavascriptVisitor(JavascriptANTLRVisitor) ) + shell: () => getJavascriptVisitor(JavascriptANTLRVisitor), }; const readYAML = (filename) => { @@ -30,7 +30,7 @@ const readYAML = (filename) => { return parseResult; }; -describe('Casting tests', function() { +describe('Casting tests', function () { if (modes.length > 0 && modes.indexOf('casting') === -1) { return; } @@ -58,20 +58,27 @@ describe('Casting tests', function() { template: null, argsTemplate: null, id: 'TestFunc', - type: null - } + type: null, + }, }, - doc.BsonSymbols, doc.NativeSymbols); + doc.BsonSymbols, + doc.NativeSymbols + ); transpiler.Syntax = doc.Syntax; transpiler.SYMBOL_TYPE = doc.SymbolTypes; - describe(`from ${input} to ${output}`, function() { - it(test.description, function() { + describe(`from ${input} to ${output}`, function () { + it(test.description, function () { if (test.input[input].args) { - transpiler.Symbols.TestFunc.args = test.input[input].args.map((t) => { - return t.map((k) => ( k !== null ? transpiler.Types[k] : k )); - }); + transpiler.Symbols.TestFunc.args = test.input[input].args.map( + (t) => { + return t.map((k) => (k !== null ? transpiler.Types[k] : k)); + } + ); } - const str = getTree[input](test.input[input].code, transpiler.startRule); + const str = getTree[input]( + test.input[input].code, + transpiler.startRule + ); expect(transpiler.start(str)).to.equal(test.output[output]); }); }); diff --git a/packages/bson-transpilers/test/declaration-store.test.js b/packages/bson-transpilers/test/declaration-store.test.js index c888a555ea6..fb520d84f2d 100644 --- a/packages/bson-transpilers/test/declaration-store.test.js +++ b/packages/bson-transpilers/test/declaration-store.test.js @@ -2,26 +2,34 @@ const assert = require('assert'); const DeclarationStore = require('../codegeneration/DeclarationStore'); -describe('DeclarationStore', function() { - it('adds data using #add', function() { +describe('DeclarationStore', function () { + it('adds data using #add', function () { const ds = new DeclarationStore(); - ds.addVar('Temp', 'objectID', (varName) => { return `objectId${varName}`; }); + ds.addVar('Temp', 'objectID', (varName) => { + return `objectId${varName}`; + }); assert.strictEqual(ds.length(), 1); }); - it('returns incremented variable names given the pre-incremented variable root-name', function() { + it('returns incremented variable names given the pre-incremented variable root-name', function () { const ds = new DeclarationStore(); - ds.addVar('ForTemp', 'objectID', () => { return 1; }); + ds.addVar('ForTemp', 'objectID', () => { + return 1; + }); assert.strictEqual(ds.next('ForTemp', 'objectID'), 'objectIDForTemp1'); - ds.addVar('ForTemp', 'objectID', () => { return 2; }); + ds.addVar('ForTemp', 'objectID', () => { + return 2; + }); assert.strictEqual(ds.next('ForTemp', 'objectID'), 'objectIDForTemp2'); - ds.addVar('ForTemp', 'objectID', () => { return 3; }); + ds.addVar('ForTemp', 'objectID', () => { + return 3; + }); assert.strictEqual(ds.next('ForTemp', 'objectID'), 'objectIDForTemp3'); }); - it('stringifies multiple variables declarations', function() { + it('stringifies multiple variables declarations', function () { const ds = new DeclarationStore(); const declaration1 = (varName) => { return [] @@ -34,7 +42,9 @@ describe('DeclarationStore', function() { const declaration2 = (varName) => { return [] - .concat(`${varName}, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")`) + .concat( + `${varName}, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")` + ) .concat('if err != nil {') .concat(' log.Fatal(err)') .concat('}') @@ -49,14 +59,16 @@ describe('DeclarationStore', function() { .concat(' log.Fatal(err)') .concat('}') .concat('') - .concat('objectIDForTemp1, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")') + .concat( + 'objectIDForTemp1, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")' + ) .concat('if err != nil {') .concat(' log.Fatal(err)') .concat('}') .join('\n'); assert.strictEqual(ds.toString(), expected); }); - it('skips defining declarations for multiple of the exact same declaration (1)', function() { + it('skips defining declarations for multiple of the exact same declaration (1)', function () { const ds = new DeclarationStore(); const declaration1 = (varName) => { return [] @@ -69,7 +81,9 @@ describe('DeclarationStore', function() { const declaration2 = (varName) => { return [] - .concat(`${varName}, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")`) + .concat( + `${varName}, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")` + ) .concat('if err != nil {') .concat(' log.Fatal(err)') .concat('}') @@ -95,14 +109,16 @@ describe('DeclarationStore', function() { .concat(' log.Fatal(err)') .concat('}') .concat('') - .concat('objectIDForTemp1, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")') + .concat( + 'objectIDForTemp1, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")' + ) .concat('if err != nil {') .concat(' log.Fatal(err)') .concat('}') .join('\n'); assert.strictEqual(ds.toString(), expected); }); - it('skips defining declarations for multiple of the exact same declaration (2)', function() { + it('skips defining declarations for multiple of the exact same declaration (2)', function () { const ds = new DeclarationStore(); const declaration1 = (varName) => { return [] @@ -115,7 +131,9 @@ describe('DeclarationStore', function() { const declaration2 = (varName) => { return [] - .concat(`${varName}, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")`) + .concat( + `${varName}, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")` + ) .concat('if err != nil {') .concat(' log.Fatal(err)') .concat('}') @@ -124,7 +142,9 @@ describe('DeclarationStore', function() { const declaration3 = (varName) => { return [] - .concat(`${varName}, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")`) + .concat( + `${varName}, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")` + ) .concat('if err != nil {') .concat(' log.Fatal(err)') .concat('}') @@ -141,14 +161,16 @@ describe('DeclarationStore', function() { .concat(' log.Fatal(err)') .concat('}') .concat('') - .concat('objectIDForTemp1, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")') + .concat( + 'objectIDForTemp1, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")' + ) .concat('if err != nil {') .concat(' log.Fatal(err)') .concat('}') .join('\n'); assert.strictEqual(ds.toString(), expected); }); - it('ignores duplications over different variables', function() { + it('ignores duplications over different variables', function () { const ds = new DeclarationStore(); const declaration1 = (varName) => { return [] @@ -161,7 +183,9 @@ describe('DeclarationStore', function() { const declaration2 = (varName) => { return [] - .concat(`${varName}, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")`) + .concat( + `${varName}, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")` + ) .concat('if err != nil {') .concat(' log.Fatal(err)') .concat('}') @@ -170,7 +194,9 @@ describe('DeclarationStore', function() { const declaration3 = (varName) => { return [] - .concat(`${varName}, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")`) + .concat( + `${varName}, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")` + ) .concat('if err != nil {') .concat(' log.Fatal(err)') .concat('}') @@ -187,19 +213,23 @@ describe('DeclarationStore', function() { .concat(' log.Fatal(err)') .concat('}') .concat('') - .concat('objectIDForTempA1, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")') + .concat( + 'objectIDForTempA1, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")' + ) .concat('if err != nil {') .concat(' log.Fatal(err)') .concat('}') .concat('') - .concat('objectIDForTempB, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")') + .concat( + 'objectIDForTempB, err := primitive.ObjectIDFromHex("5ab901c29ee65f5c8550c5b9")' + ) .concat('if err != nil {') .concat(' log.Fatal(err)') .concat('}') .join('\n'); assert.strictEqual(ds.toString(), expected); }); - it('ignores duplications over different functions', function() { + it('ignores duplications over different functions', function () { const ds = new DeclarationStore(); const declaration1 = 'var x := func() {}'; const declaration2 = 'var x := func() {}'; @@ -216,7 +246,7 @@ describe('DeclarationStore', function() { .join('\n'); assert.strictEqual(ds.toString(), expected); }); - it('get length of sets', function() { + it('get length of sets', function () { const ds = new DeclarationStore(); const declaration1 = 'var x := func() {}'; const declaration2 = 'var x := func() {}'; diff --git a/packages/bson-transpilers/test/functions.test.js b/packages/bson-transpilers/test/functions.test.js index fdeda3f98cc..f5792811626 100644 --- a/packages/bson-transpilers/test/functions.test.js +++ b/packages/bson-transpilers/test/functions.test.js @@ -2,26 +2,28 @@ const bsonTranspilers = require('..'); const assert = require('assert'); -const { - BsonTranspilersUnimplementedError -} = require('../helper/error'); +const { BsonTranspilersUnimplementedError } = require('../helper/error'); -describe('function expressions (shell)', function() { - it('compiles functions to javascript', function() { +describe('function expressions (shell)', function () { + it('compiles functions to javascript', function () { assert.strictEqual( - bsonTranspilers.shell.javascript.compile('function(){ return this.x === 1 }'), + bsonTranspilers.shell.javascript.compile( + 'function(){ return this.x === 1 }' + ), 'function(){ return this.x === 1 }' ); }); - it('compiles functions to javascript (takes the right source range)', function() { + it('compiles functions to javascript (takes the right source range)', function () { assert.strictEqual( - bsonTranspilers.shell.javascript.compile('1 + function(){ return this.x === 1 }'), + bsonTranspilers.shell.javascript.compile( + '1 + function(){ return this.x === 1 }' + ), '1 + function(){ return this.x === 1 }' ); }); - it('compiles functions to javascript (preserve new lines)', function() { + it('compiles functions to javascript (preserve new lines)', function () { assert.strictEqual( bsonTranspilers.shell.javascript.compile(`function(){ return this.x === 1 @@ -32,7 +34,7 @@ describe('function expressions (shell)', function() { ); }); - it('allows functions in pipeline stages', function() { + it('allows functions in pipeline stages', function () { assert.strictEqual( bsonTranspilers.shell.javascript.compile(`{ $match: { @@ -47,17 +49,13 @@ describe('function expressions (shell)', function() { ); }); - ['object', 'csharp', 'java', 'python', 'ruby', 'rust', 'php'].forEach((language) => { - it(`throws an unsupported error compiling functions to ${language}`, function() { - assert.throws( - () => { + ['object', 'csharp', 'java', 'python', 'ruby', 'rust', 'php'].forEach( + (language) => { + it(`throws an unsupported error compiling functions to ${language}`, function () { + assert.throws(() => { bsonTranspilers.shell[language].compile('function(){}'); - }, - new BsonTranspilersUnimplementedError( - 'Support for exporting functions to languages other than javascript is not yet available.' - ) - ); - }); - }); + }, new BsonTranspilersUnimplementedError('Support for exporting functions to languages other than javascript is not yet available.')); + }); + } + ); }); - diff --git a/packages/bson-transpilers/test/index.test.js b/packages/bson-transpilers/test/index.test.js index 8013ef43802..d650bb6b4bf 100644 --- a/packages/bson-transpilers/test/index.test.js +++ b/packages/bson-transpilers/test/index.test.js @@ -7,27 +7,27 @@ const SAMPLE = transpilers.shell.java; const VALID_OPTIONS = { uri: 'mongodb://localhost', database: 'test', - collection: 'webscale' + collection: 'webscale', }; const INVALID_JS = '{ ... }'; const VALID_JS = '({ a : 1 })'; -describe('bson transpiler', function() { - describe('#compileWithDriver', function() { - it('does not compile internal options like "options"', function() { +describe('bson transpiler', function () { + describe('#compileWithDriver', function () { + it('does not compile internal options like "options"', function () { const result = SAMPLE.compileWithDriver({ options: VALID_OPTIONS, - filter: VALID_JS + filter: VALID_JS, }); assert.ok(result.includes('webscale')); }); - it('does not compile internal options like "exportMode"', function() { + it('does not compile internal options like "exportMode"', function () { const result = SAMPLE.compileWithDriver({ options: VALID_OPTIONS, exportMode: INVALID_JS, - filter: VALID_JS + filter: VALID_JS, }); assert.ok(result.includes('webscale')); }); diff --git a/packages/bson-transpilers/test/run-yaml.test.js b/packages/bson-transpilers/test/run-yaml.test.js index b48422a6e9c..a6fd85d237d 100644 --- a/packages/bson-transpilers/test/run-yaml.test.js +++ b/packages/bson-transpilers/test/run-yaml.test.js @@ -10,8 +10,23 @@ const bson = require('bson'); const transpiler = require('../index'); -const outputLanguages = process.env.OUTPUT ? process.env.OUTPUT.split(',') : [ 'csharp', 'python', 'java', 'javascript', 'shell', 'object', 'ruby', 'go', 'rust', 'php']; -const inputLanguages = process.env.INPUT ? process.env.INPUT.split(',') : [ 'shell' ]; +const outputLanguages = process.env.OUTPUT + ? process.env.OUTPUT.split(',') + : [ + 'csharp', + 'python', + 'java', + 'javascript', + 'shell', + 'object', + 'ruby', + 'go', + 'rust', + 'php', + ]; +const inputLanguages = process.env.INPUT + ? process.env.INPUT.split(',') + : ['shell']; const modes = process.env.MODE ? process.env.MODE.split(',') : []; const skipType = []; @@ -45,10 +60,10 @@ const executeJavascript = (input) => { ObjectId: bson.ObjectId, BSONSymbol: bson.BSONSymbol, Timestamp: bson.Timestamp, - Code: function(c, s) { + Code: function (c, s) { return new bson.Code(c, s); }, - Date: function(s) { + Date: function (s) { const args = Array.from(arguments); if (args.length === 1) { @@ -58,7 +73,7 @@ const executeJavascript = (input) => { return new Date(Date.UTC(...args)); }, Buffer: Buffer, - __result: {} + __result: {}, }; const res = vm.runInContext('__result = ' + input, vm.createContext(sandbox)); return res; @@ -73,46 +88,71 @@ fs.readdirSync(testpath).map((file) => { if (modes.length > 0 && modes.indexOf(mode) === -1) { return; } - describe(mode, function() { + describe(mode, function () { const tests = readYAML(path.join(testpath, file)); for (const type of Object.keys(tests.tests)) { if (skipType.indexOf(type) !== -1) { continue; } - describe(`${type}`, function() { + describe(`${type}`, function () { for (const test of tests.tests[type]) { const description = test.description ? (d) => { - describe(`${test.description}`, function() { return d(); }); - } - : (d) => (d()); + describe(`${test.description}`, function () { + return d(); + }); + } + : (d) => d(); description(() => { for (const input of Object.keys(test.input)) { if (inputLanguages.indexOf(input) === -1) { continue; } - const outputLang = test.output ? Object.keys(test.output) : outputLanguages; + const outputLang = test.output + ? Object.keys(test.output) + : outputLanguages; for (const output of outputLang) { if (outputLanguages.indexOf(output) === -1) { continue; } - if (test.output && output === 'object') { // Can't import libraries from YAML, so un-stringify it first - it(`${input}: ${test.input[input]} => runnable object`, function() { + if (test.output && output === 'object') { + // Can't import libraries from YAML, so un-stringify it first + it(`${input}: ${test.input[input]} => runnable object`, function () { const expected = executeJavascript(test.output.object); - const actual = transpiler[input].object.compile(test.input[input]); - if (expected && typeof expected === 'object' && '_bsontype' in expected) { + const actual = transpiler[input].object.compile( + test.input[input] + ); + if ( + expected && + typeof expected === 'object' && + '_bsontype' in expected + ) { expect(actual._bsontype).to.equal(expected._bsontype); expect(actual.value).to.equal(expected.value); - } else if (test.description && test.description.includes('now date')) { + } else if ( + test.description && + test.description.includes('now date') + ) { expect(actual instanceof Date).to.equal(true); - } else if (test.description && test.description.includes('date.now')) { + } else if ( + test.description && + test.description.includes('date.now') + ) { expect(typeof actual).to.equal('number'); } else { expect(actual).to.deep.equal(expected); } }); } else if (input !== output) { - tests.runner(it, type, expect, input, output, transpiler, test); + tests.runner( + it, + type, + expect, + input, + output, + transpiler, + test + ); } } } diff --git a/packages/bson-transpilers/test/yaml/bson-methods.yaml b/packages/bson-transpilers/test/yaml/bson-methods.yaml index a550f95b7c8..2629b075a5f 100644 --- a/packages/bson-transpilers/test/yaml/bson-methods.yaml +++ b/packages/bson-transpilers/test/yaml/bson-methods.yaml @@ -12,7 +12,7 @@ runner: ! |- tests: Code-methods: - input: - shell: 'Code(''test code'', {x: 1}).scope' + shell: "Code('test code', {x: 1}).scope" output: javascript: |- new Code('test code', { @@ -26,7 +26,7 @@ tests: csharp: >- new BsonJavaScriptWithScope("test code", new BsonDocument("x", 1)).Scope - php: '(new Javascript(''test code'', [''x'' => 1]))->getScope()' + php: "(new Javascript('test code', ['x' => 1]))->getScope()" ruby: |- BSON::CodeWithScope.new('test code', { 'x' => 1 @@ -46,7 +46,7 @@ tests: java: new Code("test code").getCode() csharp: new BsonJavaScript("test code").Code php: (new Javascript('test code'))->getCode() - ruby: 'BSON::Code.new(''test code'').javascript' + ruby: "BSON::Code.new('test code').javascript" go: 'primitive.CodeWithScope{Code: primitive.JavaScript("test code")}.Code' - input: shell: ObjectId('5ab901c29ee65f5c8550c5b9').toString() @@ -56,7 +56,7 @@ tests: java: new ObjectId("5ab901c29ee65f5c8550c5b9").toHexString() csharp: new ObjectId("5ab901c29ee65f5c8550c5b9").ToString() php: (string) new ObjectId('5ab901c29ee65f5c8550c5b9') - ruby: 'BSON::ObjectId(''5ab901c29ee65f5c8550c5b9'').to_s' + ruby: "BSON::ObjectId('5ab901c29ee65f5c8550c5b9').to_s" go: |- var objectIDFromHex = func(hex string) primitive.ObjectID { objectID, err := primitive.ObjectIDFromHex(hex) @@ -75,7 +75,7 @@ tests: java: new ObjectId("5ab901c29ee65f5c8550c5b9").getTimestamp() csharp: new ObjectId("5ab901c29ee65f5c8550c5b9").Timestamp php: (new ObjectId('5ab901c29ee65f5c8550c5b9'))->getTimestamp() - ruby: 'BSON::ObjectId(''5ab901c29ee65f5c8550c5b9'').to_time' + ruby: "BSON::ObjectId('5ab901c29ee65f5c8550c5b9').to_time" go: |- var objectIDFromHex = func(hex string) primitive.ObjectID { objectID, err := primitive.ObjectIDFromHex(hex) @@ -139,12 +139,12 @@ tests: ObjectId::parse_str("5ab901c29ee65f5c8550c5b9")? DBRef-methods: - input: - shell: 'new DBRef(''coll'', new ObjectId(), ''db'').$db' + shell: "new DBRef('coll', new ObjectId(), 'db').$db" output: - python: 'DBRef(''coll'', ObjectId(), ''db'').database' + python: "DBRef('coll', ObjectId(), 'db').database" java: 'new DBRef("db", "coll", new ObjectId()).getDatabaseName()' csharp: 'new MongoDBRef("coll", new ObjectId(), "db").DatabaseName' - php: '[''$ref'' => ''coll'', ''$id'' => new ObjectId(), ''$db'' => ''db''][''$db'']' + php: "['$ref' => 'coll', '$id' => new ObjectId(), '$db' => 'db']['$db']" ruby: |- BSON::DBRef.new( '$ref' => 'coll', @@ -152,12 +152,12 @@ tests: '$db' => 'db' ).database - input: - shell: 'new DBRef(''coll'', new ObjectId(), ''db'').getDb()' + shell: "new DBRef('coll', new ObjectId(), 'db').getDb()" output: - python: 'DBRef(''coll'', ObjectId(), ''db'').database' + python: "DBRef('coll', ObjectId(), 'db').database" java: 'new DBRef("db", "coll", new ObjectId()).getDatabaseName()' csharp: 'new MongoDBRef("coll", new ObjectId(), "db").DatabaseName' - php: '[''$ref'' => ''coll'', ''$id'' => new ObjectId(), ''$db'' => ''db''][''$db'']' + php: "['$ref' => 'coll', '$id' => new ObjectId(), '$db' => 'db']['$db']" ruby: |- BSON::DBRef.new( '$ref' => 'coll', @@ -165,9 +165,9 @@ tests: '$db' => 'db' ).database - input: - shell: 'new DBRef(''coll'', new ObjectId(''5bfeee5ffa63a31985db9e5e'')).getRef()' + shell: "new DBRef('coll', new ObjectId('5bfeee5ffa63a31985db9e5e')).getRef()" output: - python: 'DBRef(''coll'', ObjectId(''5bfeee5ffa63a31985db9e5e'')).collection' + python: "DBRef('coll', ObjectId('5bfeee5ffa63a31985db9e5e')).collection" java: >- new DBRef("coll", new ObjectId("5bfeee5ffa63a31985db9e5e")).getCollectionName() @@ -178,9 +178,9 @@ tests: ['$ref' => 'coll', '$id' => new ObjectId('5bfeee5ffa63a31985db9e5e'), '$db' => null]['$ref'] - input: - shell: 'new DBRef(''coll'', new ObjectId(''5bfeee5ffa63a31985db9e5e'')).$ref' + shell: "new DBRef('coll', new ObjectId('5bfeee5ffa63a31985db9e5e')).$ref" output: - python: 'DBRef(''coll'', ObjectId(''5bfeee5ffa63a31985db9e5e'')).collection' + python: "DBRef('coll', ObjectId('5bfeee5ffa63a31985db9e5e')).collection" java: >- new DBRef("coll", new ObjectId("5bfeee5ffa63a31985db9e5e")).getCollectionName() @@ -196,21 +196,21 @@ tests: '$id' => BSON::ObjectId('5bfeee5ffa63a31985db9e5e') ).collection - input: - shell: 'new DBRef(''coll'', new ObjectId()).getCollection()' + shell: "new DBRef('coll', new ObjectId()).getCollection()" output: - python: 'DBRef(''coll'', ObjectId()).collection' + python: "DBRef('coll', ObjectId()).collection" java: 'new DBRef("coll", new ObjectId()).getCollectionName()' csharp: 'new MongoDBRef("coll", new ObjectId()).CollectionName' - php: '[''$ref'' => ''coll'', ''$id'' => new ObjectId(), ''$db'' => null][''$ref'']' + php: "['$ref' => 'coll', '$id' => new ObjectId(), '$db' => null]['$ref']" ruby: |- BSON::DBRef.new( '$ref' => 'coll', '$id' => BSON::ObjectId.new ).collection - input: - shell: 'new DBRef(''coll'', new ObjectId(''5bfeee5ffa63a31985db9e5e'')).$id' + shell: "new DBRef('coll', new ObjectId('5bfeee5ffa63a31985db9e5e')).$id" output: - python: 'DBRef(''coll'', ObjectId(''5bfeee5ffa63a31985db9e5e'')).id' + python: "DBRef('coll', ObjectId('5bfeee5ffa63a31985db9e5e')).id" java: 'new DBRef("coll", new ObjectId("5bfeee5ffa63a31985db9e5e")).getId()' csharp: 'new MongoDBRef("coll", new ObjectId("5bfeee5ffa63a31985db9e5e")).Id' php: >- @@ -222,9 +222,9 @@ tests: '$id' => BSON::ObjectId('5bfeee5ffa63a31985db9e5e') ).id - input: - shell: 'new DBRef(''coll'', new ObjectId(''5bfeee5ffa63a31985db9e5e'')).getId()' + shell: "new DBRef('coll', new ObjectId('5bfeee5ffa63a31985db9e5e')).getId()" output: - python: 'DBRef(''coll'', ObjectId(''5bfeee5ffa63a31985db9e5e'')).id' + python: "DBRef('coll', ObjectId('5bfeee5ffa63a31985db9e5e')).id" java: 'new DBRef("coll", new ObjectId("5bfeee5ffa63a31985db9e5e")).getId()' csharp: 'new MongoDBRef("coll", new ObjectId("5bfeee5ffa63a31985db9e5e")).Id' php: >- @@ -239,11 +239,11 @@ tests: - input: shell: NumberLong(429496729601).toString() output: - python: '''429496729601''' + python: "'429496729601'" java: '"429496729601"' csharp: '"429496729601"' - php: '''429496729601''' - ruby: '''429496729601''' + php: "'429496729601'" + ruby: "'429496729601'" go: '"429496729601"' rust: '"429496729601"' Decimal128-methods: [] @@ -260,7 +260,7 @@ tests: Symbol-methods: [] ObjectId-utils: - input: - shell: 'ObjectId.createFromTime(new Date(''Thu, 03 Feb 1972 00:00:00 GMT''))' + shell: "ObjectId.createFromTime(new Date('Thu, 03 Feb 1972 00:00:00 GMT'))" output: javascript: >- ObjectId.createFromTime(new Date('Thu, 03 Feb 1972 00:00:00 diff --git a/packages/bson-transpilers/test/yaml/bson.yaml b/packages/bson-transpilers/test/yaml/bson.yaml index c6cfc447a1b..e308851c862 100644 --- a/packages/bson-transpilers/test/yaml/bson.yaml +++ b/packages/bson-transpilers/test/yaml/bson.yaml @@ -20,7 +20,7 @@ tests: java: new Code("some code") csharp: new BsonJavaScript("some code") php: new Javascript('some code') - ruby: 'BSON::Code.new(''some code'')' + ruby: "BSON::Code.new('some code')" go: 'primitive.CodeWithScope{Code: primitive.JavaScript("some code")}' rust: 'Bson::JavaScriptCode("some code".to_string())' - description: string code @@ -32,12 +32,12 @@ tests: java: new Code("some code") csharp: new BsonJavaScript("some code") php: new Javascript('some code') - ruby: 'BSON::Code.new(''some code'')' + ruby: "BSON::Code.new('some code')" go: 'primitive.CodeWithScope{Code: primitive.JavaScript("some code")}' rust: 'Bson::JavaScriptCode("some code".to_string())' - description: string code and object scope input: - shell: 'Code(''string'', {x: ''1''})' + shell: "Code('string', {x: '1'})" output: javascript: |- new Code('string', { @@ -49,7 +49,7 @@ tests: }) java: 'new CodeWithScope("string", new Document("x", "1"))' csharp: 'new BsonJavaScriptWithScope("string", new BsonDocument("x", "1"))' - php: 'new Javascript(''string'', [''x'' => ''1''])' + php: "new Javascript('string', ['x' => '1'])" ruby: |- BSON::CodeWithScope.new('string', { 'x' => '1' @@ -107,7 +107,7 @@ tests: java: new ObjectId("5a7382114ec1f67ae445f778") csharp: new ObjectId("5a7382114ec1f67ae445f778") php: new ObjectId('5a7382114ec1f67ae445f778') - ruby: 'BSON::ObjectId(''5a7382114ec1f67ae445f778'')' + ruby: "BSON::ObjectId('5a7382114ec1f67ae445f778')" go: |- var objectIDFromHex = func(hex string) primitive.ObjectID { objectID, err := primitive.ObjectIDFromHex(hex) @@ -122,13 +122,13 @@ tests: DBRef: - description: 'NEW (string, ObjectID) args' input: - shell: 'new DBRef(''coll'', new ObjectId())' + shell: "new DBRef('coll', new ObjectId())" output: - javascript: 'new DBRef(''coll'', new ObjectId())' - python: 'DBRef(''coll'', ObjectId())' + javascript: "new DBRef('coll', new ObjectId())" + python: "DBRef('coll', ObjectId())" java: 'new DBRef("coll", new ObjectId())' csharp: 'new MongoDBRef("coll", new ObjectId())' - php: '[''$ref'' => ''coll'', ''$id'' => new ObjectId(), ''$db'' => null]' + php: "['$ref' => 'coll', '$id' => new ObjectId(), '$db' => null]" ruby: |- BSON::DBRef.new( '$ref' => 'coll', @@ -136,13 +136,13 @@ tests: ) - description: '(string, ObjectID) args' input: - shell: 'DBRef(''coll'', new ObjectId())' + shell: "DBRef('coll', new ObjectId())" output: - javascript: 'new DBRef(''coll'', new ObjectId())' - python: 'DBRef(''coll'', ObjectId())' + javascript: "new DBRef('coll', new ObjectId())" + python: "DBRef('coll', ObjectId())" java: 'new DBRef("coll", new ObjectId())' csharp: 'new MongoDBRef("coll", new ObjectId())' - php: '[''$ref'' => ''coll'', ''$id'' => new ObjectId(), ''$db'' => null]' + php: "['$ref' => 'coll', '$id' => new ObjectId(), '$db' => null]" ruby: |- BSON::DBRef.new( '$ref' => 'coll', @@ -150,13 +150,13 @@ tests: ) - description: '(string, ObjectId, string) args' input: - shell: 'new DBRef(''coll'', new ObjectId(), ''db'')' + shell: "new DBRef('coll', new ObjectId(), 'db')" output: - javascript: 'new DBRef(''coll'', new ObjectId(), ''db'')' - python: 'DBRef(''coll'', ObjectId(), ''db'')' + javascript: "new DBRef('coll', new ObjectId(), 'db')" + python: "DBRef('coll', ObjectId(), 'db')" java: 'new DBRef("db", "coll", new ObjectId())' csharp: 'new MongoDBRef("coll", new ObjectId(), "db")' - php: '[''$ref'' => ''coll'', ''$id'' => new ObjectId(), ''$db'' => ''db'']' + php: "['$ref' => 'coll', '$id' => new ObjectId(), '$db' => 'db']" ruby: |- BSON::DBRef.new( '$ref' => 'coll', @@ -197,7 +197,7 @@ tests: java: Integer.parseInt("3") csharp: Convert.ToInt32("3") php: (int) '3' - ruby: '''3''.to_i' + ruby: "'3'.to_i" go: |- var parseInt32 = func(str string) int32 { i64, err := strconv.ParseInt(str, 10, 32) @@ -304,7 +304,7 @@ tests: java: Long.parseLong("9223372036854775807") csharp: Convert.ToInt64("9223372036854775807") php: (int) '9223372036854775807' - ruby: '''9223372036854775807''.to_i' + ruby: "'9223372036854775807'.to_i" go: |- var parseInt = func(str string) int64 { i64, err := strconv.ParseInt(str, 10, 64) @@ -326,7 +326,7 @@ tests: java: Decimal128.parse("5") csharp: Decimal128.Parse("5") php: new Decimal128('5') - ruby: 'BSON::Decimal128.new(''5'')' + ruby: "BSON::Decimal128.new('5')" - description: NEW input: shell: new NumberDecimal('5.3E-6175') @@ -335,7 +335,7 @@ tests: java: Decimal128.parse("5.3E-6175") csharp: Decimal128.Parse("5.3E-6175") php: new Decimal128('5.3E-6175') - ruby: 'BSON::Decimal128.new(''5.3E-6175'')' + ruby: "BSON::Decimal128.new('5.3E-6175')" - description: number arg input: shell: NumberDecimal(5) @@ -345,7 +345,7 @@ tests: java: Decimal128.parse("5") csharp: Decimal128.Parse("5") php: new Decimal128('5') - ruby: 'BSON::Decimal128.new(''5'')' + ruby: "BSON::Decimal128.new('5')" - description: no arg input: shell: NumberDecimal() @@ -355,7 +355,7 @@ tests: java: Decimal128.parse("0") csharp: Decimal128.Parse("0") php: new Decimal128('0') - ruby: 'BSON::Decimal128.new(''0'')' + ruby: "BSON::Decimal128.new('0')" MinKey/MaxKey: - description: MinKey input: @@ -437,11 +437,11 @@ tests: shell: Symbol('abc') output: javascript: new BSONSymbol('abc') - python: '''abc''' + python: "'abc'" java: new Symbol("abc") csharp: '"abc"' - php: '''abc''' - ruby: ':''abc''' + php: "'abc'" + ruby: ":'abc'" go: primitive.Symbol("abc") rust: 'Bson::Symbol("abc")' - description: from shell symbol @@ -449,10 +449,10 @@ tests: shell: Symbol('abc') output: javascript: new BSONSymbol('abc') - python: '''abc''' + python: "'abc'" java: new Symbol("abc") csharp: '"abc"' - php: '''abc''' - ruby: ':''abc''' + php: "'abc'" + ruby: ":'abc'" go: primitive.Symbol("abc") rust: 'Bson::Symbol("abc")' diff --git a/packages/bson-transpilers/test/yaml/builders.yaml b/packages/bson-transpilers/test/yaml/builders.yaml index 08dead32cb7..07db3b15360 100644 --- a/packages/bson-transpilers/test/yaml/builders.yaml +++ b/packages/bson-transpilers/test/yaml/builders.yaml @@ -278,13 +278,13 @@ tests: java: 'where("function(){$x===true}")' imports: import static com.mongodb.client.model.Filters.where; - input: - shell: '{''$where'': ''function() { $x===true }''}' + shell: "{'$where': 'function() { $x===true }'}" output: java: 'where("function() { $x===true }")' imports: import static com.mongodb.client.model.Filters.where; geometry: - input: - shell: '{$geometry: {type: ''Point'', coordinates: [1, 2]}}' + shell: "{$geometry: {type: 'Point', coordinates: [1, 2]}}" output: java: 'new Point(new Position(1L, 2L))' imports: |- @@ -657,7 +657,7 @@ tests: import static com.mongodb.client.model.Sorts.metaTextScore; import static com.mongodb.client.model.Sorts.orderBy; - input: - shell: '{ $sort: { x: 1, y: -1, z: { ''$meta'': ''textScore'' } } }' + shell: "{ $sort: { x: 1, y: -1, z: { '$meta': 'textScore' } } }" output: java: 'sort(orderBy(ascending("x"), descending("y"), metaTextScore("z")))' imports: |- @@ -677,7 +677,7 @@ tests: import static com.mongodb.client.model.Sorts.metaTextScore; import static com.mongodb.client.model.Sorts.orderBy; - input: - shell: '{ $sort: { x: 1, y: -1, z: { $meta: ''textScore'' } } }' + shell: "{ $sort: { x: 1, y: -1, z: { $meta: 'textScore' } } }" output: java: 'sort(orderBy(ascending("x"), descending("y"), metaTextScore("z")))' imports: |- @@ -782,12 +782,12 @@ tests: import com.mongodb.client.model.GraphLookupOptions; sortByCount: - input: - shell: '{ $sortByCount: ''$expr'' }' + shell: "{ $sortByCount: '$expr' }" output: java: sortByCount("$expr") imports: import static com.mongodb.client.model.Aggregates.sortByCount; - input: - shell: '{ $sortByCount: { ''$floor'': ''$x'' } }' + shell: "{ $sortByCount: { '$floor': '$x' } }" output: java: 'sortByCount(eq("$floor", "$x"))' imports: |- @@ -795,7 +795,7 @@ tests: import static com.mongodb.client.model.Aggregates.sortByCount; replaceRoot: - input: - shell: '{ $replaceRoot: { newRoot: { x: ''newDoc'' } } }' + shell: "{ $replaceRoot: { newRoot: { x: 'newDoc' } } }" output: java: 'replaceRoot(new Document("x", "newDoc"))' imports: |- @@ -812,13 +812,13 @@ tests: import com.mongodb.client.model.Field; count: - input: - shell: '{ $count: ''field'' }' + shell: "{ $count: 'field' }" output: java: count("field") imports: import static com.mongodb.client.model.Aggregates.count; bucket: - input: - shell: '{$bucket: { groupBy: ''$expr'', boundaries: [ 0, 10, 20 ],} }' + shell: "{$bucket: { groupBy: '$expr', boundaries: [ 0, 10, 20 ],} }" output: java: 'bucket("$expr", Arrays.asList(0L, 10L, 20L))' imports: |- diff --git a/packages/bson-transpilers/test/yaml/driver-syntax.yaml b/packages/bson-transpilers/test/yaml/driver-syntax.yaml index 027c55fc0d7..1d6f707406b 100644 --- a/packages/bson-transpilers/test/yaml/driver-syntax.yaml +++ b/packages/bson-transpilers/test/yaml/driver-syntax.yaml @@ -373,7 +373,7 @@ tests: skip: '5' limit: '10' maxTimeMS: '100' - collation: '{ locale: ''zh'' }' + collation: "{ locale: 'zh' }" output: python: |- # Requires the PyMongo package. @@ -800,7 +800,7 @@ tests: - description: generate driver syntax with declarations input: shell: - aggregation: '{x: ObjectId(''5a7382114ec1f67ae445f778'')}' + aggregation: "{x: ObjectId('5a7382114ec1f67ae445f778')}" options: uri: 'mongodb://localhost:27017' database: db diff --git a/packages/bson-transpilers/test/yaml/edge-cases/casting.yaml b/packages/bson-transpilers/test/yaml/edge-cases/casting.yaml index 4870620813d..9b56efa0e75 100644 --- a/packages/bson-transpilers/test/yaml/edge-cases/casting.yaml +++ b/packages/bson-transpilers/test/yaml/edge-cases/casting.yaml @@ -34,7 +34,7 @@ tests: - description: does not cast numeric input: shell: - code: 'TestFunc(10, 10.01, 0x6, 0o5, Number(10), Number(''10''), -10)' + code: "TestFunc(10, 10.01, 0x6, 0o5, Number(10), Number('10'), -10)" args: - - _numeric - - _numeric @@ -48,7 +48,7 @@ tests: - description: does not cast Number class input: shell: - code: 'TestFunc(Number(10), Number(''10''), Number(10), Number(''10''))' + code: "TestFunc(Number(10), Number('10'), Number(10), Number('10'))" args: - - _numeric - - _long diff --git a/packages/bson-transpilers/test/yaml/error-builders.yaml b/packages/bson-transpilers/test/yaml/error-builders.yaml index 8485ea4bc2a..7fa4a1d6e63 100644 --- a/packages/bson-transpilers/test/yaml/error-builders.yaml +++ b/packages/bson-transpilers/test/yaml/error-builders.yaml @@ -27,112 +27,112 @@ runner: ! |- tests: wrong type: - input: - shell: '{''$project'': ''invalid''}' + shell: "{'$project': 'invalid'}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$project'': {}}' + shell: "{'$project': {}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''x'': {''$not'': ''1''}}' + shell: "{'x': {'$not': '1'}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''x'': {''$mod'': 1}}' + shell: "{'x': {'$mod': 1}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''x'': {''$mod'': [1]}}' + shell: "{'x': {'$mod': [1]}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''x'': {''$mod'': {}}}' + shell: "{'x': {'$mod': {}}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$sort'': {}}' + shell: "{'$sort': {}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$sort'': 1}' + shell: "{'$sort': 1}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$sort'': {''x'': 1, ''y'': ''not 1/-1''}}' + shell: "{'$sort': {'x': 1, 'y': 'not 1/-1'}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$sort'': {''x'': 1, ''y'': {}}}' + shell: "{'$sort': {'x': 1, 'y': {}}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$sort'': {''x'': 1, ''y'': {''$meta'': 1}}}' + shell: "{'$sort': {'x': 1, 'y': {'$meta': 1}}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$project'': {}}' + shell: "{'$project': {}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$project'': 1}' + shell: "{'$project': 1}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''x'': {''$sample'': {}}}' + shell: "{'x': {'$sample': {}}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''x'': {''$sample'': {''notSize'': 1}}}' + shell: "{'x': {'$sample': {'notSize': 1}}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''x'': {''$sample'': {''size'': 10, ''other'': 1}}}' + shell: "{'x': {'$sample': {'size': 10, 'other': 1}}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''x'': {''$replaceRoot'': {}}}' + shell: "{'x': {'$replaceRoot': {}}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''x'': {''$replaceRoot'': {''notNewRoot'': 1}}}' + shell: "{'x': {'$replaceRoot': {'notNewRoot': 1}}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''x'': {''$replaceRoot'': {''newRoot'': 10, ''other'': 1}}}' + shell: "{'x': {'$replaceRoot': {'newRoot': 10, 'other': 1}}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$graphLookup'': {}}' + shell: "{'$graphLookup': {}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$graphLookup'': 1}' + shell: "{'$graphLookup': 1}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$graphLookup'': {''from'': ''x''}}' + shell: "{'$graphLookup': {'from': 'x'}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME @@ -145,12 +145,12 @@ tests: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$lookup'': {}}' + shell: "{'$lookup': {}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$lookup'': {''from'': ''x''}}' + shell: "{'$lookup': {'from': 'x'}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME @@ -162,98 +162,98 @@ tests: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$bucket'': {}}' + shell: "{'$bucket': {}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$bucket'': {''groupBy'': ''x''}}' + shell: "{'$bucket': {'groupBy': 'x'}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$bucket'': {''groupBy'': ''x'', ''boundaries'': 1, ''extra'': 1}}' + shell: "{'$bucket': {'groupBy': 'x', 'boundaries': 1, 'extra': 1}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$bucketAuto'': {}}' + shell: "{'$bucketAuto': {}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$bucketAuto'': {''groupBy'': ''x''}}' + shell: "{'$bucketAuto': {'groupBy': 'x'}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$bucketAuto'': {''groupBy'': ''x'', ''buckets'': 1, ''extra'': 1}}' + shell: "{'$bucketAuto': {'groupBy': 'x', 'buckets': 1, 'extra': 1}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$text'': {}}' + shell: "{'$text': {}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$text'': {''$search'': ''x'', ''extra'': 1}}' + shell: "{'$text': {'$search': 'x', 'extra': 1}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$unwind'': {}}' + shell: "{'$unwind': {}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$unwind'': 1}' + shell: "{'$unwind': 1}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$unwind'': {''path'': ''x'', ''extra'': 1}}' + shell: "{'$unwind': {'path': 'x', 'extra': 1}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$group'': {''x'': 1}}' + shell: "{'$group': {'x': 1}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$group'': {}}' + shell: "{'$group': {}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$group'': 1}' + shell: "{'$group': 1}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$facet'': {}}' + shell: "{'$facet': {}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$facet'': 1}' + shell: "{'$facet': 1}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$addFields'': {}}' + shell: "{'$addFields': {}}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME - input: - shell: '{''$addFields'': 1}' + shell: "{'$addFields': 1}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME wrong shape: - input: - shell: '{''$sum'': 1}' + shell: "{'$sum': 1}" output: java: true errorCode: E_BSONTRANSPILERS_RUNTIME diff --git a/packages/bson-transpilers/test/yaml/imports.yaml b/packages/bson-transpilers/test/yaml/imports.yaml index 31477cd926e..81dd20a6d23 100644 --- a/packages/bson-transpilers/test/yaml/imports.yaml +++ b/packages/bson-transpilers/test/yaml/imports.yaml @@ -25,7 +25,7 @@ tests: all: - description: Single import Code input: - shell: '{x: Code(''code'')}' + shell: "{x: Code('code')}" output: java: |- import org.bson.types.Code; @@ -50,7 +50,7 @@ tests: use mongodb::bson::doc; - description: Single import Code with scope input: - shell: '{x: Code(''code'', {x: 1})}' + shell: "{x: Code('code', {x: 1})}" output: java: |- import org.bson.Document; @@ -128,7 +128,7 @@ tests: use mongodb::bson::doc; - description: Single import DBRef input: - shell: '{x: DBRef(''db'', ObjectId())}' + shell: "{x: DBRef('db', ObjectId())}" output: java: |- import org.bson.types.ObjectId; @@ -263,7 +263,7 @@ tests: use mongodb::bson::doc; - description: Single import RegExp input: - shell: '{x: RegExp(''abc'')}' + shell: "{x: RegExp('abc')}" output: java: |- import java.util.regex.Pattern; @@ -334,7 +334,7 @@ tests: use mongodb::bson::doc; - description: Single import Symbol input: - shell: '{x: Symbol(''a'')}' + shell: "{x: Symbol('a')}" output: java: |- import org.bson.types.Symbol; diff --git a/packages/bson-transpilers/test/yaml/native.yaml b/packages/bson-transpilers/test/yaml/native.yaml index ecbfb30d34a..955d0529985 100644 --- a/packages/bson-transpilers/test/yaml/native.yaml +++ b/packages/bson-transpilers/test/yaml/native.yaml @@ -12,7 +12,7 @@ runner: ! |- tests: Document: - input: - shell: '{x: ''1''}' + shell: "{x: '1'}" output: javascript: |- { @@ -24,7 +24,7 @@ tests: } java: 'eq("x", "1")' csharp: 'new BsonDocument("x", "1")' - php: '[''x'' => ''1'']' + php: "['x' => '1']" ruby: |- { 'x' => '1' @@ -35,7 +35,7 @@ tests: } go: 'bson.D{{"x", "1"}}' - input: - shell: '{x: ''1'',}' + shell: "{x: '1',}" output: javascript: |- { @@ -47,7 +47,7 @@ tests: } java: 'eq("x", "1")' csharp: 'new BsonDocument("x", "1")' - php: '[''x'' => ''1'']' + php: "['x' => '1']" ruby: |- { 'x' => '1' @@ -58,7 +58,7 @@ tests: } go: 'bson.D{{"x", "1"}}' - input: - shell: '{x: [''1'', ''2'']}' + shell: "{x: ['1', '2']}" output: javascript: |- { @@ -79,7 +79,7 @@ tests: "1", "2" }) - php: '[''x'' => [''1'', ''2'']]' + php: "['x' => ['1', '2']]" ruby: |- { 'x' => [ @@ -119,7 +119,7 @@ tests: } java: 'eq("x", eq("y", 2L))' csharp: 'new BsonDocument("x", new BsonDocument("y", 2))' - php: '[''x'' => [''y'' => 2]]' + php: "['x' => ['y' => 2]]" ruby: |- { 'x' => { @@ -145,7 +145,7 @@ tests: rust: 'doc! {}' go: 'bson.D{}' - input: - shell: '{x: ''1'', n: ''4''}' + shell: "{x: '1', n: '4'}" output: javascript: |- { @@ -164,7 +164,7 @@ tests: { "x", "1" }, { "n", "4" } } - php: '[''x'' => ''1'', ''n'' => ''4'']' + php: "['x' => '1', 'n' => '4']" ruby: |- { 'x' => '1', @@ -181,9 +181,9 @@ tests: {"n", "4"}, } - input: - shell: '{0: ''1'', 1: ''2'', 2: ''3''}' + shell: "{0: '1', 1: '2', 2: '3'}" output: - php: '(object) [0 => ''1'', 1 => ''2'', 2 => ''3'']' + php: "(object) [0 => '1', 1 => '2', 2 => '3']" - input: shell: >- { graphLookup : { "from" : "raw_data", "startWith" : "$_id", @@ -355,7 +355,7 @@ tests: } Array: - input: - shell: '[''1'', ''2'']' + shell: "['1', '2']" output: javascript: |- [ @@ -372,7 +372,7 @@ tests: [ '1', '2' ] - php: '[''1'', ''2'']' + php: "['1', '2']" ruby: |- [ '1', '2' @@ -388,7 +388,7 @@ tests: "2", } - input: - shell: '[''1'', ''2'',]' + shell: "['1', '2',]" output: javascript: |- [ @@ -405,7 +405,7 @@ tests: [ '1', '2' ] - php: '[''1'', ''2'']' + php: "['1', '2']" ruby: |- [ '1', '2' @@ -421,7 +421,7 @@ tests: "2", } - input: - shell: '[''1'', { settings: ''http2'' }]' + shell: "['1', { settings: 'http2' }]" output: javascript: |- [ @@ -442,7 +442,7 @@ tests: 'settings': 'http2' } ] - php: '[''1'', [''settings'' => ''http2'']]' + php: "['1', ['settings' => 'http2']]" ruby: |- [ '1', { @@ -630,7 +630,7 @@ tests: }, } - input: - shell: '[''1'', [''2'', ''3'']]' + shell: "['1', ['2', '3']]" output: javascript: |- [ @@ -655,7 +655,7 @@ tests: '2', '3' ] ] - php: '[''1'', [''2'', ''3'']]' + php: "['1', ['2', '3']]" ruby: |- [ '1', [ @@ -691,7 +691,7 @@ tests: go: 'bson.A{}' ArrayElision: - input: - shell: '[,''1'', ''2'',]' + shell: "[,'1', '2',]" output: python: |- [ @@ -709,7 +709,7 @@ tests: [ undefined, '1', '2' ] - php: '[null, ''1'', ''2'']' + php: "[null, '1', '2']" ruby: |- [ nil, '1', '2' @@ -792,7 +792,7 @@ tests: primitive.Undefined{}, } - input: - shell: '[''1'',,,,''2'']' + shell: "['1',,,,'2']" output: python: |- [ @@ -816,7 +816,7 @@ tests: [ '1', undefined, undefined, undefined, '2' ] - php: '[''1'', null, null, null, ''2'']' + php: "['1', null, null, null, '2']" ruby: |- [ '1', nil, nil, nil, '2' @@ -947,7 +947,7 @@ tests: java: Double.parseDouble("2") csharp: int.Parse("2") php: (int) '2' - ruby: '''2''.to_f' + ruby: "'2'.to_f" rust: '"2".parse::()?' go: |- var parseInt = func(str string) int64 { @@ -1116,25 +1116,25 @@ tests: go: 'primitive.Undefined{}' string_literals: - input: - shell: '''string''' + shell: "'string'" output: - javascript: '''string''' - python: '''string''' + javascript: "'string'" + python: "'string'" java: '"string"' csharp: '"string"' - php: '''string''' - ruby: '''string''' + php: "'string'" + ruby: "'string'" rust: '"string"' go: '"string"' - input: shell: '"string"' output: - javascript: '''string''' - python: '''string''' + javascript: "'string'" + python: "'string'" java: '"string"' csharp: '"string"' - php: '''string''' - ruby: '''string''' + php: "'string'" + ruby: "'string'" rust: '"string"' go: '"string"' python_strings: [] @@ -1167,7 +1167,7 @@ tests: - input: shell: 'new Date(1995, 11, 17)' output: - javascript: 'new Date(''Sun, 17 Dec 1995 00:00:00 GMT'')' + javascript: "new Date('Sun, 17 Dec 1995 00:00:00 GMT')" python: 'datetime(1995, 12, 17, 0, 0, 0, tzinfo=timezone.utc)' java: new java.util.Date(819158400000L) csharp: 'new DateTime(1995, 12, 17, 0, 0, 0)' @@ -1178,7 +1178,7 @@ tests: - input: shell: 'new Date(1995, 11, 17, 3, 24)' output: - javascript: 'new Date(''Sun, 17 Dec 1995 03:24:00 GMT'')' + javascript: "new Date('Sun, 17 Dec 1995 03:24:00 GMT')" python: 'datetime(1995, 12, 17, 3, 24, 0, tzinfo=timezone.utc)' java: new java.util.Date(819170640000L) csharp: 'new DateTime(1995, 12, 17, 3, 24, 0)' @@ -1189,7 +1189,7 @@ tests: - input: shell: 'new Date(1995, 11, 17, 3, 24, 55)' output: - javascript: 'new Date(''Sun, 17 Dec 1995 03:24:55 GMT'')' + javascript: "new Date('Sun, 17 Dec 1995 03:24:55 GMT')" python: 'datetime(1995, 12, 17, 3, 24, 55, tzinfo=timezone.utc)' java: new java.util.Date(819170695000L) csharp: 'new DateTime(1995, 12, 17, 3, 24, 55)' @@ -1198,12 +1198,12 @@ tests: rust: 'DateTime::parse_rfc3339_str("1995-12-17T03:24:55.000Z")?' go: 'time.Date(1995, 12, 17, 3, 24, 55, 0, time.UTC)' - input: - shell: 'new Date(''Sun, 17 Dec 1995 03:24:00 GMT'')' + shell: "new Date('Sun, 17 Dec 1995 03:24:00 GMT')" output: python: 'datetime(1995, 12, 17, 3, 24, 0, tzinfo=timezone.utc)' java: new java.util.Date(819170640000L) csharp: 'new DateTime(1995, 12, 17, 3, 24, 0)' - javascript: 'new Date(''Sun, 17 Dec 1995 03:24:00 GMT'')' + javascript: "new Date('Sun, 17 Dec 1995 03:24:00 GMT')" php: new UTCDateTime(819170640000) ruby: 'Time.utc(1995, 12, 17, 3, 24, 0)' rust: 'DateTime::parse_rfc3339_str("1995-12-17T03:24:00.000Z")?' @@ -1211,7 +1211,7 @@ tests: - input: shell: new Date(819167040000) output: - javascript: 'new Date(''Sun, 17 Dec 1995 02:24:00 GMT'')' + javascript: "new Date('Sun, 17 Dec 1995 02:24:00 GMT')" python: 'datetime(1995, 12, 17, 2, 24, 0, tzinfo=timezone.utc)' java: new java.util.Date(819167040000L) csharp: 'new DateTime(1995, 12, 17, 2, 24, 0)' @@ -1221,7 +1221,7 @@ tests: go: 'time.Date(1995, 12, 17, 2, 24, 0, 0, time.UTC)' date_string: - input: - shell: 'Date(''Sun, 17 Dec 1995 03:24:00 GMT'')' + shell: "Date('Sun, 17 Dec 1995 03:24:00 GMT')" output: python: >- datetime(1995, 12, 17, 3, 24, 0, tzinfo=timezone.utc).strftime('%a %b @@ -1232,18 +1232,18 @@ tests: csharp: >- new DateTime(1995, 12, 17, 3, 24, 0).ToString("ddd MMM dd yyyy HH':'mm':'ss UTC") - javascript: 'Date(''Sun, 17 Dec 1995 03:24:00 GMT'')' + javascript: "Date('Sun, 17 Dec 1995 03:24:00 GMT')" php: >- (new UTCDateTime(819170640000))->toDateTime()->format(\DateTimeInterface::RFC3339_EXTENDED) - ruby: 'Time.utc(1995, 12, 17, 3, 24, 0).strftime(''%a %b %d %Y %H:%M:%S %Z'')' + ruby: "Time.utc(1995, 12, 17, 3, 24, 0).strftime('%a %b %d %Y %H:%M:%S %Z')" rust: >- DateTime::parse_rfc3339_str("1995-12-17T03:24:00.000Z")?.to_rfc3339_string() go: 'time.Date(1995, 12, 17, 3, 24, 0, 0, time.UTC)' - input: shell: Date(819167040000) output: - javascript: 'Date(''Sun, 17 Dec 1995 02:24:00 GMT'')' + javascript: "Date('Sun, 17 Dec 1995 02:24:00 GMT')" python: >- datetime(1995, 12, 17, 2, 24, 0, tzinfo=timezone.utc).strftime('%a %b %d %Y %H:%M:%S %Z') @@ -1256,14 +1256,14 @@ tests: php: >- (new UTCDateTime(819167040000))->toDateTime()->format(\DateTimeInterface::RFC3339_EXTENDED) - ruby: 'Time.utc(1995, 12, 17, 2, 24, 0).strftime(''%a %b %d %Y %H:%M:%S %Z'')' + ruby: "Time.utc(1995, 12, 17, 2, 24, 0).strftime('%a %b %d %Y %H:%M:%S %Z')" rust: >- DateTime::parse_rfc3339_str("1995-12-17T02:24:00.000Z")?.to_rfc3339_string() go: 'time.Date(1995, 12, 17, 2, 24, 0, 0, time.UTC)' - input: shell: 'Date(1995, 11, 17)' output: - javascript: 'Date(''Sun, 17 Dec 1995 00:00:00 GMT'')' + javascript: "Date('Sun, 17 Dec 1995 00:00:00 GMT')" python: >- datetime(1995, 12, 17, 0, 0, 0, tzinfo=timezone.utc).strftime('%a %b %d %Y %H:%M:%S %Z') @@ -1276,29 +1276,29 @@ tests: php: >- (new UTCDateTime(819158400000))->toDateTime()->format(\DateTimeInterface::RFC3339_EXTENDED) - ruby: 'Time.utc(1995, 12, 17, 0, 0, 0).strftime(''%a %b %d %Y %H:%M:%S %Z'')' + ruby: "Time.utc(1995, 12, 17, 0, 0, 0).strftime('%a %b %d %Y %H:%M:%S %Z')" rust: >- DateTime::parse_rfc3339_str("1995-12-17T00:00:00.000Z")?.to_rfc3339_string() go: 'time.Date(1995, 12, 17, 0, 0, 0, 0, time.UTC)' ISODate: - input: - shell: 'new ISODate(''1995-12-17T03:24:00.000Z'')' + shell: "new ISODate('1995-12-17T03:24:00.000Z')" output: python: 'datetime(1995, 12, 17, 3, 24, 0, tzinfo=timezone.utc)' java: new java.util.Date(819170640000L) csharp: 'new DateTime(1995, 12, 17, 3, 24, 0)' - javascript: 'new Date(''Sun, 17 Dec 1995 03:24:00 GMT'')' + javascript: "new Date('Sun, 17 Dec 1995 03:24:00 GMT')" php: new UTCDateTime(819170640000) ruby: 'Time.utc(1995, 12, 17, 3, 24, 0)' rust: 'DateTime::parse_rfc3339_str("1995-12-17T03:24:00.000Z")?' go: 'time.Date(1995, 12, 17, 3, 24, 0, 0, time.UTC)' - input: - shell: 'ISODate(''1995-12-17T03:24:00.000Z'')' + shell: "ISODate('1995-12-17T03:24:00.000Z')" output: python: 'datetime(1995, 12, 17, 3, 24, 0, tzinfo=timezone.utc)' java: new java.util.Date(819170640000L) csharp: 'new DateTime(1995, 12, 17, 3, 24, 0)' - javascript: 'new Date(''Sun, 17 Dec 1995 03:24:00 GMT'')' + javascript: "new Date('Sun, 17 Dec 1995 03:24:00 GMT')" php: new UTCDateTime(819170640000) ruby: 'Time.utc(1995, 12, 17, 3, 24, 0)' rust: 'DateTime::parse_rfc3339_str("1995-12-17T03:24:00.000Z")?' @@ -1332,7 +1332,7 @@ tests: input: shell: RegExp('') output: - javascript: 'new RegExp(''(?:)'')' + javascript: "new RegExp('(?:)')" python: 're.compile(r"(?:)")' java: 'Pattern.compile("(?:)")' csharp: 'new Regex("(?:)")' @@ -1354,9 +1354,9 @@ tests: go: 'primitive.Regex{Pattern: "abc"}' - description: regex object with im flags as args input: - shell: 'new RegExp(''ab+c'', ''im'')' + shell: "new RegExp('ab+c', 'im')" output: - javascript: 'new RegExp(''ab+c'', ''im'')' + javascript: "new RegExp('ab+c', 'im')" python: re.compile(r"ab+c(?im)") java: Pattern.compile("ab+c(?im)") csharp: new Regex("(?im)ab+c") @@ -1366,9 +1366,9 @@ tests: go: 'primitive.Regex{Pattern: "ab+c", Options: "im"}' - description: regex object with ig flags as args input: - shell: 'new RegExp(''ab+c'', ''ig'')' + shell: "new RegExp('ab+c', 'ig')" output: - javascript: 'new RegExp(''ab+c'', ''gi'')' + javascript: "new RegExp('ab+c', 'gi')" python: re.compile(r"ab+c(?is)") java: Pattern.compile("ab+c(?i)") csharp: new Regex("(?i)ab+c") @@ -1452,7 +1452,7 @@ tests: input: shell: /ab+c/ig output: - javascript: 'new RegExp(''ab+c'', ''gi'')' + javascript: "new RegExp('ab+c', 'gi')" python: re.compile(r"ab+c(?is)") java: Pattern.compile("ab+c(?i)") csharp: new Regex("(?i)ab+c") @@ -1462,9 +1462,9 @@ tests: go: 'primitive.Regex{Pattern: "ab+c", Options: "gi"}' - description: regex object with regex literal arg input: - shell: 'new RegExp(/ab+c/, ''i'')' + shell: "new RegExp(/ab+c/, 'i')" output: - javascript: 'new RegExp(''ab+c'', ''i'')' + javascript: "new RegExp('ab+c', 'i')" python: re.compile(r"ab+c(?i)") java: Pattern.compile("ab+c(?i)") csharp: new Regex("(?i)ab+c") diff --git a/packages/bson-transpilers/test/yaml/non-idiomatic.yaml b/packages/bson-transpilers/test/yaml/non-idiomatic.yaml index 19f2217b02a..acd4da6879c 100644 --- a/packages/bson-transpilers/test/yaml/non-idiomatic.yaml +++ b/packages/bson-transpilers/test/yaml/non-idiomatic.yaml @@ -19,13 +19,13 @@ tests: go: 'bson.D{{"x", 1}}' - description: Doc with trailing comma input: - shell: '{x: ''x''}' + shell: "{x: 'x'}" output: java: 'new Document("x", "x")' go: 'bson.D{{"x", "x"}}' - description: Doc with array input: - shell: '{x: [''x'', ''y'']}' + shell: "{x: ['x', 'y']}" output: java: 'new Document("x", Arrays.asList("x", "y"))' go: |- @@ -39,7 +39,7 @@ tests: } - description: Doc with subdoc input: - shell: '{x: {y: ''x''}}' + shell: "{x: {y: 'x'}}" output: java: 'new Document("x", new Document("y", "x"))' go: 'bson.D{{"x", bson.D{{"y", "x"}}}}' @@ -51,7 +51,7 @@ tests: go: 'bson.D{}' - description: Doc with declaration input: - shell: '{x: ObjectId(''5ab901c29ee65f5c8550c5b9'')}' + shell: "{x: ObjectId('5ab901c29ee65f5c8550c5b9')}" output: go: |- var objectIDFromHex = func(hex string) primitive.ObjectID { @@ -65,7 +65,7 @@ tests: bson.D{{"x", objectIDFromHex("5ab901c29ee65f5c8550c5b9")}} - description: Two items in document input: - shell: '{x: ''x'', n: ''4''}' + shell: "{x: 'x', n: '4'}" output: java: |- new Document("x", "x") @@ -124,7 +124,7 @@ tests: } - description: Array with subdoc input: - shell: '[''x'', { settings: ''http2'' }]' + shell: "['x', { settings: 'http2' }]" output: java: |- Arrays.asList("x", diff --git a/packages/bson-transpilers/test/yaml/partial.yaml b/packages/bson-transpilers/test/yaml/partial.yaml index 5d7876eee65..8f1f92fa9e4 100644 --- a/packages/bson-transpilers/test/yaml/partial.yaml +++ b/packages/bson-transpilers/test/yaml/partial.yaml @@ -521,7 +521,7 @@ tests: java: Decimal128.parse("5.3E-6175").toString csharp: Decimal128.Parse("5.3E-6175").ToString php: (string) new Decimal128('5.3E-6175') - ruby: 'BSON::Decimal128.new(''5.3E-6175'').to_s' + ruby: "BSON::Decimal128.new('5.3E-6175').to_s" go: |- var parseDecimal128 = func(str string) primitive.Decimal128 { d128, err := primitive.ParseDecimal128(str) @@ -646,32 +646,32 @@ tests: shell: BSONSymbol('2').valueOf output: javascript: new BSONSymbol('2').valueOf - python: '''2''' + python: "'2'" java: new Symbol("2").getSymbol csharp: '"2"' - php: '''2''' - ruby: ':''2''' + php: "'2'" + ruby: ":'2'" go: '' rust: 'Bson::Symbol("2").as_symbol().unwrap()' - input: shell: BSONSymbol('2').toString output: javascript: new BSONSymbol('2').toString - python: '''2''' + python: "'2'" java: new Symbol("2").toString csharp: '"2"' - php: '''2''' - ruby: '''2''' + php: "'2'" + ruby: "'2'" go: '' rust: 'Bson::Symbol("2").as_symbol().unwrap()' - input: shell: BSONSymbol('2').inspect output: javascript: new BSONSymbol('2').inspect - python: '''2''' + python: "'2'" java: new Symbol("2").getSymbol csharp: '"2"' - php: '''2''' - ruby: ':''2''.inspect' + php: "'2'" + ruby: ":'2'.inspect" go: '' rust: 'format!("{:?}", Bson::Symbol("2"))' diff --git a/packages/collection-model/index.d.ts b/packages/collection-model/index.d.ts index c0c415ef5a5..a1059c38dcc 100644 --- a/packages/collection-model/index.d.ts +++ b/packages/collection-model/index.d.ts @@ -83,14 +83,16 @@ interface CollectionProps { properties: { id: string; options?: unknown }[]; } +type CollectionDataService = Pick; + interface Collection extends CollectionProps { fetch(opts: { - dataService: DataService; + dataService: CollectionDataService; fetchInfo?: boolean; force?: boolean; }): Promise; fetchMetadata(opts: { - dataService: DataService; + dataService: CollectionDataService; }): Promise; on(evt: string, fn: (...args: any) => void); off(evt: string, fn: (...args: any) => void); @@ -102,7 +104,7 @@ interface Collection extends CollectionProps { } interface CollectionCollection extends Array { - fetch(opts: { dataService: DataService; fetchInfo?: boolean }): Promise; + fetch(opts: { dataService: CollectionDataService; fetchInfo?: boolean }): Promise; toJSON(opts?: { derived: boolean }): Array; at(index: number): Collection | undefined; get(id: string, key?: '_id' | 'name'): Collection | undefined; diff --git a/packages/collection-model/package.json b/packages/collection-model/package.json index 32ab151930f..cef931b6c19 100644 --- a/packages/collection-model/package.json +++ b/packages/collection-model/package.json @@ -2,7 +2,7 @@ "name": "mongodb-collection-model", "description": "MongoDB collection model", "author": "Lucas Hrabovsky ", - "version": "5.23.3", + "version": "5.23.4", "bugs": { "url": "https://jira.mongodb.org/projects/COMPASS/issues", "email": "compass@mongodb.com" @@ -31,7 +31,7 @@ "dependencies": { "ampersand-collection": "^2.0.2", "ampersand-model": "^8.0.1", - "mongodb-data-service": "^22.23.3", + "mongodb-data-service": "^22.23.4", "mongodb-ns": "^2.4.2" }, "devDependencies": { diff --git a/packages/compass-aggregations/package.json b/packages/compass-aggregations/package.json index 197c3337a90..3efb2151d61 100644 --- a/packages/compass-aggregations/package.json +++ b/packages/compass-aggregations/package.json @@ -2,7 +2,7 @@ "name": "@mongodb-js/compass-aggregations", "description": "Compass Aggregation Pipeline Builder", "private": true, - "version": "9.44.0", + "version": "9.45.2", "main": "dist/index.js", "compass:main": "src/index.ts", "types": "dist/index.d.ts", @@ -35,7 +35,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/babel__generator": "^7.6.8", "@types/enzyme": "^3.10.14", @@ -61,34 +61,34 @@ "@dnd-kit/core": "^6.0.7", "@dnd-kit/sortable": "^7.0.2", "@dnd-kit/utilities": "^3.2.1", - "@mongodb-js/atlas-service": "^0.28.3", - "@mongodb-js/compass-app-stores": "^7.28.0", - "@mongodb-js/compass-collection": "^4.41.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-crud": "^13.42.0", - "@mongodb-js/compass-editor": "^0.30.0", - "@mongodb-js/compass-field-store": "^9.17.0", - "@mongodb-js/compass-generative-ai": "^0.22.3", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-telemetry": "^1.1.7", + "@mongodb-js/atlas-service": "^0.29.0", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-collection": "^4.42.2", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-crud": "^13.43.2", + "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/compass-generative-ai": "^0.23.0", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.23.0", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/explain-plan-helper": "^1.2.3", "@mongodb-js/mongodb-constants": "^0.10.0", - "@mongodb-js/my-queries-storage": "^0.16.0", + "@mongodb-js/my-queries-storage": "^0.17.0", "@mongodb-js/shell-bson-parser": "^1.1.2", - "bson": "^6.7.0", - "compass-preferences-model": "^2.28.3", - "hadron-app-registry": "^9.2.6", + "bson": "^6.8.0", + "compass-preferences-model": "^2.29.0", + "hadron-app-registry": "^9.2.7", "hadron-document": "^8.6.3", "hadron-type-checker": "^7.2.2", "lodash": "^4.17.21", - "mongodb": "^6.8.0", - "mongodb-collection-model": "^5.23.3", - "mongodb-data-service": "^22.23.3", - "mongodb-database-model": "^2.23.3", - "mongodb-instance-model": "^12.24.3", + "mongodb": "^6.9.0", + "mongodb-collection-model": "^5.23.4", + "mongodb-data-service": "^22.23.4", + "mongodb-database-model": "^2.23.4", + "mongodb-instance-model": "^12.24.4", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "mongodb-schema": "^12.2.0", diff --git a/packages/compass-aggregations/src/index.ts b/packages/compass-aggregations/src/index.ts index fbe9d4df6d1..386fef6a51e 100644 --- a/packages/compass-aggregations/src/index.ts +++ b/packages/compass-aggregations/src/index.ts @@ -1,3 +1,4 @@ +import React from 'react'; import { registerHadronPlugin } from 'hadron-app-registry'; import { AggregationsPlugin } from './plugin'; import { activateAggregationsPlugin } from './stores/store'; @@ -28,11 +29,14 @@ import { atlasAuthServiceLocator } from '@mongodb-js/atlas-service/provider'; import { atlasAiServiceLocator } from '@mongodb-js/compass-generative-ai/provider'; import { pipelineStorageLocator } from '@mongodb-js/my-queries-storage/provider'; import { connectionRepositoryAccessLocator } from '@mongodb-js/compass-connections/provider'; +import { AggregationsTabTitle } from './plugin-title'; -export const CompassAggregationsHadronPlugin = registerHadronPlugin( +const CompassAggregationsHadronPlugin = registerHadronPlugin( { name: 'CompassAggregations', - component: AggregationsPlugin, + component: function AggregationsProvider({ children }) { + return React.createElement(React.Fragment, null, children); + }, activate: activateAggregationsPlugin, }, { @@ -57,7 +61,9 @@ export const CompassAggregationsHadronPlugin = registerHadronPlugin( export const CompassAggregationsPlugin = { name: 'Aggregations' as const, - component: CompassAggregationsHadronPlugin, + provider: CompassAggregationsHadronPlugin, + content: AggregationsPlugin, + header: AggregationsTabTitle, }; export const CreateViewPlugin = registerHadronPlugin( diff --git a/packages/compass-aggregations/src/modules/aggregation.ts b/packages/compass-aggregations/src/modules/aggregation.ts index 3c4efbe7e5d..ed9b9e39930 100644 --- a/packages/compass-aggregations/src/modules/aggregation.ts +++ b/packages/compass-aggregations/src/modules/aggregation.ts @@ -314,6 +314,7 @@ export const runAggregation = (): PipelineBuilderThunkAction> => { () => ({ num_stages: pipeline.length, editor_view_type: mapPipelineModeToEditorViewType(getState()), + stage_operators: pipeline.map((stage) => getStageOperator(stage)), }), connectionInfoRef.current ); diff --git a/packages/compass-aggregations/src/plugin-title.tsx b/packages/compass-aggregations/src/plugin-title.tsx new file mode 100644 index 00000000000..a2f32cae660 --- /dev/null +++ b/packages/compass-aggregations/src/plugin-title.tsx @@ -0,0 +1,5 @@ +import React from 'react'; + +export function AggregationsTabTitle() { + return
Aggregations
; +} diff --git a/packages/compass-aggregations/test/configure-store.ts b/packages/compass-aggregations/test/configure-store.ts index 369c889abb9..a211c17dea9 100644 --- a/packages/compass-aggregations/test/configure-store.ts +++ b/packages/compass-aggregations/test/configure-store.ts @@ -5,7 +5,7 @@ import type { import { mockDataService } from './mocks/data-service'; import { AtlasAuthService } from '@mongodb-js/atlas-service/provider'; import { createPluginTestHelpers } from '@mongodb-js/testing-library-compass'; -import { CompassAggregationsHadronPlugin } from '../src/index'; +import { CompassAggregationsPlugin } from '../src/index'; import type { DataService } from '@mongodb-js/compass-connections/provider'; import React from 'react'; import { PipelineStorageProvider } from '@mongodb-js/my-queries-storage/provider'; @@ -45,7 +45,7 @@ function getMockedPluginArgs( const atlasAuthService = new MockAtlasAuthService(); const atlasAiService = new MockAtlasAiService(); return [ - CompassAggregationsHadronPlugin.withMockServices({ + CompassAggregationsPlugin.provider.withMockServices({ atlasAuthService, atlasAiService, collection: { diff --git a/packages/compass-app-stores/package.json b/packages/compass-app-stores/package.json index c34959021e5..264955481ea 100644 --- a/packages/compass-app-stores/package.json +++ b/packages/compass-app-stores/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "7.28.0", + "version": "7.29.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -56,7 +56,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/mocha": "^9.0.0", @@ -73,14 +73,14 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/connection-info": "^0.8.0", - "hadron-app-registry": "^9.2.6", - "mongodb-collection-model": "^5.23.3", - "mongodb-database-model": "^2.23.3", - "mongodb-instance-model": "^12.24.3", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/connection-info": "^0.9.0", + "hadron-app-registry": "^9.2.7", + "mongodb-collection-model": "^5.23.4", + "mongodb-database-model": "^2.23.4", + "mongodb-instance-model": "^12.24.4", "mongodb-ns": "^2.4.2", "react": "^17.0.2" }, diff --git a/packages/compass-collection/package.json b/packages/compass-collection/package.json index a108e40be97..7000307b358 100644 --- a/packages/compass-collection/package.json +++ b/packages/compass-collection/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "4.41.0", + "version": "4.42.2", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -48,19 +48,18 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-app-stores": "^7.28.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-telemetry": "^1.1.7", - "@mongodb-js/compass-workspaces": "^0.23.0", - "@mongodb-js/connection-info": "^0.8.0", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/mongodb-constants": "^0.10.2", - "compass-preferences-model": "^2.28.3", - "hadron-app-registry": "^9.2.6", - "mongodb-collection-model": "^5.23.3", + "compass-preferences-model": "^2.29.0", + "hadron-app-registry": "^9.2.7", + "mongodb-collection-model": "^5.23.4", "mongodb-ns": "^2.4.2", - "numeral": "^2.0.6", "react": "^17.0.2", "react-redux": "^8.1.3", "redux": "^4.2.1", @@ -70,12 +69,11 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", "@types/mocha": "^9.0.0", - "@types/numeral": "^2.0.2", "@types/react": "^17.0.5", "@types/react-dom": "^17.0.10", "@types/sinon-chai": "^3.2.5", diff --git a/packages/compass-collection/src/components/collection-header/collection-header.tsx b/packages/compass-collection/src/components/collection-header/collection-header.tsx index 80a79eb299f..ac96847092f 100644 --- a/packages/compass-collection/src/components/collection-header/collection-header.tsx +++ b/packages/compass-collection/src/components/collection-header/collection-header.tsx @@ -14,10 +14,8 @@ import React, { useMemo } from 'react'; import toNS from 'mongodb-ns'; import { usePreference } from 'compass-preferences-model/provider'; import CollectionHeaderActions from '../collection-header-actions'; -import type { CollectionState } from '../../modules/collection-tab'; import { CollectionBadge } from './badges'; import { useOpenWorkspace } from '@mongodb-js/compass-workspaces/provider'; -import { connect } from 'react-redux'; import { useConnectionInfo } from '@mongodb-js/compass-connections/provider'; import { getConnectionTitle } from '@mongodb-js/connection-info'; @@ -177,11 +175,3 @@ export const CollectionHeader: React.FunctionComponent< ); }; - -const ConnectedCollectionHeader = connect((state: CollectionState) => { - return { - stats: state.stats, - }; -})(CollectionHeader); - -export default ConnectedCollectionHeader; diff --git a/packages/compass-collection/src/components/collection-header/index.ts b/packages/compass-collection/src/components/collection-header/index.ts index bffd33cbad1..66f50752afe 100644 --- a/packages/compass-collection/src/components/collection-header/index.ts +++ b/packages/compass-collection/src/components/collection-header/index.ts @@ -1,2 +1,2 @@ -import CollectionHeader from './collection-header'; +import { CollectionHeader } from './collection-header'; export default CollectionHeader; diff --git a/packages/compass-collection/src/components/collection-tab-provider.tsx b/packages/compass-collection/src/components/collection-tab-provider.tsx index fc46dfd2a98..b4a1fe94266 100644 --- a/packages/compass-collection/src/components/collection-tab-provider.tsx +++ b/packages/compass-collection/src/components/collection-tab-provider.tsx @@ -5,13 +5,15 @@ import type { CollectionSubtab } from '@mongodb-js/compass-workspaces'; export interface CollectionTabPlugin { name: CollectionSubtab; - component: HadronPluginComponent; + provider: HadronPluginComponent; + content: React.FunctionComponent; + header: React.FunctionComponent; } type CollectionTabComponentsProviderValue = { tabs: CollectionTabPlugin[]; - modals: CollectionTabPlugin['component'][]; - queryBar: CollectionTabPlugin['component']; + modals: CollectionTabPlugin['content'][]; + queryBar: CollectionTabPlugin['content']; }; const defaultComponents: CollectionTabComponentsProviderValue = { diff --git a/packages/compass-collection/src/components/collection-tab.tsx b/packages/compass-collection/src/components/collection-tab.tsx index 3d14a772922..f4da240c81b 100644 --- a/packages/compass-collection/src/components/collection-tab.tsx +++ b/packages/compass-collection/src/components/collection-tab.tsx @@ -1,12 +1,7 @@ import React, { useEffect } from 'react'; import { connect } from 'react-redux'; import { type CollectionState, selectTab } from '../modules/collection-tab'; -import { - css, - ErrorBoundary, - spacing, - TabNavBar, -} from '@mongodb-js/compass-components'; +import { css, ErrorBoundary, TabNavBar } from '@mongodb-js/compass-components'; import CollectionHeader from './collection-header'; import { useLogger } from '@mongodb-js/compass-logging/provider'; import { @@ -16,13 +11,12 @@ import { } from './collection-tab-provider'; import type { CollectionTabOptions } from '../stores/collection-tab'; import type { CollectionMetadata } from 'mongodb-collection-model'; -import { - CollectionDocumentsStats, - CollectionIndexesStats, -} from './collection-tab-stats'; import type { CollectionSubtab } from '@mongodb-js/compass-workspaces'; import { useTelemetry } from '@mongodb-js/compass-telemetry/provider'; -import { useConnectionInfoRef } from '@mongodb-js/compass-connections/provider'; +import { + useConnectionInfoRef, + useConnectionSupports, +} from '@mongodb-js/compass-connections/provider'; type CollectionSubtabTrackingId = Lowercase extends infer U ? U extends string @@ -58,31 +52,9 @@ const collectionModalContainerStyles = css({ zIndex: 100, }); -const tabTitleWithStatsStyles = css({ - display: 'flex', - gap: spacing[2], -}); -const TabTitleWithStats = ({ - title, - statsComponent, - 'data-testid': dataTestId, -}: { - title: string; - statsComponent: React.ReactNode; - 'data-testid'?: string; -}) => { - return ( -
- {title} - {statsComponent} -
- ); -}; - // Props from redux type ConnectionTabConnectedProps = { collectionMetadata: CollectionMetadata; - stats: CollectionState['stats']; onTabClick: (tab: CollectionSubtab) => void; }; @@ -116,6 +88,71 @@ type CollectionTabProps = Omit & ConnectionTabConnectedProps & ConnectionTabExpectedProps; +function WithErrorBoundary({ + children, + name, + type, +}: { + children: React.ReactNode; + name: string; + type: 'content' | 'header'; +}) { + const { log, mongoLogId } = useLogger('COMPASS-COLLECTION-TAB-UI'); + return ( + { + log.error( + mongoLogId(1001000107), + 'Collection Workspace', + 'Rendering collection tab failed', + { name, type, error: error.stack, errorInfo } + ); + }} + > + {children} + + ); +} + +function useCollectionTabs(props: CollectionMetadata) { + const pluginTabs = useCollectionSubTabs(); + const connectionInfoRef = useConnectionInfoRef(); + const isGlobalWritesSupported = useConnectionSupports( + connectionInfoRef.current.id, + 'globalWrites' + ); + return pluginTabs + .filter((x) => { + if (x.name === 'GlobalWrites' && !isGlobalWritesSupported) { + return false; + } + return true; + }) + .map(({ name, content: Content, provider: Provider, header: Header }) => { + // `pluginTabs` never change in runtime so it's safe to call the hook here + // eslint-disable-next-line react-hooks/rules-of-hooks + Provider.useActivate(props); + return { + name, + content: ( + + + + + + ), + title: ( + + +
+ + + ), + }; + }); +} + const CollectionTabWithMetadata: React.FunctionComponent< CollectionTabProps > = ({ @@ -128,11 +165,9 @@ const CollectionTabWithMetadata: React.FunctionComponent< collectionMetadata, subTab: currentTab, onTabClick, - stats, }) => { const track = useTelemetry(); const connectionInfoRef = useConnectionInfoRef(); - const { log, mongoLogId } = useLogger('COMPASS-COLLECTION-TAB-UI'); useEffect(() => { const activeSubTabName = currentTab ? trackingIdForTabName(currentTab) @@ -148,7 +183,6 @@ const CollectionTabWithMetadata: React.FunctionComponent< ); } }, [currentTab, track, connectionInfoRef]); - const pluginTabs = useCollectionSubTabs(); const pluginModals = useCollectionScopedModals(); const pluginProps = { @@ -161,16 +195,7 @@ const CollectionTabWithMetadata: React.FunctionComponent< editViewName: editViewName, }; - const tabs = pluginTabs.map(({ name, component: Component }) => { - // `pluginTabs` never change in runtime so it's safe to call the hook here - // eslint-disable-next-line react-hooks/rules-of-hooks - Component.useActivate(pluginProps); - - return { - name, - component: , - }; - }); + const tabs = useCollectionTabs(pluginProps); const activeTabIndex = tabs.findIndex((tab) => tab.name === currentTab); return ( @@ -183,58 +208,11 @@ const CollectionTabWithMetadata: React.FunctionComponent< tab.name)} - tabLabels={tabs.map((tab) => { - // We don't show stats, when the collection is a timeseries or a view - // or when the view is being edited - const hideStats = - collectionMetadata.isTimeSeries || - collectionMetadata.sourceName || - editViewName; - if (hideStats) { - return tab.name; - } - if (tab.name === 'Documents') { - return ( - } - /> - ); - } - if (tab.name === 'Indexes') { - return ( - } - /> - ); - } - return tab.name; - })} - views={tabs.map((tab) => { - return ( - { - log.error( - mongoLogId(1001000107), - 'Collection Workspace', - 'Rendering collection tab failed', - { name: tab.name, error: error.stack, errorInfo } - ); - }} - > - {tab.component} - - ); - })} activeTabIndex={activeTabIndex} onTabClicked={(id) => { onTabClick(tabs[id].name); }} + tabs={tabs} />
@@ -283,7 +261,6 @@ const ConnectedCollectionTab = connect( return { namespace: state.namespace, collectionMetadata: state.metadata, - stats: state.stats, }; }, { diff --git a/packages/compass-collection/src/modules/collection-tab.ts b/packages/compass-collection/src/modules/collection-tab.ts index 451c819f3ce..0edeba38b05 100644 --- a/packages/compass-collection/src/modules/collection-tab.ts +++ b/packages/compass-collection/src/modules/collection-tab.ts @@ -1,6 +1,5 @@ import type { Reducer, AnyAction, Action } from 'redux'; import type { CollectionMetadata } from 'mongodb-collection-model'; -import type Collection from 'mongodb-collection-model'; import type { ThunkAction } from 'redux-thunk'; import type AppRegistry from 'hadron-app-registry'; import type { workspacesServiceLocator } from '@mongodb-js/compass-workspaces/provider'; @@ -28,53 +27,14 @@ type CollectionThunkAction = ThunkAction< export type CollectionState = { workspaceTabId: string; namespace: string; - stats: Pick< - Collection, - | 'document_count' - | 'index_count' - | 'index_size' - | 'status' - | 'avg_document_size' - | 'storage_size' - | 'free_storage_size' - > | null; metadata: CollectionMetadata | null; editViewName?: string; }; -export function pickCollectionStats( - collection: Collection -): CollectionState['stats'] { - const { - document_count, - index_count, - index_size, - status, - avg_document_size, - storage_size, - free_storage_size, - } = collection.toJSON(); - return { - document_count, - index_count, - index_size, - status, - avg_document_size, - storage_size, - free_storage_size, - }; -} - enum CollectionActions { - CollectionStatsFetched = 'compass-collection/CollectionStatsFetched', CollectionMetadataFetched = 'compass-collection/CollectionMetadataFetched', } -interface CollectionStatsFetchedAction { - type: CollectionActions.CollectionStatsFetched; - collection: Collection; -} - interface CollectionMetadataFetchedAction { type: CollectionActions.CollectionMetadataFetched; metadata: CollectionMetadata; @@ -85,22 +45,10 @@ const reducer: Reducer = ( // TODO(COMPASS-7782): use hook to get the workspace tab id instead workspaceTabId: '', namespace: '', - stats: null, metadata: null, }, action ) => { - if ( - isAction( - action, - CollectionActions.CollectionStatsFetched - ) - ) { - return { - ...state, - stats: pickCollectionStats(action.collection), - }; - } if ( isAction( action, @@ -115,12 +63,6 @@ const reducer: Reducer = ( return state; }; -export const collectionStatsFetched = ( - collection: Collection -): CollectionStatsFetchedAction => { - return { type: CollectionActions.CollectionStatsFetched, collection }; -}; - export const collectionMetadataFetched = ( metadata: CollectionMetadata ): CollectionMetadataFetchedAction => { diff --git a/packages/compass-collection/src/stores/collection-tab.ts b/packages/compass-collection/src/stores/collection-tab.ts index f634ce5d17f..b0b10534fbb 100644 --- a/packages/compass-collection/src/stores/collection-tab.ts +++ b/packages/compass-collection/src/stores/collection-tab.ts @@ -3,10 +3,8 @@ import type { DataService } from '@mongodb-js/compass-connections/provider'; import { createStore, applyMiddleware } from 'redux'; import thunk from 'redux-thunk'; import reducer, { - collectionMetadataFetched, - collectionStatsFetched, - pickCollectionStats, selectTab, + collectionMetadataFetched, } from '../modules/collection-tab'; import type { Collection } from '@mongodb-js/compass-app-stores/provider'; import type { ActivateHelpers } from 'hadron-app-registry'; @@ -59,7 +57,6 @@ export function activatePlugin( workspaceTabId: tabId, namespace, metadata: null, - stats: pickCollectionStats(collectionModel), editViewName, }, applyMiddleware( @@ -83,16 +80,6 @@ export function activatePlugin( store.dispatch(selectTab('Aggregations')); }); - on(collectionModel, 'change:status', (model: Collection, status: string) => { - if (status === 'ready') { - store.dispatch(collectionStatsFetched(model)); - } - }); - - on(localAppRegistry, 'refresh-collection-stats', () => { - void collectionModel.fetch({ dataService, force: true }); - }); - void collectionModel.fetchMetadata({ dataService }).then((metadata) => { store.dispatch(collectionMetadataFetched(metadata)); }); diff --git a/packages/compass-components/README.md b/packages/compass-components/README.md index d3ffb56a088..b0421d33dee 100644 --- a/packages/compass-components/README.md +++ b/packages/compass-components/README.md @@ -1,17 +1,13 @@ -# @mongodb-js/compass-components [![][npm_img]][npm_url] +# @mongodb-js/compass-components -> A set of React Components which help build Compass +Compass Components package contains all foundational components and hooks used to build parts of Compass. Keeping all leafygreen dependencies and core UI components in a single package allows us to easier manage external depedendencies on LeafyGreen (including making sure that we never have multiple versions of the same LeafyGreen packages in the application at the same time as this can lead to technical issues) and make sure that the UI is consistently updated throughout the whole application. -## Resources +## Guidelines -- https://electron.atom.io/docs - Electron's documentation -- https://www.typescriptlang.org/ - Typescript -- https://nodejs.org/en/ - Node.js -- https://mochajs.org/ - Mocha testing framework -- https://reactjs.org/ - React -- https://testing-library.com/docs/react-testing-library/intro/ - React testing library -- https://github.com/mongodb/leafygreen-ui - LeafyGreen UI kit -- https://www.mongodb.design/ - MongoDB.Design - -[npm_img]: https://img.shields.io/npm/v/@mongodb-js/compass-components.svg?style=flat-square -[npm_url]: https://www.npmjs.org/package/@mongodb-js/compass-components +- If there is a foundational component available in LeafyGreen we **do not write our own**, instead we wrap that in compass-components and use it throughout Compass. LeafyGreen component usage should follow the "Design Documentation" for the component that is being used (when available). + - Refer to [LeafyGreen Design System](https://www.mongodb.design/) website to see all available LeafyGreen components. + - Ask in `#leafygreen-ui` Slack channel if you have any questions about the LeafyGreen component usage that the team can't help you answer or documentation is not sufficient. +- Components only use LeafyGreen variables for colors, typography, spacings, etc. Using custom values **should be avoided**. If Figma designs are not aligned with LeafyGreen design tokens, talk to the design team about that. +- Use [Web Content Accessibility Guidelines (WCAG)](https://www.w3.org/WAI/standards-guidelines/wcag/) guidelines when building components. + - A screenreader can be used to navigate through and interact with the components. + - Components are navigable by using tab and arrow keys. diff --git a/packages/compass-components/package.json b/packages/compass-components/package.json index 6146771023e..735e232ae6d 100644 --- a/packages/compass-components/package.json +++ b/packages/compass-components/package.json @@ -1,6 +1,6 @@ { "name": "@mongodb-js/compass-components", - "version": "1.29.4", + "version": "1.30.0", "description": "React Components used in Compass", "license": "SSPL", "main": "lib/index.js", @@ -76,7 +76,7 @@ "@react-aria/interactions": "^3.9.1", "@react-aria/utils": "^3.13.1", "@react-aria/visually-hidden": "^3.3.1", - "bson": "^6.7.0", + "bson": "^6.8.0", "focus-trap-react": "^9.0.2", "hadron-document": "^8.6.3", "hadron-type-checker": "^7.2.2", @@ -95,7 +95,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", diff --git a/packages/compass-components/src/components/item-action-controls.tsx b/packages/compass-components/src/components/item-action-controls.tsx index 95d6a06eba4..5297b7a6211 100644 --- a/packages/compass-components/src/components/item-action-controls.tsx +++ b/packages/compass-components/src/components/item-action-controls.tsx @@ -504,6 +504,7 @@ export function DropdownMenuButton({ buttonProps, iconSize = ItemActionButtonSize.Default, 'data-testid': dataTestId, + hideOnNarrow = true, }: { actions: MenuAction[]; onAction(actionName: Action): void; @@ -514,6 +515,7 @@ export function DropdownMenuButton({ 'data-testid'?: string; buttonText: string; buttonProps: ButtonProps; + hideOnNarrow?: boolean; }) { // this ref is used by the Menu component to calculate the height and position // of the menu, and by us to give back the focus to the trigger when the menu @@ -567,7 +569,9 @@ export function DropdownMenuButton({ rightGlyph={} title={buttonText} > - {buttonText} + + {buttonText} + {children} ); diff --git a/packages/compass-components/src/components/tab-nav-bar.spec.tsx b/packages/compass-components/src/components/tab-nav-bar.spec.tsx index a1a0fe0b89a..9d400606c51 100644 --- a/packages/compass-components/src/components/tab-nav-bar.spec.tsx +++ b/packages/compass-components/src/components/tab-nav-bar.spec.tsx @@ -21,18 +21,32 @@ describe('TabNavBar Component', function () { describe('when rendered with tabs', function () { beforeEach(function () { - const views = [ - , - , - , - , + const tabs = [ + { + name: 'one', + title: 'one', + content: , + }, + { + name: 'two', + title: 'two', + content: , + }, + { + name: 'three', + title: 'three', + content: , + }, + { + name: 'four', + title:

four

, + content: , + }, ]; onTabClickedSpy = sinon.spy(); render( four

]} - views={views} + tabs={tabs} aria-label="Test tabs label" onTabClicked={onTabClickedSpy} activeTabIndex={2} diff --git a/packages/compass-components/src/components/tab-nav-bar.tsx b/packages/compass-components/src/components/tab-nav-bar.tsx index 5d32bfdc0d5..7b1b6a36595 100644 --- a/packages/compass-components/src/components/tab-nav-bar.tsx +++ b/packages/compass-components/src/components/tab-nav-bar.tsx @@ -33,18 +33,16 @@ const tabStyles = css({ minHeight: 0, }); -const hiddenStyles = css({ - display: 'none', -}); - type TabNavBarProps = { 'data-testid'?: string; 'aria-label': string; activeTabIndex: number; - tabNames: string[]; - tabLabels: React.ReactNode[]; - views: React.ReactElement[]; onTabClicked: (tabIndex: number) => void; + tabs: Array<{ + name: string; + content: React.ReactNode; + title: React.ReactNode; + }>; }; /** @@ -56,10 +54,8 @@ function TabNavBar({ 'data-testid': dataTestId, 'aria-label': ariaLabel, activeTabIndex, - tabNames, - tabLabels, - views, onTabClicked, + tabs, }: TabNavBarProps): React.ReactElement | null { const darkMode = useDarkMode(); @@ -78,36 +74,31 @@ function TabNavBar({ setSelected={onTabClicked} selected={activeTabIndex} > - {tabLabels.map((tab, idx) => ( - {tab}} - /> - ))} + {tabs.map(({ name, title }, idx) => { + return ( + + ); + })}
- {views.map( - (view, idx) => - idx === activeTabIndex && ( + {tabs.map(({ name, content }, idx) => { + if (idx === activeTabIndex) { + return (
- {view} + {content}
- ) - )} + ); + } + })} ); } diff --git a/packages/compass-connection-import-export/package.json b/packages/compass-connection-import-export/package.json index 9ae74b9211c..65f9da8d486 100644 --- a/packages/compass-connection-import-export/package.json +++ b/packages/compass-connection-import-export/package.json @@ -14,7 +14,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.38.0", + "version": "0.39.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -51,10 +51,10 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/connection-storage": "^0.21.0", - "compass-preferences-model": "^2.28.3", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/connection-storage": "^0.22.0", + "compass-preferences-model": "^2.29.0", "hadron-ipc": "^3.2.23", "react": "^17.0.2" }, @@ -62,7 +62,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", diff --git a/packages/compass-connections-navigation/package.json b/packages/compass-connections-navigation/package.json index 0df6dd96fdd..419f4f67123 100644 --- a/packages/compass-connections-navigation/package.json +++ b/packages/compass-connections-navigation/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.41.0", + "version": "1.42.2", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -49,12 +49,12 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/connection-info": "^0.8.0", - "@mongodb-js/connection-form": "^1.40.0", - "@mongodb-js/compass-workspaces": "^0.23.0", - "compass-preferences-model": "^2.28.3", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/connection-info": "^0.9.0", + "@mongodb-js/connection-form": "^1.41.1", + "@mongodb-js/compass-workspaces": "^0.24.2", + "compass-preferences-model": "^2.29.0", "mongodb-build-info": "^1.7.2", "react": "^17.0.2", "react-virtualized-auto-sizer": "^1.0.6", @@ -64,7 +64,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", diff --git a/packages/compass-connections-navigation/src/item-actions.ts b/packages/compass-connections-navigation/src/item-actions.ts index 4a78bc2b4c5..7930ed44e8c 100644 --- a/packages/compass-connections-navigation/src/item-actions.ts +++ b/packages/compass-connections-navigation/src/item-actions.ts @@ -7,14 +7,12 @@ export type NavigationItemActions = (ItemAction | ItemSeparator)[]; export const notConnectedConnectionItemActions = ({ connectionInfo, - hideEditConnect = false, }: { connectionInfo: ConnectionInfo; - hideEditConnect?: boolean; }): NavigationItemActions => { const isAtlas = !!connectionInfo.atlasMetadata; const actions: (ItemAction | ItemSeparator | null)[] = [ - hideEditConnect || isAtlas + isAtlas ? null : { action: 'edit-connection', @@ -85,8 +83,6 @@ export const connectedConnectionItemActions = ({ const isAtlas = !!connectionInfo.atlasMetadata; const connectionManagementActions = notConnectedConnectionItemActions({ connectionInfo, - // for connected connections we don't show connect action - hideEditConnect: true, }); const actions: (ItemAction | ItemSeparator | null)[] = [ hasWriteActionsDisabled diff --git a/packages/compass-connections/package.json b/packages/compass-connections/package.json index 025ae2c07d8..78e8bb6fa88 100644 --- a/packages/compass-connections/package.json +++ b/packages/compass-connections/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.42.0", + "version": "1.43.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -51,21 +51,21 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-maybe-protect-connection-string": "^0.26.3", - "@mongodb-js/compass-telemetry": "^1.1.7", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.0", + "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/connection-form": "^1.40.0", - "@mongodb-js/connection-info": "^0.8.0", - "@mongodb-js/connection-storage": "^0.21.0", - "bson": "^6.7.0", - "compass-preferences-model": "^2.28.3", - "hadron-app-registry": "^9.2.6", + "@mongodb-js/connection-form": "^1.41.1", + "@mongodb-js/connection-info": "^0.9.0", + "@mongodb-js/connection-storage": "^0.22.0", + "bson": "^6.8.0", + "compass-preferences-model": "^2.29.0", + "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mongodb-build-info": "^1.7.2", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.3", + "mongodb-data-service": "^22.23.4", "react": "^17.0.2", "react-redux": "^8.1.3", "redux": "^4.2.1", @@ -75,7 +75,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", diff --git a/packages/compass-connections/src/components/legacy-connections.spec.tsx b/packages/compass-connections/src/components/legacy-connections.spec.tsx index 55034c5a608..6a09b91114c 100644 --- a/packages/compass-connections/src/components/legacy-connections.spec.tsx +++ b/packages/compass-connections/src/components/legacy-connections.spec.tsx @@ -25,7 +25,7 @@ async function loadSavedConnectionAndConnect(connectionInfo: ConnectionInfo) { ) ); - const connectButton = screen.getByRole('button', { name: 'Connect' }); + const connectButton = screen.getByRole('button', { name: 'Save & Connect' }); userEvent.click(connectButton); // Wait for the connecting... modal to hide. @@ -267,7 +267,9 @@ describe.skip('Connections Component', function () { ) ); - const connectButton = screen.getByRole('button', { name: 'Connect' }); + const connectButton = screen.getByRole('button', { + name: 'Save & Connect', + }); userEvent.click(connectButton); // Wait for the connecting... modal to be shown. @@ -288,7 +290,9 @@ describe.skip('Connections Component', function () { }); it('should enable the connect button', function () { - const connectButton = screen.getByText('Connect'); + const connectButton = screen.getByRole('button', { + name: 'Save & Connect', + }); expect(connectButton).to.not.match('disabled'); }); diff --git a/packages/compass-connections/src/components/legacy-connections.tsx b/packages/compass-connections/src/components/legacy-connections.tsx index b47138d32bb..5da0cd144c2 100644 --- a/packages/compass-connections/src/components/legacy-connections.tsx +++ b/packages/compass-connections/src/components/legacy-connections.tsx @@ -191,8 +191,8 @@ function Connections({ onSaveClicked={saveEditedConnection} initialConnectionInfo={activeConnectionInfo} connectionErrorMessage={connectionErrorMessage} - preferences={connectionFormPreferences} openSettingsModal={openSettingsModal} + {...connectionFormPreferences} /> diff --git a/packages/compass-connections/src/hooks/use-connection-supports.spec.ts b/packages/compass-connections/src/hooks/use-connection-supports.spec.ts index 846b386f5b4..88ec3ec4015 100644 --- a/packages/compass-connections/src/hooks/use-connection-supports.spec.ts +++ b/packages/compass-connections/src/hooks/use-connection-supports.spec.ts @@ -23,6 +23,8 @@ const mockConnections: ConnectionInfo[] = [ metricsId: 'metricsId', metricsType: 'host', instanceSize: 'M10', + clusterType: 'REPLICASET', + clusterUniqueId: 'clusterUniqueId', }, }, { @@ -38,6 +40,8 @@ const mockConnections: ConnectionInfo[] = [ metricsId: 'metricsId', metricsType: 'replicaSet', instanceSize: 'M0', + clusterType: 'REPLICASET', + clusterUniqueId: 'clusterUniqueId', }, }, { @@ -53,6 +57,8 @@ const mockConnections: ConnectionInfo[] = [ metricsId: 'metricsId', metricsType: 'serverless', instanceSize: 'SERVERLESS_V2', + clusterType: 'REPLICASET', + clusterUniqueId: 'clusterUniqueId', }, }, { @@ -68,6 +74,8 @@ const mockConnections: ConnectionInfo[] = [ metricsId: 'metricsId', metricsType: 'replicaSet', instanceSize: 'M10', + clusterType: 'REPLICASET', + clusterUniqueId: 'clusterUniqueId', }, }, { @@ -83,79 +91,132 @@ const mockConnections: ConnectionInfo[] = [ metricsId: 'metricsId', metricsType: 'cluster', instanceSize: 'M10', + clusterType: 'SHARDED', + clusterUniqueId: 'clusterUniqueId', + }, + }, + { + id: 'dedicated-geo-sharded', + connectionOptions: { + connectionString: 'mongodb://foo', + }, + atlasMetadata: { + orgId: 'orgId', + projectId: 'projectId', + clusterName: 'clusterName', + regionalBaseUrl: 'https://example.com', + metricsId: 'metricsId', + metricsType: 'cluster', + instanceSize: 'M30', + clusterType: 'GEOSHARDED', + clusterUniqueId: 'clusterUniqueId', }, }, ]; describe('useConnectionSupports', function () { - it('should return false if the connection does not exist', function () { - const { result } = renderHookWithConnections( - () => useConnectionSupports('does-not-exist', 'rollingIndexCreation'), - { - connections: mockConnections, - } - ); - expect(result.current).to.equal(false); - }); + context('rollingIndexCreation', function () { + it('should return false if the connection does not exist', function () { + const { result } = renderHookWithConnections( + () => useConnectionSupports('does-not-exist', 'rollingIndexCreation'), + { + connections: mockConnections, + } + ); + expect(result.current).to.equal(false); + }); - it('should return false if the connection has no atlasMetadata', function () { - const { result } = renderHookWithConnections( - () => useConnectionSupports('no-atlasMetadata', 'rollingIndexCreation'), - { - connections: mockConnections, - } - ); - expect(result.current).to.equal(false); - }); + it('should return false if the connection has no atlasMetadata', function () { + const { result } = renderHookWithConnections( + () => useConnectionSupports('no-atlasMetadata', 'rollingIndexCreation'), + { + connections: mockConnections, + } + ); + expect(result.current).to.equal(false); + }); - it('should return false for host cluster type', function () { - const { result } = renderHookWithConnections( - () => useConnectionSupports('host-cluster', 'rollingIndexCreation'), - { - connections: mockConnections, - } - ); - expect(result.current).to.equal(false); - }); + it('should return false for host cluster type', function () { + const { result } = renderHookWithConnections( + () => useConnectionSupports('host-cluster', 'rollingIndexCreation'), + { + connections: mockConnections, + } + ); + expect(result.current).to.equal(false); + }); - it('should return false for serverless cluster type', function () { - const { result } = renderHookWithConnections( - () => useConnectionSupports('serverless-cluster', 'rollingIndexCreation'), - { - connections: mockConnections, - } - ); - expect(result.current).to.equal(false); - }); + it('should return false for serverless cluster type', function () { + const { result } = renderHookWithConnections( + () => + useConnectionSupports('serverless-cluster', 'rollingIndexCreation'), + { + connections: mockConnections, + } + ); + expect(result.current).to.equal(false); + }); - it('should return false for free/shared tier clusters', function () { - const { result } = renderHookWithConnections( - () => useConnectionSupports('free-cluster', 'rollingIndexCreation'), - { - connections: mockConnections, - } - ); - expect(result.current).to.equal(false); - }); + it('should return false for free/shared tier clusters', function () { + const { result } = renderHookWithConnections( + () => useConnectionSupports('free-cluster', 'rollingIndexCreation'), + { + connections: mockConnections, + } + ); + expect(result.current).to.equal(false); + }); + + it('should return true for dedicated replicaSet clusters', function () { + const { result } = renderHookWithConnections( + () => + useConnectionSupports('dedicated-replicaSet', 'rollingIndexCreation'), + { + connections: mockConnections, + } + ); + expect(result.current).to.equal(true); + }); - it('should return true for dedicated replicaSet clusters', function () { - const { result } = renderHookWithConnections( - () => - useConnectionSupports('dedicated-replicaSet', 'rollingIndexCreation'), - { - connections: mockConnections, - } - ); - expect(result.current).to.equal(true); + it('should return true for dedicated sharded clusters', function () { + const { result } = renderHookWithConnections( + () => + useConnectionSupports('dedicated-sharded', 'rollingIndexCreation'), + { + connections: mockConnections, + } + ); + expect(result.current).to.equal(true); + }); }); + context('globalWrites', function () { + it('should return false if the connection does not exist', function () { + const { result } = renderHookWithConnections( + () => useConnectionSupports('does-not-exist', 'globalWrites'), + { + connections: mockConnections, + } + ); + expect(result.current).to.equal(false); + }); + it('should return false if the connection has no atlasMetadata', function () { + const { result } = renderHookWithConnections( + () => useConnectionSupports('no-atlasMetadata', 'globalWrites'), + { + connections: mockConnections, + } + ); + expect(result.current).to.equal(false); + }); - it('should return true for dedicated sharded clusters', function () { - const { result } = renderHookWithConnections( - () => useConnectionSupports('dedicated-sharded', 'rollingIndexCreation'), - { - connections: mockConnections, - } - ); - expect(result.current).to.equal(true); + it('should return true if the cluster type is geosharded', function () { + const { result } = renderHookWithConnections( + () => useConnectionSupports('dedicated-geo-sharded', 'globalWrites'), + { + connections: mockConnections, + } + ); + expect(result.current).to.equal(true); + }); }); }); diff --git a/packages/compass-connections/src/hooks/use-connection-supports.ts b/packages/compass-connections/src/hooks/use-connection-supports.ts index 2a1db5a294c..27ffd75809b 100644 --- a/packages/compass-connections/src/hooks/use-connection-supports.ts +++ b/packages/compass-connections/src/hooks/use-connection-supports.ts @@ -1,30 +1,7 @@ import { useSelector } from '../stores/store-context'; -import type { ConnectionState } from '../stores/connections-store-redux'; +import type { ConnectionFeature } from '../utils/connection-supports'; +import { connectionSupports } from '../utils/connection-supports'; -// only one for now -type ConnectionFeature = 'rollingIndexCreation'; - -function isFreeOrSharedTierCluster(instanceSize: string | undefined): boolean { - if (!instanceSize) { - return false; - } - - return ['M0', 'M2', 'M5'].includes(instanceSize); -} - -function supportsRollingIndexCreation(connection: ConnectionState) { - const atlasMetadata = connection.info?.atlasMetadata; - - if (!atlasMetadata) { - return false; - } - - const { metricsType, instanceSize } = atlasMetadata; - return ( - !isFreeOrSharedTierCluster(instanceSize) && - (metricsType === 'cluster' || metricsType === 'replicaSet') - ); -} export function useConnectionSupports( connectionId: string, connectionFeature: ConnectionFeature @@ -36,10 +13,6 @@ export function useConnectionSupports( return false; } - if (connectionFeature === 'rollingIndexCreation') { - return supportsRollingIndexCreation(connection); - } - - return false; + return connectionSupports(connection.info, connectionFeature); }); } diff --git a/packages/compass-connections/src/index.tsx b/packages/compass-connections/src/index.tsx index f24a5758529..daf8203eccb 100644 --- a/packages/compass-connections/src/index.tsx +++ b/packages/compass-connections/src/index.tsx @@ -22,6 +22,8 @@ export { LegacyConnectionsModal } from './components/legacy-connections-modal'; export { useConnectionFormPreferences } from './hooks/use-connection-form-preferences'; import type { connect as devtoolsConnect } from 'mongodb-data-service'; import type { ExtraConnectionData as ExtraConnectionDataForTelemetry } from '@mongodb-js/compass-telemetry'; +export type { ConnectionFeature } from './utils/connection-supports'; +export { connectionSupports } from './utils/connection-supports'; const ConnectionsComponent: React.FunctionComponent<{ appName: string; diff --git a/packages/compass-connections/src/provider.ts b/packages/compass-connections/src/provider.ts index dee73bd3e64..96c74721ddf 100644 --- a/packages/compass-connections/src/provider.ts +++ b/packages/compass-connections/src/provider.ts @@ -98,6 +98,7 @@ export { } from './stores/store-context'; export { useConnectionsStore as useConnections }; +export { useConnectionSupports } from './hooks/use-connection-supports'; const ConnectionStatus = { /** diff --git a/packages/compass-connections/src/stores/connections-store-redux.ts b/packages/compass-connections/src/stores/connections-store-redux.ts index 886675028fc..368e5875e65 100644 --- a/packages/compass-connections/src/stores/connections-store-redux.ts +++ b/packages/compass-connections/src/stores/connections-store-redux.ts @@ -313,6 +313,9 @@ type ConnectionAutoconnectCheckAction = { type ConnectionAttemptStartAction = { type: ActionTypes.ConnectionAttemptStart; connectionInfo: ConnectionInfo; + options: { + forceSave: boolean; + }; }; type ConnectionAttemptSuccessAction = { @@ -823,10 +826,13 @@ const reducer: Reducer = (state = INITIAL_STATE, action) => { state.connections, action.connectionInfo.id, { - ...(isNewConnection(state, action.connectionInfo.id) + ...(isNewConnection(state, action.connectionInfo.id) || + action.options.forceSave ? { - // For new connections, update the state with new info right - // away (we will also save it to the storage at the end) + // For new connections or when we're forcing a + // save (the Save & Connect button), update the state with new + // info right away (we will also save it to the storage at the + // end) info: action.connectionInfo, } : { @@ -1464,6 +1470,35 @@ export const connect = ( | ConnectionAttemptSuccessAction | ConnectionAttemptCancelledAction | OidcNotifyDeviceAuthAction +> => { + return connectWithOptions(connectionInfo, { forceSave: false }); +}; + +export const saveAndConnect = ( + connectionInfo: ConnectionInfo +): ConnectionsThunkAction< + Promise, + | ConnectionAttemptStartAction + | ConnectionAttemptErrorAction + | ConnectionAttemptSuccessAction + | ConnectionAttemptCancelledAction + | OidcNotifyDeviceAuthAction +> => { + return connectWithOptions(connectionInfo, { forceSave: true }); +}; + +const connectWithOptions = ( + connectionInfo: ConnectionInfo, + options: { + forceSave: boolean; + } +): ConnectionsThunkAction< + Promise, + | ConnectionAttemptStartAction + | ConnectionAttemptErrorAction + | ConnectionAttemptSuccessAction + | ConnectionAttemptCancelledAction + | OidcNotifyDeviceAuthAction > => { return async ( dispatch, @@ -1516,6 +1551,7 @@ export const connect = ( dispatch({ type: ActionTypes.ConnectionAttemptStart, connectionInfo, + options: { forceSave: options.forceSave }, }); track( diff --git a/packages/compass-connections/src/stores/connections-store.spec.tsx b/packages/compass-connections/src/stores/connections-store.spec.tsx index f0f23139ea0..680118364bf 100644 --- a/packages/compass-connections/src/stores/connections-store.spec.tsx +++ b/packages/compass-connections/src/stores/connections-store.spec.tsx @@ -323,6 +323,37 @@ describe('useConnections', function () { } }); + describe('#saveAndConnect', function () { + it('saves the connection options before connecting', async function () { + const { result, track, connectionStorage } = renderHookWithConnections( + useConnections, + { + connections: mockConnections, + preferences: defaultPreferences, + } + ); + + const updatedConnection = { + ...mockConnections[0], + savedConnectionType: 'recent' as const, + }; + + await result.current.saveAndConnect(updatedConnection); + + await waitFor(() => { + expect(track.getCall(1).firstArg).to.eq('New Connection'); + }); + + expect( + await connectionStorage.load({ id: updatedConnection.id }) + ).to.have.property('savedConnectionType', 'recent'); + + expect( + screen.getByText(`Connected to ${mockConnections[0].favorite.name}`) + ).to.exist; + }); + }); + describe('#disconnect', function () { it('disconnect even if connection is in progress cleaning up progress toasts', async function () { const { result, track } = renderHookWithConnections(useConnections, { diff --git a/packages/compass-connections/src/stores/connections-store.tsx b/packages/compass-connections/src/stores/connections-store.tsx index 1259a364e11..523fa5c7c48 100644 --- a/packages/compass-connections/src/stores/connections-store.tsx +++ b/packages/compass-connections/src/stores/connections-store.tsx @@ -5,6 +5,7 @@ type State = { connectionErrors: Record; editingConnectionInfo: ConnectionInfo; isEditingConnectionInfoModalOpen: boolean; + isEditingNewConnection: boolean; oidcDeviceAuthState: Record; }; @@ -15,6 +16,7 @@ export function useConnections(): { state: State; connect: (connectionInfo: ConnectionInfo) => Promise; + saveAndConnect: (connectionInfo: ConnectionInfo) => Promise; disconnect: (connectionId: string) => void; createNewConnection: () => void; @@ -32,16 +34,16 @@ export function useConnections(): { showNonGenuineMongoDBWarningModal: (connectionId: string) => void; } { const connectionsState = useConnectionsState(); + const editingConnection = + connectionsState.connections.byId[connectionsState.editingConnectionInfoId]; const state = { connectionErrors: Object.fromEntries( Object.entries(connectionsState.connections.byId).map(([k, v]) => { return [k, v.error ?? null]; }) ), - editingConnectionInfo: - connectionsState.connections.byId[ - connectionsState.editingConnectionInfoId - ].info, + editingConnectionInfo: editingConnection.info, + isEditingNewConnection: !!editingConnection.isBeingCreated, isEditingConnectionInfoModalOpen: connectionsState.isEditingConnectionInfoModalOpen, oidcDeviceAuthState: Object.fromEntries( @@ -52,6 +54,7 @@ export function useConnections(): { }; const { connect, + saveAndConnect, disconnect, createNewConnection, editConnection, @@ -66,6 +69,7 @@ export function useConnections(): { return { state, connect, + saveAndConnect, disconnect, createNewConnection, editConnection, diff --git a/packages/compass-connections/src/stores/store-context.tsx b/packages/compass-connections/src/stores/store-context.tsx index 39c6cc778dd..80a66aa7978 100644 --- a/packages/compass-connections/src/stores/store-context.tsx +++ b/packages/compass-connections/src/stores/store-context.tsx @@ -18,6 +18,7 @@ import type { import { cancelEditConnection, connect as connectionsConnect, + saveAndConnect, connectionsEventEmitter, createNewConnection, disconnect, @@ -87,6 +88,9 @@ function getConnectionsActions(dispatch: ConnectionsStore['dispatch']) { connect: (connectionInfo: ConnectionInfo) => { return dispatch(connectionsConnect(connectionInfo)); }, + saveAndConnect: (connectionInfo: ConnectionInfo) => { + return dispatch(saveAndConnect(connectionInfo)); + }, disconnect: (connectionId: ConnectionId) => { return dispatch(disconnect(connectionId)); }, diff --git a/packages/compass-connections/src/utils/connection-supports.spec.ts b/packages/compass-connections/src/utils/connection-supports.spec.ts new file mode 100644 index 00000000000..de32f2abbcd --- /dev/null +++ b/packages/compass-connections/src/utils/connection-supports.spec.ts @@ -0,0 +1,199 @@ +import { connectionSupports } from './connection-supports'; +import { type ConnectionInfo } from '@mongodb-js/connection-storage/provider'; +import { expect } from 'chai'; + +const mockConnections: ConnectionInfo[] = [ + { + id: 'no-atlasMetadata', + connectionOptions: { + connectionString: 'mongodb://foo', + }, + }, + { + id: 'host-cluster', + connectionOptions: { + connectionString: 'mongodb://foo', + }, + atlasMetadata: { + orgId: 'orgId', + projectId: 'projectId', + clusterName: 'clusterName', + regionalBaseUrl: 'https://example.com', + metricsId: 'metricsId', + metricsType: 'host', + instanceSize: 'M10', + clusterType: 'REPLICASET', + clusterUniqueId: 'clusterUniqueId', + }, + }, + { + id: 'free-cluster', + connectionOptions: { + connectionString: 'mongodb://foo', + }, + atlasMetadata: { + orgId: 'orgId', + projectId: 'projectId', + clusterName: 'clusterName', + regionalBaseUrl: 'https://example.com', + metricsId: 'metricsId', + metricsType: 'replicaSet', + instanceSize: 'M0', + clusterType: 'REPLICASET', + clusterUniqueId: 'clusterUniqueId', + }, + }, + { + id: 'serverless-cluster', + connectionOptions: { + connectionString: 'mongodb://foo', + }, + atlasMetadata: { + orgId: 'orgId', + projectId: 'projectId', + clusterName: 'clusterName', + regionalBaseUrl: 'https://example.com', + metricsId: 'metricsId', + metricsType: 'serverless', + instanceSize: 'SERVERLESS_V2', + clusterType: 'REPLICASET', + clusterUniqueId: 'clusterUniqueId', + }, + }, + { + id: 'dedicated-replicaSet', + connectionOptions: { + connectionString: 'mongodb://foo', + }, + atlasMetadata: { + orgId: 'orgId', + projectId: 'projectId', + clusterName: 'clusterName', + regionalBaseUrl: 'https://example.com', + metricsId: 'metricsId', + metricsType: 'replicaSet', + instanceSize: 'M10', + clusterType: 'REPLICASET', + clusterUniqueId: 'clusterUniqueId', + }, + }, + { + id: 'dedicated-sharded', + connectionOptions: { + connectionString: 'mongodb://foo', + }, + atlasMetadata: { + orgId: 'orgId', + projectId: 'projectId', + clusterName: 'clusterName', + regionalBaseUrl: 'https://example.com', + metricsId: 'metricsId', + metricsType: 'cluster', + instanceSize: 'M10', + clusterType: 'SHARDED', + clusterUniqueId: 'clusterUniqueId', + }, + }, + { + id: 'dedicated-geo-sharded', + connectionOptions: { + connectionString: 'mongodb://foo', + }, + atlasMetadata: { + orgId: 'orgId', + projectId: 'projectId', + clusterName: 'clusterName', + regionalBaseUrl: 'https://example.com', + metricsId: 'metricsId', + metricsType: 'cluster', + instanceSize: 'M30', + clusterType: 'GEOSHARDED', + clusterUniqueId: 'clusterUniqueId', + }, + }, +]; + +function connectionInfoById(connectionId: string): ConnectionInfo { + const connectionInfo = mockConnections.find(({ id }) => id === connectionId); + if (!connectionInfo) { + throw new Error(`No connection for id "${connectionId}"`); + } + return connectionInfo; +} + +describe('connectionSupports', function () { + context('rollingIndexCreation', function () { + it('should return false if the connection has no atlasMetadata', function () { + expect( + connectionSupports( + connectionInfoById('no-atlasMetadata'), + 'rollingIndexCreation' + ) + ).to.be.false; + }); + + it('should return false for host cluster type', function () { + expect( + connectionSupports( + connectionInfoById('host-cluster'), + 'rollingIndexCreation' + ) + ).to.be.false; + }); + + it('should return false for serverless cluster type', function () { + expect( + connectionSupports( + connectionInfoById('serverless-cluster'), + 'rollingIndexCreation' + ) + ).to.be.false; + }); + + it('should return false for free/shared tier clusters', function () { + expect( + connectionSupports( + connectionInfoById('free-cluster'), + 'rollingIndexCreation' + ) + ).to.be.false; + }); + + it('should return true for dedicated replicaSet clusters', function () { + expect( + connectionSupports( + connectionInfoById('dedicated-replicaSet'), + 'rollingIndexCreation' + ) + ).to.be.true; + }); + + it('should return true for dedicated sharded clusters', function () { + expect( + connectionSupports( + connectionInfoById('dedicated-sharded'), + 'rollingIndexCreation' + ) + ).to.be.true; + }); + }); + context('globalWrites', function () { + it('should return false if the connection has no atlasMetadata', function () { + expect( + connectionSupports( + connectionInfoById('no-atlasMetadata'), + 'globalWrites' + ) + ).to.be.false; + }); + + it('should return true if the cluster type is geosharded', function () { + expect( + connectionSupports( + connectionInfoById('dedicated-geo-sharded'), + 'globalWrites' + ) + ).to.be.true; + }); + }); +}); diff --git a/packages/compass-connections/src/utils/connection-supports.ts b/packages/compass-connections/src/utils/connection-supports.ts new file mode 100644 index 00000000000..cec5c564462 --- /dev/null +++ b/packages/compass-connections/src/utils/connection-supports.ts @@ -0,0 +1,49 @@ +import type { ConnectionInfo } from '@mongodb-js/connection-info'; +export type ConnectionFeature = 'rollingIndexCreation' | 'globalWrites'; + +function isFreeOrSharedTierCluster(instanceSize: string | undefined): boolean { + if (!instanceSize) { + return false; + } + + return ['M0', 'M2', 'M5'].includes(instanceSize); +} + +function supportsRollingIndexCreation(connectionInfo: ConnectionInfo) { + const atlasMetadata = connectionInfo.atlasMetadata; + + if (!atlasMetadata) { + return false; + } + + const { metricsType, instanceSize } = atlasMetadata; + return ( + !isFreeOrSharedTierCluster(instanceSize) && + (metricsType === 'cluster' || metricsType === 'replicaSet') + ); +} + +function supportsGlobalWrites(connectionInfo: ConnectionInfo) { + const atlasMetadata = connectionInfo.atlasMetadata; + + if (!atlasMetadata) { + return false; + } + + return atlasMetadata.clusterType === 'GEOSHARDED'; +} + +export function connectionSupports( + connectionInfo: ConnectionInfo, + connectionFeature: ConnectionFeature +): boolean { + if (connectionFeature === 'rollingIndexCreation') { + return supportsRollingIndexCreation(connectionInfo); + } + + if (connectionFeature === 'globalWrites') { + return supportsGlobalWrites(connectionInfo); + } + + return false; +} diff --git a/packages/compass-crud/package.json b/packages/compass-crud/package.json index 8823549be8a..891acd99c18 100644 --- a/packages/compass-crud/package.json +++ b/packages/compass-crud/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "13.42.0", + "version": "13.43.2", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -52,7 +52,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/enzyme": "^3.10.14", "@types/reflux": "^6.4.3", @@ -64,39 +64,40 @@ "enzyme": "^3.11.0", "eslint": "^7.25.0", "mocha": "^10.2.0", - "mongodb-instance-model": "^12.24.3", + "mongodb-instance-model": "^12.24.4", "nyc": "^15.1.0", "react-dom": "^17.0.2", "sinon": "^8.1.1", "typescript": "^5.0.4" }, "dependencies": { - "@mongodb-js/compass-app-stores": "^7.28.0", - "@mongodb-js/compass-collection": "^4.41.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-editor": "^0.30.0", - "@mongodb-js/compass-field-store": "^9.17.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-query-bar": "^8.43.0", - "@mongodb-js/compass-telemetry": "^1.1.7", - "@mongodb-js/compass-workspaces": "^0.23.0", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-collection": "^4.42.2", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-query-bar": "^8.44.2", + "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-workspaces": "^0.24.2", "@mongodb-js/explain-plan-helper": "^1.2.3", - "@mongodb-js/my-queries-storage": "^0.16.0", + "@mongodb-js/my-queries-storage": "^0.17.0", "@mongodb-js/reflux-state-mixin": "^1.0.7", "@mongodb-js/shell-bson-parser": "^1.1.2", "ag-grid-community": "^20.2.0", "ag-grid-react": "^20.2.0", - "bson": "^6.7.0", - "compass-preferences-model": "^2.28.3", - "hadron-app-registry": "^9.2.6", + "bson": "^6.8.0", + "compass-preferences-model": "^2.29.0", + "hadron-app-registry": "^9.2.7", "hadron-document": "^8.6.3", "hadron-type-checker": "^7.2.2", "jsondiffpatch": "^0.5.0", "lodash": "^4.17.21", - "mongodb-data-service": "^22.23.3", + "mongodb-data-service": "^22.23.4", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", + "numeral": "^2.0.6", "prop-types": "^15.7.2", "react": "^17.0.2", "reflux": "^0.4.1", diff --git a/packages/compass-crud/src/index.ts b/packages/compass-crud/src/index.ts index 90b75ffa127..c539352679f 100644 --- a/packages/compass-crud/src/index.ts +++ b/packages/compass-crud/src/index.ts @@ -1,3 +1,4 @@ +import React from 'react'; import type { DocumentProps } from './components/document'; import Document from './components/document'; import type { DocumentListProps } from './components/document-list'; @@ -17,7 +18,10 @@ import type { OptionalDataServiceProps, RequiredDataServiceProps, } from './utils/data-service'; -import { mongoDBInstanceLocator } from '@mongodb-js/compass-app-stores/provider'; +import { + collectionModelLocator, + mongoDBInstanceLocator, +} from '@mongodb-js/compass-app-stores/provider'; import { registerHadronPlugin } from 'hadron-app-registry'; import { preferencesLocator } from 'compass-preferences-model/provider'; import { createLoggerLocator } from '@mongodb-js/compass-logging/provider'; @@ -28,11 +32,21 @@ import { import { fieldStoreServiceLocator } from '@mongodb-js/compass-field-store'; import { queryBarServiceLocator } from '@mongodb-js/compass-query-bar'; import { telemetryLocator } from '@mongodb-js/compass-telemetry/provider'; +import { CrudTabTitle } from './plugin-title'; -export const CompassDocumentsHadronPlugin = registerHadronPlugin( +const CompassDocumentsHadronPlugin = registerHadronPlugin( { name: 'CompassDocuments', - component: DocumentList as any, // as any because of reflux store + component: function CrudProvider({ children, ...props }) { + return React.createElement( + React.Fragment, + null, + // Cloning children with props is a workaround for reflux store. + React.isValidElement(children) + ? React.cloneElement(children, props) + : null + ); + }, activate: activateDocumentsPlugin, }, { @@ -51,12 +65,15 @@ export const CompassDocumentsHadronPlugin = registerHadronPlugin( connectionScopedAppRegistry: connectionScopedAppRegistryLocator, queryBar: queryBarServiceLocator, + collection: collectionModelLocator, } ); export const CompassDocumentsPlugin = { name: 'Documents' as const, - component: CompassDocumentsHadronPlugin, + provider: CompassDocumentsHadronPlugin, + content: DocumentList as any, // as any because of reflux store + header: CrudTabTitle as any, // as any because of reflux store }; export default DocumentList; diff --git a/packages/compass-collection/src/components/collection-tab-stats.tsx b/packages/compass-crud/src/plugin-title.tsx similarity index 58% rename from packages/compass-collection/src/components/collection-tab-stats.tsx rename to packages/compass-crud/src/plugin-title.tsx index e37b2be543b..b51173adf10 100644 --- a/packages/compass-collection/src/components/collection-tab-stats.tsx +++ b/packages/compass-crud/src/plugin-title.tsx @@ -1,22 +1,20 @@ import React, { useMemo } from 'react'; import numeral from 'numeral'; -import { css, Tooltip, Badge } from '@mongodb-js/compass-components'; -import type { CollectionState } from '../modules/collection-tab'; +import { css, Tooltip, Badge, spacing } from '@mongodb-js/compass-components'; +import type { CrudStore } from './stores/crud-store'; -const tooltipDocumentsListStyles = css({ +const tooltipContentStyles = css({ listStyleType: 'none', padding: 0, margin: 0, }); -const INVALID = 'N/A'; +const containerStyles = css({ + display: 'flex', + gap: spacing[200], +}); -const avg = (size: number, count: number) => { - if (count <= 0) { - return 0; - } - return size / count; -}; +const INVALID = 'N/A'; const isNumber = (val: any): val is number => { return typeof val === 'number' && !isNaN(val); @@ -30,11 +28,11 @@ const format = (value: any, format = 'a') => { return numeral(value).format(precision + format); }; -type CollectionTabStatsProps = { +type CollectionStatsProps = { text: string; details: string[]; }; -const CollectionTabStats: React.FunctionComponent = ({ +const CollectionStats: React.FunctionComponent = ({ text, details, }) => { @@ -57,7 +55,7 @@ const CollectionTabStats: React.FunctionComponent = ({ } > -
    +
      {details.map((detail, i) => (
    1. {detail} @@ -69,48 +67,36 @@ const CollectionTabStats: React.FunctionComponent = ({ ); }; -type CollectionTabProps = { - stats: CollectionState['stats']; -}; -export const CollectionDocumentsStats: React.FunctionComponent< - CollectionTabProps -> = ({ stats }) => { +export const CrudTabTitle = ({ + store: { + state: { collectionStats }, + }, +}: { + store: CrudStore; +}) => { const { documentCount, storageSize, avgDocumentSize } = useMemo(() => { const { document_count = NaN, storage_size = NaN, free_storage_size = NaN, avg_document_size = NaN, - } = stats ?? {}; + } = collectionStats ?? {}; return { documentCount: format(document_count), storageSize: format(storage_size - free_storage_size, 'b'), avgDocumentSize: format(avg_document_size, 'b'), }; - }, [stats]); + }, [collectionStats]); const details = [ `Documents: ${documentCount}`, `Storage Size: ${storageSize}`, `Avg. Size: ${avgDocumentSize}`, ]; - return ; -}; -export const CollectionIndexesStats: React.FunctionComponent< - CollectionTabProps -> = ({ stats }) => { - const { indexCount, totalIndexSize, avgIndexSize } = useMemo(() => { - const { index_count = NaN, index_size = NaN } = stats ?? {}; - return { - indexCount: format(index_count), - totalIndexSize: format(index_size, 'b'), - avgIndexSize: format(avg(index_size, index_count), 'b'), - }; - }, [stats]); - const details = [ - `Indexes: ${indexCount}`, - `Total Size: ${totalIndexSize}`, - `Avg. Size: ${avgIndexSize}`, - ]; - return ; + return ( +
      + Documents + +
      + ); }; diff --git a/packages/compass-crud/src/stores/crud-store.spec.ts b/packages/compass-crud/src/stores/crud-store.spec.ts index 7c31b49b3fe..fcbac4d3d89 100644 --- a/packages/compass-crud/src/stores/crud-store.spec.ts +++ b/packages/compass-crud/src/stores/crud-store.spec.ts @@ -119,6 +119,31 @@ const mockQueryBar = { changeQuery: sinon.stub(), }; +const defaultMetadata = { + namespace: 'test.foo', + isReadonly: false, + isTimeSeries: false, + isClustered: false, + isFLE: false, + isSearchIndexesSupported: false, + sourceName: 'test.bar', +}; +const mockCollection = { + _id: defaultMetadata.namespace, + avg_document_size: 1, + document_count: 10, + free_storage_size: 10, + storage_size: 20, + fetchMetadata() { + return Promise.resolve(defaultMetadata); + }, + toJSON() { + return this; + }, + on: sinon.spy(), + removeListener: sinon.spy(), +}; + describe('store', function () { const cluster = mochaTestServer({ topology: 'replset', @@ -166,6 +191,7 @@ describe('store', function () { connectionInfoRef, connectionScopedAppRegistry, queryBar: mockQueryBar, + collection: mockCollection as any, ...services, }, createActivateHelpers() @@ -304,6 +330,12 @@ describe('store', function () { isCollectionScan: false, version: '6.0.0', view: 'List', + collectionStats: { + avg_document_size: 1, + document_count: 10, + free_storage_size: 10, + storage_size: 20, + }, }); }); }); diff --git a/packages/compass-crud/src/stores/crud-store.ts b/packages/compass-crud/src/stores/crud-store.ts index 258422dbe1e..14ef0e39b79 100644 --- a/packages/compass-crud/src/stores/crud-store.ts +++ b/packages/compass-crud/src/stores/crud-store.ts @@ -52,7 +52,10 @@ import { openBulkUpdateSuccessToast, } from '../components/bulk-actions-toasts'; import type { DataService } from '../utils/data-service'; -import type { MongoDBInstance } from '@mongodb-js/compass-app-stores/provider'; +import type { + Collection, + MongoDBInstance, +} from '@mongodb-js/compass-app-stores/provider'; import configureActions from '../actions'; import type { ActivateHelpers } from 'hadron-app-registry'; import type { Logger } from '@mongodb-js/compass-logging/provider'; @@ -169,6 +172,20 @@ export const fetchDocuments: ( } }; +type CollectionStats = Pick< + Collection, + 'document_count' | 'storage_size' | 'free_storage_size' | 'avg_document_size' +>; +const extractCollectionStats = (collection: Collection): CollectionStats => { + const coll = collection.toJSON(); + return { + document_count: coll.document_count, + storage_size: coll.storage_size, + free_storage_size: coll.free_storage_size, + avg_document_size: coll.avg_document_size, + }; +}; + /** * Default number of docs per page. */ @@ -316,6 +333,7 @@ type CrudState = { isUpdatePreviewSupported: boolean; bulkDelete: BulkDeleteState; docsPerPage: number; + collectionStats: CollectionStats | null; }; type CrudStoreActionsOptions = { @@ -347,6 +365,7 @@ class CrudStoreImpl instance: MongoDBInstance; connectionScopedAppRegistry: ConnectionScopedAppRegistry; queryBar: QueryBarService; + collection: Collection; constructor( options: CrudStoreOptions & CrudStoreActionsOptions, @@ -362,6 +381,7 @@ class CrudStoreImpl | 'fieldStoreService' | 'connectionScopedAppRegistry' | 'queryBar' + | 'collection' > & { favoriteQueryStorage?: FavoriteQueryStorage; recentQueryStorage?: RecentQueryStorage; @@ -381,6 +401,7 @@ class CrudStoreImpl this.fieldStoreService = services.fieldStoreService; this.connectionScopedAppRegistry = services.connectionScopedAppRegistry; this.queryBar = services.queryBar; + this.collection = services.collection; } getInitialState(): CrudState { @@ -418,6 +439,7 @@ class CrudStoreImpl isUpdatePreviewSupported: this.instance.topologyDescription.type !== 'Single', docsPerPage: this.getInitialDocsPerPage(), + collectionStats: extractCollectionStats(this.collection), }; } @@ -1516,6 +1538,12 @@ class CrudStoreImpl ); } + collectionStatsFetched(model: Collection) { + this.setState({ + collectionStats: extractCollectionStats(model), + }); + } + /** * This function is called when the collection filter changes. */ @@ -1947,6 +1975,7 @@ export type DocumentsPluginServices = { connectionInfoRef: ConnectionInfoRef; connectionScopedAppRegistry: ConnectionScopedAppRegistry; queryBar: QueryBarService; + collection: Collection; }; export function activateDocumentsPlugin( options: CrudStoreOptions, @@ -1964,6 +1993,7 @@ export function activateDocumentsPlugin( connectionInfoRef, connectionScopedAppRegistry, queryBar, + collection, }: DocumentsPluginServices, { on, cleanup }: ActivateHelpers ) { @@ -1984,6 +2014,7 @@ export function activateDocumentsPlugin( fieldStoreService, connectionScopedAppRegistry, queryBar, + collection, } ) ) as CrudStore; @@ -2027,6 +2058,12 @@ export function activateDocumentsPlugin( } ); + on(collection, 'change:status', (model: Collection, status: string) => { + if (status === 'ready') { + store.collectionStatsFetched(model); + } + }); + if (!options.noRefreshOnConfigure) { queueMicrotask(() => { void store.refreshDocuments(); diff --git a/packages/compass-crud/src/utils/data-service.ts b/packages/compass-crud/src/utils/data-service.ts index fedb0bab4ec..6f398a0363d 100644 --- a/packages/compass-crud/src/utils/data-service.ts +++ b/packages/compass-crud/src/utils/data-service.ts @@ -16,7 +16,12 @@ export type RequiredDataServiceProps = | 'findOneAndUpdate' | 'findOneAndReplace' | 'updateOne' - | 'replaceOne'; + | 'replaceOne' + // Required for collection model (fetching stats) + | 'collectionStats' + | 'collectionInfo' + | 'listCollections' + | 'isListSearchIndexesSupported'; // TODO: It might make sense to refactor the DataService interface to be closer to // { ..., getCSFLEMode(): 'unavailable' } | { ..., getCSFLEMode(): 'unavailable' | 'enabled' | 'disabled', isUpdateAllowed(): ..., knownSchemaForCollection(): ... } // so that either these methods are always present together or always absent diff --git a/packages/compass-e2e-tests/.prettierignore b/packages/compass-e2e-tests/.prettierignore index 104b57fc109..3f0e8eed2a2 100644 --- a/packages/compass-e2e-tests/.prettierignore +++ b/packages/compass-e2e-tests/.prettierignore @@ -3,3 +3,7 @@ fixtures .nyc_output coverage + +# Generated files +electron-versions.json +write-electron-versions.js diff --git a/packages/compass-e2e-tests/helpers/commands/create-index.ts b/packages/compass-e2e-tests/helpers/commands/create-index.ts index ea0a4c23fd6..a62d69cd1af 100644 --- a/packages/compass-e2e-tests/helpers/commands/create-index.ts +++ b/packages/compass-e2e-tests/helpers/commands/create-index.ts @@ -108,5 +108,11 @@ export async function createIndex( const indexComponent = await browser.$(indexComponentSelector); await indexComponent.waitForDisplayed(); + // Wait for index to get ready before proceeding + await browser + .$(indexComponentSelector) + .$(Selectors.IndexPropertyInProgress) + .waitForDisplayed({ reverse: true }); + return indexName; } diff --git a/packages/compass-e2e-tests/helpers/compass.ts b/packages/compass-e2e-tests/helpers/compass.ts index 7d894db7309..3cd10cc47a0 100644 --- a/packages/compass-e2e-tests/helpers/compass.ts +++ b/packages/compass-e2e-tests/helpers/compass.ts @@ -143,8 +143,8 @@ export const serverSatisfies = ( ); }; -// For the user data dirs -let i = 0; +// For the user data dirs and logs +let runCounter = 0; interface Coverage { main?: string; @@ -569,7 +569,7 @@ async function processCommonOpts({ if (!defaultUserDataDir) { defaultUserDataDir = path.join( os.tmpdir(), - `user-data-dir-${Date.now().toString(32)}-${++i}` + `user-data-dir-${Date.now().toString(32)}-${runCounter}` ); } const chromedriverLogPath = path.join( @@ -630,6 +630,7 @@ async function startCompassElectron( name: string, opts: StartCompassOptions = {} ): Promise { + runCounter++; const { testPackagedApp, binary } = await getCompassExecutionParameters(); const { needsCloseWelcomeModal, webdriverOptions, wdioOptions, chromeArgs } = @@ -644,6 +645,15 @@ async function startCompassElectron( chromeArgs.push('--showed-network-opt-in=true'); } + // Logging output from Electron, even before the app loads any JavaScript + const electronLogFile = path.join(LOG_PATH, `electron-${runCounter}.log`); + chromeArgs.push( + // See https://www.electronjs.org/docs/latest/api/command-line-switches#--enable-loggingfile + '--enable-logging=file', + // See https://www.electronjs.org/docs/latest/api/command-line-switches#--log-filepath + `--log-file=${electronLogFile}` + ); + if (opts.extraSpawnArgs) { chromeArgs.push(...opts.extraSpawnArgs); } @@ -756,6 +766,7 @@ export async function startBrowser( // eslint-disable-next-line @typescript-eslint/no-unused-vars opts: StartCompassOptions = {} ) { + runCounter++; const { webdriverOptions, wdioOptions } = await processCommonOpts(); const browser: CompassBrowser = (await remote({ @@ -1009,19 +1020,28 @@ export async function init( // For browser.executeAsync(). Trying to see if it will work for browser.execute() too. await browser.setTimeout({ script: 5_000 }); - // larger window for more consistent results - const [width, height] = await browser.execute(() => { - // in case setWindowSize() below doesn't work - window.resizeTo(window.screen.availWidth, window.screen.availHeight); + if (TEST_COMPASS_WEB) { + // larger window for more consistent results + const [width, height] = await browser.execute(() => { + // in case setWindowSize() below doesn't work + window.resizeTo(window.screen.availWidth, window.screen.availHeight); - return [window.screen.availWidth, window.screen.availHeight]; - }); - debug(`available width=${width}, height=${height}`); - try { - // window.resizeTo() doesn't work on firefox - await browser.setWindowSize(width, height); - } catch (err: any) { - console.error(err?.stack); + return [window.screen.availWidth, window.screen.availHeight]; + }); + // getting available width=1512, height=944 in electron on mac which is arbitrary + debug(`available width=${width}, height=${height}`); + try { + // window.resizeTo() doesn't work on firefox + await browser.setWindowSize(width, height); + } catch (err: any) { + console.error(err?.stack); + } + } else { + await browser.execute(() => { + // eslint-disable-next-line @typescript-eslint/no-var-requires + const { ipcRenderer } = require('electron'); + ipcRenderer.invoke('compass:maximize'); + }); } if (compass.needsCloseWelcomeModal) { diff --git a/packages/compass-e2e-tests/helpers/selectors.ts b/packages/compass-e2e-tests/helpers/selectors.ts index 3c1893019d9..5760e945347 100644 --- a/packages/compass-e2e-tests/helpers/selectors.ts +++ b/packages/compass-e2e-tests/helpers/selectors.ts @@ -595,7 +595,7 @@ export const CollectionTab = '[data-testid="collection-tabs"]'; export const CollectionTabStats = ( tabName: 'documents' | 'indexes' ): string => { - return `[data-testid="${tabName}-tab-with-stats"] [data-testid="collection-stats"]`; + return `[data-testid="${tabName}-tab-title"] [data-testid="collection-stats"]`; }; export const CollectionStatsTooltip = '[data-testid="collection-stats-tooltip"]'; @@ -1088,6 +1088,7 @@ export const indexComponent = (name: string): string => { }; export const IndexFieldName = '[data-testid="indexes-name-field"]'; export const IndexFieldType = '[data-testid="indexes-type-field"]'; +export const IndexPropertyInProgress = '[data-testid="index-in-progress"]'; export const IndexToggleOptions = '[data-testid="create-index-modal-toggle-options"]'; export const indexToggleOption = (fieldName: string) => { diff --git a/packages/compass-e2e-tests/index.ts b/packages/compass-e2e-tests/index.ts index cbbe284c16d..309767330a2 100644 --- a/packages/compass-e2e-tests/index.ts +++ b/packages/compass-e2e-tests/index.ts @@ -23,6 +23,11 @@ import ResultLogger from './helpers/result-logger'; const debug = Debug('compass-e2e-tests'); +const wait = (ms: number) => + new Promise((resolve) => { + setTimeout(resolve, ms); + }); + const allowedArgs = [ '--test-compass-web', '--no-compile', @@ -75,18 +80,27 @@ async function setup() { }, } ); - // wait for webpack to finish compiling - await new Promise((resolve) => { - let output = ''; - const listener = function (chunk: string) { - output += chunk; - if (/^webpack \d+\.\d+\.\d+ compiled/m.test(output)) { - compassWeb.stdout.off('data', listener); - resolve(); - } - }; - compassWeb.stdout.setEncoding('utf8').on('data', listener); - }); + + compassWeb.stdout.pipe(process.stdout); + compassWeb.stderr.pipe(process.stderr); + + let serverReady = false; + const start = Date.now(); + while (!serverReady) { + if (Date.now() - start >= 120_000) { + throw new Error( + 'The compass-web sandbox is still not running after 120000ms' + ); + } + try { + const res = await fetch('http://localhost:7777'); + serverReady = res.ok; + debug('Web server ready: %s', serverReady); + } catch (err) { + debug('Failed to connect to dev server: %s', (err as any).message); + } + await wait(1000); + } } else { debug('Writing electron-versions.json'); crossSpawn.sync('scripts/write-electron-versions.sh', [], { @@ -131,7 +145,7 @@ function cleanup() { try { if (compassWeb.pid) { debug(`killing compass-web [${compassWeb.pid}]`); - kill(compassWeb.pid); + kill(compassWeb.pid, 'SIGINT'); } else { debug('no pid for compass-web'); } diff --git a/packages/compass-e2e-tests/package.json b/packages/compass-e2e-tests/package.json index 1c675f5eb3e..86aa475ae1c 100644 --- a/packages/compass-e2e-tests/package.json +++ b/packages/compass-e2e-tests/package.json @@ -1,6 +1,6 @@ { "name": "compass-e2e-tests", - "version": "1.27.0", + "version": "1.27.2", "private": true, "description": "E2E test suite for Compass app that follows smoke tests / feature testing matrix", "scripts": { @@ -33,8 +33,8 @@ "server-info": "ts-node ./scripts/server-info.ts" }, "devDependencies": { - "@electron/rebuild": "^3.6.0", - "@mongodb-js/connection-info": "^0.8.0", + "@electron/rebuild": "^3.6.2", + "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/compass-test-server": "^0.1.22", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/oidc-mock-provider": "^0.9.3", @@ -44,11 +44,11 @@ "@types/cross-spawn": "^6.0.2", "@types/puppeteer": "^5.4.4", "@wdio/types": "^8.32.2", - "bson": "^6.7.0", + "bson": "^6.8.0", "chai": "^4.3.4", "chai-as-promised": "^7.1.1", "clipboardy": "^2.3.0", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "cross-spawn": "^7.0.3", "debug": "^4.3.4", "depcheck": "^1.4.1", @@ -56,10 +56,10 @@ "eslint": "^7.25.0", "fast-glob": "^3.2.7", "glob": "^10.2.5", - "hadron-build": "^25.5.10", + "hadron-build": "^25.5.11", "lodash": "^4.17.21", "mocha": "^10.2.0", - "mongodb": "^6.8.0", + "mongodb": "^6.9.0", "mongodb-connection-string-url": "^3.0.1", "mongodb-log-writer": "^1.4.2", "mongodb-runner": "^5.6.3", diff --git a/packages/compass-e2e-tests/tests/collection-import.test.ts b/packages/compass-e2e-tests/tests/collection-import.test.ts index b536ae31da4..d52c3df1e25 100644 --- a/packages/compass-e2e-tests/tests/collection-import.test.ts +++ b/packages/compass-e2e-tests/tests/collection-import.test.ts @@ -813,60 +813,7 @@ describe('Collection import', function () { const result = await getFirstListDocument(browser); - // The values are the text as they appear in the page, so numbers are - // strings, strings have double-quotes inside them and dates got formatted. - // Arrays and objects start off collapsed. - try { - expect(result).to.deep.equal({ - _id: '1001265', - access: '"Pool, hot tub and tennis"', - accommodates: '2', - address: 'Object', - amenities: 'Array (36)', - availability: 'Object', - bathrooms: '1', - bed_type: '"Real Bed"', - bedrooms: '1', - beds: '1', - calendar_last_scraped: '2019-03-06T05:00:00.000+00:00', - cancellation_policy: '"strict_14_with_grace_period"', - cleaning_fee: '100', - description: - '"A short distance from Honolulu\'s billion dollar mall, and the same dis…"', - extra_people: '0', - first_review: '2013-05-24T04:00:00.000+00:00', - guests_included: '1', - host: 'Object', - house_rules: - '"The general welfare and well being of all the community."', - images: 'Object', - interaction: - '"We try our best at creating, simple responsive management which never …"', - last_review: '2019-02-07T05:00:00.000+00:00', - last_scraped: '2019-03-06T05:00:00.000+00:00', - listing_url: '"https://www.airbnb.com/rooms/1001265"', - maximum_nights: '365', - minimum_nights: '3', - monthly_price: '2150', - name: '"Ocean View Waikiki Marina w/prkg"', - neighborhood_overview: '"You can breath ocean as well as aloha."', - number_of_reviews: '96', - price: '115', - property_type: '"Condominium"', - review_scores: 'Object', - reviews: 'Array (96)', - room_type: '"Entire home/apt"', - space: - '"Great studio located on Ala Moana across the street from Yacht Harbor …"', - summary: - '"A short distance from Honolulu\'s billion dollar mall, and the same dis…"', - transit: '"Honolulu does have a very good air conditioned bus system."', - weekly_price: '650', - }); - } catch (err) { - console.log(JSON.stringify(result, null, 2)); - throw err; - } + expect(result._id).to.equal('1001265'); }); it('supports CSV files with BOM', async function () { diff --git a/packages/compass-editor/package.json b/packages/compass-editor/package.json index 40dbe0a8bf4..f816fc0b00f 100644 --- a/packages/compass-editor/package.json +++ b/packages/compass-editor/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.30.0", + "version": "0.31.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -72,7 +72,7 @@ "@codemirror/state": "^6.1.4", "@codemirror/view": "^6.7.1", "@lezer/highlight": "^1.2.0", - "@mongodb-js/compass-components": "^1.29.4", + "@mongodb-js/compass-components": "^1.30.0", "@mongodb-js/mongodb-constants": "^0.10.0", "mongodb-query-parser": "^4.2.3", "polished": "^4.2.2", diff --git a/packages/compass-explain-plan/package.json b/packages/compass-explain-plan/package.json index 66bef2eebcc..fc7b6aa57c2 100644 --- a/packages/compass-explain-plan/package.json +++ b/packages/compass-explain-plan/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "6.42.0", + "version": "6.43.2", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -51,7 +51,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/d3": "^3.5.x", "@types/d3-flextree": "^2.1.0", @@ -69,20 +69,20 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { - "@mongodb-js/compass-collection": "^4.41.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-editor": "^0.30.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-telemetry": "^1.1.7", + "@mongodb-js/compass-collection": "^4.42.2", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/explain-plan-helper": "^1.2.3", - "compass-preferences-model": "^2.28.3", + "compass-preferences-model": "^2.29.0", "d3": "^3.5.17", "d3-flextree": "^2.1.2", "d3-hierarchy": "^3.1.2", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", - "mongodb": "^6.8.0", + "mongodb": "^6.9.0", "react": "^17.0.2", "react-redux": "^8.1.3", "redux": "^4.2.1", diff --git a/packages/compass-export-to-language/package.json b/packages/compass-export-to-language/package.json index 6b62f947b54..f9d7f4ef167 100644 --- a/packages/compass-export-to-language/package.json +++ b/packages/compass-export-to-language/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "9.18.0", + "version": "9.19.2", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -48,16 +48,16 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-collection": "^4.41.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-editor": "^0.30.0", - "@mongodb-js/compass-maybe-protect-connection-string": "^0.26.3", - "@mongodb-js/compass-telemetry": "^1.1.7", + "@mongodb-js/compass-collection": "^4.42.2", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.0", + "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/shell-bson-parser": "^1.1.2", "bson-transpilers": "^3.0.9", - "compass-preferences-model": "^2.28.3", - "hadron-app-registry": "^9.2.6", + "compass-preferences-model": "^2.29.0", + "hadron-app-registry": "^9.2.7", "mongodb-ns": "^2.4.2", "react": "^17.0.2", "react-redux": "^8.1.3", @@ -67,7 +67,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "chai": "^4.3.6", "depcheck": "^1.4.1", diff --git a/packages/compass-field-store/package.json b/packages/compass-field-store/package.json index 282422499b7..a092100b9b1 100644 --- a/packages/compass-field-store/package.json +++ b/packages/compass-field-store/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "9.17.0", + "version": "9.18.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -52,7 +52,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/mocha": "^9.0.0", @@ -69,9 +69,9 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-logging": "^1.4.7", - "hadron-app-registry": "^9.2.6", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-logging": "^1.4.8", + "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mongodb-schema": "^12.2.0", "react": "^17.0.2", diff --git a/packages/compass-find-in-page/package.json b/packages/compass-find-in-page/package.json index 9fc848d89a8..4c9d5492618 100644 --- a/packages/compass-find-in-page/package.json +++ b/packages/compass-find-in-page/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "4.30.4", + "version": "4.31.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -51,7 +51,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", @@ -73,8 +73,8 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { - "@mongodb-js/compass-components": "^1.29.4", - "hadron-app-registry": "^9.2.6", + "@mongodb-js/compass-components": "^1.30.0", + "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.23", "react": "^17.0.2", "react-redux": "^8.1.3", diff --git a/packages/compass-generative-ai/package.json b/packages/compass-generative-ai/package.json index d78f596e021..f9c1eb6369d 100644 --- a/packages/compass-generative-ai/package.json +++ b/packages/compass-generative-ai/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.22.3", + "version": "0.23.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -52,14 +52,14 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/atlas-service": "^0.28.3", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-intercom": "^0.12.3", - "@mongodb-js/compass-logging": "^1.4.7", - "bson": "^6.7.0", - "compass-preferences-model": "^2.28.3", - "hadron-app-registry": "^9.2.6", - "mongodb": "^6.8.0", + "@mongodb-js/atlas-service": "^0.29.0", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-intercom": "^0.13.0", + "@mongodb-js/compass-logging": "^1.4.8", + "bson": "^6.8.0", + "compass-preferences-model": "^2.29.0", + "hadron-app-registry": "^9.2.7", + "mongodb": "^6.9.0", "mongodb-schema": "^12.2.0", "react": "^17.0.2" }, @@ -67,7 +67,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", diff --git a/packages/compass-global-writes/.depcheckrc b/packages/compass-global-writes/.depcheckrc new file mode 100644 index 00000000000..ae7c8273e41 --- /dev/null +++ b/packages/compass-global-writes/.depcheckrc @@ -0,0 +1,11 @@ +ignores: + - '@mongodb-js/prettier-config-compass' + - '@mongodb-js/tsconfig-compass' + - '@types/chai' + - '@types/sinon-chai' + - 'sinon' + - '@types/chai-dom' + - '@types/react' + - '@types/react-dom' +ignore-patterns: + - 'dist' diff --git a/packages/compass-global-writes/.eslintignore b/packages/compass-global-writes/.eslintignore new file mode 100644 index 00000000000..85a8a75e68c --- /dev/null +++ b/packages/compass-global-writes/.eslintignore @@ -0,0 +1,2 @@ +.nyc-output +dist diff --git a/packages/compass-global-writes/.eslintrc.js b/packages/compass-global-writes/.eslintrc.js new file mode 100644 index 00000000000..f06f8fc6013 --- /dev/null +++ b/packages/compass-global-writes/.eslintrc.js @@ -0,0 +1,8 @@ +module.exports = { + root: true, + extends: ['@mongodb-js/eslint-config-compass/plugin'], + parserOptions: { + tsconfigRootDir: __dirname, + project: ['./tsconfig-lint.json'], + }, +}; diff --git a/packages/compass-global-writes/.mocharc.js b/packages/compass-global-writes/.mocharc.js new file mode 100644 index 00000000000..a7e53abc444 --- /dev/null +++ b/packages/compass-global-writes/.mocharc.js @@ -0,0 +1 @@ +module.exports = require('@mongodb-js/mocha-config-compass/compass-plugin'); diff --git a/packages/compass-global-writes/.prettierignore b/packages/compass-global-writes/.prettierignore new file mode 100644 index 00000000000..4d28df6603a --- /dev/null +++ b/packages/compass-global-writes/.prettierignore @@ -0,0 +1,3 @@ +.nyc_output +dist +coverage diff --git a/packages/compass-global-writes/.prettierrc.json b/packages/compass-global-writes/.prettierrc.json new file mode 100644 index 00000000000..18853d1532e --- /dev/null +++ b/packages/compass-global-writes/.prettierrc.json @@ -0,0 +1 @@ +"@mongodb-js/prettier-config-compass" diff --git a/packages/compass-global-writes/package.json b/packages/compass-global-writes/package.json new file mode 100644 index 00000000000..cd3b029ccaa --- /dev/null +++ b/packages/compass-global-writes/package.json @@ -0,0 +1,90 @@ +{ + "name": "@mongodb-js/compass-global-writes", + "description": "Compass Global Sharding management", + "author": { + "name": "MongoDB Inc", + "email": "compass@mongodb.com" + }, + "private": true, + "bugs": { + "url": "https://jira.mongodb.org/projects/COMPASS/issues", + "email": "compass@mongodb.com" + }, + "homepage": "https://github.com/mongodb-js/compass", + "version": "1.2.1", + "repository": { + "type": "git", + "url": "https://github.com/mongodb-js/compass.git" + }, + "files": [ + "dist" + ], + "license": "SSPL", + "main": "dist/index.js", + "compass:main": "src/index.ts", + "exports": { + "import": "./dist/.esm-wrapper.mjs", + "require": "./dist/index.js" + }, + "compass:exports": { + ".": "./src/index.ts" + }, + "types": "./dist/index.d.ts", + "scripts": { + "bootstrap": "npm run compile", + "compile": "tsc -p tsconfig.json", + "typecheck": "tsc -p tsconfig-lint.json --noEmit", + "eslint": "eslint", + "prettier": "prettier", + "lint": "npm run eslint . && npm run prettier -- --check .", + "depcheck": "compass-scripts check-peer-deps && depcheck", + "check": "npm run typecheck && npm run lint && npm run depcheck", + "check-ci": "npm run check", + "test": "mocha", + "test-electron": "xvfb-maybe electron-mocha --no-sandbox", + "test-cov": "nyc --compact=false --produce-source-map=false -x \"**/*.spec.*\" --reporter=lcov --reporter=text --reporter=html npm run test", + "test-watch": "npm run test -- --watch", + "test-ci": "npm run test-cov", + "test-ci-electron": "npm run test-electron", + "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." + }, + "dependencies": { + "@mongodb-js/atlas-service": "^0.29.0", + "@mongodb-js/compass-collection": "^4.42.2", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", + "hadron-app-registry": "^9.2.7", + "lodash": "^4.17.21", + "@mongodb-js/compass-field-store": "^9.18.1", + "mongodb-ns": "^2.4.2", + "react": "^17.0.2", + "react-redux": "^8.1.3", + "redux": "^4.2.1", + "redux-thunk": "^2.4.2" + }, + "devDependencies": { + "@mongodb-js/eslint-config-compass": "^1.1.7", + "@mongodb-js/mocha-config-compass": "^1.4.2", + "@mongodb-js/prettier-config-compass": "^1.0.2", + "@mongodb-js/testing-library-compass": "^1.0.2", + "@mongodb-js/tsconfig-compass": "^1.0.5", + "@types/chai": "^4.2.21", + "@types/chai-dom": "^0.0.10", + "@types/mocha": "^9.0.0", + "@types/react": "^17.0.5", + "@types/react-dom": "^17.0.10", + "@types/sinon-chai": "^3.2.5", + "chai": "^4.3.6", + "depcheck": "^1.4.1", + "eslint": "^7.25.0", + "mocha": "^10.2.0", + "nyc": "^15.1.0", + "prettier": "^2.7.1", + "sinon": "^17.0.1", + "typescript": "^5.0.4", + "xvfb-maybe": "^0.2.1" + }, + "is_compass_plugin": true +} diff --git a/packages/compass-global-writes/src/components/index.spec.tsx b/packages/compass-global-writes/src/components/index.spec.tsx new file mode 100644 index 00000000000..4aff0336345 --- /dev/null +++ b/packages/compass-global-writes/src/components/index.spec.tsx @@ -0,0 +1,29 @@ +import React from 'react'; +import { expect } from 'chai'; +import { screen } from '@mongodb-js/testing-library-compass'; +import { GlobalWrites } from './index'; +import { renderWithStore } from './../../tests/create-store'; + +describe('Compass GlobalWrites Plugin', function () { + it('renders plugin in NOT_READY state', async function () { + await renderWithStore(); + expect(screen.getByText(/loading/i)).to.exist; + }); + + it('renders plugin in UNSHARDED state', async function () { + await renderWithStore(); + expect(screen.getByTestId('shard-collection-button')).to.exist; + }); + + it('renders plugin in SUBMITTING_FOR_SHARDING state', async function () { + await renderWithStore( + + ); + expect(screen.getByTestId('shard-collection-button')).to.exist; + }); + + it('renders plugin in SHARDING state', async function () { + await renderWithStore(); + expect(screen.getByText(/sharding your collection/i)).to.exist; + }); +}); diff --git a/packages/compass-global-writes/src/components/index.tsx b/packages/compass-global-writes/src/components/index.tsx new file mode 100644 index 00000000000..77aa286de46 --- /dev/null +++ b/packages/compass-global-writes/src/components/index.tsx @@ -0,0 +1,83 @@ +import React from 'react'; +import { connect } from 'react-redux'; +import { + css, + spacing, + WorkspaceContainer, + SpinLoaderWithLabel, +} from '@mongodb-js/compass-components'; +import type { RootState, ShardingStatus } from '../store/reducer'; +import { ShardingStatuses } from '../store/reducer'; +import UnshardedState from './states/unsharded'; +import ShardingState from './states/sharding'; +import ShardKeyCorrect from './states/shard-key-correct'; + +const containerStyles = css({ + paddingLeft: spacing[400], + paddingRight: spacing[400], + display: 'flex', + width: '100%', + height: '100%', +}); + +const workspaceContentStyles = css({ + paddingTop: spacing[400], +}); + +const centeredContent = css({ + display: 'flex', + justifyContent: 'center', + alignItems: 'center', + height: '100%', +}); + +type GlobalWritesProps = { + shardingStatus: ShardingStatus; +}; + +function ShardingStateView({ + shardingStatus, +}: { + shardingStatus: ShardingStatus; +}) { + if (shardingStatus === ShardingStatuses.NOT_READY) { + return ( +
      + +
      + ); + } + + if ( + shardingStatus === ShardingStatuses.UNSHARDED || + shardingStatus === ShardingStatuses.SUBMITTING_FOR_SHARDING + ) { + return ; + } + + if (shardingStatus === ShardingStatuses.SHARDING) { + return ; + } + + if ( + shardingStatus === ShardingStatuses.SHARD_KEY_CORRECT || + shardingStatus === ShardingStatuses.UNMANAGING_NAMESPACE + ) { + return ; + } + + return null; +} + +export function GlobalWrites({ shardingStatus }: GlobalWritesProps) { + return ( +
      + + + +
      + ); +} +export default connect((state: RootState) => ({ + shardingStatus: state.status, +}))(GlobalWrites); diff --git a/packages/compass-global-writes/src/components/shard-zones-table.spec.tsx b/packages/compass-global-writes/src/components/shard-zones-table.spec.tsx new file mode 100644 index 00000000000..5aae046e76e --- /dev/null +++ b/packages/compass-global-writes/src/components/shard-zones-table.spec.tsx @@ -0,0 +1,39 @@ +import React from 'react'; +import { expect } from 'chai'; +import { render, screen, within } from '@mongodb-js/testing-library-compass'; +import { ShardZonesTable } from './shard-zones-table'; +import { type ShardZoneData } from '../store/reducer'; + +describe('Compass GlobalWrites Plugin', function () { + const shardZones: ShardZoneData[] = [ + { + zoneId: '45893084', + country: 'Germany', + readableName: 'Germany', + isoCode: 'DE', + typeOneIsoCode: 'DE', + zoneName: 'EMEA', + zoneLocations: ['Frankfurt'], + }, + { + zoneId: '43829408', + country: 'Germany', + readableName: 'Germany - Berlin', + isoCode: 'DE-BE', + typeOneIsoCode: 'DE', + zoneName: 'EMEA', + zoneLocations: ['Frankfurt'], + }, + ]; + + it('renders the Location name & Zone for all items', function () { + render(); + + const rows = screen.getAllByRole('row'); + expect(rows).to.have.lengthOf(3); // 1 header, 2 items + expect(within(rows[1]).getByText('Germany (DE)')).to.be.visible; + expect(within(rows[1]).getByText('EMEA (Frankfurt)')).to.be.visible; + expect(within(rows[2]).getByText('Germany - Berlin (DE-BE)')).to.be.visible; + expect(within(rows[2]).getByText('EMEA (Frankfurt)')).to.be.visible; + }); +}); diff --git a/packages/compass-global-writes/src/components/shard-zones-table.tsx b/packages/compass-global-writes/src/components/shard-zones-table.tsx new file mode 100644 index 00000000000..abc866c668d --- /dev/null +++ b/packages/compass-global-writes/src/components/shard-zones-table.tsx @@ -0,0 +1,54 @@ +import React from 'react'; +import { + Table, + TableBody, + TableHead, + HeaderRow, + HeaderCell, + Row, + Cell, + css, +} from '@mongodb-js/compass-components'; +import type { ShardZoneData } from '../store/reducer'; + +const containerStyles = css({ + maxWidth: '700px', + height: '400px', +}); + +export function ShardZonesTable({ + shardZones, +}: { + shardZones: ShardZoneData[]; +}) { + return ( + // TODO(COMPASS-8336): + // Add search + // group zones by ShardZoneData.typeOneIsoCode + // and display them in a single row that can be expanded + + + + Location Name + Zone + + + + {shardZones.map( + ({ readableName, zoneName, zoneLocations, isoCode }, index) => { + return ( + + + {readableName} ({isoCode}) + + + {zoneName} ({zoneLocations.join(', ')}) + + + ); + } + )} + +
      + ); +} diff --git a/packages/compass-global-writes/src/components/states/shard-key-correct.spec.tsx b/packages/compass-global-writes/src/components/states/shard-key-correct.spec.tsx new file mode 100644 index 00000000000..86f938cb10a --- /dev/null +++ b/packages/compass-global-writes/src/components/states/shard-key-correct.spec.tsx @@ -0,0 +1,135 @@ +import React from 'react'; +import { expect } from 'chai'; +import { screen, userEvent } from '@mongodb-js/testing-library-compass'; +import { + ShardKeyCorrect, + type ShardKeyCorrectProps, +} from './shard-key-correct'; +import { type ShardZoneData } from '../../store/reducer'; +import Sinon from 'sinon'; +import { renderWithStore } from '../../../tests/create-store'; +import { type ConnectionInfo } from '@mongodb-js/compass-connections/provider'; + +describe('Compass GlobalWrites Plugin', function () { + const shardZones: ShardZoneData[] = [ + { + zoneId: '45893084', + country: 'Germany', + readableName: 'Germany', + isoCode: 'DE', + typeOneIsoCode: 'DE', + zoneName: 'EMEA', + zoneLocations: ['Frankfurt'], + }, + ]; + + const baseProps: ShardKeyCorrectProps = { + shardZones, + namespace: 'db1.coll1', + shardKey: { + fields: [ + { type: 'HASHED', name: 'location' }, + { type: 'RANGE', name: 'secondary' }, + ], + isUnique: false, + }, + isUnmanagingNamespace: false, + onUnmanageNamespace: () => {}, + }; + + function renderWithProps( + props?: Partial, + options?: Parameters[1] + ) { + return renderWithStore( + , + options + ); + } + + it('Provides button to unmanage', async function () { + const onUnmanageNamespace = Sinon.spy(); + await renderWithProps({ onUnmanageNamespace }); + + const btn = await screen.findByRole('button', { + name: /Unmanage collection/, + }); + expect(btn).to.be.visible; + + userEvent.click(btn); + + expect(onUnmanageNamespace).to.have.been.calledOnce; + }); + + it('Unmanage btn is disabled when the action is in progress', async function () { + const onUnmanageNamespace = Sinon.spy(); + await renderWithProps({ onUnmanageNamespace, isUnmanagingNamespace: true }); + + const btn = await screen.findByTestId( + 'shard-collection-button' + ); + expect(btn).to.be.visible; + expect(btn.getAttribute('aria-disabled')).to.equal('true'); + + userEvent.click(btn); + + expect(onUnmanageNamespace).not.to.have.been.called; + }); + + it('Provides link to Edit Configuration', async function () { + const connectionInfo = { + id: 'testConnection', + connectionOptions: { + connectionString: 'mongodb://test', + }, + atlasMetadata: { + projectId: 'project1', + clusterName: 'myCluster', + } as ConnectionInfo['atlasMetadata'], + }; + await renderWithProps(undefined, { + connectionInfo, + }); + + const link = await screen.findByRole('link', { + name: /Edit Configuration/, + }); + const expectedHref = `/v2/${connectionInfo.atlasMetadata?.projectId}#/clusters/edit/${connectionInfo.atlasMetadata?.clusterName}`; + + expect(link).to.be.visible; + expect(link).to.have.attribute('href', expectedHref); + }); + + it('Describes the shardKey', async function () { + await renderWithProps(); + + const title = await screen.findByTestId('shardkey-description-title'); + expect(title).to.be.visible; + expect(title.textContent).to.equal( + `${baseProps.namespace} is configured with the following shard key:` + ); + const list = await screen.findByTestId('shardkey-description-content'); + expect(list).to.be.visible; + expect(list.textContent).to.contain(`"location", "secondary"`); + }); + + it('Contains sample codes', async function () { + await renderWithProps(); + + const findingDocumentsSample = await screen.findByTestId( + 'sample-finding-documents' + ); + expect(findingDocumentsSample).to.be.visible; + expect(findingDocumentsSample.textContent).to.contain( + `use db1db["coll1"].find({"location": "US-NY", "secondary": ""})` + ); + + const insertingDocumentsSample = await screen.findByTestId( + 'sample-inserting-documents' + ); + expect(insertingDocumentsSample).to.be.visible; + expect(insertingDocumentsSample.textContent).to.contain( + `use db1db["coll1"].insertOne({"location": "US-NY", "secondary": "",...})` + ); + }); +}); diff --git a/packages/compass-global-writes/src/components/states/shard-key-correct.tsx b/packages/compass-global-writes/src/components/states/shard-key-correct.tsx new file mode 100644 index 00000000000..05a29add5a8 --- /dev/null +++ b/packages/compass-global-writes/src/components/states/shard-key-correct.tsx @@ -0,0 +1,210 @@ +import React, { useMemo } from 'react'; +import { + Banner, + BannerVariant, + Body, + css, + Link, + spacing, + Code, + Subtitle, + Label, + Button, +} from '@mongodb-js/compass-components'; +import { connect } from 'react-redux'; +import { + ShardingStatuses, + unmanageNamespace, + type RootState, + type ShardKey, + type ShardZoneData, +} from '../../store/reducer'; +import toNS from 'mongodb-ns'; +import { ShardZonesTable } from '../shard-zones-table'; +import { useConnectionInfo } from '@mongodb-js/compass-connections/provider'; + +const nbsp = '\u00a0'; + +const containerStyles = css({ + display: 'flex', + flexDirection: 'column', + gap: spacing[400], + marginBottom: spacing[400], +}); + +const codeBlockContainerStyles = css({ + display: 'flex', + flexDirection: 'column', + gap: spacing[100], + maxWidth: '700px', +}); + +const paragraphStyles = css({ + display: 'flex', + flexDirection: 'column', + gap: spacing[100], +}); + +export type ShardKeyCorrectProps = { + namespace: string; + shardKey?: ShardKey; + shardZones: ShardZoneData[]; + isUnmanagingNamespace: boolean; + onUnmanageNamespace: () => void; +}; + +export function ShardKeyCorrect({ + namespace, + shardKey, + shardZones, + isUnmanagingNamespace, + onUnmanageNamespace, +}: ShardKeyCorrectProps) { + if (!shardKey) { + throw new Error('Shard key not found in ShardKeyCorrect'); + } + + const customShardKeyField = useMemo(() => { + return shardKey.fields[1].name; + }, [shardKey]); + + const { atlasMetadata } = useConnectionInfo(); + + const sampleCodes = useMemo(() => { + const { collection, database } = toNS(namespace); + return { + findingDocuments: `use ${database}\ndb[${JSON.stringify( + collection + )}].find({"location": "US-NY", "${customShardKeyField}": ""})`, + insertingDocuments: `use ${database}\ndb[${JSON.stringify( + collection + )}].insertOne({"location": "US-NY", "${customShardKeyField}": "",...})`, + }; + }, [namespace, customShardKeyField]); + + return ( +
      + + + All documents in your collection should contain both the ‘location’ + field (with a ISO country or subdivision code) and your{' '} + {customShardKeyField} field at insert time. + + {nbsp}We have included a table for reference below. + + +
      + + {namespace} is configured with the following shard + key: + + + {shardKey.fields.map((field) => `"${field.name}"`).join(', ')} + +
      + + Example commands +
      + + Start querying your database with some of the most{' '} + + common commands + {' '} + for Global Writes. + + + Replace the text to perform operations on different documents. US-NY + is an ISO 3166 location code referring to New York, United States. You + can look up other ISO 3166 location codes below. + +
      + +
      + + + {sampleCodes.findingDocuments} + +
      + +
      + + + {sampleCodes.insertingDocuments} + +
      + + Location Codes +
      + + Each document’s first field should include an ISO 3166-1 Alpha-2 code + for the location it belongs to. + + + We also support ISO 3166-2 subdivision codes for countries containing + a cloud provider data center (both ISO 3166-1 and ISO 3166-2 codes may + be used for these countries). All valid country codes and the zones to + which they map are listed in the table below. Additionally, you can + view a list of all location codes{' '} + here. + + + {atlasMetadata?.projectId && atlasMetadata?.clusterName && ( + <> + Locations’ zone mapping can be changed by navigating to this + clusters{' '} + + Edit Configuration + {' '} + page and clicking the Configure Location Mappings’ link above the + map. + + )} + +
      + + + + Unmanage this collection + + Documents belonging to this collection will no longer be distributed + across the shards of your global clusters. + +
      + +
      +
      + ); +} + +export default connect( + (state: RootState) => ({ + namespace: state.namespace, + shardKey: state.shardKey, + shardZones: state.shardZones, + isUnmanagingNamespace: + state.status === ShardingStatuses.UNMANAGING_NAMESPACE, + }), + { + onUnmanageNamespace: unmanageNamespace, + } +)(ShardKeyCorrect); diff --git a/packages/compass-global-writes/src/components/states/sharding.spec.tsx b/packages/compass-global-writes/src/components/states/sharding.spec.tsx new file mode 100644 index 00000000000..c3d8fb542be --- /dev/null +++ b/packages/compass-global-writes/src/components/states/sharding.spec.tsx @@ -0,0 +1,18 @@ +import React from 'react'; +import { expect } from 'chai'; +import { screen } from '@mongodb-js/testing-library-compass'; +import { ShardingState } from './sharding'; +import { renderWithStore } from '../../../tests/create-store'; + +function renderWithProps( + props?: Partial> +) { + return renderWithStore(); +} + +describe('Sharding', function () { + it('renders the info banner', async function () { + await renderWithProps(); + expect(screen.getByRole('alert')).to.exist; + }); +}); diff --git a/packages/compass-global-writes/src/components/states/sharding.tsx b/packages/compass-global-writes/src/components/states/sharding.tsx new file mode 100644 index 00000000000..f64e788a4ab --- /dev/null +++ b/packages/compass-global-writes/src/components/states/sharding.tsx @@ -0,0 +1,42 @@ +import React from 'react'; +import { + Banner, + BannerVariant, + Body, + css, + Link, + spacing, +} from '@mongodb-js/compass-components'; +import { connect } from 'react-redux'; + +const nbsp = '\u00a0'; + +const containerStyles = css({ + display: 'flex', + flexDirection: 'column', + gap: spacing[400], +}); + +export function ShardingState() { + return ( +
      + + Sharding your collection … + {nbsp}this should not take too long. + + + Once your collection is sharded, this tab will show instructions on + document ‘location’ field formatting, and provide some common command + examples. + + + You can read more about Global Writes in our documentation. + +
      + ); +} + +export default connect()(ShardingState); diff --git a/packages/compass-global-writes/src/components/states/unsharded.tsx b/packages/compass-global-writes/src/components/states/unsharded.tsx new file mode 100644 index 00000000000..073929dfe0d --- /dev/null +++ b/packages/compass-global-writes/src/components/states/unsharded.tsx @@ -0,0 +1,349 @@ +import React, { useCallback, useState } from 'react'; +import { + Banner, + BannerVariant, + Body, + css, + Label, + Link, + spacing, + Subtitle, + InlineInfoLink, + TextInput, + Accordion, + RadioGroup, + Radio, + ComboboxWithCustomOption, + ComboboxOption, + Checkbox, + Button, + SpinLoader, + cx, +} from '@mongodb-js/compass-components'; +import { useAutocompleteFields } from '@mongodb-js/compass-field-store'; +import { connect } from 'react-redux'; +import type { CreateShardKeyData, RootState } from '../../store/reducer'; +import { createShardKey, ShardingStatuses } from '../../store/reducer'; + +const nbsp = '\u00a0'; + +const containerStyles = css({ + display: 'flex', + flexDirection: 'column', + gap: spacing[400], +}); + +const contentStyles = css({ + display: 'flex', + flexDirection: 'column', + gap: spacing[200], +}); + +const listStyles = css({ + listStyle: 'disc', + paddingLeft: 'auto', + marginTop: 0, +}); + +const shardKeyFormFieldsStyles = css({ + display: 'flex', + flexDirection: 'row', + gap: spacing[400], +}); + +const secondShardKeyStyles = css({ + width: '300px', +}); + +const hasedIndexOptionsStyles = css({ + marginLeft: spacing[1200], // This aligns it with the radio button text + marginTop: spacing[400], +}); + +const advanceOptionsGroupStyles = css({ + paddingLeft: spacing[500], // Avoid visual cutoff +}); + +const chunksInputStyles = css({ + display: 'flex', + alignItems: 'center', + gap: spacing[100], +}); + +function CreateShardKeyDescription() { + return ( +
      + Configure compound shard key + + To properly configure Global Writes, your collections must be sharded + using a compound shard key made up of a ‘location’ field and a second + field of your choosing. + + + + All documents in your collection should contain both the ‘location’ + field and your chosen second field. + + +
        +
      • + + The second field should represent a well-distributed and immutable + value to ensure that data is equally distributed across shards in a + particular zone.{nbsp} + + Note that the value of this field cannot be an array. + + {nbsp} + For more information, read our documentation on{' '} + + selecting a shard key + + . + +
      • +
      + + + Once you shard your collection, it cannot be unsharded. + +
      + ); +} + +type ShardingAdvancedOption = 'default' | 'unique-index' | 'hashed-index'; + +function CreateShardKeyForm({ + namespace, + isSubmittingForSharding, + onCreateShardKey, +}: Pick< + UnshardedStateProps, + 'isSubmittingForSharding' | 'namespace' | 'onCreateShardKey' +>) { + const [isAdvancedOptionsOpen, setIsAdvancedOptionsOpen] = useState(false); + const [selectedAdvancedOption, setSelectedAdvancedOption] = + useState('default'); + const fields = useAutocompleteFields(namespace); + + const [secondShardKey, setSecondShardKey] = useState(null); + const [numInitialChunks, setNumInitialChunks] = useState< + string | undefined + >(); + const [isPreSplitData, setIsPreSplitData] = useState(false); + + const onSubmit = useCallback(() => { + if (!secondShardKey) { + return; + } + const isCustomShardKeyHashed = selectedAdvancedOption === 'hashed-index'; + const presplitHashedZones = isCustomShardKeyHashed && isPreSplitData; + + const data: CreateShardKeyData = { + customShardKey: secondShardKey, + isShardKeyUnique: selectedAdvancedOption === 'unique-index', + isCustomShardKeyHashed, + presplitHashedZones, + numInitialChunks: + presplitHashedZones && numInitialChunks + ? Number(numInitialChunks) + : null, + }; + + onCreateShardKey(data); + }, [ + isPreSplitData, + numInitialChunks, + secondShardKey, + selectedAdvancedOption, + onCreateShardKey, + ]); + + return ( +
      +
      +
      + + +
      +
      + + ({ value }))} + className={secondShardKeyStyles} + value={secondShardKey} + searchEmptyMessage="No fields found. Please enter a valid field name." + renderOption={(option, index, isCustom) => { + return ( + + ); + }} + /> +
      +
      + + ) => { + setSelectedAdvancedOption( + event.target.value as ShardingAdvancedOption + ); + }} + > + + Default + + +
      + + + Enforce a uniqueness constraint on the shard key of this Global + Collection.{' '} + + Learn more + + +
      +
      + +
      + + + Improve even distribution of the sharded data by hashing the + second field of the shard key.{' '} + + Learn more + + +
      +
      +
      + {selectedAdvancedOption === 'hashed-index' && ( +
      + setIsPreSplitData(!isPreSplitData)} + label="Pre-split data for even distribution." + checked={isPreSplitData} + /> +
      + setNumInitialChunks(event.target.value)} + /> + chunks per shard. +
      +
      + )} +
      +
      + +
      +
      + ); +} + +type UnshardedStateProps = { + namespace: string; + isSubmittingForSharding: boolean; + onCreateShardKey: (data: CreateShardKeyData) => void; +}; +export function UnshardedState(props: UnshardedStateProps) { + return ( +
      + + + To use Global Writes, this collection must be configured with a + compound shard key made up of both a ‘location’ field and an + identifier field that you should provide. + + {nbsp}See the instructions below for details. + + + +
      + ); +} + +export default connect( + (state: RootState) => ({ + namespace: state.namespace, + isSubmittingForSharding: + state.status === ShardingStatuses.SUBMITTING_FOR_SHARDING, + }), + { + onCreateShardKey: createShardKey, + } +)(UnshardedState); diff --git a/packages/compass-global-writes/src/components/states/usharded.spec.tsx b/packages/compass-global-writes/src/components/states/usharded.spec.tsx new file mode 100644 index 00000000000..74d57ccb925 --- /dev/null +++ b/packages/compass-global-writes/src/components/states/usharded.spec.tsx @@ -0,0 +1,193 @@ +import React from 'react'; +import { expect } from 'chai'; +import { screen, userEvent } from '@mongodb-js/testing-library-compass'; +import { UnshardedState } from './unsharded'; +import { renderWithStore } from '../../../tests/create-store'; +import sinon from 'sinon'; + +function renderWithProps( + props?: Partial> +) { + return renderWithStore( + {}} + {...props} + /> + ); +} + +function setShardingKeyFieldValue(value: string) { + const input = screen.getByLabelText('Second shard key field'); + expect(input).to.exist; + userEvent.type(input, value); + expect(input).to.have.value(value); + userEvent.keyboard('{Escape}'); + + // For some reason, when running tests in electron mode, the value of + // the input field is not being updated. This is a workaround to ensure + // the value is being updated before clicking the submit button. + userEvent.click(screen.getByText(value), undefined, { + skipPointerEventsCheck: true, + }); +} + +describe('UnshardedState', function () { + it('renders the warning banner', async function () { + await renderWithProps(); + expect(screen.getByRole('alert')).to.exist; + }); + + it('renders the text to the user', async function () { + await renderWithProps(); + expect(screen.getByTestId('unsharded-text-description')).to.exist; + }); + + context('shard collection form', function () { + let onCreateShardKeySpy: sinon.SinonSpy; + beforeEach(async function () { + onCreateShardKeySpy = sinon.spy(); + await renderWithProps({ onCreateShardKey: onCreateShardKeySpy }); + }); + + it('renders location form field as disabled', function () { + expect(screen.getByLabelText('First shard key field')).to.have.attribute( + 'aria-disabled', + 'true' + ); + }); + + it('does not allow user to submit when no second shard key is selected', function () { + expect(screen.getByTestId('shard-collection-button')).to.have.attribute( + 'aria-disabled', + 'true' + ); + + userEvent.click(screen.getByTestId('shard-collection-button')); + expect(onCreateShardKeySpy.called).to.be.false; + }); + + it('allows user to input second shard key and submit it', function () { + setShardingKeyFieldValue('name'); + + userEvent.click(screen.getByTestId('shard-collection-button')); + + expect(onCreateShardKeySpy.calledOnce).to.be.true; + expect(onCreateShardKeySpy.firstCall.args[0]).to.deep.equal({ + customShardKey: 'name', + isShardKeyUnique: false, + isCustomShardKeyHashed: false, + presplitHashedZones: false, + numInitialChunks: null, + }); + }); + + it('renders advanced options and radio buttons for: default, unique-index and hashed index', function () { + const accordian = screen.getByText('Advanced Shard Key Configuration'); + expect(accordian).to.exist; + + userEvent.click(accordian); + + const defaultRadio = screen.getByLabelText('Default'); + const uniqueIndexRadio = screen.getByLabelText( + 'Use unique index as the shard key' + ); + const hashedIndexRadio = screen.getByLabelText( + 'Use hashed index as the shard key' + ); + + expect(defaultRadio).to.exist; + expect(uniqueIndexRadio).to.exist; + expect(hashedIndexRadio).to.exist; + }); + + it('allows user to select unique index as shard key', function () { + const accordian = screen.getByText('Advanced Shard Key Configuration'); + userEvent.click(accordian); + + const uniqueIndexRadio = screen.getByLabelText( + 'Use unique index as the shard key' + ); + userEvent.click(uniqueIndexRadio); + + expect(uniqueIndexRadio).to.have.attribute('aria-checked', 'true'); + + setShardingKeyFieldValue('name'); + + userEvent.click(screen.getByTestId('shard-collection-button')); + + expect(onCreateShardKeySpy.calledOnce).to.be.true; + expect(onCreateShardKeySpy.firstCall.args[0]).to.deep.equal({ + customShardKey: 'name', + isShardKeyUnique: true, + isCustomShardKeyHashed: false, + presplitHashedZones: false, + numInitialChunks: null, + }); + }); + + it('allows user to select hashed index as shard key with split-chunks option', function () { + const accordian = screen.getByText('Advanced Shard Key Configuration'); + userEvent.click(accordian); + + const hashedIndexRadio = screen.getByLabelText( + 'Use hashed index as the shard key' + ); + userEvent.click(hashedIndexRadio); + + expect(hashedIndexRadio).to.have.attribute('aria-checked', 'true'); + + setShardingKeyFieldValue('name'); + + // Check pre-split data + userEvent.click(screen.getByTestId('presplit-data-checkbox'), undefined, { + skipPointerEventsCheck: true, + }); + + userEvent.click(screen.getByTestId('shard-collection-button')); + + expect(onCreateShardKeySpy.calledOnce).to.be.true; + expect(onCreateShardKeySpy.firstCall.args[0]).to.deep.equal({ + customShardKey: 'name', + isShardKeyUnique: false, + isCustomShardKeyHashed: true, + presplitHashedZones: true, + numInitialChunks: null, + }); + }); + + it('allows user to select hashed index as shard key with all its options', function () { + const accordian = screen.getByText('Advanced Shard Key Configuration'); + userEvent.click(accordian); + + const hashedIndexRadio = screen.getByLabelText( + 'Use hashed index as the shard key' + ); + userEvent.click(hashedIndexRadio); + + expect(hashedIndexRadio).to.have.attribute('aria-checked', 'true'); + + setShardingKeyFieldValue('name'); + + // Check pre-split data + userEvent.click(screen.getByTestId('presplit-data-checkbox'), undefined, { + skipPointerEventsCheck: true, + }); + + // Enter number of chunks + userEvent.type(screen.getByTestId('chunks-per-shard-input'), '10'); + + userEvent.click(screen.getByTestId('shard-collection-button')); + + expect(onCreateShardKeySpy.calledOnce).to.be.true; + expect(onCreateShardKeySpy.firstCall.args[0]).to.deep.equal({ + customShardKey: 'name', + isShardKeyUnique: false, + isCustomShardKeyHashed: true, + presplitHashedZones: true, + numInitialChunks: 10, + }); + }); + }); +}); diff --git a/packages/compass-global-writes/src/index.ts b/packages/compass-global-writes/src/index.ts new file mode 100644 index 00000000000..a0cadcc0b76 --- /dev/null +++ b/packages/compass-global-writes/src/index.ts @@ -0,0 +1,33 @@ +import React from 'react'; +import { registerHadronPlugin } from 'hadron-app-registry'; + +import GlobalWrites from './components'; +import { GlobalWritesTabTitle } from './plugin-title'; +import { activateGlobalWritesPlugin } from './store'; +import { createLoggerLocator } from '@mongodb-js/compass-logging/provider'; +import { telemetryLocator } from '@mongodb-js/compass-telemetry/provider'; +import { connectionInfoRefLocator } from '@mongodb-js/compass-connections/provider'; +import { atlasServiceLocator } from '@mongodb-js/atlas-service/provider'; + +const CompassGlobalWritesHadronPlugin = registerHadronPlugin( + { + name: 'CompassGlobalWrites', + component: function GlobalWritesProvider({ children }) { + return React.createElement(React.Fragment, null, children); + }, + activate: activateGlobalWritesPlugin, + }, + { + logger: createLoggerLocator('COMPASS-GLOBAL-WRITES-UI'), + track: telemetryLocator, + connectionInfoRef: connectionInfoRefLocator, + atlasService: atlasServiceLocator, + } +); + +export const CompassGlobalWritesPlugin = { + name: 'GlobalWrites' as const, + provider: CompassGlobalWritesHadronPlugin, + content: GlobalWrites as React.FunctionComponent, + header: GlobalWritesTabTitle as React.FunctionComponent, +}; diff --git a/packages/compass-global-writes/src/plugin-title.tsx b/packages/compass-global-writes/src/plugin-title.tsx new file mode 100644 index 00000000000..0c484aecaac --- /dev/null +++ b/packages/compass-global-writes/src/plugin-title.tsx @@ -0,0 +1,78 @@ +import { connect } from 'react-redux'; +import React from 'react'; +import { type RootState, ShardingStatuses } from './store/reducer'; +import { + Body, + css, + cx, + Icon, + palette, + spacing, + Tooltip, + useDarkMode, +} from '@mongodb-js/compass-components'; + +const containerStyles = css({ + display: 'flex', + gap: spacing[200], + alignItems: 'center', +}); + +const warningIconStyles = css({ + display: 'flex', +}); + +const iconStylesLight = css({ + color: palette.yellow.dark2, +}); + +const iconStylesDark = css({ + color: palette.yellow.base, +}); + +const PluginTitle = ({ showWarning }: { showWarning: boolean }) => { + const darkMode = useDarkMode(); + return ( +
      + Global Writes{' '} + {showWarning && ( + { + // LG does not bubble up the click event to the parent component, + // so we add noop onClick and let it bubble up. + }} + > + + + } + > + + Collections in Atlas Global Clusters with Atlas-managed sharding + must be configured with a compound shard key made up of both a + 'location' field and an identifier field that you provide. + Please configure sharding here. + + + )} +
      + ); +}; + +export const GlobalWritesTabTitle = connect( + ({ managedNamespace, status }: RootState) => ({ + showWarning: !managedNamespace && status !== ShardingStatuses.NOT_READY, + }) +)(PluginTitle); diff --git a/packages/compass-global-writes/src/services/atlas-global-writes-service.ts b/packages/compass-global-writes/src/services/atlas-global-writes-service.ts new file mode 100644 index 00000000000..db41cb5f24f --- /dev/null +++ b/packages/compass-global-writes/src/services/atlas-global-writes-service.ts @@ -0,0 +1,307 @@ +import toNS from 'mongodb-ns'; +import keyBy from 'lodash/keyBy'; +import type { AtlasService } from '@mongodb-js/atlas-service/provider'; +import type { CreateShardKeyData } from '../store/reducer'; +import type { ConnectionInfoRef } from '@mongodb-js/compass-connections/provider'; + +export type ShardZoneMapping = { + isoCode: string; + typeOneIsoCode: string; + zoneId: string; + country: string; + readableName: string; +}; +export type ManagedNamespace = { + db: string; + collection: string; + customShardKey: string; + isCustomShardKeyHashed: boolean; + isShardKeyUnique: boolean; + numInitialChunks: number | null; + presplitHashedZones: boolean; +}; + +type GeoShardingData = { + customZoneMapping: Record; + managedNamespaces: ManagedNamespace[]; + selfManagedSharding: boolean; +}; + +type ReplicationItem = { + id: string; + regionConfigs: { + regionView: { + location: string; + }; + }[]; + zoneId: string; + zoneName: string; +}; +export type ClusterDetailsApiResponse = { + geoSharding: GeoShardingData; + replicationSpecList: ReplicationItem[]; +}; + +type AutomationAgentProcess = { + statusType: string; + workingOnShort: string; + errorText: string; +}; + +export type AutomationAgentDeploymentStatusApiResponse = { + automationStatus: { + processes: AutomationAgentProcess[]; + }; +}; + +type AtlasShardKey = { + _id: string; + unique: boolean; + key: Record; +}; + +function assertDataIsClusterDetailsApiResponse( + data: any +): asserts data is ClusterDetailsApiResponse { + if (!Array.isArray(data?.geoSharding?.managedNamespaces)) { + throw new Error( + 'Invalid cluster details API response geoSharding.managedNamespaces' + ); + } + if (typeof data?.geoSharding?.customZoneMapping !== 'object') { + throw new Error( + 'Invalid cluster details API response geoSharding.customZoneMapping' + ); + } + if (!Array.isArray(data?.replicationSpecList)) { + throw new Error('Invalid cluster details API response replicationSpecList'); + } +} + +function assertDataIsAutomationAgentDeploymentStatusApiResponse( + data: any +): asserts data is AutomationAgentDeploymentStatusApiResponse { + if (!Array.isArray(data?.automationStatus?.processes)) { + throw new Error( + 'Invalid automation agent deployment status API response automationStatus.processes' + ); + } +} + +function assertDataIsShardZonesApiResponse( + data: any +): asserts data is Record { + if (typeof data !== 'object') { + throw new Error('Invalid shard zones API response'); + } +} + +export class AtlasGlobalWritesService { + constructor( + private atlasService: AtlasService, + private connectionInfo: ConnectionInfoRef + ) {} + + private getAtlasMetadata() { + if (!this.connectionInfo.current?.atlasMetadata) { + throw new Error('Atlas metadata is not available'); + } + return this.connectionInfo.current.atlasMetadata; + } + + private async getClusterDetails(): Promise { + const { projectId, clusterName } = this.getAtlasMetadata(); + const uri = this.atlasService.cloudEndpoint( + `nds/clusters/${projectId}/${clusterName}` + ); + const response = await this.atlasService.authenticatedFetch(uri); + const clusterDetails = await response.json(); + assertDataIsClusterDetailsApiResponse(clusterDetails); + return clusterDetails; + } + + async getManagedNamespace(namespace: string) { + const clusterDetails = await this.getClusterDetails(); + const { database, collection } = toNS(namespace); + return clusterDetails.geoSharding.managedNamespaces.find( + (managedNamespace) => { + return ( + managedNamespace.db === database && + managedNamespace.collection === collection + ); + } + ); + } + + async createShardKey(namespace: string, keyData: CreateShardKeyData) { + const clusterDetails = await this.getClusterDetails(); + const { database, collection } = toNS(namespace); + const requestData: GeoShardingData = { + ...clusterDetails.geoSharding, + managedNamespaces: [ + ...clusterDetails.geoSharding.managedNamespaces, + { + db: database, + collection: collection, + ...keyData, + }, + ], + }; + + const { projectId, clusterName } = this.getAtlasMetadata(); + const uri = this.atlasService.cloudEndpoint( + `nds/clusters/${projectId}/${clusterName}/geoSharding` + ); + + const response = await this.atlasService.authenticatedFetch(uri, { + method: 'PATCH', + body: JSON.stringify(requestData), + headers: { + 'Content-Type': 'application/json', + }, + }); + assertDataIsClusterDetailsApiResponse(await response.json()); + + const managedNamespace = requestData.managedNamespaces.find( + (managedNamespace) => + managedNamespace.db === database && + managedNamespace.collection === collection + ); + if (!managedNamespace) { + throw new Error('Managed namespace not found'); + } + return managedNamespace; + } + + async getShardingError(namespace: string) { + const { projectId } = this.getAtlasMetadata(); + const uri = this.atlasService.cloudEndpoint( + `/automation/deploymentStatus/${projectId}` + ); + const response = await this.atlasService.authenticatedFetch(uri); + const data = await response.json(); + assertDataIsAutomationAgentDeploymentStatusApiResponse(data); + const namespaceShardingError = data.automationStatus.processes.find( + (process) => + process.statusType === 'ERROR' && + process.workingOnShort === 'ShardingCollections' && + process.errorText.indexOf(namespace) !== -1 + ); + return namespaceShardingError?.errorText; + } + + async getShardingKeys(namespace: string) { + const { database: db, collection } = toNS(namespace); + const atlasMetadata = this.getAtlasMetadata(); + + const req = await this.atlasService.automationAgentRequest( + atlasMetadata, + 'getShardKey', + { + db, + collection, + } + ); + + if (!req) { + throw new Error( + 'Unexpected response from the automation agent backend: expected to get the request metadata, got undefined' + ); + } + + const res = await this.atlasService.automationAgentAwait( + atlasMetadata, + req.requestType, + req._id + ); + const data = res.response; + + if (data.length === 0) { + return null; + } + const { key, unique } = data[0]; + + return { + fields: Object.keys(key).map( + (field) => + ({ + name: field, + type: key[field] === 'hashed' ? 'HASHED' : 'RANGE', + } as const) + ), + isUnique: !!unique, + }; + } + + async getShardingZones() { + const { projectId } = this.getAtlasMetadata(); + const { + replicationSpecList: replicationSpecs, + geoSharding: { customZoneMapping }, + } = await this.getClusterDetails(); + + const uri = this.atlasService.cloudEndpoint( + `/nds/geoSharding/${projectId}/newFormLocationMapping` + ); + const response = await this.atlasService.authenticatedFetch(uri, { + method: 'POST', + body: JSON.stringify({ + replicationSpecs, + customZoneMapping, + }), + headers: { + 'Content-Type': 'application/json', + }, + }); + const data = await response.json(); + assertDataIsShardZonesApiResponse(data); + return transformZoneData(Object.values(data), replicationSpecs); + } + + async unmanageNamespace(namespace: string) { + const clusterDetails = await this.getClusterDetails(); + const { database, collection } = toNS(namespace); + + const newManagedNamespaces = + clusterDetails.geoSharding.managedNamespaces.filter( + (managedNamespace) => + managedNamespace.db !== database || + managedNamespace.collection !== collection + ); + const requestData: GeoShardingData = { + ...clusterDetails.geoSharding, + managedNamespaces: newManagedNamespaces, + }; + + const { projectId, clusterName } = this.getAtlasMetadata(); + const uri = this.atlasService.cloudEndpoint( + `nds/clusters/${projectId}/${clusterName}/geoSharding` + ); + + await this.atlasService.authenticatedFetch(uri, { + method: 'PATCH', + body: JSON.stringify(requestData), + headers: { + 'Content-Type': 'application/json', + }, + }); + } +} + +function transformZoneData( + zoneData: ShardZoneMapping[], + replicationSpecs: ReplicationItem[] +) { + const replicationSpecsMap = keyBy(replicationSpecs, 'zoneId'); + return zoneData.map((zone) => ({ + zoneId: zone.zoneId, + country: zone.country, + readableName: zone.readableName, + isoCode: zone.isoCode, + typeOneIsoCode: zone.typeOneIsoCode, + zoneName: replicationSpecsMap[zone.zoneId].zoneName, + zoneLocations: replicationSpecsMap[zone.zoneId].regionConfigs.map( + (regionConfig) => regionConfig.regionView.location + ), + })); +} diff --git a/packages/compass-global-writes/src/store/index.spec.ts b/packages/compass-global-writes/src/store/index.spec.ts new file mode 100644 index 00000000000..7aa4c56e6d6 --- /dev/null +++ b/packages/compass-global-writes/src/store/index.spec.ts @@ -0,0 +1,216 @@ +import { expect } from 'chai'; +import { type GlobalWritesStore } from '.'; +import { setupStore } from '../../tests/create-store'; +import { + fetchClusterShardingData, + createShardKey, + type CreateShardKeyData, +} from './reducer'; +import sinon from 'sinon'; +import type { + AutomationAgentDeploymentStatusApiResponse, + ClusterDetailsApiResponse, + ManagedNamespace, + ShardZoneMapping, +} from '../services/atlas-global-writes-service'; +import { waitFor } from '@mongodb-js/testing-library-compass'; + +const DB = 'test'; +const COLL = 'coll'; +const NS = `${DB}.${COLL}`; + +const clusterDetails: ClusterDetailsApiResponse = { + geoSharding: { + customZoneMapping: {}, + managedNamespaces: [], + selfManagedSharding: false, + }, + replicationSpecList: [], +}; + +const managedNamespace: ManagedNamespace = { + db: DB, + collection: COLL, + customShardKey: 'secondary', + isCustomShardKeyHashed: false, + isShardKeyUnique: false, + numInitialChunks: null, + presplitHashedZones: false, +}; + +const shardKeyData: CreateShardKeyData = { + customShardKey: 'test', + isCustomShardKeyHashed: true, + isShardKeyUnique: false, + numInitialChunks: 1, + presplitHashedZones: true, +}; + +function createAuthFetchResponse< + TResponse extends + | ClusterDetailsApiResponse + | AutomationAgentDeploymentStatusApiResponse + | Record +>(data: TResponse) { + return { + json: () => Promise.resolve(data), + }; +} + +function createStore(atlasService: any = {}): GlobalWritesStore { + return setupStore( + { + namespace: NS, + }, + { + atlasService, + } + ); +} + +describe('GlobalWritesStore Store', function () { + it('sets the initial state', function () { + const store = createStore(); + expect(store.getState().namespace).to.equal(NS); + expect(store.getState().status).to.equal('NOT_READY'); + }); + + context('scenarios', function () { + it('not managed -> sharding', async function () { + const store = createStore({ + authenticatedFetch: () => createAuthFetchResponse(clusterDetails), + }); + await store.dispatch(fetchClusterShardingData()); + expect(store.getState().status).to.equal('UNSHARDED'); + expect(store.getState().managedNamespace).to.equal(undefined); + + const promise = store.dispatch(createShardKey(shardKeyData)); + expect(store.getState().status).to.equal('SUBMITTING_FOR_SHARDING'); + await promise; + expect(store.getState().status).to.equal('SHARDING'); + }); + + it('not managed -> failed sharding attempt', async function () { + const store = createStore({ + authenticatedFetch: (uri: string) => { + if (uri.includes('/geoSharding')) { + return Promise.reject(new Error('Failed to shard')); + } + + return createAuthFetchResponse(clusterDetails); + }, + }); + await store.dispatch(fetchClusterShardingData()); + expect(store.getState().status).to.equal('UNSHARDED'); + expect(store.getState().managedNamespace).to.equal(undefined); + + const promise = store.dispatch(createShardKey(shardKeyData)); + expect(store.getState().status).to.equal('SUBMITTING_FOR_SHARDING'); + await promise; + expect(store.getState().status).to.equal('UNSHARDED'); + }); + + it('when the namespace is managed', async function () { + const store = createStore({ + authenticatedFetch: (uri: string) => { + if (uri.includes('/clusters/')) { + return createAuthFetchResponse({ + ...clusterDetails, + geoSharding: { + ...clusterDetails.geoSharding, + managedNamespaces: [managedNamespace], + }, + }); + } + + if (uri.includes('/deploymentStatus/')) { + return createAuthFetchResponse({ + automationStatus: { + processes: [], + }, + }); + } + + return createAuthFetchResponse({}); + }, + automationAgentRequest: (_meta: unknown, type: string) => ({ + _id: '123', + requestType: type, + }), + automationAgentAwait: (_meta: unknown, type: string) => { + if (type === 'getShardKey') { + return { + response: [ + { + key: { + location: 'HASHED', + secondary: 'HASHED', + }, + unique: false, + }, + ], + }; + } + }, + }); + await store.dispatch(fetchClusterShardingData()); + await waitFor(() => { + expect(store.getState().status).to.equal('SHARD_KEY_CORRECT'); + expect(store.getState().managedNamespace).to.equal(managedNamespace); + }); + }); + + it('sends correct data to the server when creating a shard key', async function () { + const alreadyManagedNamespaces = [ + { + db: 'test', + collection: 'one', + customShardKey: 'test', + isCustomShardKeyHashed: true, + isShardKeyUnique: false, + numInitialChunks: 1, + presplitHashedZones: true, + }, + ]; + + const getClusterInfoApiResponse = createAuthFetchResponse({ + ...clusterDetails, + geoSharding: { + ...clusterDetails.geoSharding, + managedNamespaces: alreadyManagedNamespaces, + }, + }); + + // We call cluster API when store is activated to get the initial state. + // When creating a shard key, we call the same API to fetch the latest list of + // managed namespaces & then send it to the server along with the shard key data. + // So, we mock first and second call with same data. And then third call + // should be to create the shard key. + const fetchStub = sinon + .stub() + .onFirstCall() + .returns(getClusterInfoApiResponse) + .onSecondCall() + .returns(getClusterInfoApiResponse) + .onThirdCall() + .resolves(); + + const store = createStore({ + authenticatedFetch: fetchStub, + }); + + await store.dispatch(createShardKey(shardKeyData)); + + const options = fetchStub.getCall(2).args[1]; + expect(options.method).to.equal('PATCH'); + expect(JSON.parse(options.body)).to.deep.equal({ + customZoneMapping: {}, + managedNamespaces: [ + ...alreadyManagedNamespaces, + { ...shardKeyData, db: DB, collection: COLL }, + ], + selfManagedSharding: false, + }); + }); + }); +}); diff --git a/packages/compass-global-writes/src/store/index.ts b/packages/compass-global-writes/src/store/index.ts new file mode 100644 index 00000000000..b00fad27e27 --- /dev/null +++ b/packages/compass-global-writes/src/store/index.ts @@ -0,0 +1,83 @@ +import { createStore, applyMiddleware, type Action, type Store } from 'redux'; +import thunk from 'redux-thunk'; +import type { ActivateHelpers } from 'hadron-app-registry'; +import type { Logger } from '@mongodb-js/compass-logging'; +import type { TrackFunction } from '@mongodb-js/compass-telemetry'; +import type { ConnectionInfoRef } from '@mongodb-js/compass-connections/provider'; +import type { CollectionTabPluginMetadata } from '@mongodb-js/compass-collection'; +import type { AtlasService } from '@mongodb-js/atlas-service/provider'; +import type { ThunkAction, ThunkDispatch } from 'redux-thunk'; + +import reducer, { + ShardingStatuses, + fetchClusterShardingData, + type RootState, +} from './reducer'; +import { AtlasGlobalWritesService } from '../services/atlas-global-writes-service'; + +type GlobalWritesExtraArgs = { + logger: Logger; + track: TrackFunction; + connectionInfoRef: ConnectionInfoRef; + atlasGlobalWritesService: AtlasGlobalWritesService; +}; + +export type GlobalWritesThunkAction = ThunkAction< + R, + RootState, + GlobalWritesExtraArgs, + A +>; +export type GlobalWritesThunkDispatch = + ThunkDispatch; + +export type GlobalWritesPluginOptions = Pick< + CollectionTabPluginMetadata, + 'namespace' +>; +export type GlobalWritesPluginServices = Pick< + GlobalWritesExtraArgs, + 'logger' | 'track' | 'connectionInfoRef' +> & { + atlasService: AtlasService; +}; + +export type GlobalWritesStore = Store & { + dispatch: GlobalWritesThunkDispatch; +}; + +export function activateGlobalWritesPlugin( + options: GlobalWritesPluginOptions, + { + connectionInfoRef, + logger, + track, + atlasService, + }: GlobalWritesPluginServices, + { cleanup }: ActivateHelpers +) { + const atlasGlobalWritesService = new AtlasGlobalWritesService( + atlasService, + connectionInfoRef + ); + const store: GlobalWritesStore = createStore( + reducer, + { + namespace: options.namespace, + status: ShardingStatuses.NOT_READY, + shardZones: [], + }, + applyMiddleware( + thunk.withExtraArgument({ + logger, + track, + connectionInfoRef, + atlasGlobalWritesService, + }) + ) + ); + + void store.dispatch(fetchClusterShardingData()); + + return { store, deactivate: () => cleanup() }; +} diff --git a/packages/compass-global-writes/src/store/reducer.ts b/packages/compass-global-writes/src/store/reducer.ts new file mode 100644 index 00000000000..85981a039df --- /dev/null +++ b/packages/compass-global-writes/src/store/reducer.ts @@ -0,0 +1,589 @@ +import type { Action, Reducer } from 'redux'; +import type { GlobalWritesThunkAction } from '.'; +import { openToast } from '@mongodb-js/compass-components'; +import type { ManagedNamespace } from '../services/atlas-global-writes-service'; + +export function isAction( + action: Action, + type: A['type'] +): action is A { + return action.type === type; +} + +export type CreateShardKeyData = Pick< + ManagedNamespace, + | 'customShardKey' + | 'isCustomShardKeyHashed' + | 'isShardKeyUnique' + | 'numInitialChunks' + | 'presplitHashedZones' +>; + +enum GlobalWritesActionTypes { + ManagedNamespaceFetched = 'global-writes/ManagedNamespaceFetched', + NamespaceShardingErrorFetched = 'global-writes/NamespaceShardingErrorFetched', + NamespaceShardKeyFetched = 'global-writes/NamespaceShardKeyFetched', + + ShardZonesFetched = 'global-writes/ShardZonesFetched', + + SubmittingForShardingStarted = 'global-writes/SubmittingForShardingStarted', + SubmittingForShardingFinished = 'global-writes/SubmittingForShardingFinished', + SubmittingForShardingErrored = 'global-writes/SubmittingForShardingErrored', + + UnmanagingNamespaceStarted = 'global-writes/UnmanagingNamespaceStarted', + UnmanagingNamespaceFinished = 'global-writes/UnmanagingNamespaceFinished', + UnmanagingNamespaceErrored = 'global-writes/UnmanagingNamespaceErrored', +} + +type ManagedNamespaceFetchedAction = { + type: GlobalWritesActionTypes.ManagedNamespaceFetched; + managedNamespace?: ManagedNamespace; +}; + +type NamespaceShardingErrorFetchedAction = { + type: GlobalWritesActionTypes.NamespaceShardingErrorFetched; + error: string; +}; + +type NamespaceShardKeyFetchedAction = { + type: GlobalWritesActionTypes.NamespaceShardKeyFetched; + shardKey: ShardKey; +}; + +type ShardZonesFetchedAction = { + type: GlobalWritesActionTypes.ShardZonesFetched; + shardZones: ShardZoneData[]; +}; + +type SubmittingForShardingStartedAction = { + type: GlobalWritesActionTypes.SubmittingForShardingStarted; +}; + +type SubmittingForShardingFinishedAction = { + type: GlobalWritesActionTypes.SubmittingForShardingFinished; + managedNamespace?: ManagedNamespace; +}; + +type SubmittingForShardingErroredAction = { + type: GlobalWritesActionTypes.SubmittingForShardingErrored; +}; + +type UnmanagingNamespaceStartedAction = { + type: GlobalWritesActionTypes.UnmanagingNamespaceStarted; +}; + +type UnmanagingNamespaceFinishedAction = { + type: GlobalWritesActionTypes.UnmanagingNamespaceFinished; +}; + +type UnmanagingNamespaceErroredAction = { + type: GlobalWritesActionTypes.UnmanagingNamespaceErrored; +}; + +export enum ShardingStatuses { + /** + * Initial status, no information available yet. + */ + NOT_READY = 'NOT_READY', + + /** + * Namespace is not geo-sharded. + */ + UNSHARDED = 'UNSHARDED', + + /** + * State when user submits namespace to be sharded and + * we are waiting for server to accept the request. + */ + SUBMITTING_FOR_SHARDING = 'SUBMITTING_FOR_SHARDING', + + /** + * Namespace is being sharded. + */ + SHARDING = 'SHARDING', + + /** + * Sharding failed. + */ + SHARDING_ERROR = 'SHARDING_ERROR', + + /** + * If the first key is not valid location key or the key is not compound. + */ + SHARD_KEY_INVALID = 'SHARD_KEY_INVALID', + + /** + * If the first key is valid (location key) and second key is not valid. + * The second key valid means that it matches with the managedNamespace's + * customShardKey and is of the correct type. + */ + SHARD_KEY_MISMATCH = 'SHARD_KEY_MISMATCH', + + /** + * Namespace is geo-sharded. Both, first key is valid + * location key and second key is valid custom key. + */ + SHARD_KEY_CORRECT = 'SHARD_KEY_CORRECT', + + /** + * Namespace is being unmanaged. + */ + UNMANAGING_NAMESPACE = 'UNMANAGING_NAMESPACE', +} + +export type ShardingStatus = keyof typeof ShardingStatuses; +export type ShardKey = { + fields: Array<{ + type: 'HASHED' | 'RANGE'; + name: string; + }>; + isUnique: boolean; +}; +export type ShardZoneData = { + zoneId: string; + country: string; + readableName: string; + isoCode: string; + typeOneIsoCode: string; + zoneName: string; + zoneLocations: string[]; +}; +export type RootState = { + namespace: string; + managedNamespace?: ManagedNamespace; + shardZones: ShardZoneData[]; +} & ( + | { + status: ShardingStatuses.NOT_READY; + shardKey?: never; + shardingError?: never; + } + | { + status: + | ShardingStatuses.UNSHARDED + | ShardingStatuses.SUBMITTING_FOR_SHARDING + | ShardingStatuses.SHARDING; + /** + * note: shardKey might exist even for unsharded. + * if the collection was sharded previously and then unmanaged + */ + shardKey?: ShardKey; + shardingError?: never; + } + | { + status: ShardingStatuses.SHARDING_ERROR; + shardKey?: never; + shardingError: string; + } + | { + status: + | ShardingStatuses.SHARD_KEY_CORRECT + | ShardingStatuses.SHARD_KEY_INVALID + | ShardingStatuses.SHARD_KEY_MISMATCH + | ShardingStatuses.UNMANAGING_NAMESPACE; + shardKey: ShardKey; + shardingError?: never; + } +); + +const initialState: RootState = { + namespace: '', + status: ShardingStatuses.NOT_READY, + shardZones: [], +}; + +const reducer: Reducer = (state = initialState, action) => { + if ( + isAction( + action, + GlobalWritesActionTypes.ManagedNamespaceFetched + ) && + state.status === ShardingStatuses.NOT_READY + ) { + return { + ...state, + managedNamespace: action.managedNamespace, + status: !action.managedNamespace + ? ShardingStatuses.UNSHARDED + : state.status, + }; + } + + if ( + isAction( + action, + GlobalWritesActionTypes.NamespaceShardingErrorFetched + ) && + state.status === ShardingStatuses.NOT_READY + ) { + return { + ...state, + status: ShardingStatuses.SHARDING_ERROR, + shardKey: undefined, + shardingError: action.error, + }; + } + + if ( + isAction( + action, + GlobalWritesActionTypes.NamespaceShardKeyFetched + ) && + state.status === ShardingStatuses.NOT_READY + ) { + return { + ...state, + status: getStatusFromShardKey(action.shardKey, state.managedNamespace), + shardKey: action.shardKey, + shardingError: undefined, + }; + } + + if ( + isAction( + action, + GlobalWritesActionTypes.ShardZonesFetched + ) + ) { + return { + ...state, + shardZones: action.shardZones, + }; + } + + if ( + isAction( + action, + GlobalWritesActionTypes.SubmittingForShardingStarted + ) && + state.status === ShardingStatuses.UNSHARDED + ) { + return { + ...state, + status: ShardingStatuses.SUBMITTING_FOR_SHARDING, + }; + } + + if ( + isAction( + action, + GlobalWritesActionTypes.SubmittingForShardingFinished + ) && + state.status === ShardingStatuses.SUBMITTING_FOR_SHARDING + ) { + return { + ...state, + managedNamespace: action.managedNamespace || state.managedNamespace, + status: ShardingStatuses.SHARDING, + }; + } + + if ( + isAction( + action, + GlobalWritesActionTypes.SubmittingForShardingErrored + ) && + state.status === ShardingStatuses.SUBMITTING_FOR_SHARDING + ) { + return { + ...state, + managedNamespace: undefined, + status: ShardingStatuses.UNSHARDED, + }; + } + + if ( + isAction( + action, + GlobalWritesActionTypes.UnmanagingNamespaceStarted + ) && + (state.status === ShardingStatuses.SHARD_KEY_CORRECT || + state.status === ShardingStatuses.SHARD_KEY_INVALID || + state.status === ShardingStatuses.SHARD_KEY_MISMATCH) + ) { + return { + ...state, + status: ShardingStatuses.UNMANAGING_NAMESPACE, + }; + } + + if ( + isAction( + action, + GlobalWritesActionTypes.UnmanagingNamespaceFinished + ) && + state.status === ShardingStatuses.UNMANAGING_NAMESPACE + ) { + return { + ...state, + managedNamespace: undefined, + status: ShardingStatuses.UNSHARDED, + }; + } + + if ( + isAction( + action, + GlobalWritesActionTypes.UnmanagingNamespaceErrored + ) && + state.status === ShardingStatuses.UNMANAGING_NAMESPACE + ) { + return { + ...state, + status: ShardingStatuses.SHARD_KEY_CORRECT, + }; + } + + return state; +}; + +export const fetchClusterShardingData = + (): GlobalWritesThunkAction, ManagedNamespaceFetchedAction> => + async ( + dispatch, + getState, + { atlasGlobalWritesService, logger, connectionInfoRef } + ) => { + const { namespace } = getState(); + try { + // Call the API to check if the namespace is managed. If the namespace is managed, + // we would want to fetch more data that is needed to figure out the state and + // accordingly show the UI to the user. + const managedNamespace = + await atlasGlobalWritesService.getManagedNamespace(namespace); + + dispatch({ + type: GlobalWritesActionTypes.ManagedNamespaceFetched, + managedNamespace, + }); + if (!managedNamespace) { + return; + } + + // At this point, the namespace is managed and we want to fetch the sharding key. + void dispatch(fetchNamespaceShardKey()); + } catch (error) { + logger.log.error( + logger.mongoLogId(1_001_000_330), + 'AtlasFetchError', + 'Error fetching cluster sharding data', + (error as Error).message + ); + openToast( + `global-writes-fetch-shard-info-error-${connectionInfoRef.current.id}-${namespace}`, + { + title: `Failed to fetch sharding information: ${ + (error as Error).message + }`, + dismissible: true, + timeout: 5000, + variant: 'important', + } + ); + } + }; + +export const createShardKey = ( + data: CreateShardKeyData +): GlobalWritesThunkAction< + Promise, + | SubmittingForShardingStartedAction + | SubmittingForShardingFinishedAction + | SubmittingForShardingErroredAction +> => { + return async ( + dispatch, + getState, + { atlasGlobalWritesService, logger, connectionInfoRef } + ) => { + const { namespace } = getState(); + dispatch({ + type: GlobalWritesActionTypes.SubmittingForShardingStarted, + }); + + try { + const managedNamespace = await atlasGlobalWritesService.createShardKey( + namespace, + data + ); + dispatch(setNamespaceBeingSharded(managedNamespace)); + } catch (error) { + logger.log.error( + logger.mongoLogId(1_001_000_331), + 'AtlasFetchError', + 'Error creating cluster shard key', + { + error: (error as Error).message, + data, + } + ); + openToast( + `global-writes-create-shard-key-error-${connectionInfoRef.current.id}-${namespace}`, + { + title: `Failed to create shard key: ${(error as Error).message}`, + dismissible: true, + timeout: 5000, + variant: 'important', + } + ); + dispatch({ + type: GlobalWritesActionTypes.SubmittingForShardingErrored, + }); + } + }; +}; + +const setNamespaceBeingSharded = ( + managedNamespace?: ManagedNamespace +): GlobalWritesThunkAction => { + return (dispatch) => { + dispatch({ + type: GlobalWritesActionTypes.SubmittingForShardingFinished, + managedNamespace, + }); + }; +}; + +export const fetchNamespaceShardKey = (): GlobalWritesThunkAction< + Promise, + NamespaceShardingErrorFetchedAction | NamespaceShardKeyFetchedAction +> => { + return async ( + dispatch, + getState, + { atlasGlobalWritesService, logger, connectionInfoRef } + ) => { + const { namespace } = getState(); + + try { + const [shardingError, shardKey] = await Promise.all([ + atlasGlobalWritesService.getShardingError(namespace), + atlasGlobalWritesService.getShardingKeys(namespace), + ]); + + if (shardingError) { + dispatch({ + type: GlobalWritesActionTypes.NamespaceShardingErrorFetched, + error: shardingError, + }); + return; + } + + if (!shardKey) { + dispatch(setNamespaceBeingSharded()); + return; + } + + dispatch({ + type: GlobalWritesActionTypes.NamespaceShardKeyFetched, + shardKey, + }); + void dispatch(fetchShardingZones()); + } catch (error) { + logger.log.error( + logger.mongoLogId(1_001_000_333), + 'AtlasFetchError', + 'Error fetching shard key', + (error as Error).message + ); + openToast( + `global-writes-fetch-shard-key-error-${connectionInfoRef.current.id}-${namespace}`, + { + title: `Failed to fetch shard key: ${(error as Error).message}`, + dismissible: true, + timeout: 5000, + variant: 'important', + } + ); + } + }; +}; + +export const fetchShardingZones = (): GlobalWritesThunkAction< + Promise, + ShardZonesFetchedAction +> => { + return async (dispatch, getState, { atlasGlobalWritesService }) => { + const { shardZones } = getState(); + if (shardZones.length > 0) { + return; + } + const shardingZones = await atlasGlobalWritesService.getShardingZones(); + dispatch({ + type: GlobalWritesActionTypes.ShardZonesFetched, + shardZones: shardingZones, + }); + }; +}; + +export const unmanageNamespace = (): GlobalWritesThunkAction< + Promise, + | UnmanagingNamespaceStartedAction + | UnmanagingNamespaceFinishedAction + | UnmanagingNamespaceErroredAction +> => { + return async ( + dispatch, + getState, + { atlasGlobalWritesService, connectionInfoRef } + ) => { + const { namespace } = getState(); + + dispatch({ + type: GlobalWritesActionTypes.UnmanagingNamespaceStarted, + }); + + try { + await atlasGlobalWritesService.unmanageNamespace(namespace); + dispatch({ + type: GlobalWritesActionTypes.UnmanagingNamespaceFinished, + }); + } catch (error) { + dispatch({ + type: GlobalWritesActionTypes.UnmanagingNamespaceErrored, + }); + openToast( + `global-writes-unmanage-namespace-error-${connectionInfoRef.current.id}-${namespace}`, + { + title: `Failed to unmanage namespace: ${(error as Error).message}`, + dismissible: true, + timeout: 5000, + variant: 'important', + } + ); + } + }; +}; + +export function getStatusFromShardKey( + shardKey: ShardKey, + managedNamespace?: ManagedNamespace +) { + const [firstShardKey, secondShardKey] = shardKey.fields; + + // For a shard key to be valid: + // 1. The first key must be location and of type RANGE. + // 2. The second key name must match managedNamespace.customShardKey and + // the type must match the managedNamespace.isCustomShardKeyHashed. + + const isLocatonKeyValid = + firstShardKey.name === 'location' && firstShardKey.type === 'RANGE'; + const isCustomKeyValid = + managedNamespace && + managedNamespace.isShardKeyUnique === shardKey.isUnique && + secondShardKey.name === managedNamespace.customShardKey && + secondShardKey.type === + (managedNamespace.isCustomShardKeyHashed ? 'HASHED' : 'RANGE'); + + if (!isLocatonKeyValid || !secondShardKey) { + return ShardingStatuses.SHARD_KEY_INVALID; + } + + if (!isCustomKeyValid) { + return ShardingStatuses.SHARD_KEY_MISMATCH; + } + + return ShardingStatuses.SHARD_KEY_CORRECT; +} + +export default reducer; diff --git a/packages/compass-global-writes/tests/cluster-api-response.json b/packages/compass-global-writes/tests/cluster-api-response.json new file mode 100644 index 00000000000..1f8c12ab7ed --- /dev/null +++ b/packages/compass-global-writes/tests/cluster-api-response.json @@ -0,0 +1,17 @@ +{ + "geoSharding": { + "customZoneMapping": {}, + "managedNamespaces": [ + { + "collection": "listingsAndReviews", + "customShardKey": "address.country", + "db": "sample_airbnb", + "isCustomShardKeyHashed": false, + "isShardKeyUnique": false, + "numInitialChunks": null, + "presplitHashedZones": false + } + ], + "selfManagedSharding": false + } +} diff --git a/packages/compass-global-writes/tests/create-store.tsx b/packages/compass-global-writes/tests/create-store.tsx new file mode 100644 index 00000000000..631a6d6d5d9 --- /dev/null +++ b/packages/compass-global-writes/tests/create-store.tsx @@ -0,0 +1,95 @@ +import React from 'react'; +import type { + GlobalWritesPluginOptions, + GlobalWritesPluginServices, +} from '../src/store'; +import { activateGlobalWritesPlugin } from '../src/store'; +import { createActivateHelpers } from 'hadron-app-registry'; +import { createNoopLogger } from '@mongodb-js/compass-logging/provider'; +import { createNoopTrack } from '@mongodb-js/compass-telemetry/provider'; +import type { ConnectionInfo } from '@mongodb-js/compass-connections/provider'; +import type { AtlasService } from '@mongodb-js/atlas-service/provider'; +import { Provider } from 'react-redux'; +import { renderWithActiveConnection } from '@mongodb-js/testing-library-compass'; + +import clusterApiResponse from './cluster-api-response.json'; + +const TEST_CONNECTION_INFO = { + id: 'TEST', + connectionOptions: { + connectionString: 'mongodb://localhost', + }, + atlasMetadata: { + clusterName: 'Cluster0', + clusterType: 'UNSHARDED', + projectId: 'Project0', + } as unknown as ConnectionInfo['atlasMetadata'], +}; + +const atlasService = { + cloudEndpoint: (p: string) => { + return `https://example.com/${p}`; + }, + authenticatedFetch: (url: RequestInfo | URL) => { + if (url.toString().endsWith('nds/clusters/Project0/Cluster0')) { + return Promise.resolve({ + status: 200, + // eslint-disable-next-line @typescript-eslint/require-await + json: async () => clusterApiResponse, + } as Response); + } + return Promise.resolve({ + status: 200, + // eslint-disable-next-line @typescript-eslint/require-await + json: async () => ({}), + } as Response); + }, +} as unknown as AtlasService; + +export const setupStore = ( + options: Partial = {}, + services: Partial = {}, + connectionInfo: ConnectionInfo = TEST_CONNECTION_INFO +) => { + return activateGlobalWritesPlugin( + { + namespace: 'airbnb.listings', + ...options, + }, + { + logger: createNoopLogger('TEST'), + track: createNoopTrack(), + connectionInfoRef: { + current: { + ...connectionInfo, + title: 'My connection', + }, + }, + ...services, + atlasService: { + ...atlasService, + ...services.atlasService, + } as AtlasService, + }, + createActivateHelpers() + ).store; +}; + +export const renderWithStore = ( + component: JSX.Element, + { + services = {}, + options = {}, + connectionInfo = TEST_CONNECTION_INFO, + }: { + services?: Partial; + options?: Partial; + connectionInfo?: ConnectionInfo; + } = {} +) => { + const store = setupStore(options, services, connectionInfo); + return renderWithActiveConnection( + {component}, + connectionInfo + ); +}; diff --git a/packages/compass-global-writes/tsconfig-lint.json b/packages/compass-global-writes/tsconfig-lint.json new file mode 100644 index 00000000000..6bdef84f322 --- /dev/null +++ b/packages/compass-global-writes/tsconfig-lint.json @@ -0,0 +1,5 @@ +{ + "extends": "./tsconfig.json", + "include": ["**/*"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/compass-global-writes/tsconfig.json b/packages/compass-global-writes/tsconfig.json new file mode 100644 index 00000000000..79bc84584ce --- /dev/null +++ b/packages/compass-global-writes/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "@mongodb-js/tsconfig-compass/tsconfig.react.json", + "compilerOptions": { + "outDir": "dist" + }, + "include": ["src/**/*"], + "exclude": ["./src/**/*.spec.*"] +} diff --git a/packages/compass-import-export/package.json b/packages/compass-import-export/package.json index 7b3f869a1a2..34e9af523dc 100644 --- a/packages/compass-import-export/package.json +++ b/packages/compass-import-export/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "7.41.0", + "version": "7.42.2", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -49,23 +49,23 @@ }, "dependencies": { "@electron/remote": "^2.1.2", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-editor": "^0.30.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-telemetry": "^1.1.7", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.23.0", - "bson": "^6.7.0", - "compass-preferences-model": "^2.28.3", + "@mongodb-js/compass-workspaces": "^0.24.2", + "bson": "^6.8.0", + "compass-preferences-model": "^2.29.0", "debug": "^4.3.4", "electron": "^30.5.1", - "hadron-app-registry": "^9.2.6", + "hadron-app-registry": "^9.2.7", "hadron-document": "^8.6.3", "hadron-ipc": "^3.2.23", "lodash": "^4.17.21", - "mongodb": "^6.8.0", - "mongodb-data-service": "^22.23.3", + "mongodb": "^6.9.0", + "mongodb-data-service": "^22.23.4", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "mongodb-schema": "^12.2.0", @@ -82,7 +82,7 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "@types/chai": "^4.2.21", "@types/chai-as-promised": "^7.1.4", diff --git a/packages/compass-indexes/package.json b/packages/compass-indexes/package.json index e2295d05338..cbd7dbdd994 100644 --- a/packages/compass-indexes/package.json +++ b/packages/compass-indexes/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "5.41.0", + "version": "5.42.2", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -51,8 +51,9 @@ "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", - "@mongodb-js/testing-library-compass": "^1.0.1", + "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", + "@types/numeral": "^2.0.5", "chai": "^4.2.0", "depcheck": "^1.4.1", "electron": "^30.5.1", @@ -66,25 +67,27 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { - "@mongodb-js/compass-app-stores": "^7.28.0", - "@mongodb-js/compass-collection": "^4.41.0", - "@mongodb-js/compass-components": "^1.29.4", - "@mongodb-js/compass-connections": "^1.42.0", - "@mongodb-js/compass-editor": "^0.30.0", - "@mongodb-js/compass-field-store": "^9.17.0", - "@mongodb-js/compass-logging": "^1.4.7", - "@mongodb-js/compass-telemetry": "^1.1.7", - "@mongodb-js/compass-workspaces": "^0.23.0", - "@mongodb-js/connection-storage": "^0.21.0", + "@mongodb-js/atlas-service": "^0.29.0", + "@mongodb-js/compass-app-stores": "^7.29.1", + "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/connection-storage": "^0.22.0", "@mongodb-js/mongodb-constants": "^0.10.0", "@mongodb-js/shell-bson-parser": "^1.1.2", - "bson": "^6.7.0", - "compass-preferences-model": "^2.28.3", - "hadron-app-registry": "^9.2.6", + "bson": "^6.8.0", + "compass-preferences-model": "^2.29.0", + "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", - "mongodb": "^6.8.0", - "mongodb-data-service": "^22.23.3", + "mongodb": "^6.9.0", + "mongodb-collection-model": "^5.23.4", + "mongodb-data-service": "^22.23.4", "mongodb-query-parser": "^4.2.3", + "mongodb-ns": "^2.4.2", "numeral": "^2.0.6", "react": "^17.0.2", "react-redux": "^8.1.3", diff --git a/packages/compass-indexes/src/components/create-index-actions/create-index-actions.spec.jsx b/packages/compass-indexes/src/components/create-index-actions/create-index-actions.spec.jsx index 7e6efea9fa1..f76599042c2 100644 --- a/packages/compass-indexes/src/components/create-index-actions/create-index-actions.spec.jsx +++ b/packages/compass-indexes/src/components/create-index-actions/create-index-actions.spec.jsx @@ -5,42 +5,36 @@ import sinon from 'sinon'; import { render, screen, - cleanup, - fireEvent, + userEvent, within, } from '@mongodb-js/testing-library-compass'; import CreateIndexActions from '../create-index-actions'; -const noop = () => {}; - describe('CreateIndexActions Component', function () { let clearErrorSpy; - let createIndexSpy; + let onCreateIndexClickSpy; let closeCreateIndexModalSpy; beforeEach(function () { clearErrorSpy = sinon.spy(); - createIndexSpy = sinon.spy(); + onCreateIndexClickSpy = sinon.spy(); closeCreateIndexModalSpy = sinon.spy(); }); afterEach(function () { clearErrorSpy = null; - createIndexSpy = null; + onCreateIndexClickSpy = null; closeCreateIndexModalSpy = null; - - cleanup(); }); it('renders a cancel button', function () { render( ); @@ -53,36 +47,34 @@ describe('CreateIndexActions Component', function () { render( ); const button = screen.getByTestId('create-index-actions-cancel-button'); - fireEvent.click(button); + userEvent.click(button); expect(closeCreateIndexModalSpy).to.have.been.calledOnce; }); }); context('onConfirm', function () { - it('calls the createIndex function', function () { + it('calls the onCreateIndexClick function', function () { render( ); const button = screen.getByTestId( 'create-index-actions-create-index-button' ); - fireEvent.click(button); - expect(createIndexSpy).to.have.been.calledOnce; + userEvent.click(button); + expect(onCreateIndexClickSpy).to.have.been.calledOnce; }); }); @@ -90,10 +82,9 @@ describe('CreateIndexActions Component', function () { render( ); @@ -108,10 +99,9 @@ describe('CreateIndexActions Component', function () { render( ); @@ -125,10 +115,9 @@ describe('CreateIndexActions Component', function () { render( ); @@ -137,26 +126,9 @@ describe('CreateIndexActions Component', function () { ); const closeIcon = within(errorBanner).getByLabelText('X Icon'); - fireEvent.click(closeIcon); + userEvent.click(closeIcon); expect(clearErrorSpy).to.have.been.calledOnce; }); - - it('does not render in progress banner', function () { - render( - - ); - - const inProgressBanner = screen.queryByTestId( - 'create-index-actions-in-progress-banner-wrapper' - ); - expect(inProgressBanner).to.not.exist; - }); }); context('without error', function () { @@ -164,10 +136,9 @@ describe('CreateIndexActions Component', function () { render( ); @@ -176,42 +147,5 @@ describe('CreateIndexActions Component', function () { ); expect(errorBanner).to.not.exist; }); - - context('when in progress', function () { - beforeEach(function () { - render( - - ); - }); - - afterEach(cleanup); - - it('renders in progress banner', function () { - const inProgressBanner = screen.getByTestId( - 'create-index-actions-in-progress-banner-wrapper' - ); - expect(inProgressBanner).to.contain.text('Index creation in progress'); - }); - - it('hides the create index button', function () { - const createIndexButton = screen.queryByTestId( - 'create-index-actions-create-index-button' - ); - expect(createIndexButton).to.not.exist; - }); - - it('renames the cancel button to close', function () { - const cancelButton = screen.getByTestId( - 'create-index-actions-cancel-button' - ); - expect(cancelButton.textContent).to.be.equal('Close'); - }); - }); }); }); diff --git a/packages/compass-indexes/src/components/create-index-actions/create-index-actions.tsx b/packages/compass-indexes/src/components/create-index-actions/create-index-actions.tsx index e4313d941b2..ab6aab6d67f 100644 --- a/packages/compass-indexes/src/components/create-index-actions/create-index-actions.tsx +++ b/packages/compass-indexes/src/components/create-index-actions/create-index-actions.tsx @@ -24,80 +24,46 @@ const createIndexButtonStyles = css({ */ function CreateIndexActions({ error, - clearError, - inProgress, - createIndex, - closeCreateIndexModal, + onErrorBannerCloseClick, + onCreateIndexClick, + onCancelCreateIndexClick, }: { error: string | null; - clearError: () => void; - inProgress: boolean; - createIndex: () => void; - closeCreateIndexModal: () => void; + onErrorBannerCloseClick: () => void; + onCreateIndexClick: () => void; + onCancelCreateIndexClick: () => void; }) { - const renderError = () => { - if (!error) { - return; - } - - return ( -
      - - {error} - -
      - ); - }; - - const renderInProgress = () => { - if (error || !inProgress) { - return; - } - - return ( -
      - - Index creation in progress. The dialog can be closed. - -
      - ); - }; - - const onCancel = () => { - closeCreateIndexModal(); - }; - - const onConfirm = () => { - createIndex(); - }; - return (
      - {renderError()} - {renderInProgress()} + {error && ( +
      + + {error} + +
      + )} + - {!inProgress && ( - - )}
      ); } diff --git a/packages/compass-indexes/src/components/create-index-fields.spec.tsx b/packages/compass-indexes/src/components/create-index-fields.spec.tsx index 008aa5de90e..76499f24993 100644 --- a/packages/compass-indexes/src/components/create-index-fields.spec.tsx +++ b/packages/compass-indexes/src/components/create-index-fields.spec.tsx @@ -23,10 +23,10 @@ describe('CreateIndexFields Component', function () { fields={[{ name: '', type: '' }]} serverVersion="5.0.0" isRemovable - updateFieldName={noop} - updateFieldType={noop} - addField={noop} - removeField={noop} + onSelectFieldNameClick={noop} + onSelectFieldTypeClick={noop} + onAddFieldClick={noop} + onRemoveFieldClick={noop} /> ); const fieldsComponent = screen.getByTestId('create-index-fields-line-0'); @@ -40,10 +40,10 @@ describe('CreateIndexFields Component', function () { fields={[{ name: '', type: '' }]} serverVersion="5.0.0" isRemovable - updateFieldName={noop} - updateFieldType={noop} - addField={noop} - removeField={noop} + onSelectFieldNameClick={noop} + onSelectFieldTypeClick={noop} + onAddFieldClick={noop} + onRemoveFieldClick={noop} /> ); const select = screen.getByTestId('leafygreen-ui-select-menubutton'); @@ -58,10 +58,10 @@ describe('CreateIndexFields Component', function () { fields={[{ name: '', type: '' }]} serverVersion="5.0.0" isRemovable - updateFieldName={noop} - updateFieldType={noop} - addField={noop} - removeField={noop} + onSelectFieldNameClick={noop} + onSelectFieldTypeClick={noop} + onAddFieldClick={noop} + onRemoveFieldClick={noop} /> ); const minusButton = screen.queryByTestId('remove-index-field-button'); @@ -78,10 +78,10 @@ describe('CreateIndexFields Component', function () { ]} serverVersion="5.0.0" isRemovable - updateFieldName={noop} - updateFieldType={noop} - addField={noop} - removeField={noop} + onSelectFieldNameClick={noop} + onSelectFieldTypeClick={noop} + onAddFieldClick={noop} + onRemoveFieldClick={noop} /> ); const minusButton = screen.getAllByTestId('remove-index-field-button'); @@ -95,10 +95,10 @@ describe('CreateIndexFields Component', function () { fields={[{ name: '', type: '' }]} serverVersion="5.0.0" isRemovable - updateFieldName={noop} - updateFieldType={noop} - addField={noop} - removeField={noop} + onSelectFieldNameClick={noop} + onSelectFieldTypeClick={noop} + onAddFieldClick={noop} + onRemoveFieldClick={noop} /> ); const minusButton = screen.getAllByTestId('add-index-field-button'); @@ -115,10 +115,10 @@ describe('CreateIndexFields Component', function () { ]} serverVersion="5.0.0" isRemovable - updateFieldName={noop} - updateFieldType={noop} - addField={noop} - removeField={noop} + onSelectFieldNameClick={noop} + onSelectFieldTypeClick={noop} + onAddFieldClick={noop} + onRemoveFieldClick={noop} /> ); const minusButton = screen.getAllByTestId('add-index-field-button'); @@ -134,10 +134,10 @@ describe('CreateIndexFields Component', function () { fields={[{ name: '', type: '' }]} serverVersion="20.0.0" isRemovable - updateFieldName={noop} - updateFieldType={noop} - addField={noop} - removeField={noop} + onSelectFieldNameClick={noop} + onSelectFieldTypeClick={noop} + onAddFieldClick={noop} + onRemoveFieldClick={noop} /> ); const select = screen.getByTestId('leafygreen-ui-select-menubutton'); diff --git a/packages/compass-indexes/src/components/create-index-fields.tsx b/packages/compass-indexes/src/components/create-index-fields.tsx index a07c3c0a6cf..8a6c14c2ae4 100644 --- a/packages/compass-indexes/src/components/create-index-fields.tsx +++ b/packages/compass-indexes/src/components/create-index-fields.tsx @@ -12,7 +12,7 @@ import { Badge, } from '@mongodb-js/compass-components'; -import type { IndexField } from '../modules/create-index/fields'; +import type { Field } from '../modules/create-index'; /** * Current allowed types for indexes. @@ -44,24 +44,24 @@ const createIndexFieldsTypeStyles = css({ }); export type CreateIndexFieldsProps = { - fields: IndexField[]; + fields: Field[]; schemaFields: string[]; serverVersion: string; isRemovable: boolean; - addField: () => void; - removeField: (idx: number) => void; - updateFieldName: (idx: number, name: string) => void; - updateFieldType: (idx: number, fType: string) => void; + onAddFieldClick: () => void; + onRemoveFieldClick: (idx: number) => void; + onSelectFieldNameClick: (idx: number, name: string) => void; + onSelectFieldTypeClick: (idx: number, fType: string) => void; }; function CreateIndexFields({ fields, serverVersion, schemaFields, - addField, - removeField, - updateFieldName, - updateFieldType, + onAddFieldClick, + onRemoveFieldClick, + onSelectFieldNameClick, + onSelectFieldTypeClick, }: CreateIndexFieldsProps): React.ReactElement { const [indexTypes, selectorWidth] = useMemo(() => { const serverSupportsColumnStoreIndex = @@ -82,10 +82,10 @@ function CreateIndexFields({ const onSelectFieldName = useCallback( (index: number, name: string | null) => { if (name !== null) { - updateFieldName(index, name); + onSelectFieldNameClick(index, name); } }, - [updateFieldName] + [onSelectFieldNameClick] ); const comboboxOptions = schemaFields.map((value) => ({ value })); @@ -93,7 +93,7 @@ function CreateIndexFields({ return ( ( + renderItem={(field: Field, index: number) => (
      updateFieldType(index, type)} + onChange={(type) => onSelectFieldTypeClick(index, type)} allowDeselect={false} value={field.type} popoverZIndex={999999} @@ -153,8 +153,8 @@ function CreateIndexFields({
      )} - onAddItem={addField} - onRemoveItem={removeField} + onAddItem={onAddFieldClick} + onRemoveItem={onRemoveFieldClick} addButtonTestId="add-index-field-button" removeButtonTestId="remove-index-field-button" /> diff --git a/packages/compass-indexes/src/components/create-index-form/checkbox-input.tsx b/packages/compass-indexes/src/components/create-index-form/checkbox-input.tsx index 82d6479b8bd..9e7916625f0 100644 --- a/packages/compass-indexes/src/components/create-index-form/checkbox-input.tsx +++ b/packages/compass-indexes/src/components/create-index-form/checkbox-input.tsx @@ -5,15 +5,14 @@ import { FormFieldContainer, } from '@mongodb-js/compass-components'; import { connect } from 'react-redux'; -import type { RootState } from '../../modules/create-index'; -import type { CheckboxOptions } from '../../modules/create-index/options'; -import { changeOption } from '../../modules/create-index/options'; -import { OPTIONS } from '../../modules/create-index/options'; +import type { RootState } from '../../modules'; +import type { CheckboxOptions } from '../../modules/create-index'; +import { OPTIONS, optionChanged } from '../../modules/create-index'; type CheckboxInputProps = { name: CheckboxOptions; - label: string; - description: string; + label: React.ReactNode; + description: React.ReactNode; disabled?: boolean; checked: boolean; onChange(name: CheckboxOptions, newVal: boolean): void; @@ -38,6 +37,9 @@ export const CheckboxInput: React.FunctionComponent = ({ onChange(name, event.target.checked); }} label={} + // @ts-expect-error leafygreen types only allow strings here, but can + // render a ReactNode too (and we use that to render links inside + // descriptions) description={description} disabled={disabled} /> @@ -50,8 +52,8 @@ export default connect( return { label: OPTIONS[name].label, description: OPTIONS[name].description, - checked: state.options[name].value, + checked: state.createIndex.options[name].value, }; }, - { onChange: changeOption } + { onChange: optionChanged } )(CheckboxInput); diff --git a/packages/compass-indexes/src/components/create-index-form/collapsible-input.tsx b/packages/compass-indexes/src/components/create-index-form/collapsible-input.tsx index 1b2da010a23..177b3898698 100644 --- a/packages/compass-indexes/src/components/create-index-form/collapsible-input.tsx +++ b/packages/compass-indexes/src/components/create-index-form/collapsible-input.tsx @@ -2,13 +2,13 @@ import { CollapsibleFieldSet, TextInput } from '@mongodb-js/compass-components'; import { CodemirrorMultilineEditor } from '@mongodb-js/compass-editor'; import React from 'react'; import { connect } from 'react-redux'; -import type { RootState } from '../../modules/create-index'; -import type { InputOptions } from '../../modules/create-index/options'; +import type { RootState } from '../../modules'; +import type { InputOptions } from '../../modules/create-index'; import { - changeOption, - changeOptionEnabled, + optionChanged, + optionToggled, OPTIONS, -} from '../../modules/create-index/options'; +} from '../../modules/create-index'; type CollapsibleInputProps = { name: InputOptions; @@ -21,7 +21,7 @@ type CollapsibleInputProps = { value: string; onChange(name: string, newVal: string): void; enabled: boolean; - onEnabled(name: string, newVal: boolean): void; + onToggled(name: string, newVal: boolean): void; }; export const CollapsibleInput: React.FunctionComponent< @@ -37,7 +37,7 @@ export const CollapsibleInput: React.FunctionComponent< value, onChange, enabled, - onEnabled, + onToggled, }) => { const id = `create-index-modal-${name}`; const inputId = `${id}-${type}`; @@ -46,7 +46,7 @@ export const CollapsibleInput: React.FunctionComponent< id={id} toggled={!disabled && enabled} onToggle={(enabled) => { - onEnabled(name, enabled); + onToggled(name, enabled); }} label={label} data-testid={id} @@ -93,12 +93,12 @@ export default connect( description: OPTIONS[name].description, optional: OPTIONS[name].optional, units: OPTIONS[name].units, - value: state.options[name].value, - enabled: state.options[name].enabled, + value: state.createIndex.options[name].value, + enabled: state.createIndex.options[name].enabled, }; }, { - onChange: changeOption, - onEnabled: changeOptionEnabled, + onChange: optionChanged, + onToggled: optionToggled, } )(CollapsibleInput); diff --git a/packages/compass-indexes/src/components/create-index-form/create-index-form.tsx b/packages/compass-indexes/src/components/create-index-form/create-index-form.tsx index 1ab4a0b7937..2cb7b37cde4 100644 --- a/packages/compass-indexes/src/components/create-index-form/create-index-form.tsx +++ b/packages/compass-indexes/src/components/create-index-form/create-index-form.tsx @@ -1,10 +1,15 @@ import React, { useMemo } from 'react'; import { css, spacing, Accordion, Body } from '@mongodb-js/compass-components'; +import type { Field } from '../../modules/create-index'; import { useAutocompleteFields } from '@mongodb-js/compass-field-store'; import { CreateIndexFields } from '../create-index-fields'; import { hasColumnstoreIndexesSupport } from '../../utils/columnstore-indexes'; import CheckboxInput from './checkbox-input'; import CollapsibleInput from './collapsible-input'; +import { + useConnectionInfo, + useConnectionSupports, +} from '@mongodb-js/compass-connections/provider'; const createIndexModalFieldsStyles = css({ margin: `${spacing[4]}px 0 ${spacing[5]}px 0`, @@ -18,27 +23,30 @@ const createIndexModalOptionStyles = css({ paddingLeft: spacing[1] + 2, }); -type IndexField = { name: string; type: string }; - type CreateIndexFormProps = { namespace: string; - fields: IndexField[]; + fields: Field[]; serverVersion: string; - updateFieldName: (idx: number, name: string) => void; - updateFieldType: (idx: number, fType: string) => void; - addField: () => void; // Plus icon. - removeField: (idx: number) => void; // Minus icon. + onSelectFieldNameClick: (idx: number, name: string) => void; + onSelectFieldTypeClick: (idx: number, fType: string) => void; + onAddFieldClick: () => void; // Plus icon. + onRemoveFieldClick: (idx: number) => void; // Minus icon. }; function CreateIndexForm({ namespace, fields, serverVersion, - updateFieldName, - updateFieldType, - addField, - removeField, + onSelectFieldNameClick, + onSelectFieldTypeClick, + onAddFieldClick, + onRemoveFieldClick, }: CreateIndexFormProps) { + const { id: connectionId } = useConnectionInfo(); + const supportsRollingIndexes = useConnectionSupports( + connectionId, + 'rollingIndexCreation' + ); const schemaFields = useAutocompleteFields(namespace); const schemaFieldNames = useMemo(() => { return schemaFields @@ -65,10 +73,10 @@ function CreateIndexForm({ fields={fields} serverVersion={serverVersion} isRemovable={!(fields.length > 1)} - updateFieldName={updateFieldName} - updateFieldType={updateFieldType} - addField={addField} - removeField={removeField} + onSelectFieldNameClick={onSelectFieldNameClick} + onSelectFieldTypeClick={onSelectFieldTypeClick} + onAddFieldClick={onAddFieldClick} + onRemoveFieldClick={onRemoveFieldClick} /> ) : null} @@ -87,6 +95,9 @@ function CreateIndexForm({ )} + {supportsRollingIndexes && ( + + )} diff --git a/packages/compass-indexes/src/components/create-index-modal/create-index-modal.tsx b/packages/compass-indexes/src/components/create-index-modal/create-index-modal.tsx index 004ed8c52f3..2f4e744bc66 100644 --- a/packages/compass-indexes/src/components/create-index-modal/create-index-modal.tsx +++ b/packages/compass-indexes/src/components/create-index-modal/create-index-modal.tsx @@ -6,19 +6,18 @@ import { ModalHeader, ModalBody, } from '@mongodb-js/compass-components'; - import { - addField, - removeField, - updateFieldType, + fieldAdded, + fieldRemoved, + fieldTypeUpdated, updateFieldName, -} from '../../modules/create-index/fields'; -import { clearError } from '../../modules/create-index/error'; -import { createIndex, closeCreateIndexModal } from '../../modules/create-index'; + errorCleared, + createIndexFormSubmitted, + createIndexClosed, +} from '../../modules/create-index'; import { CreateIndexForm } from '../create-index-form/create-index-form'; import CreateIndexActions from '../create-index-actions'; -import type { RootState } from '../../modules/create-index'; -import type { CollectionTabPluginMetadata } from '@mongodb-js/compass-collection'; +import type { RootState } from '../../modules'; import { useTrackOnChange, type TrackFunction, @@ -29,30 +28,28 @@ type CreateIndexModalProps = React.ComponentProps & { isVisible: boolean; namespace: string; error: string | null; - clearError: () => void; - inProgress: boolean; - createIndex: () => void; - closeCreateIndexModal: () => void; + onErrorBannerCloseClick: () => void; + onCreateIndexClick: () => void; + onCancelCreateIndexClick: () => void; }; function CreateIndexModal({ isVisible, namespace, error, - clearError, - inProgress, - createIndex, - closeCreateIndexModal, + onErrorBannerCloseClick, + onCreateIndexClick, + onCancelCreateIndexClick, ...props }: CreateIndexModalProps) { const connectionInfoRef = useConnectionInfoRef(); const onSetOpen = useCallback( (open) => { if (!open) { - closeCreateIndexModal(); + onCancelCreateIndexClick(); } }, - [closeCreateIndexModal] + [onCancelCreateIndexClick] ); useTrackOnChange( @@ -88,39 +85,34 @@ function CreateIndexModal({ ); } -const mapState = ( - { fields, inProgress, error, isVisible, namespace, serverVersion }: RootState, - // To make sure the derived type is correctly including plugin metadata passed - // by CollectionTab - // eslint-disable-next-line @typescript-eslint/no-unused-vars - ownProps: Pick -) => ({ - fields, - inProgress, - error, - isVisible, - namespace, - serverVersion, -}); +const mapState = ({ namespace, serverVersion, createIndex }: RootState) => { + const { fields, error, isVisible } = createIndex; + return { + fields, + error, + isVisible, + namespace, + serverVersion, + }; +}; const mapDispatch = { - clearError, - createIndex, - closeCreateIndexModal, - addField, - removeField, - updateFieldName, - updateFieldType, + onErrorBannerCloseClick: errorCleared, + onCreateIndexClick: createIndexFormSubmitted, + onCancelCreateIndexClick: createIndexClosed, + onAddFieldClick: fieldAdded, + onRemoveFieldClick: fieldRemoved, + onSelectFieldNameClick: updateFieldName, + onSelectFieldTypeClick: fieldTypeUpdated, }; export default connect(mapState, mapDispatch)(CreateIndexModal); diff --git a/packages/compass-indexes/src/components/indexes-table/indexes-table.tsx b/packages/compass-indexes/src/components/indexes-table/indexes-table.tsx index ff6fc876476..4546db7687e 100644 --- a/packages/compass-indexes/src/components/indexes-table/indexes-table.tsx +++ b/packages/compass-indexes/src/components/indexes-table/indexes-table.tsx @@ -18,7 +18,6 @@ import { import type { LGColumnDef, LGTableDataType, - HeaderGroup, LeafyGreenTableCell, LeafyGreenTableRow, SortingState, @@ -76,6 +75,7 @@ const tableHeadDarkModeStyles = css({ }); const tableHeadCellStyles = css({ + whiteSpace: 'nowrap', '> div': { // Push the sort button to the right of the head cell. justifyContent: 'space-between', @@ -126,7 +126,7 @@ export function IndexesTable({ isSticky className={cx(tableHeadStyles, darkMode && tableHeadDarkModeStyles)} > - {table.getHeaderGroups().map((headerGroup: HeaderGroup) => ( + {table.getHeaderGroups().map((headerGroup) => ( {headerGroup.headers.map((header) => { return ( diff --git a/packages/compass-indexes/src/components/indexes-toolbar/indexes-toolbar.spec.tsx b/packages/compass-indexes/src/components/indexes-toolbar/indexes-toolbar.spec.tsx index d22726dad06..b13e8821cbc 100644 --- a/packages/compass-indexes/src/components/indexes-toolbar/indexes-toolbar.spec.tsx +++ b/packages/compass-indexes/src/components/indexes-toolbar/indexes-toolbar.spec.tsx @@ -37,11 +37,11 @@ describe('IndexesToolbar Component', function () { isWritable={true} writeStateDescription={undefined} onRefreshIndexes={() => {}} - isAtlasSearchSupported={false} + isSearchIndexesSupported={false} isRefreshing={false} - onChangeIndexView={() => {}} - onCreateRegularIndex={() => {}} - onCreateSearchIndex={() => {}} + onIndexViewChanged={() => {}} + onCreateRegularIndexClick={() => {}} + onCreateSearchIndexClick={() => {}} {...props} /> @@ -75,7 +75,7 @@ describe('IndexesToolbar Component', function () { showInsights: true, }); - renderIndexesToolbar({ isAtlasSearchSupported: true }); + renderIndexesToolbar({ isSearchIndexesSupported: true }); }); it('should render the create index dropdown button enabled', async function () { @@ -100,7 +100,7 @@ describe('IndexesToolbar Component', function () { showInsights: true, }); - renderIndexesToolbar({ isAtlasSearchSupported: false }); + renderIndexesToolbar({ isSearchIndexesSupported: false }); }); it('should render the create index button only', function () { @@ -181,25 +181,25 @@ describe('IndexesToolbar Component', function () { describe('allows creating of indexes', function () { context('when search indexes is not supported', function () { - it('calls onCreateRegularIndex when index button is clicked', function () { - const onCreateRegularIndexSpy = sinon.spy(); + it('calls onCreateRegularIndexClick when index button is clicked', function () { + const onCreateRegularIndexClickSpy = sinon.spy(); renderIndexesToolbar({ - onCreateRegularIndex: onCreateRegularIndexSpy, + onCreateRegularIndexClick: onCreateRegularIndexClickSpy, }); - expect(onCreateRegularIndexSpy).to.not.have.been.called; + expect(onCreateRegularIndexClickSpy).to.not.have.been.called; screen.getByTestId('open-create-index-modal-button').click(); - expect(onCreateRegularIndexSpy).to.have.been.calledOnce; + expect(onCreateRegularIndexClickSpy).to.have.been.calledOnce; }); }); context('when search indexes is supported', function () { - it('calls onCreateRegularIndex when index button is clicked', function () { - const onCreateRegularIndexSpy = sinon.spy(); + it('calls onCreateRegularIndexClick when index button is clicked', function () { + const onCreateRegularIndexClickSpy = sinon.spy(); renderIndexesToolbar({ - isAtlasSearchSupported: true, - onCreateRegularIndex: onCreateRegularIndexSpy, + isSearchIndexesSupported: true, + onCreateRegularIndexClick: onCreateRegularIndexClickSpy, }); // open the dropdown @@ -207,7 +207,7 @@ describe('IndexesToolbar Component', function () { .getByTestId('multiple-index-types-creation-dropdown-show-actions') .click(); - expect(onCreateRegularIndexSpy).to.not.have.been.called; + expect(onCreateRegularIndexClickSpy).to.not.have.been.called; // click the button screen @@ -216,13 +216,13 @@ describe('IndexesToolbar Component', function () { ) .click(); - expect(onCreateRegularIndexSpy).to.have.been.calledOnce; + expect(onCreateRegularIndexClickSpy).to.have.been.calledOnce; }); - it('calls onCreateSearchIndex when index button is clicked', function () { - const onCreateSearchIndexSpy = sinon.spy(); + it('calls onCreateSearchIndexClick when index button is clicked', function () { + const onCreateSearchIndexClickSpy = sinon.spy(); renderIndexesToolbar({ - isAtlasSearchSupported: true, - onCreateSearchIndex: onCreateSearchIndexSpy, + isSearchIndexesSupported: true, + onCreateSearchIndexClick: onCreateSearchIndexClickSpy, }); // open the dropdown @@ -230,7 +230,7 @@ describe('IndexesToolbar Component', function () { .getByTestId('multiple-index-types-creation-dropdown-show-actions') .click(); - expect(onCreateSearchIndexSpy).to.not.have.been.called; + expect(onCreateSearchIndexClickSpy).to.not.have.been.called; // click the button screen @@ -239,7 +239,7 @@ describe('IndexesToolbar Component', function () { ) .click(); - expect(onCreateSearchIndexSpy).to.have.been.calledOnce; + expect(onCreateSearchIndexClickSpy).to.have.been.calledOnce; }); }); }); @@ -308,8 +308,8 @@ describe('IndexesToolbar Component', function () { it('when it supports search management, it changes tab view', function () { renderIndexesToolbar({ - isAtlasSearchSupported: true, - onChangeIndexView: onChangeViewCallback, + isSearchIndexesSupported: true, + onIndexViewChanged: onChangeViewCallback, }); const segmentControl = screen.getByText('Search Indexes'); userEvent.click(segmentControl); @@ -320,8 +320,8 @@ describe('IndexesToolbar Component', function () { it('when it does not support search management, it renders tab as disabled', function () { renderIndexesToolbar({ - isAtlasSearchSupported: false, - onChangeIndexView: onChangeViewCallback, + isSearchIndexesSupported: false, + onIndexViewChanged: onChangeViewCallback, }); const segmentControl = screen.getByText('Search Indexes'); userEvent.click(segmentControl); diff --git a/packages/compass-indexes/src/components/indexes-toolbar/indexes-toolbar.tsx b/packages/compass-indexes/src/components/indexes-toolbar/indexes-toolbar.tsx index a77ec0b9ef6..c9287df0b04 100644 --- a/packages/compass-indexes/src/components/indexes-toolbar/indexes-toolbar.tsx +++ b/packages/compass-indexes/src/components/indexes-toolbar/indexes-toolbar.tsx @@ -21,13 +21,10 @@ import { } from '@mongodb-js/compass-components'; import type { RootState } from '../../modules'; -import { - SearchIndexesStatuses, - showCreateModal as onCreateSearchIndex, -} from '../../modules/search-indexes'; -import { showCreateModal as onCreateRegularIndex } from '../../modules/regular-indexes'; +import { createSearchIndexOpened } from '../../modules/search-indexes'; +import { createIndexOpened } from '../../modules/create-index'; import type { IndexView } from '../../modules/index-view'; -import { changeIndexView } from '../../modules/index-view'; +import { indexViewChanged } from '../../modules/index-view'; const toolbarButtonsContainer = css({ display: 'flex', @@ -54,14 +51,14 @@ type IndexesToolbarProps = { hasTooManyIndexes: boolean; isRefreshing: boolean; onRefreshIndexes: () => void; - onChangeIndexView: (newView: IndexView) => void; + onIndexViewChanged: (newView: IndexView) => void; // connected: isReadonlyView: boolean; isWritable: boolean; - onCreateRegularIndex: () => void; - onCreateSearchIndex: () => void; + onCreateRegularIndexClick: () => void; + onCreateSearchIndexClick: () => void; writeStateDescription?: string; - isAtlasSearchSupported: boolean; + isSearchIndexesSupported: boolean; // via withPreferences: readOnly?: boolean; }; @@ -71,14 +68,14 @@ export const IndexesToolbar: React.FunctionComponent = ({ errorMessage, isReadonlyView, isWritable, - onCreateRegularIndex, - onCreateSearchIndex, + onCreateRegularIndexClick, + onCreateSearchIndexClick, isRefreshing, writeStateDescription, hasTooManyIndexes, - isAtlasSearchSupported, + isSearchIndexesSupported, onRefreshIndexes, - onChangeIndexView, + onIndexViewChanged, readOnly, // preferences readOnly. }) => { const isSearchManagementActive = usePreference('enableAtlasSearchIndexes'); @@ -106,10 +103,10 @@ export const IndexesToolbar: React.FunctionComponent = ({
      } @@ -135,7 +132,7 @@ export const IndexesToolbar: React.FunctionComponent = ({ {isSearchManagementActive && ( onChangeIndexView(evt as IndexView)} + onChange={(evt) => onIndexViewChanged(evt as IndexView)} className={alignSelfEndStyles} label="Viewing" value={indexView} @@ -147,7 +144,7 @@ export const IndexesToolbar: React.FunctionComponent = ({ > Indexes - {!isAtlasSearchSupported && ( + {!isSearchIndexesSupported && ( = ({ } >

      - The Atlas Search index management in Compass is only - available for Atlas local deployments and M10+ clusters - running MongoDB 6.0.7 or newer. + Atlas Search index management in Compass is only available + for Atlas local deployments and clusters running MongoDB + 6.0.7 or newer.

      - For clusters running an earlier version of MongoDB or - shared tier clusters you can manage your Atlas Search - indexes from the Atlas web UI, with the CLI, or with the - Administration API. + For clusters running an earlier version of MongoDB, you + can manage your Atlas Search indexes from the Atlas web + Ul, with the CLI, or with the Administration API.

      )} - {isAtlasSearchSupported && ( + {isSearchIndexesSupported && ( = ({ warnings={['Readonly views may not contain indexes.']} /> ) : ( - !!errorMessage && + !!errorMessage && ( + + ) )} ); @@ -201,10 +199,10 @@ export const IndexesToolbar: React.FunctionComponent = ({ type CreateIndexButtonProps = { isSearchManagementActive: boolean; - isAtlasSearchSupported: boolean; + isSearchIndexesSupported: boolean; isWritable: boolean; - onCreateRegularIndex: () => void; - onCreateSearchIndex: () => void; + onCreateRegularIndexClick: () => void; + onCreateSearchIndexClick: () => void; }; type CreateIndexActions = 'createRegularIndex' | 'createSearchIndex'; @@ -213,24 +211,24 @@ export const CreateIndexButton: React.FunctionComponent< CreateIndexButtonProps > = ({ isSearchManagementActive, - isAtlasSearchSupported, + isSearchIndexesSupported, isWritable, - onCreateRegularIndex, - onCreateSearchIndex, + onCreateRegularIndexClick, + onCreateSearchIndexClick, }) => { const onActionDispatch = useCallback( (action: CreateIndexActions) => { switch (action) { case 'createRegularIndex': - return onCreateRegularIndex(); + return onCreateRegularIndexClick(); case 'createSearchIndex': - return onCreateSearchIndex(); + return onCreateSearchIndexClick(); } }, - [onCreateRegularIndex, onCreateSearchIndex] + [onCreateRegularIndexClick, onCreateSearchIndexClick] ); - if (isAtlasSearchSupported && isSearchManagementActive) { + if (isSearchIndexesSupported && isSearchManagementActive) { return ( ); } @@ -253,7 +252,7 @@ export const CreateIndexButton: React.FunctionComponent<
      - )} - - {saveAndConnectButton !== 'hidden' && ( -
      - -
      - )} - - )} - - - - - ); -} - -export type ConnectionFormModalActionsProps = { - errors: ConnectionFormError[]; - warnings: ConnectionFormWarning[]; - - onCancel?(): void; - onSave(): void; - onSaveAndConnect(): void; -}; - -// TODO(COMPASS-8098): Make sure these work for VSCode, for example add: -// saveButton: 'enabled' | 'disabled' | 'hidden'; -// saveAndConnectButton: 'enabled' | 'disabled' | 'hidden'; -// cancelButton: 'enabled' | 'disabled' | 'hidden'; -export function ConnectionFormModalActions({ - errors, - warnings, - onCancel, - onSave, - onSaveAndConnect, -}: ConnectionFormModalActionsProps): React.ReactElement { - return ( -
      - {warnings.length > 0 && ( -
      - warning.message)} - /> -
      - )} - {errors.length > 0 && ( -
      - error.message)} - /> -
      - )} -
      - {onCancel && ( - - )} - -
      - -
      - - -
      -
      - ); -} diff --git a/packages/connection-form/src/components/connection-form-modal-actions.spec.tsx b/packages/connection-form/src/components/connection-form-modal-actions.spec.tsx new file mode 100644 index 00000000000..33c420dcd69 --- /dev/null +++ b/packages/connection-form/src/components/connection-form-modal-actions.spec.tsx @@ -0,0 +1,122 @@ +import React from 'react'; +import { render, screen, userEvent } from '@mongodb-js/testing-library-compass'; +import { expect } from 'chai'; +import sinon from 'sinon'; + +import { ConnectionFormModalActions } from './connection-form-modal-actions'; + +describe('', function () { + it('should show warnings', function () { + render( + undefined} + onSaveAndConnect={() => undefined} + > + ); + expect(screen.getByText('Warning!')).to.be.visible; + }); + + it('should show errors', function () { + render( + undefined} + onSaveAndConnect={() => undefined} + > + ); + expect(screen.getByText('Error!')).to.be.visible; + }); + + describe('Save&Connect Button', function () { + it('should call onSaveAndConnect function', function () { + const onSaveAndConnectSpy = sinon.spy(); + render( + undefined} + onSaveAndConnect={onSaveAndConnectSpy} + > + ); + const connectButton = screen.getByRole('button', { + name: 'Save & Connect', + }); + userEvent.click(connectButton); + + expect(onSaveAndConnectSpy).to.have.been.calledOnce; + }); + + it('should hide "connect" button if there is no callback', function () { + render( + + ); + expect(screen.queryByRole('button', { name: 'Save & Connect' })).to.not + .exist; + }); + }); + + describe('Save Button', function () { + it('should call onSave function', function () { + const onSaveSpy = sinon.spy(); + render( + undefined} + > + ); + const saveButton = screen.getByRole('button', { name: 'Save' }); + userEvent.click(saveButton); + expect(onSaveSpy).to.have.been.calledOnce; + }); + + it('should hide "save" button if there is no callback', function () { + render( + undefined} + > + ); + expect(screen.queryByRole('button', { name: 'Save' })).to.not.exist; + }); + }); + + describe('Cancel Button', function () { + it('should call onCancel function', function () { + const onCancelSpy = sinon.spy(); + render( + undefined} + onSaveAndConnect={() => undefined} + onCancel={onCancelSpy} + > + ); + const cancelButton = screen.getByRole('button', { name: 'Cancel' }); + userEvent.click(cancelButton); + + expect(onCancelSpy).to.have.been.calledOnce; + }); + + it('should hide onCancel button if there is no callback', function () { + render( + undefined} + onSaveAndConnect={() => undefined} + > + ); + expect(screen.queryByRole('button', { name: 'Cancel' })).to.not.exist; + }); + }); +}); diff --git a/packages/connection-form/src/components/connection-form-modal-actions.tsx b/packages/connection-form/src/components/connection-form-modal-actions.tsx new file mode 100644 index 00000000000..42b88ed6c88 --- /dev/null +++ b/packages/connection-form/src/components/connection-form-modal-actions.tsx @@ -0,0 +1,131 @@ +import React from 'react'; +import { + Button, + ButtonVariant, + ErrorSummary, + WarningSummary, + spacing, + css, + cx, +} from '@mongodb-js/compass-components'; +import type { + ConnectionFormError, + ConnectionFormWarning, +} from '../utils/validation'; +import { useConnectionFormSetting } from '../hooks/use-connect-form-settings'; + +const formActionStyles = css({ + paddingLeft: spacing[4], + paddingRight: spacing[4], +}); + +const formActionItemStyles = css({ + marginTop: spacing[3], + '&:last-child': { + marginBottom: spacing[3], + }, +}); + +const formActionButtonsStyles = css({ + display: 'flex', + justifyContent: 'flex-end', + gap: spacing[2], +}); + +const saveAndConnectStyles = css({ + flexGrow: 1, + display: 'flex', + justifyContent: 'flex-end', +}); + +export type ConnectionFormModalActionsProps = { + errors: ConnectionFormError[]; + warnings: ConnectionFormWarning[]; + + onCancel?(): void; + onSave?(): void; + onSaveAndConnect?(): void; + onConnect?(): void; +}; + +export function ConnectionFormModalActions({ + errors, + warnings, + onCancel, + onSave, + onSaveAndConnect, + onConnect, +}: ConnectionFormModalActionsProps): React.ReactElement { + const saveAndConnectLabel = useConnectionFormSetting('saveAndConnectLabel'); + return ( +
      + {warnings.length > 0 && ( +
      + warning.message)} + /> +
      + )} + {errors.length > 0 && ( +
      + error.message)} + /> +
      + )} +
      + {onCancel && ( + + )} + + {onSave && ( +
      + +
      + )} + + {onConnect && ( + + )} + + {onSaveAndConnect && ( + + )} +
      +
      + ); +} diff --git a/packages/connection-form/src/components/connection-form.spec.tsx b/packages/connection-form/src/components/connection-form.spec.tsx index e915862dc51..0c66c6b893b 100644 --- a/packages/connection-form/src/components/connection-form.spec.tsx +++ b/packages/connection-form/src/components/connection-form.spec.tsx @@ -9,9 +9,6 @@ import { within, } from '@mongodb-js/testing-library-compass'; import { expect } from 'chai'; -import type { PreferencesAccess } from 'compass-preferences-model'; -import { createSandboxFromDefaultPreferences } from 'compass-preferences-model'; -import { PreferencesProvider } from 'compass-preferences-model/provider'; import ConnectionForm from './connection-form'; import type { ConnectionFormProps } from './connection-form'; import Sinon from 'sinon'; @@ -33,29 +30,20 @@ const saveAndConnectText = 'Save & Connect'; const favoriteText = 'FAVORITE'; describe('ConnectionForm Component', function () { - let preferences: PreferencesAccess; function renderForm(props: Partial = {}) { return render( - - - + ); } - beforeEach(async function () { - preferences = await createSandboxFromDefaultPreferences(); - }); - afterEach(function () { cleanup(); }); @@ -65,15 +53,60 @@ describe('ConnectionForm Component', function () { expect(screen.getByText('New Connection')).to.exist; }); - it('should show the connect button', function () { + it('should show no save or connect buttons by default', function () { renderForm(); - const button = screen.getByText('Connect').closest('button'); + expect(screen.queryByRole('button', { name: 'Save' })).to.be.null; + expect(screen.queryByRole('button', { name: 'Connect' })).to.be.null; + expect(screen.queryByRole('button', { name: 'Save & Connect' })).to.be.null; + }); + + it('should show the save button if onSaveClicked is specified', function () { + const onSaveClicked = Sinon.spy(); + renderForm({ + onSaveClicked: onSaveClicked, + }); + const button = screen + .getByRole('button', { name: 'Save' }) + .closest('button'); expect(button?.getAttribute('aria-disabled')).to.not.equal('true'); + + button?.click(); + expect(onSaveClicked.callCount).to.equal(1); + }); + + it('should show the connect button if onConnectClicked is specified', function () { + const onConnectClicked = Sinon.spy(); + + renderForm({ + onConnectClicked, + }); + const button = screen + .getByRole('button', { name: 'Connect' }) + .closest('button'); + expect(button?.getAttribute('aria-disabled')).to.not.equal('true'); + + button?.click(); + expect(onConnectClicked.callCount).to.equal(1); + }); + + it('should show the save & connect button if onSaveAndConnectClicked is specified', function () { + const onSaveAndConnectClicked = Sinon.spy(); + + renderForm({ + onSaveAndConnectClicked, + }); + const button = screen + .getByRole('button', { name: 'Save & Connect' }) + .closest('button'); + expect(button?.getAttribute('aria-disabled')).to.not.equal('true'); + + button?.click(); + expect(onSaveAndConnectClicked.callCount).to.equal(1); }); it('should render the connection string textbox', function () { renderForm(); - const textArea = screen.getByTestId('connectionString'); + const textArea = screen.getByTestId('connectionString'); expect(textArea).to.have.text('mongodb://pineapple:*****@localhost:27019/'); }); @@ -88,6 +121,78 @@ describe('ConnectionForm Component', function () { sandbox.restore(); }); + context('when disableEditingConnectedConnection==true', function () { + it('renders a banner, disables the connection string and removes advanced connection options + connect button', function () { + const onDisconnectClicked = Sinon.spy(); + const onSaveClicked = Sinon.spy(); + const onConnectClicked = undefined; + const onSaveAndConnectClicked = undefined; + + renderForm({ + disableEditingConnectedConnection: true, + onDisconnectClicked, + onSaveClicked, + onConnectClicked, + onSaveAndConnectClicked, + }); + + expect( + screen.getByTestId('disabled-connected-connection-banner') + ).to.exist; + expect(screen.getByRole('button', { name: 'Disconnect' })).to.exist; + expect(() => + screen.getByTestId('toggle-edit-connection-string') + ).to.throw; + expect(() => + screen.getByTestId('advanced-connection-options') + ).to.throw; + expect(() => screen.getByRole('button', { name: 'Connect' })).to.throw; + expect(() => + screen.getByRole('button', { name: 'Save & Connect' }) + ).to.throw; + + // pressing enter calls onSubmit which saves + fireEvent.submit(screen.getByRole('form')); + expect(onSaveClicked.callCount).to.equal(1); + + fireEvent.click(screen.getByRole('button', { name: 'Disconnect' })); + expect(onDisconnectClicked.callCount).to.equal(1); + }); + }); + + context('when disableEditingConnectedConnection==false', function () { + it('leaves the connection string, advanced connection options and connect button intact, does not render a banner', function () { + const onDisconnectClicked = Sinon.spy(); + const onSaveClicked = Sinon.spy(); + const onConnectClicked = Sinon.spy(); + const onSaveAndConnectClicked = Sinon.spy(); + + renderForm({ + disableEditingConnectedConnection: false, + onDisconnectClicked, + onSaveClicked, + onConnectClicked, + onSaveAndConnectClicked, + }); + + expect(() => + screen.getByTestId('disabled-connected-connection-banner') + ).to.throw; + expect(() => + screen.getByRole('button', { name: 'Disconnect' }) + ).to.throw; + expect(screen.getByTestId('toggle-edit-connection-string')).to.exist; + expect(screen.getByTestId('advanced-connection-options')).to.exist; + expect(screen.getByRole('button', { name: 'Connect' })).to.exist; + expect(screen.getByRole('button', { name: 'Save & Connect' })).to.exist; + + // pressing enter calls onSubmit which saves and connects (the default) + fireEvent.submit(screen.getByRole('form')); + expect(onSaveClicked.callCount).to.equal(0); + expect(onSaveAndConnectClicked.callCount).to.equal(1); + }); + }); + context( 'when preferences.protectConnectionStringsForNewConnections === true', function () { @@ -97,10 +202,8 @@ describe('ConnectionForm Component', function () { it('should render the toggle button in the off state for default connection', function () { renderForm({ initialConnectionInfo: DEFAULT_CONNECTION, - preferences: { - protectConnectionStringsForNewConnections: true, - protectConnectionStrings: false, - }, + protectConnectionStringsForNewConnections: true, + protectConnectionStrings: false, }); expect(screen.queryByTestId('toggle-edit-connection-string')).to @@ -114,10 +217,8 @@ describe('ConnectionForm Component', function () { it('should render the toggle button in the off state for existing connection', function () { renderForm({ - preferences: { - protectConnectionStringsForNewConnections: true, - protectConnectionStrings: false, - }, + protectConnectionStringsForNewConnections: true, + protectConnectionStrings: false, }); expect(screen.queryByTestId('toggle-edit-connection-string')).to .not.be.null; @@ -136,10 +237,8 @@ describe('ConnectionForm Component', function () { it('should render the toggle button in the off state for default connection', function () { renderForm({ initialConnectionInfo: DEFAULT_CONNECTION, - preferences: { - protectConnectionStringsForNewConnections: true, - protectConnectionStrings: true, - }, + protectConnectionStringsForNewConnections: true, + protectConnectionStrings: true, }); expect(screen.queryByTestId('toggle-edit-connection-string')).to .not.be.null; @@ -152,10 +251,8 @@ describe('ConnectionForm Component', function () { it('should not render the toggle button for existing connection', function () { renderForm({ - preferences: { - protectConnectionStringsForNewConnections: true, - protectConnectionStrings: true, - }, + protectConnectionStringsForNewConnections: true, + protectConnectionStrings: true, }); expect(screen.queryByTestId('toggle-edit-connection-string')).to .be.null; @@ -174,10 +271,8 @@ describe('ConnectionForm Component', function () { it('should render the toggle button in the on state for default connection', function () { renderForm({ initialConnectionInfo: DEFAULT_CONNECTION, - preferences: { - protectConnectionStringsForNewConnections: false, - protectConnectionStrings: false, - }, + protectConnectionStringsForNewConnections: false, + protectConnectionStrings: false, }); expect(screen.queryByTestId('toggle-edit-connection-string')).to .not.be.null; @@ -190,10 +285,8 @@ describe('ConnectionForm Component', function () { it('should render the toggle button in the off state for existing connection', function () { renderForm({ - preferences: { - protectConnectionStringsForNewConnections: false, - protectConnectionStrings: false, - }, + protectConnectionStringsForNewConnections: false, + protectConnectionStrings: false, }); expect(screen.queryByTestId('toggle-edit-connection-string')).to .not.be.null; @@ -212,10 +305,8 @@ describe('ConnectionForm Component', function () { it('should render the toggle button in the on state for default connection', function () { renderForm({ initialConnectionInfo: DEFAULT_CONNECTION, - preferences: { - protectConnectionStringsForNewConnections: false, - protectConnectionStrings: true, - }, + protectConnectionStringsForNewConnections: false, + protectConnectionStrings: true, }); expect(screen.queryByTestId('toggle-edit-connection-string')).to .not.be.null; @@ -228,10 +319,8 @@ describe('ConnectionForm Component', function () { it('should not render the toggle button for existing connection', function () { renderForm({ - preferences: { - protectConnectionStringsForNewConnections: false, - protectConnectionStrings: true, - }, + protectConnectionStringsForNewConnections: false, + protectConnectionStrings: true, }); expect(screen.queryByTestId('toggle-edit-connection-string')).to .be.null; @@ -242,13 +331,27 @@ describe('ConnectionForm Component', function () { ); }); + context('protectConnectionStrings', function () { + it('should not render the banner by default', function () { + renderForm(); + expect( + screen.queryByTestId('protect-connection-strings-banner') + ).to.be.null; + }); + + it('renders a banner if protectConnectionStrings === true', function () { + renderForm({ + protectConnectionStrings: true, + }); + expect(screen.getByTestId('protect-connection-strings-banner')).to.exist; + }); + }); + // TODO(COMPASS-7762) context.skip('when preferences.showFavoriteActions === false', function () { it('should not render the favorite button', function () { renderForm({ - preferences: { - showFavoriteActions: false, - }, + showFavoriteActions: false, }); expect(screen.queryByText(favoriteText)).to.not.exist; }); @@ -379,19 +482,15 @@ describe('ConnectionForm Component', function () { expect(screen.queryByText(/How do I format my/)).to.be.null; }); - context('when multiple connection management is enabled', function () { + context('with default connection', function () { let onCancel: Sinon.SinonSpy; - beforeEach(async function () { + beforeEach(function () { onCancel = Sinon.spy(); - await preferences.savePreferences({ - enableMultipleConnectionSystem: true, - }); + renderForm({ initialConnectionInfo: DEFAULT_CONNECTION, - preferences: { - protectConnectionStringsForNewConnections: false, - protectConnectionStrings: false, - }, + protectConnectionStringsForNewConnections: false, + protectConnectionStrings: false, onCancel, }); }); @@ -417,9 +516,8 @@ describe('ConnectionForm Component', function () { describe('name input', function () { it('should sync with the href of the connection string unless it has been edited', async function () { - const connectionString = screen.getByTestId( - 'connectionString' - ) as HTMLInputElement; + const connectionString = + screen.getByTestId('connectionString'); userEvent.clear(connectionString); await waitFor(() => expect(connectionString.value).to.equal('')); @@ -430,19 +528,18 @@ describe('ConnectionForm Component', function () { expect(connectionString.value).to.equal('mongodb://myserver:27017/') ); - const personalizationName = screen.getByTestId( + const personalizationName = screen.getByTestId( 'personalization-name-input' - ) as HTMLInputElement; + ); expect(personalizationName.value).to.equal('myserver:27017'); }); it('should not sync with the href of the connection string when it has been edited', async function () { - const connectionString = screen.getByTestId( - 'connectionString' - ) as HTMLInputElement; - const personalizationName = screen.getByTestId( + const connectionString = + screen.getByTestId('connectionString'); + const personalizationName = screen.getByTestId( 'personalization-name-input' - ) as HTMLInputElement; + ); userEvent.clear(personalizationName); userEvent.clear(connectionString); diff --git a/packages/connection-form/src/components/connection-form.tsx b/packages/connection-form/src/components/connection-form.tsx index a0896967c72..660bb426ac0 100644 --- a/packages/connection-form/src/components/connection-form.tsx +++ b/packages/connection-form/src/components/connection-form.tsx @@ -8,10 +8,6 @@ import { BannerVariant, Checkbox, Description, - FavoriteIcon, - Icon, - IconButton, - Overline, H3, spacing, Select, @@ -23,32 +19,29 @@ import { cx, palette, useDarkMode, + Button, + Icon, } from '@mongodb-js/compass-components'; import { cloneDeep } from 'lodash'; -import { usePreference } from 'compass-preferences-model/provider'; import ConnectionStringInput from './connection-string-input'; import AdvancedConnectionOptions from './advanced-connection-options'; -import { - ConnectionFormModalActions, - LegacyConnectionFormActions, -} from './connection-form-actions'; +import { ConnectionFormModalActions } from './connection-form-modal-actions'; import { useConnectForm, type ConnectionPersonalizationOptions, type UpdateConnectionFormField, } from '../hooks/use-connect-form'; import { validateConnectionOptionsErrors } from '../utils/validation'; -import SaveConnectionModal from './save-connection-modal'; -import type { ConnectionFormPreferences } from '../hooks/use-connect-form-preferences'; +import type { ConnectionFormSettings } from '../hooks/use-connect-form-settings'; import { - ConnectionFormPreferencesContext, - useConnectionFormPreference, -} from '../hooks/use-connect-form-preferences'; + ConnectionFormSettingsContext, + useConnectionFormSetting, +} from '../hooks/use-connect-form-settings'; import { useConnectionColor } from '../hooks/use-connection-color'; import FormHelp from './form-help/form-help'; const descriptionStyles = css({ - marginTop: spacing[2], + marginTop: spacing[200], }); const formStyles = css({ @@ -125,22 +118,6 @@ const formFooterBorderLightModeStyles = css({ borderTop: `1px solid ${palette.gray.light2}`, }); -const favoriteButtonStyles = css({ - position: 'absolute', - top: -spacing[400], - right: 0, - cursor: 'pointer', - width: spacing[7], - height: spacing[7], -}); - -const favoriteButtonContentStyles = css({ - display: 'flex', - flexDirection: 'column', - alignItems: 'center', - justifyContent: 'center', -}); - const headingWithHiddenButtonStyles = css({ button: { visibility: 'hidden', @@ -152,16 +129,18 @@ const headingWithHiddenButtonStyles = css({ }, }); -const editFavoriteButtonStyles = css({ - verticalAlign: 'text-top', +const bannerStyles = css({ + marginTop: spacing[400], + paddingRight: 0, }); - -const favoriteButtonLabelStyles = css({ - paddingTop: spacing[1], +const disabledConnectedConnectionContentStyles = css({ + display: 'flex', + gap: spacing[400], + alignItems: 'center', }); const connectionStringErrorStyles = css({ - marginBottom: spacing[3], + marginBottom: spacing[400], }); const colorPreviewStyles = css({ @@ -218,8 +197,8 @@ const personalizationSectionLayoutStyles = css({ 'name-input color-input' 'favorite-marker favorite-marker' `, - gap: spacing[4], - marginBottom: spacing[4], + gap: spacing[600], + marginBottom: spacing[600], }); const personalizationNameInputStyles = css({ @@ -243,9 +222,7 @@ function ConnectionPersonalizationForm({ updateConnectionFormField, personalizationOptions, }: ConnectionPersonalizationFormProps): React.ReactElement { - const showFavoriteActions = useConnectionFormPreference( - 'showFavoriteActions' - ); + const showFavoriteActions = useConnectionFormSetting('showFavoriteActions'); const onChangeName = useCallback( (ev: React.ChangeEvent) => { @@ -334,37 +311,51 @@ function ConnectionPersonalizationForm({ ); } -type ConnectionFormPropsWithoutPreferences = { +type ConnectionFormPropsWithoutSettings = { darkMode?: boolean; initialConnectionInfo: ConnectionInfo; connectionErrorMessage?: string | null; + disableEditingConnectedConnection?: boolean; + onDisconnectClicked?: () => void; + onAdvancedOptionsToggle?: (newState: boolean) => void; + openSettingsModal?: (tab?: string) => void; + + // form action buttons: + onCancel?: () => void; + + // If onSaveClicked is specified, a Save button will show up. It will be the + // primary button if there is no onSaveAndConnectClick. + onSaveClicked?: (connectionInfo: ConnectionInfo) => Promise; + + // If onConnectClicked is specified, a Connect button will show up. onConnectClicked?: (connectionInfo: ConnectionInfo) => void; + + // If onSaveAndConnectClicked is specified, a button will show up with + // its label set to the value of the setting saveAndConnectLabel. It will be + // the primary button if specified. If onConnectClicked is specified, the test + // id will be save-and-connect-button, otherwise it will be connect-button. + // For historical/backwards compatible reasons. onSaveAndConnectClicked?: (connectionInfo: ConnectionInfo) => void; - onSaveClicked: (connectionInfo: ConnectionInfo) => Promise; - onAdvancedOptionsToggle?: (newState: boolean) => void; - openSettingsModal?: (tab?: string) => void; }; -export type ConnectionFormProps = ConnectionFormPropsWithoutPreferences & { - preferences?: Partial; -}; +export type ConnectionFormProps = ConnectionFormPropsWithoutSettings & + Partial; function ConnectionForm({ initialConnectionInfo, connectionErrorMessage, - onConnectClicked, + disableEditingConnectedConnection = false, onSaveAndConnectClicked, onSaveClicked, + onConnectClicked, + onDisconnectClicked, onCancel, onAdvancedOptionsToggle, openSettingsModal, -}: ConnectionFormPropsWithoutPreferences): React.ReactElement { +}: ConnectionFormPropsWithoutSettings): React.ReactElement { const [advancedOpen, setAdvancedOpen] = useState(false); const isDarkMode = useDarkMode(); - const isMultiConnectionEnabled = usePreference( - 'enableMultipleConnectionSystem' - ); const onAdvancedChange = useCallback( (newState: boolean) => { @@ -377,7 +368,6 @@ function ConnectionForm({ const [ { enableEditingConnectionString: _enableEditingConnectionString, - isDirty, errors, warnings: _warnings, connectionOptions, @@ -387,17 +377,13 @@ function ConnectionForm({ { setEnableEditingConnectionString, updateConnectionFormField, setErrors }, ] = useConnectForm(initialConnectionInfo, connectionErrorMessage); - type SaveConnectionModalState = 'hidden' | 'save' | 'saveAndConnect'; - - const [saveConnectionModal, setSaveConnectionModal] = - useState('hidden'); const protectConnectionStrings = - !!useConnectionFormPreference('protectConnectionStrings') && + !!useConnectionFormSetting('protectConnectionStrings') && !allowEditingIfProtected; const enableEditingConnectionString = _enableEditingConnectionString && !protectConnectionStrings; - const forceConnectionOptions = useConnectionFormPreference( + const forceConnectionOptions = useConnectionFormSetting( 'forceConnectionOptions' ); const warnings = useMemo(() => { @@ -419,43 +405,40 @@ function ConnectionForm({ ); const getConnectionInfoToSave = useCallback( - (favoriteInfo?: ConnectionFavoriteOptions): ConnectionInfo => { - if (isMultiConnectionEnabled) { - return { - ...cloneDeep(initialConnectionInfo), - connectionOptions: cloneDeep(connectionOptions), - savedConnectionType: personalizationOptions.isFavorite - ? 'favorite' - : 'recent', - favorite: { - ...(favoriteInfo || {}), - name: personalizationOptions.name, - color: personalizationOptions.color, - }, - }; - } else { - return { - ...cloneDeep(initialConnectionInfo), - connectionOptions: cloneDeep(connectionOptions), - savedConnectionType: 'favorite', - favorite: { - name: '', - color: undefined, - ...favoriteInfo, + (favoriteInfo?: ConnectionFavoriteOptions): ConnectionInfo => ({ + ...cloneDeep(initialConnectionInfo), + connectionOptions: cloneDeep(connectionOptions), + savedConnectionType: personalizationOptions.isFavorite + ? 'favorite' + : 'recent', + favorite: { + ...(favoriteInfo || {}), + name: personalizationOptions.name, + color: personalizationOptions.color, + }, + }), + [initialConnectionInfo, connectionOptions, personalizationOptions] + ); + + const callOnSaveConnectionClickedAndStoreErrors = useCallback( + async (connectionInfo: ConnectionInfo): Promise => { + try { + await onSaveClicked?.(connectionInfo); + } catch (err) { + // save errors are already handled as toast notifications, + // keeping so we don't rely too much on far-away code and leave errors + // uncaught in case that code would change + setErrors([ + { + message: `Unable to save connection: ${(err as Error).message}`, }, - }; + ]); } }, - [ - isMultiConnectionEnabled, - initialConnectionInfo, - connectionOptions, - personalizationOptions, - ] + [onSaveClicked, setErrors] ); const onSubmitForm = useCallback( - (action: 'saveAndConnect' | 'connect') => { - // TODO(COMPASS-7906): cleanup + (intendedAction?: 'connect' | 'save-and-connect') => { const updatedConnectionOptions = cloneDeep(connectionOptions); // TODO: this method throws on malformed connection strings instead of // returning errors @@ -466,63 +449,64 @@ function ConnectionForm({ setErrors(formErrors); return; } - if (action === 'saveAndConnect') { - onSaveAndConnectClicked?.({ + if (intendedAction === 'connect') { + // The user explicitly clicked connect, so we use that. + onConnectClicked?.({ ...initialConnectionInfo, ...getConnectionInfoToSave(), connectionOptions: updatedConnectionOptions, }); } else { - onConnectClicked?.({ - ...initialConnectionInfo, - connectionOptions: updatedConnectionOptions, - }); + if (onSaveAndConnectClicked) { + // If there is a save&connect button, we use that action by default. + onSaveAndConnectClicked?.({ + ...initialConnectionInfo, + ...getConnectionInfoToSave(), + connectionOptions: updatedConnectionOptions, + }); + } else { + // If there isn't a save&connect button then the next default action + // should be to save. + void callOnSaveConnectionClickedAndStoreErrors?.( + getConnectionInfoToSave() + ); + } } }, [ - initialConnectionInfo, - onSaveAndConnectClicked, - onConnectClicked, - setErrors, connectionOptions, + setErrors, + onConnectClicked, + initialConnectionInfo, getConnectionInfoToSave, + callOnSaveConnectionClickedAndStoreErrors, + onSaveAndConnectClicked, ] ); - const callOnSaveConnectionClickedAndStoreErrors = useCallback( - async (connectionInfo: ConnectionInfo): Promise => { - try { - await onSaveClicked?.(connectionInfo); - } catch (err) { - // save errors are already handled as toast notifications, - // keeping so we don't rely too much on far-away code and leave errors - // uncaught in case that code would change - setErrors([ - { - message: `Unable to save connection: ${(err as Error).message}`, - }, - ]); - } - }, - [onSaveClicked, setErrors] - ); - - const showFavoriteActions = useConnectionFormPreference( - 'showFavoriteActions' + const showPersonalisationForm = useConnectionFormSetting( + 'showPersonalisationForm' ); - const showFooterBorder = !!isMultiConnectionEnabled; - - const showHelpCardsInForm = !!isMultiConnectionEnabled; + const showHelpCardsInForm = useConnectionFormSetting('showHelpCardsInForm'); + /* + To test onSubmit on a form (ie. what happens when you press {enter} and not + what happens when you click a submit button) you have to use submit() which only + works with role="form", but eslint doesn't like that because role="form" + should be redundant. + https://stackoverflow.com/questions/59362804/pressing-enter-to-submit-form-in-react-testing-library-does-not-work + */ + /* eslint-disable jsx-a11y/no-redundant-roles */ return (
      { // Prevent default html page refresh. e.preventDefault(); - onSubmitForm(isMultiConnectionEnabled ? 'saveAndConnect' : 'connect'); + onSubmitForm(); }} // Prevent default html tooltip popups. noValidate @@ -530,64 +514,62 @@ function ConnectionForm({

      - {initialConnectionInfo.favorite?.name ?? 'New Connection'} - {!isMultiConnectionEnabled && showFavoriteActions && ( - { - setSaveConnectionModal('save'); - }} - > - - - )} + {(initialConnectionInfo.favorite?.name ?? 'New Connection') || + 'Edit Connection'}

      - {!isMultiConnectionEnabled && 'Connect to a MongoDB deployment'} - {isMultiConnectionEnabled && 'Manage your connection settings'} + Manage your connection settings - - {!isMultiConnectionEnabled && showFavoriteActions && ( - { - setSaveConnectionModal('save'); - }} - > -
      - - - FAVORITE - -
      -
      - )}
      + {disableEditingConnectedConnection && onDisconnectClicked && ( + +
      +
      + While connected, you may only personalize your + connection's name, color or favorite status. To fully + configure it, you must first disconnect. Beware that + disconnecting might cause work in progress to be lost. +
      +
      + +
      +
      +
      + )} + {protectConnectionStrings && !disableEditingConnectedConnection && ( + + Advanced Connection Options are hidden while the "Protect + Connection String Secrets" setting is enabled. Disable the + setting to configure Advanced Connection Options or edit your + connection string. + + )} - onSubmitForm( - isMultiConnectionEnabled ? 'saveAndConnect' : 'connect' - ) - } + onSubmit={onSubmitForm} updateConnectionFormField={updateConnectionFormField} protectConnectionStrings={protectConnectionStrings} /> @@ -599,18 +581,25 @@ function ConnectionForm({ {connectionStringInvalidError.message} )} - {isMultiConnectionEnabled && ( + {showPersonalisationForm && ( )} - {!protectConnectionStrings && ( + {!( + protectConnectionStrings || disableEditingConnectedConnection + ) && (
      - {isMultiConnectionEnabled && ( - - void callOnSaveConnectionClickedAndStoreErrors?.( - getConnectionInfoToSave() - ) - } - onSaveAndConnect={() => onSubmitForm('saveAndConnect')} - /> - )} - {!isMultiConnectionEnabled && ( - { - if (initialConnectionInfo.favorite) { - void callOnSaveConnectionClickedAndStoreErrors({ - ...cloneDeep(initialConnectionInfo), - connectionOptions: cloneDeep(connectionOptions), - }); - } else { - setSaveConnectionModal('save'); - } - }} - onSaveAndConnectClicked={() => { - setSaveConnectionModal('saveAndConnect'); - }} - onConnectClicked={() => onSubmitForm('connect')} - /> + : formFooterBorderLightModeStyles )} + > + + void callOnSaveConnectionClickedAndStoreErrors?.( + getConnectionInfoToSave() + ) + : undefined + } + onConnect={ + onConnectClicked ? () => onSubmitForm('connect') : undefined + } + onSaveAndConnect={ + onSaveAndConnectClicked + ? () => onSubmitForm('save-and-connect') + : undefined + } + />
      - - {showFavoriteActions && ( - { - setSaveConnectionModal('hidden'); - }} - onSaveClicked={async (favoriteInfo: ConnectionFavoriteOptions) => { - setSaveConnectionModal('hidden'); - - const connectionInfo = getConnectionInfoToSave(favoriteInfo); - await callOnSaveConnectionClickedAndStoreErrors(connectionInfo); - - if (saveConnectionModal === 'saveAndConnect') { - // Connect to the newly created favorite - onSubmitForm('connect'); - } - }} - key={initialConnectionInfo.id} - initialFavoriteInfo={initialConnectionInfo.favorite} - /> - )} ); + /* eslint-enable jsx-a11y/no-redundant-roles */ } -const ConnectionFormWithPreferences = ( - props: ConnectionFormPropsWithoutPreferences & { - preferences?: Partial; - } -) => { - const { preferences, ...rest } = props; +const ConnectionFormWithSettings: React.FunctionComponent< + ConnectionFormPropsWithoutSettings & Partial +> = ({ + showFavoriteActions, + showHelpCardsInForm, + showPersonalisationForm, + protectConnectionStrings, + forceConnectionOptions, + showKerberosPasswordField, + showOIDCDeviceAuthFlow, + enableOidc, + enableDebugUseCsfleSchemaMap, + protectConnectionStringsForNewConnections, + showOIDCAuth, + showKerberosAuth, + showCSFLE, + showProxySettings, + saveAndConnectLabel, + ...rest +}) => { + const value = useMemo( + () => ({ + showFavoriteActions, + showHelpCardsInForm, + showPersonalisationForm, + protectConnectionStrings, + forceConnectionOptions, + showKerberosPasswordField, + showOIDCDeviceAuthFlow, + enableOidc, + enableDebugUseCsfleSchemaMap, + protectConnectionStringsForNewConnections, + showOIDCAuth, + showKerberosAuth, + showCSFLE, + showProxySettings, + saveAndConnectLabel, + }), + [ + showFavoriteActions, + showHelpCardsInForm, + showPersonalisationForm, + protectConnectionStrings, + forceConnectionOptions, + showKerberosPasswordField, + showOIDCDeviceAuthFlow, + enableOidc, + enableDebugUseCsfleSchemaMap, + protectConnectionStringsForNewConnections, + showOIDCAuth, + showKerberosAuth, + showCSFLE, + showProxySettings, + saveAndConnectLabel, + ] + ); return ( - + - + ); }; -export default ConnectionFormWithPreferences; +export default ConnectionFormWithSettings; diff --git a/packages/connection-form/src/components/connection-string-input.spec.tsx b/packages/connection-form/src/components/connection-string-input.spec.tsx index 2b04dc5102c..16caad9be36 100644 --- a/packages/connection-form/src/components/connection-string-input.spec.tsx +++ b/packages/connection-form/src/components/connection-string-input.spec.tsx @@ -22,6 +22,7 @@ const renderConnectionStringInput = ( {}} diff --git a/packages/connection-form/src/components/connection-string-input.tsx b/packages/connection-form/src/components/connection-string-input.tsx index 867ce58d777..ba1653c984e 100644 --- a/packages/connection-form/src/components/connection-string-input.tsx +++ b/packages/connection-form/src/components/connection-string-input.tsx @@ -79,6 +79,7 @@ function ConnectionStringInput({ updateConnectionFormField, onSubmit, protectConnectionStrings, + disableEditingConnectedConnection, }: { connectionString: string; enableEditingConnectionString: boolean; @@ -86,6 +87,7 @@ function ConnectionStringInput({ updateConnectionFormField: UpdateConnectionFormField; onSubmit: () => void; protectConnectionStrings: boolean; + disableEditingConnectedConnection: boolean; }): React.ReactElement { const textAreaEl = useRef(null); const [editingConnectionString, setEditingConnectionString] = @@ -173,7 +175,7 @@ function ConnectionStringInput({ href="https://docs.mongodb.com/manual/reference/connection-string/" />
      - {!protectConnectionStrings && ( + {!(protectConnectionStrings || disableEditingConnectedConnection) && (