New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@botpress/cli

Package Overview
Dependencies
Maintainers
6
Versions
228
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@botpress/cli - npm Package Compare versions

Comparing version 0.4.4 to 0.4.5

dist/utils/pkgjson-utils.js

55

dist/command-implementations/global-command.js

@@ -31,6 +31,4 @@ "use strict";

var import_chalk = __toESM(require("chalk"));
var import_fs = __toESM(require("fs"));
var import_latest_version = __toESM(require("latest-version"));
var import_lodash = __toESM(require("lodash"));
var pathlib = __toESM(require("path"));
var import_semver = __toESM(require("semver"));

@@ -52,11 +50,6 @@ var consts = __toESM(require("../consts"));

}
const UPDATE_MSG = (props) => `${import_chalk.default.bold("Update available")} ${import_chalk.default.dim(props.version)} \u2192 ${import_chalk.default.green(props.latest)}
To update, run:
for npm ${import_chalk.default.cyan(`npm i -g ${props.name}`)}
for yarn ${import_chalk.default.cyan(`yarn global add ${props.name}`)}
for pnpm ${import_chalk.default.cyan(`pnpm i -g ${props.name}`)}`;
class GlobalCommand extends import_base_command.BaseCommand {
api;
prompt;
_pkgJson;
constructor(api, prompt, ...args) {

@@ -73,7 +66,7 @@ super(...args);

}
bootstrap = async () => {
const pkgJson = await this._readPackageJson();
async bootstrap() {
const pkgJson = await this.readPkgJson();
const versionText = import_chalk.default.bold(`v${pkgJson.version}`);
this.logger.log(`Botpress CLI ${versionText}`, { prefix: "\u{1F916}" });
await this._notifyUpdate(pkgJson);
await this._notifyUpdateCli();
const paths = this.globalPaths;

@@ -83,3 +76,3 @@ if (paths.abs.botpressHomeDir !== consts.defaultBotpressHome) {

}
};
}
teardown = async () => {

@@ -98,20 +91,40 @@ this.logger.cleanup();

}
_notifyUpdate = async (pkgJson) => {
_notifyUpdateCli = async () => {
try {
this.logger.debug("Checking if cli is up to date");
const pkgJson = await this.readPkgJson();
if (!pkgJson.version) {
throw new errors.BotpressCLIError("Could not find version in package.json");
}
const latest = await (0, import_latest_version.default)(pkgJson.name);
const isOutdated = import_semver.default.lt(pkgJson.version, latest);
if (isOutdated) {
this.logger.box(UPDATE_MSG({ ...pkgJson, latest }));
this.logger.box(
[
`${import_chalk.default.bold("Update available")} ${import_chalk.default.dim(pkgJson.version)} \u2192 ${import_chalk.default.green(latest)}`,
"",
"To update, run:",
` for npm ${import_chalk.default.cyan(`npm i -g ${pkgJson.name}`)}`,
` for yarn ${import_chalk.default.cyan(`yarn global add ${pkgJson.name}`)}`,
` for pnpm ${import_chalk.default.cyan(`pnpm i -g ${pkgJson.name}`)}`
].join("\n")
);
}
} catch (thrown) {
const err = errors.BotpressCLIError.map(thrown);
this.logger.debug(`Failed to check for updates: ${err.message}`);
this.logger.debug(`Failed to check if cli is up to date: ${err.message}`);
}
};
_readPackageJson = async () => {
const path = pathlib.join(this.globalPaths.abs.cliRootDir, "package.json");
const strContent = await import_fs.default.promises.readFile(path, "utf8");
const jsonContent = JSON.parse(strContent);
return jsonContent;
};
async readPkgJson() {
if (this._pkgJson) {
return this._pkgJson;
}
const { cliRootDir } = this.globalPaths.abs;
const pkgJson = await utils.pkgJson.readPackageJson(cliRootDir);
if (!pkgJson) {
throw new errors.BotpressCLIError(`Could not find package.json at "${cliRootDir}"`);
}
this._pkgJson = pkgJson;
return pkgJson;
}
}

@@ -118,0 +131,0 @@ // Annotate the CommonJS export names for ESM import in node:

@@ -35,2 +35,3 @@ "use strict";

var import_path = __toESM(require("path"));
var import_semver = __toESM(require("semver"));
var codegen = __toESM(require("../code-generation"));

@@ -57,2 +58,6 @@ var consts = __toESM(require("../consts"));

class ProjectCommand extends import_global_command.GlobalCommand {
async bootstrap() {
await super.bootstrap();
await this._notifyUpdateSdk();
}
get projectPaths() {

@@ -243,2 +248,52 @@ return new ProjectPaths(this.argv);

};
_notifyUpdateSdk = async () => {
try {
this.logger.debug("Checking if sdk is up to date");
const { workDir } = this.projectPaths.abs;
const projectPkgJson = await utils.pkgJson.readPackageJson(workDir);
if (!projectPkgJson) {
this.logger.debug(`Could not find package.json at "${workDir}"`);
return;
}
const sdkPackageName = "@botpress/sdk";
const actualSdkVersion = utils.pkgJson.findDependency(projectPkgJson, sdkPackageName);
if (!actualSdkVersion) {
this.logger.debug(`Could not find dependency "${sdkPackageName}" in project package.json`);
return;
}
const actualCleanedSdkVersion = import_semver.default.valid(import_semver.default.coerce(actualSdkVersion));
if (!actualCleanedSdkVersion) {
this.logger.debug(`Invalid sdk version "${actualSdkVersion}" in project package.json`);
return;
}
const cliPkgJson = await this.readPkgJson();
const expectedSdkVersion = utils.pkgJson.findDependency(cliPkgJson, sdkPackageName);
if (!expectedSdkVersion) {
this.logger.debug(`Could not find dependency "${sdkPackageName}" in cli package.json`);
return;
}
const expectedCleanedSdkVersion = import_semver.default.valid(import_semver.default.coerce(expectedSdkVersion));
if (!expectedCleanedSdkVersion) {
this.logger.debug(`Invalid sdk version "${expectedSdkVersion}" in cli package.json`);
return;
}
if (import_semver.default.eq(actualCleanedSdkVersion, expectedCleanedSdkVersion)) {
return;
}
const diff = import_semver.default.diff(actualCleanedSdkVersion, expectedCleanedSdkVersion);
if (!diff) {
this.logger.debug(`Could not compare versions "${actualCleanedSdkVersion}" and "${expectedCleanedSdkVersion}"`);
return;
}
const errorMsg = `Project SDK version is "${actualCleanedSdkVersion}", but expected "${expectedCleanedSdkVersion}"`;
if (utils.semver.releases.lt(diff, "minor")) {
this.logger.debug(`${errorMsg}. This may cause compatibility issues.`);
return;
}
this.logger.warn(import_chalk.default.bold(`${errorMsg}. This will cause compatibility issues.`));
} catch (thrown) {
const err = errors.BotpressCLIError.map(thrown);
this.logger.debug(`Failed to check if sdk is up to date: ${err.message}`);
}
};
}

@@ -245,0 +300,0 @@ // Annotate the CommonJS export names for ESM import in node:

@@ -55,3 +55,2 @@ "use strict";

const fromCliRootDir = {
packageJson: "package.json",
echoBotTemplate: import_path.default.join("templates", echoBotDirName),

@@ -58,0 +57,0 @@ emptyIntegrationTemplate: import_path.default.join("templates", emptyIntegrationDirName)

@@ -31,3 +31,4 @@ "use strict";

var utils = __toESM(require("./utils"));
const CLI_ROOT_DIR = utils.path.join(__dirname, "..");
const SRC_DIR = __dirname;
const CLI_ROOT_DIR = utils.path.join(SRC_DIR, "..");
// Annotate the CommonJS export names for ESM import in node:

@@ -34,0 +35,0 @@ 0 && (module.exports = {

@@ -34,2 +34,3 @@ "use strict";

path: () => path,
pkgJson: () => pkgJson,
prompt: () => prompt,

@@ -39,2 +40,3 @@ records: () => records,

schema: () => schema,
semver: () => semver,
tunnel: () => tunnel,

@@ -45,16 +47,18 @@ types: () => types,

module.exports = __toCommonJS(utils_exports);
var cache = __toESM(require("./cache-utils"));
var casing = __toESM(require("./case-utils"));
var emitter = __toESM(require("./event-emitter"));
var esbuild = __toESM(require("./esbuild-utils"));
var filewatcher = __toESM(require("./file-watcher"));
var guards = __toESM(require("./guard-utils"));
var path = __toESM(require("./path-utils"));
var require2 = __toESM(require("./require-utils"));
var filewatcher = __toESM(require("./file-watcher"));
var emitter = __toESM(require("./event-emitter"));
var cache = __toESM(require("./cache-utils"));
var casing = __toESM(require("./case-utils"));
var pkgJson = __toESM(require("./pkgjson-utils"));
var prompt = __toESM(require("./prompt-utils"));
var records = __toESM(require("./record-utils"));
var url = __toESM(require("./url-utils"));
var require2 = __toESM(require("./require-utils"));
var schema = __toESM(require("./schema-utils"));
var semver = __toESM(require("./semver-utils"));
var tunnel = __toESM(require("./tunnel-utils"));
var schema = __toESM(require("./schema-utils"));
var types = __toESM(require("./type-utils"));
var guards = __toESM(require("./guard-utils"));
var url = __toESM(require("./url-utils"));
// Annotate the CommonJS export names for ESM import in node:

@@ -69,2 +73,3 @@ 0 && (module.exports = {

path,
pkgJson,
prompt,

@@ -74,2 +79,3 @@ records,

schema,
semver,
tunnel,

@@ -76,0 +82,0 @@ types,

{
"name": "@botpress/cli",
"version": "0.4.4",
"version": "0.4.5",
"description": "Botpress CLI",

@@ -23,3 +23,3 @@ "scripts": {

"dependencies": {
"@botpress/client": "0.3.8",
"@botpress/client": "0.4.0",
"@bpinternal/tunnel": "^0.1.0",

@@ -51,3 +51,3 @@ "@bpinternal/yargs-extra": "^0.0.3",

"devDependencies": {
"@botpress/sdk": "0.4.4",
"@botpress/sdk": "0.4.5",
"@bpinternal/log4bot": "^0.0.4",

@@ -54,0 +54,0 @@ "@types/bluebird": "^3.5.38",

@@ -11,4 +11,4 @@ {

"dependencies": {
"@botpress/client": "0.3.8",
"@botpress/sdk": "0.4.4",
"@botpress/client": "0.4.0",
"@botpress/sdk": "0.4.5",
"zod": "^3.20.6"

@@ -15,0 +15,0 @@ },

@@ -11,4 +11,4 @@ {

"dependencies": {
"@botpress/client": "0.3.8",
"@botpress/sdk": "0.4.4",
"@botpress/client": "0.4.0",
"@botpress/sdk": "0.4.5",
"zod": "^3.20.6"

@@ -15,0 +15,0 @@ },

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc