@expo/config-plugins 7.3.1 → 7.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/README.md +1 -1
  2. package/build/android/AllowBackup.js +6 -6
  3. package/build/android/AllowBackup.js.map +1 -1
  4. package/build/android/BuildProperties.d.ts +1 -1
  5. package/build/android/BuildProperties.js.map +1 -1
  6. package/build/android/GoogleMapsApiKey.js +6 -6
  7. package/build/android/GoogleMapsApiKey.js.map +1 -1
  8. package/build/android/IntentFilters.js +6 -6
  9. package/build/android/IntentFilters.js.map +1 -1
  10. package/build/android/Manifest.js.map +1 -1
  11. package/build/android/Name.js +12 -12
  12. package/build/android/Name.js.map +1 -1
  13. package/build/android/Orientation.js +6 -6
  14. package/build/android/Orientation.js.map +1 -1
  15. package/build/android/Package.js +7 -7
  16. package/build/android/Package.js.map +1 -1
  17. package/build/android/Paths.js.map +1 -1
  18. package/build/android/Permissions.d.ts +1 -1
  19. package/build/android/Permissions.js +6 -6
  20. package/build/android/Permissions.js.map +1 -1
  21. package/build/android/PrimaryColor.js +7 -7
  22. package/build/android/PrimaryColor.js.map +1 -1
  23. package/build/android/Scheme.js.map +1 -1
  24. package/build/android/StatusBar.d.ts +1 -1
  25. package/build/android/StatusBar.js +7 -7
  26. package/build/android/StatusBar.js.map +1 -1
  27. package/build/android/Updates.d.ts +9 -10
  28. package/build/android/Updates.js +42 -47
  29. package/build/android/Updates.js.map +1 -1
  30. package/build/android/WindowSoftInputMode.d.ts +1 -1
  31. package/build/android/WindowSoftInputMode.js +6 -6
  32. package/build/android/WindowSoftInputMode.js.map +1 -1
  33. package/build/ios/Bitcode.js +7 -7
  34. package/build/ios/Bitcode.js.map +1 -1
  35. package/build/ios/BuildScheme.js +7 -7
  36. package/build/ios/BuildScheme.js.map +1 -1
  37. package/build/ios/BundleIdentifier.d.ts +1 -1
  38. package/build/ios/BundleIdentifier.js +7 -7
  39. package/build/ios/BundleIdentifier.js.map +1 -1
  40. package/build/ios/DeviceFamily.js +5 -1
  41. package/build/ios/DeviceFamily.js.map +1 -1
  42. package/build/ios/Entitlements.js +7 -7
  43. package/build/ios/Entitlements.js.map +1 -1
  44. package/build/ios/Google.d.ts +1 -1
  45. package/build/ios/Google.js +7 -7
  46. package/build/ios/Google.js.map +1 -1
  47. package/build/ios/Locales.js +7 -7
  48. package/build/ios/Locales.js.map +1 -1
  49. package/build/ios/Name.d.ts +1 -1
  50. package/build/ios/Name.js +7 -7
  51. package/build/ios/Name.js.map +1 -1
  52. package/build/ios/Orientation.js.map +1 -1
  53. package/build/ios/Paths.js +7 -7
  54. package/build/ios/Paths.js.map +1 -1
  55. package/build/ios/Permissions.d.ts +1 -1
  56. package/build/ios/Permissions.js.map +1 -1
  57. package/build/ios/RequiresFullScreen.js.map +1 -1
  58. package/build/ios/Scheme.js.map +1 -1
  59. package/build/ios/Swift.js +7 -7
  60. package/build/ios/Swift.js.map +1 -1
  61. package/build/ios/Updates.d.ts +6 -8
  62. package/build/ios/Updates.js +17 -19
  63. package/build/ios/Updates.js.map +1 -1
  64. package/build/ios/UsesNonExemptEncryption.js.map +1 -1
  65. package/build/ios/Version.js.map +1 -1
  66. package/build/ios/XcodeProjectFile.js +6 -6
  67. package/build/ios/XcodeProjectFile.js.map +1 -1
  68. package/build/ios/utils/Xcodeproj.js +7 -7
  69. package/build/ios/utils/Xcodeproj.js.map +1 -1
  70. package/build/ios/utils/getInfoPlistPath.js +6 -6
  71. package/build/ios/utils/getInfoPlistPath.js.map +1 -1
  72. package/build/plugins/android-plugins.d.ts +2 -3
  73. package/build/plugins/android-plugins.js.map +1 -1
  74. package/build/plugins/createBaseMod.d.ts +1 -1
  75. package/build/plugins/createBaseMod.js.map +1 -1
  76. package/build/plugins/ios-plugins.js +7 -7
  77. package/build/plugins/ios-plugins.js.map +1 -1
  78. package/build/plugins/mod-compiler.d.ts +1 -1
  79. package/build/plugins/mod-compiler.js +18 -18
  80. package/build/plugins/mod-compiler.js.map +1 -1
  81. package/build/plugins/withAndroidBaseMods.d.ts +1 -1
  82. package/build/plugins/withAndroidBaseMods.js +7 -7
  83. package/build/plugins/withAndroidBaseMods.js.map +1 -1
  84. package/build/plugins/withDangerousMod.js.map +1 -1
  85. package/build/plugins/withIosBaseMods.d.ts +1 -1
  86. package/build/plugins/withIosBaseMods.js +7 -7
  87. package/build/plugins/withIosBaseMods.js.map +1 -1
  88. package/build/plugins/withPlugins.js.map +1 -1
  89. package/build/utils/Updates.d.ts +5 -10
  90. package/build/utils/Updates.js +38 -73
  91. package/build/utils/Updates.js.map +1 -1
  92. package/build/utils/errors.js.map +1 -1
  93. package/build/utils/matchBrackets.d.ts +2 -2
  94. package/build/utils/matchBrackets.js.map +1 -1
  95. package/build/utils/plugin-resolver.js.map +1 -1
  96. package/package.json +4 -3
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.getAppVersion = getAppVersion;
7
7
  exports.getExpoUpdatesPackageVersion = getExpoUpdatesPackageVersion;
8
8
  exports.getNativeVersion = getNativeVersion;
9
- exports.getRuntimeVersion = getRuntimeVersion;
10
- exports.getRuntimeVersionNullable = getRuntimeVersionNullable;
9
+ exports.getRuntimeVersionAsync = getRuntimeVersionAsync;
10
+ exports.getRuntimeVersionNullableAsync = getRuntimeVersionNullableAsync;
11
11
  exports.getSDKVersion = getSDKVersion;
12
12
  exports.getUpdateUrl = getUpdateUrl;
13
13
  exports.getUpdatesCheckOnLaunch = getUpdatesCheckOnLaunch;
@@ -18,7 +18,13 @@ exports.getUpdatesEnabled = getUpdatesEnabled;
18
18
  exports.getUpdatesRequestHeaders = getUpdatesRequestHeaders;
19
19
  exports.getUpdatesRequestHeadersStringified = getUpdatesRequestHeadersStringified;
20
20
  exports.getUpdatesTimeout = getUpdatesTimeout;
