diff --git a/Dockerfile b/Dockerfile index 7213d028..12affd7e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,6 +2,8 @@ FROM node:24-bookworm-slim RUN apt-get update && apt-get install -y jq && rm -rf /var/lib/apt/lists/* +ENV INXT_RUNTIME=docker + WORKDIR /app COPY . . diff --git a/README.md b/README.md index 453e1dfb..6817f401 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,12 @@ Requires Node >= 22.13.0 [View Internxt CLI latest release here](https://www.npmjs.com/package/@internxt/cli) +## Updating + +The CLI checks npm for a newer version once a day and prints a notice when one is available. To update: + +`npm i -g @internxt/cli@latest` + # Usage diff --git a/package-lock.json b/package-lock.json index f3b61c51..ac30e8d4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,7 @@ "@internxt/sdk": "1.24.0", "@oclif/core": "5.1.9", "@oclif/plugin-autocomplete": "4.0.4", + "@oclif/plugin-warn-if-update-available": "4.0.5", "axios": "1.21.0", "better-sqlite3": "12.11.1", "bip39": "3.1.2", @@ -2575,18 +2576,17 @@ } }, "node_modules/@oclif/plugin-warn-if-update-available": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@oclif/plugin-warn-if-update-available/-/plugin-warn-if-update-available-4.0.0.tgz", - "integrity": "sha512-F6VnIkO3xBEawTuaOjWQIOsOePZL3s4vDVbBqQgC+NYU+oBnFaJoGB8mJ+mtpdo/7H0lQ1YsKsMwCNb7EbsIZg==", - "dev": true, + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@oclif/plugin-warn-if-update-available/-/plugin-warn-if-update-available-4.0.5.tgz", + "integrity": "sha512-zbfnLiYcIOuplVpASnYvMbU7zFbYNO86MDbLNjz2s18ofXcSFaV4U/jx3mBNj6rqW9DMP17UY8mseovdBfRFyA==", "license": "MIT", "dependencies": { - "@oclif/core": "^5.0.0", + "@oclif/core": "^5.1.8", "ansis": "^3.17.0", "debug": "^4.4.3", - "http-call": "^5.2.2", "lodash": "^4.18.1", - "registry-auth-token": "^5.1.1" + "registry-auth-token": "^5.1.1", + "undici": "^7.16.0" }, "engines": { "node": ">=22.0.0" @@ -2837,7 +2837,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", - "dev": true, "license": "MIT", "engines": { "node": ">=12.22.0" @@ -2847,7 +2846,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", - "dev": true, "license": "MIT", "dependencies": { "graceful-fs": "4.2.10" @@ -2860,14 +2858,12 @@ "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true, "license": "ISC" }, "node_modules/@pnpm/npm-conf": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-3.0.3.tgz", "integrity": "sha512-//0sR/cow/s4ICQaYoAobOl4aU8cjU6x/V24V7XkKotb9+O+3zySIYp146vpaobYHnxa4pZX8NkV54Z5AwbDKA==", - "dev": true, "license": "MIT", "dependencies": { "@pnpm/config.env-replace": "^1.1.0", @@ -4862,7 +4858,6 @@ "version": "1.1.13", "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", - "dev": true, "license": "MIT", "dependencies": { "ini": "^1.3.4", @@ -5284,16 +5279,6 @@ "once": "^1.4.0" } }, - "node_modules/error-ex": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", - "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, "node_modules/es-define-property": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", @@ -6404,34 +6389,6 @@ "dev": true, "license": "BSD-2-Clause" }, - "node_modules/http-call": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/http-call/-/http-call-5.3.0.tgz", - "integrity": "sha512-ahwimsC23ICE4kPl9xTBjKB4inbRaeLyZeRunC/1Jy/Z6X8tv22MEAjK+KBOMSVLaqXPTTmd8638waVIKLGx2w==", - "dev": true, - "license": "ISC", - "dependencies": { - "content-type": "^1.0.4", - "debug": "^4.1.1", - "is-retry-allowed": "^1.1.0", - "is-stream": "^2.0.0", - "parse-json": "^4.0.0", - "tunnel-agent": "^0.6.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-call/node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/http-errors": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", @@ -6608,13 +6565,6 @@ "node": ">= 0.10" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true, - "license": "MIT" - }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -6709,16 +6659,6 @@ "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", "license": "MIT" }, - "node_modules/is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", @@ -6839,13 +6779,6 @@ "dev": true, "license": "MIT" }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true, - "license": "MIT" - }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -8131,20 +8064,6 @@ "tslib": "^2.0.3" } }, - "node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "dev": true, - "license": "MIT", - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -8498,7 +8417,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", - "dev": true, "license": "ISC" }, "node_modules/proxy-addr": { @@ -8712,7 +8630,6 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.1.1.tgz", "integrity": "sha512-P7B4+jq8DeD2nMsAcdfaqHbssgHtZ7Z5+++a5ask90fvmJ8p5je4mOa+wzu+DB4vQ5tdJV/xywY+UnVFeQLV5Q==", - "dev": true, "license": "MIT", "dependencies": { "@pnpm/npm-conf": "^3.0.2" diff --git a/package.json b/package.json index 6fd53cdf..243dd67a 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,7 @@ "@internxt/sdk": "1.24.0", "@oclif/core": "5.1.9", "@oclif/plugin-autocomplete": "4.0.4", + "@oclif/plugin-warn-if-update-available": "4.0.5", "axios": "1.21.0", "better-sqlite3": "12.11.1", "bip39": "3.1.2", @@ -105,8 +106,16 @@ "dirname": "internxt-cli", "commands": "./dist/commands", "plugins": [ - "@oclif/plugin-autocomplete" + "@oclif/plugin-autocomplete", + "@oclif/plugin-warn-if-update-available" ], + "warn-if-update-available": { + "timeoutInDays": 1, + "frequency": 6, + "frequencyUnit": "hours", + "registry": "https://registry.npmjs.org", + "message": "<% if (process.env.INXT_RUNTIME === 'docker') { %>A new version of the Internxt CLI is available: <%= config.version %> → <%= latest %>. Pull the latest image with: docker pull internxt/webdav:latest<% } else { %>A new version of the Internxt CLI is available: <%= chalk.yellow(config.version) %> → <%= chalk.greenBright(latest) %>. Update with: npm install -g @internxt/cli@latest<% } %>" + }, "topicSeparator": " ", "topics": {}, "hooks": {