@hot-updater/cli-tools 0.35.11 → 0.36.0

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.
Files changed (2) hide show
  1. package/dist/index.mjs +147 -387
  2. package/package.json +6 -10
package/dist/index.mjs CHANGED
@@ -36,7 +36,7 @@ import { parseSync } from "oxc-parser";
36
36
  import { loadConfig as loadConfig$1 } from "unconfig";
37
37
  import { brotliDecompressSync, createBrotliCompress as createBrotliCompress$1 } from "node:zlib";
38
38
  import { getManifestFileHash, stripBundleArtifactMetadata } from "@hot-updater/core";
39
- import { createUUIDv7, detectCompressionFormat } from "@hot-updater/plugin-core";
39
+ import { createBundleStorageKey, createStorageRootUriWithPath, createUUIDv7, detectCompressionFormat, getContentAddressedAssetStoragePath, getManifestAssetDownloadPath, resolveManifestAssetStorageUri } from "@hot-updater/plugin-core";
40
40
  import { transformSync } from "oxc-transform";
41
41
  //#endregion
42
42
  //#region src/colors.ts
@@ -1224,7 +1224,7 @@ var require_expand = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1224
1224
  }));
1225
1225
  //#endregion
1226
1226
  //#region ../../node_modules/.pnpm/braces@3.0.3/node_modules/braces/lib/constants.js
1227
- var require_constants$4 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1227
+ var require_constants$3 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1228
1228
  module.exports = {
1229
1229
  MAX_LENGTH: 1e4,
1230
1230
  CHAR_0: "0",
@@ -1280,7 +1280,7 @@ var require_parse$3 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1280
1280
  /**
1281
1281
  * Constants
1282
1282
  */
1283
- const { MAX_LENGTH, CHAR_BACKSLASH, CHAR_BACKTICK, CHAR_COMMA, CHAR_DOT, CHAR_LEFT_PARENTHESES, CHAR_RIGHT_PARENTHESES, CHAR_LEFT_CURLY_BRACE, CHAR_RIGHT_CURLY_BRACE, CHAR_LEFT_SQUARE_BRACKET, CHAR_RIGHT_SQUARE_BRACKET, CHAR_DOUBLE_QUOTE, CHAR_SINGLE_QUOTE, CHAR_NO_BREAK_SPACE, CHAR_ZERO_WIDTH_NOBREAK_SPACE } = require_constants$4();
1283
+ const { MAX_LENGTH, CHAR_BACKSLASH, CHAR_BACKTICK, CHAR_COMMA, CHAR_DOT, CHAR_LEFT_PARENTHESES, CHAR_RIGHT_PARENTHESES, CHAR_LEFT_CURLY_BRACE, CHAR_RIGHT_CURLY_BRACE, CHAR_LEFT_SQUARE_BRACKET, CHAR_RIGHT_SQUARE_BRACKET, CHAR_DOUBLE_QUOTE, CHAR_SINGLE_QUOTE, CHAR_NO_BREAK_SPACE, CHAR_ZERO_WIDTH_NOBREAK_SPACE } = require_constants$3();
1284
1284
  /**
1285
1285
  * parse
1286
1286
  */
@@ -1689,7 +1689,7 @@ var require_braces = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1689
1689
  }));
1690
1690
  //#endregion
1691
1691
  //#region ../../node_modules/.pnpm/picomatch@2.3.2/node_modules/picomatch/lib/constants.js
1692
- var require_constants$3 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1692
+ var require_constants$2 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1693
1693
  const path$13 = __require("path");
1694
1694
  const WIN_SLASH = "\\\\/";
1695
1695
  const WIN_NO_SLASH = `[^${WIN_SLASH}]`;
