From d882d12c64e032187b2edb46d3a0d003b7a43598 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kh=E1=BA=A3i?= Date: Wed, 26 Jul 2023 18:50:04 +0700 Subject: [PATCH] feat: standalone binary (#92) * feat: add an option to install the self-contained binary version of pnpm * test: add a test about nodejs_bundled * style: remove an empty line * chore: use newer pnpm * chore: update dependencies * feat: rename `nodejs_bundled` to `standalone` as @zkochan suggested * docs: add --------- Co-authored-by: Takashi Sato --- .github/workflows/test.yaml | 59 +++++- README.md | 8 +- action.yml | 6 +- dist/index.js | Bin 272386 -> 272853 bytes package.json | 6 +- pnpm-lock.yaml | 373 +++++++++++++++++++----------------- run.sh | 1 + src/inputs/index.ts | 4 +- src/install-pnpm/run.ts | 19 +- 9 files changed, 285 insertions(+), 191 deletions(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 95489f7..4654da6 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -35,8 +35,8 @@ jobs: - name: 'Test: install' run: pnpm install - test_explicit_inputs: - name: Test with explicit inputs + test_dest: + name: Test with dest runs-on: ${{ matrix.os }} @@ -65,6 +65,61 @@ jobs: - name: 'Test: install' run: pnpm install + test_standalone: + name: Test with standalone + + runs-on: ${{ matrix.os }} + + strategy: + fail-fast: false + matrix: + os: + - ubuntu-latest + - macos-latest + - windows-latest + + standalone: + - true + - false + + steps: + - uses: actions/checkout@v3 + + - name: Run the action + uses: ./ + with: + version: 7.0.0 + standalone: ${{ matrix.standalone }} + + - name: install Node.js + uses: actions/setup-node@v3 + with: + # pnpm@7.0.0 is not compatible with Node.js 12 + node-version: 12.22.12 + + - name: 'Test: which (pnpm)' + run: which pnpm + + - name: 'Test: which (pnpx)' + if: matrix.standalone == false + run: which pnpx + + - name: 'Test: install when standalone is true' + if: matrix.standalone + run: pnpm install + + - name: 'Test: install when standalone is false' + if: matrix.standalone == false + # Since the default shell on windows runner is pwsh, we specify bash explicitly + shell: bash + run: | + if pnpm install; then + echo "pnpm install should fail" + exit 1 + else + echo "pnpm install failed as expected" + fi + test_run_install: name: 'Test with run_install (${{ matrix.run_install.name }}, ${{ matrix.os }})' diff --git a/README.md b/README.md index c85e3e8..3606ef2 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,13 @@ If `run_install` is a YAML string representation of either an object or an array ### `package_json_file` -**Optional** File path to the `package.json` to read "packageManager" configutation. If not specified, `package.json` in the project root directory is used. +**Optional** (_type:_ `string`, _default:_ `package.json`) File path to the `package.json` to read "packageManager" configuration. + +### `standalone` + +**Optional** (_type:_ `boolean`, _default:_ `false`) When set to true, [@pnpm/exe](https://www.npmjs.com/package/@pnpm/exe), which is a Node.js bundled package, will be installed, enabling using `pnpm` without Node.js. + +This is useful when you want to use a incompatible pair of Node.js and pnpm. ## Outputs diff --git a/action.yml b/action.yml index ec60c94..c652fba 100644 --- a/action.yml +++ b/action.yml @@ -16,9 +16,13 @@ inputs: required: false default: 'null' package_json_file: - description: File path to the package.json to read "packageManager" configutation + description: File path to the package.json to read "packageManager" configuration required: false default: 'package.json' + standalone: + description: When set to true, @pnpm/exe, which is a Node.js bundled package, will be installed, enabling using pnpm without Node.js. + required: false + default: 'false' runs: using: node16 main: dist/index.js diff --git a/dist/index.js b/dist/index.js index 47b87f36ddb41fa28c98f12574ae784e1bdebe57..8867301a8c897e3697fe8df388adc9cca4dde3f3 100644 GIT binary patch delta 1338 zcmaJ=U1%It6lU(OQL;%)+DaOYWE?{>SB7zSlWaD#jNPQRP1CZ8=^rH~=4SS8Gq^i< zymL2Ec88(`&7w%dJgoYpzK9^CxX9p3QKS{55A_cpiqLl{_~t_&^v+C@ZWUx-zI)F3 z&iUp$XWzQr`|HoW*9vh(aTv0Ss7x%Z$w|djFJU%ANEsvRq-9qbl%@TO)~R@*qr06^ z^*-zz5)AL_&g_5zb7&KpjCXO=O=>cH+$>`#8(wE(^ms`RlOn~acotDUMXqgN>X^jR zsA41IRdfl@Im8M`8hU7m3v&js946Y{LgIu_@;*qsC=|Wl6N96+N-SBzloBc_6y~D0 zQ6>(S6bxMmb7n~{dSaK&8QWd?%di&q`k&#feK>M;9JHX2VpgTr>TnGmk@B`>SDweO zV@Z<&D7pFJ8g*AAowXAu&(5BkdF8_V;;AzW(?^eKrmNeO7}#+-Rcvhp4WBVv{oS*I zV0o)O$pKSgP?4&vl$9dM>G|TfJKR>|{g0)DJXsHz2 zWn^GE6qA>f2LkgFboa_yPxSr-4`ov6?4F^P&g4vbEYrF_h)5Rj?25=|$g)>^kZnRqFEo^BL+fS8H*}-lZGZ6)DVbvy-XOZ{CmMS3c z&epTtNFN^`+ohXcqA@aobX}LMYGn;m3D!*2t~%>7-}>j~byN|EYVW#ly3#Pld~uncp%%L~LvWn!Rm;4T+R zA5xG?PjV6ejxK3hYI!$2)TVbSskQ%t8u!Y*hJUXiT>mtl&ZJ@UrFrm_|APYVBp$q* z{N3f>&I0*Bj2HR$=Kzg|$ess_u@K!@1m8vI-Sc3lBaG?G;96IR{xrc_m~C=2;@2vm z5H+~<8n_F>k{t#nh5ea>e#Zv*?Qod6`#u=sne@bX^UW*5pg(pM6oeqtOnnXxHfO&D zJww?HzwHe~#o)42Q^BPNFNePZqJLu>toO%*gwIJU9WhP_=!g8zcEGJi`s#I}8l)JW Y!?BrjXD<5mD{%A2aDMKc*!Lg*14(zpk^lez delta 804 zcmYLGO-vI(6wXf9N@xp+B!B@~DuLak+0s8sOG-GHVuGm>h%r&2W0}%QySvU#A*R`j z9I#*_W)6)fjoiFgvx#eBL_fk<#eSRD%yT7GNB#hk3`v?O=0%OJdo`dLbhhOrZSe)V7`4jk zSi*=@u#(jjtxUIkr`w2;(y*FCx-KJSm9~%dntQ$&$3g0DAMGW~GT^U}{J6hqOm1mN z%?prTX#Wxs#5sh70wJ273Bs!bn|w@`u+qgxOrP)%|8PN$E>sk-h6O|wAEa1AN>P7M+Mmc diff --git a/package.json b/package.json index 3db923d..b03a33a 100644 --- a/package.json +++ b/package.json @@ -11,8 +11,8 @@ "@types/expand-tilde": "^2.0.0", "@types/fs-extra": "^9.0.13", "@types/js-yaml": "^4.0.5", - "@types/node": "^14.18.32", - "@types/node-fetch": "^2.6.2", + "@types/node": "^14.18.54", + "@types/node-fetch": "^2.6.4", "ajv": "^6.12.6", "expand-tilde": "^2.0.2", "fs-extra": "^10.1.0", @@ -21,6 +21,6 @@ "devDependencies": { "@ts-schema-autogen/cli": "^0.1.2", "@vercel/ncc": "^0.33.4", - "typescript": "^4.8.4" + "typescript": "^4.9.5" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5f9330a..64d1063 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,67 +1,82 @@ -lockfileVersion: 5.4 +lockfileVersion: '6.0' -specifiers: - '@actions/core': ^1.10.0 - '@ts-schema-autogen/cli': ^0.1.2 - '@types/expand-tilde': ^2.0.0 - '@types/fs-extra': ^9.0.13 - '@types/js-yaml': ^4.0.5 - '@types/node': ^14.18.32 - '@types/node-fetch': ^2.6.2 - '@vercel/ncc': ^0.33.4 - ajv: ^6.12.6 - expand-tilde: ^2.0.2 - fs-extra: ^10.1.0 - js-yaml: ^4.1.0 - typescript: ^4.8.4 +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false dependencies: - '@actions/core': 1.10.0 - '@types/expand-tilde': 2.0.0 - '@types/fs-extra': 9.0.13 - '@types/js-yaml': 4.0.5 - '@types/node': 14.18.32 - '@types/node-fetch': 2.6.2 - ajv: 6.12.6 - expand-tilde: 2.0.2 - fs-extra: 10.1.0 - js-yaml: 4.1.0 + '@actions/core': + specifier: ^1.10.0 + version: 1.10.0 + '@types/expand-tilde': + specifier: ^2.0.0 + version: 2.0.0 + '@types/fs-extra': + specifier: ^9.0.13 + version: 9.0.13 + '@types/js-yaml': + specifier: ^4.0.5 + version: 4.0.5 + '@types/node': + specifier: ^14.18.54 + version: 14.18.54 + '@types/node-fetch': + specifier: ^2.6.4 + version: 2.6.4 + ajv: + specifier: ^6.12.6 + version: 6.12.6 + expand-tilde: + specifier: ^2.0.2 + version: 2.0.2 + fs-extra: + specifier: ^10.1.0 + version: 10.1.0 + js-yaml: + specifier: ^4.1.0 + version: 4.1.0 devDependencies: - '@ts-schema-autogen/cli': 0.1.2 - '@vercel/ncc': 0.33.4 - typescript: 4.8.4 + '@ts-schema-autogen/cli': + specifier: ^0.1.2 + version: 0.1.2 + '@vercel/ncc': + specifier: ^0.33.4 + version: 0.33.4 + typescript: + specifier: ^4.9.5 + version: 4.9.5 packages: - /@actions/core/1.10.0: + /@actions/core@1.10.0: resolution: {integrity: sha512-2aZDDa3zrrZbP5ZYg159sNoLRb61nQ7awl5pSvIq5Qpj81vwDzdMRKzkWJGJuwVvWpvZKx7vspJALyvaaIQyug==} dependencies: - '@actions/http-client': 2.0.1 + '@actions/http-client': 2.1.0 uuid: 8.3.2 dev: false - /@actions/http-client/2.0.1: - resolution: {integrity: sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==} + /@actions/http-client@2.1.0: + resolution: {integrity: sha512-BonhODnXr3amchh4qkmjPMUO8mFi/zLaaCeCAJZqch8iQqyDnVIkySjB38VHAC8IJ+bnlgfOqlhpyCUZHlQsqw==} dependencies: tunnel: 0.0.6 dev: false - /@ts-schema-autogen/cli/0.1.2: + /@ts-schema-autogen/cli@0.1.2: resolution: {integrity: sha512-61aIkJh7RDDNLCQJtp++1pL/LWlPAI9dxgWyhXycyRm4TRaTVaRBOoxTVnN0IVT+akdhWeiXkhNkCzG6Vd5zAw==} hasBin: true dependencies: '@ts-schema-autogen/main': 0.1.1 '@types/fs-extra': 8.1.2 '@types/node': 13.13.52 - '@types/yargs': 15.0.14 + '@types/yargs': 15.0.15 fs-extra: 8.1.0 tslib: 1.14.1 typescript-json-schema: 0.42.0 yargs: 15.4.1 dev: true - /@ts-schema-autogen/lib/0.1.1: + /@ts-schema-autogen/lib@0.1.1: resolution: {integrity: sha512-1oOQ9lbGnA3RVfIMiX1thvC0OEvTpvuTyLC6kwaBm8CnOBSFsxWUtoQ9ceyVe/otOqZL4SoucMmbJ3kOUnK7EQ==} dependencies: '@ts-schema-autogen/status': 0.1.1 @@ -78,7 +93,7 @@ packages: tslib: 1.14.1 dev: true - /@ts-schema-autogen/main/0.1.1: + /@ts-schema-autogen/main@0.1.1: resolution: {integrity: sha512-IC193iebvbbERdx2DGugDq97ne4Fn+zXNVqTc40QuyTbzTGBES6+DnSfI3t1e2f/jX0xGT1e6pDMN8DbdrK1Hw==} dependencies: '@ts-schema-autogen/lib': 0.1.1 @@ -91,7 +106,7 @@ packages: tslib: 1.14.1 dev: true - /@ts-schema-autogen/schemas/0.1.1: + /@ts-schema-autogen/schemas@0.1.1: resolution: {integrity: sha512-cHzhHPJsCQbZCYetSpxRcIEB17MLDOUnuxZiuZ0Yn1BRS72qMwgXqCDckMgGuf9TAsfbkBxUiOIT0C8S7FPYyw==} dependencies: '@ts-schema-autogen/types': 0.1.1 @@ -100,7 +115,7 @@ packages: tslib: 1.14.1 dev: true - /@ts-schema-autogen/status/0.1.1: + /@ts-schema-autogen/status@0.1.1: resolution: {integrity: sha512-zN5KSkk9HjrsgCRFiENYUL7K/fZvK/afQolfSDrqj3nnyuYzRazIn/i2fV5pgTrdEKG3fK/95Zznko7evtK2ow==} dependencies: '@ts-schema-autogen/types': 0.1.1 @@ -109,7 +124,7 @@ packages: tslib: 1.14.1 dev: true - /@ts-schema-autogen/types/0.1.1: + /@ts-schema-autogen/types@0.1.1: resolution: {integrity: sha512-ePh2vU49xe8Tb4gXytOFDtI/dtSVzQpT1fp5WlyS4KwADZH4Gplj5c3M9t0m7bXl07qUVw5HnF7O6G7iliQ/XQ==} dependencies: '@ts-schema-autogen/utils': 0.0.1 @@ -118,14 +133,14 @@ packages: typescript-json-schema: 0.42.0 dev: true - /@ts-schema-autogen/utils/0.0.1: + /@ts-schema-autogen/utils@0.0.1: resolution: {integrity: sha512-ASFLu03+zcRBaVAeRCTP84WvuHxmpGiksORB8QpE3nOmWC9m+f/dDRTvgTq/t3bNIYVSe1vKs4LutXX5pjhdjA==} dependencies: '@types/node': 13.13.52 tslib: 1.14.1 dev: true - /@ts-schema-autogen/validate/0.1.1: + /@ts-schema-autogen/validate@0.1.1: resolution: {integrity: sha512-5h1xEHsCBk4JZeecLATpEDvCzuQifqA6YzmlEu2C1u8zEMNpv6Y49Yw7ABDGOnam8HQVdnCG6QggKVjVE4GyJQ==} dependencies: '@ts-schema-autogen/schemas': 0.1.1 @@ -137,7 +152,7 @@ packages: tslib: 1.14.1 dev: true - /@tsfun/object/0.0.17: + /@tsfun/object@0.0.17: resolution: {integrity: sha512-H/hRAlGWkoui1ZqIX2iPSQdK07mUF7QZwIkyY5SzwBIe1jVkSRNXmHtm9WvWMuoaGCr3peCZGXphximX3DEzig==} dependencies: '@types/node': 13.13.52 @@ -145,7 +160,7 @@ packages: utility-types: 3.10.0 dev: true - /@tsfun/pipe/0.0.11: + /@tsfun/pipe@0.0.11: resolution: {integrity: sha512-jL88eyhDR/Pena+eBzY9bw8SOED9nET2QPNSgvXpz4XK9t2CBmwtu6YUPzdZCBG6RTSZoQV5VKmsXu4255qVaA==} engines: {node: '>= 8.9.0'} dependencies: @@ -154,7 +169,7 @@ packages: tslib: 1.14.1 dev: true - /@tsfun/prv-option-result-common/0.0.11: + /@tsfun/prv-option-result-common@0.0.11: resolution: {integrity: sha512-AIp2Oygr9WD12BG4p+fUEhyGtPnchRVALahzDab2eobkD2IhxRnHsKZh4J3v84faEIuXbnpdfALwGkzaOcgkPA==} engines: {node: '>= 8.9.0'} dependencies: @@ -162,14 +177,14 @@ packages: tslib: 1.14.1 dev: true - /@tsfun/prv-types/0.0.6: + /@tsfun/prv-types@0.0.6: resolution: {integrity: sha512-s97gvRX2SjGTdU+Odsi6RgsVFi+xNOx3T6Jew2mo7m7Wj6eJmM0HB0HlFPmwIIi2MtXIpSr71TZmRVcMeU3Atw==} dependencies: '@types/node': 13.13.52 tslib: 1.14.1 dev: true - /@tsfun/result/0.0.16: + /@tsfun/result@0.0.16: resolution: {integrity: sha512-lUpVISAm0RUxRdyVUuAOLBe7ArdrQkepdLz4nML0a/2/WvrDsAIn2PIdRL3eZXqqdyhS2dy+ot5E5vc/RNWOEQ==} engines: {node: '>= 8.9.0'} dependencies: @@ -180,71 +195,71 @@ packages: tslib: 1.14.1 dev: true - /@tsfun/tap/0.0.10: + /@tsfun/tap@0.0.10: resolution: {integrity: sha512-ArfW5g+1BxUXhqWOCOceiR3iviWn6PvDjOHzSBCCw3luYlVJ8JwYMcvj9ZXITBbP33uM8NKbxwzjRGGVckXLdg==} dependencies: '@types/node': 13.13.52 tslib: 1.14.1 dev: true - /@types/expand-tilde/2.0.0: + /@types/expand-tilde@2.0.0: resolution: {integrity: sha512-17h/6MRHoetV2QVUVnUfrmaFCXNIFJ3uDJmXlklX2xDtlEb1W0OXLgP+qwND2Ibg/PtQfQi0vx19KGuPayjLiw==} dev: false - /@types/fs-extra/8.1.2: + /@types/fs-extra@8.1.2: resolution: {integrity: sha512-SvSrYXfWSc7R4eqnOzbQF4TZmfpNSM9FrSWLU3EUnWBuyZqNBOrv1B1JA3byUDPUl9z4Ab3jeZG2eDdySlgNMg==} dependencies: - '@types/node': 14.18.32 + '@types/node': 14.18.54 dev: true - /@types/fs-extra/9.0.13: + /@types/fs-extra@9.0.13: resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} dependencies: - '@types/node': 14.18.32 + '@types/node': 14.18.54 dev: false - /@types/js-yaml/3.12.7: + /@types/js-yaml@3.12.7: resolution: {integrity: sha512-S6+8JAYTE1qdsc9HMVsfY7+SgSuUU/Tp6TYTmITW0PZxiyIMvol3Gy//y69Wkhs0ti4py5qgR3uZH6uz/DNzJQ==} dev: true - /@types/js-yaml/4.0.5: + /@types/js-yaml@4.0.5: resolution: {integrity: sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==} dev: false - /@types/json-schema/7.0.11: - resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} + /@types/json-schema@7.0.12: + resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} dev: true - /@types/node-fetch/2.6.2: - resolution: {integrity: sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==} + /@types/node-fetch@2.6.4: + resolution: {integrity: sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg==} dependencies: - '@types/node': 14.18.32 + '@types/node': 14.18.54 form-data: 3.0.1 dev: false - /@types/node/13.13.52: + /@types/node@13.13.52: resolution: {integrity: sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ==} dev: true - /@types/node/14.18.32: - resolution: {integrity: sha512-Y6S38pFr04yb13qqHf8uk1nHE3lXgQ30WZbv1mLliV9pt0NjvqdWttLcrOYLnXbOafknVYRHZGoMSpR9UwfYow==} + /@types/node@14.18.54: + resolution: {integrity: sha512-uq7O52wvo2Lggsx1x21tKZgqkJpvwCseBBPtX/nKQfpVlEsLOb11zZ1CRsWUKvJF0+lzuA9jwvA7Pr2Wt7i3xw==} - /@types/yargs-parser/21.0.0: + /@types/yargs-parser@21.0.0: resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} dev: true - /@types/yargs/15.0.14: - resolution: {integrity: sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==} + /@types/yargs@15.0.15: + resolution: {integrity: sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg==} dependencies: '@types/yargs-parser': 21.0.0 dev: true - /@vercel/ncc/0.33.4: + /@vercel/ncc@0.33.4: resolution: {integrity: sha512-ln18hs7dMffelP47tpkaR+V5Tj6coykNyxJrlcmCormPqRQjB/Gv4cu2FfBG+PMzIfdZp2CLDsrrB1NPU22Qhg==} hasBin: true dev: true - /ajv/6.12.6: + /ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: fast-deep-equal: 3.1.3 @@ -252,68 +267,68 @@ packages: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - /ansi-regex/4.1.1: + /ansi-regex@4.1.1: resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} engines: {node: '>=6'} dev: true - /ansi-regex/5.0.1: + /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} dev: true - /ansi-styles/3.2.1: + /ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} dependencies: color-convert: 1.9.3 dev: true - /ansi-styles/4.3.0: + /ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} dependencies: color-convert: 2.0.1 dev: true - /argparse/1.0.10: + /argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: sprintf-js: 1.0.3 dev: true - /argparse/2.0.1: + /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: false - /asynckit/0.4.0: + /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} dev: false - /balanced-match/1.0.2: + /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true - /better-path-join/0.0.1: + /better-path-join@0.0.1: resolution: {integrity: sha512-JIv4V7rh19/Hg0O5I0l8eSobC3F+aUWaL9D9QQKAKFw4Qj+whdRrlRejrYICPS2NEJ/2vsDjhKur3iFhQf49QQ==} dependencies: '@types/node': 13.13.52 tslib: 1.14.1 dev: true - /brace-expansion/1.1.11: + /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 dev: true - /camelcase/5.3.1: + /camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} dev: true - /cliui/5.0.0: + /cliui@5.0.0: resolution: {integrity: sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==} dependencies: string-width: 3.1.0 @@ -321,7 +336,7 @@ packages: wrap-ansi: 5.1.0 dev: true - /cliui/6.0.0: + /cliui@6.0.0: resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} dependencies: string-width: 4.2.3 @@ -329,97 +344,97 @@ packages: wrap-ansi: 6.2.0 dev: true - /color-convert/1.9.3: + /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 dev: true - /color-convert/2.0.1: + /color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 dev: true - /color-name/1.1.3: + /color-name@1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} dev: true - /color-name/1.1.4: + /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} dev: true - /combined-stream/1.0.8: + /combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} dependencies: delayed-stream: 1.0.0 dev: false - /concat-map/0.0.1: + /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true - /decamelize/1.2.0: + /decamelize@1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} dev: true - /delayed-stream/1.0.0: + /delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} dev: false - /emoji-regex/7.0.3: + /emoji-regex@7.0.3: resolution: {integrity: sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==} dev: true - /emoji-regex/8.0.0: + /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true - /esprima/4.0.1: + /esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true dev: true - /exec-once/0.1.8: + /exec-once@0.1.8: resolution: {integrity: sha512-zv8nmN+jF366nAEuNgOh5U2owy5MMkv+N1LCp1utCH63ujSXr92H3x2lDR+Mstm9xNmXNlo45W/Ch+TrN1jAdw==} dependencies: - '@types/node': 14.18.32 - tslib: 2.4.0 + '@types/node': 14.18.54 + tslib: 2.6.1 dev: true - /expand-tilde/2.0.2: + /expand-tilde@2.0.2: resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} engines: {node: '>=0.10.0'} dependencies: homedir-polyfill: 1.0.3 dev: false - /fast-deep-equal/3.1.3: + /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - /fast-json-stable-stringify/2.1.0: + /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - /fast-traverse/0.1.7: + /fast-traverse@0.1.7: resolution: {integrity: sha512-gZTQvJSgrGV24F8AeeTNxip8OEkjRHwDDpGw0b51TzRVGjJsKzh6CuHf9ltVjJZzni5Ead+EEQJ0IFCuoCJUtA==} dependencies: - '@types/node': 14.18.32 - tslib: 2.4.0 + '@types/node': 14.18.54 + tslib: 2.6.1 dev: true - /find-up/3.0.0: + /find-up@3.0.0: resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} engines: {node: '>=6'} dependencies: locate-path: 3.0.0 dev: true - /find-up/4.1.0: + /find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} dependencies: @@ -427,7 +442,7 @@ packages: path-exists: 4.0.0 dev: true - /form-data/3.0.1: + /form-data@3.0.1: resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} engines: {node: '>= 6'} dependencies: @@ -436,34 +451,34 @@ packages: mime-types: 2.1.35 dev: false - /fs-extra/10.1.0: + /fs-extra@10.1.0: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} dependencies: - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 jsonfile: 6.1.0 universalify: 2.0.0 dev: false - /fs-extra/8.1.0: + /fs-extra@8.1.0: resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} engines: {node: '>=6 <7 || >=8'} dependencies: - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 jsonfile: 4.0.0 universalify: 0.1.2 dev: true - /fs.realpath/1.0.0: + /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true - /get-caller-file/2.0.5: + /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} dev: true - /glob/7.1.7: + /glob@7.1.7: resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} dependencies: fs.realpath: 1.0.0 @@ -474,38 +489,38 @@ packages: path-is-absolute: 1.0.1 dev: true - /graceful-fs/4.2.10: - resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - /homedir-polyfill/1.0.3: + /homedir-polyfill@1.0.3: resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} engines: {node: '>=0.10.0'} dependencies: parse-passwd: 1.0.0 dev: false - /inflight/1.0.6: + /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: once: 1.4.0 wrappy: 1.0.2 dev: true - /inherits/2.0.4: + /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} dev: true - /is-fullwidth-code-point/2.0.0: + /is-fullwidth-code-point@2.0.0: resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} engines: {node: '>=4'} dev: true - /is-fullwidth-code-point/3.0.0: + /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} dev: true - /js-yaml/3.14.1: + /js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true dependencies: @@ -513,41 +528,41 @@ packages: esprima: 4.0.1 dev: true - /js-yaml/4.1.0: + /js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true dependencies: argparse: 2.0.1 dev: false - /json-schema-traverse/0.4.1: + /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - /json-stable-stringify/1.0.1: - resolution: {integrity: sha512-i/J297TW6xyj7sDFa7AmBPkQvLIxWr2kKPWI26tXydnZrzVAocNqn5DMNT1Mzk0vit1V5UkRM7C1KdVNp7Lmcg==} + /json-stable-stringify@1.0.2: + resolution: {integrity: sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==} dependencies: jsonify: 0.0.1 dev: true - /jsonfile/4.0.0: + /jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} optionalDependencies: - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 dev: true - /jsonfile/6.1.0: + /jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: universalify: 2.0.0 optionalDependencies: - graceful-fs: 4.2.10 + graceful-fs: 4.2.11 dev: false - /jsonify/0.0.1: + /jsonify@0.0.1: resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==} dev: true - /locate-path/3.0.0: + /locate-path@3.0.0: resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} engines: {node: '>=6'} dependencies: @@ -555,105 +570,105 @@ packages: path-exists: 3.0.0 dev: true - /locate-path/5.0.0: + /locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} dependencies: p-locate: 4.1.0 dev: true - /mime-db/1.52.0: + /mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} dev: false - /mime-types/2.1.35: + /mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 dev: false - /minimatch/3.1.2: + /minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 dev: true - /once/1.4.0: + /once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 dev: true - /p-limit/2.3.0: + /p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} dependencies: p-try: 2.2.0 dev: true - /p-locate/3.0.0: + /p-locate@3.0.0: resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} engines: {node: '>=6'} dependencies: p-limit: 2.3.0 dev: true - /p-locate/4.1.0: + /p-locate@4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} dependencies: p-limit: 2.3.0 dev: true - /p-try/2.2.0: + /p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} dev: true - /parse-passwd/1.0.0: + /parse-passwd@1.0.0: resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} engines: {node: '>=0.10.0'} dev: false - /path-exists/3.0.0: + /path-exists@3.0.0: resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} engines: {node: '>=4'} dev: true - /path-exists/4.0.0: + /path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} dev: true - /path-is-absolute/1.0.1: + /path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} dev: true - /punycode/2.1.1: - resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} + /punycode@2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} engines: {node: '>=6'} - /require-directory/2.1.1: + /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} dev: true - /require-main-filename/2.0.0: + /require-main-filename@2.0.0: resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} dev: true - /set-blocking/2.0.0: + /set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: true - /sprintf-js/1.0.3: + /sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} dev: true - /string-width/3.1.0: + /string-width@3.1.0: resolution: {integrity: sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==} engines: {node: '>=6'} dependencies: @@ -662,7 +677,7 @@ packages: strip-ansi: 5.2.0 dev: true - /string-width/4.2.3: + /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} dependencies: @@ -671,86 +686,86 @@ packages: strip-ansi: 6.0.1 dev: true - /strip-ansi/5.2.0: + /strip-ansi@5.2.0: resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} engines: {node: '>=6'} dependencies: ansi-regex: 4.1.1 dev: true - /strip-ansi/6.0.1: + /strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 dev: true - /tslib/1.14.1: + /tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tslib/2.4.0: - resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} + /tslib@2.6.1: + resolution: {integrity: sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==} dev: true - /tunnel/0.0.6: + /tunnel@0.0.6: resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} dev: false - /typescript-json-schema/0.42.0: + /typescript-json-schema@0.42.0: resolution: {integrity: sha512-9WO+lVmlph7Ecb7lPd9tU84XFUQh44kpAf3cWe/Ym4G5EKw/SS6XGpi1DZDthvxqkIdNSDlWi7FhKfxuIV/3yw==} hasBin: true dependencies: - '@types/json-schema': 7.0.11 + '@types/json-schema': 7.0.12 glob: 7.1.7 - json-stable-stringify: 1.0.1 + json-stable-stringify: 1.0.2 typescript: 3.9.10 yargs: 14.2.3 dev: true - /typescript/3.9.10: + /typescript@3.9.10: resolution: {integrity: sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==} engines: {node: '>=4.2.0'} hasBin: true dev: true - /typescript/4.8.4: - resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==} + /typescript@4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} engines: {node: '>=4.2.0'} hasBin: true dev: true - /universalify/0.1.2: + /universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} dev: true - /universalify/2.0.0: + /universalify@2.0.0: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} engines: {node: '>= 10.0.0'} dev: false - /uri-js/4.4.1: + /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: - punycode: 2.1.1 + punycode: 2.3.0 - /utility-types/3.10.0: + /utility-types@3.10.0: resolution: {integrity: sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==} engines: {node: '>= 4'} dev: true - /uuid/8.3.2: + /uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true dev: false - /which-module/2.0.0: - resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==} + /which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} dev: true - /wrap-ansi/5.1.0: + /wrap-ansi@5.1.0: resolution: {integrity: sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==} engines: {node: '>=6'} dependencies: @@ -759,7 +774,7 @@ packages: strip-ansi: 5.2.0 dev: true - /wrap-ansi/6.2.0: + /wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} engines: {node: '>=8'} dependencies: @@ -768,22 +783,22 @@ packages: strip-ansi: 6.0.1 dev: true - /wrappy/1.0.2: + /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true - /y18n/4.0.3: + /y18n@4.0.3: resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} dev: true - /yargs-parser/15.0.3: + /yargs-parser@15.0.3: resolution: {integrity: sha512-/MVEVjTXy/cGAjdtQf8dW3V9b97bPN7rNn8ETj6BmAQL7ibC7O1Q9SPJbGjgh3SlwoBNXMzj/ZGIj8mBgl12YA==} dependencies: camelcase: 5.3.1 decamelize: 1.2.0 dev: true - /yargs-parser/18.1.3: + /yargs-parser@18.1.3: resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} engines: {node: '>=6'} dependencies: @@ -791,7 +806,7 @@ packages: decamelize: 1.2.0 dev: true - /yargs/14.2.3: + /yargs@14.2.3: resolution: {integrity: sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==} dependencies: cliui: 5.0.0 @@ -802,12 +817,12 @@ packages: require-main-filename: 2.0.0 set-blocking: 2.0.0 string-width: 3.1.0 - which-module: 2.0.0 + which-module: 2.0.1 y18n: 4.0.3 yargs-parser: 15.0.3 dev: true - /yargs/15.4.1: + /yargs@15.4.1: resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} engines: {node: '>=8'} dependencies: @@ -819,7 +834,7 @@ packages: require-main-filename: 2.0.0 set-blocking: 2.0.0 string-width: 4.2.3 - which-module: 2.0.0 + which-module: 2.0.1 y18n: 4.0.3 yargs-parser: 18.1.3 dev: true diff --git a/run.sh b/run.sh index 8af79df..cda71de 100755 --- a/run.sh +++ b/run.sh @@ -4,4 +4,5 @@ export HOME="$(pwd)" export INPUT_VERSION=4.11.1 export INPUT_DEST='~/pnpm.temp' export INPUT_RUN_INSTALL=null +export INPUT_standalone=false exec node dist/index.js diff --git a/src/inputs/index.ts b/src/inputs/index.ts index 5ebfb4b..a9b705a 100644 --- a/src/inputs/index.ts +++ b/src/inputs/index.ts @@ -1,4 +1,4 @@ -import { getInput, InputOptions } from '@actions/core' +import { getBooleanInput, getInput, InputOptions } from '@actions/core' import expandTilde from 'expand-tilde' import { RunInstall, parseRunInstall } from './run-install' @@ -7,6 +7,7 @@ export interface Inputs { readonly dest: string readonly runInstall: RunInstall[] readonly packageJsonFile: string + readonly standalone: boolean } const options: InputOptions = { @@ -20,6 +21,7 @@ export const getInputs = (): Inputs => ({ dest: parseInputPath('dest'), runInstall: parseRunInstall('run_install'), packageJsonFile: parseInputPath('package_json_file'), + standalone: getBooleanInput('standalone'), }) export default getInputs diff --git a/src/install-pnpm/run.ts b/src/install-pnpm/run.ts index f3fd1f9..7a547f0 100644 --- a/src/install-pnpm/run.ts +++ b/src/install-pnpm/run.ts @@ -6,7 +6,7 @@ import { execPath } from 'process' import { Inputs } from '../inputs' export async function runSelfInstaller(inputs: Inputs): Promise { - const { version, dest, packageJsonFile } = inputs + const { version, dest, packageJsonFile, standalone } = inputs // prepare self install await remove(dest) @@ -15,7 +15,7 @@ export async function runSelfInstaller(inputs: Inputs): Promise { await writeFile(pkgJson, JSON.stringify({ private: true })) // prepare target pnpm - const target = await readTarget(packageJsonFile, version) + const target = await readTarget({ version, packageJsonFile, standalone }) const cp = spawn(execPath, [path.join(__dirname, 'pnpm.js'), 'install', target, '--no-lockfile'], { cwd: dest, stdio: ['pipe', 'inherit', 'inherit'], @@ -33,8 +33,14 @@ export async function runSelfInstaller(inputs: Inputs): Promise { return exitCode } -async function readTarget(packageJsonFile: string, version?: string | undefined) { - if (version) return `pnpm@${version}` +async function readTarget(opts: { + readonly version?: string | undefined + readonly packageJsonFile: string + readonly standalone: boolean +}) { + const { version, packageJsonFile, standalone } = opts + + if (version) return `${ standalone ? '@pnpm/exe' : 'pnpm' }@${version}` const { GITHUB_WORKSPACE } = process.env if (!GITHUB_WORKSPACE) { @@ -55,6 +61,11 @@ Please specify it by one of the following ways: if (!packageManager.startsWith('pnpm@')) { throw new Error('Invalid packageManager field in package.json') } + + if(standalone){ + return packageManager.replace('pnpm@', '@pnpm/exe@') + } + return packageManager }