21
- exports.withRuntimeVersion = void 0;
21
+ function Fingerprint() {
22
+ const data = _interopRequireWildcard(require("@expo/fingerprint"));
23
+ Fingerprint = function () {
24
+ return data;
25
+ };
26
+ return data;
27
+ }
22
28
  function _sdkRuntimeVersions() {
23
29
  const data = require("@expo/sdk-runtime-versions");
24
30
  _sdkRuntimeVersions = function () {
@@ -69,6 +75,8 @@ function _() {
69
75
  return data;
70
76
  }
71
77
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
78
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
79
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
72
80
  function getExpoUpdatesPackageVersion(projectRoot) {
73
81
  const expoUpdatesPackageJsonPath = _resolveFrom().default.silent(projectRoot, 'expo-updates/package.json');
74
82
  if (!expoUpdatesPackageJsonPath || !_fs().default.existsSync(expoUpdatesPackageJsonPath)) {
@@ -77,24 +85,9 @@ function getExpoUpdatesPackageVersion(projectRoot) {
77
85
  const packageJson = JSON.parse(_fs().default.readFileSync(expoUpdatesPackageJsonPath, 'utf8'));
78
86
  return packageJson.version;
79
87
  }
80
- function shouldDefaultToClassicUpdates(config) {
81
- var _config$updates;
82
- return !!((_config$updates = config.updates) !== null && _config$updates !== void 0 && _config$updates.useClassicUpdates);
83
- }
84
- function getUpdateUrl(config, username) {
85
- var _config$updates2;
86
- if ((_config$updates2 = config.updates) !== null && _config$updates2 !== void 0 && _config$updates2.url) {
87
- var _config$updates3;
88
- return (_config$updates3 = config.updates) === null || _config$updates3 === void 0 ? void 0 : _config$updates3.url;
89
- }
90
- if (!shouldDefaultToClassicUpdates(config)) {
91
- return null;
92
- }
93
- const user = typeof config.owner === 'string' ? config.owner : username;
94
- if (!user) {
95
- return null;
96
- }
97
- return `https://exp.host/@${user}/${config.slug}`;
88
+ function getUpdateUrl(config) {
89
+ var _config$updates$url, _config$updates;
90
+ return (_config$updates$url = (_config$updates = config.updates) === null || _config$updates === void 0 ? void 0 : _config$updates.url) !== null && _config$updates$url !== void 0 ? _config$updates$url : null;
98
91
  }
99
92
  function getAppVersion(config) {
100
93
  var _config$version;
@@ -119,38 +112,9 @@ function getNativeVersion(config, platform) {
119
112
  }
120
113
  }
121
114
  }
122
-
123
- /**
124
- * Compute runtime version policies.
125
- * @return an expoConfig with only string valued platform specific runtime versions.
126
- */
127
- const withRuntimeVersion = config => {
128
- var _config$ios, _config$android;
129
- if ((_config$ios = config.ios) !== null && _config$ios !== void 0 && _config$ios.runtimeVersion || config.runtimeVersion) {
130
- const runtimeVersion = getRuntimeVersion(config, 'ios');
131
- if (runtimeVersion) {
132
- config.ios = {
133
- ...config.ios,
134
- runtimeVersion
135
- };
136
- }
137
- }
138
- if ((_config$android = config.android) !== null && _config$android !== void 0 && _config$android.runtimeVersion || config.runtimeVersion) {
139
- const runtimeVersion = getRuntimeVersion(config, 'android');
140
- if (runtimeVersion) {
141
- config.android = {
142
- ...config.android,
143
- runtimeVersion
144
- };
145
- }
146
- }
147
- delete config.runtimeVersion;
148
- return config;
149
- };
150
- exports.withRuntimeVersion = withRuntimeVersion;
151
- function getRuntimeVersionNullable(...[config, platform]) {
115
+ async function getRuntimeVersionNullableAsync(...[projectRoot, config, platform]) {
152
116
  try {
153
- return getRuntimeVersion(config, platform);
117
+ return await getRuntimeVersionAsync(projectRoot, config, platform);
154
118
  } catch (e) {
155
119
  if ((0, _getenv().boolish)('EXPO_DEBUG', false)) {
156
120
  console.log(e);
@@ -158,7 +122,7 @@ function getRuntimeVersionNullable(...[config, platform]) {
158
122
  return null;
159
123
  }
160
124
  }
161
- function getRuntimeVersion(config, platform) {
125
+ async function getRuntimeVersionAsync(projectRoot, config, platform) {
162
126
  var _config$platform$runt, _config$platform;
163
127
  const runtimeVersion = (_config$platform$runt = (_config$platform = config[platform]) === null || _config$platform === void 0 ? void 0 : _config$platform.runtimeVersion) !== null && _config$platform$runt !== void 0 ? _config$platform$runt : config.runtimeVersion;
164
128
  if (!runtimeVersion) {
@@ -175,46 +139,47 @@ function getRuntimeVersion(config, platform) {
175
139
  throw new Error("An SDK version must be defined when using the 'sdkVersion' runtime policy.");
176
140
  }
177
141
  return (0, _sdkRuntimeVersions().getRuntimeVersionForSDKVersion)(config.sdkVersion);
142
+ } else if (runtimeVersion.policy === 'fingerprintExperimental') {
143
+ console.warn("Use of the experimental 'fingerprintExperimental' runtime policy may result in unexpected system behavior.");
144
+ return await Fingerprint().createProjectHashAsync(projectRoot);
178
145
  }
179
- throw new Error(`"${typeof runtimeVersion === 'object' ? JSON.stringify(runtimeVersion) : runtimeVersion}" is not a valid runtime version. getRuntimeVersion only supports a string, "sdkVersion", "appVersion", or "nativeVersion" policy.`);
146
+ throw new Error(`"${typeof runtimeVersion === 'object' ? JSON.stringify(runtimeVersion) : runtimeVersion}" is not a valid runtime version. getRuntimeVersionAsync only supports a string, "sdkVersion", "appVersion", "nativeVersion" or "fingerprintExperimental" policy.`);
180
147
  }
181
148
  function getSDKVersion(config) {
182
149
  return typeof config.sdkVersion === 'string' ? config.sdkVersion : null;
183
150
  }
184
- function getUpdatesEnabled(config, username) {
185
- var _config$updates4;
151
+ function getUpdatesEnabled(config) {
152
+ var _config$updates2;
186
153
  // allow override of enabled property
187
- if (((_config$updates4 = config.updates) === null || _config$updates4 === void 0 ? void 0 : _config$updates4.enabled) !== undefined) {
154
+ if (((_config$updates2 = config.updates) === null || _config$updates2 === void 0 ? void 0 : _config$updates2.enabled) !== undefined) {
188
155
  return config.updates.enabled;
189
156
  }
190
-
191
- // enable if URL is set (which respects shouldDefaultToClassicUpdates)
192
- return getUpdateUrl(config, username) !== null;
157
+ return getUpdateUrl(config) !== null;
193
158
  }
194
159
  function getUpdatesTimeout(config) {
195
- var _config$updates$fallb, _config$updates5;
196
- return (_config$updates$fallb = (_config$updates5 = config.updates) === null || _config$updates5 === void 0 ? void 0 : _config$updates5.fallbackToCacheTimeout) !== null && _config$updates$fallb !== void 0 ? _config$updates$fallb : 0;
160
+ var _config$updates$fallb, _config$updates3;
161
+ return (_config$updates$fallb = (_config$updates3 = config.updates) === null || _config$updates3 === void 0 ? void 0 : _config$updates3.fallbackToCacheTimeout) !== null && _config$updates$fallb !== void 0 ? _config$updates$fallb : 0;
197
162
  }
198
163
  function getUpdatesCheckOnLaunch(config, expoUpdatesPackageVersion) {
199
- var _config$updates6, _config$updates7, _config$updates8, _config$updates9;
200
- if (((_config$updates6 = config.updates) === null || _config$updates6 === void 0 ? void 0 : _config$updates6.checkAutomatically) === 'ON_ERROR_RECOVERY') {
164
+ var _config$updates4, _config$updates5, _config$updates6, _config$updates7;
165
+ if (((_config$updates4 = config.updates) === null || _config$updates4 === void 0 ? void 0 : _config$updates4.checkAutomatically) === 'ON_ERROR_RECOVERY') {
201
166
  // native 'ERROR_RECOVERY_ONLY' option was only introduced in 0.11.x
202
167
  if (expoUpdatesPackageVersion && _semver().default.gte(expoUpdatesPackageVersion, '0.11.0')) {
203
168
  return 'ERROR_RECOVERY_ONLY';
204
169
  }
205
170
  return 'NEVER';
206
- } else if (((_config$updates7 = config.updates) === null || _config$updates7 === void 0 ? void 0 : _config$updates7.checkAutomatically) === 'ON_LOAD') {
171
+ } else if (((_config$updates5 = config.updates) === null || _config$updates5 === void 0 ? void 0 : _config$updates5.checkAutomatically) === 'ON_LOAD') {
207
172
  return 'ALWAYS';
208
- } else if (((_config$updates8 = config.updates) === null || _config$updates8 === void 0 ? void 0 : _config$updates8.checkAutomatically) === 'WIFI_ONLY') {
173
+ } else if (((_config$updates6 = config.updates) === null || _config$updates6 === void 0 ? void 0 : _config$updates6.checkAutomatically) === 'WIFI_ONLY') {
209
174
  return 'WIFI_ONLY';
210
- } else if (((_config$updates9 = config.updates) === null || _config$updates9 === void 0 ? void 0 : _config$updates9.checkAutomatically) === 'NEVER') {
175
+ } else if (((_config$updates7 = config.updates) === null || _config$updates7 === void 0 ? void 0 : _config$updates7.checkAutomatically) === 'NEVER') {
211
176
  return 'NEVER';
212
177
  }
213
178
  return 'ALWAYS';
214
179
  }
215
180
  function getUpdatesCodeSigningCertificate(projectRoot, config) {
216
- var _config$updates10;
217
- const codeSigningCertificatePath = (_config$updates10 = config.updates) === null || _config$updates10 === void 0 ? void 0 : _config$updates10.codeSigningCertificate;
181
+ var _config$updates8;
182
+ const codeSigningCertificatePath = (_config$updates8 = config.updates) === null || _config$updates8 === void 0 ? void 0 : _config$updates8.codeSigningCertificate;
218
183
  if (!codeSigningCertificatePath) {
219
184
  return undefined;
220
185
  }
@@ -225,8 +190,8 @@ function getUpdatesCodeSigningCertificate(projectRoot, config) {
225
190
  return _fs().default.readFileSync(finalPath, 'utf8');
226
191
  }
227
192
  function getUpdatesCodeSigningMetadata(config) {
228
- var _config$updates11;
229
- return (_config$updates11 = config.updates) === null || _config$updates11 === void 0 ? void 0 : _config$updates11.codeSigningMetadata;
193
+ var _config$updates9;
194
+ return (_config$updates9 = config.updates) === null || _config$updates9 === void 0 ? void 0 : _config$updates9.codeSigningMetadata;
230
195
  }
231
196
  function getUpdatesCodeSigningMetadataStringified(config) {
232
197
  const metadata = getUpdatesCodeSigningMetadata(config);
@@ -236,8 +201,8 @@ function getUpdatesCodeSigningMetadataStringified(config) {
236
201
  return JSON.stringify(metadata);
237
202
  }
238
203
  function getUpdatesRequestHeaders(config) {
239
- var _config$updates12;
240
- return (_config$updates12 = config.updates) === null || _config$updates12 === void 0 ? void 0 : _config$updates12.requestHeaders;
204
+ var _config$updates10;
205
+ return (_config$updates10 = config.updates) === null || _config$updates10 === void 0 ? void 0 : _config$updates10.requestHeaders;
241
206
  }
242
207
  function getUpdatesRequestHeadersStringified(config) {
243
208
  const metadata = getUpdatesRequestHeaders(config);
@@ -1 +1 @@
1
- {"version":3,"file":"Updates.js","names":["_sdkRuntimeVersions","data","require","_fs","_interopRequireDefault","_getenv","_path","_resolveFrom","_semver","_","obj","__esModule","default","getExpoUpdatesPackageVersion","projectRoot","expoUpdatesPackageJsonPath","resolveFrom","silent","fs","existsSync","packageJson","JSON","parse","readFileSync","version","shouldDefaultToClassicUpdates","config","_config$updates","updates","useClassicUpdates","getUpdateUrl","username","_config$updates2","url","_config$updates3","user","owner","slug","getAppVersion","_config$version","getNativeVersion","platform","IOSConfig","Version","getVersion","buildNumber","getBuildNumber","versionCode","AndroidConfig","getVersionCode","Error","withRuntimeVersion","_config$ios","_config$android","ios","runtimeVersion","getRuntimeVersion","android","exports","getRuntimeVersionNullable","e","boolish","console","log","_config$platform$runt","_config$platform","policy","sdkVersion","getRuntimeVersionForSDKVersion","stringify","getSDKVersion","getUpdatesEnabled","_config$updates4","enabled","undefined","getUpdatesTimeout","_config$updates$fallb","_config$updates5","fallbackToCacheTimeout","getUpdatesCheckOnLaunch","expoUpdatesPackageVersion","_config$updates6","_config$updates7","_config$updates8","_config$updates9","checkAutomatically","semver","gte","getUpdatesCodeSigningCertificate","_config$updates10","codeSigningCertificatePath","codeSigningCertificate","finalPath","path","join","getUpdatesCodeSigningMetadata","_config$updates11","codeSigningMetadata","getUpdatesCodeSigningMetadataStringified","metadata","getUpdatesRequestHeaders","_config$updates12","requestHeaders","getUpdatesRequestHeadersStringified"],"sources":["../../src/utils/Updates.ts"],"sourcesContent":["import { Android, ExpoConfig, IOS } from '@expo/config-types';\nimport { getRuntimeVersionForSDKVersion } from '@expo/sdk-runtime-versions';\nimport fs from 'fs';\nimport { boolish } from 'getenv';\nimport path from 'path';\nimport resolveFrom from 'resolve-from';\nimport semver from 'semver';\n\nimport { AndroidConfig, IOSConfig } from '..';\n\nexport type ExpoConfigUpdates = Pick<\n ExpoConfig,\n 'sdkVersion' | 'owner' | 'runtimeVersion' | 'updates' | 'slug'\n>;\n\nexport function getExpoUpdatesPackageVersion(projectRoot: string): string | null {\n const expoUpdatesPackageJsonPath = resolveFrom.silent(projectRoot, 'expo-updates/package.json');\n if (!expoUpdatesPackageJsonPath || !fs.existsSync(expoUpdatesPackageJsonPath)) {\n return null;\n }\n const packageJson = JSON.parse(fs.readFileSync(expoUpdatesPackageJsonPath, 'utf8'));\n return packageJson.version;\n}\n\nfunction shouldDefaultToClassicUpdates(config: Pick<ExpoConfigUpdates, 'updates'>): boolean {\n return !!config.updates?.useClassicUpdates;\n}\n\nexport function getUpdateUrl(\n config: Pick<ExpoConfigUpdates, 'owner' | 'slug' | 'updates'>,\n username: string | null\n): string | null {\n if (config.updates?.url) {\n return config.updates?.url;\n }\n\n if (!shouldDefaultToClassicUpdates(config)) {\n return null;\n }\n\n const user = typeof config.owner === 'string' ? config.owner : username;\n if (!user) {\n return null;\n }\n return `https://exp.host/@${user}/${config.slug}`;\n}\n\nexport function getAppVersion(config: Pick<ExpoConfig, 'version'>): string {\n return config.version ?? '1.0.0';\n}\n\nexport function getNativeVersion(\n config: Pick<ExpoConfig, 'version'> & {\n android?: Pick<Android, 'versionCode'>;\n ios?: Pick<IOS, 'buildNumber'>;\n },\n platform: 'android' | 'ios'\n): string {\n const version = IOSConfig.Version.getVersion(config);\n switch (platform) {\n case 'ios': {\n const buildNumber = IOSConfig.Version.getBuildNumber(config);\n return `${version}(${buildNumber})`;\n }\n case 'android': {\n const versionCode = AndroidConfig.Version.getVersionCode(config);\n return `${version}(${versionCode})`;\n }\n default: {\n throw new Error(\n `\"${platform}\" is not a supported platform. Choose either \"ios\" or \"android\".`\n );\n }\n }\n}\n\n/**\n * Compute runtime version policies.\n * @return an expoConfig with only string valued platform specific runtime versions.\n */\nexport const withRuntimeVersion: (config: ExpoConfig) => ExpoConfig = (config) => {\n if (config.ios?.runtimeVersion || config.runtimeVersion) {\n const runtimeVersion = getRuntimeVersion(config, 'ios');\n if (runtimeVersion) {\n config.ios = {\n ...config.ios,\n runtimeVersion,\n };\n }\n }\n if (config.android?.runtimeVersion || config.runtimeVersion) {\n const runtimeVersion = getRuntimeVersion(config, 'android');\n if (runtimeVersion) {\n config.android = {\n ...config.android,\n runtimeVersion,\n };\n }\n }\n delete config.runtimeVersion;\n return config;\n};\n\nexport function getRuntimeVersionNullable(\n ...[config, platform]: Parameters<typeof getRuntimeVersion>\n): string | null {\n try {\n return getRuntimeVersion(config, platform);\n } catch (e) {\n if (boolish('EXPO_DEBUG', false)) {\n console.log(e);\n }\n return null;\n }\n}\n\nexport function getRuntimeVersion(\n config: Pick<ExpoConfig, 'version' | 'runtimeVersion' | 'sdkVersion'> & {\n android?: Pick<Android, 'versionCode' | 'runtimeVersion'>;\n ios?: Pick<IOS, 'buildNumber' | 'runtimeVersion'>;\n },\n platform: 'android' | 'ios'\n): string | null {\n const runtimeVersion = config[platform]?.runtimeVersion ?? config.runtimeVersion;\n if (!runtimeVersion) {\n return null;\n }\n\n if (typeof runtimeVersion === 'string') {\n return runtimeVersion;\n } else if (runtimeVersion.policy === 'appVersion') {\n return getAppVersion(config);\n } else if (runtimeVersion.policy === 'nativeVersion') {\n return getNativeVersion(config, platform);\n } else if (runtimeVersion.policy === 'sdkVersion') {\n if (!config.sdkVersion) {\n throw new Error(\"An SDK version must be defined when using the 'sdkVersion' runtime policy.\");\n }\n return getRuntimeVersionForSDKVersion(config.sdkVersion);\n }\n\n throw new Error(\n `\"${\n typeof runtimeVersion === 'object' ? JSON.stringify(runtimeVersion) : runtimeVersion\n }\" is not a valid runtime version. getRuntimeVersion only supports a string, \"sdkVersion\", \"appVersion\", or \"nativeVersion\" policy.`\n );\n}\n\nexport function getSDKVersion(config: Pick<ExpoConfigUpdates, 'sdkVersion'>): string | null {\n return typeof config.sdkVersion === 'string' ? config.sdkVersion : null;\n}\n\nexport function getUpdatesEnabled(\n config: Pick<ExpoConfigUpdates, 'owner' | 'slug' | 'updates'>,\n username: string | null\n): boolean {\n // allow override of enabled property\n if (config.updates?.enabled !== undefined) {\n return config.updates.enabled;\n }\n\n // enable if URL is set (which respects shouldDefaultToClassicUpdates)\n return getUpdateUrl(config, username) !== null;\n}\n\nexport function getUpdatesTimeout(config: Pick<ExpoConfigUpdates, 'updates'>): number {\n return config.updates?.fallbackToCacheTimeout ?? 0;\n}\n\nexport function getUpdatesCheckOnLaunch(\n config: Pick<ExpoConfigUpdates, 'updates'>,\n expoUpdatesPackageVersion?: string | null\n): 'NEVER' | 'ERROR_RECOVERY_ONLY' | 'ALWAYS' | 'WIFI_ONLY' {\n if (config.updates?.checkAutomatically === 'ON_ERROR_RECOVERY') {\n // native 'ERROR_RECOVERY_ONLY' option was only introduced in 0.11.x\n if (expoUpdatesPackageVersion && semver.gte(expoUpdatesPackageVersion, '0.11.0')) {\n return 'ERROR_RECOVERY_ONLY';\n }\n return 'NEVER';\n } else if (config.updates?.checkAutomatically === 'ON_LOAD') {\n return 'ALWAYS';\n } else if (config.updates?.checkAutomatically === 'WIFI_ONLY') {\n return 'WIFI_ONLY';\n } else if (config.updates?.checkAutomatically === 'NEVER') {\n return 'NEVER';\n }\n return 'ALWAYS';\n}\n\nexport function getUpdatesCodeSigningCertificate(\n projectRoot: string,\n config: Pick<ExpoConfigUpdates, 'updates'>\n): string | undefined {\n const codeSigningCertificatePath = config.updates?.codeSigningCertificate;\n if (!codeSigningCertificatePath) {\n return undefined;\n }\n\n const finalPath = path.join(projectRoot, codeSigningCertificatePath);\n if (!fs.existsSync(finalPath)) {\n throw new Error(`File not found at \\`updates.codeSigningCertificate\\` path: ${finalPath}`);\n }\n\n return fs.readFileSync(finalPath, 'utf8');\n}\n\nexport function getUpdatesCodeSigningMetadata(\n config: Pick<ExpoConfigUpdates, 'updates'>\n): NonNullable<ExpoConfigUpdates['updates']>['codeSigningMetadata'] {\n return config.updates?.codeSigningMetadata;\n}\n\nexport function getUpdatesCodeSigningMetadataStringified(\n config: Pick<ExpoConfigUpdates, 'updates'>\n): string | undefined {\n const metadata = getUpdatesCodeSigningMetadata(config);\n if (!metadata) {\n return undefined;\n }\n\n return JSON.stringify(metadata);\n}\n\nexport function getUpdatesRequestHeaders(\n config: Pick<ExpoConfigUpdates, 'updates'>\n): NonNullable<ExpoConfigUpdates['updates']>['requestHeaders'] {\n return config.updates?.requestHeaders;\n}\n\nexport function getUpdatesRequestHeadersStringified(\n config: Pick<ExpoConfigUpdates, 'updates'>\n): string | undefined {\n const metadata = getUpdatesRequestHeaders(config);\n if (!metadata) {\n return undefined;\n }\n\n return JSON.stringify(metadata);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Updates.js","names":["Fingerprint","data","_interopRequireWildcard","require","_sdkRuntimeVersions","_fs","_interopRequireDefault","_getenv","_path","_resolveFrom","_semver","_","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","getExpoUpdatesPackageVersion","projectRoot","expoUpdatesPackageJsonPath","resolveFrom","silent","fs","existsSync","packageJson","JSON","parse","readFileSync","version","getUpdateUrl","config","_config$updates$url","_config$updates","updates","url","getAppVersion","_config$version","getNativeVersion","platform","IOSConfig","Version","getVersion","buildNumber","getBuildNumber","versionCode","AndroidConfig","getVersionCode","Error","getRuntimeVersionNullableAsync","getRuntimeVersionAsync","e","boolish","console","log","_config$platform$runt","_config$platform","runtimeVersion","policy","sdkVersion","getRuntimeVersionForSDKVersion","warn","createProjectHashAsync","stringify","getSDKVersion","getUpdatesEnabled","_config$updates2","enabled","undefined","getUpdatesTimeout","_config$updates$fallb","_config$updates3","fallbackToCacheTimeout","getUpdatesCheckOnLaunch","expoUpdatesPackageVersion","_config$updates4","_config$updates5","_config$updates6","_config$updates7","checkAutomatically","semver","gte","getUpdatesCodeSigningCertificate","_config$updates8","codeSigningCertificatePath","codeSigningCertificate","finalPath","path","join","getUpdatesCodeSigningMetadata","_config$updates9","codeSigningMetadata","getUpdatesCodeSigningMetadataStringified","metadata","getUpdatesRequestHeaders","_config$updates10","requestHeaders","getUpdatesRequestHeadersStringified"],"sources":["../../src/utils/Updates.ts"],"sourcesContent":["import { Android, ExpoConfig, IOS } from '@expo/config-types';\nimport * as Fingerprint from '@expo/fingerprint';\nimport { getRuntimeVersionForSDKVersion } from '@expo/sdk-runtime-versions';\nimport fs from 'fs';\nimport { boolish } from 'getenv';\nimport path from 'path';\nimport resolveFrom from 'resolve-from';\nimport semver from 'semver';\n\nimport { AndroidConfig, IOSConfig } from '..';\n\nexport type ExpoConfigUpdates = Pick<\n ExpoConfig,\n 'sdkVersion' | 'owner' | 'runtimeVersion' | 'updates' | 'slug'\n>;\n\nexport function getExpoUpdatesPackageVersion(projectRoot: string): string | null {\n const expoUpdatesPackageJsonPath = resolveFrom.silent(projectRoot, 'expo-updates/package.json');\n if (!expoUpdatesPackageJsonPath || !fs.existsSync(expoUpdatesPackageJsonPath)) {\n return null;\n }\n const packageJson = JSON.parse(fs.readFileSync(expoUpdatesPackageJsonPath, 'utf8'));\n return packageJson.version;\n}\n\nexport function getUpdateUrl(config: Pick<ExpoConfigUpdates, 'updates'>): string | null {\n return config.updates?.url ?? null;\n}\n\nexport function getAppVersion(config: Pick<ExpoConfig, 'version'>): string {\n return config.version ?? '1.0.0';\n}\n\nexport function getNativeVersion(\n config: Pick<ExpoConfig, 'version'> & {\n android?: Pick<Android, 'versionCode'>;\n ios?: Pick<IOS, 'buildNumber'>;\n },\n platform: 'android' | 'ios'\n): string {\n const version = IOSConfig.Version.getVersion(config);\n switch (platform) {\n case 'ios': {\n const buildNumber = IOSConfig.Version.getBuildNumber(config);\n return `${version}(${buildNumber})`;\n }\n case 'android': {\n const versionCode = AndroidConfig.Version.getVersionCode(config);\n return `${version}(${versionCode})`;\n }\n default: {\n throw new Error(\n `\"${platform}\" is not a supported platform. Choose either \"ios\" or \"android\".`\n );\n }\n }\n}\n\nexport async function getRuntimeVersionNullableAsync(\n ...[projectRoot, config, platform]: Parameters<typeof getRuntimeVersionAsync>\n): Promise<string | null> {\n try {\n return await getRuntimeVersionAsync(projectRoot, config, platform);\n } catch (e) {\n if (boolish('EXPO_DEBUG', false)) {\n console.log(e);\n }\n return null;\n }\n}\n\nexport async function getRuntimeVersionAsync(\n projectRoot: string,\n config: Pick<ExpoConfig, 'version' | 'runtimeVersion' | 'sdkVersion'> & {\n android?: Pick<Android, 'versionCode' | 'runtimeVersion'>;\n ios?: Pick<IOS, 'buildNumber' | 'runtimeVersion'>;\n },\n platform: 'android' | 'ios'\n): Promise<string | null> {\n const runtimeVersion = config[platform]?.runtimeVersion ?? config.runtimeVersion;\n if (!runtimeVersion) {\n return null;\n }\n\n if (typeof runtimeVersion === 'string') {\n return runtimeVersion;\n } else if (runtimeVersion.policy === 'appVersion') {\n return getAppVersion(config);\n } else if (runtimeVersion.policy === 'nativeVersion') {\n return getNativeVersion(config, platform);\n } else if (runtimeVersion.policy === 'sdkVersion') {\n if (!config.sdkVersion) {\n throw new Error(\"An SDK version must be defined when using the 'sdkVersion' runtime policy.\");\n }\n return getRuntimeVersionForSDKVersion(config.sdkVersion);\n } else if (runtimeVersion.policy === 'fingerprintExperimental') {\n console.warn(\n \"Use of the experimental 'fingerprintExperimental' runtime policy may result in unexpected system behavior.\"\n );\n return await Fingerprint.createProjectHashAsync(projectRoot);\n }\n\n throw new Error(\n `\"${\n typeof runtimeVersion === 'object' ? JSON.stringify(runtimeVersion) : runtimeVersion\n }\" is not a valid runtime version. getRuntimeVersionAsync only supports a string, \"sdkVersion\", \"appVersion\", \"nativeVersion\" or \"fingerprintExperimental\" policy.`\n );\n}\n\nexport function getSDKVersion(config: Pick<ExpoConfigUpdates, 'sdkVersion'>): string | null {\n return typeof config.sdkVersion === 'string' ? config.sdkVersion : null;\n}\n\nexport function getUpdatesEnabled(config: Pick<ExpoConfigUpdates, 'updates'>): boolean {\n // allow override of enabled property\n if (config.updates?.enabled !== undefined) {\n return config.updates.enabled;\n }\n\n return getUpdateUrl(config) !== null;\n}\n\nexport function getUpdatesTimeout(config: Pick<ExpoConfigUpdates, 'updates'>): number {\n return config.updates?.fallbackToCacheTimeout ?? 0;\n}\n\nexport function getUpdatesCheckOnLaunch(\n config: Pick<ExpoConfigUpdates, 'updates'>,\n expoUpdatesPackageVersion?: string | null\n): 'NEVER' | 'ERROR_RECOVERY_ONLY' | 'ALWAYS' | 'WIFI_ONLY' {\n if (config.updates?.checkAutomatically === 'ON_ERROR_RECOVERY') {\n // native 'ERROR_RECOVERY_ONLY' option was only introduced in 0.11.x\n if (expoUpdatesPackageVersion && semver.gte(expoUpdatesPackageVersion, '0.11.0')) {\n return 'ERROR_RECOVERY_ONLY';\n }\n return 'NEVER';\n } else if (config.updates?.checkAutomatically === 'ON_LOAD') {\n return 'ALWAYS';\n } else if (config.updates?.checkAutomatically === 'WIFI_ONLY') {\n return 'WIFI_ONLY';\n } else if (config.updates?.checkAutomatically === 'NEVER') {\n return 'NEVER';\n }\n return 'ALWAYS';\n}\n\nexport function getUpdatesCodeSigningCertificate(\n projectRoot: string,\n config: Pick<ExpoConfigUpdates, 'updates'>\n): string | undefined {\n const codeSigningCertificatePath = config.updates?.codeSigningCertificate;\n if (!codeSigningCertificatePath) {\n return undefined;\n }\n\n const finalPath = path.join(projectRoot, codeSigningCertificatePath);\n if (!fs.existsSync(finalPath)) {\n throw new Error(`File not found at \\`updates.codeSigningCertificate\\` path: ${finalPath}`);\n }\n\n return fs.readFileSync(finalPath, 'utf8');\n}\n\nexport function getUpdatesCodeSigningMetadata(\n config: Pick<ExpoConfigUpdates, 'updates'>\n): NonNullable<ExpoConfigUpdates['updates']>['codeSigningMetadata'] {\n return config.updates?.codeSigningMetadata;\n}\n\nexport function getUpdatesCodeSigningMetadataStringified(\n config: Pick<ExpoConfigUpdates, 'updates'>\n): string | undefined {\n const metadata = getUpdatesCodeSigningMetadata(config);\n if (!metadata) {\n return undefined;\n }\n\n return JSON.stringify(metadata);\n}\n\nexport function getUpdatesRequestHeaders(\n config: Pick<ExpoConfigUpdates, 'updates'>\n): NonNullable<ExpoConfigUpdates['updates']>['requestHeaders'] {\n return config.updates?.requestHeaders;\n}\n\nexport function getUpdatesRequestHeadersStringified(\n config: Pick<ExpoConfigUpdates, 'updates'>\n): string | undefined {\n const metadata = getUpdatesRequestHeaders(config);\n if (!metadata) {\n return undefined;\n }\n\n return JSON.stringify(metadata);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AACA,SAAAA,YAAA;EAAA,MAAAC,IAAA,GAAAC,uBAAA,CAAAC,OAAA;EAAAH,WAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,oBAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,mBAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,IAAA;EAAA,MAAAJ,IAAA,GAAAK,sBAAA,CAAAH,OAAA;EAAAE,GAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,QAAA;EAAA,MAAAN,IAAA,GAAAE,OAAA;EAAAI,OAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,MAAA;EAAA,MAAAP,IAAA,GAAAK,sBAAA,CAAAH,OAAA;EAAAK,KAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,aAAA;EAAA,MAAAR,IAAA,GAAAK,sBAAA,CAAAH,OAAA;EAAAM,YAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAS,QAAA;EAAA,MAAAT,IAAA,GAAAK,sBAAA,CAAAH,OAAA;EAAAO,OAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAU,EAAA;EAAA,MAAAV,IAAA,GAAAE,OAAA;EAAAQ,CAAA,YAAAA,CAAA;IAAA,OAAAV,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA8C,SAAAK,uBAAAM,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAd,wBAAAU,GAAA,EAAAI,WAAA,SAAAA,WAAA,IAAAJ,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAQ,KAAA,GAAAL,wBAAA,CAAAC,WAAA,OAAAI,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAT,GAAA,YAAAQ,KAAA,CAAAE,GAAA,CAAAV,GAAA,SAAAW,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAhB,GAAA,QAAAgB,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAnB,GAAA,EAAAgB,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAf,GAAA,EAAAgB,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAhB,GAAA,CAAAgB,GAAA,SAAAL,MAAA,CAAAT,OAAA,GAAAF,GAAA,MAAAQ,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAArB,GAAA,EAAAW,MAAA,YAAAA,MAAA;AAOvC,SAASW,4BAA4BA,CAACC,WAAmB,EAAiB;EAC/E,MAAMC,0BAA0B,GAAGC,sBAAW,CAACC,MAAM,CAACH,WAAW,EAAE,2BAA2B,CAAC;EAC/F,IAAI,CAACC,0BAA0B,IAAI,CAACG,aAAE,CAACC,UAAU,CAACJ,0BAA0B,CAAC,EAAE;IAC7E,OAAO,IAAI;EACb;EACA,MAAMK,WAAW,GAAGC,IAAI,CAACC,KAAK,CAACJ,aAAE,CAACK,YAAY,CAACR,0BAA0B,EAAE,MAAM,CAAC,CAAC;EACnF,OAAOK,WAAW,CAACI,OAAO;AAC5B;AAEO,SAASC,YAAYA,CAACC,MAA0C,EAAiB;EAAA,IAAAC,mBAAA,EAAAC,eAAA;EACtF,QAAAD,mBAAA,IAAAC,eAAA,GAAOF,MAAM,CAACG,OAAO,cAAAD,eAAA,uBAAdA,eAAA,CAAgBE,GAAG,cAAAH,mBAAA,cAAAA,mBAAA,GAAI,IAAI;AACpC;AAEO,SAASI,aAAaA,CAACL,MAAmC,EAAU;EAAA,IAAAM,eAAA;EACzE,QAAAA,eAAA,GAAON,MAAM,CAACF,OAAO,cAAAQ,eAAA,cAAAA,eAAA,GAAI,OAAO;AAClC;AAEO,SAASC,gBAAgBA,CAC9BP,MAGC,EACDQ,QAA2B,EACnB;EACR,MAAMV,OAAO,GAAGW,aAAS,CAACC,OAAO,CAACC,UAAU,CAACX,MAAM,CAAC;EACpD,QAAQQ,QAAQ;IACd,KAAK,KAAK;MAAE;QACV,MAAMI,WAAW,GAAGH,aAAS,CAACC,OAAO,CAACG,cAAc,CAACb,MAAM,CAAC;QAC5D,OAAQ,GAAEF,OAAQ,IAAGc,WAAY,GAAE;MACrC;IACA,KAAK,SAAS;MAAE;QACd,MAAME,WAAW,GAAGC,iBAAa,CAACL,OAAO,CAACM,cAAc,CAAChB,MAAM,CAAC;QAChE,OAAQ,GAAEF,OAAQ,IAAGgB,WAAY,GAAE;MACrC;IACA;MAAS;QACP,MAAM,IAAIG,KAAK,CACZ,IAAGT,QAAS,kEAAiE,CAC/E;MACH;EAAC;AAEL;AAEO,eAAeU,8BAA8BA,CAClD,GAAG,CAAC9B,WAAW,EAAEY,MAAM,EAAEQ,QAAQ,CAA4C,EACrD;EACxB,IAAI;IACF,OAAO,MAAMW,sBAAsB,CAAC/B,WAAW,EAAEY,MAAM,EAAEQ,QAAQ,CAAC;EACpE,CAAC,CAAC,OAAOY,CAAC,EAAE;IACV,IAAI,IAAAC,iBAAO,EAAC,YAAY,EAAE,KAAK,CAAC,EAAE;MAChCC,OAAO,CAACC,GAAG,CAACH,CAAC,CAAC;IAChB;IACA,OAAO,IAAI;EACb;AACF;AAEO,eAAeD,sBAAsBA,CAC1C/B,WAAmB,EACnBY,MAGC,EACDQ,QAA2B,EACH;EAAA,IAAAgB,qBAAA,EAAAC,gBAAA;EACxB,MAAMC,cAAc,IAAAF,qBAAA,IAAAC,gBAAA,GAAGzB,MAAM,CAACQ,QAAQ,CAAC,cAAAiB,gBAAA,uBAAhBA,gBAAA,CAAkBC,cAAc,cAAAF,qBAAA,cAAAA,qBAAA,GAAIxB,MAAM,CAAC0B,cAAc;EAChF,IAAI,CAACA,cAAc,EAAE;IACnB,OAAO,IAAI;EACb;EAEA,IAAI,OAAOA,cAAc,KAAK,QAAQ,EAAE;IACtC,OAAOA,cAAc;EACvB,CAAC,MAAM,IAAIA,cAAc,CAACC,MAAM,KAAK,YAAY,EAAE;IACjD,OAAOtB,aAAa,CAACL,MAAM,CAAC;EAC9B,CAAC,MAAM,IAAI0B,cAAc,CAACC,MAAM,KAAK,eAAe,EAAE;IACpD,OAAOpB,gBAAgB,CAACP,MAAM,EAAEQ,QAAQ,CAAC;EAC3C,CAAC,MAAM,IAAIkB,cAAc,CAACC,MAAM,KAAK,YAAY,EAAE;IACjD,IAAI,CAAC3B,MAAM,CAAC4B,UAAU,EAAE;MACtB,MAAM,IAAIX,KAAK,CAAC,4EAA4E,CAAC;IAC/F;IACA,OAAO,IAAAY,oDAA8B,EAAC7B,MAAM,CAAC4B,UAAU,CAAC;EAC1D,CAAC,MAAM,IAAIF,cAAc,CAACC,MAAM,KAAK,yBAAyB,EAAE;IAC9DL,OAAO,CAACQ,IAAI,CACV,4GAA4G,CAC7G;IACD,OAAO,MAAM7E,WAAW,GAAC8E,sBAAsB,CAAC3C,WAAW,CAAC;EAC9D;EAEA,MAAM,IAAI6B,KAAK,CACZ,IACC,OAAOS,cAAc,KAAK,QAAQ,GAAG/B,IAAI,CAACqC,SAAS,CAACN,cAAc,CAAC,GAAGA,cACvE,mKAAkK,CACpK;AACH;AAEO,SAASO,aAAaA,CAACjC,MAA6C,EAAiB;EAC1F,OAAO,OAAOA,MAAM,CAAC4B,UAAU,KAAK,QAAQ,GAAG5B,MAAM,CAAC4B,UAAU,GAAG,IAAI;AACzE;AAEO,SAASM,iBAAiBA,CAAClC,MAA0C,EAAW;EAAA,IAAAmC,gBAAA;EACrF;EACA,IAAI,EAAAA,gBAAA,GAAAnC,MAAM,CAACG,OAAO,cAAAgC,gBAAA,uBAAdA,gBAAA,CAAgBC,OAAO,MAAKC,SAAS,EAAE;IACzC,OAAOrC,MAAM,CAACG,OAAO,CAACiC,OAAO;EAC/B;EAEA,OAAOrC,YAAY,CAACC,MAAM,CAAC,KAAK,IAAI;AACtC;AAEO,SAASsC,iBAAiBA,CAACtC,MAA0C,EAAU;EAAA,IAAAuC,qBAAA,EAAAC,gBAAA;EACpF,QAAAD,qBAAA,IAAAC,gBAAA,GAAOxC,MAAM,CAACG,OAAO,cAAAqC,gBAAA,uBAAdA,gBAAA,CAAgBC,sBAAsB,cAAAF,qBAAA,cAAAA,qBAAA,GAAI,CAAC;AACpD;AAEO,SAASG,uBAAuBA,CACrC1C,MAA0C,EAC1C2C,yBAAyC,EACiB;EAAA,IAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA;EAC1D,IAAI,EAAAH,gBAAA,GAAA5C,MAAM,CAACG,OAAO,cAAAyC,gBAAA,uBAAdA,gBAAA,CAAgBI,kBAAkB,MAAK,mBAAmB,EAAE;IAC9D;IACA,IAAIL,yBAAyB,IAAIM,iBAAM,CAACC,GAAG,CAACP,yBAAyB,EAAE,QAAQ,CAAC,EAAE;MAChF,OAAO,qBAAqB;IAC9B;IACA,OAAO,OAAO;EAChB,CAAC,MAAM,IAAI,EAAAE,gBAAA,GAAA7C,MAAM,CAACG,OAAO,cAAA0C,gBAAA,uBAAdA,gBAAA,CAAgBG,kBAAkB,MAAK,SAAS,EAAE;IAC3D,OAAO,QAAQ;EACjB,CAAC,MAAM,IAAI,EAAAF,gBAAA,GAAA9C,MAAM,CAACG,OAAO,cAAA2C,gBAAA,uBAAdA,gBAAA,CAAgBE,kBAAkB,MAAK,WAAW,EAAE;IAC7D,OAAO,WAAW;EACpB,CAAC,MAAM,IAAI,EAAAD,gBAAA,GAAA/C,MAAM,CAACG,OAAO,cAAA4C,gBAAA,uBAAdA,gBAAA,CAAgBC,kBAAkB,MAAK,OAAO,EAAE;IACzD,OAAO,OAAO;EAChB;EACA,OAAO,QAAQ;AACjB;AAEO,SAASG,gCAAgCA,CAC9C/D,WAAmB,EACnBY,MAA0C,EACtB;EAAA,IAAAoD,gBAAA;EACpB,MAAMC,0BAA0B,IAAAD,gBAAA,GAAGpD,MAAM,CAACG,OAAO,cAAAiD,gBAAA,uBAAdA,gBAAA,CAAgBE,sBAAsB;EACzE,IAAI,CAACD,0BAA0B,EAAE;IAC/B,OAAOhB,SAAS;EAClB;EAEA,MAAMkB,SAAS,GAAGC,eAAI,CAACC,IAAI,CAACrE,WAAW,EAAEiE,0BAA0B,CAAC;EACpE,IAAI,CAAC7D,aAAE,CAACC,UAAU,CAAC8D,SAAS,CAAC,EAAE;IAC7B,MAAM,IAAItC,KAAK,CAAE,8DAA6DsC,SAAU,EAAC,CAAC;EAC5F;EAEA,OAAO/D,aAAE,CAACK,YAAY,CAAC0D,SAAS,EAAE,MAAM,CAAC;AAC3C;AAEO,SAASG,6BAA6BA,CAC3C1D,MAA0C,EACwB;EAAA,IAAA2D,gBAAA;EAClE,QAAAA,gBAAA,GAAO3D,MAAM,CAACG,OAAO,cAAAwD,gBAAA,uBAAdA,gBAAA,CAAgBC,mBAAmB;AAC5C;AAEO,SAASC,wCAAwCA,CACtD7D,MAA0C,EACtB;EACpB,MAAM8D,QAAQ,GAAGJ,6BAA6B,CAAC1D,MAAM,CAAC;EACtD,IAAI,CAAC8D,QAAQ,EAAE;IACb,OAAOzB,SAAS;EAClB;EAEA,OAAO1C,IAAI,CAACqC,SAAS,CAAC8B,QAAQ,CAAC;AACjC;AAEO,SAASC,wBAAwBA,CACtC/D,MAA0C,EACmB;EAAA,IAAAgE,iBAAA;EAC7D,QAAAA,iBAAA,GAAOhE,MAAM,CAACG,OAAO,cAAA6D,iBAAA,uBAAdA,iBAAA,CAAgBC,cAAc;AACvC;AAEO,SAASC,mCAAmCA,CACjDlE,MAA0C,EACtB;EACpB,MAAM8D,QAAQ,GAAGC,wBAAwB,CAAC/D,MAAM,CAAC;EACjD,IAAI,CAAC8D,QAAQ,EAAE;IACb,OAAOzB,SAAS;EAClB;EAEA,OAAO1C,IAAI,CAACqC,SAAS,CAAC8B,QAAQ,CAAC;AACjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","names":["UnexpectedError","Error","constructor","message","_defineProperty","exports","PluginError","code","cause","name"],"sources":["../../src/utils/errors.ts"],"sourcesContent":["export class UnexpectedError extends Error {\n readonly name = 'UnexpectedError';\n\n constructor(message: string) {\n super(`${message}\\nPlease report this as an issue on https://github.com/expo/expo-cli/issues`);\n }\n}\n\nexport type PluginErrorCode =\n | 'INVALID_PLUGIN_TYPE'\n | 'INVALID_PLUGIN_IMPORT'\n | 'PLUGIN_NOT_FOUND'\n | 'CONFLICTING_PROVIDER'\n | 'INVALID_MOD_ORDER'\n | 'MISSING_PROVIDER';\n\n/**\n * Based on `JsonFileError` from `@expo/json-file`\n */\nexport class PluginError extends Error {\n readonly name = 'PluginError';\n readonly isPluginError = true;\n\n constructor(message: string, public code: PluginErrorCode, public cause?: Error) {\n super(cause ? `${message}\\n└─ Cause: ${cause.name}: ${cause.message}` : message);\n }\n}\n"],"mappings":";;;;;;;;;AAAO,MAAMA,eAAe,SAASC,KAAK,CAAC;EAGzCC,WAAWA,CAACC,OAAe,EAAE;IAC3B,KAAK,CAAE,GAAEA,OAAQ,6EAA4E,CAAC;IAACC,eAAA,eAHjF,iBAAiB;EAIjC;AACF;AAACC,OAAA,CAAAL,eAAA,GAAAA,eAAA;AAUD;AACA;AACA;AACO,MAAMM,WAAW,SAASL,KAAK,CAAC;EAIrCC,WAAWA,CAACC,OAAe,EAASI,IAAqB,EAASC,KAAa,EAAE;IAC/E,KAAK,CAACA,KAAK,GAAI,GAAEL,OAAQ,eAAcK,KAAK,CAACC,IAAK,KAAID,KAAK,CAACL,OAAQ,EAAC,GAAGA,OAAO,CAAC;IAAC,KAD/CI,IAAqB,GAArBA,IAAqB;IAAA,KAASC,KAAa,GAAbA,KAAa;IAAAJ,eAAA,eAH/D,aAAa;IAAAA,eAAA,wBACJ,IAAI;EAI7B;AACF;AAACC,OAAA,CAAAC,WAAA,GAAAA,WAAA"}
1
+ {"version":3,"file":"errors.js","names":["UnexpectedError","Error","constructor","message","_defineProperty","exports","PluginError","code","cause","name"],"sources":["../../src/utils/errors.ts"],"sourcesContent":["export class UnexpectedError extends Error {\n readonly name = 'UnexpectedError';\n\n constructor(message: string) {\n super(`${message}\\nPlease report this as an issue on https://github.com/expo/expo-cli/issues`);\n }\n}\n\nexport type PluginErrorCode =\n | 'INVALID_PLUGIN_TYPE'\n | 'INVALID_PLUGIN_IMPORT'\n | 'PLUGIN_NOT_FOUND'\n | 'CONFLICTING_PROVIDER'\n | 'INVALID_MOD_ORDER'\n | 'MISSING_PROVIDER';\n\n/**\n * Based on `JsonFileError` from `@expo/json-file`\n */\nexport class PluginError extends Error {\n readonly name = 'PluginError';\n readonly isPluginError = true;\n\n constructor(\n message: string,\n public code: PluginErrorCode,\n public cause?: Error\n ) {\n super(cause ? `${message}\\n└─ Cause: ${cause.name}: ${cause.message}` : message);\n }\n}\n"],"mappings":";;;;;;;;;AAAO,MAAMA,eAAe,SAASC,KAAK,CAAC;EAGzCC,WAAWA,CAACC,OAAe,EAAE;IAC3B,KAAK,CAAE,GAAEA,OAAQ,6EAA4E,CAAC;IAACC,eAAA,eAHjF,iBAAiB;EAIjC;AACF;AAACC,OAAA,CAAAL,eAAA,GAAAA,eAAA;AAUD;AACA;AACA;AACO,MAAMM,WAAW,SAASL,KAAK,CAAC;EAIrCC,WAAWA,CACTC,OAAe,EACRI,IAAqB,EACrBC,KAAa,EACpB;IACA,KAAK,CAACA,KAAK,GAAI,GAAEL,OAAQ,eAAcK,KAAK,CAACC,IAAK,KAAID,KAAK,CAACL,OAAQ,EAAC,GAAGA,OAAO,CAAC;IAAC,KAH1EI,IAAqB,GAArBA,IAAqB;IAAA,KACrBC,KAAa,GAAbA,KAAa;IAAAJ,eAAA,eANN,aAAa;IAAAA,eAAA,wBACJ,IAAI;EAQ7B;AACF;AAACC,OAAA,CAAAC,WAAA,GAAAA,WAAA"}
@@ -1,7 +1,7 @@
1
1
  declare const LEFT_BRACKETS: readonly ["(", "{"];
2
2
  declare const RIGHT_BRACKETS: readonly [")", "}"];
3
- type LeftBracket = typeof LEFT_BRACKETS[number];
4
- type RightBracket = typeof RIGHT_BRACKETS[number];
3
+ type LeftBracket = (typeof LEFT_BRACKETS)[number];
4
+ type RightBracket = (typeof RIGHT_BRACKETS)[number];
5
5
  type Bracket = LeftBracket | RightBracket;
6
6
  export declare function findMatchingBracketPosition(contents: string, bracket: Bracket, offset?: number): number;
7
7
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"matchBrackets.js","names":["LEFT_BRACKETS","RIGHT_BRACKETS","findMatchingBracketPosition","contents","bracket","offset","firstBracketPos","indexOf","stackCounter","matchingBracket","getMatchingBracket","isLeftBracket","contentsLength","length","i","c","leftBracketList","includes","Error"],"sources":["../../src/utils/matchBrackets.ts"],"sourcesContent":["const LEFT_BRACKETS = ['(', '{'] as const;\nconst RIGHT_BRACKETS = [')', '}'] as const;\n\ntype LeftBracket = typeof LEFT_BRACKETS[number];\ntype RightBracket = typeof RIGHT_BRACKETS[number];\ntype Bracket = LeftBracket | RightBracket;\n\nexport function findMatchingBracketPosition(\n contents: string,\n bracket: Bracket,\n offset: number = 0\n): number {\n // search first occurrence of `bracket`\n const firstBracketPos = contents.indexOf(bracket, offset);\n if (firstBracketPos < 0) {\n return -1;\n }\n\n let stackCounter = 0;\n const matchingBracket = getMatchingBracket(bracket);\n\n if (isLeftBracket(bracket)) {\n const contentsLength = contents.length;\n // search forward\n for (let i = firstBracketPos + 1; i < contentsLength; ++i) {\n const c = contents[i];\n if (c === bracket) {\n stackCounter += 1;\n } else if (c === matchingBracket) {\n if (stackCounter === 0) {\n return i;\n }\n stackCounter -= 1;\n }\n }\n } else {\n // search backward\n for (let i = firstBracketPos - 1; i >= 0; --i) {\n const c = contents[i];\n if (c === bracket) {\n stackCounter += 1;\n } else if (c === matchingBracket) {\n if (stackCounter === 0) {\n return i;\n }\n stackCounter -= 1;\n }\n }\n }\n\n return -1;\n}\n\nfunction isLeftBracket(bracket: Bracket): boolean {\n const leftBracketList: readonly Bracket[] = LEFT_BRACKETS;\n return leftBracketList.includes(bracket);\n}\n\nfunction getMatchingBracket(bracket: Bracket): Bracket {\n switch (bracket) {\n case '(':\n return ')';\n case ')':\n return '(';\n case '{':\n return '}';\n case '}':\n return '{';\n default:\n throw new Error(`Unsupported bracket - ${bracket}`);\n }\n}\n"],"mappings":";;;;;;AAAA,MAAMA,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,CAAU;AACzC,MAAMC,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,CAAU;AAMnC,SAASC,2BAA2BA,CACzCC,QAAgB,EAChBC,OAAgB,EAChBC,MAAc,GAAG,CAAC,EACV;EACR;EACA,MAAMC,eAAe,GAAGH,QAAQ,CAACI,OAAO,CAACH,OAAO,EAAEC,MAAM,CAAC;EACzD,IAAIC,eAAe,GAAG,CAAC,EAAE;IACvB,OAAO,CAAC,CAAC;EACX;EAEA,IAAIE,YAAY,GAAG,CAAC;EACpB,MAAMC,eAAe,GAAGC,kBAAkB,CAACN,OAAO,CAAC;EAEnD,IAAIO,aAAa,CAACP,OAAO,CAAC,EAAE;IAC1B,MAAMQ,cAAc,GAAGT,QAAQ,CAACU,MAAM;IACtC;IACA,KAAK,IAAIC,CAAC,GAAGR,eAAe,GAAG,CAAC,EAAEQ,CAAC,GAAGF,cAAc,EAAE,EAAEE,CAAC,EAAE;MACzD,MAAMC,CAAC,GAAGZ,QAAQ,CAACW,CAAC,CAAC;MACrB,IAAIC,CAAC,KAAKX,OAAO,EAAE;QACjBI,YAAY,IAAI,CAAC;MACnB,CAAC,MAAM,IAAIO,CAAC,KAAKN,eAAe,EAAE;QAChC,IAAID,YAAY,KAAK,CAAC,EAAE;UACtB,OAAOM,CAAC;QACV;QACAN,YAAY,IAAI,CAAC;MACnB;IACF;EACF,CAAC,MAAM;IACL;IACA,KAAK,IAAIM,CAAC,GAAGR,eAAe,GAAG,CAAC,EAAEQ,CAAC,IAAI,CAAC,EAAE,EAAEA,CAAC,EAAE;MAC7C,MAAMC,CAAC,GAAGZ,QAAQ,CAACW,CAAC,CAAC;MACrB,IAAIC,CAAC,KAAKX,OAAO,EAAE;QACjBI,YAAY,IAAI,CAAC;MACnB,CAAC,MAAM,IAAIO,CAAC,KAAKN,eAAe,EAAE;QAChC,IAAID,YAAY,KAAK,CAAC,EAAE;UACtB,OAAOM,CAAC;QACV;QACAN,YAAY,IAAI,CAAC;MACnB;IACF;EACF;EAEA,OAAO,CAAC,CAAC;AACX;AAEA,SAASG,aAAaA,CAACP,OAAgB,EAAW;EAChD,MAAMY,eAAmC,GAAGhB,aAAa;EACzD,OAAOgB,eAAe,CAACC,QAAQ,CAACb,OAAO,CAAC;AAC1C;AAEA,SAASM,kBAAkBA,CAACN,OAAgB,EAAW;EACrD,QAAQA,OAAO;IACb,KAAK,GAAG;MACN,OAAO,GAAG;IACZ,KAAK,GAAG;MACN,OAAO,GAAG;IACZ,KAAK,GAAG;MACN,OAAO,GAAG;IACZ,KAAK,GAAG;MACN,OAAO,GAAG;IACZ;MACE,MAAM,IAAIc,KAAK,CAAE,yBAAwBd,OAAQ,EAAC,CAAC;EAAC;AAE1D"}
1
+ {"version":3,"file":"matchBrackets.js","names":["LEFT_BRACKETS","RIGHT_BRACKETS","findMatchingBracketPosition","contents","bracket","offset","firstBracketPos","indexOf","stackCounter","matchingBracket","getMatchingBracket","isLeftBracket","contentsLength","length","i","c","leftBracketList","includes","Error"],"sources":["../../src/utils/matchBrackets.ts"],"sourcesContent":["const LEFT_BRACKETS = ['(', '{'] as const;\nconst RIGHT_BRACKETS = [')', '}'] as const;\n\ntype LeftBracket = (typeof LEFT_BRACKETS)[number];\ntype RightBracket = (typeof RIGHT_BRACKETS)[number];\ntype Bracket = LeftBracket | RightBracket;\n\nexport function findMatchingBracketPosition(\n contents: string,\n bracket: Bracket,\n offset: number = 0\n): number {\n // search first occurrence of `bracket`\n const firstBracketPos = contents.indexOf(bracket, offset);\n if (firstBracketPos < 0) {\n return -1;\n }\n\n let stackCounter = 0;\n const matchingBracket = getMatchingBracket(bracket);\n\n if (isLeftBracket(bracket)) {\n const contentsLength = contents.length;\n // search forward\n for (let i = firstBracketPos + 1; i < contentsLength; ++i) {\n const c = contents[i];\n if (c === bracket) {\n stackCounter += 1;\n } else if (c === matchingBracket) {\n if (stackCounter === 0) {\n return i;\n }\n stackCounter -= 1;\n }\n }\n } else {\n // search backward\n for (let i = firstBracketPos - 1; i >= 0; --i) {\n const c = contents[i];\n if (c === bracket) {\n stackCounter += 1;\n } else if (c === matchingBracket) {\n if (stackCounter === 0) {\n return i;\n }\n stackCounter -= 1;\n }\n }\n }\n\n return -1;\n}\n\nfunction isLeftBracket(bracket: Bracket): boolean {\n const leftBracketList: readonly Bracket[] = LEFT_BRACKETS;\n return leftBracketList.includes(bracket);\n}\n\nfunction getMatchingBracket(bracket: Bracket): Bracket {\n switch (bracket) {\n case '(':\n return ')';\n case ')':\n return '(';\n case '{':\n return '}';\n case '}':\n return '{';\n default:\n throw new Error(`Unsupported bracket - ${bracket}`);\n }\n}\n"],"mappings":";;;;;;AAAA,MAAMA,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,CAAU;AACzC,MAAMC,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,CAAU;AAMnC,SAASC,2BAA2BA,CACzCC,QAAgB,EAChBC,OAAgB,EAChBC,MAAc,GAAG,CAAC,EACV;EACR;EACA,MAAMC,eAAe,GAAGH,QAAQ,CAACI,OAAO,CAACH,OAAO,EAAEC,MAAM,CAAC;EACzD,IAAIC,eAAe,GAAG,CAAC,EAAE;IACvB,OAAO,CAAC,CAAC;EACX;EAEA,IAAIE,YAAY,GAAG,CAAC;EACpB,MAAMC,eAAe,GAAGC,kBAAkB,CAACN,OAAO,CAAC;EAEnD,IAAIO,aAAa,CAACP,OAAO,CAAC,EAAE;IAC1B,MAAMQ,cAAc,GAAGT,QAAQ,CAACU,MAAM;IACtC;IACA,KAAK,IAAIC,CAAC,GAAGR,eAAe,GAAG,CAAC,EAAEQ,CAAC,GAAGF,cAAc,EAAE,EAAEE,CAAC,EAAE;MACzD,MAAMC,CAAC,GAAGZ,QAAQ,CAACW,CAAC,CAAC;MACrB,IAAIC,CAAC,KAAKX,OAAO,EAAE;QACjBI,YAAY,IAAI,CAAC;MACnB,CAAC,MAAM,IAAIO,CAAC,KAAKN,eAAe,EAAE;QAChC,IAAID,YAAY,KAAK,CAAC,EAAE;UACtB,OAAOM,CAAC;QACV;QACAN,YAAY,IAAI,CAAC;MACnB;IACF;EACF,CAAC,MAAM;IACL;IACA,KAAK,IAAIM,CAAC,GAAGR,eAAe,GAAG,CAAC,EAAEQ,CAAC,IAAI,CAAC,EAAE,EAAEA,CAAC,EAAE;MAC7C,MAAMC,CAAC,GAAGZ,QAAQ,CAACW,CAAC,CAAC;MACrB,IAAIC,CAAC,KAAKX,OAAO,EAAE;QACjBI,YAAY,IAAI,CAAC;MACnB,CAAC,MAAM,IAAIO,CAAC,KAAKN,eAAe,EAAE;QAChC,IAAID,YAAY,KAAK,CAAC,EAAE;UACtB,OAAOM,CAAC;QACV;QACAN,YAAY,IAAI,CAAC;MACnB;IACF;EACF;EAEA,OAAO,CAAC,CAAC;AACX;AAEA,SAASG,aAAaA,CAACP,OAAgB,EAAW;EAChD,MAAMY,eAAmC,GAAGhB,aAAa;EACzD,OAAOgB,eAAe,CAACC,QAAQ,CAACb,OAAO,CAAC;AAC1C;AAEA,SAASM,kBAAkBA,CAACN,OAAgB,EAAW;EACrD,QAAQA,OAAO;IACb,KAAK,GAAG;MACN,OAAO,GAAG;IACZ,KAAK,GAAG;MACN,OAAO,GAAG;IACZ,KAAK,GAAG;MACN,OAAO,GAAG;IACZ,KAAK,GAAG;MACN,OAAO,GAAG;IACZ;MACE,MAAM,IAAIc,KAAK,CAAE,yBAAwBd,OAAQ,EAAC,CAAC;EAAC;AAE1D"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-resolver.js","names":["_assert","data","_interopRequireDefault","require","_findUp","path","_interopRequireWildcard","_resolveFrom","_errors","_modules","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","pluginFileName","exports","findUpPackageJson","root","packageJson","findUp","sync","cwd","assert","resolvePluginForModule","projectRoot","modulePath","resolved","resolveFrom","silent","PluginError","moduleNameIsDirectFileReference","isPluginFile","filePath","findUpPlugin","pathIsFilePath","name","match","_name$split","slashCount","split","sep","length","startsWith","resolveExpoPluginFile","pluginModuleFile","fileExists","moduleRoot","dirname","pluginFile","normalizeStaticPlugin","plugin","Array","isArray","undefined","assertInternalProjectRoot","resolveConfigPluginFunction","pluginReference","resolveConfigPluginFunctionWithInfo","result","requirePluginFile","error","SyntaxError","learnMoreLink","pluginError","message","stack","resolveConfigPluginExport"],"sources":["../../src/utils/plugin-resolver.ts"],"sourcesContent":["import assert from 'assert';\nimport findUp from 'find-up';\nimport * as path from 'path';\nimport resolveFrom from 'resolve-from';\n\nimport { ConfigPlugin, StaticPlugin } from '../Plugin.types';\nimport { PluginError } from './errors';\nimport { fileExists } from './modules';\n\n// Default plugin entry file name.\nexport const pluginFileName = 'app.plugin.js';\n\nfunction findUpPackageJson(root: string): string {\n const packageJson = findUp.sync('package.json', { cwd: root });\n assert(packageJson, `No package.json found for module \"${root}\"`);\n return packageJson;\n}\n\nexport function resolvePluginForModule(projectRoot: string, modulePath: string) {\n const resolved = resolveFrom.silent(projectRoot, modulePath);\n if (!resolved) {\n throw new PluginError(\n `Failed to resolve plugin for module \"${modulePath}\" relative to \"${projectRoot}\"`,\n 'PLUGIN_NOT_FOUND'\n );\n }\n // If the modulePath is something like `@bacon/package/index.js` or `expo-foo/build/app`\n // then skip resolving the module `app.plugin.js`\n if (moduleNameIsDirectFileReference(modulePath)) {\n return { isPluginFile: false, filePath: resolved };\n }\n return findUpPlugin(resolved);\n}\n\n// TODO: Test windows\nfunction pathIsFilePath(name: string): boolean {\n // Matches lines starting with: . / ~/\n return !!name.match(/^(\\.|~\\/|\\/)/g);\n}\n\nexport function moduleNameIsDirectFileReference(name: string): boolean {\n if (pathIsFilePath(name)) {\n return true;\n }\n\n const slashCount = name.split(path.sep)?.length;\n // Orgs (like @expo/config ) should have more than one slash to be a direct file.\n if (name.startsWith('@')) {\n return slashCount > 2;\n }\n\n // Regular packages should be considered direct reference if they have more than one slash.\n return slashCount > 1;\n}\n\nfunction resolveExpoPluginFile(root: string): string | null {\n // Find the expo plugin root file\n const pluginModuleFile = resolveFrom.silent(\n root,\n // use ./ so it isn't resolved as a node module\n `./${pluginFileName}`\n );\n\n // If the default expo plugin file exists use it.\n if (pluginModuleFile && fileExists(pluginModuleFile)) {\n return pluginModuleFile;\n }\n return null;\n}\n\nfunction findUpPlugin(root: string): { filePath: string; isPluginFile: boolean } {\n // Get the closest package.json to the node module\n const packageJson = findUpPackageJson(root);\n // resolve the root folder for the node module\n const moduleRoot = path.dirname(packageJson);\n // use whatever the initial resolved file was ex: `node_modules/my-package/index.js` or `./something.js`\n const pluginFile = resolveExpoPluginFile(moduleRoot);\n return { filePath: pluginFile ?? root, isPluginFile: !!pluginFile };\n}\n\nexport function normalizeStaticPlugin(plugin: StaticPlugin | ConfigPlugin | string): StaticPlugin {\n if (Array.isArray(plugin)) {\n assert(\n plugin.length > 0 && plugin.length < 3,\n `Wrong number of arguments provided for static config plugin, expected either 1 or 2, got ${plugin.length}`\n );\n return plugin;\n }\n return [plugin, undefined];\n}\n\nexport function assertInternalProjectRoot(projectRoot?: string): asserts projectRoot {\n assert(\n projectRoot,\n `Unexpected: Config \\`_internal.projectRoot\\` isn't defined by expo-cli, this is a bug.`\n );\n}\n\n// Resolve the module function and assert type\nexport function resolveConfigPluginFunction(projectRoot: string, pluginReference: string) {\n const { plugin } = resolveConfigPluginFunctionWithInfo(projectRoot, pluginReference);\n return plugin;\n}\n\n// Resolve the module function and assert type\nexport function resolveConfigPluginFunctionWithInfo(projectRoot: string, pluginReference: string) {\n const { filePath: pluginFile, isPluginFile } = resolvePluginForModule(\n projectRoot,\n pluginReference\n );\n let result: any;\n try {\n result = requirePluginFile(pluginFile);\n } catch (error) {\n if (error instanceof SyntaxError) {\n const learnMoreLink = `Learn more: https://docs.expo.dev/guides/config-plugins/#creating-a-plugin`;\n // If the plugin reference is a node module, and that node module has a syntax error, then it probably doesn't have an official config plugin.\n if (!isPluginFile && !moduleNameIsDirectFileReference(pluginReference)) {\n const pluginError = new PluginError(\n `Package \"${pluginReference}\" does not contain a valid config plugin.\\n${learnMoreLink}\\n\\n${error.message}`,\n 'INVALID_PLUGIN_IMPORT'\n );\n pluginError.stack = error.stack;\n throw pluginError;\n }\n }\n throw error;\n }\n\n const plugin = resolveConfigPluginExport({\n plugin: result,\n pluginFile,\n pluginReference,\n isPluginFile,\n });\n return { plugin, pluginFile, pluginReference, isPluginFile };\n}\n\n/**\n * - Resolve the exported contents of an Expo config (be it default or module.exports)\n * - Assert no promise exports\n * - Return config type\n * - Serialize config\n *\n * @param props.plugin plugin results\n * @param props.pluginFile plugin file path\n * @param props.pluginReference the string used to reference the plugin\n * @param props.isPluginFile is file path from the app.plugin.js module root\n */\nexport function resolveConfigPluginExport({\n plugin,\n pluginFile,\n pluginReference,\n isPluginFile,\n}: {\n plugin: any;\n pluginFile: string;\n pluginReference: string;\n isPluginFile: boolean;\n}): ConfigPlugin<unknown> {\n if (plugin.default != null) {\n plugin = plugin.default;\n }\n if (typeof plugin !== 'function') {\n const learnMoreLink = `Learn more: https://docs.expo.dev/guides/config-plugins/#creating-a-plugin`;\n // If the plugin reference is a node module, and that node module does not export a function then it probably doesn't have a config plugin.\n if (!isPluginFile && !moduleNameIsDirectFileReference(pluginReference)) {\n throw new PluginError(\n `Package \"${pluginReference}\" does not contain a valid config plugin. Module must export a function from file: ${pluginFile}\\n${learnMoreLink}`,\n 'INVALID_PLUGIN_TYPE'\n );\n }\n throw new PluginError(\n `Plugin \"${pluginReference}\" must export a function from file: ${pluginFile}. ${learnMoreLink}`,\n 'INVALID_PLUGIN_TYPE'\n );\n }\n\n return plugin;\n}\n\nfunction requirePluginFile(filePath: string): any {\n try {\n return require(filePath);\n } catch (error) {\n // TODO: Improve error messages\n throw error;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"plugin-resolver.js","names":["_assert","data","_interopRequireDefault","require","_findUp","path","_interopRequireWildcard","_resolveFrom","_errors","_modules","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","pluginFileName","exports","findUpPackageJson","root","packageJson","findUp","sync","cwd","assert","resolvePluginForModule","projectRoot","modulePath","resolved","resolveFrom","silent","PluginError","moduleNameIsDirectFileReference","isPluginFile","filePath","findUpPlugin","pathIsFilePath","name","match","_name$split","slashCount","split","sep","length","startsWith","resolveExpoPluginFile","pluginModuleFile","fileExists","moduleRoot","dirname","pluginFile","normalizeStaticPlugin","plugin","Array","isArray","undefined","assertInternalProjectRoot","resolveConfigPluginFunction","pluginReference","resolveConfigPluginFunctionWithInfo","result","requirePluginFile","error","SyntaxError","learnMoreLink","pluginError","message","stack","resolveConfigPluginExport"],"sources":["../../src/utils/plugin-resolver.ts"],"sourcesContent":["import assert from 'assert';\nimport findUp from 'find-up';\nimport * as path from 'path';\nimport resolveFrom from 'resolve-from';\n\nimport { PluginError } from './errors';\nimport { fileExists } from './modules';\nimport { ConfigPlugin, StaticPlugin } from '../Plugin.types';\n\n// Default plugin entry file name.\nexport const pluginFileName = 'app.plugin.js';\n\nfunction findUpPackageJson(root: string): string {\n const packageJson = findUp.sync('package.json', { cwd: root });\n assert(packageJson, `No package.json found for module \"${root}\"`);\n return packageJson;\n}\n\nexport function resolvePluginForModule(projectRoot: string, modulePath: string) {\n const resolved = resolveFrom.silent(projectRoot, modulePath);\n if (!resolved) {\n throw new PluginError(\n `Failed to resolve plugin for module \"${modulePath}\" relative to \"${projectRoot}\"`,\n 'PLUGIN_NOT_FOUND'\n );\n }\n // If the modulePath is something like `@bacon/package/index.js` or `expo-foo/build/app`\n // then skip resolving the module `app.plugin.js`\n if (moduleNameIsDirectFileReference(modulePath)) {\n return { isPluginFile: false, filePath: resolved };\n }\n return findUpPlugin(resolved);\n}\n\n// TODO: Test windows\nfunction pathIsFilePath(name: string): boolean {\n // Matches lines starting with: . / ~/\n return !!name.match(/^(\\.|~\\/|\\/)/g);\n}\n\nexport function moduleNameIsDirectFileReference(name: string): boolean {\n if (pathIsFilePath(name)) {\n return true;\n }\n\n const slashCount = name.split(path.sep)?.length;\n // Orgs (like @expo/config ) should have more than one slash to be a direct file.\n if (name.startsWith('@')) {\n return slashCount > 2;\n }\n\n // Regular packages should be considered direct reference if they have more than one slash.\n return slashCount > 1;\n}\n\nfunction resolveExpoPluginFile(root: string): string | null {\n // Find the expo plugin root file\n const pluginModuleFile = resolveFrom.silent(\n root,\n // use ./ so it isn't resolved as a node module\n `./${pluginFileName}`\n );\n\n // If the default expo plugin file exists use it.\n if (pluginModuleFile && fileExists(pluginModuleFile)) {\n return pluginModuleFile;\n }\n return null;\n}\n\nfunction findUpPlugin(root: string): { filePath: string; isPluginFile: boolean } {\n // Get the closest package.json to the node module\n const packageJson = findUpPackageJson(root);\n // resolve the root folder for the node module\n const moduleRoot = path.dirname(packageJson);\n // use whatever the initial resolved file was ex: `node_modules/my-package/index.js` or `./something.js`\n const pluginFile = resolveExpoPluginFile(moduleRoot);\n return { filePath: pluginFile ?? root, isPluginFile: !!pluginFile };\n}\n\nexport function normalizeStaticPlugin(plugin: StaticPlugin | ConfigPlugin | string): StaticPlugin {\n if (Array.isArray(plugin)) {\n assert(\n plugin.length > 0 && plugin.length < 3,\n `Wrong number of arguments provided for static config plugin, expected either 1 or 2, got ${plugin.length}`\n );\n return plugin;\n }\n return [plugin, undefined];\n}\n\nexport function assertInternalProjectRoot(projectRoot?: string): asserts projectRoot {\n assert(\n projectRoot,\n `Unexpected: Config \\`_internal.projectRoot\\` isn't defined by expo-cli, this is a bug.`\n );\n}\n\n// Resolve the module function and assert type\nexport function resolveConfigPluginFunction(projectRoot: string, pluginReference: string) {\n const { plugin } = resolveConfigPluginFunctionWithInfo(projectRoot, pluginReference);\n return plugin;\n}\n\n// Resolve the module function and assert type\nexport function resolveConfigPluginFunctionWithInfo(projectRoot: string, pluginReference: string) {\n const { filePath: pluginFile, isPluginFile } = resolvePluginForModule(\n projectRoot,\n pluginReference\n );\n let result: any;\n try {\n result = requirePluginFile(pluginFile);\n } catch (error) {\n if (error instanceof SyntaxError) {\n const learnMoreLink = `Learn more: https://docs.expo.dev/guides/config-plugins/#creating-a-plugin`;\n // If the plugin reference is a node module, and that node module has a syntax error, then it probably doesn't have an official config plugin.\n if (!isPluginFile && !moduleNameIsDirectFileReference(pluginReference)) {\n const pluginError = new PluginError(\n `Package \"${pluginReference}\" does not contain a valid config plugin.\\n${learnMoreLink}\\n\\n${error.message}`,\n 'INVALID_PLUGIN_IMPORT'\n );\n pluginError.stack = error.stack;\n throw pluginError;\n }\n }\n throw error;\n }\n\n const plugin = resolveConfigPluginExport({\n plugin: result,\n pluginFile,\n pluginReference,\n isPluginFile,\n });\n return { plugin, pluginFile, pluginReference, isPluginFile };\n}\n\n/**\n * - Resolve the exported contents of an Expo config (be it default or module.exports)\n * - Assert no promise exports\n * - Return config type\n * - Serialize config\n *\n * @param props.plugin plugin results\n * @param props.pluginFile plugin file path\n * @param props.pluginReference the string used to reference the plugin\n * @param props.isPluginFile is file path from the app.plugin.js module root\n */\nexport function resolveConfigPluginExport({\n plugin,\n pluginFile,\n pluginReference,\n isPluginFile,\n}: {\n plugin: any;\n pluginFile: string;\n pluginReference: string;\n isPluginFile: boolean;\n}): ConfigPlugin<unknown> {\n if (plugin.default != null) {\n plugin = plugin.default;\n }\n if (typeof plugin !== 'function') {\n const learnMoreLink = `Learn more: https://docs.expo.dev/guides/config-plugins/#creating-a-plugin`;\n // If the plugin reference is a node module, and that node module does not export a function then it probably doesn't have a config plugin.\n if (!isPluginFile && !moduleNameIsDirectFileReference(pluginReference)) {\n throw new PluginError(\n `Package \"${pluginReference}\" does not contain a valid config plugin. Module must export a function from file: ${pluginFile}\\n${learnMoreLink}`,\n 'INVALID_PLUGIN_TYPE'\n );\n }\n throw new PluginError(\n `Plugin \"${pluginReference}\" must export a function from file: ${pluginFile}. ${learnMoreLink}`,\n 'INVALID_PLUGIN_TYPE'\n );\n }\n\n return plugin;\n}\n\nfunction requirePluginFile(filePath: string): any {\n try {\n return require(filePath);\n } catch (error) {\n // TODO: Improve error messages\n throw error;\n }\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expo/config-plugins",
3
- "version": "7.3.1",
3
+ "version": "7.5.0",
4
4
  "description": "A library for Expo config plugins",
5
5
  "main": "build/index.js",
6
6
  "scripts": {
@@ -32,7 +32,8 @@
32
32
  "paths"
33
33
  ],
34
34
  "dependencies": {
35
- "@expo/config-types": "^49.0.0-alpha.1",
35
+ "@expo/config-types": "^50.0.0-alpha.1",
36
+ "@expo/fingerprint": "^0.2.0",
36
37
  "@expo/json-file": "~8.2.37",
37
38
  "@expo/plist": "^0.0.20",
38
39
  "@expo/sdk-runtime-versions": "^1.0.0",
@@ -56,5 +57,5 @@
56
57
  "publishConfig": {
57
58
  "access": "public"
58
59
  },
59
- "gitHead": "2240630a92eb79a4e4bf73e1439916c394876478"
60
+ "gitHead": "ee2c866ba3c7fbc35ff2a3e896041cf15d3bd7c5"
60
61
  }