create-expo 5.1.1 → 5.1.2

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.
@@ -101,16 +101,39 @@ var multitars = __webpack_require__(6378);
101
101
  // EXTERNAL MODULE: ../../node_modules/.pnpm/picomatch@2.3.2/node_modules/picomatch/index.js
102
102
  var picomatch = __webpack_require__(3268);
103
103
  var picomatch_default = /*#__PURE__*/__webpack_require__.n(picomatch);
104
+ // EXTERNAL MODULE: ../../node_modules/.pnpm/slugify@1.6.8/node_modules/slugify/slugify.js
105
+ var slugify = __webpack_require__(3173);
106
+ var slugify_default = /*#__PURE__*/__webpack_require__.n(slugify);
104
107
  ;// CONCATENATED MODULE: ./src/createFileTransform.ts
105
108
 
106
109
 
107
110
 
111
+
108
112
  const createFileTransform_debug = __webpack_require__(6675)('expo:init:fileTransform');
113
+ const NEITHER_LETTER_NOR_NUMBER = /[^\p{L}\p{N}]+/gu;
114
+ const COMBINING_MARKS = /\p{M}+/gu;
115
+ const NOT_ASCII_ALPHANUMERIC = /[\W_]+/g;
116
+ /**
117
+ * Returns an ASCII identifier for `name`, used as the native project and target name.
118
+ * Symbols carry no name information and are dropped ('A & B' -> 'AB', 'Expo®' -> 'Expo').
119
+ * Letters keep their base form ('Árbók' -> 'Arbok', 'Æøå' -> 'AEoa', 'LJubljana' -> 'LJubljana').
120
+ * A name with no usable letters falls back to a slugify of the whole name
121
+ * ('♥' -> 'love'), then to 'app'.
122
+ *
123
+ * Keep in sync with `sanitizedName` in `@expo/config-plugins` (src/ios/utils/Xcodeproj.ts)
124
+ * so create-expo and prebuild derive the same project name.
125
+ */
109
126
  function sanitizedName(name) {
110
- return name
111
- .replace(/[\W_]+/g, '')
112
- .normalize('NFD')
113
- .replace(/[\u0300-\u036f]/g, '');
127
+ // NFKD before slugify, or letters are lost: 'Ċ' decomposes to 'C' + a combining mark
128
+ // that the next line drops, while slugify deletes it outright.
129
+ const lettersAndNumbers = name
130
+ .replace(NEITHER_LETTER_NOR_NUMBER, '')
131
+ .normalize('NFKD')
132
+ .replace(COMBINING_MARKS, '');
133
+ return toAsciiIdentifier(slugify_default()(lettersAndNumbers)) || toAsciiIdentifier(slugify_default()(name)) || 'app';
134
+ }
135
+ function toAsciiIdentifier(name) {
136
+ return name.replace(NOT_ASCII_ALPHANUMERIC, '');
114
137
  }
115
138
  // Directories that can be added to the template with an underscore instead of a dot, e.g. `.vscode` and be added with `_vscode`.
116
139
  const SUPPORTED_DIRECTORIES = ['eas', 'vscode', 'github', 'cursor'];