@@ -1855,7 +1855,7 @@ var require_constants$3 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1855
1855
  var require_utils$4 = /* @__PURE__ */ __commonJSMin(((exports) => {
1856
1856
  const path$12 = __require("path");
1857
1857
  const win32 = process.platform === "win32";
1858
- const { REGEX_BACKSLASH, REGEX_REMOVE_BACKSLASH, REGEX_SPECIAL_CHARS, REGEX_SPECIAL_CHARS_GLOBAL } = require_constants$3();
1858
+ const { REGEX_BACKSLASH, REGEX_REMOVE_BACKSLASH, REGEX_SPECIAL_CHARS, REGEX_SPECIAL_CHARS_GLOBAL } = require_constants$2();
1859
1859
  exports.isObject = (val) => val !== null && typeof val === "object" && !Array.isArray(val);
1860
1860
  exports.hasRegexChars = (str) => REGEX_SPECIAL_CHARS.test(str);
1861
1861
  exports.isRegexChar = (str) => str.length === 1 && exports.hasRegexChars(str);
@@ -1899,7 +1899,7 @@ var require_utils$4 = /* @__PURE__ */ __commonJSMin(((exports) => {
1899
1899
  //#region ../../node_modules/.pnpm/picomatch@2.3.2/node_modules/picomatch/lib/scan.js
1900
1900
  var require_scan = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1901
1901
  const utils = require_utils$4();
1902
- const { CHAR_ASTERISK, CHAR_AT, CHAR_BACKWARD_SLASH, CHAR_COMMA, CHAR_DOT, CHAR_EXCLAMATION_MARK, CHAR_FORWARD_SLASH, CHAR_LEFT_CURLY_BRACE, CHAR_LEFT_PARENTHESES, CHAR_LEFT_SQUARE_BRACKET, CHAR_PLUS, CHAR_QUESTION_MARK, CHAR_RIGHT_CURLY_BRACE, CHAR_RIGHT_PARENTHESES, CHAR_RIGHT_SQUARE_BRACKET } = require_constants$3();
1902
+ const { CHAR_ASTERISK, CHAR_AT, CHAR_BACKWARD_SLASH, CHAR_COMMA, CHAR_DOT, CHAR_EXCLAMATION_MARK, CHAR_FORWARD_SLASH, CHAR_LEFT_CURLY_BRACE, CHAR_LEFT_PARENTHESES, CHAR_LEFT_SQUARE_BRACKET, CHAR_PLUS, CHAR_QUESTION_MARK, CHAR_RIGHT_CURLY_BRACE, CHAR_RIGHT_PARENTHESES, CHAR_RIGHT_SQUARE_BRACKET } = require_constants$2();
1903
1903
  const isPathSeparator = (code) => {
1904
1904
  return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH;
1905
1905
  };
@@ -2185,7 +2185,7 @@ var require_scan = /* @__PURE__ */ __commonJSMin(((exports, module) => {
2185
2185
  //#endregion
2186
2186
  //#region ../../node_modules/.pnpm/picomatch@2.3.2/node_modules/picomatch/lib/parse.js
2187
2187
  var require_parse$2 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
2188
- const constants = require_constants$3();
2188
+ const constants = require_constants$2();
2189
2189
  const utils = require_utils$4();
2190
2190
  /**
2191
2191
  * Constants
@@ -3247,7 +3247,7 @@ var require_picomatch$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
3247
3247
  const scan = require_scan();
3248
3248
  const parse = require_parse$2();
3249
3249
  const utils = require_utils$4();
3250
- const constants = require_constants$3();
3250
+ const constants = require_constants$2();
3251
3251
  const isObject = (val) => val && typeof val === "object" && !Array.isArray(val);
3252
3252
  /**
3253
3253
  * Creates a matcher function from one or more glob patterns. The
@@ -4518,7 +4518,7 @@ var require_run_parallel = /* @__PURE__ */ __commonJSMin(((exports, module) => {
4518
4518
  }));
4519
4519
  //#endregion
4520
4520
  //#region ../../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/constants.js
4521
- var require_constants$2 = /* @__PURE__ */ __commonJSMin(((exports) => {
4521
+ var require_constants$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
4522
4522
  Object.defineProperty(exports, "__esModule", { value: true });
4523
4523
  exports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = void 0;
4524
4524
  const NODE_PROCESS_VERSION_PARTS = process.versions.node.split(".");
@@ -4581,7 +4581,7 @@ var require_async$4 = /* @__PURE__ */ __commonJSMin(((exports) => {
4581
4581
  exports.readdir = exports.readdirWithFileTypes = exports.read = void 0;
4582
4582
  const fsStat = require_out$3();
4583
4583
  const rpl = require_run_parallel();
4584
- const constants_1 = require_constants$2();
4584
+ const constants_1 = require_constants$1();
4585
4585
  const utils = require_utils$2();
4586
4586
  const common = require_common$3();
4587
4587
  function read(directory, settings, callback) {
@@ -4683,7 +4683,7 @@ var require_sync$4 = /* @__PURE__ */ __commonJSMin(((exports) => {
4683
4683
  Object.defineProperty(exports, "__esModule", { value: true });
4684
4684
  exports.readdir = exports.readdirWithFileTypes = exports.read = void 0;
4685
4685
  const fsStat = require_out$3();
4686
- const constants_1 = require_constants$2();
4686
+ const constants_1 = require_constants$1();
4687
4687
  const utils = require_utils$2();
4688
4688
  const common = require_common$3();
4689
4689
  function read(directory, settings) {
@@ -24618,8 +24618,8 @@ var ConfigBuilder = class {
24618
24618
  this.storageInfo = storageConfig;
24619
24619
  this.addImports(storageConfig.imports);
24620
24620
  if (storageConfig.imports.some((imp) => imp.pkg.includes("firebase"))) this.addImport({
24621
- pkg: "firebase-admin",
24622
- defaultOrNamespace: "admin"
24621
+ pkg: "firebase-admin/app",
24622
+ named: ["applicationDefault"]
24623
24623
  });
24624
24624
  return this;
24625
24625
  }
@@ -24627,8 +24627,8 @@ var ConfigBuilder = class {
24627
24627
  this.databaseInfo = databaseConfig;
24628
24628
  this.addImports(databaseConfig.imports);
24629
24629
  if (databaseConfig.imports.some((imp) => imp.pkg.includes("firebase"))) this.addImport({
24630
- pkg: "firebase-admin",
24631
- defaultOrNamespace: "admin"
24630
+ pkg: "firebase-admin/app",
24631
+ named: ["applicationDefault"]
24632
24632
  });
24633
24633
  return this;
24634
24634
  }
@@ -34868,7 +34868,7 @@ var require_inflate$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
34868
34868
  }));
34869
34869
  //#endregion
34870
34870
  //#region ../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/constants.js
34871
- var require_constants$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
34871
+ var require_constants = /* @__PURE__ */ __commonJSMin(((exports, module) => {
34872
34872
  module.exports = {
34873
34873
  Z_NO_FLUSH: 0,
34874
34874
  Z_PARTIAL_FLUSH: 1,
@@ -34922,7 +34922,7 @@ var require_inflate = /* @__PURE__ */ __commonJSMin(((exports) => {
34922
34922
  var zlib_inflate = require_inflate$1();
34923
34923
  var utils = require_common();
34924
34924
  var strings = require_strings();
34925
- var c = require_constants$1();
34925
+ var c = require_constants();
34926
34926
  var msg = require_messages();
34927
34927
  var ZStream = require_zstream();
34928
34928
  var GZheader = require_gzheader();
@@ -35222,7 +35222,7 @@ var require_pako = /* @__PURE__ */ __commonJSMin(((exports, module) => {
35222
35222
  var assign = require_common().assign;
35223
35223
  var deflate = require_deflate();
35224
35224
  var inflate = require_inflate();
35225
- var constants = require_constants$1();
35225
+ var constants = require_constants();
35226
35226
  var pako = {};
35227
35227
  assign(pako, deflate, inflate, constants);
35228
35228
  module.exports = pako;
@@ -42859,357 +42859,104 @@ function getAndroidSdkPath() {
42859
42859
  return sdkRoot;
42860
42860
  }
42861
42861
  //#endregion
42862
- //#region ../../node_modules/.pnpm/semver@7.8.4/node_modules/semver/internal/debug.js
42863
- var require_debug = /* @__PURE__ */ __commonJSMin(((exports, module) => {
42864
- module.exports = typeof process === "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error("SEMVER", ...args) : () => {};
42865
- }));
42866
- //#endregion
42867
- //#region ../../node_modules/.pnpm/semver@7.8.4/node_modules/semver/internal/constants.js
42868
- var require_constants = /* @__PURE__ */ __commonJSMin(((exports, module) => {
42869
- const SEMVER_SPEC_VERSION = "2.0.0";
42870
- const MAX_LENGTH = 256;
42871
- const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;
42872
- module.exports = {
42873
- MAX_LENGTH,
42874
- MAX_SAFE_COMPONENT_LENGTH: 16,
42875
- MAX_SAFE_BUILD_LENGTH: MAX_LENGTH - 6,
42876
- MAX_SAFE_INTEGER,
42877
- RELEASE_TYPES: [
42878
- "major",
42879
- "premajor",
42880
- "minor",
42881
- "preminor",
42882
- "patch",
42883
- "prepatch",
42884
- "prerelease"
42885
- ],
42886
- SEMVER_SPEC_VERSION,
42887
- FLAG_INCLUDE_PRERELEASE: 1,
42888
- FLAG_LOOSE: 2
42889
- };
42890
- }));
42891
- //#endregion
42892
- //#region ../../node_modules/.pnpm/semver@7.8.4/node_modules/semver/internal/re.js
42893
- var require_re = /* @__PURE__ */ __commonJSMin(((exports, module) => {
42894
- const { MAX_SAFE_COMPONENT_LENGTH, MAX_SAFE_BUILD_LENGTH, MAX_LENGTH } = require_constants();
42895
- const debug = require_debug();
42896
- exports = module.exports = {};
42897
- const re = exports.re = [];
42898
- const safeRe = exports.safeRe = [];
42899
- const src = exports.src = [];
42900
- const safeSrc = exports.safeSrc = [];
42901
- const t = exports.t = {};
42902
- let R = 0;
42903
- const LETTERDASHNUMBER = "[a-zA-Z0-9-]";
42904
- const safeRegexReplacements = [
42905
- ["\\s", 1],
42906
- ["\\d", MAX_LENGTH],
42907
- [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH]
42862
+ //#region ../../node_modules/.pnpm/verkit@0.3.2/node_modules/verkit/dist/index.js
42863
+ const LETTER_DASH_NUMBER = "[a-zA-Z0-9-]";
42864
+ const NUMERIC_IDENTIFIER = String.raw`0|[1-9]\d*`;
42865
+ const NUMERIC_IDENTIFIER_LOOSE = String.raw`\d+`;
42866
+ const NON_NUMERIC_IDENTIFIER = String.raw`\d*[a-zA-Z-]${LETTER_DASH_NUMBER}*`;
42867
+ const MAIN_VERSION = String.raw`(${NUMERIC_IDENTIFIER})\.(${NUMERIC_IDENTIFIER})\.(${NUMERIC_IDENTIFIER})`;
42868
+ const MAIN_VERSION_LOOSE = String.raw`(${NUMERIC_IDENTIFIER_LOOSE})\.(${NUMERIC_IDENTIFIER_LOOSE})\.(${NUMERIC_IDENTIFIER_LOOSE})`;
42869
+ const PRERELEASE_IDENTIFIER = `(?:${NON_NUMERIC_IDENTIFIER}|${NUMERIC_IDENTIFIER})`;
42870
+ const PRERELEASE_IDENTIFIER_LOOSE = `(?:${NON_NUMERIC_IDENTIFIER}|${NUMERIC_IDENTIFIER_LOOSE})`;
42871
+ const PRERELEASE = String.raw`(?:-(${PRERELEASE_IDENTIFIER}(?:\.${PRERELEASE_IDENTIFIER})*))`;
42872
+ const PRERELEASE_LOOSE = String.raw`(?:-?(${PRERELEASE_IDENTIFIER_LOOSE}(?:\.${PRERELEASE_IDENTIFIER_LOOSE})*))`;
42873
+ const BUILD_IDENTIFIER = `${LETTER_DASH_NUMBER}+`;
42874
+ const BUILD = String.raw`(?:\+(${BUILD_IDENTIFIER}(?:\.${BUILD_IDENTIFIER})*))`;
42875
+ const FULL_PLAIN = `v?${MAIN_VERSION}${PRERELEASE}?${BUILD}?`;
42876
+ const LOOSE_PLAIN = String.raw`[v=\s]*${MAIN_VERSION_LOOSE}${PRERELEASE_LOOSE}?${BUILD}?`;
42877
+ const GREATER_LESS_THAN = "((?:<|>)?=?)";
42878
+ const XRANGE_IDENTIFIER = String.raw`${NUMERIC_IDENTIFIER}|x|X|\*`;
42879
+ const XRANGE_IDENTIFIER_LOOSE = String.raw`${NUMERIC_IDENTIFIER_LOOSE}|x|X|\*`;
42880
+ const XRANGE_PLAIN = String.raw`[v=\s]*(${XRANGE_IDENTIFIER})(?:\.(${XRANGE_IDENTIFIER})(?:\.(${XRANGE_IDENTIFIER})(?:${PRERELEASE})?${BUILD}?)?)?`;
42881
+ const XRANGE_PLAIN_LOOSE = String.raw`[v=\s]*(${XRANGE_IDENTIFIER_LOOSE})(?:\.(${XRANGE_IDENTIFIER_LOOSE})(?:\.(${XRANGE_IDENTIFIER_LOOSE})(?:${PRERELEASE_LOOSE})?${BUILD}?)?)?`;
42882
+ const LONE_TILDE = "(?:~>?)";
42883
+ const LONE_CARET = String.raw`(?:\^)`;
42884
+ const COERCE_PLAIN = String.raw`(^|[^\d])(\d{1,${16}})(?:\.(\d{1,${16}}))?(?:\.(\d{1,${16}}))?`;
42885
+ const COERCE = String.raw`${COERCE_PLAIN}(?:$|[^\d])`;
42886
+ const COERCE_FULL = String.raw`${COERCE_PLAIN}(?:${PRERELEASE})?(?:${BUILD})?(?:$|[^\d])`;
42887
+ function makeSafeRegexSource(source) {
42888
+ const replacements = [
42889
+ [String.raw`\s`, 1],
42890
+ [String.raw`\d`, 256],
42891
+ [LETTER_DASH_NUMBER, 250]
42908
42892
  ];
42909
- const makeSafeRegex = (value) => {
42910
- for (const [token, max] of safeRegexReplacements) value = value.split(`${token}*`).join(`${token}{0,${max}}`).split(`${token}+`).join(`${token}{1,${max}}`);
42911
- return value;
42912
- };
42913
- const createToken = (name, value, isGlobal) => {
42914
- const safe = makeSafeRegex(value);
42915
- const index = R++;
42916
- debug(name, index, value);
42917
- t[name] = index;
42918
- src[index] = value;
42919
- safeSrc[index] = safe;
42920
- re[index] = new RegExp(value, isGlobal ? "g" : void 0);
42921
- safeRe[index] = new RegExp(safe, isGlobal ? "g" : void 0);
42922
- };
42923
- createToken("NUMERICIDENTIFIER", "0|[1-9]\\d*");
42924
- createToken("NUMERICIDENTIFIERLOOSE", "\\d+");
42925
- createToken("NONNUMERICIDENTIFIER", `\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`);
42926
- createToken("MAINVERSION", `(${src[t.NUMERICIDENTIFIER]})\\.(${src[t.NUMERICIDENTIFIER]})\\.(${src[t.NUMERICIDENTIFIER]})`);
42927
- createToken("MAINVERSIONLOOSE", `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.(${src[t.NUMERICIDENTIFIERLOOSE]})\\.(${src[t.NUMERICIDENTIFIERLOOSE]})`);
42928
- createToken("PRERELEASEIDENTIFIER", `(?:${src[t.NONNUMERICIDENTIFIER]}|${src[t.NUMERICIDENTIFIER]})`);
42929
- createToken("PRERELEASEIDENTIFIERLOOSE", `(?:${src[t.NONNUMERICIDENTIFIER]}|${src[t.NUMERICIDENTIFIERLOOSE]})`);
42930
- createToken("PRERELEASE", `(?:-(${src[t.PRERELEASEIDENTIFIER]}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`);
42931
- createToken("PRERELEASELOOSE", `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`);
42932
- createToken("BUILDIDENTIFIER", `${LETTERDASHNUMBER}+`);
42933
- createToken("BUILD", `(?:\\+(${src[t.BUILDIDENTIFIER]}(?:\\.${src[t.BUILDIDENTIFIER]})*))`);
42934
- createToken("FULLPLAIN", `v?${src[t.MAINVERSION]}${src[t.PRERELEASE]}?${src[t.BUILD]}?`);
42935
- createToken("FULL", `^${src[t.FULLPLAIN]}$`);
42936
- createToken("LOOSEPLAIN", `[v=\\s]*${src[t.MAINVERSIONLOOSE]}${src[t.PRERELEASELOOSE]}?${src[t.BUILD]}?`);
42937
- createToken("LOOSE", `^${src[t.LOOSEPLAIN]}$`);
42938
- createToken("GTLT", "((?:<|>)?=?)");
42939
- createToken("XRANGEIDENTIFIERLOOSE", `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);
42940
- createToken("XRANGEIDENTIFIER", `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`);
42941
- createToken("XRANGEPLAIN", `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})(?:\\.(${src[t.XRANGEIDENTIFIER]})(?:\\.(${src[t.XRANGEIDENTIFIER]})(?:${src[t.PRERELEASE]})?${src[t.BUILD]}?)?)?`);
42942
- createToken("XRANGEPLAINLOOSE", `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:${src[t.PRERELEASELOOSE]})?${src[t.BUILD]}?)?)?`);
42943
- createToken("XRANGE", `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`);
42944
- createToken("XRANGELOOSE", `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`);
42945
- createToken("COERCEPLAIN", `(^|[^\\d])(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}})(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`);
42946
- createToken("COERCE", `${src[t.COERCEPLAIN]}(?:$|[^\\d])`);
42947
- createToken("COERCEFULL", src[t.COERCEPLAIN] + `(?:${src[t.PRERELEASE]})?(?:${src[t.BUILD]})?(?:$|[^\\d])`);
42948
- createToken("COERCERTL", src[t.COERCE], true);
42949
- createToken("COERCERTLFULL", src[t.COERCEFULL], true);
42950
- createToken("LONETILDE", "(?:~>?)");
42951
- createToken("TILDETRIM", `(\\s*)${src[t.LONETILDE]}\\s+`, true);
42952
- exports.tildeTrimReplace = "$1~";
42953
- createToken("TILDE", `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`);
42954
- createToken("TILDELOOSE", `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`);
42955
- createToken("LONECARET", "(?:\\^)");
42956
- createToken("CARETTRIM", `(\\s*)${src[t.LONECARET]}\\s+`, true);
42957
- exports.caretTrimReplace = "$1^";
42958
- createToken("CARET", `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`);
42959
- createToken("CARETLOOSE", `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`);
42960
- createToken("COMPARATORLOOSE", `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`);
42961
- createToken("COMPARATOR", `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`);
42962
- createToken("COMPARATORTRIM", `(\\s*)${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true);
42963
- exports.comparatorTrimReplace = "$1$2$3";
42964
- createToken("HYPHENRANGE", `^\\s*(${src[t.XRANGEPLAIN]})\\s+-\\s+(${src[t.XRANGEPLAIN]})\\s*$`);
42965
- createToken("HYPHENRANGELOOSE", `^\\s*(${src[t.XRANGEPLAINLOOSE]})\\s+-\\s+(${src[t.XRANGEPLAINLOOSE]})\\s*$`);
42966
- createToken("STAR", "(<|>)?=?\\s*\\*");
42967
- createToken("GTE0", "^\\s*>=\\s*0\\.0\\.0\\s*$");
42968
- createToken("GTE0PRE", "^\\s*>=\\s*0\\.0\\.0-0\\s*$");
42969
- }));
42970
- //#endregion
42971
- //#region ../../node_modules/.pnpm/semver@7.8.4/node_modules/semver/internal/parse-options.js
42972
- var require_parse_options = /* @__PURE__ */ __commonJSMin(((exports, module) => {
42973
- const looseOption = Object.freeze({ loose: true });
42974
- const emptyOpts = Object.freeze({});
42975
- const parseOptions = (options) => {
42976
- if (!options) return emptyOpts;
42977
- if (typeof options !== "object") return looseOption;
42978
- return options;
42979
- };
42980
- module.exports = parseOptions;
42981
- }));
42982
- //#endregion
42983
- //#region ../../node_modules/.pnpm/semver@7.8.4/node_modules/semver/internal/identifiers.js
42984
- var require_identifiers = /* @__PURE__ */ __commonJSMin(((exports, module) => {
42985
- const numeric = /^[0-9]+$/;
42986
- const compareIdentifiers = (a, b) => {
42987
- if (typeof a === "number" && typeof b === "number") return a === b ? 0 : a < b ? -1 : 1;
42988
- const anum = numeric.test(a);
42989
- const bnum = numeric.test(b);
42990
- if (anum && bnum) {
42991
- a = +a;
42992
- b = +b;
42993
- }
42994
- return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1;
42995
- };
42996
- const rcompareIdentifiers = (a, b) => compareIdentifiers(b, a);
42997
- module.exports = {
42998
- compareIdentifiers,
42999
- rcompareIdentifiers
43000
- };
43001
- }));
43002
- //#endregion
43003
- //#region ../../node_modules/.pnpm/semver@7.8.4/node_modules/semver/classes/semver.js
43004
- var require_semver = /* @__PURE__ */ __commonJSMin(((exports, module) => {
43005
- const debug = require_debug();
43006
- const { MAX_LENGTH, MAX_SAFE_INTEGER } = require_constants();
43007
- const { safeRe: re, t } = require_re();
43008
- const parseOptions = require_parse_options();
43009
- const { compareIdentifiers } = require_identifiers();
43010
- const isPrereleaseIdentifier = (prerelease, identifier) => {
43011
- const identifiers = identifier.split(".");
43012
- if (identifiers.length > prerelease.length) return false;
43013
- for (let i = 0; i < identifiers.length; i++) if (compareIdentifiers(prerelease[i], identifiers[i]) !== 0) return false;
43014
- return true;
43015
- };
43016
- module.exports = class SemVer {
43017
- constructor(version, options) {
43018
- options = parseOptions(options);
43019
- if (version instanceof SemVer) if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) return version;
43020
- else version = version.version;
43021
- else if (typeof version !== "string") throw new TypeError(`Invalid version. Must be a string. Got type "${typeof version}".`);
43022
- if (version.length > MAX_LENGTH) throw new TypeError(`version is longer than ${MAX_LENGTH} characters`);
43023
- debug("SemVer", version, options);
43024
- this.options = options;
43025
- this.loose = !!options.loose;
43026
- this.includePrerelease = !!options.includePrerelease;
43027
- const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]);
43028
- if (!m) throw new TypeError(`Invalid Version: ${version}`);
43029
- this.raw = version;
43030
- this.major = +m[1];
43031
- this.minor = +m[2];
43032
- this.patch = +m[3];
43033
- if (this.major > MAX_SAFE_INTEGER || this.major < 0) throw new TypeError("Invalid major version");
43034
- if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) throw new TypeError("Invalid minor version");
43035
- if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) throw new TypeError("Invalid patch version");
43036
- if (!m[4]) this.prerelease = [];
43037
- else this.prerelease = m[4].split(".").map((id) => {
43038
- if (/^[0-9]+$/.test(id)) {
43039
- const num = +id;
43040
- if (num >= 0 && num < MAX_SAFE_INTEGER) return num;
43041
- }
43042
- return id;
43043
- });
43044
- this.build = m[5] ? m[5].split(".") : [];
43045
- this.format();
43046
- }
43047
- format() {
43048
- this.version = `${this.major}.${this.minor}.${this.patch}`;
43049
- if (this.prerelease.length) this.version += `-${this.prerelease.join(".")}`;
43050
- return this.version;
43051
- }
43052
- toString() {
43053
- return this.version;
43054
- }
43055
- compare(other) {
43056
- debug("SemVer.compare", this.version, this.options, other);
43057
- if (!(other instanceof SemVer)) {
43058
- if (typeof other === "string" && other === this.version) return 0;
43059
- other = new SemVer(other, this.options);
43060
- }
43061
- if (other.version === this.version) return 0;
43062
- return this.compareMain(other) || this.comparePre(other);
43063
- }
43064
- compareMain(other) {
43065
- if (!(other instanceof SemVer)) other = new SemVer(other, this.options);
43066
- if (this.major < other.major) return -1;
43067
- if (this.major > other.major) return 1;
43068
- if (this.minor < other.minor) return -1;
43069
- if (this.minor > other.minor) return 1;
43070
- if (this.patch < other.patch) return -1;
43071
- if (this.patch > other.patch) return 1;
43072
- return 0;
43073
- }
43074
- comparePre(other) {
43075
- if (!(other instanceof SemVer)) other = new SemVer(other, this.options);
43076
- if (this.prerelease.length && !other.prerelease.length) return -1;
43077
- else if (!this.prerelease.length && other.prerelease.length) return 1;
43078
- else if (!this.prerelease.length && !other.prerelease.length) return 0;
43079
- let i = 0;
43080
- do {
43081
- const a = this.prerelease[i];
43082
- const b = other.prerelease[i];
43083
- debug("prerelease compare", i, a, b);
43084
- if (a === void 0 && b === void 0) return 0;
43085
- else if (b === void 0) return 1;
43086
- else if (a === void 0) return -1;
43087
- else if (a === b) continue;
43088
- else return compareIdentifiers(a, b);
43089
- } while (++i);
43090
- }
43091
- compareBuild(other) {
43092
- if (!(other instanceof SemVer)) other = new SemVer(other, this.options);
43093
- let i = 0;
43094
- do {
43095
- const a = this.build[i];
43096
- const b = other.build[i];
43097
- debug("build compare", i, a, b);
43098
- if (a === void 0 && b === void 0) return 0;
43099
- else if (b === void 0) return 1;
43100
- else if (a === void 0) return -1;
43101
- else if (a === b) continue;
43102
- else return compareIdentifiers(a, b);
43103
- } while (++i);
43104
- }
43105
- inc(release, identifier, identifierBase) {
43106
- if (release.startsWith("pre")) {
43107
- if (!identifier && identifierBase === false) throw new Error("invalid increment argument: identifier is empty");
43108
- if (identifier) {
43109
- const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE]);
43110
- if (!match || match[1] !== identifier) throw new Error(`invalid identifier: ${identifier}`);
43111
- }
43112
- }
43113
- switch (release) {
43114
- case "premajor":
43115
- this.prerelease.length = 0;
43116
- this.patch = 0;
43117
- this.minor = 0;
43118
- this.major++;
43119
- this.inc("pre", identifier, identifierBase);
43120
- break;
43121
- case "preminor":
43122
- this.prerelease.length = 0;
43123
- this.patch = 0;
43124
- this.minor++;
43125
- this.inc("pre", identifier, identifierBase);
43126
- break;
43127
- case "prepatch":
43128
- this.prerelease.length = 0;
43129
- this.inc("patch", identifier, identifierBase);
43130
- this.inc("pre", identifier, identifierBase);
43131
- break;
43132
- case "prerelease":
43133
- if (this.prerelease.length === 0) this.inc("patch", identifier, identifierBase);
43134
- this.inc("pre", identifier, identifierBase);
43135
- break;
43136
- case "release":
43137
- if (this.prerelease.length === 0) throw new Error(`version ${this.raw} is not a prerelease`);
43138
- this.prerelease.length = 0;
43139
- break;
43140
- case "major":
43141
- if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) this.major++;
43142
- this.minor = 0;
43143
- this.patch = 0;
43144
- this.prerelease = [];
43145
- break;
43146
- case "minor":
43147
- if (this.patch !== 0 || this.prerelease.length === 0) this.minor++;
43148
- this.patch = 0;
43149
- this.prerelease = [];
43150
- break;
43151
- case "patch":
43152
- if (this.prerelease.length === 0) this.patch++;
43153
- this.prerelease = [];
43154
- break;
43155
- case "pre": {
43156
- const base = Number(identifierBase) ? 1 : 0;
43157
- if (this.prerelease.length === 0) this.prerelease = [base];
43158
- else {
43159
- let i = this.prerelease.length;
43160
- while (--i >= 0) if (typeof this.prerelease[i] === "number") {
43161
- this.prerelease[i]++;
43162
- i = -2;
43163
- }
43164
- if (i === -1) {
43165
- if (identifier === this.prerelease.join(".") && identifierBase === false) throw new Error("invalid increment argument: identifier already exists");
43166
- this.prerelease.push(base);
43167
- }
43168
- }
43169
- if (identifier) {
43170
- let prerelease = [identifier, base];
43171
- if (identifierBase === false) prerelease = [identifier];
43172
- if (isPrereleaseIdentifier(this.prerelease, identifier)) {
43173
- const prereleaseBase = this.prerelease[identifier.split(".").length];
43174
- if (isNaN(prereleaseBase)) this.prerelease = prerelease;
43175
- } else this.prerelease = prerelease;
43176
- }
43177
- break;
43178
- }
43179
- default: throw new Error(`invalid increment argument: ${release}`);
43180
- }
43181
- this.raw = this.format();
43182
- if (this.build.length) this.raw += `+${this.build.join(".")}`;
43183
- return this;
43184
- }
42893
+ for (const [token, maximum] of replacements) source = source.split(`${token}*`).join(`${token}{0,${maximum}}`).split(`${token}+`).join(`${token}{1,${maximum}}`);
42894
+ return source;
42895
+ }
42896
+ function safeRegex(source, flags) {
42897
+ return new RegExp(makeSafeRegexSource(source), flags);
42898
+ }
42899
+ const FULL = safeRegex(`^${FULL_PLAIN}$`);
42900
+ const LOOSE = safeRegex(`^${LOOSE_PLAIN}$`);
42901
+ safeRegex(`^${PRERELEASE}$`);
42902
+ safeRegex(`^${PRERELEASE_LOOSE}$`);
42903
+ safeRegex(COERCE);
42904
+ safeRegex(COERCE_FULL);
42905
+ const NUMERIC = /^\d+$/;
42906
+ function parse$1(version, options = {}) {
42907
+ if (typeof version !== "string") return version;
42908
+ if (version.length > 256) throw new TypeError(`Version exceeds the maximum length of 256 characters`);
42909
+ const match = version.trim().match(options.loose ? LOOSE : FULL);
42910
+ if (!match) throw new TypeError(`Invalid version syntax: ${version}`);
42911
+ const major = Number(match[1]);
42912
+ const minor = Number(match[2]);
42913
+ const patch = Number(match[3]);
42914
+ if (major > Number.MAX_SAFE_INTEGER || major < 0) throw new TypeError(`Invalid major version: ${match[1]}`);
42915
+ if (minor > Number.MAX_SAFE_INTEGER || minor < 0) throw new TypeError(`Invalid minor version: ${match[2]}`);
42916
+ if (patch > Number.MAX_SAFE_INTEGER || patch < 0) throw new TypeError(`Invalid patch version: ${match[3]}`);
42917
+ const prerelease = match[4] ? match[4].split(".").map((identifier) => {
42918
+ if (NUMERIC.test(identifier)) {
42919
+ const numeric = Number(identifier);
42920
+ if (numeric >= 0 && numeric < Number.MAX_SAFE_INTEGER) return numeric;
42921
+ }
42922
+ return identifier;
42923
+ }) : void 0;
42924
+ return {
42925
+ build: match[5]?.split("."),
42926
+ major,
42927
+ minor,
42928
+ patch,
42929
+ prerelease
43185
42930
  };
43186
- }));
43187
- //#endregion
43188
- //#region ../../node_modules/.pnpm/semver@7.8.4/node_modules/semver/functions/major.js
43189
- var require_major = /* @__PURE__ */ __commonJSMin(((exports, module) => {
43190
- const SemVer = require_semver();
43191
- const major = (a, loose) => new SemVer(a, loose).major;
43192
- module.exports = major;
43193
- }));
43194
- //#endregion
43195
- //#region ../../node_modules/.pnpm/semver@7.8.4/node_modules/semver/functions/minor.js
43196
- var require_minor = /* @__PURE__ */ __commonJSMin(((exports, module) => {
43197
- const SemVer = require_semver();
43198
- const minor = (a, loose) => new SemVer(a, loose).minor;
43199
- module.exports = minor;
43200
- }));
43201
- //#endregion
43202
- //#region ../../node_modules/.pnpm/semver@7.8.4/node_modules/semver/functions/patch.js
43203
- var require_patch = /* @__PURE__ */ __commonJSMin(((exports, module) => {
43204
- const SemVer = require_semver();
43205
- const patch = (a, loose) => new SemVer(a, loose).patch;
43206
- module.exports = patch;
43207
- }));
42931
+ }
42932
+ safeRegex(String.raw`^${GREATER_LESS_THAN}\s*(${FULL_PLAIN})$|^$`);
42933
+ safeRegex(String.raw`^${GREATER_LESS_THAN}\s*(${LOOSE_PLAIN})$|^$`);
42934
+ new RegExp(BUILD, "g");
42935
+ safeRegex(BUILD);
42936
+ safeRegex(String.raw`^\s*(${XRANGE_PLAIN})\s+-\s+(${XRANGE_PLAIN})\s*$`);
42937
+ safeRegex(String.raw`^\s*(${XRANGE_PLAIN_LOOSE})\s+-\s+(${XRANGE_PLAIN_LOOSE})\s*$`);
42938
+ safeRegex(String.raw`(\s*)${GREATER_LESS_THAN}\s*(${LOOSE_PLAIN}|${XRANGE_PLAIN})`, "g");
42939
+ safeRegex(String.raw`(\s*)${LONE_TILDE}\s+`, "g");
42940
+ safeRegex(String.raw`(\s*)${LONE_CARET}\s+`, "g");
42941
+ safeRegex(`^${LONE_TILDE}${XRANGE_PLAIN}$`);
42942
+ safeRegex(`^${LONE_TILDE}${XRANGE_PLAIN_LOOSE}$`);
42943
+ safeRegex(`^${LONE_CARET}${XRANGE_PLAIN}$`);
42944
+ safeRegex(`^${LONE_CARET}${XRANGE_PLAIN_LOOSE}$`);
42945
+ safeRegex(String.raw`^${GREATER_LESS_THAN}\s*${XRANGE_PLAIN}$`);
42946
+ safeRegex(String.raw`^${GREATER_LESS_THAN}\s*${XRANGE_PLAIN_LOOSE}$`);
42947
+ safeRegex(String.raw`(<|>)?=?\s*\*`);
42948
+ safeRegex(String.raw`^${GREATER_LESS_THAN}\s*(${LOOSE_PLAIN})$|^$`);
42949
+ function getMajor(version, options = {}) {
42950
+ return parse$1(version, options).major;
42951
+ }
42952
+ function getMinor(version, options = {}) {
42953
+ return parse$1(version, options).minor;
42954
+ }
42955
+ function getPatch(version, options = {}) {
42956
+ return parse$1(version, options).patch;
42957
+ }
43208
42958
  //#endregion
43209
42959
  //#region src/getReactNativeMetadatas.ts
43210
- var import_major = /* @__PURE__ */ __toESM(require_major(), 1);
43211
- var import_minor = /* @__PURE__ */ __toESM(require_minor(), 1);
43212
- var import_patch = /* @__PURE__ */ __toESM(require_patch(), 1);
43213
42960
  const getReactNativeMetadatas = (cwd) => {
43214
42961
  if (!cwd) cwd = getCwd();
43215
42962
  try {
@@ -43220,9 +42967,9 @@ const getReactNativeMetadatas = (cwd) => {
43220
42967
  packagePath,
43221
42968
  versionRaw,
43222
42969
  version: {
43223
- major: (0, import_major.default)(versionRaw),
43224
- minor: (0, import_minor.default)(versionRaw),
43225
- patch: (0, import_patch.default)(versionRaw)
42970
+ major: getMajor(versionRaw),
42971
+ minor: getMinor(versionRaw),
42972
+ patch: getPatch(versionRaw)
43226
42973
  }
43227
42974
  };
43228
42975
  } catch (e) {
@@ -44128,7 +43875,6 @@ const getRelativeStorageDir = (relativePath) => {
44128
43875
  const dirname = path$1.posix.dirname(normalized);
44129
43876
  return dirname === "." ? "" : dirname;
44130
43877
  };
44131
- const isBundleAsset = (relativePath) => /(^|\/)[^/]+\.(ios|android)\.bundle$/.test(relativePath.replace(/\\/g, "/"));
44132
43878
  function resolvePreparedUploadPath(rootDir, assetPath) {
44133
43879
  const normalizedAssetPath = assetPath.replaceAll("\\", "/");
44134
43880
  const outputPath = path$1.resolve(rootDir, "upload-artifacts", `${normalizedAssetPath}.br`);
@@ -44137,19 +43883,20 @@ function resolvePreparedUploadPath(rootDir, assetPath) {
44137
43883
  return outputPath;
44138
43884
  }
44139
43885
  async function prepareManifestAssetUploadFile({ assetPath, sourcePath, workDir }) {
44140
- if (!isBundleAsset(assetPath)) return sourcePath;
43886
+ if (getManifestAssetDownloadPath(assetPath) === assetPath) return sourcePath;
44141
43887
  const uploadPath = resolvePreparedUploadPath(workDir, assetPath);
44142
43888
  await fs$3.mkdir(path$1.dirname(uploadPath), { recursive: true });
44143
43889
  await pipeline$1(createReadStream(sourcePath), createBrotliCompress$1(), createWriteStream$1(uploadPath));
44144
43890
  return uploadPath;
44145
43891
  }
44146
- const replaceStorageUriLeaf = (storageUri, nextLeaf) => {
44147
- const storageUrl = new URL(storageUri);
44148
- const normalizedPath = storageUrl.pathname.replace(/\/+$/, "");
44149
- const lastSlashIndex = normalizedPath.lastIndexOf("/");
44150
- storageUrl.pathname = `${lastSlashIndex >= 0 ? normalizedPath.slice(0, lastSlashIndex) : ""}/${nextLeaf}`;
44151
- return storageUrl.toString();
44152
- };
43892
+ async function prepareContentAddressedUploadFile({ sourcePath, storagePath, workDir }) {
43893
+ const filename = path$1.posix.basename(storagePath);
43894
+ if (path$1.basename(sourcePath) === filename) return sourcePath;
43895
+ const uploadPath = path$1.join(workDir, "upload-artifacts", "content-addressed", filename);
43896
+ await fs$3.mkdir(path$1.dirname(uploadPath), { recursive: true });
43897
+ await fs$3.copyFile(sourcePath, uploadPath);
43898
+ return uploadPath;
43899
+ }
44153
43900
  function resolveExtractedPath(rootDir, entryName) {
44154
43901
  const normalizedEntryName = entryName.replaceAll("\\", "/");
44155
43902
  const entryPath = path$1.resolve(rootDir, normalizedEntryName);
@@ -44290,26 +44037,39 @@ async function createCopiedBundleArchive({ bundle, config, nextBundleId, storage
44290
44037
  const signingKeyPath = config.signing?.enabled && config.signing.privateKeyPath ? config.signing.privateKeyPath : null;
44291
44038
  const nextFileHash = signingKeyPath ? await signFileHash(fileHash, signingKeyPath) : fileHash;
44292
44039
  const nextManifestFileHash = signingKeyPath ? await signFileHash(manifestHash, signingKeyPath) : manifestHash;
44293
- const archiveUpload = await storagePlugin.profiles.node.upload(nextBundleId, outputArchivePath);
44040
+ const archiveUpload = await storagePlugin.profiles.node.upload(createBundleStorageKey(nextBundleId), outputArchivePath);
44294
44041
  uploadedStorageUris.push(archiveUpload.storageUri);
44295
- const manifestUpload = await storagePlugin.profiles.node.upload(nextBundleId, manifestPath);
44042
+ const manifestUpload = await storagePlugin.profiles.node.upload(createBundleStorageKey(nextBundleId), manifestPath);
44296
44043
  uploadedStorageUris.push(manifestUpload.storageUri);
44044
+ const assetBaseStorageUri = createStorageRootUriWithPath(manifestUpload.storageUri, nextBundleId, "assets");
44297
44045
  const assetPaths = Object.keys(manifest.assets ?? {}).sort((left, right) => left.localeCompare(right));
44298
44046
  for (const assetPath of assetPaths) {
44299
- const uploadKey = [
44300
- nextBundleId,
44301
- "files",
44302
- getRelativeStorageDir(assetPath)
44303
- ].filter(Boolean).join("/");
44047
+ const asset = manifest.assets?.[assetPath];
44048
+ if (!asset?.fileHash) throw new Error(`Manifest file hash not found for ${assetPath}`);
44304
44049
  const uploadPath = await prepareManifestAssetUploadFile({
44305
44050
  assetPath,
44306
44051
  sourcePath: path$1.join(extractDir, assetPath),
44307
44052
  workDir
44308
44053
  });
44309
- const assetUpload = await storagePlugin.profiles.node.upload(uploadKey, uploadPath);
44310
- uploadedStorageUris.push(assetUpload.storageUri);
44054
+ const uploadName = getManifestAssetDownloadPath(assetPath);
44055
+ const storagePath = getContentAddressedAssetStoragePath({
44056
+ assetPath: uploadName,
44057
+ fileHash: asset.fileHash
44058
+ });
44059
+ const storageUri = resolveManifestAssetStorageUri({
44060
+ assetBaseStorageUri,
44061
+ assetPath: uploadName,
44062
+ fileHash: asset.fileHash
44063
+ });
44064
+ if (!await storagePlugin.profiles.node.exists(storageUri)) {
44065
+ const contentAddressedUploadPath = await prepareContentAddressedUploadFile({
44066
+ sourcePath: uploadPath,
44067
+ storagePath,
44068
+ workDir
44069
+ });
44070
+ await storagePlugin.profiles.node.upload(getRelativeStorageDir(storagePath) ? `assets/${getRelativeStorageDir(storagePath)}` : "assets", contentAddressedUploadPath);
44071
+ }
44311
44072
  }
44312
- const assetBaseStorageUri = replaceStorageUriLeaf(manifestUpload.storageUri, "files");
44313
44073
  return {
44314
44074
  bundle: {
44315
44075
  ...bundle,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hot-updater/cli-tools",
3
- "version": "0.35.11",
3
+ "version": "0.36.0",
4
4
  "type": "module",
5
5
  "engines": {
6
6
  "node": ">=20.19.0"
@@ -49,23 +49,22 @@
49
49
  "oxc-parser": "0.141.0",
50
50
  "oxc-transform": "0.141.0",
51
51
  "unconfig": "7.5.0",
52
- "@hot-updater/core": "0.35.11",
53
- "@hot-updater/plugin-core": "0.35.11"
52
+ "@hot-updater/core": "0.36.0",
53
+ "@hot-updater/plugin-core": "0.36.0"
54
54
  },
55
55
  "devDependencies": {
56
56
  "@clack/prompts": "1.7.0",
57
57
  "@types/node": "^20",
58
- "@types/semver": "^7.7.1",
59
58
  "boxen": "^8.0.1",
60
59
  "es-toolkit": "^1.32.0",
61
60
  "execa": "9.5.2",
62
61
  "fast-glob": "3.3.3",
63
62
  "jszip": "^3.10.1",
64
63
  "picocolors": "1.1.1",
65
- "semver": "^7.6.3",
66
64
  "tar": "^7.5.16",
65
+ "verkit": "0.3.2",
67
66
  "workspace-tools": "^0.41.7",
68
- "@hot-updater/test-utils": "0.35.11"
67
+ "@hot-updater/test-utils": "0.36.0"
69
68
  },
70
69
  "inlinedDependencies": {
71
70
  "@babel/code-frame": "7.29.0",
@@ -156,10 +155,6 @@
156
155
  "reusify": "1.0.4",
157
156
  "run-parallel": "1.2.0",
158
157
  "safe-buffer": "5.1.2",
159
- "semver": [
160
- "7.7.3",
161
- "7.7.4"
162
- ],
163
158
  "setimmediate": "1.0.5",
164
159
  "shebang-command": "2.0.0",
165
160
  "shebang-regex": "3.0.0",
@@ -187,6 +182,7 @@
187
182
  ],
188
183
  "util-deprecate": "1.0.2",
189
184
  "validate-npm-package-license": "3.0.4",
185
+ "verkit": "0.3.2",
190
186
  "which": "2.0.2",
191
187
  "widest-line": "5.0.0",
192
188
  "workspace-tools": "0.36.4",