@wix/create-app 0.0.97 → 0.0.98

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/build/index.js CHANGED
@@ -17572,6 +17572,7 @@ var require_re = __commonJS({
17572
17572
  var re = exports.re = [];
17573
17573
  var safeRe = exports.safeRe = [];
17574
17574
  var src = exports.src = [];
17575
+ var safeSrc = exports.safeSrc = [];
17575
17576
  var t3 = exports.t = {};
17576
17577
  var R = 0;
17577
17578
  var LETTERDASHNUMBER = "[a-zA-Z0-9-]";
@@ -17592,6 +17593,7 @@ var require_re = __commonJS({
17592
17593
  debug3(name, index, value2);
17593
17594
  t3[name] = index;
17594
17595
  src[index] = value2;
17596
+ safeSrc[index] = safe;
17595
17597
  re[index] = new RegExp(value2, isGlobal ? "g" : void 0);
17596
17598
  safeRe[index] = new RegExp(safe, isGlobal ? "g" : void 0);
17597
17599
  };
@@ -17694,7 +17696,7 @@ var require_semver = __commonJS({
17694
17696
  init_esm_shims();
17695
17697
  var debug3 = require_debug2();
17696
17698
  var { MAX_LENGTH, MAX_SAFE_INTEGER } = require_constants3();
17697
- var { safeRe: re, t: t3 } = require_re();
17699
+ var { safeRe: re, safeSrc: src, t: t3 } = require_re();
17698
17700
  var parseOptions = require_parse_options();
17699
17701
  var { compareIdentifiers } = require_identifiers();
17700
17702
  var SemVer = class _SemVer {
@@ -17839,7 +17841,8 @@ var require_semver = __commonJS({
17839
17841
  throw new Error("invalid increment argument: identifier is empty");
17840
17842
  }
17841
17843
  if (identifier) {
17842
- const match22 = `-${identifier}`.match(this.options.loose ? re[t3.PRERELEASELOOSE] : re[t3.PRERELEASE]);
17844
+ const r2 = new RegExp(`^${this.options.loose ? src[t3.PRERELEASELOOSE] : src[t3.PRERELEASE]}$`);
17845
+ const match22 = `-${identifier}`.match(r2);
17843
17846
  if (!match22 || match22[1] !== identifier) {
17844
17847
  throw new Error(`invalid identifier: ${identifier}`);
17845
17848
  }
@@ -39207,14 +39210,15 @@ var require_out4 = __commonJS({
39207
39210
  }
39208
39211
  });
39209
39212
 
39210
- // ../../node_modules/ignore/index.js
39213
+ // ../../node_modules/globby/node_modules/ignore/index.js
39211
39214
  var require_ignore = __commonJS({
39212
- "../../node_modules/ignore/index.js"(exports, module2) {
39215
+ "../../node_modules/globby/node_modules/ignore/index.js"(exports, module2) {
39213
39216
  "use strict";
39214
39217
  init_esm_shims();
39215
39218
  function makeArray(subject) {
39216
39219
  return Array.isArray(subject) ? subject : [subject];
39217
39220
  }
39221
+ var UNDEFINED = void 0;
39218
39222
  var EMPTY = "";
39219
39223
  var SPACE = " ";
39220
39224
  var ESCAPE = "\\";
@@ -39224,13 +39228,17 @@ var require_ignore = __commonJS({
39224
39228
  var REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\#/;
39225
39229
  var REGEX_SPLITALL_CRLF = /\r?\n/g;
39226
39230
  var REGEX_TEST_INVALID_PATH = /^\.*\/|^\.+$/;
39231
+ var REGEX_TEST_TRAILING_SLASH = /\/$/;
39227
39232
  var SLASH = "/";
39228
39233
  var TMP_KEY_IGNORE = "node-ignore";
39229
39234
  if (typeof Symbol !== "undefined") {
39230
39235
  TMP_KEY_IGNORE = Symbol.for("node-ignore");
39231
39236
  }
39232
39237
  var KEY_IGNORE = TMP_KEY_IGNORE;
39233
- var define2 = (object, key, value2) => Object.defineProperty(object, key, { value: value2 });
39238
+ var define2 = (object, key, value2) => {
39239
+ Object.defineProperty(object, key, { value: value2 });
39240
+ return value2;
39241
+ };
39234
39242
  var REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g;
39235
39243
  var RETURN_FALSE = () => false;
39236
39244
  var sanitizeRange = (range) => range.replace(
@@ -39243,7 +39251,7 @@ var require_ignore = __commonJS({
39243
39251
  };
39244
39252
  var REPLACERS = [
39245
39253
  [
39246
- // remove BOM
39254
+ // Remove BOM
39247
39255
  // TODO:
39248
39256
  // Other similar zero-width characters?
39249
39257
  /^\uFEFF/,
@@ -39258,7 +39266,7 @@ var require_ignore = __commonJS({
39258
39266
  /((?:\\\\)*?)(\\?\s+)$/,
39259
39267
  (_2, m1, m2) => m1 + (m2.indexOf("\\") === 0 ? SPACE : EMPTY)
39260
39268
  ],
39261
- // replace (\ ) with ' '
39269
+ // Replace (\ ) with ' '
39262
39270
  // (\ ) -> ' '
39263
39271
  // (\\ ) -> '\\ '
39264
39272
  // (\\\ ) -> '\\ '
@@ -39387,55 +39395,147 @@ var require_ignore = __commonJS({
39387
39395
  // 'js/' will not match 'a.js'
39388
39396
  // 'js' will match 'a.js' and 'a.js/'
39389
39397
  (match22) => /\/$/.test(match22) ? `${match22}$` : `${match22}(?=$|\\/$)`
39390
- ],
39391
- // trailing wildcard
39392
- [
39393
- /(\^|\\\/)?\\\*$/,
39394
- (_2, p1) => {
39395
- const prefix = p1 ? `${p1}[^/]+` : "[^/]*";
39396
- return `${prefix}(?=$|\\/$)`;
39397
- }
39398
39398
  ]
39399
39399
  ];
39400
- var regexCache = /* @__PURE__ */ Object.create(null);
39401
- var makeRegex = (pattern, ignoreCase) => {
39402
- let source = regexCache[pattern];
39403
- if (!source) {
39404
- source = REPLACERS.reduce(
39405
- (prev, [matcher3, replacer]) => prev.replace(matcher3, replacer.bind(pattern)),
39406
- pattern
39407
- );
39408
- regexCache[pattern] = source;
39400
+ var REGEX_REPLACE_TRAILING_WILDCARD = /(^|\\\/)?\\\*$/;
39401
+ var MODE_IGNORE = "regex";
39402
+ var MODE_CHECK_IGNORE = "checkRegex";
39403
+ var UNDERSCORE = "_";
39404
+ var TRAILING_WILD_CARD_REPLACERS = {
39405
+ [MODE_IGNORE](_2, p1) {
39406
+ const prefix = p1 ? `${p1}[^/]+` : "[^/]*";
39407
+ return `${prefix}(?=$|\\/$)`;
39408
+ },
39409
+ [MODE_CHECK_IGNORE](_2, p1) {
39410
+ const prefix = p1 ? `${p1}[^/]*` : "[^/]*";
39411
+ return `${prefix}(?=$|\\/$)`;
39409
39412
  }
39410
- return ignoreCase ? new RegExp(source, "i") : new RegExp(source);
39411
39413
  };
39414
+ var makeRegexPrefix = (pattern) => REPLACERS.reduce(
39415
+ (prev, [matcher3, replacer]) => prev.replace(matcher3, replacer.bind(pattern)),
39416
+ pattern
39417
+ );
39412
39418
  var isString3 = (subject) => typeof subject === "string";
39413
39419
  var checkPattern = (pattern) => pattern && isString3(pattern) && !REGEX_TEST_BLANK_LINE.test(pattern) && !REGEX_INVALID_TRAILING_BACKSLASH.test(pattern) && pattern.indexOf("#") !== 0;
39414
- var splitPattern = (pattern) => pattern.split(REGEX_SPLITALL_CRLF);
39420
+ var splitPattern = (pattern) => pattern.split(REGEX_SPLITALL_CRLF).filter(Boolean);
39415
39421
  var IgnoreRule = class {
39416
- constructor(origin, pattern, negative, regex2) {
39417
- this.origin = origin;
39422
+ constructor(pattern, mark, body, ignoreCase, negative, prefix) {
39418
39423
  this.pattern = pattern;
39424
+ this.mark = mark;
39419
39425
  this.negative = negative;
39420
- this.regex = regex2;
39426
+ define2(this, "body", body);
39427
+ define2(this, "ignoreCase", ignoreCase);
39428
+ define2(this, "regexPrefix", prefix);
39429
+ }
39430
+ get regex() {
39431
+ const key = UNDERSCORE + MODE_IGNORE;
39432
+ if (this[key]) {
39433
+ return this[key];
39434
+ }
39435
+ return this._make(MODE_IGNORE, key);
39436
+ }
39437
+ get checkRegex() {
39438
+ const key = UNDERSCORE + MODE_CHECK_IGNORE;
39439
+ if (this[key]) {
39440
+ return this[key];
39441
+ }
39442
+ return this._make(MODE_CHECK_IGNORE, key);
39443
+ }
39444
+ _make(mode, key) {
39445
+ const str = this.regexPrefix.replace(
39446
+ REGEX_REPLACE_TRAILING_WILDCARD,
39447
+ // It does not need to bind pattern
39448
+ TRAILING_WILD_CARD_REPLACERS[mode]
39449
+ );
39450
+ const regex2 = this.ignoreCase ? new RegExp(str, "i") : new RegExp(str);
39451
+ return define2(this, key, regex2);
39421
39452
  }
39422
39453
  };
39423
- var createRule = (pattern, ignoreCase) => {
39424
- const origin = pattern;
39454
+ var createRule = ({
39455
+ pattern,
39456
+ mark
39457
+ }, ignoreCase) => {
39425
39458
  let negative = false;
39426
- if (pattern.indexOf("!") === 0) {
39459
+ let body = pattern;
39460
+ if (body.indexOf("!") === 0) {
39427
39461
  negative = true;
39428
- pattern = pattern.substr(1);
39462
+ body = body.substr(1);
39429
39463
  }
39430
- pattern = pattern.replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, "!").replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, "#");
39431
- const regex2 = makeRegex(pattern, ignoreCase);
39464
+ body = body.replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, "!").replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, "#");
39465
+ const regexPrefix = makeRegexPrefix(body);
39432
39466
  return new IgnoreRule(
39433
- origin,
39434
39467
  pattern,
39468
+ mark,
39469
+ body,
39470
+ ignoreCase,
39435
39471
  negative,
39436
- regex2
39472
+ regexPrefix
39437
39473
  );
39438
39474
  };
39475
+ var RuleManager = class {
39476
+ constructor(ignoreCase) {
39477
+ this._ignoreCase = ignoreCase;
39478
+ this._rules = [];
39479
+ }
39480
+ _add(pattern) {
39481
+ if (pattern && pattern[KEY_IGNORE]) {
39482
+ this._rules = this._rules.concat(pattern._rules._rules);
39483
+ this._added = true;
39484
+ return;
39485
+ }
39486
+ if (isString3(pattern)) {
39487
+ pattern = {
39488
+ pattern
39489
+ };
39490
+ }
39491
+ if (checkPattern(pattern.pattern)) {
39492
+ const rule = createRule(pattern, this._ignoreCase);
39493
+ this._added = true;
39494
+ this._rules.push(rule);
39495
+ }
39496
+ }
39497
+ // @param {Array<string> | string | Ignore} pattern
39498
+ add(pattern) {
39499
+ this._added = false;
39500
+ makeArray(
39501
+ isString3(pattern) ? splitPattern(pattern) : pattern
39502
+ ).forEach(this._add, this);
39503
+ return this._added;
39504
+ }
39505
+ // Test one single path without recursively checking parent directories
39506
+ //
39507
+ // - checkUnignored `boolean` whether should check if the path is unignored,
39508
+ // setting `checkUnignored` to `false` could reduce additional
39509
+ // path matching.
39510
+ // - check `string` either `MODE_IGNORE` or `MODE_CHECK_IGNORE`
39511
+ // @returns {TestResult} true if a file is ignored
39512
+ test(path8, checkUnignored, mode) {
39513
+ let ignored = false;
39514
+ let unignored = false;
39515
+ let matchedRule;
39516
+ this._rules.forEach((rule) => {
39517
+ const { negative } = rule;
39518
+ if (unignored === negative && ignored !== unignored || negative && !ignored && !unignored && !checkUnignored) {
39519
+ return;
39520
+ }
39521
+ const matched = rule[mode].test(path8);
39522
+ if (!matched) {
39523
+ return;
39524
+ }
39525
+ ignored = !negative;
39526
+ unignored = negative;
39527
+ matchedRule = negative ? UNDEFINED : rule;
39528
+ });
39529
+ const ret = {
39530
+ ignored,
39531
+ unignored
39532
+ };
39533
+ if (matchedRule) {
39534
+ ret.rule = matchedRule;
39535
+ }
39536
+ return ret;
39537
+ }
39538
+ };
39439
39539
  var throwError = (message, Ctor) => {
39440
39540
  throw new Ctor(message);
39441
39541
  };
@@ -39468,34 +39568,16 @@ var require_ignore = __commonJS({
39468
39568
  allowRelativePaths = false
39469
39569
  } = {}) {
39470
39570
  define2(this, KEY_IGNORE, true);
39471
- this._rules = [];
39472
- this._ignoreCase = ignoreCase;
39473
- this._allowRelativePaths = allowRelativePaths;
39571
+ this._rules = new RuleManager(ignoreCase);
39572
+ this._strictPathCheck = !allowRelativePaths;
39474
39573
  this._initCache();
39475
39574
  }
39476
39575
  _initCache() {
39477
39576
  this._ignoreCache = /* @__PURE__ */ Object.create(null);
39478
39577
  this._testCache = /* @__PURE__ */ Object.create(null);
39479
39578
  }
39480
- _addPattern(pattern) {
39481
- if (pattern && pattern[KEY_IGNORE]) {
39482
- this._rules = this._rules.concat(pattern._rules);
39483
- this._added = true;
39484
- return;
39485
- }
39486
- if (checkPattern(pattern)) {
39487
- const rule = createRule(pattern, this._ignoreCase);
39488
- this._added = true;
39489
- this._rules.push(rule);
39490
- }
39491
- }
39492
- // @param {Array<string> | string | Ignore} pattern
39493
39579
  add(pattern) {
39494
- this._added = false;
39495
- makeArray(
39496
- isString3(pattern) ? splitPattern(pattern) : pattern
39497
- ).forEach(this._addPattern, this);
39498
- if (this._added) {
39580
+ if (this._rules.add(pattern)) {
39499
39581
  this._initCache();
39500
39582
  }
39501
39583
  return this;
@@ -39504,58 +39586,45 @@ var require_ignore = __commonJS({
39504
39586
  addPattern(pattern) {
39505
39587
  return this.add(pattern);
39506
39588
  }
39507
- // | ignored : unignored
39508
- // negative | 0:0 | 0:1 | 1:0 | 1:1
39509
- // -------- | ------- | ------- | ------- | --------
39510
- // 0 | TEST | TEST | SKIP | X
39511
- // 1 | TESTIF | SKIP | TEST | X
39512
- // - SKIP: always skip
39513
- // - TEST: always test
39514
- // - TESTIF: only test if checkUnignored
39515
- // - X: that never happen
39516
- // @param {boolean} whether should check if the path is unignored,
39517
- // setting `checkUnignored` to `false` could reduce additional
39518
- // path matching.
39519
- // @returns {TestResult} true if a file is ignored
39520
- _testOne(path8, checkUnignored) {
39521
- let ignored = false;
39522
- let unignored = false;
39523
- this._rules.forEach((rule) => {
39524
- const { negative } = rule;
39525
- if (unignored === negative && ignored !== unignored || negative && !ignored && !unignored && !checkUnignored) {
39526
- return;
39527
- }
39528
- const matched = rule.regex.test(path8);
39529
- if (matched) {
39530
- ignored = !negative;
39531
- unignored = negative;
39532
- }
39533
- });
39534
- return {
39535
- ignored,
39536
- unignored
39537
- };
39538
- }
39539
39589
  // @returns {TestResult}
39540
39590
  _test(originalPath, cache3, checkUnignored, slices) {
39541
39591
  const path8 = originalPath && checkPath.convert(originalPath);
39542
39592
  checkPath(
39543
39593
  path8,
39544
39594
  originalPath,
39545
- this._allowRelativePaths ? RETURN_FALSE : throwError
39595
+ this._strictPathCheck ? throwError : RETURN_FALSE
39546
39596
  );
39547
39597
  return this._t(path8, cache3, checkUnignored, slices);
39548
39598
  }
39599
+ checkIgnore(path8) {
39600
+ if (!REGEX_TEST_TRAILING_SLASH.test(path8)) {
39601
+ return this.test(path8);
39602
+ }
39603
+ const slices = path8.split(SLASH).filter(Boolean);
39604
+ slices.pop();
39605
+ if (slices.length) {
39606
+ const parent = this._t(
39607
+ slices.join(SLASH) + SLASH,
39608
+ this._testCache,
39609
+ true,
39610
+ slices
39611
+ );
39612
+ if (parent.ignored) {
39613
+ return parent;
39614
+ }
39615
+ }
39616
+ return this._rules.test(path8, false, MODE_CHECK_IGNORE);
39617
+ }
39549
39618
  _t(path8, cache3, checkUnignored, slices) {
39550
39619
  if (path8 in cache3) {
39551
39620
  return cache3[path8];
39552
39621
  }
39553
39622
  if (!slices) {
39554
- slices = path8.split(SLASH);
39623
+ slices = path8.split(SLASH).filter(Boolean);
39555
39624
  }
39556
39625
  slices.pop();
39557
39626
  if (!slices.length) {
39558
- return cache3[path8] = this._testOne(path8, checkUnignored);
39627
+ return cache3[path8] = this._rules.test(path8, checkUnignored, MODE_IGNORE);
39559
39628
  }
39560
39629
  const parent = this._t(
39561
39630
  slices.join(SLASH) + SLASH,
@@ -39563,7 +39632,7 @@ var require_ignore = __commonJS({
39563
39632
  checkUnignored,
39564
39633
  slices
39565
39634
  );
39566
- return cache3[path8] = parent.ignored ? parent : this._testOne(path8, checkUnignored);
39635
+ return cache3[path8] = parent.ignored ? parent : this._rules.test(path8, checkUnignored, MODE_IGNORE);
39567
39636
  }
39568
39637
  ignores(path8) {
39569
39638
  return this._test(path8, this._ignoreCache, false).ignored;
@@ -39581,18 +39650,18 @@ var require_ignore = __commonJS({
39581
39650
  };
39582
39651
  var factory = (options) => new Ignore(options);
39583
39652
  var isPathValid = (path8) => checkPath(path8 && checkPath.convert(path8), path8, RETURN_FALSE);
39584
- factory.isPathValid = isPathValid;
39585
- factory.default = factory;
39586
- module2.exports = factory;
39587
39653
  if (
39588
39654
  // Detect `process` so that it can run in browsers.
39589
39655
  typeof process !== "undefined" && (process.env && process.env.IGNORE_TEST_WIN32 || process.platform === "win32")
39590
39656
  ) {
39591
39657
  const makePosix = (str) => /^\\\\\?\\/.test(str) || /["<>|\u0000-\u001F]+/u.test(str) ? str : str.replace(/\\/g, "/");
39592
39658
  checkPath.convert = makePosix;
39593
- const REGIX_IS_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\//i;
39594
- checkPath.isNotRelative = (path8) => REGIX_IS_WINDOWS_PATH_ABSOLUTE.test(path8) || isNotRelative(path8);
39659
+ const REGEX_TEST_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\//i;
39660
+ checkPath.isNotRelative = (path8) => REGEX_TEST_WINDOWS_PATH_ABSOLUTE.test(path8) || isNotRelative(path8);
39595
39661
  }
39662
+ module2.exports = factory;
39663
+ factory.default = factory;
39664
+ module2.exports.isPathValid = isPathValid;
39596
39665
  }
39597
39666
  });
39598
39667
 
@@ -48725,7 +48794,7 @@ var styles_default = styles2;
48725
48794
  // ../../node_modules/ink/build/reconciler.js
48726
48795
  if (process3.env["DEV"] === "true") {
48727
48796
  try {
48728
- await import("./devtools-YPSDP32D.js");
48797
+ await import("./devtools-JB2HYTEA.js");
48729
48798
  } catch (error) {
48730
48799
  if (error.code === "MODULE_NOT_FOUND") {
48731
48800
  console.warn(`
@@ -63823,6 +63892,7 @@ var postProcessor = {
63823
63892
  }
63824
63893
  };
63825
63894
  var checkedLoadedFor = {};
63895
+ var shouldHandleAsObject = (res) => !isString2(res) && typeof res !== "boolean" && typeof res !== "number";
63826
63896
  var Translator = class _Translator extends EventEmitter {
63827
63897
  constructor(services) {
63828
63898
  let options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
@@ -63921,17 +63991,29 @@ var Translator = class _Translator extends EventEmitter {
63921
63991
  let res = resolved?.res;
63922
63992
  const resUsedKey = resolved?.usedKey || key;
63923
63993
  const resExactUsedKey = resolved?.exactUsedKey || key;
63924
- const resType = Object.prototype.toString.apply(res);
63925
63994
  const noObject = ["[object Number]", "[object Function]", "[object RegExp]"];
63926
63995
  const joinArrays = options.joinArrays !== void 0 ? options.joinArrays : this.options.joinArrays;
63927
63996
  const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;
63928
- const handleAsObject = !isString2(res) && typeof res !== "boolean" && typeof res !== "number";
63929
- if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(isString2(joinArrays) && Array.isArray(res))) {
63997
+ const needsPluralHandling = options.count !== void 0 && !isString2(options.count);
63998
+ const hasDefaultValue = _Translator.hasDefaultValue(options);
63999
+ const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : "";
64000
+ const defaultValueSuffixOrdinalFallback = options.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, {
64001
+ ordinal: false
64002
+ }) : "";
64003
+ const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0;
64004
+ const defaultValue = needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] || options[`defaultValue${defaultValueSuffix}`] || options[`defaultValue${defaultValueSuffixOrdinalFallback}`] || options.defaultValue;
64005
+ let resForObjHndl = res;
64006
+ if (handleAsObjectInI18nFormat && !res && hasDefaultValue) {
64007
+ resForObjHndl = defaultValue;
64008
+ }
64009
+ const handleAsObject = shouldHandleAsObject(resForObjHndl);
64010
+ const resType = Object.prototype.toString.apply(resForObjHndl);
64011
+ if (handleAsObjectInI18nFormat && resForObjHndl && handleAsObject && noObject.indexOf(resType) < 0 && !(isString2(joinArrays) && Array.isArray(resForObjHndl))) {
63930
64012
  if (!options.returnObjects && !this.options.returnObjects) {
63931
64013
  if (!this.options.returnedObjectHandler) {
63932
64014
  this.logger.warn("accessing an object - but returnObjects options is not enabled!");
63933
64015
  }
63934
- const r2 = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, {
64016
+ const r2 = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, resForObjHndl, {
63935
64017
  ...options,
63936
64018
  ns: namespaces
63937
64019
  }) : `key '${key} (${this.language})' returned an object instead of string.`;
@@ -63943,20 +64025,31 @@ var Translator = class _Translator extends EventEmitter {
63943
64025
  return r2;
63944
64026
  }
63945
64027
  if (keySeparator) {
63946
- const resTypeIsArray = Array.isArray(res);
64028
+ const resTypeIsArray = Array.isArray(resForObjHndl);
63947
64029
  const copy2 = resTypeIsArray ? [] : {};
63948
64030
  const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;
63949
- for (const m in res) {
63950
- if (Object.prototype.hasOwnProperty.call(res, m)) {
64031
+ for (const m in resForObjHndl) {
64032
+ if (Object.prototype.hasOwnProperty.call(resForObjHndl, m)) {
63951
64033
  const deepKey = `${newKeyToUse}${keySeparator}${m}`;
63952
- copy2[m] = this.translate(deepKey, {
63953
- ...options,
63954
- ...{
63955
- joinArrays: false,
63956
- ns: namespaces
63957
- }
63958
- });
63959
- if (copy2[m] === deepKey) copy2[m] = res[m];
64034
+ if (hasDefaultValue && !res) {
64035
+ copy2[m] = this.translate(deepKey, {
64036
+ ...options,
64037
+ defaultValue: shouldHandleAsObject(defaultValue) ? defaultValue[m] : void 0,
64038
+ ...{
64039
+ joinArrays: false,
64040
+ ns: namespaces
64041
+ }
64042
+ });
64043
+ } else {
64044
+ copy2[m] = this.translate(deepKey, {
64045
+ ...options,
64046
+ ...{
64047
+ joinArrays: false,
64048
+ ns: namespaces
64049
+ }
64050
+ });
64051
+ }
64052
+ if (copy2[m] === deepKey) copy2[m] = resForObjHndl[m];
63960
64053
  }
63961
64054
  }
63962
64055
  res = copy2;
@@ -63967,14 +64060,6 @@ var Translator = class _Translator extends EventEmitter {
63967
64060
  } else {
63968
64061
  let usedDefault = false;
63969
64062
  let usedKey = false;
63970
- const needsPluralHandling = options.count !== void 0 && !isString2(options.count);
63971
- const hasDefaultValue = _Translator.hasDefaultValue(options);
63972
- const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : "";
63973
- const defaultValueSuffixOrdinalFallback = options.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, {
63974
- ordinal: false
63975
- }) : "";
63976
- const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0;
63977
- const defaultValue = needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] || options[`defaultValue${defaultValueSuffix}`] || options[`defaultValue${defaultValueSuffixOrdinalFallback}`] || options.defaultValue;
63978
64063
  if (!this.isValidLookup(res) && hasDefaultValue) {
63979
64064
  usedDefault = true;
63980
64065
  res = defaultValue;
@@ -71061,7 +71146,7 @@ function reportCommandStartEvent({
71061
71146
  }
71062
71147
 
71063
71148
  // package.json
71064
- var version = "0.0.97";
71149
+ var version = "0.0.98";
71065
71150
  var package_default = {
71066
71151
  name: "@wix/create-app",
71067
71152
  description: "Create Wix apps",
@@ -71071,7 +71156,7 @@ var package_default = {
71071
71156
  devDependencies: {
71072
71157
  "@commander-js/extra-typings": "^13.0.0",
71073
71158
  "@types/is-git-url": "^1.0.2",
71074
- "@types/lodash": "^4.17.6",
71159
+ "@types/lodash": "^4.17.16",
71075
71160
  "@types/react": "^18.3.3",
71076
71161
  "@types/semver": "^7.5.8",
71077
71162
  "@types/validate-npm-package-name": "^4.0.2",
@@ -71091,7 +71176,7 @@ var package_default = {
71091
71176
  "@wix/package-manager": "workspace:*",
71092
71177
  "@wix/tsup-configs": "workspace:*",
71093
71178
  commander: "^13.0.0",
71094
- globby: "^14.0.2",
71179
+ globby: "^14.1.0",
71095
71180
  "is-git-url": "^1.0.0",
71096
71181
  lodash: "^4.17.21",
71097
71182
  "package-json": "^10.0.1",
@@ -73373,7 +73458,8 @@ var import_fast_glob2 = __toESM(require_out4(), 1);
73373
73458
 
73374
73459
  // ../../node_modules/globby/node_modules/path-type/index.js
73375
73460
  init_esm_shims();
73376
- import fs6, { promises as fsPromises } from "fs";
73461
+ import fs6 from "node:fs";
73462
+ import fsPromises from "node:fs/promises";
73377
73463
  async function isType10(fsStatType, statsMethodName, filePath) {
73378
73464
  if (typeof filePath !== "string") {
73379
73465
  throw new TypeError(`Expected a string, got ${typeof filePath}`);
@@ -73401,19 +73487,23 @@ function isTypeSync(fsStatType, statsMethodName, filePath) {
73401
73487
  throw error;
73402
73488
  }
73403
73489
  }
73404
- var isFile = isType10.bind(null, "stat", "isFile");
73405
- var isDirectory = isType10.bind(null, "stat", "isDirectory");
73406
- var isSymlink = isType10.bind(null, "lstat", "isSymbolicLink");
73407
- var isFileSync = isTypeSync.bind(null, "statSync", "isFile");
73408
- var isDirectorySync = isTypeSync.bind(null, "statSync", "isDirectory");
73409
- var isSymlinkSync = isTypeSync.bind(null, "lstatSync", "isSymbolicLink");
73490
+ var isFile = isType10.bind(void 0, "stat", "isFile");
73491
+ var isDirectory = isType10.bind(void 0, "stat", "isDirectory");
73492
+ var isSymlink = isType10.bind(void 0, "lstat", "isSymbolicLink");
73493
+ var isFileSync = isTypeSync.bind(void 0, "statSync", "isFile");
73494
+ var isDirectorySync = isTypeSync.bind(void 0, "statSync", "isDirectory");
73495
+ var isSymlinkSync = isTypeSync.bind(void 0, "lstatSync", "isSymbolicLink");
73410
73496
 
73411
- // ../../node_modules/unicorn-magic/node.js
73497
+ // ../../node_modules/globby/node_modules/unicorn-magic/node.js
73412
73498
  init_esm_shims();
73499
+ import { promisify as promisify6 } from "node:util";
73500
+ import { execFile as execFileCallback, execFileSync as execFileSyncOriginal } from "node:child_process";
73413
73501
  import { fileURLToPath as fileURLToPath2 } from "node:url";
73502
+ var execFileOriginal = promisify6(execFileCallback);
73414
73503
  function toPath(urlOrPath) {
73415
73504
  return urlOrPath instanceof URL ? fileURLToPath2(urlOrPath) : urlOrPath;
73416
73505
  }
73506
+ var TEN_MEGABYTES_IN_BYTES = 10 * 1024 * 1024;
73417
73507
 
73418
73508
  // ../../node_modules/globby/ignore.js
73419
73509
  init_esm_shims();
@@ -80761,16 +80851,16 @@ init_esm_shims();
80761
80851
  import fs10 from "node:fs";
80762
80852
  import path7 from "node:path";
80763
80853
  import stream from "node:stream";
80764
- import { promisify as promisify7 } from "node:util";
80854
+ import { promisify as promisify8 } from "node:util";
80765
80855
 
80766
80856
  // ../../node_modules/unique-string/index.js
80767
80857
  init_esm_shims();
80768
80858
 
80769
80859
  // ../../node_modules/crypto-random-string/index.js
80770
80860
  init_esm_shims();
80771
- import { promisify as promisify6 } from "util";
80861
+ import { promisify as promisify7 } from "util";
80772
80862
  import crypto from "crypto";
80773
- var randomBytesAsync = promisify6(crypto.randomBytes);
80863
+ var randomBytesAsync = promisify7(crypto.randomBytes);
80774
80864
  var urlSafeCharacters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~".split("");
80775
80865
  var numericCharacters = "0123456789".split("");
80776
80866
  var distinguishableCharacters = "CDEHKMPRTUWXY012458".split("");
@@ -80895,7 +80985,7 @@ var temporaryDirectory = await fs9.realpath(os7.tmpdir());
80895
80985
  var temp_dir_default = temporaryDirectory;
80896
80986
 
80897
80987
  // ../../node_modules/tempy/index.js
80898
- var pipeline = promisify7(stream.pipeline);
80988
+ var pipeline = promisify8(stream.pipeline);
80899
80989
  var getPath3 = (prefix = "") => path7.join(temp_dir_default, prefix + uniqueString());
80900
80990
  function temporaryDirectory2({ prefix = "" } = {}) {
80901
80991
  const directory = getPath3(prefix);