@shopify/create-app 4.9.3 → 4.9.4

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 (51) hide show
  1. package/dist/{analytics-XMJCXJPW.js → analytics-7RLRFLCQ.js} +17 -17
  2. package/dist/{analytics-TTLHU7RJ.js → analytics-WZ4U5RJZ.js} +17 -17
  3. package/dist/{chunk-T2OHLRUY.js → chunk-52LPDF46.js} +5 -5
  4. package/dist/{chunk-7U2D7OQY.js → chunk-53A2QBFH.js} +16 -16
  5. package/dist/{chunk-VDUAROBQ.js → chunk-57VCTLOQ.js} +3 -3
  6. package/dist/{chunk-GI3EXDGY.js → chunk-6BEAY6DV.js} +6 -6
  7. package/dist/{chunk-HAZKL7NQ.js → chunk-75IKCZVA.js} +7 -7
  8. package/dist/{chunk-KFK6UTCG.js → chunk-7EY7VZVX.js} +2 -2
  9. package/dist/{chunk-HT6VPO56.js → chunk-ATS65VTD.js} +3 -3
  10. package/dist/{chunk-CK3T27VW.js → chunk-C3P3BBJI.js} +2 -2
  11. package/dist/{chunk-SHCNJ47P.js → chunk-DXHBESFY.js} +3 -3
  12. package/dist/{chunk-3FNBF3J4.js → chunk-IG7O7GU7.js} +3 -3
  13. package/dist/{chunk-QIGNQLSJ.js → chunk-IIDLK3B2.js} +2 -2
  14. package/dist/{chunk-YGIFL56H.js → chunk-IYZRNCTE.js} +10 -10
  15. package/dist/{chunk-N46TBZG5.js → chunk-L6MEGCFP.js} +2 -2
  16. package/dist/{chunk-MA5EMKMH.js → chunk-MNUDC2IF.js} +2 -2
  17. package/dist/{chunk-R6VAFEZ5.js → chunk-NN45GPHA.js} +4 -4
  18. package/dist/{chunk-U53ZNKER.js → chunk-PUN2NAT5.js} +16 -21
  19. package/dist/{chunk-ZWNY6NQH.js → chunk-QLLL4VIM.js} +7 -7
  20. package/dist/{chunk-GXR6N3MP.js → chunk-RRQPXOTA.js} +2 -2
  21. package/dist/{chunk-CJUEOAXA.js → chunk-TJDRI2KO.js} +6 -6
  22. package/dist/{chunk-5H43E2UF.js → chunk-TLGD6UXP.js} +18 -18
  23. package/dist/{chunk-N5WBV6WX.js → chunk-VDSENONW.js} +7 -7
  24. package/dist/{command-json-schema-RCC6ZVRF.js → command-json-schema-LA7ZVL4O.js} +10 -10
  25. package/dist/{conf-store-STBXZZZR.js → conf-store-NRFTTQPX.js} +7 -7
  26. package/dist/{custom-oclif-loader-Q7GRLCIZ.js → custom-oclif-loader-WGQ253VO.js} +8 -8
  27. package/dist/{deprecations-T466QS35.js → deprecations-WHQU454D.js} +13 -13
  28. package/dist/{environment-OJNKZ7ML.js → environment-5XBFWY2A.js} +4 -4
  29. package/dist/environments-II3QYMU3.js +32 -0
  30. package/dist/{error-handler-DRCELNRR.js → error-handler-MENPWWOI.js} +17 -17
  31. package/dist/{fs-VUYIAOSY.js → fs-SDWO6JOY.js} +5 -5
  32. package/dist/hooks/postrun.js +6 -6
  33. package/dist/hooks/prerun.js +6 -6
  34. package/dist/index.js +113 -60
  35. package/dist/{is-global-C4ZYYOO2.js → is-global-JQIYTGBN.js} +5 -5
  36. package/dist/{json-error-YAPVM6KF.js → json-error-XFVCG7UX.js} +8 -8
  37. package/dist/{local-YQI64EPC.js → local-G2BSQFFH.js} +4 -4
  38. package/dist/{metadata-NABA27NK.js → metadata-XWHS3SDJ.js} +5 -5
  39. package/dist/{node-package-manager-GY7LMT5D.js → node-package-manager-QET5FYFY.js} +15 -15
  40. package/dist/{notifications-system-244NM3IW.js → notifications-system-TAHUXXGQ.js} +18 -18
  41. package/dist/{os-34M2RBVM.js → os-JHHBXO2N.js} +6 -6
  42. package/dist/{output-GT6WTA4L.js → output-2B3LJAUM.js} +5 -5
  43. package/dist/{path-2KZ7FSGN.js → path-RDYZ7Q5T.js} +2 -2
  44. package/dist/{system-Q623ZJ6Z.js → system-EHWOZQCE.js} +13 -13
  45. package/dist/{ui-DVZCQR62.js → ui-ZXHKYLCS.js} +13 -13
  46. package/dist/{upgrade-3FR3Z3QX.js → upgrade-H2IEKPCC.js} +19 -19
  47. package/dist/{version-GZMTMHG3.js → version-IJ2X574N.js} +2 -2
  48. package/dist/{version-GRDUIVHB.js → version-QY5L7H5O.js} +14 -14
  49. package/oclif.manifest.json +1 -1
  50. package/package.json +3 -3
  51. package/dist/environments-L53AHQLZ.js +0 -32
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  decodeToml,
5
5
  loadEnvironment,
6
6
  require_toml_patch
7
- } from "./chunk-N5WBV6WX.js";
7
+ } from "./chunk-VDSENONW.js";
8
8
  import {
9
9
  require_normalize_path
10
10
  } from "./chunk-RIQNGBMO.js";
@@ -15,7 +15,7 @@ import {
15
15
  import {
16
16
  setCurrentCommandId,
17
17
  showNotificationsIfNeeded
18
- } from "./chunk-YGIFL56H.js";
18
+ } from "./chunk-IYZRNCTE.js";
19
19
  import {
20
20
  ClientError,
21
21
  DevServerCore,
@@ -81,7 +81,7 @@ import {
81
81
  setPathValue,
82
82
  shopifyFetch,
83
83
  storeAdminUrl
84
- } from "./chunk-5H43E2UF.js";
84
+ } from "./chunk-TLGD6UXP.js";
85
85
  import {
86
86
  setNextDeprecationDate
87
87
  } from "./chunk-MSED5ZFM.js";
@@ -103,26 +103,26 @@ import {
103
103
  usesWorkspaces,
104
104
  versionSatisfies,
105
105
  writePackageJSON
106
- } from "./chunk-HAZKL7NQ.js";
106
+ } from "./chunk-75IKCZVA.js";
107
107
  import {
108
108
  import_websocket_server
109
109
  } from "./chunk-LDYT4FTV.js";
110
110
  import "./chunk-FKZ3NFHZ.js";
111
111
  import {
112
112
  CLI_KIT_VERSION
113
- } from "./chunk-MA5EMKMH.js";
113
+ } from "./chunk-MNUDC2IF.js";
114
114
  import "./chunk-G53O4PDO.js";
115
115
  import {
116
116
  LocalStorage,
117
117
  require_ajv,
118
118
  runAtMinimumInterval,
119
119
  serviceEnvironment
120
- } from "./chunk-CJUEOAXA.js";
120
+ } from "./chunk-TJDRI2KO.js";
121
121
  import {
122
122
  globalCLIVersion,
123
123
  isPreReleaseVersion,
124
124
  localCLIVersion
125
- } from "./chunk-QIGNQLSJ.js";
125
+ } from "./chunk-IIDLK3B2.js";
126
126
  import {
127
127
  AbortController as AbortController2,
128
128
  Alert,
@@ -170,10 +170,10 @@ import {
170
170
  use_input_default,
171
171
  use_stdin_default,
172
172
  use_stdout_default
173
- } from "./chunk-U53ZNKER.js";
173
+ } from "./chunk-PUN2NAT5.js";
174
174
  import {
175
175
  runWithCommandEventsForCommand
176
- } from "./chunk-T2OHLRUY.js";
176
+ } from "./chunk-52LPDF46.js";
177
177
  import {
178
178
  execa,
179
179
  isStream,
@@ -186,14 +186,14 @@ import {
186
186
  require_signal_exit,
187
187
  stripFinalNewline,
188
188
  username
189
- } from "./chunk-GXR6N3MP.js";
189
+ } from "./chunk-RRQPXOTA.js";
190
190
  import "./chunk-JGGOQOPO.js";
191
191
  import {
192
192
  addPublicMetadata,
193
193
  addSensitiveMetadata,
194
194
  createRuntimeMetadataContainer,
195
195
  runWithTimer
196
- } from "./chunk-HT6VPO56.js";
196
+ } from "./chunk-ATS65VTD.js";
197
197
  import {
198
198
  fileHash,
199
199
  getAppAutomationToken,
@@ -203,23 +203,23 @@ import {
203
203
  nonRandomUUID,
204
204
  randomUUID,
205
205
  sha256
206
- } from "./chunk-SHCNJ47P.js";
206
+ } from "./chunk-DXHBESFY.js";
207
207
  import {
208
208
  defineJsonOutputSchema
209
- } from "./chunk-N46TBZG5.js";
209
+ } from "./chunk-L6MEGCFP.js";
210
210
  import "./chunk-CM6ALOD7.js";
211
211
  import {
212
212
  AbortError,
213
213
  AbortSilentError,
214
214
  BugError,
215
215
  CancelExecution
216
- } from "./chunk-GI3EXDGY.js";
216
+ } from "./chunk-6BEAY6DV.js";
217
217
  import {
218
218
  waitForPostRunHookAndExit
219
- } from "./chunk-7U2D7OQY.js";
219
+ } from "./chunk-53A2QBFH.js";
220
220
  import {
221
221
  treeKill
222
- } from "./chunk-KFK6UTCG.js";
222
+ } from "./chunk-7EY7VZVX.js";
223
223
  import {
224
224
  appendFile,
225
225
  asHumanFriendlyArray,
@@ -316,7 +316,7 @@ import {
316
316
  unstyled,
317
317
  writeFile,
318
318
  writeFileSync
319
- } from "./chunk-ZWNY6NQH.js";
319
+ } from "./chunk-QLLL4VIM.js";
320
320
  import {
321
321
  codespacePortForwardingDomain,
322
322
  codespaceURL,
@@ -330,11 +330,11 @@ import {
330
330
  isUnitTest,
331
331
  isVerbose,
332
332
  noInputFlag
333
- } from "./chunk-R6VAFEZ5.js";
333
+ } from "./chunk-NN45GPHA.js";
334
334
  import {
335
335
  environmentVariables,
336
336
  themeKitAccessDomain
337
- } from "./chunk-CK3T27VW.js";
337
+ } from "./chunk-C3P3BBJI.js";
338
338
  import {
339
339
  isTruthy
340
340
  } from "./chunk-HNIAZN6U.js";
@@ -344,7 +344,9 @@ import {
344
344
  } from "./chunk-EJEHENXO.js";