@@ -135,9 +158,10 @@ function renameConfigs(input, typeflag) {
135
158
  function createEntryRenamer(name) {
136
159
  return (input, typeflag) => {
137
160
  if (name) {
138
- // Rewrite paths for bare workflow
161
+ // Rewrite paths for bare workflow. Lowercase after sanitizing so the result
162
+ // always matches content renames (slugify's charmap is case-asymmetric).
139
163
  input = input
140
- .replace(/HelloWorld/g, input.includes('android') ? sanitizedName(name.toLowerCase()) : sanitizedName(name))
164
+ .replace(/HelloWorld/g, input.includes('android') ? sanitizedName(name).toLowerCase() : sanitizedName(name))
141
165
  .replace(/helloworld/g, sanitizedName(name).toLowerCase());
142
166
  }
143
167
  input = renameConfigs(input, typeflag);
@@ -795,12 +819,41 @@ async function extractAndPrepareTemplateAppAsync(projectRoot, { npmPackage }) {
795
819
  await sanitizeTemplateAsync(projectRoot);
796
820
  return projectRoot;
797
821
  }
822
+ // Android resource XML (strings.xml): aapt2 resolves XML entities before its
823
+ // own escape rules, so only &, <, > take entities; the rest (quotes, @, ?,
824
+ // whitespace) needs Android's backslash escapes. The backslash escaping is a
825
+ // copy of `XML.escapeAndroidString` from `@expo/config-plugins`, which this
826
+ // package does not depend on.
827
+ function escapeAndroidResourceValue(original) {
828
+ const noAmps = original.replace(/&/g, '&amp;');
829
+ const noLt = noAmps.replace(/</g, '&lt;');
830
+ const noGt = noLt.replace(/>/g, '&gt;');
831
+ const escaped = noGt.replace(/[\n\r\t'"@?\\]/g, (m) => {
832
+ switch (m) {
833
+ case '"':
834
+ case "'":
835
+ case '@':
836
+ case '?':
837
+ case '\\':
838
+ return '\\' + m;
839
+ case '\n':
840
+ return '\\n';
841
+ case '\r':
842
+ return '\\r';
843
+ case '\t':
844
+ return '\\t';
845
+ default:
846
+ throw new Error(`Cannot escape unhandled XML character: ${m}`);
847
+ }
848
+ });
849
+ return escaped.match(/(^\s|\s$)/) ? `"${escaped}"` : escaped;
850
+ }
798
851
  function escapeXMLCharacters(original) {
799
- const noAmps = original.replace('&', '&amp;');
800
- const noLt = noAmps.replace('<', '&lt;');
801
- const noGt = noLt.replace('>', '&gt;');
802
- const noApos = noGt.replace('"', '\\"');
803
- return noApos.replace("'", "\\'");
852
+ const noAmps = original.replace(/&/g, '&amp;');
853
+ const noLt = noAmps.replace(/</g, '&lt;');
854
+ const noGt = noLt.replace(/>/g, '&gt;');
855
+ const noQuots = noGt.replace(/"/g, '&quot;');
856
+ return noQuots.replace(/'/g, '&apos;');
804
857
  }
805
858
  /**
806
859
  * # Background
@@ -887,6 +940,17 @@ renameConfig: userConfig, }) {
887
940
  follow: false,
888
941
  });
889
942
  }
943
+ /**
944
+ * Substitutes the template's placeholder app name inside the given files. Only file
945
+ * contents are rewritten, and only three tokens: `Hello App Display Name`, `HelloWorld`
946
+ * and `helloworld`.
947
+ *
948
+ * File and directory names are renamed separately during template extraction, from the
949
+ * same `sanitizedName` call.
950
+ *
951
+ * What this writes is final: unlike `expo prebuild`, `create-expo` runs no config mods
952
+ * that would rewrite `app_name` afterwards.
953
+ */
890
954
  async function renameTemplateAppNameAsync({ cwd, name, files, }) {
891
955
  Template_debug(`Got files to transform: ${JSON.stringify(files)}`);
892
956
  await Promise.all(files.map(async (file) => {
@@ -901,14 +965,18 @@ async function renameTemplateAppNameAsync({ cwd, name, files, }) {
901
965
  throw new Error(`Failed to read template file: "${absoluteFilePath}". Was it removed mid-operation?`, { cause: error });
902
966
  }
903
967
  Template_debug(`Renaming app name in file: ${absoluteFilePath}`);
904
- const safeName = ['.xml', '.plist'].includes(external_path_default().extname(file))
905
- ? escapeXMLCharacters(name)
906
- : name;
968
+ const extension = external_path_default().extname(file);
969
+ // `.xml` files in the rename config are Android resources; `.plist` is generic XML.
970
+ const escapedDisplayName = extension === '.xml'
971
+ ? escapeAndroidResourceValue(name)
972
+ : extension === '.plist'
973
+ ? escapeXMLCharacters(name)
974
+ : name;
907
975
  try {
908
976
  const replacement = contents
909
- .replace(/Hello App Display Name/g, safeName)
910
- .replace(/HelloWorld/g, sanitizedName(safeName))
911
- .replace(/helloworld/g, sanitizedName(safeName.toLowerCase()));
977
+ .replace(/Hello App Display Name/g, () => escapedDisplayName)
978
+ .replace(/HelloWorld/g, sanitizedName(name))
979
+ .replace(/helloworld/g, sanitizedName(name).toLowerCase());
912
980
  if (replacement === contents) {
913
981
  return;
914
982
  }
@@ -1,5 +1,5 @@
1
- exports.id = 870;
2
- exports.ids = [870];
1
+ exports.id = 810;
2
+ exports.ids = [810];
3
3
  exports.modules = {
4
4
 
5
5
  /***/ 2671:
@@ -11373,6 +11373,77 @@ const erase = {
11373
11373
  module.exports = { cursor, scroll, erase, beep };
11374
11374
 
11375
11375
 
11376
+ /***/ }),
11377
+
11378
+ /***/ 3173:
11379
+ /***/ (function(module) {
11380
+
11381
+
11382
+ ;(function (name, root, factory) {
11383
+ if (true) {
11384
+ module.exports = factory()
11385
+ module.exports["default"] = factory()
11386
+ }
11387
+ /* istanbul ignore next */
11388
+ else {}
11389
+ }('slugify', this, function () {
11390
+ var charMap = JSON.parse('{"$":"dollar","%":"percent","&":"and","<":"less",">":"greater","|":"or","¢":"cent","£":"pound","¤":"currency","¥":"yen","©":"(c)","ª":"a","®":"(r)","º":"o","À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","Æ":"AE","Ç":"C","È":"E","É":"E","Ê":"E","Ë":"E","Ì":"I","Í":"I","Î":"I","Ï":"I","Ð":"D","Ñ":"N","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","Ù":"U","Ú":"U","Û":"U","Ü":"U","Ý":"Y","Þ":"TH","ß":"ss","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","æ":"ae","ç":"c","è":"e","é":"e","ê":"e","ë":"e","ì":"i","í":"i","î":"i","ï":"i","ð":"d","ñ":"n","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","ù":"u","ú":"u","û":"u","ü":"u","ý":"y","þ":"th","ÿ":"y","Ā":"A","ā":"a","Ă":"A","ă":"a","Ą":"A","ą":"a","Ć":"C","ć":"c","Č":"C","č":"c","Ď":"D","ď":"d","Đ":"DJ","đ":"dj","Ē":"E","ē":"e","Ė":"E","ė":"e","Ę":"e","ę":"e","Ě":"E","ě":"e","Ğ":"G","ğ":"g","Ģ":"G","ģ":"g","Ĩ":"I","ĩ":"i","Ī":"i","ī":"i","Į":"I","į":"i","İ":"I","ı":"i","Ķ":"k","ķ":"k","Ļ":"L","ļ":"l","Ľ":"L","ľ":"l","Ł":"L","ł":"l","Ń":"N","ń":"n","Ņ":"N","ņ":"n","Ň":"N","ň":"n","Ō":"O","ō":"o","Ő":"O","ő":"o","Œ":"OE","œ":"oe","Ŕ":"R","ŕ":"r","Ř":"R","ř":"r","Ś":"S","ś":"s","Ş":"S","ş":"s","Š":"S","š":"s","Ţ":"T","ţ":"t","Ť":"T","ť":"t","Ũ":"U","ũ":"u","Ū":"u","ū":"u","Ů":"U","ů":"u","Ű":"U","ű":"u","Ų":"U","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","ź":"z","Ż":"Z","ż":"z","Ž":"Z","ž":"z","Ə":"E","ƒ":"f","Ơ":"O","ơ":"o","Ư":"U","ư":"u","Lj":"LJ","lj":"lj","Nj":"NJ","nj":"nj","Ș":"S","ș":"s","Ț":"T","ț":"t","ə":"e","˚":"o","Ά":"A","Έ":"E","Ή":"H","Ί":"I","Ό":"O","Ύ":"Y","Ώ":"W","ΐ":"i","Α":"A","Β":"B","Γ":"G","Δ":"D","Ε":"E","Ζ":"Z","Η":"H","Θ":"8","Ι":"I","Κ":"K","Λ":"L","Μ":"M","Ν":"N","Ξ":"3","Ο":"O","Π":"P","Ρ":"R","Σ":"S","Τ":"T","Υ":"Y","Φ":"F","Χ":"X","Ψ":"PS","Ω":"W","Ϊ":"I","Ϋ":"Y","ά":"a","έ":"e","ή":"h","ί":"i","ΰ":"y","α":"a","β":"b","γ":"g","δ":"d","ε":"e","ζ":"z","η":"h","θ":"8","ι":"i","κ":"k","λ":"l","μ":"m","ν":"n","ξ":"3","ο":"o","π":"p","ρ":"r","ς":"s","σ":"s","τ":"t","υ":"y","φ":"f","χ":"x","ψ":"ps","ω":"w","ϊ":"i","ϋ":"y","ό":"o","ύ":"y","ώ":"w","Ё":"Yo","Ђ":"DJ","Є":"Ye","І":"I","Ї":"Yi","Ј":"J","Љ":"LJ","Њ":"NJ","Ћ":"C","Џ":"DZ","А":"A","Б":"B","В":"V","Г":"G","Д":"D","Е":"E","Ж":"Zh","З":"Z","И":"I","Й":"J","К":"K","Л":"L","М":"M","Н":"N","О":"O","П":"P","Р":"R","С":"S","Т":"T","У":"U","Ф":"F","Х":"H","Ц":"C","Ч":"Ch","Ш":"Sh","Щ":"Sh","Ъ":"U","Ы":"Y","Ь":"","Э":"E","Ю":"Yu","Я":"Ya","а":"a","б":"b","в":"v","г":"g","д":"d","е":"e","ж":"zh","з":"z","и":"i","й":"j","к":"k","л":"l","м":"m","н":"n","о":"o","п":"p","р":"r","с":"s","т":"t","у":"u","ф":"f","х":"h","ц":"c","ч":"ch","ш":"sh","щ":"sh","ъ":"u","ы":"y","ь":"","э":"e","ю":"yu","я":"ya","ё":"yo","ђ":"dj","є":"ye","і":"i","ї":"yi","ј":"j","љ":"lj","њ":"nj","ћ":"c","ѝ":"u","џ":"dz","Ґ":"G","ґ":"g","Ғ":"GH","ғ":"gh","Қ":"KH","қ":"kh","Ң":"NG","ң":"ng","Ү":"UE","ү":"ue","Ұ":"U","ұ":"u","Һ":"H","һ":"h","Ә":"AE","ә":"ae","Ө":"OE","ө":"oe","Ա":"A","Բ":"B","Գ":"G","Դ":"D","Ե":"E","Զ":"Z","Է":"E\'","Ը":"Y\'","Թ":"T\'","Ժ":"JH","Ի":"I","Լ":"L","Խ":"X","Ծ":"C\'","Կ":"K","Հ":"H","Ձ":"D\'","Ղ":"GH","Ճ":"TW","Մ":"M","Յ":"Y","Ն":"N","Շ":"SH","Չ":"CH","Պ":"P","Ջ":"J","Ռ":"R\'","Ս":"S","Վ":"V","Տ":"T","Ր":"R","Ց":"C","Փ":"P\'","Ք":"Q\'","Օ":"O\'\'","Ֆ":"F","և":"EV","ء":"a","آ":"aa","أ":"a","ؤ":"u","إ":"i","ئ":"e","ا":"a","ب":"b","ة":"h","ت":"t","ث":"th","ج":"j","ح":"h","خ":"kh","د":"d","ذ":"th","ر":"r","ز":"z","س":"s","ش":"sh","ص":"s","ض":"dh","ط":"t","ظ":"z","ع":"a","غ":"gh","ف":"f","ق":"q","ك":"k","ل":"l","م":"m","ن":"n","ه":"h","و":"w","ى":"a","ي":"y","ً":"an","ٌ":"on","ٍ":"en","َ":"a","ُ":"u","ِ":"e","ْ":"","٠":"0","١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","پ":"p","چ":"ch","ژ":"zh","ک":"k","گ":"g","ی":"y","۰":"0","۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","฿":"baht","ა":"a","ბ":"b","გ":"g","დ":"d","ე":"e","ვ":"v","ზ":"z","თ":"t","ი":"i","კ":"k","ლ":"l","მ":"m","ნ":"n","ო":"o","პ":"p","ჟ":"zh","რ":"r","ს":"s","ტ":"t","უ":"u","ფ":"f","ქ":"k","ღ":"gh","ყ":"q","შ":"sh","ჩ":"ch","ც":"ts","ძ":"dz","წ":"ts","ჭ":"ch","ხ":"kh","ჯ":"j","ჰ":"h","Ṣ":"S","ṣ":"s","Ẁ":"W","ẁ":"w","Ẃ":"W","ẃ":"w","Ẅ":"W","ẅ":"w","ẞ":"SS","Ạ":"A","ạ":"a","Ả":"A","ả":"a","Ấ":"A","ấ":"a","Ầ":"A","ầ":"a","Ẩ":"A","ẩ":"a","Ẫ":"A","ẫ":"a","Ậ":"A","ậ":"a","Ắ":"A","ắ":"a","Ằ":"A","ằ":"a","Ẳ":"A","ẳ":"a","Ẵ":"A","ẵ":"a","Ặ":"A","ặ":"a","Ẹ":"E","ẹ":"e","Ẻ":"E","ẻ":"e","Ẽ":"E","ẽ":"e","Ế":"E","ế":"e","Ề":"E","ề":"e","Ể":"E","ể":"e","Ễ":"E","ễ":"e","Ệ":"E","ệ":"e","Ỉ":"I","ỉ":"i","Ị":"I","ị":"i","Ọ":"O","ọ":"o","Ỏ":"O","ỏ":"o","Ố":"O","ố":"o","Ồ":"O","ồ":"o","Ổ":"O","ổ":"o","Ỗ":"O","ỗ":"o","Ộ":"O","ộ":"o","Ớ":"O","ớ":"o","Ờ":"O","ờ":"o","Ở":"O","ở":"o","Ỡ":"O","ỡ":"o","Ợ":"O","ợ":"o","Ụ":"U","ụ":"u","Ủ":"U","ủ":"u","Ứ":"U","ứ":"u","Ừ":"U","ừ":"u","Ử":"U","ử":"u","Ữ":"U","ữ":"u","Ự":"U","ự":"u","Ỳ":"Y","ỳ":"y","Ỵ":"Y","ỵ":"y","Ỷ":"Y","ỷ":"y","Ỹ":"Y","ỹ":"y","–":"-","‘":"\'","’":"\'","“":"\\\"","”":"\\\"","„":"\\\"","†":"+","•":"*","…":"...","₠":"ecu","₢":"cruzeiro","₣":"french franc","₤":"lira","₥":"mill","₦":"naira","₧":"peseta","₨":"rupee","₩":"won","₪":"new shequel","₫":"dong","€":"euro","₭":"kip","₮":"tugrik","₯":"drachma","₰":"penny","₱":"peso","₲":"guarani","₳":"austral","₴":"hryvnia","₵":"cedi","₸":"kazakhstani tenge","₹":"indian rupee","₺":"turkish lira","₽":"russian ruble","₿":"bitcoin","℠":"sm","™":"tm","∂":"d","∆":"delta","∑":"sum","∞":"infinity","♥":"love","元":"yuan","円":"yen","﷼":"rial","ﻵ":"laa","ﻷ":"laa","ﻹ":"lai","ﻻ":"la"}')
11391
+ var locales = JSON.parse('{"bg":{"Й":"Y","Ц":"Ts","Щ":"Sht","Ъ":"A","Ь":"Y","й":"y","ц":"ts","щ":"sht","ъ":"a","ь":"y"},"de":{"Ä":"AE","ä":"ae","Ö":"OE","ö":"oe","Ü":"UE","ü":"ue","ß":"ss","%":"prozent","&":"und","|":"oder","∑":"summe","∞":"unendlich","♥":"liebe"},"es":{"%":"por ciento","&":"y","<":"menor que",">":"mayor que","|":"o","¢":"centavos","£":"libras","¤":"moneda","₣":"francos","∑":"suma","∞":"infinito","♥":"amor"},"fr":{"%":"pourcent","&":"et","<":"plus petit",">":"plus grand","|":"ou","¢":"centime","£":"livre","¤":"devise","₣":"franc","∑":"somme","∞":"infini","♥":"amour"},"pt":{"%":"porcento","&":"e","<":"menor",">":"maior","|":"ou","¢":"centavo","∑":"soma","£":"libra","∞":"infinito","♥":"amor"},"uk":{"И":"Y","и":"y","Й":"Y","й":"y","Ц":"Ts","ц":"ts","Х":"Kh","х":"kh","Щ":"Shch","щ":"shch","Г":"H","г":"h"},"vi":{"Đ":"D","đ":"d"},"da":{"Ø":"OE","ø":"oe","Å":"AA","å":"aa","%":"procent","&":"og","|":"eller","$":"dollar","<":"mindre end",">":"større end"},"nb":{"&":"og","Å":"AA","Æ":"AE","Ø":"OE","å":"aa","æ":"ae","ø":"oe"},"it":{"&":"e"},"nl":{"&":"en"},"sv":{"&":"och","Å":"AA","Ä":"AE","Ö":"OE","å":"aa","ä":"ae","ö":"oe"}}')
11392
+
11393
+ function replace (string, options) {
11394
+ if (typeof string !== 'string') {
11395
+ throw new Error('slugify: string argument expected')
11396
+ }
11397
+
11398
+ options = (typeof options === 'string')
11399
+ ? {replacement: options}
11400
+ : options || {}
11401
+
11402
+ var locale = locales[options.locale] || {}
11403
+
11404
+ var replacement = options.replacement === undefined ? '-' : options.replacement
11405
+
11406
+ var trim = options.trim === undefined ? true : options.trim
11407
+
11408
+ var slug = string.normalize().split('')
11409
+ // replace characters based on charMap
11410
+ .reduce(function (result, ch) {
11411
+ var appendChar = locale[ch];
11412
+ if (appendChar === undefined) appendChar = charMap[ch];
11413
+ if (appendChar === undefined) appendChar = ch;
11414
+ if (appendChar === replacement) appendChar = ' ';
11415
+ return result + appendChar
11416
+ // remove not allowed characters
11417
+ .replace(options.remove || /[^\w\s$*_+~.()'"!\-:@]+/g, '')
11418
+ }, '');
11419
+
11420
+ if (options.strict) {
11421
+ slug = slug.replace(/[^A-Za-z0-9\s]/g, '');
11422
+ }
11423
+
11424
+ if (trim) {
11425
+ slug = slug.trim()
11426
+ }
11427
+
11428
+ // Replace spaces with replacement character, treating multiple consecutive
11429
+ // spaces as a single space.
11430
+ slug = slug.replace(/\s+/g, replacement);
11431
+
11432
+ if (options.lower) {
11433
+ slug = slug.toLowerCase()
11434
+ }
11435
+
11436
+ return slug
11437
+ }
11438
+
11439
+ replace.extend = function (customMap) {
11440
+ Object.assign(charMap, customMap)
11441
+ }
11442
+
11443
+ return replace
11444
+ }))
11445
+
11446
+
11376
11447
  /***/ }),
11377
11448
 
11378
11449
  /***/ 6806:
@@ -75,6 +75,17 @@ renameConfig: userConfig, }: {
75
75
  cwd: string;
76
76
  renameConfig?: string[];
77
77
  }): Promise<string[]>;
78
+ /**
79
+ * Substitutes the template's placeholder app name inside the given files. Only file
80
+ * contents are rewritten, and only three tokens: `Hello App Display Name`, `HelloWorld`
81
+ * and `helloworld`.
82
+ *
83
+ * File and directory names are renamed separately during template extraction, from the
84
+ * same `sanitizedName` call.
85
+ *
86
+ * What this writes is final: unlike `expo prebuild`, `create-expo` runs no config mods
87
+ * that would rewrite `app_name` afterwards.
88
+ */
78
89
  export declare function renameTemplateAppNameAsync({ cwd, name, files, }: {
79
90
  cwd: string;
80
91
  name: string;
@@ -1,5 +1,15 @@
1
1
  import { TarTypeFlag } from 'multitars';
2
2
  import picomatch from 'picomatch';
3
+ /**
4
+ * Returns an ASCII identifier for `name`, used as the native project and target name.
5
+ * Symbols carry no name information and are dropped ('A & B' -> 'AB', 'Expo®' -> 'Expo').
6
+ * Letters keep their base form ('Árbók' -> 'Arbok', 'Æøå' -> 'AEoa', 'LJubljana' -> 'LJubljana').
7
+ * A name with no usable letters falls back to a slugify of the whole name
8
+ * ('♥' -> 'love'), then to 'app'.
9
+ *
10
+ * Keep in sync with `sanitizedName` in `@expo/config-plugins` (src/ios/utils/Xcodeproj.ts)
11
+ * so create-expo and prebuild derive the same project name.
12
+ */
3
13
  export declare function sanitizedName(name: string): string;
4
14
  export declare function createEntryRenamer(name: string): (input: string, typeflag: TarTypeFlag) => string;
5
15
  export declare function createGlobFilter(globPattern: picomatch.Glob, options?: picomatch.PicomatchOptions): (path: string) => boolean;
package/build/index.js CHANGED
@@ -74,4 +74,4 @@ var n=r(181);var s=n.Buffer;function copyProps(e,t){for(var r in e){t[r]=e[r]}}i
74
74
  {bold yarn:} {cyan yarn create ${e}}
75
75
  {bold pnpm:} {cyan pnpm create ${e}}
76
76
  {bold bun:} {cyan bun create ${e}}
77
- `)}const{AnalyticsEventPhases:a,AnalyticsEventTypes:c,flushAsync:p,track:d}=await r.e(601).then(r.bind(r,601));try{const s=await resolveStringOrBooleanArgsAsync(e,t,{"--template":Boolean,"--example":Boolean,"-t":"--template","-e":"--example"});f(`Default args:\n%O`,n);f(`Parsed:\n%O`,s);const{createAsync:i}=await Promise.all([r.e(870),r.e(589)]).then(r.bind(r,589));await i(s.projectRoot,{yes:!!n["--yes"],template:s.args["--template"],example:s.args["--example"],install:!n["--no-install"],agentsMd:!n["--no-agents-md"]});d({event:c.CREATE_EXPO_APP,properties:{phase:a.SUCCESS}});await p()}catch(e){if(!(e instanceof i.R)){o.tG.exception(e)}d({event:c.CREATE_EXPO_APP,properties:{phase:a.FAIL,message:e.cause}});await p().finally((()=>{process.exit(e.code||1)}))}finally{const e=await(await Promise.resolve().then(r.bind(r,7517))).default;await e()}}run()},6725:(e,t,r)=>{"use strict";r.d(t,{R:()=>ExitError});class ExitError extends Error{cause;code;constructor(e,t){super(e instanceof Error?e.message:e);this.cause=e;this.code=t}}},1545:(e,t,r)=>{"use strict";r.d(t,{NS:()=>exit,tG:()=>o});var n=r(2314);var s=r.n(n);var i=r(6725);function error(...e){console.error(...e)}function exception(e){const{env:t}=r(4342);error(s().red(e.toString())+(t.EXPO_DEBUG?"\n"+s().gray(e.stack):""))}function log(...e){console.log(...e)}function exit(e,t=1){if(e instanceof Error){exception(e)}else if(e){if(t===0){log(e)}else{error(e)}}if(t!==0){throw new i.R(e,t)}process.exit(t)}const o={error:error,exception:exception,log:log,exit:exit}},9560:(e,t,r)=>{"use strict";r.d(t,{DC:()=>installDependenciesAsync,MZ:()=>configurePackageManager,Wq:()=>formatRunCommand,_c:()=>resolvePackageManager,fZ:()=>formatSelfCommand});var n=r(6268);var s=r.n(n);var i=r(5317);var o=r.n(i);var u=r(7517);const a=r(6675)("expo:init:resolvePackageManager");function resolvePackageManager(){const e=process.env.npm_config_user_agent;a("npm_config_user_agent:",e);if(e?.startsWith("yarn")){return"yarn"}else if(e?.startsWith("pnpm")){return"pnpm"}else if(e?.startsWith("bun")){return"bun"}else if(e?.startsWith("nub")){return"nub"}else if(e?.startsWith("npm")){return"npm"}if(isPackageManagerAvailable("yarn")){return"yarn"}else if(isPackageManagerAvailable("pnpm")){return"pnpm"}else if(isPackageManagerAvailable("bun")){return"bun"}else if(isPackageManagerAvailable("nub")){return"nub"}return"npm"}function isPackageManagerAvailable(e){try{(0,i.execSync)(`${e} --version`,{stdio:"ignore"});return true}catch{}return false}function formatRunCommand(e,t){switch(e){case"pnpm":return`pnpm run ${t}`;case"yarn":return`yarn ${t}`;case"bun":return`bun run ${t}`;case"nub":return`nub run ${t}`;case"npm":default:return`npm run ${t}`}}function formatSelfCommand(){const e=resolvePackageManager();switch(e){case"pnpm":return`pnpx ${u.PACKAGE_NAME}`;case"bun":return`bunx ${u.PACKAGE_NAME}`;case"nub":return`nubx ${u.PACKAGE_NAME}`;case"yarn":case"npm":default:return`npx ${u.PACKAGE_NAME}`}}function createPackageManager(e,t){switch(e){case"yarn":return new n.YarnPackageManager(t);case"pnpm":return new n.PnpmPackageManager(t);case"bun":return new n.BunPackageManager(t);case"nub":return new n.NubPackageManager(t);case"npm":default:return new n.NpmPackageManager(t)}}async function installDependenciesAsync(e,t,r={silent:false}){await createPackageManager(t,{cwd:e,silent:r.silent}).installAsync()}async function configurePackageManager(e,t,r={silent:false}){const n=createPackageManager(t,{cwd:e,...r});switch(n.name){case"yarn":{const e=await n.versionAsync();const t=parseInt(e.split(".")[0]??"",10);if(t>=2){await n.runAsync(["config","set","nodeLinker","node-modules"])}break}}}},4342:(e,t,r)=>{"use strict";r.r(t);r.d(t,{env:()=>i});var n=r(277);var s=r.n(n);class Env{get EXPO_DEBUG(){return(0,n.boolish)("EXPO_DEBUG",false)}get EXPO_BETA(){return(0,n.boolish)("EXPO_BETA",false)}get CI(){return(0,n.boolish)("CI",false)}get EXPO_NO_CACHE(){return(0,n.boolish)("EXPO_NO_CACHE",false)}get EXPO_NO_TELEMETRY(){return(0,n.boolish)("EXPO_NO_TELEMETRY",false)}}const i=new Env},7517:(e,t,r)=>{"use strict";r.r(t);r.d(t,{PACKAGE_NAME:()=>u,default:()=>shouldUpdate});var n=r(2314);var s=r.n(n);var i=r(5059);var o=r.n(i);const u="create-expo";const getPackageJson=()=>{try{return r(8330)}catch{return null}};const a=r(6675)("expo:init:update-check");async function shouldUpdate(){try{const e=getPackageJson();const t=await o()(e);if(t?.latest){console.log();console.log(s().yellow.bold(`A new version of \`${e?.name??u}\` is available`));console.log(s()`You can update by running: {cyan npm install -g ${e?.name??u}}`);console.log()}}catch(e){a("Error checking for update:\n%O",e)}}},2613:e=>{"use strict";e.exports=require("assert")},181:e=>{"use strict";e.exports=require("buffer")},5317:e=>{"use strict";e.exports=require("child_process")},6982:e=>{"use strict";e.exports=require("crypto")},2250:e=>{"use strict";e.exports=require("dns")},4434:e=>{"use strict";e.exports=require("events")},9896:e=>{"use strict";e.exports=require("fs")},8611:e=>{"use strict";e.exports=require("http")},5692:e=>{"use strict";e.exports=require("https")},3339:e=>{"use strict";e.exports=require("module")},5217:e=>{"use strict";e.exports=require("node:crypto")},8474:e=>{"use strict";e.exports=require("node:events")},3024:e=>{"use strict";e.exports=require("node:fs")},1455:e=>{"use strict";e.exports=require("node:fs/promises")},6760:e=>{"use strict";e.exports=require("node:path")},1708:e=>{"use strict";e.exports=require("node:process")},7075:e=>{"use strict";e.exports=require("node:stream")},6193:e=>{"use strict";e.exports=require("node:string_decoder")},3136:e=>{"use strict";e.exports=require("node:url")},857:e=>{"use strict";e.exports=require("os")},6928:e=>{"use strict";e.exports=require("path")},3785:e=>{"use strict";e.exports=require("readline")},2203:e=>{"use strict";e.exports=require("stream")},2018:e=>{"use strict";e.exports=require("tty")},7016:e=>{"use strict";e.exports=require("url")},9023:e=>{"use strict";e.exports=require("util")},8247:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});var n=r(6831);var s=r(7815);var i=r(9885);function isColorSupported(){return typeof process==="object"&&(process.env.FORCE_COLOR==="0"||process.env.FORCE_COLOR==="false")?false:n.isColorSupported}const compose=(e,t)=>r=>e(t(r));function buildDefs(e){return{keyword:e.cyan,capitalized:e.yellow,jsxIdentifier:e.yellow,punctuator:e.yellow,number:e.magenta,string:e.green,regex:e.magenta,comment:e.gray,invalid:compose(compose(e.white,e.bgRed),e.bold),gutter:e.gray,marker:compose(e.red,e.bold),message:compose(e.red,e.bold),reset:e.reset}}const o=buildDefs(n.createColors(true));const u=buildDefs(n.createColors(false));function getDefs(e){return e?o:u}const a=new Set(["as","async","from","get","of","set"]);const c=/\r\n|[\n\r\u2028\u2029]/;const l=/^[()[\]{}]$/;let f;const p=/^[a-z][\w-]*$/i;const getTokenType=function(e,t,r){if(e.type==="name"){const n=e.value;if(i.isKeyword(n)||i.isStrictReservedWord(n,true)||a.has(n)){return"keyword"}if(p.test(n)&&(r[t-1]==="<"||r.slice(t-2,t)==="</")){return"jsxIdentifier"}const s=String.fromCodePoint(n.codePointAt(0));if(s!==s.toLowerCase()){return"capitalized"}}if(e.type==="punctuator"&&l.test(e.value)){return"bracket"}if(e.type==="invalid"&&(e.value==="@"||e.value==="#")){return"punctuator"}return e.type};f=function*(e){let t;while(t=s.default.exec(e)){const r=s.matchToToken(t);yield{type:getTokenType(r,t.index,e),value:r.value}}};function highlight(e){if(e==="")return"";const t=getDefs(true);let r="";for(const{type:n,value:s}of f(e)){if(n in t){r+=s.split(c).map((e=>t[n](e))).join("\n")}else{r+=s}}return r}let d=false;const h=/\r\n|[\n\r\u2028\u2029]/;function getMarkerLines(e,t,r,n){const s=Object.assign({column:0,line:-1},e.start);const i=Object.assign({},s,e.end);const{linesAbove:o=2,linesBelow:u=3}=r||{};const a=s.line-n;const c=s.column;const l=i.line-n;const f=i.column;let p=Math.max(a-(o+1),0);let d=Math.min(t.length,l+u);if(a===-1){p=0}if(l===-1){d=t.length}const h=l-a;const g={};if(h){for(let e=0;e<=h;e++){const r=e+a;if(!c){g[r]=true}else if(e===0){const e=t[r-1].length;g[r]=[c,e-c+1]}else if(e===h){g[r]=[0,f]}else{const n=t[r-e].length;g[r]=[0,n]}}}else{if(c===f){if(c){g[a]=[c,0]}else{g[a]=true}}else{g[a]=[c,f-c]}}return{start:p,end:d,markerLines:g}}function codeFrameColumns(e,t,r={}){const n=r.forceColor||isColorSupported()&&r.highlightCode;const s=(r.startLine||1)-1;const i=getDefs(n);const o=e.split(h);const{start:u,end:a,markerLines:c}=getMarkerLines(t,o,r,s);const l=t.start&&typeof t.start.column==="number";const f=String(a+s).length;const p=n?highlight(e):e;let d=p.split(h,a).slice(u,a).map(((e,t)=>{const n=u+1+t;const o=` ${n+s}`.slice(-f);const a=` ${o} |`;const l=c[n];const p=!c[n+1];if(l){let t="";if(Array.isArray(l)){const n=e.slice(0,Math.max(l[0]-1,0)).replace(/[^\t]/g," ");const s=l[1]||1;t=["\n ",i.gutter(a.replace(/\d/g," "))," ",n,i.marker("^").repeat(s)].join("");if(p&&r.message){t+=" "+i.message(r.message)}}return[i.marker(">"),i.gutter(a),e.length>0?` ${e}`:"",t].join("")}else{return` ${i.gutter(a)}${e.length>0?` ${e}`:""}`}})).join("\n");if(r.message&&!l){d=`${" ".repeat(f+1)}${r.message}\n${d}`}if(n){return i.reset(d)}else{return d}}function index(e,t,r,n={}){if(!d){d=true;const e="Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.";if(process.emitWarning){process.emitWarning(e,"DeprecationWarning")}else{const t=new Error(e);t.name="DeprecationWarning";console.warn(new Error(e))}}r=Math.max(r,0);const s={start:{column:r,line:t}};return codeFrameColumns(e,s,n)}t.codeFrameColumns=codeFrameColumns;t["default"]=index;t.highlight=highlight},5942:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.isIdentifierChar=isIdentifierChar;t.isIdentifierName=isIdentifierName;t.isIdentifierStart=isIdentifierStart;let r="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࡰ-ࢇࢉ-࢏ࢠ-ࣉऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚ౜ౝౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽ೜-ೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜑᜟ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭌᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲊᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-Ƛ꟱-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ";let n="·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࢗ-࢟࣊-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄ఼ా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ೳഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-໎໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜕ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠏-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿ-᫝᫠-᫫ᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷿‌‍‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯・꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_・";const s=new RegExp("["+r+"]");const i=new RegExp("["+r+n+"]");r=n=null;const o=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,4,51,13,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,7,25,39,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,39,27,10,22,251,41,7,1,17,5,57,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,31,9,2,0,3,0,2,37,2,0,26,0,2,0,45,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,200,32,32,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,24,43,261,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,26,3994,6,582,6842,29,1763,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,433,44,212,63,33,24,3,24,45,74,6,0,67,12,65,1,2,0,15,4,10,7381,42,31,98,114,8702,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,229,29,3,0,208,30,2,2,2,1,2,6,3,4,10,1,225,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4381,3,5773,3,7472,16,621,2467,541,1507,4938,6,8489];const u=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,7,9,32,4,318,1,78,5,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,68,8,2,0,3,0,2,3,2,4,2,0,15,1,83,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,7,19,58,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,199,7,137,9,54,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,55,9,266,3,10,1,2,0,49,6,4,4,14,10,5350,0,7,14,11465,27,2343,9,87,9,39,4,60,6,26,9,535,9,470,0,2,54,8,3,82,0,12,1,19628,1,4178,9,519,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,245,1,2,9,233,0,3,0,8,1,6,0,475,6,110,6,6,9,4759,9,787719,239];function isInAstralSet(e,t){let r=65536;for(let n=0,s=t.length;n<s;n+=2){r+=t[n];if(r>e)return false;r+=t[n+1];if(r>=e)return true}return false}function isIdentifierStart(e){if(e<65)return e===36;if(e<=90)return true;if(e<97)return e===95;if(e<=122)return true;if(e<=65535){return e>=170&&s.test(String.fromCharCode(e))}return isInAstralSet(e,o)}function isIdentifierChar(e){if(e<48)return e===36;if(e<58)return true;if(e<65)return false;if(e<=90)return true;if(e<97)return e===95;if(e<=122)return true;if(e<=65535){return e>=170&&i.test(String.fromCharCode(e))}return isInAstralSet(e,o)||isInAstralSet(e,u)}function isIdentifierName(e){let t=true;for(let r=0;r<e.length;r++){let n=e.charCodeAt(r);if((n&64512)===55296&&r+1<e.length){const t=e.charCodeAt(++r);if((t&64512)===56320){n=65536+((n&1023)<<10)+(t&1023)}}if(t){t=false;if(!isIdentifierStart(n)){return false}}else if(!isIdentifierChar(n)){return false}}return!t}},9885:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"isIdentifierChar",{enumerable:true,get:function(){return n.isIdentifierChar}});Object.defineProperty(t,"isIdentifierName",{enumerable:true,get:function(){return n.isIdentifierName}});Object.defineProperty(t,"isIdentifierStart",{enumerable:true,get:function(){return n.isIdentifierStart}});Object.defineProperty(t,"isKeyword",{enumerable:true,get:function(){return s.isKeyword}});Object.defineProperty(t,"isReservedWord",{enumerable:true,get:function(){return s.isReservedWord}});Object.defineProperty(t,"isStrictBindOnlyReservedWord",{enumerable:true,get:function(){return s.isStrictBindOnlyReservedWord}});Object.defineProperty(t,"isStrictBindReservedWord",{enumerable:true,get:function(){return s.isStrictBindReservedWord}});Object.defineProperty(t,"isStrictReservedWord",{enumerable:true,get:function(){return s.isStrictReservedWord}});var n=r(5942);var s=r(1006)},1006:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.isKeyword=isKeyword;t.isReservedWord=isReservedWord;t.isStrictBindOnlyReservedWord=isStrictBindOnlyReservedWord;t.isStrictBindReservedWord=isStrictBindReservedWord;t.isStrictReservedWord=isStrictReservedWord;const r={keyword:["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete"],strict:["implements","interface","let","package","private","protected","public","static","yield"],strictBind:["eval","arguments"]};const n=new Set(r.keyword);const s=new Set(r.strict);const i=new Set(r.strictBind);function isReservedWord(e,t){return t&&e==="await"||e==="enum"}function isStrictReservedWord(e,t){return isReservedWord(e,t)||s.has(e)}function isStrictBindOnlyReservedWord(e){return i.has(e)}function isStrictBindReservedWord(e,t){return isStrictReservedWord(e,t)||isStrictBindOnlyReservedWord(e)}function isKeyword(e){return n.has(e)}},5934:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.LRUCache=void 0;const r=typeof performance==="object"&&performance&&typeof performance.now==="function"?performance:Date;const n=new Set;const s=typeof process==="object"&&!!process?process:{};const emitWarning=(e,t,r,n)=>{typeof s.emitWarning==="function"?s.emitWarning(e,t,r,n):console.error(`[${r}] ${t}: ${e}`)};let i=globalThis.AbortController;let o=globalThis.AbortSignal;if(typeof i==="undefined"){o=class AbortSignal{onabort;_onabort=[];reason;aborted=false;addEventListener(e,t){this._onabort.push(t)}};i=class AbortController{constructor(){warnACPolyfill()}signal=new o;abort(e){if(this.signal.aborted)return;this.signal.reason=e;this.signal.aborted=true;for(const t of this.signal._onabort){t(e)}this.signal.onabort?.(e)}};let e=s.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1";const warnACPolyfill=()=>{if(!e)return;e=false;emitWarning("AbortController is not defined. If using lru-cache in "+"node 14, load an AbortController polyfill from the "+"`node-abort-controller` package. A minimal polyfill is "+"provided for use by LRUCache.fetch(), but it should not be "+"relied upon in other contexts (eg, passing it to other APIs that "+"use AbortController/AbortSignal might have undesirable effects). "+"You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",warnACPolyfill)}}const shouldWarn=e=>!n.has(e);const u=Symbol("type");const isPosInt=e=>e&&e===Math.floor(e)&&e>0&&isFinite(e);const getUintArray=e=>!isPosInt(e)?null:e<=Math.pow(2,8)?Uint8Array:e<=Math.pow(2,16)?Uint16Array:e<=Math.pow(2,32)?Uint32Array:e<=Number.MAX_SAFE_INTEGER?ZeroArray:null;class ZeroArray extends Array{constructor(e){super(e);this.fill(0)}}class Stack{heap;length;static#s=false;static create(e){const t=getUintArray(e);if(!t)return[];Stack.#s=true;const r=new Stack(e,t);Stack.#s=false;return r}constructor(e,t){if(!Stack.#s){throw new TypeError("instantiate Stack using Stack.create(n)")}this.heap=new t(e);this.length=0}push(e){this.heap[this.length++]=e}pop(){return this.heap[--this.length]}}class LRUCache{#i;#o;#u;#a;#c;#l;ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#f;#p;#d;#h;#g;#m;#A;#E;#y;#D;#C;#w;#b;#v;#_;#F;#S;static unsafeExposeInternals(e){return{starts:e.#b,ttls:e.#v,sizes:e.#w,keyMap:e.#d,keyList:e.#h,valList:e.#g,next:e.#m,prev:e.#A,get head(){return e.#E},get tail(){return e.#y},free:e.#D,isBackgroundFetch:t=>e.#x(t),backgroundFetch:(t,r,n,s)=>e.#O(t,r,n,s),moveToTail:t=>e.#k(t),indexes:t=>e.#R(t),rindexes:t=>e.#$(t),isStale:t=>e.#B(t)}}get max(){return this.#i}get maxSize(){return this.#o}get calculatedSize(){return this.#p}get size(){return this.#f}get fetchMethod(){return this.#c}get memoMethod(){return this.#l}get dispose(){return this.#u}get disposeAfter(){return this.#a}constructor(e){const{max:t=0,ttl:r,ttlResolution:s=1,ttlAutopurge:i,updateAgeOnGet:o,updateAgeOnHas:u,allowStale:a,dispose:c,disposeAfter:l,noDisposeOnSet:f,noUpdateTTL:p,maxSize:d=0,maxEntrySize:h=0,sizeCalculation:g,fetchMethod:m,memoMethod:A,noDeleteOnFetchRejection:E,noDeleteOnStaleGet:y,allowStaleOnFetchRejection:D,allowStaleOnFetchAbort:C,ignoreFetchAbort:w}=e;if(t!==0&&!isPosInt(t)){throw new TypeError("max option must be a nonnegative integer")}const b=t?getUintArray(t):Array;if(!b){throw new Error("invalid max value: "+t)}this.#i=t;this.#o=d;this.maxEntrySize=h||this.#o;this.sizeCalculation=g;if(this.sizeCalculation){if(!this.#o&&!this.maxEntrySize){throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize")}if(typeof this.sizeCalculation!=="function"){throw new TypeError("sizeCalculation set to non-function")}}if(A!==undefined&&typeof A!=="function"){throw new TypeError("memoMethod must be a function if defined")}this.#l=A;if(m!==undefined&&typeof m!=="function"){throw new TypeError("fetchMethod must be a function if specified")}this.#c=m;this.#F=!!m;this.#d=new Map;this.#h=new Array(t).fill(undefined);this.#g=new Array(t).fill(undefined);this.#m=new b(t);this.#A=new b(t);this.#E=0;this.#y=0;this.#D=Stack.create(t);this.#f=0;this.#p=0;if(typeof c==="function"){this.#u=c}if(typeof l==="function"){this.#a=l;this.#C=[]}else{this.#a=undefined;this.#C=undefined}this.#_=!!this.#u;this.#S=!!this.#a;this.noDisposeOnSet=!!f;this.noUpdateTTL=!!p;this.noDeleteOnFetchRejection=!!E;this.allowStaleOnFetchRejection=!!D;this.allowStaleOnFetchAbort=!!C;this.ignoreFetchAbort=!!w;if(this.maxEntrySize!==0){if(this.#o!==0){if(!isPosInt(this.#o)){throw new TypeError("maxSize must be a positive integer if specified")}}if(!isPosInt(this.maxEntrySize)){throw new TypeError("maxEntrySize must be a positive integer if specified")}this.#L()}this.allowStale=!!a;this.noDeleteOnStaleGet=!!y;this.updateAgeOnGet=!!o;this.updateAgeOnHas=!!u;this.ttlResolution=isPosInt(s)||s===0?s:1;this.ttlAutopurge=!!i;this.ttl=r||0;if(this.ttl){if(!isPosInt(this.ttl)){throw new TypeError("ttl must be a positive integer if specified")}this.#I()}if(this.#i===0&&this.ttl===0&&this.#o===0){throw new TypeError("At least one of max, maxSize, or ttl is required")}if(!this.ttlAutopurge&&!this.#i&&!this.#o){const e="LRU_CACHE_UNBOUNDED";if(shouldWarn(e)){n.add(e);const t="TTL caching without ttlAutopurge, max, or maxSize can "+"result in unbounded memory consumption.";emitWarning(t,"UnboundedCacheWarning",e,LRUCache)}}}getRemainingTTL(e){return this.#d.has(e)?Infinity:0}#I(){const e=new ZeroArray(this.#i);const t=new ZeroArray(this.#i);this.#v=e;this.#b=t;this.#P=(n,s,i=r.now())=>{t[n]=s!==0?i:0;e[n]=s;if(s!==0&&this.ttlAutopurge){const e=setTimeout((()=>{if(this.#B(n)){this.#T(this.#h[n],"expire")}}),s+1);if(e.unref){e.unref()}}};this.#N=n=>{t[n]=e[n]!==0?r.now():0};this.#M=(r,s)=>{if(e[s]){const i=e[s];const o=t[s];if(!i||!o)return;r.ttl=i;r.start=o;r.now=n||getNow();const u=r.now-o;r.remainingTTL=i-u}};let n=0;const getNow=()=>{const e=r.now();if(this.ttlResolution>0){n=e;const t=setTimeout((()=>n=0),this.ttlResolution);if(t.unref){t.unref()}}return e};this.getRemainingTTL=r=>{const s=this.#d.get(r);if(s===undefined){return 0}const i=e[s];const o=t[s];if(!i||!o){return Infinity}const u=(n||getNow())-o;return i-u};this.#B=r=>{const s=t[r];const i=e[r];return!!i&&!!s&&(n||getNow())-s>i}}#N=()=>{};#M=()=>{};#P=()=>{};#B=()=>false;#L(){const e=new ZeroArray(this.#i);this.#p=0;this.#w=e;this.#j=t=>{this.#p-=e[t];e[t]=0};this.#H=(e,t,r,n)=>{if(this.#x(t)){return 0}if(!isPosInt(r)){if(n){if(typeof n!=="function"){throw new TypeError("sizeCalculation must be a function")}r=n(t,e);if(!isPosInt(r)){throw new TypeError("sizeCalculation return invalid (expect positive integer)")}}else{throw new TypeError("invalid size value (must be positive integer). "+"When maxSize or maxEntrySize is used, sizeCalculation "+"or size must be set.")}}return r};this.#G=(t,r,n)=>{e[t]=r;if(this.#o){const r=this.#o-e[t];while(this.#p>r){this.#U(true)}}this.#p+=e[t];if(n){n.entrySize=r;n.totalCalculatedSize=this.#p}}}#j=e=>{};#G=(e,t,r)=>{};#H=(e,t,r,n)=>{if(r||n){throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache")}return 0};*#R({allowStale:e=this.allowStale}={}){if(this.#f){for(let t=this.#y;true;){if(!this.#W(t)){break}if(e||!this.#B(t)){yield t}if(t===this.#E){break}else{t=this.#A[t]}}}}*#$({allowStale:e=this.allowStale}={}){if(this.#f){for(let t=this.#E;true;){if(!this.#W(t)){break}if(e||!this.#B(t)){yield t}if(t===this.#y){break}else{t=this.#m[t]}}}}#W(e){return e!==undefined&&this.#d.get(this.#h[e])===e}*entries(){for(const e of this.#R()){if(this.#g[e]!==undefined&&this.#h[e]!==undefined&&!this.#x(this.#g[e])){yield[this.#h[e],this.#g[e]]}}}*rentries(){for(const e of this.#$()){if(this.#g[e]!==undefined&&this.#h[e]!==undefined&&!this.#x(this.#g[e])){yield[this.#h[e],this.#g[e]]}}}*keys(){for(const e of this.#R()){const t=this.#h[e];if(t!==undefined&&!this.#x(this.#g[e])){yield t}}}*rkeys(){for(const e of this.#$()){const t=this.#h[e];if(t!==undefined&&!this.#x(this.#g[e])){yield t}}}*values(){for(const e of this.#R()){const t=this.#g[e];if(t!==undefined&&!this.#x(this.#g[e])){yield this.#g[e]}}}*rvalues(){for(const e of this.#$()){const t=this.#g[e];if(t!==undefined&&!this.#x(this.#g[e])){yield this.#g[e]}}}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(e,t={}){for(const r of this.#R()){const n=this.#g[r];const s=this.#x(n)?n.__staleWhileFetching:n;if(s===undefined)continue;if(e(s,this.#h[r],this)){return this.get(this.#h[r],t)}}}forEach(e,t=this){for(const r of this.#R()){const n=this.#g[r];const s=this.#x(n)?n.__staleWhileFetching:n;if(s===undefined)continue;e.call(t,s,this.#h[r],this)}}rforEach(e,t=this){for(const r of this.#$()){const n=this.#g[r];const s=this.#x(n)?n.__staleWhileFetching:n;if(s===undefined)continue;e.call(t,s,this.#h[r],this)}}purgeStale(){let e=false;for(const t of this.#$({allowStale:true})){if(this.#B(t)){this.#T(this.#h[t],"expire");e=true}}return e}info(e){const t=this.#d.get(e);if(t===undefined)return undefined;const n=this.#g[t];const s=this.#x(n)?n.__staleWhileFetching:n;if(s===undefined)return undefined;const i={value:s};if(this.#v&&this.#b){const e=this.#v[t];const n=this.#b[t];if(e&&n){const t=e-(r.now()-n);i.ttl=t;i.start=Date.now()}}if(this.#w){i.size=this.#w[t]}return i}dump(){const e=[];for(const t of this.#R({allowStale:true})){const n=this.#h[t];const s=this.#g[t];const i=this.#x(s)?s.__staleWhileFetching:s;if(i===undefined||n===undefined)continue;const o={value:i};if(this.#v&&this.#b){o.ttl=this.#v[t];const e=r.now()-this.#b[t];o.start=Math.floor(Date.now()-e)}if(this.#w){o.size=this.#w[t]}e.unshift([n,o])}return e}load(e){this.clear();for(const[t,n]of e){if(n.start){const e=Date.now()-n.start;n.start=r.now()-e}this.set(t,n.value,n)}}set(e,t,r={}){if(t===undefined){this.delete(e);return this}const{ttl:n=this.ttl,start:s,noDisposeOnSet:i=this.noDisposeOnSet,sizeCalculation:o=this.sizeCalculation,status:u}=r;let{noUpdateTTL:a=this.noUpdateTTL}=r;const c=this.#H(e,t,r.size||0,o);if(this.maxEntrySize&&c>this.maxEntrySize){if(u){u.set="miss";u.maxEntrySizeExceeded=true}this.#T(e,"set");return this}let l=this.#f===0?undefined:this.#d.get(e);if(l===undefined){l=this.#f===0?this.#y:this.#D.length!==0?this.#D.pop():this.#f===this.#i?this.#U(false):this.#f;this.#h[l]=e;this.#g[l]=t;this.#d.set(e,l);this.#m[this.#y]=l;this.#A[l]=this.#y;this.#y=l;this.#f++;this.#G(l,c,u);if(u)u.set="add";a=false}else{this.#k(l);const r=this.#g[l];if(t!==r){if(this.#F&&this.#x(r)){r.__abortController.abort(new Error("replaced"));const{__staleWhileFetching:t}=r;if(t!==undefined&&!i){if(this.#_){this.#u?.(t,e,"set")}if(this.#S){this.#C?.push([t,e,"set"])}}}else if(!i){if(this.#_){this.#u?.(r,e,"set")}if(this.#S){this.#C?.push([r,e,"set"])}}this.#j(l);this.#G(l,c,u);this.#g[l]=t;if(u){u.set="replace";const e=r&&this.#x(r)?r.__staleWhileFetching:r;if(e!==undefined)u.oldValue=e}}else if(u){u.set="update"}}if(n!==0&&!this.#v){this.#I()}if(this.#v){if(!a){this.#P(l,n,s)}if(u)this.#M(u,l)}if(!i&&this.#S&&this.#C){const e=this.#C;let t;while(t=e?.shift()){this.#a?.(...t)}}return this}pop(){try{while(this.#f){const e=this.#g[this.#E];this.#U(true);if(this.#x(e)){if(e.__staleWhileFetching){return e.__staleWhileFetching}}else if(e!==undefined){return e}}}finally{if(this.#S&&this.#C){const e=this.#C;let t;while(t=e?.shift()){this.#a?.(...t)}}}}#U(e){const t=this.#E;const r=this.#h[t];const n=this.#g[t];if(this.#F&&this.#x(n)){n.__abortController.abort(new Error("evicted"))}else if(this.#_||this.#S){if(this.#_){this.#u?.(n,r,"evict")}if(this.#S){this.#C?.push([n,r,"evict"])}}this.#j(t);if(e){this.#h[t]=undefined;this.#g[t]=undefined;this.#D.push(t)}if(this.#f===1){this.#E=this.#y=0;this.#D.length=0}else{this.#E=this.#m[t]}this.#d.delete(r);this.#f--;return t}has(e,t={}){const{updateAgeOnHas:r=this.updateAgeOnHas,status:n}=t;const s=this.#d.get(e);if(s!==undefined){const e=this.#g[s];if(this.#x(e)&&e.__staleWhileFetching===undefined){return false}if(!this.#B(s)){if(r){this.#N(s)}if(n){n.has="hit";this.#M(n,s)}return true}else if(n){n.has="stale";this.#M(n,s)}}else if(n){n.has="miss"}return false}peek(e,t={}){const{allowStale:r=this.allowStale}=t;const n=this.#d.get(e);if(n===undefined||!r&&this.#B(n)){return}const s=this.#g[n];return this.#x(s)?s.__staleWhileFetching:s}#O(e,t,r,n){const s=t===undefined?undefined:this.#g[t];if(this.#x(s)){return s}const o=new i;const{signal:u}=r;u?.addEventListener("abort",(()=>o.abort(u.reason)),{signal:o.signal});const a={signal:o.signal,options:r,context:n};const cb=(n,s=false)=>{const{aborted:i}=o.signal;const u=r.ignoreFetchAbort&&n!==undefined;if(r.status){if(i&&!s){r.status.fetchAborted=true;r.status.fetchError=o.signal.reason;if(u)r.status.fetchAbortIgnored=true}else{r.status.fetchResolved=true}}if(i&&!u&&!s){return fetchFail(o.signal.reason)}const l=c;if(this.#g[t]===c){if(n===undefined){if(l.__staleWhileFetching){this.#g[t]=l.__staleWhileFetching}else{this.#T(e,"fetch")}}else{if(r.status)r.status.fetchUpdated=true;this.set(e,n,a.options)}}return n};const eb=e=>{if(r.status){r.status.fetchRejected=true;r.status.fetchError=e}return fetchFail(e)};const fetchFail=n=>{const{aborted:s}=o.signal;const i=s&&r.allowStaleOnFetchAbort;const u=i||r.allowStaleOnFetchRejection;const a=u||r.noDeleteOnFetchRejection;const l=c;if(this.#g[t]===c){const r=!a||l.__staleWhileFetching===undefined;if(r){this.#T(e,"fetch")}else if(!i){this.#g[t]=l.__staleWhileFetching}}if(u){if(r.status&&l.__staleWhileFetching!==undefined){r.status.returnedStale=true}return l.__staleWhileFetching}else if(l.__returned===l){throw n}};const pcall=(t,n)=>{const i=this.#c?.(e,s,a);if(i&&i instanceof Promise){i.then((e=>t(e===undefined?undefined:e)),n)}o.signal.addEventListener("abort",(()=>{if(!r.ignoreFetchAbort||r.allowStaleOnFetchAbort){t(undefined);if(r.allowStaleOnFetchAbort){t=e=>cb(e,true)}}}))};if(r.status)r.status.fetchDispatched=true;const c=new Promise(pcall).then(cb,eb);const l=Object.assign(c,{__abortController:o,__staleWhileFetching:s,__returned:undefined});if(t===undefined){this.set(e,l,{...a.options,status:undefined});t=this.#d.get(e)}else{this.#g[t]=l}return l}#x(e){if(!this.#F)return false;const t=e;return!!t&&t instanceof Promise&&t.hasOwnProperty("__staleWhileFetching")&&t.__abortController instanceof i}async fetch(e,t={}){const{allowStale:r=this.allowStale,updateAgeOnGet:n=this.updateAgeOnGet,noDeleteOnStaleGet:s=this.noDeleteOnStaleGet,ttl:i=this.ttl,noDisposeOnSet:o=this.noDisposeOnSet,size:u=0,sizeCalculation:a=this.sizeCalculation,noUpdateTTL:c=this.noUpdateTTL,noDeleteOnFetchRejection:l=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:f=this.allowStaleOnFetchRejection,ignoreFetchAbort:p=this.ignoreFetchAbort,allowStaleOnFetchAbort:d=this.allowStaleOnFetchAbort,context:h,forceRefresh:g=false,status:m,signal:A}=t;if(!this.#F){if(m)m.fetch="get";return this.get(e,{allowStale:r,updateAgeOnGet:n,noDeleteOnStaleGet:s,status:m})}const E={allowStale:r,updateAgeOnGet:n,noDeleteOnStaleGet:s,ttl:i,noDisposeOnSet:o,size:u,sizeCalculation:a,noUpdateTTL:c,noDeleteOnFetchRejection:l,allowStaleOnFetchRejection:f,allowStaleOnFetchAbort:d,ignoreFetchAbort:p,status:m,signal:A};let y=this.#d.get(e);if(y===undefined){if(m)m.fetch="miss";const t=this.#O(e,y,E,h);return t.__returned=t}else{const t=this.#g[y];if(this.#x(t)){const e=r&&t.__staleWhileFetching!==undefined;if(m){m.fetch="inflight";if(e)m.returnedStale=true}return e?t.__staleWhileFetching:t.__returned=t}const s=this.#B(y);if(!g&&!s){if(m)m.fetch="hit";this.#k(y);if(n){this.#N(y)}if(m)this.#M(m,y);return t}const i=this.#O(e,y,E,h);const o=i.__staleWhileFetching!==undefined;const u=o&&r;if(m){m.fetch=s?"stale":"refresh";if(u&&s)m.returnedStale=true}return u?i.__staleWhileFetching:i.__returned=i}}async forceFetch(e,t={}){const r=await this.fetch(e,t);if(r===undefined)throw new Error("fetch() returned undefined");return r}memo(e,t={}){const r=this.#l;if(!r){throw new Error("no memoMethod provided to constructor")}const{context:n,forceRefresh:s,...i}=t;const o=this.get(e,i);if(!s&&o!==undefined)return o;const u=r(e,o,{options:i,context:n});this.set(e,u,i);return u}get(e,t={}){const{allowStale:r=this.allowStale,updateAgeOnGet:n=this.updateAgeOnGet,noDeleteOnStaleGet:s=this.noDeleteOnStaleGet,status:i}=t;const o=this.#d.get(e);if(o!==undefined){const t=this.#g[o];const u=this.#x(t);if(i)this.#M(i,o);if(this.#B(o)){if(i)i.get="stale";if(!u){if(!s){this.#T(e,"expire")}if(i&&r)i.returnedStale=true;return r?t:undefined}else{if(i&&r&&t.__staleWhileFetching!==undefined){i.returnedStale=true}return r?t.__staleWhileFetching:undefined}}else{if(i)i.get="hit";if(u){return t.__staleWhileFetching}this.#k(o);if(n){this.#N(o)}return t}}else if(i){i.get="miss"}}#z(e,t){this.#A[t]=e;this.#m[e]=t}#k(e){if(e!==this.#y){if(e===this.#E){this.#E=this.#m[e]}else{this.#z(this.#A[e],this.#m[e])}this.#z(this.#y,e);this.#y=e}}delete(e){return this.#T(e,"delete")}#T(e,t){let r=false;if(this.#f!==0){const n=this.#d.get(e);if(n!==undefined){r=true;if(this.#f===1){this.#q(t)}else{this.#j(n);const r=this.#g[n];if(this.#x(r)){r.__abortController.abort(new Error("deleted"))}else if(this.#_||this.#S){if(this.#_){this.#u?.(r,e,t)}if(this.#S){this.#C?.push([r,e,t])}}this.#d.delete(e);this.#h[n]=undefined;this.#g[n]=undefined;if(n===this.#y){this.#y=this.#A[n]}else if(n===this.#E){this.#E=this.#m[n]}else{const e=this.#A[n];this.#m[e]=this.#m[n];const t=this.#m[n];this.#A[t]=this.#A[n]}this.#f--;this.#D.push(n)}}}if(this.#S&&this.#C?.length){const e=this.#C;let t;while(t=e?.shift()){this.#a?.(...t)}}return r}clear(){return this.#q("delete")}#q(e){for(const t of this.#$({allowStale:true})){const r=this.#g[t];if(this.#x(r)){r.__abortController.abort(new Error("deleted"))}else{const n=this.#h[t];if(this.#_){this.#u?.(r,n,e)}if(this.#S){this.#C?.push([r,n,e])}}}this.#d.clear();this.#g.fill(undefined);this.#h.fill(undefined);if(this.#v&&this.#b){this.#v.fill(0);this.#b.fill(0)}if(this.#w){this.#w.fill(0)}this.#E=0;this.#y=0;this.#D.length=0;this.#p=0;this.#f=0;if(this.#S&&this.#C){const e=this.#C;let t;while(t=e?.shift()){this.#a?.(...t)}}}}t.LRUCache=LRUCache},8330:e=>{"use strict";e.exports=JSON.parse('{"name":"create-expo","version":"5.1.1","description":"Create universal Expo apps","keywords":["expo","react","react-native"],"homepage":"https://docs.expo.dev","license":"BSD-3-Clause","author":"Evan Bacon <bacon@expo.io> (https://github.com/evanbacon)","repository":{"type":"git","url":"https://github.com/expo/expo.git","directory":"packages/create-expo"},"bin":"./bin/create-expo.js","files":["bin","build","template"],"main":"build/index.js","exports":{".":"./build/index.js","./package.json":"./package.json"},"scripts":{"prebuild":"expo-module clean","build":"ncc build ./src/index.ts -o build/","prebuild:prod":"expo-module clean","build:prod":"ncc build ./src/index.ts -o build/ --minify --no-cache --no-source-map-register","clean":"expo-module clean","lint":"oxlint --config oxlint.config.mjs .","format":"expo-module format","depscheck":"expo-module depscheck","typecheck":"tsc -p tsconfig.json","test":"jest","test:e2e":"jest --config e2e/jest.config.js --runInBand","sync-agent-templates":"node scripts/sync-agent-templates.js","prepublishOnly":"pnpm run sync-agent-templates && pnpm run clean && pnpm run build:prod"},"devDependencies":{"@expo/config":"workspace:*","@expo/json-file":"workspace:*","@expo/package-manager":"workspace:*","@expo/spawn-async":"^1.8.0","@octokit/types":"^13.5.0","@types/debug":"^4.1.7","@types/getenv":"^1.0.0","@types/node":"^22.14.0","@types/picomatch":"^2.3.3","@types/prompts":"2.0.14","@vercel/ncc":"^0.38.3","arg":"^5.0.2","chalk":"^4.0.0","debug":"^4.3.4","expo-module-scripts":"workspace:*","getenv":"^2.0.0","glob":"^13.0.0","memfs":"^3.2.0","multitars":"^1.0.2","nock":"^14.0.10","ora":"3.4.0","picomatch":"^2.3.2","prompts":"^2.4.2","resolve-workspace-root":"^2.0.0","update-check":"^1.5.4"},"engines":{"node":"^22.13.0 || ^24.3.0 || ^26.0.0 || >=27.0.0"},"gitHead":"40afe3afa42f1dcca3dcba7ffbb3641859bdf2f0"}')}};var t={};function __nccwpck_require__(r){var n=t[r];if(n!==undefined){return n.exports}var s=t[r]={id:r,loaded:false,exports:{}};var i=true;try{e[r].call(s.exports,s,s.exports,__nccwpck_require__);i=false}finally{if(i)delete t[r]}s.loaded=true;return s.exports}__nccwpck_require__.m=e;(()=>{__nccwpck_require__.n=e=>{var t=e&&e.__esModule?()=>e["default"]:()=>e;__nccwpck_require__.d(t,{a:t});return t}})();(()=>{var e=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;var t;__nccwpck_require__.t=function(r,n){if(n&1)r=this(r);if(n&8)return r;if(typeof r==="object"&&r){if(n&4&&r.__esModule)return r;if(n&16&&typeof r.then==="function")return r}var s=Object.create(null);__nccwpck_require__.r(s);var i={};t=t||[null,e({}),e([]),e(e)];for(var o=n&2&&r;typeof o=="object"&&!~t.indexOf(o);o=e(o)){Object.getOwnPropertyNames(o).forEach((e=>i[e]=()=>r[e]))}i["default"]=()=>r;__nccwpck_require__.d(s,i);return s}})();(()=>{__nccwpck_require__.d=(e,t)=>{for(var r in t){if(__nccwpck_require__.o(t,r)&&!__nccwpck_require__.o(e,r)){Object.defineProperty(e,r,{enumerable:true,get:t[r]})}}}})();(()=>{__nccwpck_require__.f={};__nccwpck_require__.e=e=>Promise.all(Object.keys(__nccwpck_require__.f).reduce(((t,r)=>{__nccwpck_require__.f[r](e,t);return t}),[]))})();(()=>{__nccwpck_require__.u=e=>""+e+".index.js"})();(()=>{__nccwpck_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})();(()=>{__nccwpck_require__.r=e=>{if(typeof Symbol!=="undefined"&&Symbol.toStringTag){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}Object.defineProperty(e,"__esModule",{value:true})}})();(()=>{__nccwpck_require__.nmd=e=>{e.paths=[];if(!e.children)e.children=[];return e}})();if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";(()=>{var e={792:1};var installChunk=t=>{var r=t.modules,n=t.ids,s=t.runtime;for(var i in r){if(__nccwpck_require__.o(r,i)){__nccwpck_require__.m[i]=r[i]}}if(s)s(__nccwpck_require__);for(var o=0;o<n.length;o++)e[n[o]]=1};__nccwpck_require__.f.require=(t,r)=>{if(!e[t]){if(true){installChunk(require("./"+__nccwpck_require__.u(t)))}else e[t]=1}}})();var r={};(()=>{"use strict";__nccwpck_require__.r(r);var e=__nccwpck_require__(6675);var t=__nccwpck_require__.n(e);var n=__nccwpck_require__(277);var s=__nccwpck_require__.n(n);var i=__nccwpck_require__(7517);process.title=i.PACKAGE_NAME;if((0,n.boolish)("EXPO_DEBUG",false)){t().enable("expo:init:*")}else if(t().enabled("expo:init:")){process.env.EXPO_DEBUG="1"}__nccwpck_require__(4456)})();module.exports=r})();
77
+ `)}const{AnalyticsEventPhases:a,AnalyticsEventTypes:c,flushAsync:p,track:d}=await r.e(601).then(r.bind(r,601));try{const s=await resolveStringOrBooleanArgsAsync(e,t,{"--template":Boolean,"--example":Boolean,"-t":"--template","-e":"--example"});f(`Default args:\n%O`,n);f(`Parsed:\n%O`,s);const{createAsync:i}=await Promise.all([r.e(810),r.e(589)]).then(r.bind(r,589));await i(s.projectRoot,{yes:!!n["--yes"],template:s.args["--template"],example:s.args["--example"],install:!n["--no-install"],agentsMd:!n["--no-agents-md"]});d({event:c.CREATE_EXPO_APP,properties:{phase:a.SUCCESS}});await p()}catch(e){if(!(e instanceof i.R)){o.tG.exception(e)}d({event:c.CREATE_EXPO_APP,properties:{phase:a.FAIL,message:e.cause}});await p().finally((()=>{process.exit(e.code||1)}))}finally{const e=await(await Promise.resolve().then(r.bind(r,7517))).default;await e()}}run()},6725:(e,t,r)=>{"use strict";r.d(t,{R:()=>ExitError});class ExitError extends Error{cause;code;constructor(e,t){super(e instanceof Error?e.message:e);this.cause=e;this.code=t}}},1545:(e,t,r)=>{"use strict";r.d(t,{NS:()=>exit,tG:()=>o});var n=r(2314);var s=r.n(n);var i=r(6725);function error(...e){console.error(...e)}function exception(e){const{env:t}=r(4342);error(s().red(e.toString())+(t.EXPO_DEBUG?"\n"+s().gray(e.stack):""))}function log(...e){console.log(...e)}function exit(e,t=1){if(e instanceof Error){exception(e)}else if(e){if(t===0){log(e)}else{error(e)}}if(t!==0){throw new i.R(e,t)}process.exit(t)}const o={error:error,exception:exception,log:log,exit:exit}},9560:(e,t,r)=>{"use strict";r.d(t,{DC:()=>installDependenciesAsync,MZ:()=>configurePackageManager,Wq:()=>formatRunCommand,_c:()=>resolvePackageManager,fZ:()=>formatSelfCommand});var n=r(6268);var s=r.n(n);var i=r(5317);var o=r.n(i);var u=r(7517);const a=r(6675)("expo:init:resolvePackageManager");function resolvePackageManager(){const e=process.env.npm_config_user_agent;a("npm_config_user_agent:",e);if(e?.startsWith("yarn")){return"yarn"}else if(e?.startsWith("pnpm")){return"pnpm"}else if(e?.startsWith("bun")){return"bun"}else if(e?.startsWith("nub")){return"nub"}else if(e?.startsWith("npm")){return"npm"}if(isPackageManagerAvailable("yarn")){return"yarn"}else if(isPackageManagerAvailable("pnpm")){return"pnpm"}else if(isPackageManagerAvailable("bun")){return"bun"}else if(isPackageManagerAvailable("nub")){return"nub"}return"npm"}function isPackageManagerAvailable(e){try{(0,i.execSync)(`${e} --version`,{stdio:"ignore"});return true}catch{}return false}function formatRunCommand(e,t){switch(e){case"pnpm":return`pnpm run ${t}`;case"yarn":return`yarn ${t}`;case"bun":return`bun run ${t}`;case"nub":return`nub run ${t}`;case"npm":default:return`npm run ${t}`}}function formatSelfCommand(){const e=resolvePackageManager();switch(e){case"pnpm":return`pnpx ${u.PACKAGE_NAME}`;case"bun":return`bunx ${u.PACKAGE_NAME}`;case"nub":return`nubx ${u.PACKAGE_NAME}`;case"yarn":case"npm":default:return`npx ${u.PACKAGE_NAME}`}}function createPackageManager(e,t){switch(e){case"yarn":return new n.YarnPackageManager(t);case"pnpm":return new n.PnpmPackageManager(t);case"bun":return new n.BunPackageManager(t);case"nub":return new n.NubPackageManager(t);case"npm":default:return new n.NpmPackageManager(t)}}async function installDependenciesAsync(e,t,r={silent:false}){await createPackageManager(t,{cwd:e,silent:r.silent}).installAsync()}async function configurePackageManager(e,t,r={silent:false}){const n=createPackageManager(t,{cwd:e,...r});switch(n.name){case"yarn":{const e=await n.versionAsync();const t=parseInt(e.split(".")[0]??"",10);if(t>=2){await n.runAsync(["config","set","nodeLinker","node-modules"])}break}}}},4342:(e,t,r)=>{"use strict";r.r(t);r.d(t,{env:()=>i});var n=r(277);var s=r.n(n);class Env{get EXPO_DEBUG(){return(0,n.boolish)("EXPO_DEBUG",false)}get EXPO_BETA(){return(0,n.boolish)("EXPO_BETA",false)}get CI(){return(0,n.boolish)("CI",false)}get EXPO_NO_CACHE(){return(0,n.boolish)("EXPO_NO_CACHE",false)}get EXPO_NO_TELEMETRY(){return(0,n.boolish)("EXPO_NO_TELEMETRY",false)}}const i=new Env},7517:(e,t,r)=>{"use strict";r.r(t);r.d(t,{PACKAGE_NAME:()=>u,default:()=>shouldUpdate});var n=r(2314);var s=r.n(n);var i=r(5059);var o=r.n(i);const u="create-expo";const getPackageJson=()=>{try{return r(8330)}catch{return null}};const a=r(6675)("expo:init:update-check");async function shouldUpdate(){try{const e=getPackageJson();const t=await o()(e);if(t?.latest){console.log();console.log(s().yellow.bold(`A new version of \`${e?.name??u}\` is available`));console.log(s()`You can update by running: {cyan npm install -g ${e?.name??u}}`);console.log()}}catch(e){a("Error checking for update:\n%O",e)}}},2613:e=>{"use strict";e.exports=require("assert")},181:e=>{"use strict";e.exports=require("buffer")},5317:e=>{"use strict";e.exports=require("child_process")},6982:e=>{"use strict";e.exports=require("crypto")},2250:e=>{"use strict";e.exports=require("dns")},4434:e=>{"use strict";e.exports=require("events")},9896:e=>{"use strict";e.exports=require("fs")},8611:e=>{"use strict";e.exports=require("http")},5692:e=>{"use strict";e.exports=require("https")},3339:e=>{"use strict";e.exports=require("module")},5217:e=>{"use strict";e.exports=require("node:crypto")},8474:e=>{"use strict";e.exports=require("node:events")},3024:e=>{"use strict";e.exports=require("node:fs")},1455:e=>{"use strict";e.exports=require("node:fs/promises")},6760:e=>{"use strict";e.exports=require("node:path")},1708:e=>{"use strict";e.exports=require("node:process")},7075:e=>{"use strict";e.exports=require("node:stream")},6193:e=>{"use strict";e.exports=require("node:string_decoder")},3136:e=>{"use strict";e.exports=require("node:url")},857:e=>{"use strict";e.exports=require("os")},6928:e=>{"use strict";e.exports=require("path")},3785:e=>{"use strict";e.exports=require("readline")},2203:e=>{"use strict";e.exports=require("stream")},2018:e=>{"use strict";e.exports=require("tty")},7016:e=>{"use strict";e.exports=require("url")},9023:e=>{"use strict";e.exports=require("util")},8247:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});var n=r(6831);var s=r(7815);var i=r(9885);function isColorSupported(){return typeof process==="object"&&(process.env.FORCE_COLOR==="0"||process.env.FORCE_COLOR==="false")?false:n.isColorSupported}const compose=(e,t)=>r=>e(t(r));function buildDefs(e){return{keyword:e.cyan,capitalized:e.yellow,jsxIdentifier:e.yellow,punctuator:e.yellow,number:e.magenta,string:e.green,regex:e.magenta,comment:e.gray,invalid:compose(compose(e.white,e.bgRed),e.bold),gutter:e.gray,marker:compose(e.red,e.bold),message:compose(e.red,e.bold),reset:e.reset}}const o=buildDefs(n.createColors(true));const u=buildDefs(n.createColors(false));function getDefs(e){return e?o:u}const a=new Set(["as","async","from","get","of","set"]);const c=/\r\n|[\n\r\u2028\u2029]/;const l=/^[()[\]{}]$/;let f;const p=/^[a-z][\w-]*$/i;const getTokenType=function(e,t,r){if(e.type==="name"){const n=e.value;if(i.isKeyword(n)||i.isStrictReservedWord(n,true)||a.has(n)){return"keyword"}if(p.test(n)&&(r[t-1]==="<"||r.slice(t-2,t)==="</")){return"jsxIdentifier"}const s=String.fromCodePoint(n.codePointAt(0));if(s!==s.toLowerCase()){return"capitalized"}}if(e.type==="punctuator"&&l.test(e.value)){return"bracket"}if(e.type==="invalid"&&(e.value==="@"||e.value==="#")){return"punctuator"}return e.type};f=function*(e){let t;while(t=s.default.exec(e)){const r=s.matchToToken(t);yield{type:getTokenType(r,t.index,e),value:r.value}}};function highlight(e){if(e==="")return"";const t=getDefs(true);let r="";for(const{type:n,value:s}of f(e)){if(n in t){r+=s.split(c).map((e=>t[n](e))).join("\n")}else{r+=s}}return r}let d=false;const h=/\r\n|[\n\r\u2028\u2029]/;function getMarkerLines(e,t,r,n){const s=Object.assign({column:0,line:-1},e.start);const i=Object.assign({},s,e.end);const{linesAbove:o=2,linesBelow:u=3}=r||{};const a=s.line-n;const c=s.column;const l=i.line-n;const f=i.column;let p=Math.max(a-(o+1),0);let d=Math.min(t.length,l+u);if(a===-1){p=0}if(l===-1){d=t.length}const h=l-a;const g={};if(h){for(let e=0;e<=h;e++){const r=e+a;if(!c){g[r]=true}else if(e===0){const e=t[r-1].length;g[r]=[c,e-c+1]}else if(e===h){g[r]=[0,f]}else{const n=t[r-e].length;g[r]=[0,n]}}}else{if(c===f){if(c){g[a]=[c,0]}else{g[a]=true}}else{g[a]=[c,f-c]}}return{start:p,end:d,markerLines:g}}function codeFrameColumns(e,t,r={}){const n=r.forceColor||isColorSupported()&&r.highlightCode;const s=(r.startLine||1)-1;const i=getDefs(n);const o=e.split(h);const{start:u,end:a,markerLines:c}=getMarkerLines(t,o,r,s);const l=t.start&&typeof t.start.column==="number";const f=String(a+s).length;const p=n?highlight(e):e;let d=p.split(h,a).slice(u,a).map(((e,t)=>{const n=u+1+t;const o=` ${n+s}`.slice(-f);const a=` ${o} |`;const l=c[n];const p=!c[n+1];if(l){let t="";if(Array.isArray(l)){const n=e.slice(0,Math.max(l[0]-1,0)).replace(/[^\t]/g," ");const s=l[1]||1;t=["\n ",i.gutter(a.replace(/\d/g," "))," ",n,i.marker("^").repeat(s)].join("");if(p&&r.message){t+=" "+i.message(r.message)}}return[i.marker(">"),i.gutter(a),e.length>0?` ${e}`:"",t].join("")}else{return` ${i.gutter(a)}${e.length>0?` ${e}`:""}`}})).join("\n");if(r.message&&!l){d=`${" ".repeat(f+1)}${r.message}\n${d}`}if(n){return i.reset(d)}else{return d}}function index(e,t,r,n={}){if(!d){d=true;const e="Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.";if(process.emitWarning){process.emitWarning(e,"DeprecationWarning")}else{const t=new Error(e);t.name="DeprecationWarning";console.warn(new Error(e))}}r=Math.max(r,0);const s={start:{column:r,line:t}};return codeFrameColumns(e,s,n)}t.codeFrameColumns=codeFrameColumns;t["default"]=index;t.highlight=highlight},5942:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.isIdentifierChar=isIdentifierChar;t.isIdentifierName=isIdentifierName;t.isIdentifierStart=isIdentifierStart;let r="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࡰ-ࢇࢉ-࢏ࢠ-ࣉऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚ౜ౝౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽ೜-ೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜑᜟ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭌᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲊᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-Ƛ꟱-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ";let n="·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࢗ-࢟࣊-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄ఼ా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ೳഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-໎໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜕ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠏-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿ-᫝᫠-᫫ᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷿‌‍‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯・꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_・";const s=new RegExp("["+r+"]");const i=new RegExp("["+r+n+"]");r=n=null;const o=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,4,51,13,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,7,25,39,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,39,27,10,22,251,41,7,1,17,5,57,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,31,9,2,0,3,0,2,37,2,0,26,0,2,0,45,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,200,32,32,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,24,43,261,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,26,3994,6,582,6842,29,1763,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,433,44,212,63,33,24,3,24,45,74,6,0,67,12,65,1,2,0,15,4,10,7381,42,31,98,114,8702,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,229,29,3,0,208,30,2,2,2,1,2,6,3,4,10,1,225,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4381,3,5773,3,7472,16,621,2467,541,1507,4938,6,8489];const u=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,7,9,32,4,318,1,78,5,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,68,8,2,0,3,0,2,3,2,4,2,0,15,1,83,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,7,19,58,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,199,7,137,9,54,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,55,9,266,3,10,1,2,0,49,6,4,4,14,10,5350,0,7,14,11465,27,2343,9,87,9,39,4,60,6,26,9,535,9,470,0,2,54,8,3,82,0,12,1,19628,1,4178,9,519,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,245,1,2,9,233,0,3,0,8,1,6,0,475,6,110,6,6,9,4759,9,787719,239];function isInAstralSet(e,t){let r=65536;for(let n=0,s=t.length;n<s;n+=2){r+=t[n];if(r>e)return false;r+=t[n+1];if(r>=e)return true}return false}function isIdentifierStart(e){if(e<65)return e===36;if(e<=90)return true;if(e<97)return e===95;if(e<=122)return true;if(e<=65535){return e>=170&&s.test(String.fromCharCode(e))}return isInAstralSet(e,o)}function isIdentifierChar(e){if(e<48)return e===36;if(e<58)return true;if(e<65)return false;if(e<=90)return true;if(e<97)return e===95;if(e<=122)return true;if(e<=65535){return e>=170&&i.test(String.fromCharCode(e))}return isInAstralSet(e,o)||isInAstralSet(e,u)}function isIdentifierName(e){let t=true;for(let r=0;r<e.length;r++){let n=e.charCodeAt(r);if((n&64512)===55296&&r+1<e.length){const t=e.charCodeAt(++r);if((t&64512)===56320){n=65536+((n&1023)<<10)+(t&1023)}}if(t){t=false;if(!isIdentifierStart(n)){return false}}else if(!isIdentifierChar(n)){return false}}return!t}},9885:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"isIdentifierChar",{enumerable:true,get:function(){return n.isIdentifierChar}});Object.defineProperty(t,"isIdentifierName",{enumerable:true,get:function(){return n.isIdentifierName}});Object.defineProperty(t,"isIdentifierStart",{enumerable:true,get:function(){return n.isIdentifierStart}});Object.defineProperty(t,"isKeyword",{enumerable:true,get:function(){return s.isKeyword}});Object.defineProperty(t,"isReservedWord",{enumerable:true,get:function(){return s.isReservedWord}});Object.defineProperty(t,"isStrictBindOnlyReservedWord",{enumerable:true,get:function(){return s.isStrictBindOnlyReservedWord}});Object.defineProperty(t,"isStrictBindReservedWord",{enumerable:true,get:function(){return s.isStrictBindReservedWord}});Object.defineProperty(t,"isStrictReservedWord",{enumerable:true,get:function(){return s.isStrictReservedWord}});var n=r(5942);var s=r(1006)},1006:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.isKeyword=isKeyword;t.isReservedWord=isReservedWord;t.isStrictBindOnlyReservedWord=isStrictBindOnlyReservedWord;t.isStrictBindReservedWord=isStrictBindReservedWord;t.isStrictReservedWord=isStrictReservedWord;const r={keyword:["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete"],strict:["implements","interface","let","package","private","protected","public","static","yield"],strictBind:["eval","arguments"]};const n=new Set(r.keyword);const s=new Set(r.strict);const i=new Set(r.strictBind);function isReservedWord(e,t){return t&&e==="await"||e==="enum"}function isStrictReservedWord(e,t){return isReservedWord(e,t)||s.has(e)}function isStrictBindOnlyReservedWord(e){return i.has(e)}function isStrictBindReservedWord(e,t){return isStrictReservedWord(e,t)||isStrictBindOnlyReservedWord(e)}function isKeyword(e){return n.has(e)}},5934:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.LRUCache=void 0;const r=typeof performance==="object"&&performance&&typeof performance.now==="function"?performance:Date;const n=new Set;const s=typeof process==="object"&&!!process?process:{};const emitWarning=(e,t,r,n)=>{typeof s.emitWarning==="function"?s.emitWarning(e,t,r,n):console.error(`[${r}] ${t}: ${e}`)};let i=globalThis.AbortController;let o=globalThis.AbortSignal;if(typeof i==="undefined"){o=class AbortSignal{onabort;_onabort=[];reason;aborted=false;addEventListener(e,t){this._onabort.push(t)}};i=class AbortController{constructor(){warnACPolyfill()}signal=new o;abort(e){if(this.signal.aborted)return;this.signal.reason=e;this.signal.aborted=true;for(const t of this.signal._onabort){t(e)}this.signal.onabort?.(e)}};let e=s.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1";const warnACPolyfill=()=>{if(!e)return;e=false;emitWarning("AbortController is not defined. If using lru-cache in "+"node 14, load an AbortController polyfill from the "+"`node-abort-controller` package. A minimal polyfill is "+"provided for use by LRUCache.fetch(), but it should not be "+"relied upon in other contexts (eg, passing it to other APIs that "+"use AbortController/AbortSignal might have undesirable effects). "+"You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",warnACPolyfill)}}const shouldWarn=e=>!n.has(e);const u=Symbol("type");const isPosInt=e=>e&&e===Math.floor(e)&&e>0&&isFinite(e);const getUintArray=e=>!isPosInt(e)?null:e<=Math.pow(2,8)?Uint8Array:e<=Math.pow(2,16)?Uint16Array:e<=Math.pow(2,32)?Uint32Array:e<=Number.MAX_SAFE_INTEGER?ZeroArray:null;class ZeroArray extends Array{constructor(e){super(e);this.fill(0)}}class Stack{heap;length;static#s=false;static create(e){const t=getUintArray(e);if(!t)return[];Stack.#s=true;const r=new Stack(e,t);Stack.#s=false;return r}constructor(e,t){if(!Stack.#s){throw new TypeError("instantiate Stack using Stack.create(n)")}this.heap=new t(e);this.length=0}push(e){this.heap[this.length++]=e}pop(){return this.heap[--this.length]}}class LRUCache{#i;#o;#u;#a;#c;#l;ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#f;#p;#d;#h;#g;#m;#A;#E;#y;#D;#C;#w;#b;#v;#_;#F;#S;static unsafeExposeInternals(e){return{starts:e.#b,ttls:e.#v,sizes:e.#w,keyMap:e.#d,keyList:e.#h,valList:e.#g,next:e.#m,prev:e.#A,get head(){return e.#E},get tail(){return e.#y},free:e.#D,isBackgroundFetch:t=>e.#x(t),backgroundFetch:(t,r,n,s)=>e.#O(t,r,n,s),moveToTail:t=>e.#k(t),indexes:t=>e.#R(t),rindexes:t=>e.#$(t),isStale:t=>e.#B(t)}}get max(){return this.#i}get maxSize(){return this.#o}get calculatedSize(){return this.#p}get size(){return this.#f}get fetchMethod(){return this.#c}get memoMethod(){return this.#l}get dispose(){return this.#u}get disposeAfter(){return this.#a}constructor(e){const{max:t=0,ttl:r,ttlResolution:s=1,ttlAutopurge:i,updateAgeOnGet:o,updateAgeOnHas:u,allowStale:a,dispose:c,disposeAfter:l,noDisposeOnSet:f,noUpdateTTL:p,maxSize:d=0,maxEntrySize:h=0,sizeCalculation:g,fetchMethod:m,memoMethod:A,noDeleteOnFetchRejection:E,noDeleteOnStaleGet:y,allowStaleOnFetchRejection:D,allowStaleOnFetchAbort:C,ignoreFetchAbort:w}=e;if(t!==0&&!isPosInt(t)){throw new TypeError("max option must be a nonnegative integer")}const b=t?getUintArray(t):Array;if(!b){throw new Error("invalid max value: "+t)}this.#i=t;this.#o=d;this.maxEntrySize=h||this.#o;this.sizeCalculation=g;if(this.sizeCalculation){if(!this.#o&&!this.maxEntrySize){throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize")}if(typeof this.sizeCalculation!=="function"){throw new TypeError("sizeCalculation set to non-function")}}if(A!==undefined&&typeof A!=="function"){throw new TypeError("memoMethod must be a function if defined")}this.#l=A;if(m!==undefined&&typeof m!=="function"){throw new TypeError("fetchMethod must be a function if specified")}this.#c=m;this.#F=!!m;this.#d=new Map;this.#h=new Array(t).fill(undefined);this.#g=new Array(t).fill(undefined);this.#m=new b(t);this.#A=new b(t);this.#E=0;this.#y=0;this.#D=Stack.create(t);this.#f=0;this.#p=0;if(typeof c==="function"){this.#u=c}if(typeof l==="function"){this.#a=l;this.#C=[]}else{this.#a=undefined;this.#C=undefined}this.#_=!!this.#u;this.#S=!!this.#a;this.noDisposeOnSet=!!f;this.noUpdateTTL=!!p;this.noDeleteOnFetchRejection=!!E;this.allowStaleOnFetchRejection=!!D;this.allowStaleOnFetchAbort=!!C;this.ignoreFetchAbort=!!w;if(this.maxEntrySize!==0){if(this.#o!==0){if(!isPosInt(this.#o)){throw new TypeError("maxSize must be a positive integer if specified")}}if(!isPosInt(this.maxEntrySize)){throw new TypeError("maxEntrySize must be a positive integer if specified")}this.#L()}this.allowStale=!!a;this.noDeleteOnStaleGet=!!y;this.updateAgeOnGet=!!o;this.updateAgeOnHas=!!u;this.ttlResolution=isPosInt(s)||s===0?s:1;this.ttlAutopurge=!!i;this.ttl=r||0;if(this.ttl){if(!isPosInt(this.ttl)){throw new TypeError("ttl must be a positive integer if specified")}this.#I()}if(this.#i===0&&this.ttl===0&&this.#o===0){throw new TypeError("At least one of max, maxSize, or ttl is required")}if(!this.ttlAutopurge&&!this.#i&&!this.#o){const e="LRU_CACHE_UNBOUNDED";if(shouldWarn(e)){n.add(e);const t="TTL caching without ttlAutopurge, max, or maxSize can "+"result in unbounded memory consumption.";emitWarning(t,"UnboundedCacheWarning",e,LRUCache)}}}getRemainingTTL(e){return this.#d.has(e)?Infinity:0}#I(){const e=new ZeroArray(this.#i);const t=new ZeroArray(this.#i);this.#v=e;this.#b=t;this.#P=(n,s,i=r.now())=>{t[n]=s!==0?i:0;e[n]=s;if(s!==0&&this.ttlAutopurge){const e=setTimeout((()=>{if(this.#B(n)){this.#T(this.#h[n],"expire")}}),s+1);if(e.unref){e.unref()}}};this.#N=n=>{t[n]=e[n]!==0?r.now():0};this.#M=(r,s)=>{if(e[s]){const i=e[s];const o=t[s];if(!i||!o)return;r.ttl=i;r.start=o;r.now=n||getNow();const u=r.now-o;r.remainingTTL=i-u}};let n=0;const getNow=()=>{const e=r.now();if(this.ttlResolution>0){n=e;const t=setTimeout((()=>n=0),this.ttlResolution);if(t.unref){t.unref()}}return e};this.getRemainingTTL=r=>{const s=this.#d.get(r);if(s===undefined){return 0}const i=e[s];const o=t[s];if(!i||!o){return Infinity}const u=(n||getNow())-o;return i-u};this.#B=r=>{const s=t[r];const i=e[r];return!!i&&!!s&&(n||getNow())-s>i}}#N=()=>{};#M=()=>{};#P=()=>{};#B=()=>false;#L(){const e=new ZeroArray(this.#i);this.#p=0;this.#w=e;this.#j=t=>{this.#p-=e[t];e[t]=0};this.#H=(e,t,r,n)=>{if(this.#x(t)){return 0}if(!isPosInt(r)){if(n){if(typeof n!=="function"){throw new TypeError("sizeCalculation must be a function")}r=n(t,e);if(!isPosInt(r)){throw new TypeError("sizeCalculation return invalid (expect positive integer)")}}else{throw new TypeError("invalid size value (must be positive integer). "+"When maxSize or maxEntrySize is used, sizeCalculation "+"or size must be set.")}}return r};this.#G=(t,r,n)=>{e[t]=r;if(this.#o){const r=this.#o-e[t];while(this.#p>r){this.#U(true)}}this.#p+=e[t];if(n){n.entrySize=r;n.totalCalculatedSize=this.#p}}}#j=e=>{};#G=(e,t,r)=>{};#H=(e,t,r,n)=>{if(r||n){throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache")}return 0};*#R({allowStale:e=this.allowStale}={}){if(this.#f){for(let t=this.#y;true;){if(!this.#W(t)){break}if(e||!this.#B(t)){yield t}if(t===this.#E){break}else{t=this.#A[t]}}}}*#$({allowStale:e=this.allowStale}={}){if(this.#f){for(let t=this.#E;true;){if(!this.#W(t)){break}if(e||!this.#B(t)){yield t}if(t===this.#y){break}else{t=this.#m[t]}}}}#W(e){return e!==undefined&&this.#d.get(this.#h[e])===e}*entries(){for(const e of this.#R()){if(this.#g[e]!==undefined&&this.#h[e]!==undefined&&!this.#x(this.#g[e])){yield[this.#h[e],this.#g[e]]}}}*rentries(){for(const e of this.#$()){if(this.#g[e]!==undefined&&this.#h[e]!==undefined&&!this.#x(this.#g[e])){yield[this.#h[e],this.#g[e]]}}}*keys(){for(const e of this.#R()){const t=this.#h[e];if(t!==undefined&&!this.#x(this.#g[e])){yield t}}}*rkeys(){for(const e of this.#$()){const t=this.#h[e];if(t!==undefined&&!this.#x(this.#g[e])){yield t}}}*values(){for(const e of this.#R()){const t=this.#g[e];if(t!==undefined&&!this.#x(this.#g[e])){yield this.#g[e]}}}*rvalues(){for(const e of this.#$()){const t=this.#g[e];if(t!==undefined&&!this.#x(this.#g[e])){yield this.#g[e]}}}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(e,t={}){for(const r of this.#R()){const n=this.#g[r];const s=this.#x(n)?n.__staleWhileFetching:n;if(s===undefined)continue;if(e(s,this.#h[r],this)){return this.get(this.#h[r],t)}}}forEach(e,t=this){for(const r of this.#R()){const n=this.#g[r];const s=this.#x(n)?n.__staleWhileFetching:n;if(s===undefined)continue;e.call(t,s,this.#h[r],this)}}rforEach(e,t=this){for(const r of this.#$()){const n=this.#g[r];const s=this.#x(n)?n.__staleWhileFetching:n;if(s===undefined)continue;e.call(t,s,this.#h[r],this)}}purgeStale(){let e=false;for(const t of this.#$({allowStale:true})){if(this.#B(t)){this.#T(this.#h[t],"expire");e=true}}return e}info(e){const t=this.#d.get(e);if(t===undefined)return undefined;const n=this.#g[t];const s=this.#x(n)?n.__staleWhileFetching:n;if(s===undefined)return undefined;const i={value:s};if(this.#v&&this.#b){const e=this.#v[t];const n=this.#b[t];if(e&&n){const t=e-(r.now()-n);i.ttl=t;i.start=Date.now()}}if(this.#w){i.size=this.#w[t]}return i}dump(){const e=[];for(const t of this.#R({allowStale:true})){const n=this.#h[t];const s=this.#g[t];const i=this.#x(s)?s.__staleWhileFetching:s;if(i===undefined||n===undefined)continue;const o={value:i};if(this.#v&&this.#b){o.ttl=this.#v[t];const e=r.now()-this.#b[t];o.start=Math.floor(Date.now()-e)}if(this.#w){o.size=this.#w[t]}e.unshift([n,o])}return e}load(e){this.clear();for(const[t,n]of e){if(n.start){const e=Date.now()-n.start;n.start=r.now()-e}this.set(t,n.value,n)}}set(e,t,r={}){if(t===undefined){this.delete(e);return this}const{ttl:n=this.ttl,start:s,noDisposeOnSet:i=this.noDisposeOnSet,sizeCalculation:o=this.sizeCalculation,status:u}=r;let{noUpdateTTL:a=this.noUpdateTTL}=r;const c=this.#H(e,t,r.size||0,o);if(this.maxEntrySize&&c>this.maxEntrySize){if(u){u.set="miss";u.maxEntrySizeExceeded=true}this.#T(e,"set");return this}let l=this.#f===0?undefined:this.#d.get(e);if(l===undefined){l=this.#f===0?this.#y:this.#D.length!==0?this.#D.pop():this.#f===this.#i?this.#U(false):this.#f;this.#h[l]=e;this.#g[l]=t;this.#d.set(e,l);this.#m[this.#y]=l;this.#A[l]=this.#y;this.#y=l;this.#f++;this.#G(l,c,u);if(u)u.set="add";a=false}else{this.#k(l);const r=this.#g[l];if(t!==r){if(this.#F&&this.#x(r)){r.__abortController.abort(new Error("replaced"));const{__staleWhileFetching:t}=r;if(t!==undefined&&!i){if(this.#_){this.#u?.(t,e,"set")}if(this.#S){this.#C?.push([t,e,"set"])}}}else if(!i){if(this.#_){this.#u?.(r,e,"set")}if(this.#S){this.#C?.push([r,e,"set"])}}this.#j(l);this.#G(l,c,u);this.#g[l]=t;if(u){u.set="replace";const e=r&&this.#x(r)?r.__staleWhileFetching:r;if(e!==undefined)u.oldValue=e}}else if(u){u.set="update"}}if(n!==0&&!this.#v){this.#I()}if(this.#v){if(!a){this.#P(l,n,s)}if(u)this.#M(u,l)}if(!i&&this.#S&&this.#C){const e=this.#C;let t;while(t=e?.shift()){this.#a?.(...t)}}return this}pop(){try{while(this.#f){const e=this.#g[this.#E];this.#U(true);if(this.#x(e)){if(e.__staleWhileFetching){return e.__staleWhileFetching}}else if(e!==undefined){return e}}}finally{if(this.#S&&this.#C){const e=this.#C;let t;while(t=e?.shift()){this.#a?.(...t)}}}}#U(e){const t=this.#E;const r=this.#h[t];const n=this.#g[t];if(this.#F&&this.#x(n)){n.__abortController.abort(new Error("evicted"))}else if(this.#_||this.#S){if(this.#_){this.#u?.(n,r,"evict")}if(this.#S){this.#C?.push([n,r,"evict"])}}this.#j(t);if(e){this.#h[t]=undefined;this.#g[t]=undefined;this.#D.push(t)}if(this.#f===1){this.#E=this.#y=0;this.#D.length=0}else{this.#E=this.#m[t]}this.#d.delete(r);this.#f--;return t}has(e,t={}){const{updateAgeOnHas:r=this.updateAgeOnHas,status:n}=t;const s=this.#d.get(e);if(s!==undefined){const e=this.#g[s];if(this.#x(e)&&e.__staleWhileFetching===undefined){return false}if(!this.#B(s)){if(r){this.#N(s)}if(n){n.has="hit";this.#M(n,s)}return true}else if(n){n.has="stale";this.#M(n,s)}}else if(n){n.has="miss"}return false}peek(e,t={}){const{allowStale:r=this.allowStale}=t;const n=this.#d.get(e);if(n===undefined||!r&&this.#B(n)){return}const s=this.#g[n];return this.#x(s)?s.__staleWhileFetching:s}#O(e,t,r,n){const s=t===undefined?undefined:this.#g[t];if(this.#x(s)){return s}const o=new i;const{signal:u}=r;u?.addEventListener("abort",(()=>o.abort(u.reason)),{signal:o.signal});const a={signal:o.signal,options:r,context:n};const cb=(n,s=false)=>{const{aborted:i}=o.signal;const u=r.ignoreFetchAbort&&n!==undefined;if(r.status){if(i&&!s){r.status.fetchAborted=true;r.status.fetchError=o.signal.reason;if(u)r.status.fetchAbortIgnored=true}else{r.status.fetchResolved=true}}if(i&&!u&&!s){return fetchFail(o.signal.reason)}const l=c;if(this.#g[t]===c){if(n===undefined){if(l.__staleWhileFetching){this.#g[t]=l.__staleWhileFetching}else{this.#T(e,"fetch")}}else{if(r.status)r.status.fetchUpdated=true;this.set(e,n,a.options)}}return n};const eb=e=>{if(r.status){r.status.fetchRejected=true;r.status.fetchError=e}return fetchFail(e)};const fetchFail=n=>{const{aborted:s}=o.signal;const i=s&&r.allowStaleOnFetchAbort;const u=i||r.allowStaleOnFetchRejection;const a=u||r.noDeleteOnFetchRejection;const l=c;if(this.#g[t]===c){const r=!a||l.__staleWhileFetching===undefined;if(r){this.#T(e,"fetch")}else if(!i){this.#g[t]=l.__staleWhileFetching}}if(u){if(r.status&&l.__staleWhileFetching!==undefined){r.status.returnedStale=true}return l.__staleWhileFetching}else if(l.__returned===l){throw n}};const pcall=(t,n)=>{const i=this.#c?.(e,s,a);if(i&&i instanceof Promise){i.then((e=>t(e===undefined?undefined:e)),n)}o.signal.addEventListener("abort",(()=>{if(!r.ignoreFetchAbort||r.allowStaleOnFetchAbort){t(undefined);if(r.allowStaleOnFetchAbort){t=e=>cb(e,true)}}}))};if(r.status)r.status.fetchDispatched=true;const c=new Promise(pcall).then(cb,eb);const l=Object.assign(c,{__abortController:o,__staleWhileFetching:s,__returned:undefined});if(t===undefined){this.set(e,l,{...a.options,status:undefined});t=this.#d.get(e)}else{this.#g[t]=l}return l}#x(e){if(!this.#F)return false;const t=e;return!!t&&t instanceof Promise&&t.hasOwnProperty("__staleWhileFetching")&&t.__abortController instanceof i}async fetch(e,t={}){const{allowStale:r=this.allowStale,updateAgeOnGet:n=this.updateAgeOnGet,noDeleteOnStaleGet:s=this.noDeleteOnStaleGet,ttl:i=this.ttl,noDisposeOnSet:o=this.noDisposeOnSet,size:u=0,sizeCalculation:a=this.sizeCalculation,noUpdateTTL:c=this.noUpdateTTL,noDeleteOnFetchRejection:l=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:f=this.allowStaleOnFetchRejection,ignoreFetchAbort:p=this.ignoreFetchAbort,allowStaleOnFetchAbort:d=this.allowStaleOnFetchAbort,context:h,forceRefresh:g=false,status:m,signal:A}=t;if(!this.#F){if(m)m.fetch="get";return this.get(e,{allowStale:r,updateAgeOnGet:n,noDeleteOnStaleGet:s,status:m})}const E={allowStale:r,updateAgeOnGet:n,noDeleteOnStaleGet:s,ttl:i,noDisposeOnSet:o,size:u,sizeCalculation:a,noUpdateTTL:c,noDeleteOnFetchRejection:l,allowStaleOnFetchRejection:f,allowStaleOnFetchAbort:d,ignoreFetchAbort:p,status:m,signal:A};let y=this.#d.get(e);if(y===undefined){if(m)m.fetch="miss";const t=this.#O(e,y,E,h);return t.__returned=t}else{const t=this.#g[y];if(this.#x(t)){const e=r&&t.__staleWhileFetching!==undefined;if(m){m.fetch="inflight";if(e)m.returnedStale=true}return e?t.__staleWhileFetching:t.__returned=t}const s=this.#B(y);if(!g&&!s){if(m)m.fetch="hit";this.#k(y);if(n){this.#N(y)}if(m)this.#M(m,y);return t}const i=this.#O(e,y,E,h);const o=i.__staleWhileFetching!==undefined;const u=o&&r;if(m){m.fetch=s?"stale":"refresh";if(u&&s)m.returnedStale=true}return u?i.__staleWhileFetching:i.__returned=i}}async forceFetch(e,t={}){const r=await this.fetch(e,t);if(r===undefined)throw new Error("fetch() returned undefined");return r}memo(e,t={}){const r=this.#l;if(!r){throw new Error("no memoMethod provided to constructor")}const{context:n,forceRefresh:s,...i}=t;const o=this.get(e,i);if(!s&&o!==undefined)return o;const u=r(e,o,{options:i,context:n});this.set(e,u,i);return u}get(e,t={}){const{allowStale:r=this.allowStale,updateAgeOnGet:n=this.updateAgeOnGet,noDeleteOnStaleGet:s=this.noDeleteOnStaleGet,status:i}=t;const o=this.#d.get(e);if(o!==undefined){const t=this.#g[o];const u=this.#x(t);if(i)this.#M(i,o);if(this.#B(o)){if(i)i.get="stale";if(!u){if(!s){this.#T(e,"expire")}if(i&&r)i.returnedStale=true;return r?t:undefined}else{if(i&&r&&t.__staleWhileFetching!==undefined){i.returnedStale=true}return r?t.__staleWhileFetching:undefined}}else{if(i)i.get="hit";if(u){return t.__staleWhileFetching}this.#k(o);if(n){this.#N(o)}return t}}else if(i){i.get="miss"}}#z(e,t){this.#A[t]=e;this.#m[e]=t}#k(e){if(e!==this.#y){if(e===this.#E){this.#E=this.#m[e]}else{this.#z(this.#A[e],this.#m[e])}this.#z(this.#y,e);this.#y=e}}delete(e){return this.#T(e,"delete")}#T(e,t){let r=false;if(this.#f!==0){const n=this.#d.get(e);if(n!==undefined){r=true;if(this.#f===1){this.#q(t)}else{this.#j(n);const r=this.#g[n];if(this.#x(r)){r.__abortController.abort(new Error("deleted"))}else if(this.#_||this.#S){if(this.#_){this.#u?.(r,e,t)}if(this.#S){this.#C?.push([r,e,t])}}this.#d.delete(e);this.#h[n]=undefined;this.#g[n]=undefined;if(n===this.#y){this.#y=this.#A[n]}else if(n===this.#E){this.#E=this.#m[n]}else{const e=this.#A[n];this.#m[e]=this.#m[n];const t=this.#m[n];this.#A[t]=this.#A[n]}this.#f--;this.#D.push(n)}}}if(this.#S&&this.#C?.length){const e=this.#C;let t;while(t=e?.shift()){this.#a?.(...t)}}return r}clear(){return this.#q("delete")}#q(e){for(const t of this.#$({allowStale:true})){const r=this.#g[t];if(this.#x(r)){r.__abortController.abort(new Error("deleted"))}else{const n=this.#h[t];if(this.#_){this.#u?.(r,n,e)}if(this.#S){this.#C?.push([r,n,e])}}}this.#d.clear();this.#g.fill(undefined);this.#h.fill(undefined);if(this.#v&&this.#b){this.#v.fill(0);this.#b.fill(0)}if(this.#w){this.#w.fill(0)}this.#E=0;this.#y=0;this.#D.length=0;this.#p=0;this.#f=0;if(this.#S&&this.#C){const e=this.#C;let t;while(t=e?.shift()){this.#a?.(...t)}}}}t.LRUCache=LRUCache},8330:e=>{"use strict";e.exports=JSON.parse('{"name":"create-expo","version":"5.1.2","description":"Create universal Expo apps","keywords":["expo","react","react-native"],"homepage":"https://docs.expo.dev","license":"BSD-3-Clause","author":"Evan Bacon <bacon@expo.io> (https://github.com/evanbacon)","repository":{"type":"git","url":"https://github.com/expo/expo.git","directory":"packages/create-expo"},"bin":"./bin/create-expo.js","files":["bin","build","template"],"main":"build/index.js","exports":{".":"./build/index.js","./package.json":"./package.json"},"scripts":{"prebuild":"expo-module clean","build":"ncc build ./src/index.ts -o build/","prebuild:prod":"expo-module clean","build:prod":"ncc build ./src/index.ts -o build/ --minify --no-cache --no-source-map-register","clean":"expo-module clean","lint":"oxlint --config oxlint.config.mjs .","format":"expo-module format","depscheck":"expo-module depscheck","typecheck":"tsc -p tsconfig.json","test":"jest","test:e2e":"jest --config e2e/jest.config.js --runInBand","sync-agent-templates":"node scripts/sync-agent-templates.js","prepublishOnly":"pnpm run sync-agent-templates && pnpm run clean && pnpm run build:prod"},"devDependencies":{"@expo/config":"workspace:*","@expo/json-file":"workspace:*","@expo/package-manager":"workspace:*","@expo/spawn-async":"^1.8.0","@octokit/types":"^13.5.0","@types/debug":"^4.1.7","@types/getenv":"^1.0.0","@types/node":"^22.14.0","@types/picomatch":"^2.3.3","@types/prompts":"2.0.14","@vercel/ncc":"^0.38.3","arg":"^5.0.2","chalk":"^4.0.0","debug":"^4.3.4","expo-module-scripts":"workspace:*","getenv":"^2.0.0","glob":"^13.0.0","memfs":"^3.2.0","multitars":"^1.0.2","nock":"^14.0.10","ora":"3.4.0","picomatch":"^2.3.2","prompts":"^2.4.2","resolve-workspace-root":"^2.0.0","slugify":"^1.6.6","update-check":"^1.5.4"},"engines":{"node":"^22.13.0 || ^24.3.0 || ^26.0.0 || >=27.0.0"},"gitHead":"313e67f5c9dfb16f9deca74a271cd1d4f33a6f82"}')}};var t={};function __nccwpck_require__(r){var n=t[r];if(n!==undefined){return n.exports}var s=t[r]={id:r,loaded:false,exports:{}};var i=true;try{e[r].call(s.exports,s,s.exports,__nccwpck_require__);i=false}finally{if(i)delete t[r]}s.loaded=true;return s.exports}__nccwpck_require__.m=e;(()=>{__nccwpck_require__.n=e=>{var t=e&&e.__esModule?()=>e["default"]:()=>e;__nccwpck_require__.d(t,{a:t});return t}})();(()=>{var e=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;var t;__nccwpck_require__.t=function(r,n){if(n&1)r=this(r);if(n&8)return r;if(typeof r==="object"&&r){if(n&4&&r.__esModule)return r;if(n&16&&typeof r.then==="function")return r}var s=Object.create(null);__nccwpck_require__.r(s);var i={};t=t||[null,e({}),e([]),e(e)];for(var o=n&2&&r;typeof o=="object"&&!~t.indexOf(o);o=e(o)){Object.getOwnPropertyNames(o).forEach((e=>i[e]=()=>r[e]))}i["default"]=()=>r;__nccwpck_require__.d(s,i);return s}})();(()=>{__nccwpck_require__.d=(e,t)=>{for(var r in t){if(__nccwpck_require__.o(t,r)&&!__nccwpck_require__.o(e,r)){Object.defineProperty(e,r,{enumerable:true,get:t[r]})}}}})();(()=>{__nccwpck_require__.f={};__nccwpck_require__.e=e=>Promise.all(Object.keys(__nccwpck_require__.f).reduce(((t,r)=>{__nccwpck_require__.f[r](e,t);return t}),[]))})();(()=>{__nccwpck_require__.u=e=>""+e+".index.js"})();(()=>{__nccwpck_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})();(()=>{__nccwpck_require__.r=e=>{if(typeof Symbol!=="undefined"&&Symbol.toStringTag){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}Object.defineProperty(e,"__esModule",{value:true})}})();(()=>{__nccwpck_require__.nmd=e=>{e.paths=[];if(!e.children)e.children=[];return e}})();if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";(()=>{var e={792:1};var installChunk=t=>{var r=t.modules,n=t.ids,s=t.runtime;for(var i in r){if(__nccwpck_require__.o(r,i)){__nccwpck_require__.m[i]=r[i]}}if(s)s(__nccwpck_require__);for(var o=0;o<n.length;o++)e[n[o]]=1};__nccwpck_require__.f.require=(t,r)=>{if(!e[t]){if(true){installChunk(require("./"+__nccwpck_require__.u(t)))}else e[t]=1}}})();var r={};(()=>{"use strict";__nccwpck_require__.r(r);var e=__nccwpck_require__(6675);var t=__nccwpck_require__.n(e);var n=__nccwpck_require__(277);var s=__nccwpck_require__.n(n);var i=__nccwpck_require__(7517);process.title=i.PACKAGE_NAME;if((0,n.boolish)("EXPO_DEBUG",false)){t().enable("expo:init:*")}else if(t().enabled("expo:init:")){process.env.EXPO_DEBUG="1"}__nccwpck_require__(4456)})();module.exports=r})();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-expo",
3
- "version": "5.1.1",
3
+ "version": "5.1.2",
4
4
  "description": "Create universal Expo apps",
5
5
  "keywords": [
6
6
  "expo",
@@ -53,12 +53,13 @@
53
53
  "picomatch": "^2.3.2",
54
54
  "prompts": "^2.4.2",
55
55
  "resolve-workspace-root": "^2.0.0",
56
+ "slugify": "^1.6.6",
56
57
  "update-check": "^1.5.4"
57
58
  },
58
59
  "engines": {
59
60
  "node": "^22.13.0 || ^24.3.0 || ^26.0.0 || >=27.0.0"
60
61
  },
61
- "gitHead": "40afe3afa42f1dcca3dcba7ffbb3641859bdf2f0",
62
+ "gitHead": "313e67f5c9dfb16f9deca74a271cd1d4f33a6f82",
62
63
  "scripts": {
63
64
  "prebuild": "expo-module clean",
64
65
  "build": "ncc build ./src/index.ts -o build/",