diff --git a/.github/workflows/typescript_tests.yml b/.github/workflows/typescript_tests.yml new file mode 100644 index 0000000000000..73d3daf74d671 --- /dev/null +++ b/.github/workflows/typescript_tests.yml @@ -0,0 +1,66 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you 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. + +# To learn more about GitHub Actions in Apache Beam check the CI.md + +name: TypeScript Tests + +on: + workflow_dispatch: + schedule: + - cron: '10 2 * * *' + push: + branches: ['master', 'release-*', 'javascript'] + tags: 'v*' + pull_request: + branches: ['master', 'release-*', 'javascript'] + tags: 'v*' + paths: ['sdks/typescript/**'] + + +jobs: + + typescript_unit_tests: + name: 'TypeScript Unit Tests' + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + steps: + - name: Checkout code + uses: actions/checkout@v2 + with: + persist-credentials: false + submodules: recursive + - name: Install node + uses: actions/setup-node@v2 + with: + node-version: '16' + - run: npm install + working-directory: ./sdks/typescript + - run: npm run build + working-directory: ./sdks/typescript + - run: npm run prettier-check + working-directory: ./sdks/typescript + if: ${{ matrix.os == 'ubuntu-latest' }} + - run: npm run codecovTest + working-directory: ./sdks/typescript + if: ${{ matrix.os == 'ubuntu-latest' }} + - run: npm test + working-directory: ./sdks/typescript + if: ${{ matrix.os != 'ubuntu-latest' }} diff --git a/sdks/node-ts/.gitignore b/sdks/typescript/.gitignore similarity index 93% rename from sdks/node-ts/.gitignore rename to sdks/typescript/.gitignore index d8697235848dc..ebf00307ae418 100644 --- a/sdks/node-ts/.gitignore +++ b/sdks/typescript/.gitignore @@ -34,7 +34,7 @@ bower_components .DS_Store Thumbs.db -# Ignore built ts files +# Ignore built js files dist/**/* # ignore yarn.lock diff --git a/sdks/node-ts/.prettierignore b/sdks/typescript/.prettierignore similarity index 100% rename from sdks/node-ts/.prettierignore rename to sdks/typescript/.prettierignore diff --git a/sdks/node-ts/Dockerfile b/sdks/typescript/Dockerfile similarity index 100% rename from sdks/node-ts/Dockerfile rename to sdks/typescript/Dockerfile diff --git a/sdks/node-ts/README.md b/sdks/typescript/README.md similarity index 100% rename from sdks/node-ts/README.md rename to sdks/typescript/README.md diff --git a/sdks/node-ts/boot.go b/sdks/typescript/boot.go similarity index 100% rename from sdks/node-ts/boot.go rename to sdks/typescript/boot.go diff --git a/sdks/node-ts/package-lock.json b/sdks/typescript/package-lock.json similarity index 70% rename from sdks/node-ts/package-lock.json rename to sdks/typescript/package-lock.json index e76a1989093f1..5bd933881f5ff 100644 --- a/sdks/node-ts/package-lock.json +++ b/sdks/typescript/package-lock.json @@ -22,6 +22,8 @@ }, "devDependencies": { "@types/mocha": "^9.0.0", + "codecov": "^3.8.3", + "istanbul": "^0.4.5", "js-yaml": "^4.1.0", "mocha": "^9.1.3", "prettier": "^2.5.1", @@ -219,6 +221,15 @@ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/@types/long": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", @@ -241,6 +252,34 @@ "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, + "node_modules/abbrev": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", + "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", + "dev": true + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.4.2" + } + }, "node_modules/ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", @@ -291,6 +330,15 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, + "node_modules/argv": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/argv/-/argv-0.0.2.tgz", + "integrity": "sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas=", + "dev": true, + "engines": { + "node": ">=0.6.10" + } + }, "node_modules/assertion-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", @@ -299,6 +347,12 @@ "node": "*" } }, + "node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -490,6 +544,48 @@ "wrap-ansi": "^7.0.0" } }, + "node_modules/codecov": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.8.3.tgz", + "integrity": "sha512-Y8Hw+V3HgR7V71xWH2vQ9lyS358CbGCldWlJFR0JirqoGtOoas3R3/OclRTvgUYFK29mmJICDPauVKmpqbwhOA==", + "deprecated": "https://about.codecov.io/blog/codecov-uploader-deprecation-plan/", + "dev": true, + "dependencies": { + "argv": "0.0.2", + "ignore-walk": "3.0.4", + "js-yaml": "3.14.1", + "teeny-request": "7.1.1", + "urlgrey": "1.0.0" + }, + "bin": { + "codecov": "bin/codecov" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/codecov/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/codecov/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -570,6 +666,12 @@ "node": ">=0.12" } }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, "node_modules/diff": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", @@ -604,11 +706,92 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/escodegen": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", + "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", + "dev": true, + "dependencies": { + "esprima": "^2.7.1", + "estraverse": "^1.9.1", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=0.12.0" + }, + "optionalDependencies": { + "source-map": "~0.2.0" + } + }, + "node_modules/escodegen/node_modules/esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estraverse": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", + "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0=", + "dev": true, + "dependencies": { + "punycode": "^1.3.2" + } + }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -723,6 +906,36 @@ "node": ">=4.x" } }, + "node_modules/handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/handlebars/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -741,6 +954,33 @@ "he": "bin/he" } }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -760,6 +1000,15 @@ } ] }, + "node_modules/ignore-walk": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", + "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", + "dev": true, + "dependencies": { + "minimatch": "^3.0.4" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -853,6 +1102,129 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, + "node_modules/istanbul": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", + "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=", + "deprecated": "This module is no longer maintained, try this instead:\n npm i nyc\nVisit https://istanbul.js.org/integrations for other alternatives.", + "dev": true, + "dependencies": { + "abbrev": "1.0.x", + "async": "1.x", + "escodegen": "1.8.x", + "esprima": "2.7.x", + "glob": "^5.0.15", + "handlebars": "^4.0.1", + "js-yaml": "3.x", + "mkdirp": "0.5.x", + "nopt": "3.x", + "once": "1.x", + "resolve": "1.1.x", + "supports-color": "^3.1.0", + "which": "^1.1.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "istanbul": "lib/cli.js" + } + }, + "node_modules/istanbul/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/istanbul/node_modules/esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul/node_modules/glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "dev": true, + "dependencies": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/istanbul/node_modules/has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/istanbul/node_modules/js-yaml/node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/istanbul/node_modules/supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "dependencies": { + "has-flag": "^1.0.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/istanbul/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -865,6 +1237,19 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -918,6 +1303,24 @@ "node": "*" } }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, "node_modules/mocha": { "version": "9.1.3", "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.1.3.tgz", @@ -979,6 +1382,44 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -997,6 +1438,23 @@ "wrappy": "1" } }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -1065,6 +1523,15 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/prettier": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", @@ -1102,6 +1569,12 @@ "pbts": "bin/pbts" } }, + "node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -1131,6 +1604,12 @@ "node": ">=0.10.0" } }, + "node_modules/resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -1165,6 +1644,34 @@ "randombytes": "^2.1.0" } }, + "node_modules/source-map": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", + "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", + "dev": true, + "optional": true, + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/stream-events": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", + "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==", + "dev": true, + "dependencies": { + "stubs": "^3.0.0" + } + }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -1201,6 +1708,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/stubs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", + "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=", + "dev": true + }, "node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -1216,6 +1729,22 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/teeny-request": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-7.1.1.tgz", + "integrity": "sha512-iwY6rkW5DDGq8hE2YgNQlKbptYpY5Nn2xecjQiNjOXWbKzPGUfmeUBCSQbbr306d7Z7U2N0TPl+/SwYRfua1Dg==", + "dev": true, + "dependencies": { + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.1", + "stream-events": "^1.0.5", + "uuid": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -1228,6 +1757,24 @@ "node": ">=8.0" } }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "dev": true + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -1249,6 +1796,28 @@ "node": ">=4.2.0" } }, + "node_modules/uglify-js": { + "version": "3.15.1", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.1.tgz", + "integrity": "sha512-FAGKF12fWdkpvNJZENacOH0e/83eG6JyVQyanIJaBXCN1J11TUQv1T1/z8S+Z0CG0ZPk1nPcreF/c7lrTd0TEQ==", + "dev": true, + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/urlgrey": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/urlgrey/-/urlgrey-1.0.0.tgz", + "integrity": "sha512-hJfIzMPJmI9IlLkby8QrsCykQ+SXDeO2W5Q9QTW3QpqZVTx4a/K7p8/5q+/isD8vsbVaFgql/gvAoQCRQ2Cb5w==", + "dev": true, + "dependencies": { + "fast-url-parser": "^1.1.3" + } + }, "node_modules/uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", @@ -1257,6 +1826,22 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -1272,6 +1857,21 @@ "node": ">= 8" } }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, "node_modules/workerpool": { "version": "6.1.5", "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.5.tgz", @@ -1522,6 +2122,12 @@ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true + }, "@types/long": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", @@ -1544,6 +2150,28 @@ "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, + "abbrev": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", + "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", + "dev": true + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true, + "optional": true + }, "ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", @@ -1579,11 +2207,23 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, + "argv": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/argv/-/argv-0.0.2.tgz", + "integrity": "sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas=", + "dev": true + }, "assertion-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==" }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -1714,6 +2354,40 @@ "wrap-ansi": "^7.0.0" } }, + "codecov": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.8.3.tgz", + "integrity": "sha512-Y8Hw+V3HgR7V71xWH2vQ9lyS358CbGCldWlJFR0JirqoGtOoas3R3/OclRTvgUYFK29mmJICDPauVKmpqbwhOA==", + "dev": true, + "requires": { + "argv": "0.0.2", + "ignore-walk": "3.0.4", + "js-yaml": "3.14.1", + "teeny-request": "7.1.1", + "urlgrey": "1.0.0" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + } + } + }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -1769,6 +2443,12 @@ "type-detect": "^4.0.0" } }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, "diff": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", @@ -1791,11 +2471,65 @@ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, + "escodegen": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", + "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", + "dev": true, + "requires": { + "esprima": "^2.7.1", + "estraverse": "^1.9.1", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.2.0" + }, + "dependencies": { + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true + } + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "estraverse": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", + "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0=", + "dev": true, + "requires": { + "punycode": "^1.3.2" + } + }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -1873,6 +2607,27 @@ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, + "handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "dev": true, + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -1885,11 +2640,41 @@ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, "ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, + "ignore-walk": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", + "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -1959,6 +2744,100 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, + "istanbul": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", + "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=", + "dev": true, + "requires": { + "abbrev": "1.0.x", + "async": "1.x", + "escodegen": "1.8.x", + "esprima": "2.7.x", + "glob": "^5.0.15", + "handlebars": "^4.0.1", + "js-yaml": "3.x", + "mkdirp": "0.5.x", + "nopt": "3.x", + "once": "1.x", + "resolve": "1.1.x", + "supports-color": "^3.1.0", + "which": "^1.1.1", + "wordwrap": "^1.0.0" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true + }, + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "dependencies": { + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + } + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, "js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -1968,6 +2847,16 @@ "argparse": "^2.0.1" } }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, "locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -2006,6 +2895,21 @@ "brace-expansion": "^1.1.7" } }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, "mocha": { "version": "9.1.3", "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.1.3.tgz", @@ -2050,6 +2954,30 @@ "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==", "dev": true }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "requires": { + "abbrev": "1" + } + }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -2065,6 +2993,20 @@ "wrappy": "1" } }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, "p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -2106,6 +3048,12 @@ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, "prettier": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", @@ -2132,6 +3080,12 @@ "long": "^4.0.0" } }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -2155,6 +3109,12 @@ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -2175,6 +3135,31 @@ "randombytes": "^2.1.0" } }, + "source-map": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", + "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", + "dev": true, + "optional": true, + "requires": { + "amdefine": ">=0.0.4" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "stream-events": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", + "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==", + "dev": true, + "requires": { + "stubs": "^3.0.0" + } + }, "string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -2199,6 +3184,12 @@ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, + "stubs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", + "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=", + "dev": true + }, "supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -2208,6 +3199,19 @@ "has-flag": "^4.0.0" } }, + "teeny-request": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-7.1.1.tgz", + "integrity": "sha512-iwY6rkW5DDGq8hE2YgNQlKbptYpY5Nn2xecjQiNjOXWbKzPGUfmeUBCSQbbr306d7Z7U2N0TPl+/SwYRfua1Dg==", + "dev": true, + "requires": { + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.1", + "stream-events": "^1.0.5", + "uuid": "^8.0.0" + } + }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -2217,6 +3221,21 @@ "is-number": "^7.0.0" } }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, "type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -2228,11 +3247,43 @@ "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==", "dev": true }, + "uglify-js": { + "version": "3.15.1", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.1.tgz", + "integrity": "sha512-FAGKF12fWdkpvNJZENacOH0e/83eG6JyVQyanIJaBXCN1J11TUQv1T1/z8S+Z0CG0ZPk1nPcreF/c7lrTd0TEQ==", + "dev": true, + "optional": true + }, + "urlgrey": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/urlgrey/-/urlgrey-1.0.0.tgz", + "integrity": "sha512-hJfIzMPJmI9IlLkby8QrsCykQ+SXDeO2W5Q9QTW3QpqZVTx4a/K7p8/5q+/isD8vsbVaFgql/gvAoQCRQ2Cb5w==", + "dev": true, + "requires": { + "fast-url-parser": "^1.1.3" + } + }, "uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", + "dev": true + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dev": true, + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -2242,6 +3293,18 @@ "isexe": "^2.0.0" } }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, "workerpool": { "version": "6.1.5", "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.5.tgz", diff --git a/sdks/node-ts/package.json b/sdks/typescript/package.json similarity index 79% rename from sdks/node-ts/package.json rename to sdks/typescript/package.json index c8f520e870fb0..22a79de52552b 100644 --- a/sdks/node-ts/package.json +++ b/sdks/typescript/package.json @@ -3,6 +3,8 @@ "version": "0.37.0.dev", "devDependencies": { "@types/mocha": "^9.0.0", + "codecov": "^3.8.3", + "istanbul": "^0.4.5", "js-yaml": "^4.1.0", "mocha": "^9.1.3", "prettier": "^2.5.1", @@ -17,7 +19,9 @@ "worker": "node dist/src/apache_beam/worker/external_worker_service.js", "pretest": "npm run build", "test": "mocha dist/test", - "prettier": "prettier --write dist/" + "codecovTest": "istanbul cover mocha dist/test --reporter lcovonly -- -R spec && codecov", + "prettier": "prettier --write src/", + "prettier-check": "prettier --check src/" }, "dependencies": { "@grpc/grpc-js": "^1.4.6", diff --git a/sdks/node-ts/src/apache_beam/base.ts b/sdks/typescript/src/apache_beam/base.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/base.ts rename to sdks/typescript/src/apache_beam/base.ts diff --git a/sdks/node-ts/src/apache_beam/coders/README.md b/sdks/typescript/src/apache_beam/coders/README.md similarity index 100% rename from sdks/node-ts/src/apache_beam/coders/README.md rename to sdks/typescript/src/apache_beam/coders/README.md diff --git a/sdks/node-ts/src/apache_beam/coders/coders.ts b/sdks/typescript/src/apache_beam/coders/coders.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/coders/coders.ts rename to sdks/typescript/src/apache_beam/coders/coders.ts diff --git a/sdks/node-ts/src/apache_beam/coders/js_coders.ts b/sdks/typescript/src/apache_beam/coders/js_coders.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/coders/js_coders.ts rename to sdks/typescript/src/apache_beam/coders/js_coders.ts diff --git a/sdks/node-ts/src/apache_beam/coders/required_coders.ts b/sdks/typescript/src/apache_beam/coders/required_coders.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/coders/required_coders.ts rename to sdks/typescript/src/apache_beam/coders/required_coders.ts diff --git a/sdks/node-ts/src/apache_beam/coders/row_coder.ts b/sdks/typescript/src/apache_beam/coders/row_coder.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/coders/row_coder.ts rename to sdks/typescript/src/apache_beam/coders/row_coder.ts diff --git a/sdks/node-ts/src/apache_beam/coders/standard_coders.ts b/sdks/typescript/src/apache_beam/coders/standard_coders.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/coders/standard_coders.ts rename to sdks/typescript/src/apache_beam/coders/standard_coders.ts diff --git a/sdks/node-ts/src/apache_beam/coders/use_row_coder.ts b/sdks/typescript/src/apache_beam/coders/use_row_coder.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/coders/use_row_coder.ts rename to sdks/typescript/src/apache_beam/coders/use_row_coder.ts diff --git a/sdks/node-ts/src/apache_beam/examples/README.md b/sdks/typescript/src/apache_beam/examples/README.md similarity index 100% rename from sdks/node-ts/src/apache_beam/examples/README.md rename to sdks/typescript/src/apache_beam/examples/README.md diff --git a/sdks/node-ts/src/apache_beam/examples/wordcount.ts b/sdks/typescript/src/apache_beam/examples/wordcount.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/examples/wordcount.ts rename to sdks/typescript/src/apache_beam/examples/wordcount.ts diff --git a/sdks/node-ts/src/apache_beam/examples/wordcount2.ts b/sdks/typescript/src/apache_beam/examples/wordcount2.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/examples/wordcount2.ts rename to sdks/typescript/src/apache_beam/examples/wordcount2.ts diff --git a/sdks/node-ts/src/apache_beam/examples/wordcount3.ts b/sdks/typescript/src/apache_beam/examples/wordcount3.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/examples/wordcount3.ts rename to sdks/typescript/src/apache_beam/examples/wordcount3.ts diff --git a/sdks/node-ts/src/apache_beam/index.ts b/sdks/typescript/src/apache_beam/index.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/index.ts rename to sdks/typescript/src/apache_beam/index.ts diff --git a/sdks/node-ts/src/apache_beam/internal/README.md b/sdks/typescript/src/apache_beam/internal/README.md similarity index 100% rename from sdks/node-ts/src/apache_beam/internal/README.md rename to sdks/typescript/src/apache_beam/internal/README.md diff --git a/sdks/node-ts/src/apache_beam/internal/environments.ts b/sdks/typescript/src/apache_beam/internal/environments.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/internal/environments.ts rename to sdks/typescript/src/apache_beam/internal/environments.ts diff --git a/sdks/node-ts/src/apache_beam/internal/pipeline.ts b/sdks/typescript/src/apache_beam/internal/pipeline.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/internal/pipeline.ts rename to sdks/typescript/src/apache_beam/internal/pipeline.ts diff --git a/sdks/node-ts/src/apache_beam/internal/urns.ts b/sdks/typescript/src/apache_beam/internal/urns.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/internal/urns.ts rename to sdks/typescript/src/apache_beam/internal/urns.ts diff --git a/sdks/node-ts/src/apache_beam/io/textio.ts b/sdks/typescript/src/apache_beam/io/textio.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/io/textio.ts rename to sdks/typescript/src/apache_beam/io/textio.ts diff --git a/sdks/node-ts/src/apache_beam/options/README.md b/sdks/typescript/src/apache_beam/options/README.md similarity index 100% rename from sdks/node-ts/src/apache_beam/options/README.md rename to sdks/typescript/src/apache_beam/options/README.md diff --git a/sdks/node-ts/src/apache_beam/options/pipeline_options.ts b/sdks/typescript/src/apache_beam/options/pipeline_options.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/options/pipeline_options.ts rename to sdks/typescript/src/apache_beam/options/pipeline_options.ts diff --git a/sdks/node-ts/src/apache_beam/proto/README.md b/sdks/typescript/src/apache_beam/proto/README.md similarity index 100% rename from sdks/node-ts/src/apache_beam/proto/README.md rename to sdks/typescript/src/apache_beam/proto/README.md diff --git a/sdks/node-ts/src/apache_beam/proto/beam_artifact_api.client.ts b/sdks/typescript/src/apache_beam/proto/beam_artifact_api.client.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/proto/beam_artifact_api.client.ts rename to sdks/typescript/src/apache_beam/proto/beam_artifact_api.client.ts diff --git a/sdks/node-ts/src/apache_beam/proto/beam_artifact_api.grpc-client.ts b/sdks/typescript/src/apache_beam/proto/beam_artifact_api.grpc-client.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/proto/beam_artifact_api.grpc-client.ts rename to sdks/typescript/src/apache_beam/proto/beam_artifact_api.grpc-client.ts diff --git a/sdks/node-ts/src/apache_beam/proto/beam_artifact_api.ts b/sdks/typescript/src/apache_beam/proto/beam_artifact_api.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/proto/beam_artifact_api.ts rename to sdks/typescript/src/apache_beam/proto/beam_artifact_api.ts diff --git a/sdks/node-ts/src/apache_beam/proto/beam_expansion_api.client.ts b/sdks/typescript/src/apache_beam/proto/beam_expansion_api.client.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/proto/beam_expansion_api.client.ts rename to sdks/typescript/src/apache_beam/proto/beam_expansion_api.client.ts diff --git a/sdks/node-ts/src/apache_beam/proto/beam_expansion_api.grpc-client.ts b/sdks/typescript/src/apache_beam/proto/beam_expansion_api.grpc-client.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/proto/beam_expansion_api.grpc-client.ts rename to sdks/typescript/src/apache_beam/proto/beam_expansion_api.grpc-client.ts diff --git a/sdks/node-ts/src/apache_beam/proto/beam_expansion_api.ts b/sdks/typescript/src/apache_beam/proto/beam_expansion_api.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/proto/beam_expansion_api.ts rename to sdks/typescript/src/apache_beam/proto/beam_expansion_api.ts diff --git a/sdks/node-ts/src/apache_beam/proto/beam_fn_api.client.ts b/sdks/typescript/src/apache_beam/proto/beam_fn_api.client.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/proto/beam_fn_api.client.ts rename to sdks/typescript/src/apache_beam/proto/beam_fn_api.client.ts diff --git a/sdks/node-ts/src/apache_beam/proto/beam_fn_api.grpc-client.ts b/sdks/typescript/src/apache_beam/proto/beam_fn_api.grpc-client.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/proto/beam_fn_api.grpc-client.ts rename to sdks/typescript/src/apache_beam/proto/beam_fn_api.grpc-client.ts diff --git a/sdks/node-ts/src/apache_beam/proto/beam_fn_api.grpc-server.ts b/sdks/typescript/src/apache_beam/proto/beam_fn_api.grpc-server.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/proto/beam_fn_api.grpc-server.ts rename to sdks/typescript/src/apache_beam/proto/beam_fn_api.grpc-server.ts diff --git a/sdks/node-ts/src/apache_beam/proto/beam_fn_api.ts b/sdks/typescript/src/apache_beam/proto/beam_fn_api.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/proto/beam_fn_api.ts rename to sdks/typescript/src/apache_beam/proto/beam_fn_api.ts diff --git a/sdks/node-ts/src/apache_beam/proto/beam_job_api.client.ts b/sdks/typescript/src/apache_beam/proto/beam_job_api.client.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/proto/beam_job_api.client.ts rename to sdks/typescript/src/apache_beam/proto/beam_job_api.client.ts diff --git a/sdks/node-ts/src/apache_beam/proto/beam_job_api.grpc-client.ts b/sdks/typescript/src/apache_beam/proto/beam_job_api.grpc-client.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/proto/beam_job_api.grpc-client.ts rename to sdks/typescript/src/apache_beam/proto/beam_job_api.grpc-client.ts diff --git a/sdks/node-ts/src/apache_beam/proto/beam_job_api.ts b/sdks/typescript/src/apache_beam/proto/beam_job_api.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/proto/beam_job_api.ts rename to sdks/typescript/src/apache_beam/proto/beam_job_api.ts diff --git a/sdks/node-ts/src/apache_beam/proto/beam_provision_api.client.ts b/sdks/typescript/src/apache_beam/proto/beam_provision_api.client.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/proto/beam_provision_api.client.ts rename to sdks/typescript/src/apache_beam/proto/beam_provision_api.client.ts diff --git a/sdks/node-ts/src/apache_beam/proto/beam_provision_api.grpc-client.ts b/sdks/typescript/src/apache_beam/proto/beam_provision_api.grpc-client.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/proto/beam_provision_api.grpc-client.ts rename to sdks/typescript/src/apache_beam/proto/beam_provision_api.grpc-client.ts diff --git a/sdks/node-ts/src/apache_beam/proto/beam_provision_api.grpc-server.ts b/sdks/typescript/src/apache_beam/proto/beam_provision_api.grpc-server.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/proto/beam_provision_api.grpc-server.ts rename to sdks/typescript/src/apache_beam/proto/beam_provision_api.grpc-server.ts diff --git a/sdks/node-ts/src/apache_beam/proto/beam_provision_api.ts b/sdks/typescript/src/apache_beam/proto/beam_provision_api.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/proto/beam_provision_api.ts rename to sdks/typescript/src/apache_beam/proto/beam_provision_api.ts diff --git a/sdks/node-ts/src/apache_beam/proto/beam_runner_api.client.ts b/sdks/typescript/src/apache_beam/proto/beam_runner_api.client.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/proto/beam_runner_api.client.ts rename to sdks/typescript/src/apache_beam/proto/beam_runner_api.client.ts diff --git a/sdks/node-ts/src/apache_beam/proto/beam_runner_api.grpc-client.ts b/sdks/typescript/src/apache_beam/proto/beam_runner_api.grpc-client.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/proto/beam_runner_api.grpc-client.ts rename to sdks/typescript/src/apache_beam/proto/beam_runner_api.grpc-client.ts diff --git a/sdks/node-ts/src/apache_beam/proto/beam_runner_api.grpc-server.ts b/sdks/typescript/src/apache_beam/proto/beam_runner_api.grpc-server.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/proto/beam_runner_api.grpc-server.ts rename to sdks/typescript/src/apache_beam/proto/beam_runner_api.grpc-server.ts diff --git a/sdks/node-ts/src/apache_beam/proto/beam_runner_api.ts b/sdks/typescript/src/apache_beam/proto/beam_runner_api.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/proto/beam_runner_api.ts rename to sdks/typescript/src/apache_beam/proto/beam_runner_api.ts diff --git a/sdks/node-ts/src/apache_beam/proto/endpoints.ts b/sdks/typescript/src/apache_beam/proto/endpoints.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/proto/endpoints.ts rename to sdks/typescript/src/apache_beam/proto/endpoints.ts diff --git a/sdks/node-ts/src/apache_beam/proto/external_transforms.ts b/sdks/typescript/src/apache_beam/proto/external_transforms.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/proto/external_transforms.ts rename to sdks/typescript/src/apache_beam/proto/external_transforms.ts diff --git a/sdks/node-ts/src/apache_beam/proto/gen_protos.sh b/sdks/typescript/src/apache_beam/proto/gen_protos.sh similarity index 100% rename from sdks/node-ts/src/apache_beam/proto/gen_protos.sh rename to sdks/typescript/src/apache_beam/proto/gen_protos.sh diff --git a/sdks/node-ts/src/apache_beam/proto/google/protobuf/descriptor.ts b/sdks/typescript/src/apache_beam/proto/google/protobuf/descriptor.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/proto/google/protobuf/descriptor.ts rename to sdks/typescript/src/apache_beam/proto/google/protobuf/descriptor.ts diff --git a/sdks/node-ts/src/apache_beam/proto/google/protobuf/duration.ts b/sdks/typescript/src/apache_beam/proto/google/protobuf/duration.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/proto/google/protobuf/duration.ts rename to sdks/typescript/src/apache_beam/proto/google/protobuf/duration.ts diff --git a/sdks/node-ts/src/apache_beam/proto/google/protobuf/struct.ts b/sdks/typescript/src/apache_beam/proto/google/protobuf/struct.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/proto/google/protobuf/struct.ts rename to sdks/typescript/src/apache_beam/proto/google/protobuf/struct.ts diff --git a/sdks/node-ts/src/apache_beam/proto/google/protobuf/timestamp.ts b/sdks/typescript/src/apache_beam/proto/google/protobuf/timestamp.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/proto/google/protobuf/timestamp.ts rename to sdks/typescript/src/apache_beam/proto/google/protobuf/timestamp.ts diff --git a/sdks/node-ts/src/apache_beam/proto/metrics.ts b/sdks/typescript/src/apache_beam/proto/metrics.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/proto/metrics.ts rename to sdks/typescript/src/apache_beam/proto/metrics.ts diff --git a/sdks/node-ts/src/apache_beam/proto/schema.ts b/sdks/typescript/src/apache_beam/proto/schema.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/proto/schema.ts rename to sdks/typescript/src/apache_beam/proto/schema.ts diff --git a/sdks/node-ts/src/apache_beam/proto/standard_window_fns.ts b/sdks/typescript/src/apache_beam/proto/standard_window_fns.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/proto/standard_window_fns.ts rename to sdks/typescript/src/apache_beam/proto/standard_window_fns.ts diff --git a/sdks/node-ts/src/apache_beam/pvalue.ts b/sdks/typescript/src/apache_beam/pvalue.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/pvalue.ts rename to sdks/typescript/src/apache_beam/pvalue.ts diff --git a/sdks/node-ts/src/apache_beam/runners/README.md b/sdks/typescript/src/apache_beam/runners/README.md similarity index 100% rename from sdks/node-ts/src/apache_beam/runners/README.md rename to sdks/typescript/src/apache_beam/runners/README.md diff --git a/sdks/node-ts/src/apache_beam/runners/artifacts.ts b/sdks/typescript/src/apache_beam/runners/artifacts.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/runners/artifacts.ts rename to sdks/typescript/src/apache_beam/runners/artifacts.ts diff --git a/sdks/node-ts/src/apache_beam/runners/direct_runner.ts b/sdks/typescript/src/apache_beam/runners/direct_runner.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/runners/direct_runner.ts rename to sdks/typescript/src/apache_beam/runners/direct_runner.ts diff --git a/sdks/node-ts/src/apache_beam/runners/portable_runner/runner.ts b/sdks/typescript/src/apache_beam/runners/portable_runner/runner.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/runners/portable_runner/runner.ts rename to sdks/typescript/src/apache_beam/runners/portable_runner/runner.ts diff --git a/sdks/node-ts/src/apache_beam/runners/runner.ts b/sdks/typescript/src/apache_beam/runners/runner.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/runners/runner.ts rename to sdks/typescript/src/apache_beam/runners/runner.ts diff --git a/sdks/node-ts/src/apache_beam/testing/README.md b/sdks/typescript/src/apache_beam/testing/README.md similarity index 100% rename from sdks/node-ts/src/apache_beam/testing/README.md rename to sdks/typescript/src/apache_beam/testing/README.md diff --git a/sdks/node-ts/src/apache_beam/testing/assert.ts b/sdks/typescript/src/apache_beam/testing/assert.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/testing/assert.ts rename to sdks/typescript/src/apache_beam/testing/assert.ts diff --git a/sdks/node-ts/src/apache_beam/testing/proto_printing_runner.ts b/sdks/typescript/src/apache_beam/testing/proto_printing_runner.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/testing/proto_printing_runner.ts rename to sdks/typescript/src/apache_beam/testing/proto_printing_runner.ts diff --git a/sdks/node-ts/src/apache_beam/transforms/README.md b/sdks/typescript/src/apache_beam/transforms/README.md similarity index 100% rename from sdks/node-ts/src/apache_beam/transforms/README.md rename to sdks/typescript/src/apache_beam/transforms/README.md diff --git a/sdks/node-ts/src/apache_beam/transforms/combiners.ts b/sdks/typescript/src/apache_beam/transforms/combiners.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/transforms/combiners.ts rename to sdks/typescript/src/apache_beam/transforms/combiners.ts diff --git a/sdks/node-ts/src/apache_beam/transforms/create.ts b/sdks/typescript/src/apache_beam/transforms/create.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/transforms/create.ts rename to sdks/typescript/src/apache_beam/transforms/create.ts diff --git a/sdks/node-ts/src/apache_beam/transforms/external.ts b/sdks/typescript/src/apache_beam/transforms/external.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/transforms/external.ts rename to sdks/typescript/src/apache_beam/transforms/external.ts diff --git a/sdks/node-ts/src/apache_beam/transforms/flatten.ts b/sdks/typescript/src/apache_beam/transforms/flatten.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/transforms/flatten.ts rename to sdks/typescript/src/apache_beam/transforms/flatten.ts diff --git a/sdks/node-ts/src/apache_beam/transforms/group_and_combine.ts b/sdks/typescript/src/apache_beam/transforms/group_and_combine.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/transforms/group_and_combine.ts rename to sdks/typescript/src/apache_beam/transforms/group_and_combine.ts diff --git a/sdks/node-ts/src/apache_beam/transforms/index.ts b/sdks/typescript/src/apache_beam/transforms/index.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/transforms/index.ts rename to sdks/typescript/src/apache_beam/transforms/index.ts diff --git a/sdks/node-ts/src/apache_beam/transforms/internal.ts b/sdks/typescript/src/apache_beam/transforms/internal.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/transforms/internal.ts rename to sdks/typescript/src/apache_beam/transforms/internal.ts diff --git a/sdks/node-ts/src/apache_beam/transforms/pardo.ts b/sdks/typescript/src/apache_beam/transforms/pardo.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/transforms/pardo.ts rename to sdks/typescript/src/apache_beam/transforms/pardo.ts diff --git a/sdks/node-ts/src/apache_beam/transforms/sql.ts b/sdks/typescript/src/apache_beam/transforms/sql.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/transforms/sql.ts rename to sdks/typescript/src/apache_beam/transforms/sql.ts diff --git a/sdks/node-ts/src/apache_beam/transforms/transform.ts b/sdks/typescript/src/apache_beam/transforms/transform.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/transforms/transform.ts rename to sdks/typescript/src/apache_beam/transforms/transform.ts diff --git a/sdks/node-ts/src/apache_beam/transforms/window.ts b/sdks/typescript/src/apache_beam/transforms/window.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/transforms/window.ts rename to sdks/typescript/src/apache_beam/transforms/window.ts diff --git a/sdks/node-ts/src/apache_beam/transforms/windowings.ts b/sdks/typescript/src/apache_beam/transforms/windowings.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/transforms/windowings.ts rename to sdks/typescript/src/apache_beam/transforms/windowings.ts diff --git a/sdks/node-ts/src/apache_beam/utils/README.md b/sdks/typescript/src/apache_beam/utils/README.md similarity index 100% rename from sdks/node-ts/src/apache_beam/utils/README.md rename to sdks/typescript/src/apache_beam/utils/README.md diff --git a/sdks/node-ts/src/apache_beam/utils/service.ts b/sdks/typescript/src/apache_beam/utils/service.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/utils/service.ts rename to sdks/typescript/src/apache_beam/utils/service.ts diff --git a/sdks/node-ts/src/apache_beam/values.ts b/sdks/typescript/src/apache_beam/values.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/values.ts rename to sdks/typescript/src/apache_beam/values.ts diff --git a/sdks/node-ts/src/apache_beam/version.ts b/sdks/typescript/src/apache_beam/version.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/version.ts rename to sdks/typescript/src/apache_beam/version.ts diff --git a/sdks/node-ts/src/apache_beam/worker/README.md b/sdks/typescript/src/apache_beam/worker/README.md similarity index 100% rename from sdks/node-ts/src/apache_beam/worker/README.md rename to sdks/typescript/src/apache_beam/worker/README.md diff --git a/sdks/node-ts/src/apache_beam/worker/data.ts b/sdks/typescript/src/apache_beam/worker/data.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/worker/data.ts rename to sdks/typescript/src/apache_beam/worker/data.ts diff --git a/sdks/node-ts/src/apache_beam/worker/external_worker_service.ts b/sdks/typescript/src/apache_beam/worker/external_worker_service.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/worker/external_worker_service.ts rename to sdks/typescript/src/apache_beam/worker/external_worker_service.ts diff --git a/sdks/node-ts/src/apache_beam/worker/operators.ts b/sdks/typescript/src/apache_beam/worker/operators.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/worker/operators.ts rename to sdks/typescript/src/apache_beam/worker/operators.ts diff --git a/sdks/node-ts/src/apache_beam/worker/pardo_context.ts b/sdks/typescript/src/apache_beam/worker/pardo_context.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/worker/pardo_context.ts rename to sdks/typescript/src/apache_beam/worker/pardo_context.ts diff --git a/sdks/node-ts/src/apache_beam/worker/state.ts b/sdks/typescript/src/apache_beam/worker/state.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/worker/state.ts rename to sdks/typescript/src/apache_beam/worker/state.ts diff --git a/sdks/node-ts/src/apache_beam/worker/worker.ts b/sdks/typescript/src/apache_beam/worker/worker.ts similarity index 100% rename from sdks/node-ts/src/apache_beam/worker/worker.ts rename to sdks/typescript/src/apache_beam/worker/worker.ts diff --git a/sdks/node-ts/src/app.js b/sdks/typescript/src/app.js similarity index 100% rename from sdks/node-ts/src/app.js rename to sdks/typescript/src/app.js diff --git a/sdks/node-ts/test/combine_test.ts b/sdks/typescript/test/combine_test.ts similarity index 100% rename from sdks/node-ts/test/combine_test.ts rename to sdks/typescript/test/combine_test.ts diff --git a/sdks/node-ts/test/core_test.ts b/sdks/typescript/test/core_test.ts similarity index 100% rename from sdks/node-ts/test/core_test.ts rename to sdks/typescript/test/core_test.ts diff --git a/sdks/node-ts/test/exp_service_test.js b/sdks/typescript/test/exp_service_test.js similarity index 100% rename from sdks/node-ts/test/exp_service_test.js rename to sdks/typescript/test/exp_service_test.js diff --git a/sdks/node-ts/test/js_coders_test.ts b/sdks/typescript/test/js_coders_test.ts similarity index 100% rename from sdks/node-ts/test/js_coders_test.ts rename to sdks/typescript/test/js_coders_test.ts diff --git a/sdks/node-ts/test/node_runner_test.ts b/sdks/typescript/test/node_runner_test.ts similarity index 100% rename from sdks/node-ts/test/node_runner_test.ts rename to sdks/typescript/test/node_runner_test.ts diff --git a/sdks/node-ts/test/primitives_test.ts b/sdks/typescript/test/primitives_test.ts similarity index 100% rename from sdks/node-ts/test/primitives_test.ts rename to sdks/typescript/test/primitives_test.ts diff --git a/sdks/node-ts/test/serialize_test.ts b/sdks/typescript/test/serialize_test.ts similarity index 100% rename from sdks/node-ts/test/serialize_test.ts rename to sdks/typescript/test/serialize_test.ts diff --git a/sdks/node-ts/test/standard_coders_test.ts b/sdks/typescript/test/standard_coders_test.ts similarity index 100% rename from sdks/node-ts/test/standard_coders_test.ts rename to sdks/typescript/test/standard_coders_test.ts diff --git a/sdks/node-ts/test/test.ts b/sdks/typescript/test/test.ts similarity index 100% rename from sdks/node-ts/test/test.ts rename to sdks/typescript/test/test.ts diff --git a/sdks/node-ts/test/testdata/pipeline.json b/sdks/typescript/test/testdata/pipeline.json similarity index 100% rename from sdks/node-ts/test/testdata/pipeline.json rename to sdks/typescript/test/testdata/pipeline.json diff --git a/sdks/node-ts/test/wordcount.ts b/sdks/typescript/test/wordcount.ts similarity index 100% rename from sdks/node-ts/test/wordcount.ts rename to sdks/typescript/test/wordcount.ts diff --git a/sdks/node-ts/test/worker_test.ts b/sdks/typescript/test/worker_test.ts similarity index 100% rename from sdks/node-ts/test/worker_test.ts rename to sdks/typescript/test/worker_test.ts diff --git a/sdks/node-ts/tsconfig.json b/sdks/typescript/tsconfig.json similarity index 100% rename from sdks/node-ts/tsconfig.json rename to sdks/typescript/tsconfig.json diff --git a/sdks/node-ts/webpack.config.js b/sdks/typescript/webpack.config.js similarity index 100% rename from sdks/node-ts/webpack.config.js rename to sdks/typescript/webpack.config.js