345
345
  import "./chunk-23UTCSPZ.js";
346
346
  import "./chunk-LBXDGVFS.js";
347
- import "./chunk-OQ3KXXGH.js";
347
+ import {
348
+ require_semver
349
+ } from "./chunk-OQ3KXXGH.js";
348
350
  import "./chunk-D6NYWNY2.js";
349
351
  import {
350
352
  basename,
@@ -362,7 +364,7 @@ import {
362
364
  resolvePath,
363
365
  sanitizeRelativePath,
364
366
  sniffForJson
365
- } from "./chunk-VDUAROBQ.js";
367
+ } from "./chunk-57VCTLOQ.js";
366
368
  import "./chunk-UFLX7QDP.js";
367
369
  import "./chunk-SI4LHZYW.js";
368
370
  import {
@@ -30653,7 +30655,7 @@ var require_lodash = __commonJS({
30653
30655
  function isWeakSet(value) {
30654
30656
  return isObjectLike(value) && baseGetTag(value) == weakSetTag;
30655
30657
  }
30656
- var lt = createRelationalOperation(baseLt), lte = createRelationalOperation(function(value, other) {
30658
+ var lt2 = createRelationalOperation(baseLt), lte = createRelationalOperation(function(value, other) {
30657
30659
  return value <= other;
30658
30660
  });
30659
30661
  function toArray(value) {
@@ -31226,7 +31228,7 @@ function print() { __p += __j.call(arguments, '') }
31226
31228
  function sumBy(array, iteratee2) {
31227
31229
  return array && array.length ? baseSum(array, getIteratee(iteratee2, 2)) : 0;
31228
31230
  }
31229
- return lodash.after = after, lodash.ary = ary, lodash.assign = assign, lodash.assignIn = assignIn, lodash.assignInWith = assignInWith, lodash.assignWith = assignWith, lodash.at = at, lodash.before = before, lodash.bind = bind, lodash.bindAll = bindAll, lodash.bindKey = bindKey, lodash.castArray = castArray, lodash.chain = chain, lodash.chunk = chunk, lodash.compact = compact2, lodash.concat = concat, lodash.cond = cond, lodash.conforms = conforms, lodash.constant = constant, lodash.countBy = countBy, lodash.create = create, lodash.curry = curry, lodash.curryRight = curryRight, lodash.debounce = debounce2, lodash.defaults = defaults, lodash.defaultsDeep = defaultsDeep, lodash.defer = defer2, lodash.delay = delay2, lodash.difference = difference2, lodash.differenceBy = differenceBy, lodash.differenceWith = differenceWith, lodash.drop = drop, lodash.dropRight = dropRight, lodash.dropRightWhile = dropRightWhile, lodash.dropWhile = dropWhile, lodash.fill = fill, lodash.filter = filter, lodash.flatMap = flatMap, lodash.flatMapDeep = flatMapDeep, lodash.flatMapDepth = flatMapDepth, lodash.flatten = flatten, lodash.flattenDeep = flattenDeep, lodash.flattenDepth = flattenDepth, lodash.flip = flip, lodash.flow = flow, lodash.flowRight = flowRight, lodash.fromPairs = fromPairs, lodash.functions = functions, lodash.functionsIn = functionsIn, lodash.groupBy = groupBy2, lodash.initial = initial, lodash.intersection = intersection, lodash.intersectionBy = intersectionBy, lodash.intersectionWith = intersectionWith, lodash.invert = invert, lodash.invertBy = invertBy, lodash.invokeMap = invokeMap, lodash.iteratee = iteratee, lodash.keyBy = keyBy, lodash.keys = keys, lodash.keysIn = keysIn, lodash.map = map, lodash.mapKeys = mapKeys, lodash.mapValues = mapValues, lodash.matches = matches2, lodash.matchesProperty = matchesProperty, lodash.memoize = memoize, lodash.merge = merge, lodash.mergeWith = mergeWith, lodash.method = method, lodash.methodOf = methodOf, lodash.mixin = mixin, lodash.negate = negate, lodash.nthArg = nthArg, lodash.omit = omit, lodash.omitBy = omitBy, lodash.once = once, lodash.orderBy = orderBy, lodash.over = over, lodash.overArgs = overArgs, lodash.overEvery = overEvery, lodash.overSome = overSome, lodash.partial = partial, lodash.partialRight = partialRight, lodash.partition = partition2, lodash.pick = pick, lodash.pickBy = pickBy2, lodash.property = property, lodash.propertyOf = propertyOf, lodash.pull = pull3, lodash.pullAll = pullAll, lodash.pullAllBy = pullAllBy, lodash.pullAllWith = pullAllWith, lodash.pullAt = pullAt, lodash.range = range, lodash.rangeRight = rangeRight, lodash.rearg = rearg, lodash.reject = reject, lodash.remove = remove2, lodash.rest = rest, lodash.reverse = reverse, lodash.sampleSize = sampleSize, lodash.set = set, lodash.setWith = setWith, lodash.shuffle = shuffle, lodash.slice = slice, lodash.sortBy = sortBy, lodash.sortedUniq = sortedUniq, lodash.sortedUniqBy = sortedUniqBy, lodash.split = split, lodash.spread = spread, lodash.tail = tail, lodash.take = take, lodash.takeRight = takeRight, lodash.takeRightWhile = takeRightWhile, lodash.takeWhile = takeWhile, lodash.tap = tap, lodash.throttle = throttle, lodash.thru = thru, lodash.toArray = toArray, lodash.toPairs = toPairs, lodash.toPairsIn = toPairsIn, lodash.toPath = toPath, lodash.toPlainObject = toPlainObject, lodash.transform = transform2, lodash.unary = unary, lodash.union = union2, lodash.unionBy = unionBy, lodash.unionWith = unionWith, lodash.uniq = uniq2, lodash.uniqBy = uniqBy2, lodash.uniqWith = uniqWith, lodash.unset = unset, lodash.unzip = unzip, lodash.unzipWith = unzipWith, lodash.update = update, lodash.updateWith = updateWith, lodash.values = values2, lodash.valuesIn = valuesIn, lodash.without = without, lodash.words = words, lodash.wrap = wrap, lodash.xor = xor, lodash.xorBy = xorBy, lodash.xorWith = xorWith, lodash.zip = zip2, lodash.zipObject = zipObject, lodash.zipObjectDeep = zipObjectDeep, lodash.zipWith = zipWith, lodash.entries = toPairs, lodash.entriesIn = toPairsIn, lodash.extend = assignIn, lodash.extendWith = assignInWith, mixin(lodash, lodash), lodash.add = add, lodash.attempt = attempt, lodash.camelCase = camelCase, lodash.capitalize = capitalize2, lodash.ceil = ceil, lodash.clamp = clamp, lodash.clone = clone, lodash.cloneDeep = cloneDeep2, lodash.cloneDeepWith = cloneDeepWith, lodash.cloneWith = cloneWith, lodash.conformsTo = conformsTo, lodash.deburr = deburr, lodash.defaultTo = defaultTo, lodash.divide = divide, lodash.endsWith = endsWith3, lodash.eq = eq, lodash.escape = escape, lodash.escapeRegExp = escapeRegExp4, lodash.every = every, lodash.find = find, lodash.findIndex = findIndex, lodash.findKey = findKey, lodash.findLast = findLast, lodash.findLastIndex = findLastIndex, lodash.findLastKey = findLastKey, lodash.floor = floor, lodash.forEach = forEach, lodash.forEachRight = forEachRight, lodash.forIn = forIn, lodash.forInRight = forInRight, lodash.forOwn = forOwn, lodash.forOwnRight = forOwnRight, lodash.get = get, lodash.gt = gt, lodash.gte = gte, lodash.has = has, lodash.hasIn = hasIn, lodash.head = head, lodash.identity = identity2, lodash.includes = includes2, lodash.indexOf = indexOf, lodash.inRange = inRange, lodash.invoke = invoke, lodash.isArguments = isArguments, lodash.isArray = isArray, lodash.isArrayBuffer = isArrayBuffer, lodash.isArrayLike = isArrayLike, lodash.isArrayLikeObject = isArrayLikeObject, lodash.isBoolean = isBoolean2, lodash.isBuffer = isBuffer, lodash.isDate = isDate, lodash.isElement = isElement, lodash.isEmpty = isEmpty2, lodash.isEqual = isEqual, lodash.isEqualWith = isEqualWith, lodash.isError = isError2, lodash.isFinite = isFinite2, lodash.isFunction = isFunction, lodash.isInteger = isInteger, lodash.isLength = isLength, lodash.isMap = isMap, lodash.isMatch = isMatch, lodash.isMatchWith = isMatchWith, lodash.isNaN = isNaN2, lodash.isNative = isNative, lodash.isNil = isNil, lodash.isNull = isNull, lodash.isNumber = isNumber2, lodash.isObject = isObject2, lodash.isObjectLike = isObjectLike, lodash.isPlainObject = isPlainObject3, lodash.isRegExp = isRegExp, lodash.isSafeInteger = isSafeInteger, lodash.isSet = isSet, lodash.isString = isString3, lodash.isSymbol = isSymbol, lodash.isTypedArray = isTypedArray, lodash.isUndefined = isUndefined, lodash.isWeakMap = isWeakMap, lodash.isWeakSet = isWeakSet, lodash.join = join2, lodash.kebabCase = kebabCase, lodash.last = last, lodash.lastIndexOf = lastIndexOf, lodash.lowerCase = lowerCase, lodash.lowerFirst = lowerFirst, lodash.lt = lt, lodash.lte = lte, lodash.max = max, lodash.maxBy = maxBy, lodash.mean = mean, lodash.meanBy = meanBy, lodash.min = min, lodash.minBy = minBy, lodash.stubArray = stubArray, lodash.stubFalse = stubFalse, lodash.stubObject = stubObject, lodash.stubString = stubString, lodash.stubTrue = stubTrue, lodash.multiply = multiply, lodash.nth = nth, lodash.noConflict = noConflict, lodash.noop = noop2, lodash.now = now, lodash.pad = pad, lodash.padEnd = padEnd, lodash.padStart = padStart, lodash.parseInt = parseInt2, lodash.random = random, lodash.reduce = reduce, lodash.reduceRight = reduceRight, lodash.repeat = repeat3, lodash.replace = replace, lodash.result = result, lodash.round = round, lodash.runInContext = runInContext2, lodash.sample = sample, lodash.size = size, lodash.snakeCase = snakeCase, lodash.some = some, lodash.sortedIndex = sortedIndex, lodash.sortedIndexBy = sortedIndexBy, lodash.sortedIndexOf = sortedIndexOf, lodash.sortedLastIndex = sortedLastIndex, lodash.sortedLastIndexBy = sortedLastIndexBy, lodash.sortedLastIndexOf = sortedLastIndexOf, lodash.startCase = startCase, lodash.startsWith = startsWith3, lodash.subtract = subtract, lodash.sum = sum, lodash.sumBy = sumBy, lodash.template = template, lodash.times = times, lodash.toFinite = toFinite, lodash.toInteger = toInteger, lodash.toLength = toLength, lodash.toLower = toLower, lodash.toNumber = toNumber, lodash.toSafeInteger = toSafeInteger, lodash.toString = toString2, lodash.toUpper = toUpper, lodash.trim = trim2, lodash.trimEnd = trimEnd, lodash.trimStart = trimStart, lodash.truncate = truncate, lodash.unescape = unescape4, lodash.uniqueId = uniqueId, lodash.upperCase = upperCase, lodash.upperFirst = upperFirst, lodash.each = forEach, lodash.eachRight = forEachRight, lodash.first = head, mixin(lodash, (function() {
31231
+ return lodash.after = after, lodash.ary = ary, lodash.assign = assign, lodash.assignIn = assignIn, lodash.assignInWith = assignInWith, lodash.assignWith = assignWith, lodash.at = at, lodash.before = before, lodash.bind = bind, lodash.bindAll = bindAll, lodash.bindKey = bindKey, lodash.castArray = castArray, lodash.chain = chain, lodash.chunk = chunk, lodash.compact = compact2, lodash.concat = concat, lodash.cond = cond, lodash.conforms = conforms, lodash.constant = constant, lodash.countBy = countBy, lodash.create = create, lodash.curry = curry, lodash.curryRight = curryRight, lodash.debounce = debounce2, lodash.defaults = defaults, lodash.defaultsDeep = defaultsDeep, lodash.defer = defer2, lodash.delay = delay2, lodash.difference = difference2, lodash.differenceBy = differenceBy, lodash.differenceWith = differenceWith, lodash.drop = drop, lodash.dropRight = dropRight, lodash.dropRightWhile = dropRightWhile, lodash.dropWhile = dropWhile, lodash.fill = fill, lodash.filter = filter, lodash.flatMap = flatMap, lodash.flatMapDeep = flatMapDeep, lodash.flatMapDepth = flatMapDepth, lodash.flatten = flatten, lodash.flattenDeep = flattenDeep, lodash.flattenDepth = flattenDepth, lodash.flip = flip, lodash.flow = flow, lodash.flowRight = flowRight, lodash.fromPairs = fromPairs, lodash.functions = functions, lodash.functionsIn = functionsIn, lodash.groupBy = groupBy2, lodash.initial = initial, lodash.intersection = intersection, lodash.intersectionBy = intersectionBy, lodash.intersectionWith = intersectionWith, lodash.invert = invert, lodash.invertBy = invertBy, lodash.invokeMap = invokeMap, lodash.iteratee = iteratee, lodash.keyBy = keyBy, lodash.keys = keys, lodash.keysIn = keysIn, lodash.map = map, lodash.mapKeys = mapKeys, lodash.mapValues = mapValues, lodash.matches = matches2, lodash.matchesProperty = matchesProperty, lodash.memoize = memoize, lodash.merge = merge, lodash.mergeWith = mergeWith, lodash.method = method, lodash.methodOf = methodOf, lodash.mixin = mixin, lodash.negate = negate, lodash.nthArg = nthArg, lodash.omit = omit, lodash.omitBy = omitBy, lodash.once = once, lodash.orderBy = orderBy, lodash.over = over, lodash.overArgs = overArgs, lodash.overEvery = overEvery, lodash.overSome = overSome, lodash.partial = partial, lodash.partialRight = partialRight, lodash.partition = partition2, lodash.pick = pick, lodash.pickBy = pickBy2, lodash.property = property, lodash.propertyOf = propertyOf, lodash.pull = pull3, lodash.pullAll = pullAll, lodash.pullAllBy = pullAllBy, lodash.pullAllWith = pullAllWith, lodash.pullAt = pullAt, lodash.range = range, lodash.rangeRight = rangeRight, lodash.rearg = rearg, lodash.reject = reject, lodash.remove = remove2, lodash.rest = rest, lodash.reverse = reverse, lodash.sampleSize = sampleSize, lodash.set = set, lodash.setWith = setWith, lodash.shuffle = shuffle, lodash.slice = slice, lodash.sortBy = sortBy, lodash.sortedUniq = sortedUniq, lodash.sortedUniqBy = sortedUniqBy, lodash.split = split, lodash.spread = spread, lodash.tail = tail, lodash.take = take, lodash.takeRight = takeRight, lodash.takeRightWhile = takeRightWhile, lodash.takeWhile = takeWhile, lodash.tap = tap, lodash.throttle = throttle, lodash.thru = thru, lodash.toArray = toArray, lodash.toPairs = toPairs, lodash.toPairsIn = toPairsIn, lodash.toPath = toPath, lodash.toPlainObject = toPlainObject, lodash.transform = transform2, lodash.unary = unary, lodash.union = union2, lodash.unionBy = unionBy, lodash.unionWith = unionWith, lodash.uniq = uniq2, lodash.uniqBy = uniqBy2, lodash.uniqWith = uniqWith, lodash.unset = unset, lodash.unzip = unzip, lodash.unzipWith = unzipWith, lodash.update = update, lodash.updateWith = updateWith, lodash.values = values2, lodash.valuesIn = valuesIn, lodash.without = without, lodash.words = words, lodash.wrap = wrap, lodash.xor = xor, lodash.xorBy = xorBy, lodash.xorWith = xorWith, lodash.zip = zip2, lodash.zipObject = zipObject, lodash.zipObjectDeep = zipObjectDeep, lodash.zipWith = zipWith, lodash.entries = toPairs, lodash.entriesIn = toPairsIn, lodash.extend = assignIn, lodash.extendWith = assignInWith, mixin(lodash, lodash), lodash.add = add, lodash.attempt = attempt, lodash.camelCase = camelCase, lodash.capitalize = capitalize2, lodash.ceil = ceil, lodash.clamp = clamp, lodash.clone = clone, lodash.cloneDeep = cloneDeep2, lodash.cloneDeepWith = cloneDeepWith, lodash.cloneWith = cloneWith, lodash.conformsTo = conformsTo, lodash.deburr = deburr, lodash.defaultTo = defaultTo, lodash.divide = divide, lodash.endsWith = endsWith3, lodash.eq = eq, lodash.escape = escape, lodash.escapeRegExp = escapeRegExp4, lodash.every = every, lodash.find = find, lodash.findIndex = findIndex, lodash.findKey = findKey, lodash.findLast = findLast, lodash.findLastIndex = findLastIndex, lodash.findLastKey = findLastKey, lodash.floor = floor, lodash.forEach = forEach, lodash.forEachRight = forEachRight, lodash.forIn = forIn, lodash.forInRight = forInRight, lodash.forOwn = forOwn, lodash.forOwnRight = forOwnRight, lodash.get = get, lodash.gt = gt, lodash.gte = gte, lodash.has = has, lodash.hasIn = hasIn, lodash.head = head, lodash.identity = identity2, lodash.includes = includes2, lodash.indexOf = indexOf, lodash.inRange = inRange, lodash.invoke = invoke, lodash.isArguments = isArguments, lodash.isArray = isArray, lodash.isArrayBuffer = isArrayBuffer, lodash.isArrayLike = isArrayLike, lodash.isArrayLikeObject = isArrayLikeObject, lodash.isBoolean = isBoolean2, lodash.isBuffer = isBuffer, lodash.isDate = isDate, lodash.isElement = isElement, lodash.isEmpty = isEmpty2, lodash.isEqual = isEqual, lodash.isEqualWith = isEqualWith, lodash.isError = isError2, lodash.isFinite = isFinite2, lodash.isFunction = isFunction, lodash.isInteger = isInteger, lodash.isLength = isLength, lodash.isMap = isMap, lodash.isMatch = isMatch, lodash.isMatchWith = isMatchWith, lodash.isNaN = isNaN2, lodash.isNative = isNative, lodash.isNil = isNil, lodash.isNull = isNull, lodash.isNumber = isNumber2, lodash.isObject = isObject2, lodash.isObjectLike = isObjectLike, lodash.isPlainObject = isPlainObject3, lodash.isRegExp = isRegExp, lodash.isSafeInteger = isSafeInteger, lodash.isSet = isSet, lodash.isString = isString3, lodash.isSymbol = isSymbol, lodash.isTypedArray = isTypedArray, lodash.isUndefined = isUndefined, lodash.isWeakMap = isWeakMap, lodash.isWeakSet = isWeakSet, lodash.join = join2, lodash.kebabCase = kebabCase, lodash.last = last, lodash.lastIndexOf = lastIndexOf, lodash.lowerCase = lowerCase, lodash.lowerFirst = lowerFirst, lodash.lt = lt2, lodash.lte = lte, lodash.max = max, lodash.maxBy = maxBy, lodash.mean = mean, lodash.meanBy = meanBy, lodash.min = min, lodash.minBy = minBy, lodash.stubArray = stubArray, lodash.stubFalse = stubFalse, lodash.stubObject = stubObject, lodash.stubString = stubString, lodash.stubTrue = stubTrue, lodash.multiply = multiply, lodash.nth = nth, lodash.noConflict = noConflict, lodash.noop = noop2, lodash.now = now, lodash.pad = pad, lodash.padEnd = padEnd, lodash.padStart = padStart, lodash.parseInt = parseInt2, lodash.random = random, lodash.reduce = reduce, lodash.reduceRight = reduceRight, lodash.repeat = repeat3, lodash.replace = replace, lodash.result = result, lodash.round = round, lodash.runInContext = runInContext2, lodash.sample = sample, lodash.size = size, lodash.snakeCase = snakeCase, lodash.some = some, lodash.sortedIndex = sortedIndex, lodash.sortedIndexBy = sortedIndexBy, lodash.sortedIndexOf = sortedIndexOf, lodash.sortedLastIndex = sortedLastIndex, lodash.sortedLastIndexBy = sortedLastIndexBy, lodash.sortedLastIndexOf = sortedLastIndexOf, lodash.startCase = startCase, lodash.startsWith = startsWith3, lodash.subtract = subtract, lodash.sum = sum, lodash.sumBy = sumBy, lodash.template = template, lodash.times = times, lodash.toFinite = toFinite, lodash.toInteger = toInteger, lodash.toLength = toLength, lodash.toLower = toLower, lodash.toNumber = toNumber, lodash.toSafeInteger = toSafeInteger, lodash.toString = toString2, lodash.toUpper = toUpper, lodash.trim = trim2, lodash.trimEnd = trimEnd, lodash.trimStart = trimStart, lodash.truncate = truncate, lodash.unescape = unescape4, lodash.uniqueId = uniqueId, lodash.upperCase = upperCase, lodash.upperFirst = upperFirst, lodash.each = forEach, lodash.eachRight = forEachRight, lodash.first = head, mixin(lodash, (function() {
31230
31232
  var source = {};
31231
31233
  return baseForOwn(lodash, function(func, methodName) {
31232
31234
  hasOwnProperty.call(lodash.prototype, methodName) || (source[methodName] = func);
@@ -51028,7 +51030,7 @@ var require_lodash2 = __commonJS({
51028
51030
  function isWeakSet(value) {
51029
51031
  return isObjectLike(value) && baseGetTag(value) == weakSetTag;
51030
51032
  }
51031
- var lt = createRelationalOperation(baseLt), lte = createRelationalOperation(function(value, other) {
51033
+ var lt2 = createRelationalOperation(baseLt), lte = createRelationalOperation(function(value, other) {
51032
51034
  return value <= other;
51033
51035
  });
51034
51036
  function toArray(value) {
@@ -51596,7 +51598,7 @@ function print() { __p += __j.call(arguments, '') }
51596
51598
  function sumBy(array, iteratee2) {
51597
51599
  return array && array.length ? baseSum(array, getIteratee(iteratee2, 2)) : 0;
51598
51600
  }
51599
- return lodash.after = after, lodash.ary = ary, lodash.assign = assign, lodash.assignIn = assignIn, lodash.assignInWith = assignInWith, lodash.assignWith = assignWith, lodash.at = at, lodash.before = before, lodash.bind = bind, lodash.bindAll = bindAll, lodash.bindKey = bindKey, lodash.castArray = castArray, lodash.chain = chain, lodash.chunk = chunk, lodash.compact = compact2, lodash.concat = concat, lodash.cond = cond, lodash.conforms = conforms, lodash.constant = constant, lodash.countBy = countBy, lodash.create = create, lodash.curry = curry, lodash.curryRight = curryRight, lodash.debounce = debounce2, lodash.defaults = defaults, lodash.defaultsDeep = defaultsDeep, lodash.defer = defer2, lodash.delay = delay2, lodash.difference = difference2, lodash.differenceBy = differenceBy, lodash.differenceWith = differenceWith, lodash.drop = drop, lodash.dropRight = dropRight, lodash.dropRightWhile = dropRightWhile, lodash.dropWhile = dropWhile, lodash.fill = fill, lodash.filter = filter, lodash.flatMap = flatMap, lodash.flatMapDeep = flatMapDeep, lodash.flatMapDepth = flatMapDepth, lodash.flatten = flatten, lodash.flattenDeep = flattenDeep, lodash.flattenDepth = flattenDepth, lodash.flip = flip, lodash.flow = flow, lodash.flowRight = flowRight, lodash.fromPairs = fromPairs, lodash.functions = functions, lodash.functionsIn = functionsIn, lodash.groupBy = groupBy2, lodash.initial = initial, lodash.intersection = intersection, lodash.intersectionBy = intersectionBy, lodash.intersectionWith = intersectionWith, lodash.invert = invert, lodash.invertBy = invertBy, lodash.invokeMap = invokeMap, lodash.iteratee = iteratee, lodash.keyBy = keyBy, lodash.keys = keys, lodash.keysIn = keysIn, lodash.map = map, lodash.mapKeys = mapKeys, lodash.mapValues = mapValues, lodash.matches = matches2, lodash.matchesProperty = matchesProperty, lodash.memoize = memoize, lodash.merge = merge, lodash.mergeWith = mergeWith, lodash.method = method, lodash.methodOf = methodOf, lodash.mixin = mixin, lodash.negate = negate, lodash.nthArg = nthArg, lodash.omit = omit, lodash.omitBy = omitBy, lodash.once = once, lodash.orderBy = orderBy, lodash.over = over, lodash.overArgs = overArgs, lodash.overEvery = overEvery, lodash.overSome = overSome, lodash.partial = partial, lodash.partialRight = partialRight, lodash.partition = partition2, lodash.pick = pick, lodash.pickBy = pickBy2, lodash.property = property, lodash.propertyOf = propertyOf, lodash.pull = pull3, lodash.pullAll = pullAll, lodash.pullAllBy = pullAllBy, lodash.pullAllWith = pullAllWith, lodash.pullAt = pullAt, lodash.range = range, lodash.rangeRight = rangeRight, lodash.rearg = rearg, lodash.reject = reject, lodash.remove = remove2, lodash.rest = rest, lodash.reverse = reverse, lodash.sampleSize = sampleSize, lodash.set = set, lodash.setWith = setWith, lodash.shuffle = shuffle, lodash.slice = slice, lodash.sortBy = sortBy, lodash.sortedUniq = sortedUniq, lodash.sortedUniqBy = sortedUniqBy, lodash.split = split, lodash.spread = spread, lodash.tail = tail, lodash.take = take, lodash.takeRight = takeRight, lodash.takeRightWhile = takeRightWhile, lodash.takeWhile = takeWhile, lodash.tap = tap, lodash.throttle = throttle, lodash.thru = thru, lodash.toArray = toArray, lodash.toPairs = toPairs, lodash.toPairsIn = toPairsIn, lodash.toPath = toPath, lodash.toPlainObject = toPlainObject, lodash.transform = transform2, lodash.unary = unary, lodash.union = union2, lodash.unionBy = unionBy, lodash.unionWith = unionWith, lodash.uniq = uniq2, lodash.uniqBy = uniqBy2, lodash.uniqWith = uniqWith, lodash.unset = unset, lodash.unzip = unzip, lodash.unzipWith = unzipWith, lodash.update = update, lodash.updateWith = updateWith, lodash.values = values2, lodash.valuesIn = valuesIn, lodash.without = without, lodash.words = words, lodash.wrap = wrap, lodash.xor = xor, lodash.xorBy = xorBy, lodash.xorWith = xorWith, lodash.zip = zip2, lodash.zipObject = zipObject, lodash.zipObjectDeep = zipObjectDeep, lodash.zipWith = zipWith, lodash.entries = toPairs, lodash.entriesIn = toPairsIn, lodash.extend = assignIn, lodash.extendWith = assignInWith, mixin(lodash, lodash), lodash.add = add, lodash.attempt = attempt, lodash.camelCase = camelCase, lodash.capitalize = capitalize2, lodash.ceil = ceil, lodash.clamp = clamp, lodash.clone = clone, lodash.cloneDeep = cloneDeep2, lodash.cloneDeepWith = cloneDeepWith, lodash.cloneWith = cloneWith, lodash.conformsTo = conformsTo, lodash.deburr = deburr, lodash.defaultTo = defaultTo, lodash.divide = divide, lodash.endsWith = endsWith3, lodash.eq = eq, lodash.escape = escape, lodash.escapeRegExp = escapeRegExp4, lodash.every = every, lodash.find = find, lodash.findIndex = findIndex, lodash.findKey = findKey, lodash.findLast = findLast, lodash.findLastIndex = findLastIndex, lodash.findLastKey = findLastKey, lodash.floor = floor, lodash.forEach = forEach, lodash.forEachRight = forEachRight, lodash.forIn = forIn, lodash.forInRight = forInRight, lodash.forOwn = forOwn, lodash.forOwnRight = forOwnRight, lodash.get = get, lodash.gt = gt, lodash.gte = gte, lodash.has = has, lodash.hasIn = hasIn, lodash.head = head, lodash.identity = identity2, lodash.includes = includes2, lodash.indexOf = indexOf, lodash.inRange = inRange, lodash.invoke = invoke, lodash.isArguments = isArguments, lodash.isArray = isArray, lodash.isArrayBuffer = isArrayBuffer, lodash.isArrayLike = isArrayLike, lodash.isArrayLikeObject = isArrayLikeObject, lodash.isBoolean = isBoolean2, lodash.isBuffer = isBuffer, lodash.isDate = isDate, lodash.isElement = isElement, lodash.isEmpty = isEmpty2, lodash.isEqual = isEqual, lodash.isEqualWith = isEqualWith, lodash.isError = isError2, lodash.isFinite = isFinite2, lodash.isFunction = isFunction, lodash.isInteger = isInteger, lodash.isLength = isLength, lodash.isMap = isMap, lodash.isMatch = isMatch, lodash.isMatchWith = isMatchWith, lodash.isNaN = isNaN2, lodash.isNative = isNative, lodash.isNil = isNil, lodash.isNull = isNull, lodash.isNumber = isNumber2, lodash.isObject = isObject2, lodash.isObjectLike = isObjectLike, lodash.isPlainObject = isPlainObject3, lodash.isRegExp = isRegExp, lodash.isSafeInteger = isSafeInteger, lodash.isSet = isSet, lodash.isString = isString3, lodash.isSymbol = isSymbol, lodash.isTypedArray = isTypedArray, lodash.isUndefined = isUndefined, lodash.isWeakMap = isWeakMap, lodash.isWeakSet = isWeakSet, lodash.join = join2, lodash.kebabCase = kebabCase, lodash.last = last, lodash.lastIndexOf = lastIndexOf, lodash.lowerCase = lowerCase, lodash.lowerFirst = lowerFirst, lodash.lt = lt, lodash.lte = lte, lodash.max = max, lodash.maxBy = maxBy, lodash.mean = mean, lodash.meanBy = meanBy, lodash.min = min, lodash.minBy = minBy, lodash.stubArray = stubArray, lodash.stubFalse = stubFalse, lodash.stubObject = stubObject, lodash.stubString = stubString, lodash.stubTrue = stubTrue, lodash.multiply = multiply, lodash.nth = nth, lodash.noConflict = noConflict, lodash.noop = noop2, lodash.now = now, lodash.pad = pad, lodash.padEnd = padEnd, lodash.padStart = padStart, lodash.parseInt = parseInt2, lodash.random = random, lodash.reduce = reduce, lodash.reduceRight = reduceRight, lodash.repeat = repeat3, lodash.replace = replace, lodash.result = result, lodash.round = round, lodash.runInContext = runInContext2, lodash.sample = sample, lodash.size = size, lodash.snakeCase = snakeCase, lodash.some = some, lodash.sortedIndex = sortedIndex, lodash.sortedIndexBy = sortedIndexBy, lodash.sortedIndexOf = sortedIndexOf, lodash.sortedLastIndex = sortedLastIndex, lodash.sortedLastIndexBy = sortedLastIndexBy, lodash.sortedLastIndexOf = sortedLastIndexOf, lodash.startCase = startCase, lodash.startsWith = startsWith3, lodash.subtract = subtract, lodash.sum = sum, lodash.sumBy = sumBy, lodash.template = template, lodash.times = times, lodash.toFinite = toFinite, lodash.toInteger = toInteger, lodash.toLength = toLength, lodash.toLower = toLower, lodash.toNumber = toNumber, lodash.toSafeInteger = toSafeInteger, lodash.toString = toString2, lodash.toUpper = toUpper, lodash.trim = trim2, lodash.trimEnd = trimEnd, lodash.trimStart = trimStart, lodash.truncate = truncate, lodash.unescape = unescape4, lodash.uniqueId = uniqueId, lodash.upperCase = upperCase, lodash.upperFirst = upperFirst, lodash.each = forEach, lodash.eachRight = forEachRight, lodash.first = head, mixin(lodash, (function() {
51601
+ return lodash.after = after, lodash.ary = ary, lodash.assign = assign, lodash.assignIn = assignIn, lodash.assignInWith = assignInWith, lodash.assignWith = assignWith, lodash.at = at, lodash.before = before, lodash.bind = bind, lodash.bindAll = bindAll, lodash.bindKey = bindKey, lodash.castArray = castArray, lodash.chain = chain, lodash.chunk = chunk, lodash.compact = compact2, lodash.concat = concat, lodash.cond = cond, lodash.conforms = conforms, lodash.constant = constant, lodash.countBy = countBy, lodash.create = create, lodash.curry = curry, lodash.curryRight = curryRight, lodash.debounce = debounce2, lodash.defaults = defaults, lodash.defaultsDeep = defaultsDeep, lodash.defer = defer2, lodash.delay = delay2, lodash.difference = difference2, lodash.differenceBy = differenceBy, lodash.differenceWith = differenceWith, lodash.drop = drop, lodash.dropRight = dropRight, lodash.dropRightWhile = dropRightWhile, lodash.dropWhile = dropWhile, lodash.fill = fill, lodash.filter = filter, lodash.flatMap = flatMap, lodash.flatMapDeep = flatMapDeep, lodash.flatMapDepth = flatMapDepth, lodash.flatten = flatten, lodash.flattenDeep = flattenDeep, lodash.flattenDepth = flattenDepth, lodash.flip = flip, lodash.flow = flow, lodash.flowRight = flowRight, lodash.fromPairs = fromPairs, lodash.functions = functions, lodash.functionsIn = functionsIn, lodash.groupBy = groupBy2, lodash.initial = initial, lodash.intersection = intersection, lodash.intersectionBy = intersectionBy, lodash.intersectionWith = intersectionWith, lodash.invert = invert, lodash.invertBy = invertBy, lodash.invokeMap = invokeMap, lodash.iteratee = iteratee, lodash.keyBy = keyBy, lodash.keys = keys, lodash.keysIn = keysIn, lodash.map = map, lodash.mapKeys = mapKeys, lodash.mapValues = mapValues, lodash.matches = matches2, lodash.matchesProperty = matchesProperty, lodash.memoize = memoize, lodash.merge = merge, lodash.mergeWith = mergeWith, lodash.method = method, lodash.methodOf = methodOf, lodash.mixin = mixin, lodash.negate = negate, lodash.nthArg = nthArg, lodash.omit = omit, lodash.omitBy = omitBy, lodash.once = once, lodash.orderBy = orderBy, lodash.over = over, lodash.overArgs = overArgs, lodash.overEvery = overEvery, lodash.overSome = overSome, lodash.partial = partial, lodash.partialRight = partialRight, lodash.partition = partition2, lodash.pick = pick, lodash.pickBy = pickBy2, lodash.property = property, lodash.propertyOf = propertyOf, lodash.pull = pull3, lodash.pullAll = pullAll, lodash.pullAllBy = pullAllBy, lodash.pullAllWith = pullAllWith, lodash.pullAt = pullAt, lodash.range = range, lodash.rangeRight = rangeRight, lodash.rearg = rearg, lodash.reject = reject, lodash.remove = remove2, lodash.rest = rest, lodash.reverse = reverse, lodash.sampleSize = sampleSize, lodash.set = set, lodash.setWith = setWith, lodash.shuffle = shuffle, lodash.slice = slice, lodash.sortBy = sortBy, lodash.sortedUniq = sortedUniq, lodash.sortedUniqBy = sortedUniqBy, lodash.split = split, lodash.spread = spread, lodash.tail = tail, lodash.take = take, lodash.takeRight = takeRight, lodash.takeRightWhile = takeRightWhile, lodash.takeWhile = takeWhile, lodash.tap = tap, lodash.throttle = throttle, lodash.thru = thru, lodash.toArray = toArray, lodash.toPairs = toPairs, lodash.toPairsIn = toPairsIn, lodash.toPath = toPath, lodash.toPlainObject = toPlainObject, lodash.transform = transform2, lodash.unary = unary, lodash.union = union2, lodash.unionBy = unionBy, lodash.unionWith = unionWith, lodash.uniq = uniq2, lodash.uniqBy = uniqBy2, lodash.uniqWith = uniqWith, lodash.unset = unset, lodash.unzip = unzip, lodash.unzipWith = unzipWith, lodash.update = update, lodash.updateWith = updateWith, lodash.values = values2, lodash.valuesIn = valuesIn, lodash.without = without, lodash.words = words, lodash.wrap = wrap, lodash.xor = xor, lodash.xorBy = xorBy, lodash.xorWith = xorWith, lodash.zip = zip2, lodash.zipObject = zipObject, lodash.zipObjectDeep = zipObjectDeep, lodash.zipWith = zipWith, lodash.entries = toPairs, lodash.entriesIn = toPairsIn, lodash.extend = assignIn, lodash.extendWith = assignInWith, mixin(lodash, lodash), lodash.add = add, lodash.attempt = attempt, lodash.camelCase = camelCase, lodash.capitalize = capitalize2, lodash.ceil = ceil, lodash.clamp = clamp, lodash.clone = clone, lodash.cloneDeep = cloneDeep2, lodash.cloneDeepWith = cloneDeepWith, lodash.cloneWith = cloneWith, lodash.conformsTo = conformsTo, lodash.deburr = deburr, lodash.defaultTo = defaultTo, lodash.divide = divide, lodash.endsWith = endsWith3, lodash.eq = eq, lodash.escape = escape, lodash.escapeRegExp = escapeRegExp4, lodash.every = every, lodash.find = find, lodash.findIndex = findIndex, lodash.findKey = findKey, lodash.findLast = findLast, lodash.findLastIndex = findLastIndex, lodash.findLastKey = findLastKey, lodash.floor = floor, lodash.forEach = forEach, lodash.forEachRight = forEachRight, lodash.forIn = forIn, lodash.forInRight = forInRight, lodash.forOwn = forOwn, lodash.forOwnRight = forOwnRight, lodash.get = get, lodash.gt = gt, lodash.gte = gte, lodash.has = has, lodash.hasIn = hasIn, lodash.head = head, lodash.identity = identity2, lodash.includes = includes2, lodash.indexOf = indexOf, lodash.inRange = inRange, lodash.invoke = invoke, lodash.isArguments = isArguments, lodash.isArray = isArray, lodash.isArrayBuffer = isArrayBuffer, lodash.isArrayLike = isArrayLike, lodash.isArrayLikeObject = isArrayLikeObject, lodash.isBoolean = isBoolean2, lodash.isBuffer = isBuffer, lodash.isDate = isDate, lodash.isElement = isElement, lodash.isEmpty = isEmpty2, lodash.isEqual = isEqual, lodash.isEqualWith = isEqualWith, lodash.isError = isError2, lodash.isFinite = isFinite2, lodash.isFunction = isFunction, lodash.isInteger = isInteger, lodash.isLength = isLength, lodash.isMap = isMap, lodash.isMatch = isMatch, lodash.isMatchWith = isMatchWith, lodash.isNaN = isNaN2, lodash.isNative = isNative, lodash.isNil = isNil, lodash.isNull = isNull, lodash.isNumber = isNumber2, lodash.isObject = isObject2, lodash.isObjectLike = isObjectLike, lodash.isPlainObject = isPlainObject3, lodash.isRegExp = isRegExp, lodash.isSafeInteger = isSafeInteger, lodash.isSet = isSet, lodash.isString = isString3, lodash.isSymbol = isSymbol, lodash.isTypedArray = isTypedArray, lodash.isUndefined = isUndefined, lodash.isWeakMap = isWeakMap, lodash.isWeakSet = isWeakSet, lodash.join = join2, lodash.kebabCase = kebabCase, lodash.last = last, lodash.lastIndexOf = lastIndexOf, lodash.lowerCase = lowerCase, lodash.lowerFirst = lowerFirst, lodash.lt = lt2, lodash.lte = lte, lodash.max = max, lodash.maxBy = maxBy, lodash.mean = mean, lodash.meanBy = meanBy, lodash.min = min, lodash.minBy = minBy, lodash.stubArray = stubArray, lodash.stubFalse = stubFalse, lodash.stubObject = stubObject, lodash.stubString = stubString, lodash.stubTrue = stubTrue, lodash.multiply = multiply, lodash.nth = nth, lodash.noConflict = noConflict, lodash.noop = noop2, lodash.now = now, lodash.pad = pad, lodash.padEnd = padEnd, lodash.padStart = padStart, lodash.parseInt = parseInt2, lodash.random = random, lodash.reduce = reduce, lodash.reduceRight = reduceRight, lodash.repeat = repeat3, lodash.replace = replace, lodash.result = result, lodash.round = round, lodash.runInContext = runInContext2, lodash.sample = sample, lodash.size = size, lodash.snakeCase = snakeCase, lodash.some = some, lodash.sortedIndex = sortedIndex, lodash.sortedIndexBy = sortedIndexBy, lodash.sortedIndexOf = sortedIndexOf, lodash.sortedLastIndex = sortedLastIndex, lodash.sortedLastIndexBy = sortedLastIndexBy, lodash.sortedLastIndexOf = sortedLastIndexOf, lodash.startCase = startCase, lodash.startsWith = startsWith3, lodash.subtract = subtract, lodash.sum = sum, lodash.sumBy = sumBy, lodash.template = template, lodash.times = times, lodash.toFinite = toFinite, lodash.toInteger = toInteger, lodash.toLength = toLength, lodash.toLower = toLower, lodash.toNumber = toNumber, lodash.toSafeInteger = toSafeInteger, lodash.toString = toString2, lodash.toUpper = toUpper, lodash.trim = trim2, lodash.trimEnd = trimEnd, lodash.trimStart = trimStart, lodash.truncate = truncate, lodash.unescape = unescape4, lodash.uniqueId = uniqueId, lodash.upperCase = upperCase, lodash.upperFirst = upperFirst, lodash.each = forEach, lodash.eachRight = forEachRight, lodash.first = head, mixin(lodash, (function() {
51600
51602
  var source = {};
51601
51603
  return baseForOwn(lodash, function(func, methodName) {
51602
51604
  hasOwnProperty.call(lodash.prototype, methodName) || (source[methodName] = func);
@@ -126903,22 +126905,22 @@ From ` + this.originalError.stack);
126903
126905
  this.context.memoryLimit.use(str.length);
126904
126906
  let blocks2 = /* @__PURE__ */ new Map([["<script", "</script>"], ["<style", "</style>"], ["<!--", "-->"], ["<", ">"]]), out = "", i = 0;
126905
126907
  for (; i < str.length; ) {
126906
- let lt = str.indexOf("<", i);
126907
- if (lt < 0)
126908
+ let lt2 = str.indexOf("<", i);
126909
+ if (lt2 < 0)
126908
126910
  return out + str.slice(i);
126909
- out += str.slice(i, lt);
126911
+ out += str.slice(i, lt2);
126910
126912
  for (let [opener, closer] of blocks2) {
126911
- if (!str.startsWith(opener, lt))
126913
+ if (!str.startsWith(opener, lt2))
126912
126914
  continue;
126913
- let e = str.indexOf(closer, lt + opener.length);
126915
+ let e = str.indexOf(closer, lt2 + opener.length);
126914
126916
  if (e >= 0) {
126915
126917
  i = e + closer.length;
126916
126918
  break;
126917
126919
  }
126918
126920
  blocks2.delete(opener);
126919
126921
  }
126920
- if (i === lt)
126921
- return out + str.slice(lt);
126922
+ if (i === lt2)
126923
+ return out + str.slice(lt2);
126922
126924
  }
126923
126925
  return out;
126924
126926
  }
@@ -203943,7 +203945,7 @@ var import_core2 = __toESM(require_lib()), BaseCommand = class extends import_co
203943
203945
  }
203944
203946
  async catch(error) {
203945
203947
  error.skipOclifErrorHandling = !0;
203946
- let { errorHandler } = await import("./error-handler-DRCELNRR.js");
203948
+ let { errorHandler } = await import("./error-handler-MENPWWOI.js");
203947
203949
  return await errorHandler(error, this.config), import_core2.Errors.handle(error);
203948
203950
  }
203949
203951
  async _run() {
@@ -203951,11 +203953,11 @@ var import_core2 = __toESM(require_lib()), BaseCommand = class extends import_co
203951
203953
  }
203952
203954
  async init() {
203953
203955
  if (this.exitWithTimestampWhenEnvVariablePresent(), setCurrentCommandId(this.id ?? ""), !isDevelopment()) {
203954
- let { registerCleanBugsnagErrorsFromWithinPlugins } = await import("./error-handler-DRCELNRR.js");
203956
+ let { registerCleanBugsnagErrorsFromWithinPlugins } = await import("./error-handler-MENPWWOI.js");
203955
203957
  await registerCleanBugsnagErrorsFromWithinPlugins(this.config);
203956
203958
  }
203957
203959
  await removeDuplicatedPlugins(this.config), this.showNpmFlagWarning();
203958
- let { showNotificationsIfNeeded: showNotificationsIfNeeded2 } = await import("./notifications-system-244NM3IW.js");
203960
+ let { showNotificationsIfNeeded: showNotificationsIfNeeded2 } = await import("./notifications-system-TAHUXXGQ.js");
203959
203961
  return await showNotificationsIfNeeded2(), super.init();
203960
203962
  }
203961
203963
  // NPM creates an environment variable for every flag passed to a script.
@@ -203963,7 +203965,7 @@ var import_core2 = __toESM(require_lib()), BaseCommand = class extends import_co
203963
203965
  // and warns the user to use the `--` separator.
203964
203966
  showNpmFlagWarning() {
203965
203967
  let commandVariables = this.constructor;
203966
- Object.keys(commandVariables.flags || {}).map((key) => `npm_config_${underscore(key).replace(/^no_/, "")}`).some((flag) => process.env[flag] !== void 0) && import("./ui-DVZCQR62.js").then(({ renderWarning: renderWarning2 }) => {
203968
+ Object.keys(commandVariables.flags || {}).map((key) => `npm_config_${underscore(key).replace(/^no_/, "")}`).some((flag) => process.env[flag] !== void 0) && import("./ui-ZXHKYLCS.js").then(({ renderWarning: renderWarning2 }) => {
203967
203969
  renderWarning2({
203968
203970
  body: [
203969
203971
  "NPM scripts require an extra",
@@ -204012,7 +204014,7 @@ ${explanation} in non-interactive terminal environments, such as a CI environmen
204012
204014
  let flags = originalResult.flags, environmentsFileName = this.environmentsFilename();
204013
204015
  if (!environmentsFileName)
204014
204016
  return originalResult;
204015
- let { environmentFilePath } = await import("./environments-L53AHQLZ.js"), environmentFileExists = await environmentFilePath(environmentsFileName, { from: flags.path }), environments = [];
204017
+ let { environmentFilePath } = await import("./environments-II3QYMU3.js"), environmentFileExists = await environmentFilePath(environmentsFileName, { from: flags.path }), environments = [];
204016
204018
  flags.environment && (environments = Array.isArray(flags.environment) ? flags.environment : [flags.environment]);
204017
204019
  let environmentSpecified = environments.length > 0;
204018
204020
  if (!environmentFileExists && !environmentSpecified || environmentSpecified && environments.length > 1)
@@ -204033,7 +204035,7 @@ ${explanation} in non-interactive terminal environments, such as a CI environmen
204033
204035
  * is specified it will try to load a default environment.
204034
204036
  */
204035
204037
  async loadEnvironmentForCommand(path4, environmentsFileName, specifiedEnvironment) {
204036
- let { loadEnvironment: loadEnvironment2 } = await import("./environments-L53AHQLZ.js");
204038
+ let { loadEnvironment: loadEnvironment2 } = await import("./environments-II3QYMU3.js");
204037
204039
  return specifiedEnvironment ? { environment: await loadEnvironment2(specifiedEnvironment, environmentsFileName, { from: path4 }), isDefaultEnvironment: !1 } : { environment: await loadEnvironment2("default", environmentsFileName, { from: path4, silent: !0 }), isDefaultEnvironment: !0 };
204038
204040
  }
204039
204041
  };
@@ -204056,7 +204058,7 @@ function reportEnvironmentApplication(noDefaultsFlags, flagsWithEnvironments, en
204056
204058
  if (Object.keys(changes).length === 0)
204057
204059
  return;
204058
204060
  let items = Object.entries(changes).map(([name, value]) => `${name}: ${value}`);
204059
- import("./ui-DVZCQR62.js").then(({ renderInfo: renderInfo2 }) => {
204061
+ import("./ui-ZXHKYLCS.js").then(({ renderInfo: renderInfo2 }) => {
204060
204062
  renderInfo2({
204061
204063
  headline: ["Using applicable flags from", { userInput: environmentName }, "environment:"],
204062
204064
  body: [{ list: { items } }]
@@ -204107,7 +204109,7 @@ async function removeDuplicatedPlugins(config2) {
204107
204109
  let plugins = Array.from(config2.plugins.values()), bundlePlugins = ["@shopify/app", "@shopify/plugin-cloudflare"], pluginsToRemove = plugins.filter((plugin) => bundlePlugins.includes(plugin.name));
204108
204110
  if (pluginsToRemove.length > 0) {
204109
204111
  let commandsToRun = pluginsToRemove.map((plugin) => ` - shopify plugins remove ${plugin.name}`).join(`
204110
- `), { renderWarning: renderWarning2 } = await import("./ui-DVZCQR62.js");
204112
+ `), { renderWarning: renderWarning2 } = await import("./ui-ZXHKYLCS.js");
204111
204113
  renderWarning2({
204112
204114
  headline: `Unsupported plugins detected: ${pluginsToRemove.map((plugin) => plugin.name).join(", ")}`,
204113
204115
  body: [
@@ -204129,20 +204131,20 @@ init_cjs_shims();
204129
204131
  init_cjs_shims();
204130
204132
  import { fileURLToPath as fileURLToPath2 } from "node:url";
204131
204133
  async function launchCLI(options) {
204132
- let { isDevelopment: isDevelopment2 } = await import("./local-YQI64EPC.js"), { ShopifyConfig } = await import("./custom-oclif-loader-Q7GRLCIZ.js"), oclifModule = await import("./lib-NYDMHWZM.js"), { run, flush, Errors: Errors2, settings } = oclifModule.default ?? oclifModule;
204134
+ let { isDevelopment: isDevelopment2 } = await import("./local-G2BSQFFH.js"), { ShopifyConfig } = await import("./custom-oclif-loader-WGQ253VO.js"), oclifModule = await import("./lib-NYDMHWZM.js"), { run, flush, Errors: Errors2, settings } = oclifModule.default ?? oclifModule;
204133
204135
  isDevelopment2() && (settings.debug = !0);
204134
204136
  try {
204135
204137
  let config2 = new ShopifyConfig({ root: fileURLToPath2(options.moduleURL) });
204136
204138
  await config2.load(), options.lazyCommandLoader && config2.setLazyCommandLoader(options.lazyCommandLoader);
204137
204139
  let argv = options.argv ?? process.argv.slice(2), passthroughIndex = argv.indexOf("--");
204138
204140
  if ((passthroughIndex === -1 ? argv : argv.slice(0, passthroughIndex)).includes("--json-schema") || isTruthy(process.env.SHOPIFY_FLAG_JSON_SCHEMA)) {
204139
- let { printCommandJsonSchema } = await import("./command-json-schema-RCC6ZVRF.js");
204141
+ let { printCommandJsonSchema } = await import("./command-json-schema-LA7ZVL4O.js");
204140
204142
  await printCommandJsonSchema(config2, argv, options.lazyCommandLoader);
204141
204143
  return;
204142
204144
  }
204143
204145
  await run(argv, config2), await flush();
204144
204146
  } catch (error) {
204145
- let { errorHandler } = await import("./error-handler-DRCELNRR.js");
204147
+ let { errorHandler } = await import("./error-handler-MENPWWOI.js");
204146
204148
  await errorHandler(error);
204147
204149
  let handledError = error;
204148
204150
  return Errors2.handle({
@@ -204160,7 +204162,7 @@ var import_core3 = __toESM(require_lib());
204160
204162
  async function exitIfOldNodeVersion(versions2 = process.versions) {
204161
204163
  let nodeVersion = versions2.node, nodeMajorVersion = Number(nodeVersion.split(".")[0]);
204162
204164
  if (nodeMajorVersion < 22) {
204163
- let { renderError: renderError2 } = await import("./ui-DVZCQR62.js");
204165
+ let { renderError: renderError2 } = await import("./ui-ZXHKYLCS.js");
204164
204166
  renderError2({
204165
204167
  headline: "Upgrade to a supported Node version now.",
204166
204168
  body: [
@@ -204187,7 +204189,7 @@ async function runCLI(options, launchCLI2 = launchCLI, argv = process.argv, env2
204187
204189
  return setupEnvironmentVariables(options, argv, env2), options.runInCreateMode && await addInitToArgvWhenRunningCreateCLI(options, argv), forceNoColor(argv, env2), await exitIfOldNodeVersion(versions2), launchCLI2({ moduleURL: options.moduleURL, lazyCommandLoader: options.lazyCommandLoader });
204188
204190
  }
204189
204191
  async function addInitToArgvWhenRunningCreateCLI(options, argv = process.argv) {
204190
- let { findUpAndReadPackageJson: findUpAndReadPackageJson2 } = await import("./node-package-manager-GY7LMT5D.js"), { moduleDirectory: moduleDirectory2 } = await import("./path-2KZ7FSGN.js"), name = (await findUpAndReadPackageJson2(moduleDirectory2(options.moduleURL))).content.name.replace("@shopify/create-", "");
204192
+ let { findUpAndReadPackageJson: findUpAndReadPackageJson2 } = await import("./node-package-manager-QET5FYFY.js"), { moduleDirectory: moduleDirectory2 } = await import("./path-RDYZ7Q5T.js"), name = (await findUpAndReadPackageJson2(moduleDirectory2(options.moduleURL))).content.name.replace("@shopify/create-", "");
204191
204193
  if (argv.findIndex((arg) => arg.includes("init")) === -1) {
204192
204194
  let initIndex2 = argv.findIndex((arg) => arg.match(new RegExp(`bin(\\/|\\\\)+(create-${name}|dev|run)`))) + 1;
204193
204195
  argv.splice(initIndex2, 0, "init");
@@ -215322,7 +215324,7 @@ init_cjs_shims();
215322
215324
 
215323
215325
  // ../cli-kit/dist/public/node/git.js
215324
215326
  init_cjs_shims();
215325
- var import_ignore3 = __toESM(require_ignore2());
215327
+ var import_semver = __toESM(require_semver()), import_ignore3 = __toESM(require_ignore2());
215326
215328
  async function gitCommand(args, directory) {
215327
215329
  try {
215328
215330
  return (await execa("git", args, { cwd: directory })).stdout;
@@ -215385,6 +215387,35 @@ async function ensureGitIsPresentOrAbort() {
215385
215387
  if (!await hasGit())
215386
215388
  throw new AbortError("Git is necessary in the environment to continue", outputContent`Install ${outputToken.link("git", "https://git-scm.com/book/en/v2/Getting-Started-Installing-Git")}`);
215387
215389
  }
215390
+ function parseGitVersion(versionOutput) {
215391
+ let match2 = /^git version (?<version>\d+\.\d+\.\d+)(?<suffix>[.\s-].*)?$/.exec(versionOutput.trim()), version = match2?.groups?.version;
215392
+ if (!version)
215393
+ return;
215394
+ let releaseCandidateNumber = /^(?:\.rc|-rc\.?)(?<number>\d+)(?:[.\s-].*)?$/.exec(match2.groups?.suffix ?? "")?.groups?.number;
215395
+ return releaseCandidateNumber ? `${version}-rc.${releaseCandidateNumber}` : version;
215396
+ }
215397
+ async function ensureGitVersionIsAtLeast(minimumVersion, options = {}) {
215398
+ let versionOutput = await inTemporaryDirectory((emptyGitDirectory) => captureGitVersionOutput(minimumVersion, { cwd: options.cwd, env: { GIT_DIR: emptyGitDirectory } })), installedVersion = parseGitVersion(versionOutput);
215399
+ if (!installedVersion)
215400
+ throw outputDebug(outputContent`Unrecognized git --version output: ${outputToken.raw(JSON.stringify(versionOutput.slice(0, 200)))}`), new AbortError("Couldn't determine the installed Git version.", `Install Git ${minimumVersion} or later, then try again.`);
215401
+ if ((0, import_semver.lt)(installedVersion, minimumVersion))
215402
+ throw new AbortError(`Git ${minimumVersion} or later is required, but version ${installedVersion} is installed.`, `Upgrade Git to version ${minimumVersion} or later, then try again.`);
215403
+ }
215404
+ async function captureGitVersionOutput(minimumVersion, execOptions) {
215405
+ let { captureOutput } = await import("./system-EHWOZQCE.js");
215406
+ try {
215407
+ return await captureOutput("git", ["--version"], execOptions);
215408
+ } catch (error) {
215409
+ if (error instanceof AbortError)
215410
+ throw error;
215411
+ if (error instanceof Error && "code" in error && error.code === "ENOENT")
215412
+ throw new AbortError(`Git ${minimumVersion} or later is required, but Git isn't installed.`, `Install Git ${minimumVersion} or later, then try again.`);
215413
+ let reason = error instanceof Error ? error.message : String(error);
215414
+ outputDebug(outputContent`Couldn't run git --version: ${outputToken.raw(reason)}`);
215415
+ let gitError = error instanceof Error && "stderr" in error && typeof error.stderr == "string" ? error.stderr.trim() : "";
215416
+ throw new AbortError(gitError ? `Couldn't run Git to check its version: ${gitError}` : "Couldn't run Git to check its version.", `Check that Git ${minimumVersion} or later is installed and can run, then try again.`);
215417
+ }
215418
+ }
215388
215419
  async function insideGitDirectory(directory) {
215389
215420
  return await hasGit() ? checkIfInsideGitDirectory(directory) : !1;
215390
215421
  }
@@ -222881,13 +222912,18 @@ var UNTRUSTED_REPOSITORY_PROTECTIONS = {
222881
222912
  bareRepository: { args: ["-c", "safe.bareRepository=explicit"] },
222882
222913
  // A partial clone fetches a missing object on demand, running the repository's transport commands.
222883
222914
  lazyFetch: { env: { GIT_NO_LAZY_FETCH: "1" } },
222884
- // An empty allow-list refuses every transport, for Git versions that predate GIT_NO_LAZY_FETCH.
222885
- transports: { env: { GIT_ALLOW_PROTOCOL: "" } }
222886
- }, protections = Object.values(UNTRUSTED_REPOSITORY_PROTECTIONS), protectionArguments = protections.flatMap((protection) => protection.args ?? []);
222915
+ // An empty allow-list refuses every named transport, for Git versions that predate GIT_NO_LAZY_FETCH.
222916
+ transports: { env: { GIT_ALLOW_PROTOCOL: "" } },
222917
+ // The allow-list still holds an empty name, which a remote's helper gets from an empty `vcs` or a URL that starts
222918
+ // with `::`. Git runs that helper as `git remote-`, which falls back to the repository's `remote-` alias. The empty
222919
+ // value replaces the alias, for Git versions that predate GIT_NO_LAZY_FETCH.
222920
+ emptyRemoteHelper: { args: ["-c", "alias.remote-="] }
222921
+ }, minimumAppSecurityGitVersion = "2.38.0", protections = Object.values(UNTRUSTED_REPOSITORY_PROTECTIONS), protectionArguments = protections.flatMap((protection) => protection.args ?? []);
222887
222922
  function protectionEnvironment() {
222888
222923
  return Object.fromEntries(protections.flatMap((protection) => Object.entries(protection.env ?? {})));
222889
222924
  }
222890
222925
  async function runGit(directory, args) {
222926
+ await ensureGitVersionIsAtLeast(minimumAppSecurityGitVersion, { cwd: directory });
222891
222927
  try {
222892
222928
  let result = await captureOutputWithExitCode("git", [...protectionArguments, ...args], {
222893
222929
  cwd: directory,
@@ -223883,12 +223919,13 @@ async function listTrackedFiles(directory) {
223883
223919
  return splitNullSeparated(listed.stdout);
223884
223920
  }
223885
223921
  async function listNestedRepository(directory) {
223922
+ let stats;
223886
223923
  try {
223887
- let stats = lstatSync2(joinPath(directory, ".git"));
223888
- return stats.isDirectory() || stats.isFile() ? await listGitIgnoredPaths(directory) : { status: "failed" };
223924
+ stats = lstatSync2(joinPath(directory, ".git"));
223889
223925
  } catch (error) {
223890
223926
  return isMissingFilesystemEntry(error) ? void 0 : { status: "failed" };
223891
223927
  }
223928
+ return stats.isDirectory() || stats.isFile() ? listGitIgnoredPaths(directory) : { status: "failed" };
223892
223929
  }
223893
223930
  function splitNullSeparated(output) {
223894
223931
  return output.split("\0").filter((path4) => path4 !== "");
@@ -228865,7 +228902,7 @@ var defaultDependencies3 = {
228865
228902
  recordMetadata: recordAppSecurityMetadata
228866
228903
  };
228867
228904
  async function instructionsDestination(options, dependencies, canPrompt, agentCheckCount) {
228868
- return options.skipInstructions ? "nothing" : options.yes ? "print" : canPrompt ? dependencies.selectInstructionsDestination(agentCheckCount) : "nothing";
228905
+ return options.skipInstructions ? "nothing" : options.printInstructions ? "print" : canPrompt ? dependencies.selectInstructionsDestination(agentCheckCount) : "nothing";
228869
228906
  }
228870
228907
  function securityReportInput(execution, artifacts, verbose, commands2, selection, scanDirectories) {
228871
228908
  return {
@@ -228962,8 +228999,17 @@ async function securityCheck(options, dependencies = defaultDependencies3) {
228962
228999
  var import_core32 = __toESM(require_lib(), 1);
228963
229000
  var SecurityCheck = class _SecurityCheck extends base_command_default {
228964
229001
  static summary = "Check an app for Shopify-specific security issues and write deterministic-findings.json and agent-checks.json.";
228965
- static descriptionWithMarkdown = "Runs an app security check locally and writes `deterministic-findings.json` and `agent-checks.json` to the results directory, `.shopify/app-security/<results key>/`. The results key is `--client-id` when you pass it, and otherwise the name of the app configuration file without `.toml`; the other `app security` commands take the same selection flags and find the same directory. Every run replaces both files, so it's always safe to run the check again.\n\n`deterministic-findings.json` holds the deterministic scan results. `agent-checks.json` holds the checks for your coding agent to investigate; the agent's results are recorded with `shopify app security record`. Use `--config` to select a specific app configuration when the project has multiple `shopify.app*.toml` files; the check inspects only that configuration. Use `--client-id` to replace the configuration's client ID for this run. `--client-id` is checked against your Shopify account before anything is scanned, so it needs you to be logged in. When no app configuration exists, use `--without-app-config --client-id <client-id>` to scan `--path` anyway with config checks skipped; in an interactive terminal the command offers to do this.\n\nThe check scans the app directory and each `--include-dir`. Git ignore rules apply by default: a file or directory that Git ignores is skipped, using the rules of the repository that contains it, while files that Git tracks are always scanned. Use `--no-git-ignore` to turn Git ignore rules off for every scanned directory.\n\nUse `--exclude` to skip more paths. Each value is a glob that is matched against the path relative to the working directory, so a path above it starts with `../`, and a name at any depth needs `**/`, for example `--exclude '**/generated'`. Repeat the flag to add globs. An exclusion can't remove the selected app configuration file. Quote each value so your shell doesn't expand `*`. The coding-agent instructions this check offers repeat the globs. Other `app security` commands don't take `--exclude` or `--no-git-ignore`, so pass the same flags each time you run the check.\n\nUse `--list-files` to check the scope before scanning: it prints the files the check would gather, one path per line and relative to the app directory, and then stops. It writes no results and never prompts. `--client-id` is still checked, but doesn't change the list.\n\nIn interactive terminals, the command offers to copy the coding-agent instructions, print them, or choose nothing; copying is the default. In CI and other non-interactive environments, instructions aren't offered unless you pass `--yes`, which prints them. You can also run `shopify app security instructions` to print, copy, or write them later.";
229002
+ static descriptionWithMarkdown = "Runs an app security check locally and writes `deterministic-findings.json` and `agent-checks.json` to the results directory, `.shopify/app-security/<results key>/`. The results key is `--client-id` when you pass it, and otherwise the name of the app configuration file without `.toml`; the other `app security` commands take the same selection flags and find the same directory. Every run replaces both files, so it's always safe to run the check again.\n\n`deterministic-findings.json` holds the deterministic scan results. `agent-checks.json` holds the checks for your coding agent to investigate; the agent's results are recorded with `shopify app security record`. Use `--config` to select a specific app configuration when the project has multiple `shopify.app*.toml` files; the check inspects only that configuration. Use `--client-id` to replace the configuration's client ID for this run. `--client-id` is checked against your Shopify account before anything is scanned, so it needs you to be logged in. When no app configuration exists, use `--without-app-config --client-id <client-id>` to scan `--path` anyway with config checks skipped; in an interactive terminal the command offers to do this.\n\nThe check scans the app directory and each `--include-dir`. Git ignore rules apply by default: a file or directory that Git ignores is skipped, using the rules of the repository that contains it, while files that Git tracks are always scanned. Use `--no-git-ignore` to turn Git ignore rules off for every scanned directory. When the check uses Git, it requires Git 2.38.0 or later.\n\nUse `--exclude` to skip more paths. Each value is a glob that is matched against the path relative to the working directory, so a path above it starts with `../`, and a name at any depth needs `**/`, for example `--exclude '**/generated'`. Repeat the flag to add globs. An exclusion can't remove the selected app configuration file. Quote each value so your shell doesn't expand `*`. The coding-agent instructions this check offers repeat the globs. Other `app security` commands don't take `--exclude` or `--no-git-ignore`, so pass the same flags each time you run the check.\n\nUse `--list-files` to check the scope before scanning: it prints the files the check would gather, one path per line and relative to the app directory, and then stops. It writes no results and never prompts. `--client-id` is still checked, but doesn't change the list.\n\nIn interactive terminals, the command offers to copy the coding-agent instructions, print them, or choose nothing; copying is the default. In CI and other non-interactive environments, instructions aren't offered unless you pass `--print-instructions`, which prints them. You can also run `shopify app security instructions` to print, copy, or write them later.\n\nReports the number of findings to Shopify as usage telemetry, but not finding details. See [usage reporting](https://shopify.dev/docs/api/shopify-cli#usage-reporting) for details.";
228966
229003
  static description = this.descriptionWithoutMarkdown();
229004
+ static examples = [
229005
+ "<%= config.bin %> <%= command.id %>",
229006
+ "<%= config.bin %> <%= command.id %> --include-dir ../backend",
229007
+ "<%= config.bin %> <%= command.id %> --path extensions --config production --include-dir .",
229008
+ "<%= config.bin %> <%= command.id %> --without-app-config --client-id <client-id>",
229009
+ '<%= config.bin %> <%= command.id %> --path app --include-dir . --exclude marketing --exclude "**/generated"',
229010
+ "<%= config.bin %> <%= command.id %> --no-git-ignore --exclude local-data",
229011
+ "<%= config.bin %> <%= command.id %> --include-dir ../backend --list-files"
229012
+ ];
228967
229013
  static flags = {
228968
229014
  ...globalFlags,
228969
229015
  ...appSecuritySelectionFlags,
@@ -228986,19 +229032,26 @@ var SecurityCheck = class _SecurityCheck extends base_command_default {
228986
229032
  "list-files": import_core32.Flags.boolean({
228987
229033
  description: "Print the files the check would gather, one path per line, and stop. Nothing is scanned, no results are written, and nothing is prompted for.",
228988
229034
  env: "SHOPIFY_FLAG_LIST_FILES",
228989
- exclusive: ["yes", "skip-instructions", "blocking"]
229035
+ exclusive: ["print-instructions", "skip-instructions", "blocking"]
228990
229036
  }),
228991
229037
  ...appSecurityBlockingFlag,
228992
- yes: import_core32.Flags.boolean({
228993
- description: "Print coding-agent instructions without prompting.",
229038
+ "print-instructions": import_core32.Flags.boolean({
229039
+ description: "Print coding-agent instructions without prompting for how to deliver them.",
228994
229040
  default: !1,
228995
229041
  exclusive: ["skip-instructions"],
229042
+ env: "SHOPIFY_FLAG_APP_SECURITY_PRINT_INSTRUCTIONS"
229043
+ }),
229044
+ yes: import_core32.Flags.boolean({
229045
+ description: "Print coding-agent instructions without prompting.",
229046
+ hidden: !0,
229047
+ deprecated: { to: "--print-instructions" },
229048
+ exclusive: ["skip-instructions", "list-files"],
228996
229049
  env: "SHOPIFY_FLAG_YES"
228997
229050
  }),
228998
229051
  "skip-instructions": import_core32.Flags.boolean({
228999
229052
  description: "Don't offer the coding-agent instructions after the scan. Use it when you want only the deterministic scan results.",
229000
229053
  default: !1,
229001
- exclusive: ["yes"],
229054
+ exclusive: ["print-instructions"],
229002
229055
  env: "SHOPIFY_FLAG_APP_SECURITY_SKIP_INSTRUCTIONS"
229003
229056
  })
229004
229057
  };
@@ -229011,7 +229064,7 @@ var SecurityCheck = class _SecurityCheck extends base_command_default {
229011
229064
  withoutAppConfig: !!flags["without-app-config"],
229012
229065
  verbose: !!flags.verbose,
229013
229066
  blocking: flags.blocking,
229014
- yes: flags.yes,
229067
+ printInstructions: !!(flags["print-instructions"] || flags.yes),
229015
229068
  skipInstructions: flags["skip-instructions"],
229016
229069
  includeDirs: flags["include-dir"] ?? [],
229017
229070
  excludePatterns: flags.exclude ?? [],
@@ -229248,7 +229301,7 @@ function renderSecurityRecordResult(result, selection, path4) {
229248
229301
  // ../app/dist/cli/commands/app/security/record.js
229249
229302
  var SecurityRecord = class _SecurityRecord extends base_command_default {
229250
229303
  static summary = "Record agent findings from an app security check.";
229251
- static descriptionWithMarkdown = "Reads a coding agent's complete findings document from stdin, validates it, and replaces `agent-findings.json` in the results directory, `.shopify/app-security/<results key>/`. The results key is `--client-id` when you pass it, and otherwise the name of the app configuration file without `.toml`. `--client-id` is checked against your Shopify account before anything is read, so it needs you to be logged in.\n\nThe document must include a `scope` with the `include_dirs`, `excludes` and `no_git_ignore` values of the `check` run it describes, exactly as typed. It's recorded as reported and never compared with the scan's files.\n\nThe document is recorded all or nothing: if anything is invalid, the command fails with every error, writes nothing, and exits with a non-zero code. It needs the results directory that `shopify app security check` creates.";
229304
+ static descriptionWithMarkdown = "Reads a coding agent's complete findings document from stdin, validates it, and replaces `agent-findings.json` in the results directory, `.shopify/app-security/<results key>/`. The results key is `--client-id` when you pass it, and otherwise the name of the app configuration file without `.toml`. `--client-id` is checked against your Shopify account before anything is read, so it needs you to be logged in.\n\nThe document must include a `scope` with the `include_dirs`, `excludes` and `no_git_ignore` values of the `check` run it describes, exactly as typed. It's recorded as reported and never compared with the scan's files.\n\nThe document is recorded all or nothing: if anything is invalid, the command fails with every error, writes nothing, and exits with a non-zero code. It needs the results directory that `shopify app security check` creates.\n\nReports the number of findings to Shopify as usage telemetry, but not finding details. See [usage reporting](https://shopify.dev/docs/api/shopify-cli#usage-reporting) for details.";
229252
229305
  static description = this.descriptionForHelp();
229253
229306
  static flags = {
229254
229307
  ...globalFlags,
@@ -229624,7 +229677,7 @@ async function securityReview(options, dependencies = defaultDependencies6) {
229624
229677
  var import_core35 = __toESM(require_lib(), 1);
229625
229678
  var SecurityReview = class _SecurityReview extends base_command_default {
229626
229679
  static summary = "Show the combined app security check results.";
229627
- static descriptionWithMarkdown = "Combines the deterministic results (`deterministic-findings.json`, written by `shopify app security check`) with the recorded agent results (`agent-findings.json`, written by `shopify app security record`) and shows one view of every check: its findings, status and source. Both files are in the results directory, `.shopify/app-security/<results key>/`. `--client-id` is checked against your Shopify account before any results are read, so it needs you to be logged in.\n\nThe summary shows the scan directories and the scope of the latest scan, and the scope the agent reported. It notes when the agent findings were recorded for a different scope than the latest scan; that doesn't change the exit code.\n\nThe agent results are optional. Use `--check-id` to narrow the review to specific checks, `--verbose` for full reasoning, evidence and suppressed findings, and `--blocking` to exit with code 1 when a check with findings is at or above a severity.";
229680
+ static descriptionWithMarkdown = "Combines the deterministic results (`deterministic-findings.json`, written by `shopify app security check`) with the recorded agent results (`agent-findings.json`, written by `shopify app security record`) and shows one view of every check: its findings, status and source. Both files are in the results directory, `.shopify/app-security/<results key>/`. `--client-id` is checked against your Shopify account before any results are read, so it needs you to be logged in.\n\nThe summary shows the scan directories and the scope of the latest scan, and the scope the agent reported. It notes when the agent findings were recorded for a different scope than the latest scan; that doesn't change the exit code.\n\nThe agent results are optional. Use `--check-id` to narrow the review to specific checks, `--verbose` for full reasoning, evidence and suppressed findings, and `--blocking` to exit with code 1 when a check with findings is at or above a severity.\n\nReports the number of findings to Shopify as usage telemetry, but not finding details. See [usage reporting](https://shopify.dev/docs/api/shopify-cli#usage-reporting) for details.";
229628
229681
  static description = this.descriptionForHelp();
229629
229682
  static flags = {
229630
229683
  ...globalFlags,
@@ -4,16 +4,16 @@ import {
4
4
  inferPackageManagerForGlobalCLI,
5
5
  installGlobalCLIPrompt,
6
6
  installGlobalShopifyCLI
7
- } from "./chunk-ZWNY6NQH.js";
8
- import "./chunk-R6VAFEZ5.js";
9
- import "./chunk-CK3T27VW.js";
7
+ } from "./chunk-QLLL4VIM.js";
8
+ import "./chunk-NN45GPHA.js";
9
+ import "./chunk-C3P3BBJI.js";
10
10
  import "./chunk-HNIAZN6U.js";
11
11
  import "./chunk-EJEHENXO.js";
12
12
  import "./chunk-23UTCSPZ.js";
13
13
  import "./chunk-LBXDGVFS.js";
14
14
  import "./chunk-OQ3KXXGH.js";
15
15
  import "./chunk-D6NYWNY2.js";
16
- import "./chunk-VDUAROBQ.js";
16
+ import "./chunk-57VCTLOQ.js";
17
17
  import "./chunk-UFLX7QDP.js";
18
18
  import "./chunk-SI4LHZYW.js";
19
19
  import "./chunk-3XNI6LP4.js";
@@ -24,4 +24,4 @@ export {
24
24
  installGlobalCLIPrompt,
25
25
  installGlobalShopifyCLI
26
26
  };
27
- //# sourceMappingURL=is-global-C4ZYYOO2.js.map
27
+ //# sourceMappingURL=is-global-JQIYTGBN.js.map