@mytegroupinc/myte-core 0.0.56 → 0.0.57

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/mytecody-cli.js CHANGED
@@ -8,11 +8,17 @@ const crypto = require("crypto");
8
8
  const zlib = require("zlib");
9
9
  const { spawn } = require("child_process");
10
10
  const readline = require("readline");
11
- const {
12
- DEFAULT_MYTEAI_BASE,
13
- normalizeMyteAiBase,
14
- } = require("./lib/ai-gateway");
15
- const { createMyteSplash } = require("./lib/mytecody-splash");
11
+ const {
12
+ DEFAULT_MYTEAI_BASE,
13
+ normalizeMyteAiBase,
14
+ } = require("./lib/ai-gateway");
15
+ const { createMyteSplash } = require("./lib/mytecody-splash");
16
+ const {
17
+ checkPackageUpdate: checkSharedPackageUpdate,
18
+ isVersionNewer,
19
+ packageStatusBase: buildPackageStatusBase,
20
+ packageUpdateNotice,
21
+ } = require("./lib/package-update-check");
16
22
 
17
23
  const PACKAGE_NAME = "myte";
18
24
  const PACKAGE_VERSION = require("./package.json").version;
@@ -474,93 +480,45 @@ function packageLatestUrl(args = {}) {
474
480
  );
475
481
  }
476
482
 
477
- function packageUpdateCheckEnabled(args = {}) {
478
- if (args["package-update-check"] === false) return false;
479
- return process.env.MYTE_CODY_PACKAGE_UPDATE_CHECK !== "0";
480
- }
481
-
482
- function packageStatusBase(args = {}) {
483
- return {
484
- name: PACKAGE_NAME,
485
- installed_version: PACKAGE_VERSION,
486
- latest_version: null,
487
- update_available: null,
488
- check_status: "not-checked",
489
- latest_url: packageLatestUrl(args),
490
- update_command: `npm install -g ${PACKAGE_NAME}@latest`,
491
- engine_update_command: "mytecody update",
492
- };
493
- }
494
-
495
- function parseSemverish(version) {
496
- const main = String(version || "")
497
- .trim()
498
- .replace(/^v/i, "")
499
- .split(/[+-]/)[0];
500
- const match = main.match(/^(\d+)(?:\.(\d+))?(?:\.(\d+))?/);
501
- if (!match) return null;
502
- return [match[1], match[2] || "0", match[3] || "0"].map((part) => Number(part));
503
- }
504
-
505
- function compareSemverish(left, right) {
506
- const leftParts = parseSemverish(left);
507
- const rightParts = parseSemverish(right);
508
- if (!leftParts || !rightParts) return String(left || "").localeCompare(String(right || ""));
509
- for (let i = 0; i < 3; i += 1) {
510
- if (leftParts[i] > rightParts[i]) return 1;
511
- if (leftParts[i] < rightParts[i]) return -1;
512
- }
513
- return 0;
514
- }
515
-
516
- function isVersionNewer(latest, installed = PACKAGE_VERSION) {
517
- return compareSemverish(latest, installed) > 0;
518
- }
483
+ function packageUpdateCheckEnabled(args = {}) {
484
+ if (args["package-update-check"] === false || args["update-check"] === false) return false;
485
+ return process.env.MYTE_CODY_PACKAGE_UPDATE_CHECK !== "0";
486
+ }
487
+
488
+ function packageStatusBase(args = {}) {
489
+ return {
490
+ ...buildPackageStatusBase({
491
+ packageName: PACKAGE_NAME,
492
+ installedVersion: PACKAGE_VERSION,
493
+ latestUrl: packageLatestUrl(args),
494
+ updateCommand: `npm install -g ${PACKAGE_NAME}@latest`,
495
+ }),
496
+ engine_update_command: "mytecody update",
497
+ };
498
+ }
519
499
 
520
500
  function packageUpdateTimeoutMs() {
521
501
  const value = Number(process.env.MYTE_CODY_PACKAGE_UPDATE_TIMEOUT_MS || 1500);
522
502
  return Number.isFinite(value) && value > 0 ? value : 1500;
523
503
  }
524
504
 
525
- async function checkPackageUpdate(args = {}) {
526
- const status = packageStatusBase(args);
527
- if (!packageUpdateCheckEnabled(args)) {
528
- return { ...status, check_status: "skipped" };
529
- }
530
- try {
531
- const response = await fetchJson(status.latest_url, {
532
- timeoutMs: packageUpdateTimeoutMs(),
533
- });
534
- if (!response.ok) {
535
- return {
536
- ...status,
537
- check_status: "unavailable",
538
- registry_status: response.status,
539
- };
540
- }
541
- const latestVersion = response.body && response.body.version ? String(response.body.version) : "";
542
- if (!latestVersion) {
543
- return { ...status, check_status: "invalid-response" };
544
- }
545
- return {
546
- ...status,
547
- latest_version: latestVersion,
548
- update_available: isVersionNewer(latestVersion, PACKAGE_VERSION),
549
- check_status: "ok",
550
- };
551
- } catch (error) {
552
- return {
553
- ...status,
554
- check_status: "unavailable",
555
- error: error && error.message ? error.message : String(error),
556
- };
557
- }
558
- }
559
-
560
- function packageUpdateNotice(packageStatus) {
561
- if (!packageStatus || packageStatus.update_available !== true) return "";
562
- return `myte package update available: ${packageStatus.latest_version} (installed ${packageStatus.installed_version}). Run ${packageStatus.update_command}`;
563
- }
505
+ async function checkPackageUpdate(args = {}) {
506
+ return checkSharedPackageUpdate({
507
+ packageName: PACKAGE_NAME,
508
+ installedVersion: PACKAGE_VERSION,
509
+ latestUrl: packageLatestUrl(args),
510
+ updateCommand: `npm install -g ${PACKAGE_NAME}@latest`,
511
+ enabled: packageUpdateCheckEnabled(args),
512
+ timeoutMs: packageUpdateTimeoutMs(),
513
+ cacheDir: args["package-cache-dir"] === false
514
+ ? false
515
+ : process.env.MYTE_PACKAGE_UPDATE_CACHE_DIR || undefined,
516
+ fetchJson,
517
+ }).then((status) => ({
518
+ ...status,
519
+ engine_update_command: "mytecody update",
520
+ }));
521
+ }
564
522
 
565
523
  function printJson(payload) {
566
524
  console.log(JSON.stringify(payload, null, 2));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mytegroupinc/myte-core",
3
- "version": "0.0.56",
3
+ "version": "0.0.57",
4
4
  "description": "Myte CLI core implementation.",
5
5
  "type": "commonjs",
6
6
  "main": "cli.js",