@expo/cli 0.7.1 → 0.8.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 (179) hide show
  1. package/README.md +1 -1
  2. package/build/bin/cli +12 -3
  3. package/build/bin/cli.map +1 -1
  4. package/build/src/api/getExpoGoIntermediateCertificate.js +0 -2
  5. package/build/src/api/getExpoGoIntermediateCertificate.js.map +1 -1
  6. package/build/src/api/getProjectDevelopmentCertificate.js +0 -2
  7. package/build/src/api/getProjectDevelopmentCertificate.js.map +1 -1
  8. package/build/src/api/graphql/queries/AppQuery.js +39 -0
  9. package/build/src/api/graphql/queries/AppQuery.js.map +1 -0
  10. package/build/src/api/graphql/queries/UserQuery.js +10 -3
  11. package/build/src/api/graphql/queries/UserQuery.js.map +1 -1
  12. package/build/src/api/graphql/types/App.js +23 -0
  13. package/build/src/api/graphql/types/App.js.map +1 -0
  14. package/build/src/api/signManifest.js +0 -12
  15. package/build/src/api/signManifest.js.map +1 -1
  16. package/build/src/api/user/UserSettings.js.map +1 -1
  17. package/build/src/api/user/user.js.map +1 -1
  18. package/build/src/config/configAsync.js +3 -0
  19. package/build/src/config/configAsync.js.map +1 -1
  20. package/build/src/customize/customizeAsync.js +3 -0
  21. package/build/src/customize/customizeAsync.js.map +1 -1
  22. package/build/src/export/createBundles.js +7 -3
  23. package/build/src/export/createBundles.js.map +1 -1
  24. package/build/src/export/embed/exportEmbedAsync.js +24 -0
  25. package/build/src/export/embed/exportEmbedAsync.js.map +1 -0
  26. package/build/src/export/embed/index.js +117 -0
  27. package/build/src/export/embed/index.js.map +1 -0
  28. package/build/src/export/embed/resolveOptions.js +63 -0
  29. package/build/src/export/embed/resolveOptions.js.map +1 -0
  30. package/build/src/export/exportApp.js +56 -29
  31. package/build/src/export/exportApp.js.map +1 -1
  32. package/build/src/export/exportAssets.js +17 -0
  33. package/build/src/export/exportAssets.js.map +1 -1
  34. package/build/src/export/exportAsync.js +3 -0
  35. package/build/src/export/exportAsync.js.map +1 -1
  36. package/build/src/export/exportStaticAsync.js +179 -0
  37. package/build/src/export/exportStaticAsync.js.map +1 -0
  38. package/build/src/export/fork-bundleAsync.js +15 -42
  39. package/build/src/export/fork-bundleAsync.js.map +1 -1
  40. package/build/src/export/html.js +21 -0
  41. package/build/src/export/html.js.map +1 -0
  42. package/build/src/export/printBundleSizes.js +2 -2
  43. package/build/src/export/printBundleSizes.js.map +1 -1
  44. package/build/src/export/web/exportWebAsync.js +3 -0
  45. package/build/src/export/web/exportWebAsync.js.map +1 -1
  46. package/build/src/export/writeContents.js +5 -2
  47. package/build/src/export/writeContents.js.map +1 -1
  48. package/build/src/graphql/generated.js +462 -0
  49. package/build/src/graphql/generated.js.map +1 -0
  50. package/build/src/install/installAsync.js +3 -0
  51. package/build/src/install/installAsync.js.map +1 -1
  52. package/build/src/prebuild/clearNativeFolder.js +6 -1
  53. package/build/src/prebuild/clearNativeFolder.js.map +1 -1
  54. package/build/src/prebuild/ensureConfigAsync.js +1 -12
  55. package/build/src/prebuild/ensureConfigAsync.js.map +1 -1
  56. package/build/src/prebuild/prebuildAsync.js +7 -2
  57. package/build/src/prebuild/prebuildAsync.js.map +1 -1
  58. package/build/src/prebuild/resolveOptions.js +7 -8
  59. package/build/src/prebuild/resolveOptions.js.map +1 -1
  60. package/build/src/prebuild/resolveTemplate.js +5 -0
  61. package/build/src/prebuild/resolveTemplate.js.map +1 -1
  62. package/build/src/prebuild/updateFromTemplate.js +6 -1
  63. package/build/src/prebuild/updateFromTemplate.js.map +1 -1
  64. package/build/src/prebuild/validateTemplatePlatforms.js +48 -0
  65. package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -0
  66. package/build/src/run/android/runAndroidAsync.js +4 -0
  67. package/build/src/run/android/runAndroidAsync.js.map +1 -1
  68. package/build/src/run/ios/appleDevice/AppleDevice.js +25 -19
  69. package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -1
  70. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -1
  71. package/build/src/run/ios/options/resolveNativeScheme.js +13 -4
  72. package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -1
  73. package/build/src/run/ios/runIosAsync.js +3 -0
  74. package/build/src/run/ios/runIosAsync.js.map +1 -1
  75. package/build/src/run/startBundler.js +4 -0
  76. package/build/src/run/startBundler.js.map +1 -1
  77. package/build/src/start/doctor/Prerequisite.js.map +1 -1
  78. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +12 -6
  79. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -1
  80. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +1 -3
  81. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
  82. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +31 -5
  83. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -1
  84. package/build/src/start/doctor/typescript/updateTSConfig.js +6 -0
  85. package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -1
  86. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +1 -0
  87. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -1
  88. package/build/src/start/platforms/android/adb.js +1 -1
  89. package/build/src/start/platforms/android/adb.js.map +1 -1
  90. package/build/src/start/platforms/ios/AppleDeviceManager.js +1 -1
  91. package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -1
  92. package/build/src/start/server/BundlerDevServer.js +16 -2
  93. package/build/src/start/server/BundlerDevServer.js.map +1 -1
  94. package/build/src/start/server/DevServerManager.js +33 -2
  95. package/build/src/start/server/DevServerManager.js.map +1 -1
  96. package/build/src/start/server/getStaticRenderFunctions.js +166 -0
  97. package/build/src/start/server/getStaticRenderFunctions.js.map +1 -0
  98. package/build/src/start/server/metro/MetroBundlerDevServer.js +279 -3
  99. package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
  100. package/build/src/start/server/metro/MetroTerminalReporter.js +2 -34
  101. package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
  102. package/build/src/start/server/metro/externals.js +95 -0
  103. package/build/src/start/server/metro/externals.js.map +1 -0
  104. package/build/src/start/server/metro/getCssModulesFromBundler.js +77 -0
  105. package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -0
  106. package/build/src/start/server/metro/inspector-proxy/index.js +2 -2
  107. package/build/src/start/server/metro/inspector-proxy/index.js.map +1 -1
  108. package/build/src/start/server/metro/inspector-proxy/proxy.js +1 -3
  109. package/build/src/start/server/metro/inspector-proxy/proxy.js.map +1 -1
  110. package/build/src/start/server/metro/instantiateMetro.js +44 -48
  111. package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
  112. package/build/src/start/server/metro/metroErrorInterface.js +114 -0
  113. package/build/src/start/server/metro/metroErrorInterface.js.map +1 -0
  114. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +51 -0
  115. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -0
  116. package/build/src/start/server/metro/resolveFromProject.js +26 -3
  117. package/build/src/start/server/metro/resolveFromProject.js.map +1 -1
  118. package/build/src/start/server/metro/router.js +4 -0
  119. package/build/src/start/server/metro/router.js.map +1 -1
  120. package/build/src/start/server/metro/runServer-fork.js +108 -0
  121. package/build/src/start/server/metro/runServer-fork.js.map +1 -0
  122. package/build/src/start/server/metro/symbolicate.js +6 -0
  123. package/build/src/start/server/metro/symbolicate.js.map +1 -0
  124. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +70 -0
  125. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -0
  126. package/build/src/start/server/metro/withMetroMultiPlatform.js +181 -44
  127. package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
  128. package/build/src/start/server/middleware/ClassicManifestMiddleware.js +8 -1
  129. package/build/src/start/server/middleware/ClassicManifestMiddleware.js.map +1 -1
  130. package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -1
  131. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +38 -32
  132. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -1
  133. package/build/src/start/server/middleware/ManifestMiddleware.js +53 -19
  134. package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
  135. package/build/src/start/server/type-generation/expo-env.js +27 -0
  136. package/build/src/start/server/type-generation/expo-env.js.map +1 -0
  137. package/build/src/start/server/type-generation/index.js +49 -0
  138. package/build/src/start/server/type-generation/index.js.map +1 -0
  139. package/build/src/start/server/type-generation/routes.js +292 -0
  140. package/build/src/start/server/type-generation/routes.js.map +1 -0
  141. package/build/src/start/server/type-generation/tsconfig.js +89 -0
  142. package/build/src/start/server/type-generation/tsconfig.js.map +1 -0
  143. package/build/src/start/server/webTemplate.js +20 -4
  144. package/build/src/start/server/webTemplate.js.map +1 -1
  145. package/build/src/start/server/webpack/WebpackBundlerDevServer.js +4 -6
  146. package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
  147. package/build/src/start/startAsync.js +30 -8
  148. package/build/src/start/startAsync.js.map +1 -1
  149. package/build/src/utils/FileNotifier.js +11 -4
  150. package/build/src/utils/FileNotifier.js.map +1 -1
  151. package/build/src/utils/analytics/getMetroProperties.js +1 -1
  152. package/build/src/utils/analytics/getMetroProperties.js.map +1 -1
  153. package/build/src/utils/analytics/rudderstackClient.js +2 -2
  154. package/build/src/utils/codesigning.js +31 -7
  155. package/build/src/utils/codesigning.js.map +1 -1
  156. package/build/src/utils/env.js +3 -0
  157. package/build/src/utils/env.js.map +1 -1
  158. package/build/src/utils/mergeGitIgnorePaths.js +42 -0
  159. package/build/src/utils/mergeGitIgnorePaths.js.map +1 -1
  160. package/build/src/utils/nodeEnv.js +11 -0
  161. package/build/src/utils/nodeEnv.js.map +1 -0
  162. package/build/src/utils/resolveArgs.js +43 -0
  163. package/build/src/utils/resolveArgs.js.map +1 -1
  164. package/build/src/utils/template.js +21 -0
  165. package/build/src/utils/template.js.map +1 -0
  166. package/build/src/utils/tsconfig/evaluateTsConfig.js +61 -0
  167. package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -0
  168. package/build/src/utils/tsconfig/loadTsConfigPaths.js +69 -0
  169. package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -0
  170. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js +88 -0
  171. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js.map +1 -0
  172. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +41 -0
  173. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -0
  174. package/package.json +16 -8
  175. package/static/template/metro.config.js +4 -1
  176. package/build/src/api/getProject.js +0 -19
  177. package/build/src/api/getProject.js.map +0 -1
  178. package/build/src/api/graphql/generated.js +0 -113
  179. package/build/src/api/graphql/generated.js.map +0 -1
package/README.md CHANGED
@@ -20,7 +20,7 @@
20
20
  </p>
21
21
 
22
22
  <p align="center">
23
- <a aria-label="expo documentation" href="https://docs.expo.dev/workflow/expo-cli/">📚 Read the Documentation</a>
23
+ <a aria-label="expo documentation" href="https://docs.expo.dev/more/expo-cli/">📚 Read the Documentation</a>
24
24
  |
25
25
  <a aria-label="Contribute to Expo CLI" href="#contributing"><b>Contribute to Expo CLI</b></a>
26
26
  </p>
package/build/bin/cli CHANGED
@@ -39,6 +39,7 @@ if ((0, _getenv).boolish("EXPO_DEBUG", false)) {
39
39
  const defaultCmd = "start";
40
40
  const commands = {
41
41
  // Add a new command here
42
+ // NOTE(EvanBacon): Ensure every bundler-related command sets `NODE_ENV` as expected for the command.
42
43
  "run:ios": ()=>Promise.resolve().then(function() {
43
44
  return _interopRequireWildcard(require("../src/run/ios"));
44
45
  }).then((i)=>i.expoRunIos
@@ -74,6 +75,11 @@ const commands = {
74
75
  }).then((i)=>i.expoExportWeb
75
76
  )
76
77
  ,
78
+ "export:embed": ()=>Promise.resolve().then(function() {
79
+ return _interopRequireWildcard(require("../src/export/embed"));
80
+ }).then((i)=>i.expoExportEmbed
81
+ )
82
+ ,
77
83
  // Auxiliary commands
78
84
  install: ()=>Promise.resolve().then(function() {
79
85
  return _interopRequireWildcard(require("../src/install"));
@@ -121,7 +127,7 @@ const args = (0, _arg).default({
121
127
  });
122
128
  if (args["--version"]) {
123
129
  // Version is added in the build script.
124
- console.log("0.7.1");
130
+ console.log("0.8.0");
125
131
  process.exit(0);
126
132
  }
127
133
  if (args["--non-interactive"]) {
@@ -131,7 +137,10 @@ if (args["--non-interactive"]) {
131
137
  const isSubcommand = Boolean(commands[args._[0]]);
132
138
  // Handle `--help` flag
133
139
  if (!isSubcommand && args["--help"]) {
134
- const { login , logout , whoami , register , start , install , export: _export , config , customize , prebuild , "run:ios": runIos , "run:android": runAndroid , ...others } = commands;
140
+ const { login , logout , whoami , register , start , install , export: _export , config , customize , prebuild , "run:ios": runIos , "run:android": runAndroid , // NOTE(EvanBacon): Don't document this command as it's a temporary
141
+ // workaround until we can use `expo export` for all production bundling.
142
+ // https://github.com/expo/expo/pull/21396/files#r1121025873
143
+ "export:embed": exportEmbed_unused , ...others } = commands;
135
144
  console.log(_chalk.default`
136
145
  {bold Usage}
137
146
  {dim $} npx expo <command>
@@ -248,7 +257,7 @@ commands[command]().then((exec)=>{
248
257
  logEventAsync("action", {
249
258
  action: `expo ${command}`,
250
259
  source: "expo/cli",
251
- source_version: "0.7.1"
260
+ source_version: "0.8.0"
252
261
  });
253
262
  });
254
263
 
package/build/bin/cli.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../bin/cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport arg from 'arg';\nimport chalk from 'chalk';\nimport Debug from 'debug';\nimport { boolish } from 'getenv';\n\n// Setup before requiring `debug`.\nif (boolish('EXPO_DEBUG', false)) {\n Debug.enable('expo:*');\n} else if (Debug.enabled('expo:')) {\n process.env.EXPO_DEBUG = '1';\n}\n\nconst defaultCmd = 'start';\n\nexport type Command = (argv?: string[]) => void;\n\nconst commands: { [command: string]: () => Promise<Command> } = {\n // Add a new command here\n 'run:ios': () => import('../src/run/ios').then((i) => i.expoRunIos),\n 'run:android': () => import('../src/run/android').then((i) => i.expoRunAndroid),\n start: () => import('../src/start').then((i) => i.expoStart),\n prebuild: () => import('../src/prebuild').then((i) => i.expoPrebuild),\n config: () => import('../src/config').then((i) => i.expoConfig),\n export: () => import('../src/export').then((i) => i.expoExport),\n 'export:web': () => import('../src/export/web').then((i) => i.expoExportWeb),\n\n // Auxiliary commands\n install: () => import('../src/install').then((i) => i.expoInstall),\n customize: () => import('../src/customize').then((i) => i.expoCustomize),\n\n // Auth\n login: () => import('../src/login').then((i) => i.expoLogin),\n logout: () => import('../src/logout').then((i) => i.expoLogout),\n register: () => import('../src/register').then((i) => i.expoRegister),\n whoami: () => import('../src/whoami').then((i) => i.expoWhoami),\n};\n\nconst args = arg(\n {\n // Types\n '--version': Boolean,\n '--help': Boolean,\n // NOTE(EvanBacon): This is here to silence warnings from processes that\n // expect the global expo-cli.\n '--non-interactive': Boolean,\n\n // Aliases\n '-v': '--version',\n '-h': '--help',\n },\n {\n permissive: true,\n }\n);\n\nif (args['--version']) {\n // Version is added in the build script.\n console.log(process.env.__EXPO_VERSION);\n process.exit(0);\n}\n\nif (args['--non-interactive']) {\n console.warn(chalk.yellow` {bold --non-interactive} is not supported, use {bold $CI=1} instead`);\n}\n\n// Check if we are running `npx expo <subcommand>` or `npx expo`\nconst isSubcommand = Boolean(commands[args._[0]]);\n\n// Handle `--help` flag\nif (!isSubcommand && args['--help']) {\n const {\n login,\n logout,\n whoami,\n register,\n start,\n install,\n export: _export,\n config,\n customize,\n prebuild,\n 'run:ios': runIos,\n 'run:android': runAndroid,\n ...others\n } = commands;\n\n console.log(chalk`\n {bold Usage}\n {dim $} npx expo <command>\n\n {bold Commands}\n ${Object.keys({ start, export: _export, ...others }).join(', ')}\n ${Object.keys({ 'run:ios': runIos, 'run:android': runAndroid, prebuild }).join(', ')}\n ${Object.keys({ install, customize, config }).join(', ')}\n {dim ${Object.keys({ login, logout, whoami, register }).join(', ')}}\n\n {bold Options}\n --version, -v Version number\n --help, -h Usage info\n\n For more info run a command with the {bold --help} flag\n {dim $} npx expo start --help\n`);\n\n process.exit(0);\n}\n\n// NOTE(EvanBacon): Squat some directory names to help with migration,\n// users can still use folders named \"send\" or \"eject\" by using the fully qualified `npx expo start ./send`.\nif (!isSubcommand) {\n const migrationMap: Record<string, string> = {\n init: 'npx create-expo-app',\n eject: 'npx expo prebuild',\n web: 'npx expo start --web',\n 'start:web': 'npx expo start --web',\n 'build:ios': 'eas build -p ios',\n 'build:android': 'eas build -p android',\n 'client:install:ios': 'npx expo start --ios',\n 'client:install:android': 'npx expo start --android',\n doctor: 'npx expo-doctor',\n upgrade: 'expo-cli upgrade',\n 'customize:web': 'npx expo customize',\n\n publish: 'eas update',\n 'publish:set': 'eas update',\n 'publish:rollback': 'eas update',\n 'publish:history': 'eas update',\n 'publish:details': 'eas update',\n\n 'build:web': 'npx expo export:web',\n\n 'credentials:manager': `eas credentials`,\n 'fetch:ios:certs': `eas credentials`,\n 'fetch:android:keystore': `eas credentials`,\n 'fetch:android:hashes': `eas credentials`,\n 'fetch:android:upload-cert': `eas credentials`,\n 'push:android:upload': `eas credentials`,\n 'push:android:show': `eas credentials`,\n 'push:android:clear': `eas credentials`,\n url: `eas build:list`,\n 'url:ipa': `eas build:list`,\n 'url:apk': `eas build:list`,\n webhooks: `eas webhook`,\n 'webhooks:add': `eas webhook:create`,\n 'webhooks:remove': `eas webhook:delete`,\n 'webhooks:update': `eas webhook:update`,\n\n 'build:status': `eas build:list`,\n 'upload:android': `eas submit -p android`,\n 'upload:ios': `eas submit -p ios`,\n };\n\n // TODO: Log telemetry about invalid command used.\n const subcommand = args._[0];\n if (subcommand in migrationMap) {\n const replacement = migrationMap[subcommand];\n console.log();\n console.log(\n chalk.yellow` {gray $} {bold expo ${subcommand}} is not supported in the local CLI, please use {bold ${replacement}} instead`\n );\n console.log();\n process.exit(1);\n }\n const deprecated = ['send', 'client:ios'];\n if (deprecated.includes(subcommand)) {\n console.log();\n console.log(chalk.yellow` {gray $} {bold expo ${subcommand}} is deprecated`);\n console.log();\n process.exit(1);\n }\n}\n\nconst command = isSubcommand ? args._[0] : defaultCmd;\nconst commandArgs = isSubcommand ? args._.slice(1) : args._;\n\n// Push the help flag to the subcommand args.\nif (args['--help']) {\n commandArgs.push('--help');\n}\n\n// Install exit hooks\nprocess.on('SIGINT', () => process.exit(0));\nprocess.on('SIGTERM', () => process.exit(0));\n\ncommands[command]().then((exec) => {\n exec(commandArgs);\n\n // NOTE(EvanBacon): Track some basic telemetry events indicating the command\n // that was run. This can be disabled with the $EXPO_NO_TELEMETRY environment variable.\n // We do this to determine how well deprecations are going before removing a command.\n const { logEventAsync } =\n require('../src/utils/analytics/rudderstackClient') as typeof import('../src/utils/analytics/rudderstackClient');\n logEventAsync('action', {\n action: `expo ${command}`,\n source: 'expo/cli',\n source_version: process.env.__EXPO_VERSION,\n });\n});\n"],"names":["boolish","Debug","enable","enabled","process","env","EXPO_DEBUG","defaultCmd","commands","then","i","expoRunIos","expoRunAndroid","start","expoStart","prebuild","expoPrebuild","config","expoConfig","export","expoExport","expoExportWeb","install","expoInstall","customize","expoCustomize","login","expoLogin","logout","expoLogout","register","expoRegister","whoami","expoWhoami","args","arg","Boolean","permissive","console","log","__EXPO_VERSION","exit","warn","chalk","yellow","isSubcommand","_","_export","runIos","runAndroid","others","Object","keys","join","migrationMap","init","eject","web","doctor","upgrade","publish","url","webhooks","subcommand","replacement","deprecated","includes","command","commandArgs","slice","push","on","exec","logEventAsync","require","action","source","source_version"],"mappings":"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"}
1
+ {"version":3,"sources":["../../bin/cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport arg from 'arg';\nimport chalk from 'chalk';\nimport Debug from 'debug';\nimport { boolish } from 'getenv';\n\n// Setup before requiring `debug`.\nif (boolish('EXPO_DEBUG', false)) {\n Debug.enable('expo:*');\n} else if (Debug.enabled('expo:')) {\n process.env.EXPO_DEBUG = '1';\n}\n\nconst defaultCmd = 'start';\n\nexport type Command = (argv?: string[]) => void;\n\nconst commands: { [command: string]: () => Promise<Command> } = {\n // Add a new command here\n // NOTE(EvanBacon): Ensure every bundler-related command sets `NODE_ENV` as expected for the command.\n 'run:ios': () => import('../src/run/ios').then((i) => i.expoRunIos),\n 'run:android': () => import('../src/run/android').then((i) => i.expoRunAndroid),\n start: () => import('../src/start').then((i) => i.expoStart),\n prebuild: () => import('../src/prebuild').then((i) => i.expoPrebuild),\n config: () => import('../src/config').then((i) => i.expoConfig),\n export: () => import('../src/export').then((i) => i.expoExport),\n 'export:web': () => import('../src/export/web').then((i) => i.expoExportWeb),\n 'export:embed': () => import('../src/export/embed').then((i) => i.expoExportEmbed),\n\n // Auxiliary commands\n install: () => import('../src/install').then((i) => i.expoInstall),\n customize: () => import('../src/customize').then((i) => i.expoCustomize),\n\n // Auth\n login: () => import('../src/login').then((i) => i.expoLogin),\n logout: () => import('../src/logout').then((i) => i.expoLogout),\n register: () => import('../src/register').then((i) => i.expoRegister),\n whoami: () => import('../src/whoami').then((i) => i.expoWhoami),\n};\n\nconst args = arg(\n {\n // Types\n '--version': Boolean,\n '--help': Boolean,\n // NOTE(EvanBacon): This is here to silence warnings from processes that\n // expect the global expo-cli.\n '--non-interactive': Boolean,\n\n // Aliases\n '-v': '--version',\n '-h': '--help',\n },\n {\n permissive: true,\n }\n);\n\nif (args['--version']) {\n // Version is added in the build script.\n console.log(process.env.__EXPO_VERSION);\n process.exit(0);\n}\n\nif (args['--non-interactive']) {\n console.warn(chalk.yellow` {bold --non-interactive} is not supported, use {bold $CI=1} instead`);\n}\n\n// Check if we are running `npx expo <subcommand>` or `npx expo`\nconst isSubcommand = Boolean(commands[args._[0]]);\n\n// Handle `--help` flag\nif (!isSubcommand && args['--help']) {\n const {\n login,\n logout,\n whoami,\n register,\n start,\n install,\n export: _export,\n config,\n customize,\n prebuild,\n 'run:ios': runIos,\n 'run:android': runAndroid,\n // NOTE(EvanBacon): Don't document this command as it's a temporary\n // workaround until we can use `expo export` for all production bundling.\n // https://github.com/expo/expo/pull/21396/files#r1121025873\n 'export:embed': exportEmbed_unused,\n ...others\n } = commands;\n\n console.log(chalk`\n {bold Usage}\n {dim $} npx expo <command>\n\n {bold Commands}\n ${Object.keys({ start, export: _export, ...others }).join(', ')}\n ${Object.keys({ 'run:ios': runIos, 'run:android': runAndroid, prebuild }).join(', ')}\n ${Object.keys({ install, customize, config }).join(', ')}\n {dim ${Object.keys({ login, logout, whoami, register }).join(', ')}}\n\n {bold Options}\n --version, -v Version number\n --help, -h Usage info\n\n For more info run a command with the {bold --help} flag\n {dim $} npx expo start --help\n`);\n\n process.exit(0);\n}\n\n// NOTE(EvanBacon): Squat some directory names to help with migration,\n// users can still use folders named \"send\" or \"eject\" by using the fully qualified `npx expo start ./send`.\nif (!isSubcommand) {\n const migrationMap: Record<string, string> = {\n init: 'npx create-expo-app',\n eject: 'npx expo prebuild',\n web: 'npx expo start --web',\n 'start:web': 'npx expo start --web',\n 'build:ios': 'eas build -p ios',\n 'build:android': 'eas build -p android',\n 'client:install:ios': 'npx expo start --ios',\n 'client:install:android': 'npx expo start --android',\n doctor: 'npx expo-doctor',\n upgrade: 'expo-cli upgrade',\n 'customize:web': 'npx expo customize',\n\n publish: 'eas update',\n 'publish:set': 'eas update',\n 'publish:rollback': 'eas update',\n 'publish:history': 'eas update',\n 'publish:details': 'eas update',\n\n 'build:web': 'npx expo export:web',\n\n 'credentials:manager': `eas credentials`,\n 'fetch:ios:certs': `eas credentials`,\n 'fetch:android:keystore': `eas credentials`,\n 'fetch:android:hashes': `eas credentials`,\n 'fetch:android:upload-cert': `eas credentials`,\n 'push:android:upload': `eas credentials`,\n 'push:android:show': `eas credentials`,\n 'push:android:clear': `eas credentials`,\n url: `eas build:list`,\n 'url:ipa': `eas build:list`,\n 'url:apk': `eas build:list`,\n webhooks: `eas webhook`,\n 'webhooks:add': `eas webhook:create`,\n 'webhooks:remove': `eas webhook:delete`,\n 'webhooks:update': `eas webhook:update`,\n\n 'build:status': `eas build:list`,\n 'upload:android': `eas submit -p android`,\n 'upload:ios': `eas submit -p ios`,\n };\n\n // TODO: Log telemetry about invalid command used.\n const subcommand = args._[0];\n if (subcommand in migrationMap) {\n const replacement = migrationMap[subcommand];\n console.log();\n console.log(\n chalk.yellow` {gray $} {bold expo ${subcommand}} is not supported in the local CLI, please use {bold ${replacement}} instead`\n );\n console.log();\n process.exit(1);\n }\n const deprecated = ['send', 'client:ios'];\n if (deprecated.includes(subcommand)) {\n console.log();\n console.log(chalk.yellow` {gray $} {bold expo ${subcommand}} is deprecated`);\n console.log();\n process.exit(1);\n }\n}\n\nconst command = isSubcommand ? args._[0] : defaultCmd;\nconst commandArgs = isSubcommand ? args._.slice(1) : args._;\n\n// Push the help flag to the subcommand args.\nif (args['--help']) {\n commandArgs.push('--help');\n}\n\n// Install exit hooks\nprocess.on('SIGINT', () => process.exit(0));\nprocess.on('SIGTERM', () => process.exit(0));\n\ncommands[command]().then((exec) => {\n exec(commandArgs);\n\n // NOTE(EvanBacon): Track some basic telemetry events indicating the command\n // that was run. This can be disabled with the $EXPO_NO_TELEMETRY environment variable.\n // We do this to determine how well deprecations are going before removing a command.\n const { logEventAsync } =\n require('../src/utils/analytics/rudderstackClient') as typeof import('../src/utils/analytics/rudderstackClient');\n logEventAsync('action', {\n action: `expo ${command}`,\n source: 'expo/cli',\n source_version: process.env.__EXPO_VERSION,\n });\n});\n"],"names":["boolish","Debug","enable","enabled","process","env","EXPO_DEBUG","defaultCmd","commands","then","i","expoRunIos","expoRunAndroid","start","expoStart","prebuild","expoPrebuild","config","expoConfig","export","expoExport","expoExportWeb","expoExportEmbed","install","expoInstall","customize","expoCustomize","login","expoLogin","logout","expoLogout","register","expoRegister","whoami","expoWhoami","args","arg","Boolean","permissive","console","log","__EXPO_VERSION","exit","warn","chalk","yellow","isSubcommand","_","_export","runIos","runAndroid","exportEmbed_unused","others","Object","keys","join","migrationMap","init","eject","web","doctor","upgrade","publish","url","webhooks","subcommand","replacement","deprecated","includes","command","commandArgs","slice","push","on","exec","logEventAsync","require","action","source","source_version"],"mappings":"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"}
@@ -5,9 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  exports.getExpoGoIntermediateCertificateAsync = getExpoGoIntermediateCertificateAsync;
6
6
  var _errors = require("../utils/errors");
7
7
  var _client = require("./rest/client");
8
- var _actions = require("./user/actions");
9
8
  async function getExpoGoIntermediateCertificateAsync(easProjectId) {
10
- await (0, _actions).ensureLoggedInAsync();
11
9
  const response = await (0, _client).fetchAsync(`projects/${encodeURIComponent(easProjectId)}/development-certificates/expo-go-intermediate-certificate`, {
12
10
  method: "GET"
13
11
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/api/getExpoGoIntermediateCertificate.ts"],"sourcesContent":["import { CommandError } from '../utils/errors';\nimport { fetchAsync } from './rest/client';\nimport { ensureLoggedInAsync } from './user/actions';\n\nexport async function getExpoGoIntermediateCertificateAsync(easProjectId: string): Promise<string> {\n await ensureLoggedInAsync();\n const response = await fetchAsync(\n `projects/${encodeURIComponent(\n easProjectId\n )}/development-certificates/expo-go-intermediate-certificate`,\n {\n method: 'GET',\n }\n );\n if (!response.ok) {\n throw new CommandError('API', `Unexpected error from Expo servers: ${response.statusText}.`);\n }\n const buffer = await response.buffer();\n return buffer.toString('utf8');\n}\n"],"names":["getExpoGoIntermediateCertificateAsync","easProjectId","ensureLoggedInAsync","response","fetchAsync","encodeURIComponent","method","ok","CommandError","statusText","buffer","toString"],"mappings":"AAAA;;;;QAIsBA,qCAAqC,GAArCA,qCAAqC;AAJ9B,IAAA,OAAiB,WAAjB,iBAAiB,CAAA;AACnB,IAAA,OAAe,WAAf,eAAe,CAAA;AACN,IAAA,QAAgB,WAAhB,gBAAgB,CAAA;AAE7C,eAAeA,qCAAqC,CAACC,YAAoB,EAAmB;IACjG,MAAMC,CAAAA,GAAAA,QAAmB,AAAE,CAAA,oBAAF,EAAE,CAAC;IAC5B,MAAMC,QAAQ,GAAG,MAAMC,CAAAA,GAAAA,OAAU,AAOhC,CAAA,WAPgC,CAC/B,CAAC,SAAS,EAAEC,kBAAkB,CAC5BJ,YAAY,CACb,CAAC,0DAA0D,CAAC,EAC7D;QACEK,MAAM,EAAE,KAAK;KACd,CACF,AAAC;IACF,IAAI,CAACH,QAAQ,CAACI,EAAE,EAAE;QAChB,MAAM,IAAIC,OAAY,aAAA,CAAC,KAAK,EAAE,CAAC,oCAAoC,EAAEL,QAAQ,CAACM,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9F;IACD,MAAMC,MAAM,GAAG,MAAMP,QAAQ,CAACO,MAAM,EAAE,AAAC;IACvC,OAAOA,MAAM,CAACC,QAAQ,CAAC,MAAM,CAAC,CAAC;CAChC"}
1
+ {"version":3,"sources":["../../../src/api/getExpoGoIntermediateCertificate.ts"],"sourcesContent":["import { CommandError } from '../utils/errors';\nimport { fetchAsync } from './rest/client';\n\nexport async function getExpoGoIntermediateCertificateAsync(easProjectId: string): Promise<string> {\n const response = await fetchAsync(\n `projects/${encodeURIComponent(\n easProjectId\n )}/development-certificates/expo-go-intermediate-certificate`,\n {\n method: 'GET',\n }\n );\n if (!response.ok) {\n throw new CommandError('API', `Unexpected error from Expo servers: ${response.statusText}.`);\n }\n const buffer = await response.buffer();\n return buffer.toString('utf8');\n}\n"],"names":["getExpoGoIntermediateCertificateAsync","easProjectId","response","fetchAsync","encodeURIComponent","method","ok","CommandError","statusText","buffer","toString"],"mappings":"AAAA;;;;QAGsBA,qCAAqC,GAArCA,qCAAqC;AAH9B,IAAA,OAAiB,WAAjB,iBAAiB,CAAA;AACnB,IAAA,OAAe,WAAf,eAAe,CAAA;AAEnC,eAAeA,qCAAqC,CAACC,YAAoB,EAAmB;IACjG,MAAMC,QAAQ,GAAG,MAAMC,CAAAA,GAAAA,OAAU,AAOhC,CAAA,WAPgC,CAC/B,CAAC,SAAS,EAAEC,kBAAkB,CAC5BH,YAAY,CACb,CAAC,0DAA0D,CAAC,EAC7D;QACEI,MAAM,EAAE,KAAK;KACd,CACF,AAAC;IACF,IAAI,CAACH,QAAQ,CAACI,EAAE,EAAE;QAChB,MAAM,IAAIC,OAAY,aAAA,CAAC,KAAK,EAAE,CAAC,oCAAoC,EAAEL,QAAQ,CAACM,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9F;IACD,MAAMC,MAAM,GAAG,MAAMP,QAAQ,CAACO,MAAM,EAAE,AAAC;IACvC,OAAOA,MAAM,CAACC,QAAQ,CAAC,MAAM,CAAC,CAAC;CAChC"}
@@ -5,9 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  exports.getProjectDevelopmentCertificateAsync = getProjectDevelopmentCertificateAsync;
6
6
  var _errors = require("../utils/errors");
7
7
  var _client = require("./rest/client");
8
- var _actions = require("./user/actions");
9
8
  async function getProjectDevelopmentCertificateAsync(easProjectId, csrPEM) {
10
- await (0, _actions).ensureLoggedInAsync();
11
9
  const response = await (0, _client).fetchAsync(`projects/${encodeURIComponent(easProjectId)}/development-certificates`, {
12
10
  method: "POST",
13
11
  body: JSON.stringify({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/api/getProjectDevelopmentCertificate.ts"],"sourcesContent":["import { CommandError } from '../utils/errors';\nimport { fetchAsync } from './rest/client';\nimport { ensureLoggedInAsync } from './user/actions';\n\nexport async function getProjectDevelopmentCertificateAsync(\n easProjectId: string,\n csrPEM: string\n): Promise<string> {\n await ensureLoggedInAsync();\n const response = await fetchAsync(\n `projects/${encodeURIComponent(easProjectId)}/development-certificates`,\n {\n method: 'POST',\n body: JSON.stringify({\n csrPEM,\n }),\n }\n );\n if (!response.ok) {\n throw new CommandError('API', `Unexpected error from Expo servers: ${response.statusText}.`);\n }\n const buffer = await response.buffer();\n return buffer.toString('utf8');\n}\n"],"names":["getProjectDevelopmentCertificateAsync","easProjectId","csrPEM","ensureLoggedInAsync","response","fetchAsync","encodeURIComponent","method","body","JSON","stringify","ok","CommandError","statusText","buffer","toString"],"mappings":"AAAA;;;;QAIsBA,qCAAqC,GAArCA,qCAAqC;AAJ9B,IAAA,OAAiB,WAAjB,iBAAiB,CAAA;AACnB,IAAA,OAAe,WAAf,eAAe,CAAA;AACN,IAAA,QAAgB,WAAhB,gBAAgB,CAAA;AAE7C,eAAeA,qCAAqC,CACzDC,YAAoB,EACpBC,MAAc,EACG;IACjB,MAAMC,CAAAA,GAAAA,QAAmB,AAAE,CAAA,oBAAF,EAAE,CAAC;IAC5B,MAAMC,QAAQ,GAAG,MAAMC,CAAAA,GAAAA,OAAU,AAQhC,CAAA,WARgC,CAC/B,CAAC,SAAS,EAAEC,kBAAkB,CAACL,YAAY,CAAC,CAAC,yBAAyB,CAAC,EACvE;QACEM,MAAM,EAAE,MAAM;QACdC,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAC;YACnBR,MAAM;SACP,CAAC;KACH,CACF,AAAC;IACF,IAAI,CAACE,QAAQ,CAACO,EAAE,EAAE;QAChB,MAAM,IAAIC,OAAY,aAAA,CAAC,KAAK,EAAE,CAAC,oCAAoC,EAAER,QAAQ,CAACS,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9F;IACD,MAAMC,MAAM,GAAG,MAAMV,QAAQ,CAACU,MAAM,EAAE,AAAC;IACvC,OAAOA,MAAM,CAACC,QAAQ,CAAC,MAAM,CAAC,CAAC;CAChC"}
1
+ {"version":3,"sources":["../../../src/api/getProjectDevelopmentCertificate.ts"],"sourcesContent":["import { CommandError } from '../utils/errors';\nimport { fetchAsync } from './rest/client';\n\nexport async function getProjectDevelopmentCertificateAsync(\n easProjectId: string,\n csrPEM: string\n): Promise<string> {\n const response = await fetchAsync(\n `projects/${encodeURIComponent(easProjectId)}/development-certificates`,\n {\n method: 'POST',\n body: JSON.stringify({\n csrPEM,\n }),\n }\n );\n if (!response.ok) {\n throw new CommandError('API', `Unexpected error from Expo servers: ${response.statusText}.`);\n }\n const buffer = await response.buffer();\n return buffer.toString('utf8');\n}\n"],"names":["getProjectDevelopmentCertificateAsync","easProjectId","csrPEM","response","fetchAsync","encodeURIComponent","method","body","JSON","stringify","ok","CommandError","statusText","buffer","toString"],"mappings":"AAAA;;;;QAGsBA,qCAAqC,GAArCA,qCAAqC;AAH9B,IAAA,OAAiB,WAAjB,iBAAiB,CAAA;AACnB,IAAA,OAAe,WAAf,eAAe,CAAA;AAEnC,eAAeA,qCAAqC,CACzDC,YAAoB,EACpBC,MAAc,EACG;IACjB,MAAMC,QAAQ,GAAG,MAAMC,CAAAA,GAAAA,OAAU,AAQhC,CAAA,WARgC,CAC/B,CAAC,SAAS,EAAEC,kBAAkB,CAACJ,YAAY,CAAC,CAAC,yBAAyB,CAAC,EACvE;QACEK,MAAM,EAAE,MAAM;QACdC,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAC;YACnBP,MAAM;SACP,CAAC;KACH,CACF,AAAC;IACF,IAAI,CAACC,QAAQ,CAACO,EAAE,EAAE;QAChB,MAAM,IAAIC,OAAY,aAAA,CAAC,KAAK,EAAE,CAAC,oCAAoC,EAAER,QAAQ,CAACS,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9F;IACD,MAAMC,MAAM,GAAG,MAAMV,QAAQ,CAACU,MAAM,EAAE,AAAC;IACvC,OAAOA,MAAM,CAACC,QAAQ,CAAC,MAAM,CAAC,CAAC;CAChC"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ exports.AppQuery = void 0;
6
+ var _graphql = require("graphql");
7
+ var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
8
+ var _client = require("../client");
9
+ var _app = require("../types/App");
10
+ function _interopRequireDefault(obj) {
11
+ return obj && obj.__esModule ? obj : {
12
+ default: obj
13
+ };
14
+ }
15
+ const AppQuery = {
16
+ async byIdAsync (projectId) {
17
+ const data = await (0, _client).withErrorHandlingAsync(_client.graphqlClient.query(_graphqlTag.default`
18
+ query AppByIdQuery($appId: String!) {
19
+ app {
20
+ byId(appId: $appId) {
21
+ id
22
+ ...AppFragment
23
+ }
24
+ }
25
+ }
26
+ ${(0, _graphql).print(_app.AppFragmentNode)}
27
+ `, {
28
+ appId: projectId
29
+ }, {
30
+ additionalTypenames: [
31
+ "App"
32
+ ]
33
+ }).toPromise());
34
+ return data.app.byId;
35
+ }
36
+ };
37
+ exports.AppQuery = AppQuery;
38
+
39
+ //# sourceMappingURL=AppQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/api/graphql/queries/AppQuery.ts"],"sourcesContent":["import { print } from 'graphql';\nimport gql from 'graphql-tag';\n\nimport { AppByIdQuery } from '../../../graphql/generated';\nimport { graphqlClient, withErrorHandlingAsync } from '../client';\nimport { AppFragmentNode } from '../types/App';\n\nexport const AppQuery = {\n async byIdAsync(projectId: string): Promise<AppByIdQuery['app']['byId']> {\n const data = await withErrorHandlingAsync(\n graphqlClient\n .query<AppByIdQuery>(\n gql`\n query AppByIdQuery($appId: String!) {\n app {\n byId(appId: $appId) {\n id\n ...AppFragment\n }\n }\n }\n ${print(AppFragmentNode)}\n `,\n { appId: projectId },\n {\n additionalTypenames: ['App'],\n }\n )\n .toPromise()\n );\n return data.app.byId;\n },\n};\n"],"names":["AppQuery","byIdAsync","projectId","data","withErrorHandlingAsync","graphqlClient","query","gql","print","AppFragmentNode","appId","additionalTypenames","toPromise","app","byId"],"mappings":"AAAA;;;;;AAAsB,IAAA,QAAS,WAAT,SAAS,CAAA;AACf,IAAA,WAAa,kCAAb,aAAa,EAAA;AAGyB,IAAA,OAAW,WAAX,WAAW,CAAA;AACjC,IAAA,IAAc,WAAd,cAAc,CAAA;;;;;;AAEvC,MAAMA,QAAQ,GAAG;IACtB,MAAMC,SAAS,EAACC,SAAiB,EAAwC;QACvE,MAAMC,IAAI,GAAG,MAAMC,CAAAA,GAAAA,OAAsB,AAoBxC,CAAA,uBApBwC,CACvCC,OAAa,cAAA,CACVC,KAAK,CACJC,WAAG,QAAA,CAAC;;;;;;;;;YASF,EAAEC,CAAAA,GAAAA,QAAK,AAAiB,CAAA,MAAjB,CAACC,IAAe,gBAAA,CAAC,CAAC;UAC3B,CAAC,EACD;YAAEC,KAAK,EAAER,SAAS;SAAE,EACpB;YACES,mBAAmB,EAAE;gBAAC,KAAK;aAAC;SAC7B,CACF,CACAC,SAAS,EAAE,CACf,AAAC;QACF,OAAOT,IAAI,CAACU,GAAG,CAACC,IAAI,CAAC;KACtB;CACF,AAAC;QAzBWd,QAAQ,GAARA,QAAQ"}
@@ -17,7 +17,10 @@ const UserQuery = {
17
17
  meActor {
18
18
  __typename
19
19
  id
20
- ... on User {
20
+ ... on UserActor {
21
+ primaryAccount {
22
+ id
23
+ }
21
24
  username
22
25
  }
23
26
  ... on Robot {
@@ -25,9 +28,13 @@ const UserQuery = {
25
28
  }
26
29
  accounts {
27
30
  id
28
- name
31
+ users {
32
+ actor {
33
+ id
34
+ }
35
+ permissions
36
+ }
29
37
  }
30
- isExpoAdmin
31
38
  }
32
39
  }
33
40
  `, /* variables */ undefined, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/api/graphql/queries/UserQuery.ts"],"sourcesContent":["import gql from 'graphql-tag';\n\nimport { graphqlClient, withErrorHandlingAsync } from '../client';\nimport { CurrentUserQuery } from '../generated';\n\nexport const UserQuery = {\n async currentUserAsync(): Promise<CurrentUserQuery['meActor']> {\n const data = await withErrorHandlingAsync(\n graphqlClient\n .query<CurrentUserQuery>(\n gql`\n query CurrentUser {\n meActor {\n __typename\n id\n ... on User {\n username\n }\n ... on Robot {\n firstName\n }\n accounts {\n id\n name\n }\n isExpoAdmin\n }\n }\n `,\n /* variables */ undefined,\n {\n additionalTypenames: ['User'],\n }\n )\n .toPromise()\n );\n\n return data.meActor;\n },\n};\n"],"names":["UserQuery","currentUserAsync","data","withErrorHandlingAsync","graphqlClient","query","gql","undefined","additionalTypenames","toPromise","meActor"],"mappings":"AAAA;;;;;AAAgB,IAAA,WAAa,kCAAb,aAAa,EAAA;AAEyB,IAAA,OAAW,WAAX,WAAW,CAAA;;;;;;AAG1D,MAAMA,SAAS,GAAG;IACvB,MAAMC,gBAAgB,IAAyC;QAC7D,MAAMC,IAAI,GAAG,MAAMC,CAAAA,GAAAA,OAAsB,AA4BxC,CAAA,uBA5BwC,CACvCC,OAAa,cAAA,CACVC,KAAK,CACJC,WAAG,QAAA,CAAC;;;;;;;;;;;;;;;;;;UAkBJ,CAAC,EACD,eAAe,CAACC,SAAS,EACzB;YACEC,mBAAmB,EAAE;gBAAC,MAAM;aAAC;SAC9B,CACF,CACAC,SAAS,EAAE,CACf,AAAC;QAEF,OAAOP,IAAI,CAACQ,OAAO,CAAC;KACrB;CACF,AAAC;QAlCWV,SAAS,GAATA,SAAS"}
1
+ {"version":3,"sources":["../../../../../src/api/graphql/queries/UserQuery.ts"],"sourcesContent":["import gql from 'graphql-tag';\n\nimport { CurrentUserQuery } from '../../../graphql/generated';\nimport { graphqlClient, withErrorHandlingAsync } from '../client';\n\nexport const UserQuery = {\n async currentUserAsync(): Promise<CurrentUserQuery['meActor']> {\n const data = await withErrorHandlingAsync(\n graphqlClient\n .query<CurrentUserQuery>(\n gql`\n query CurrentUser {\n meActor {\n __typename\n id\n ... on UserActor {\n primaryAccount {\n id\n }\n username\n }\n ... on Robot {\n firstName\n }\n accounts {\n id\n users {\n actor {\n id\n }\n permissions\n }\n }\n }\n }\n `,\n /* variables */ undefined,\n {\n additionalTypenames: ['User'],\n }\n )\n .toPromise()\n );\n\n return data.meActor;\n },\n};\n"],"names":["UserQuery","currentUserAsync","data","withErrorHandlingAsync","graphqlClient","query","gql","undefined","additionalTypenames","toPromise","meActor"],"mappings":"AAAA;;;;;AAAgB,IAAA,WAAa,kCAAb,aAAa,EAAA;AAGyB,IAAA,OAAW,WAAX,WAAW,CAAA;;;;;;AAE1D,MAAMA,SAAS,GAAG;IACvB,MAAMC,gBAAgB,IAAyC;QAC7D,MAAMC,IAAI,GAAG,MAAMC,CAAAA,GAAAA,OAAsB,AAmCxC,CAAA,uBAnCwC,CACvCC,OAAa,cAAA,CACVC,KAAK,CACJC,WAAG,QAAA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;UAyBJ,CAAC,EACD,eAAe,CAACC,SAAS,EACzB;YACEC,mBAAmB,EAAE;gBAAC,MAAM;aAAC;SAC9B,CACF,CACAC,SAAS,EAAE,CACf,AAAC;QAEF,OAAOP,IAAI,CAACQ,OAAO,CAAC;KACrB;CACF,AAAC;QAzCWV,SAAS,GAATA,SAAS"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ exports.AppFragmentNode = void 0;
6
+ var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
7
+ function _interopRequireDefault(obj) {
8
+ return obj && obj.__esModule ? obj : {
9
+ default: obj
10
+ };
11
+ }
12
+ const AppFragmentNode = _graphqlTag.default`
13
+ fragment AppFragment on App {
14
+ id
15
+ scopeKey
16
+ ownerAccount {
17
+ id
18
+ }
19
+ }
20
+ `;
21
+ exports.AppFragmentNode = AppFragmentNode;
22
+
23
+ //# sourceMappingURL=App.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/api/graphql/types/App.ts"],"sourcesContent":["import gql from 'graphql-tag';\n\nexport const AppFragmentNode = gql`\n fragment AppFragment on App {\n id\n scopeKey\n ownerAccount {\n id\n }\n }\n`;\n"],"names":["AppFragmentNode","gql"],"mappings":"AAAA;;;;;AAAgB,IAAA,WAAa,kCAAb,aAAa,EAAA;;;;;;AAEtB,MAAMA,eAAe,GAAGC,WAAG,QAAA,CAAC;;;;;;;;AAQnC,CAAC,AAAC;QARWD,eAAe,GAAfA,eAAe"}
@@ -2,22 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- exports.signExpoGoManifestAsync = signExpoGoManifestAsync;
6
5
  exports.signClassicExpoGoManifestAsync = signClassicExpoGoManifestAsync;
7
6
  var _client = require("./rest/client");
8
7
  var _actions = require("./user/actions");
9
8
  var _user = require("./user/user");
10
- async function signExpoGoManifestAsync(manifest) {
11
- await (0, _actions).ensureLoggedInAsync();
12
- const response = await (0, _client).fetchAsync(`manifest/eas/sign`, {
13
- method: "POST",
14
- body: JSON.stringify({
15
- manifest
16
- })
17
- });
18
- const { data } = await response.json();
19
- return data.signature;
20
- }
21
9
  async function signClassicExpoGoManifestAsync(manifest) {
22
10
  await (0, _actions).ensureLoggedInAsync();
23
11
  var _owner;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/api/signManifest.ts"],"sourcesContent":["import { ExpoAppManifest, ExpoUpdatesManifest } from '@expo/config';\nimport { JSONObject } from '@expo/json-file';\n\nimport { fetchAsync } from './rest/client';\nimport { ensureLoggedInAsync } from './user/actions';\nimport { getActorDisplayName, getUserAsync } from './user/user';\n\n/** Sign an Expo Updates manifest to access secure features in sandboxed environments like Expo Go. */\nexport async function signExpoGoManifestAsync(manifest: ExpoUpdatesManifest): Promise<string> {\n await ensureLoggedInAsync();\n const response = await fetchAsync(`manifest/eas/sign`, {\n method: 'POST',\n body: JSON.stringify({\n manifest,\n }),\n });\n const { data } = await response.json();\n return data.signature;\n}\n\n/** Sign a classic manifest to access secure features in sandboxed environments like Expo Go. */\nexport async function signClassicExpoGoManifestAsync(\n manifest: Partial<ExpoAppManifest>\n): Promise<string> {\n await ensureLoggedInAsync();\n const res = await fetchAsync('manifest/sign', {\n method: 'POST',\n body: JSON.stringify({\n args: {\n remoteUsername: manifest.owner ?? getActorDisplayName(await getUserAsync()),\n remotePackageName: manifest.slug,\n },\n manifest: manifest as JSONObject,\n }),\n });\n const { data } = await res.json();\n return data.response;\n}\n"],"names":["signExpoGoManifestAsync","signClassicExpoGoManifestAsync","manifest","ensureLoggedInAsync","response","fetchAsync","method","body","JSON","stringify","data","json","signature","res","args","remoteUsername","owner","getActorDisplayName","getUserAsync","remotePackageName","slug"],"mappings":"AAAA;;;;QAQsBA,uBAAuB,GAAvBA,uBAAuB;QAavBC,8BAA8B,GAA9BA,8BAA8B;AAlBzB,IAAA,OAAe,WAAf,eAAe,CAAA;AACN,IAAA,QAAgB,WAAhB,gBAAgB,CAAA;AACF,IAAA,KAAa,WAAb,aAAa,CAAA;AAGxD,eAAeD,uBAAuB,CAACE,QAA6B,EAAmB;IAC5F,MAAMC,CAAAA,GAAAA,QAAmB,AAAE,CAAA,oBAAF,EAAE,CAAC;IAC5B,MAAMC,QAAQ,GAAG,MAAMC,CAAAA,GAAAA,OAAU,AAK/B,CAAA,WAL+B,CAAC,CAAC,iBAAiB,CAAC,EAAE;QACrDC,MAAM,EAAE,MAAM;QACdC,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAC;YACnBP,QAAQ;SACT,CAAC;KACH,CAAC,AAAC;IACH,MAAM,EAAEQ,IAAI,CAAA,EAAE,GAAG,MAAMN,QAAQ,CAACO,IAAI,EAAE,AAAC;IACvC,OAAOD,IAAI,CAACE,SAAS,CAAC;CACvB;AAGM,eAAeX,8BAA8B,CAClDC,QAAkC,EACjB;IACjB,MAAMC,CAAAA,GAAAA,QAAmB,AAAE,CAAA,oBAAF,EAAE,CAAC;QAKND,MAAc;IAJpC,MAAMW,GAAG,GAAG,MAAMR,CAAAA,GAAAA,OAAU,AAS1B,CAAA,WAT0B,CAAC,eAAe,EAAE;QAC5CC,MAAM,EAAE,MAAM;QACdC,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAC;YACnBK,IAAI,EAAE;gBACJC,cAAc,EAAEb,CAAAA,MAAc,GAAdA,QAAQ,CAACc,KAAK,YAAdd,MAAc,GAAIe,CAAAA,GAAAA,KAAmB,AAAsB,CAAA,oBAAtB,CAAC,MAAMC,CAAAA,GAAAA,KAAY,AAAE,CAAA,aAAF,EAAE,CAAC;gBAC3EC,iBAAiB,EAAEjB,QAAQ,CAACkB,IAAI;aACjC;YACDlB,QAAQ,EAAEA,QAAQ;SACnB,CAAC;KACH,CAAC,AAAC;IACH,MAAM,EAAEQ,IAAI,CAAA,EAAE,GAAG,MAAMG,GAAG,CAACF,IAAI,EAAE,AAAC;IAClC,OAAOD,IAAI,CAACN,QAAQ,CAAC;CACtB"}
1
+ {"version":3,"sources":["../../../src/api/signManifest.ts"],"sourcesContent":["import { ExpoAppManifest } from '@expo/config';\nimport { JSONObject } from '@expo/json-file';\n\nimport { fetchAsync } from './rest/client';\nimport { ensureLoggedInAsync } from './user/actions';\nimport { getActorDisplayName, getUserAsync } from './user/user';\n\n/** Sign a classic manifest to access secure features in sandboxed environments like Expo Go. */\nexport async function signClassicExpoGoManifestAsync(\n manifest: Partial<ExpoAppManifest>\n): Promise<string> {\n await ensureLoggedInAsync();\n const res = await fetchAsync('manifest/sign', {\n method: 'POST',\n body: JSON.stringify({\n args: {\n remoteUsername: manifest.owner ?? getActorDisplayName(await getUserAsync()),\n remotePackageName: manifest.slug,\n },\n manifest: manifest as JSONObject,\n }),\n });\n const { data } = await res.json();\n return data.response;\n}\n"],"names":["signClassicExpoGoManifestAsync","manifest","ensureLoggedInAsync","res","fetchAsync","method","body","JSON","stringify","args","remoteUsername","owner","getActorDisplayName","getUserAsync","remotePackageName","slug","data","json","response"],"mappings":"AAAA;;;;QAQsBA,8BAA8B,GAA9BA,8BAA8B;AALzB,IAAA,OAAe,WAAf,eAAe,CAAA;AACN,IAAA,QAAgB,WAAhB,gBAAgB,CAAA;AACF,IAAA,KAAa,WAAb,aAAa,CAAA;AAGxD,eAAeA,8BAA8B,CAClDC,QAAkC,EACjB;IACjB,MAAMC,CAAAA,GAAAA,QAAmB,AAAE,CAAA,oBAAF,EAAE,CAAC;QAKND,MAAc;IAJpC,MAAME,GAAG,GAAG,MAAMC,CAAAA,GAAAA,OAAU,AAS1B,CAAA,WAT0B,CAAC,eAAe,EAAE;QAC5CC,MAAM,EAAE,MAAM;QACdC,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAC;YACnBC,IAAI,EAAE;gBACJC,cAAc,EAAET,CAAAA,MAAc,GAAdA,QAAQ,CAACU,KAAK,YAAdV,MAAc,GAAIW,CAAAA,GAAAA,KAAmB,AAAsB,CAAA,oBAAtB,CAAC,MAAMC,CAAAA,GAAAA,KAAY,AAAE,CAAA,aAAF,EAAE,CAAC;gBAC3EC,iBAAiB,EAAEb,QAAQ,CAACc,IAAI;aACjC;YACDd,QAAQ,EAAEA,QAAQ;SACnB,CAAC;KACH,CAAC,AAAC;IACH,MAAM,EAAEe,IAAI,CAAA,EAAE,GAAG,MAAMb,GAAG,CAACc,IAAI,EAAE,AAAC;IAClC,OAAOD,IAAI,CAACE,QAAQ,CAAC;CACtB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/api/user/UserSettings.ts"],"sourcesContent":["import { getExpoHomeDirectory, getUserStatePath } from '@expo/config/build/getUserState';\nimport JsonFile from '@expo/json-file';\nimport crypto from 'crypto';\n\ntype SessionData = {\n sessionSecret: string;\n // These fields are potentially used by Expo CLI.\n userId: string;\n username: string;\n currentConnection: 'Username-Password-Authentication';\n};\n\nexport type UserSettingsData = {\n auth?: SessionData | null;\n ignoreBundledBinaries?: string[];\n PATH?: string;\n /** Last development code signing ID used for `expo run:ios`. */\n developmentCodeSigningId?: string;\n /** Unique user ID which is generated anonymously and can be cleared locally. */\n uuid?: string;\n};\n\n/** Return the user cache directory. */\nfunction getDirectory() {\n return getExpoHomeDirectory();\n}\n\nfunction getFilePath(): string {\n return getUserStatePath();\n}\n\nfunction userSettingsJsonFile(): JsonFile<UserSettingsData> {\n return new JsonFile<UserSettingsData>(getFilePath(), {\n ensureDir: true,\n jsonParseErrorDefault: {},\n cantReadFileDefault: {},\n });\n}\n\nasync function setSessionAsync(sessionData?: SessionData): Promise<void> {\n await UserSettings.setAsync('auth', sessionData, {\n default: {},\n ensureDir: true,\n });\n}\n\nfunction getSession(): SessionData | null {\n try {\n return JsonFile.read<UserSettingsData>(getUserStatePath())?.auth ?? null;\n } catch (error: any) {\n if (error.code === 'ENOENT') {\n return null;\n }\n throw error;\n }\n}\n\nfunction getAccessToken(): string | null {\n return process.env.EXPO_TOKEN ?? null;\n}\n\n// returns an anonymous, unique identifier for a user on the current computer\nasync function getAnonymousIdentifierAsync(): Promise<string> {\n const settings = await userSettingsJsonFile();\n let id = await settings.getAsync('uuid', null);\n\n if (!id) {\n id = crypto.randomUUID();\n await settings.setAsync('uuid', id);\n }\n\n return id;\n}\n\nconst UserSettings = Object.assign(userSettingsJsonFile(), {\n getSession,\n setSessionAsync,\n getAccessToken,\n getDirectory,\n getFilePath,\n userSettingsJsonFile,\n getAnonymousIdentifierAsync,\n});\n\nexport default UserSettings;\n"],"names":["getDirectory","getExpoHomeDirectory","getFilePath","getUserStatePath","userSettingsJsonFile","JsonFile","ensureDir","jsonParseErrorDefault","cantReadFileDefault","setSessionAsync","sessionData","UserSettings","setAsync","default","getSession","read","auth","error","code","getAccessToken","process","env","EXPO_TOKEN","getAnonymousIdentifierAsync","settings","id","getAsync","crypto","randomUUID","Object","assign"],"mappings":"AAAA;;;;;AAAuD,IAAA,aAAiC,WAAjC,iCAAiC,CAAA;AACnE,IAAA,SAAiB,kCAAjB,iBAAiB,EAAA;AACnB,IAAA,OAAQ,kCAAR,QAAQ,EAAA;;;;;;AAoB3B,uCAAuC,CACvC,SAASA,YAAY,GAAG;IACtB,OAAOC,CAAAA,GAAAA,aAAoB,AAAE,CAAA,qBAAF,EAAE,CAAC;CAC/B;AAED,SAASC,WAAW,GAAW;IAC7B,OAAOC,CAAAA,GAAAA,aAAgB,AAAE,CAAA,iBAAF,EAAE,CAAC;CAC3B;AAED,SAASC,oBAAoB,GAA+B;IAC1D,OAAO,IAAIC,SAAQ,QAAA,CAAmBH,WAAW,EAAE,EAAE;QACnDI,SAAS,EAAE,IAAI;QACfC,qBAAqB,EAAE,EAAE;QACzBC,mBAAmB,EAAE,EAAE;KACxB,CAAC,CAAC;CACJ;AAED,eAAeC,eAAe,CAACC,WAAyB,EAAiB;IACvE,MAAMC,YAAY,CAACC,QAAQ,CAAC,MAAM,EAAEF,WAAW,EAAE;QAC/CG,OAAO,EAAE,EAAE;QACXP,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;CACJ;AAED,SAASQ,UAAU,GAAuB;IACxC,IAAI;YACKT,GAAmD;YAAnDA,IAAyD;QAAhE,OAAOA,CAAAA,IAAyD,GAAzDA,CAAAA,GAAmD,GAAnDA,SAAQ,QAAA,CAACU,IAAI,CAAmBZ,CAAAA,GAAAA,aAAgB,AAAE,CAAA,iBAAF,EAAE,CAAC,SAAM,GAAzDE,KAAAA,CAAyD,GAAzDA,GAAmD,CAAEW,IAAI,YAAzDX,IAAyD,GAAI,IAAI,CAAC;KAC1E,CAAC,OAAOY,KAAK,EAAO;QACnB,IAAIA,KAAK,CAACC,IAAI,KAAK,QAAQ,EAAE;YAC3B,OAAO,IAAI,CAAC;SACb;QACD,MAAMD,KAAK,CAAC;KACb;CACF;AAED,SAASE,cAAc,GAAkB;QAChCC,WAAsB;IAA7B,OAAOA,CAAAA,WAAsB,GAAtBA,OAAO,CAACC,GAAG,CAACC,UAAU,YAAtBF,WAAsB,GAAI,IAAI,CAAC;CACvC;AAED,6EAA6E;AAC7E,eAAeG,2BAA2B,GAAoB;IAC5D,MAAMC,QAAQ,GAAG,MAAMpB,oBAAoB,EAAE,AAAC;IAC9C,IAAIqB,EAAE,GAAG,MAAMD,QAAQ,CAACE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,AAAC;IAE/C,IAAI,CAACD,EAAE,EAAE;QACPA,EAAE,GAAGE,OAAM,QAAA,CAACC,UAAU,EAAE,CAAC;QACzB,MAAMJ,QAAQ,CAACZ,QAAQ,CAAC,MAAM,EAAEa,EAAE,CAAC,CAAC;KACrC;IAED,OAAOA,EAAE,CAAC;CACX;AAED,MAAMd,YAAY,GAAGkB,MAAM,CAACC,MAAM,CAAC1B,oBAAoB,EAAE,EAAE;IACzDU,UAAU;IACVL,eAAe;IACfU,cAAc;IACdnB,YAAY;IACZE,WAAW;IACXE,oBAAoB;IACpBmB,2BAA2B;CAC5B,CAAC,AAAC;eAEYZ,YAAY"}
1
+ {"version":3,"sources":["../../../../src/api/user/UserSettings.ts"],"sourcesContent":["import { getExpoHomeDirectory, getUserStatePath } from '@expo/config/build/getUserState';\nimport JsonFile from '@expo/json-file';\nimport crypto from 'crypto';\n\ntype SessionData = {\n sessionSecret: string;\n // These fields are potentially used by Expo CLI.\n userId: string;\n username: string;\n currentConnection: 'Username-Password-Authentication';\n};\n\nexport type UserSettingsData = {\n auth?: SessionData | null;\n ignoreBundledBinaries?: string[];\n PATH?: string;\n /** Last development code signing ID used for `npx expo run:ios`. */\n developmentCodeSigningId?: string;\n /** Unique user ID which is generated anonymously and can be cleared locally. */\n uuid?: string;\n};\n\n/** Return the user cache directory. */\nfunction getDirectory() {\n return getExpoHomeDirectory();\n}\n\nfunction getFilePath(): string {\n return getUserStatePath();\n}\n\nfunction userSettingsJsonFile(): JsonFile<UserSettingsData> {\n return new JsonFile<UserSettingsData>(getFilePath(), {\n ensureDir: true,\n jsonParseErrorDefault: {},\n cantReadFileDefault: {},\n });\n}\n\nasync function setSessionAsync(sessionData?: SessionData): Promise<void> {\n await UserSettings.setAsync('auth', sessionData, {\n default: {},\n ensureDir: true,\n });\n}\n\nfunction getSession(): SessionData | null {\n try {\n return JsonFile.read<UserSettingsData>(getUserStatePath())?.auth ?? null;\n } catch (error: any) {\n if (error.code === 'ENOENT') {\n return null;\n }\n throw error;\n }\n}\n\nfunction getAccessToken(): string | null {\n return process.env.EXPO_TOKEN ?? null;\n}\n\n// returns an anonymous, unique identifier for a user on the current computer\nasync function getAnonymousIdentifierAsync(): Promise<string> {\n const settings = await userSettingsJsonFile();\n let id = await settings.getAsync('uuid', null);\n\n if (!id) {\n id = crypto.randomUUID();\n await settings.setAsync('uuid', id);\n }\n\n return id;\n}\n\nconst UserSettings = Object.assign(userSettingsJsonFile(), {\n getSession,\n setSessionAsync,\n getAccessToken,\n getDirectory,\n getFilePath,\n userSettingsJsonFile,\n getAnonymousIdentifierAsync,\n});\n\nexport default UserSettings;\n"],"names":["getDirectory","getExpoHomeDirectory","getFilePath","getUserStatePath","userSettingsJsonFile","JsonFile","ensureDir","jsonParseErrorDefault","cantReadFileDefault","setSessionAsync","sessionData","UserSettings","setAsync","default","getSession","read","auth","error","code","getAccessToken","process","env","EXPO_TOKEN","getAnonymousIdentifierAsync","settings","id","getAsync","crypto","randomUUID","Object","assign"],"mappings":"AAAA;;;;;AAAuD,IAAA,aAAiC,WAAjC,iCAAiC,CAAA;AACnE,IAAA,SAAiB,kCAAjB,iBAAiB,EAAA;AACnB,IAAA,OAAQ,kCAAR,QAAQ,EAAA;;;;;;AAoB3B,uCAAuC,CACvC,SAASA,YAAY,GAAG;IACtB,OAAOC,CAAAA,GAAAA,aAAoB,AAAE,CAAA,qBAAF,EAAE,CAAC;CAC/B;AAED,SAASC,WAAW,GAAW;IAC7B,OAAOC,CAAAA,GAAAA,aAAgB,AAAE,CAAA,iBAAF,EAAE,CAAC;CAC3B;AAED,SAASC,oBAAoB,GAA+B;IAC1D,OAAO,IAAIC,SAAQ,QAAA,CAAmBH,WAAW,EAAE,EAAE;QACnDI,SAAS,EAAE,IAAI;QACfC,qBAAqB,EAAE,EAAE;QACzBC,mBAAmB,EAAE,EAAE;KACxB,CAAC,CAAC;CACJ;AAED,eAAeC,eAAe,CAACC,WAAyB,EAAiB;IACvE,MAAMC,YAAY,CAACC,QAAQ,CAAC,MAAM,EAAEF,WAAW,EAAE;QAC/CG,OAAO,EAAE,EAAE;QACXP,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;CACJ;AAED,SAASQ,UAAU,GAAuB;IACxC,IAAI;YACKT,GAAmD;YAAnDA,IAAyD;QAAhE,OAAOA,CAAAA,IAAyD,GAAzDA,CAAAA,GAAmD,GAAnDA,SAAQ,QAAA,CAACU,IAAI,CAAmBZ,CAAAA,GAAAA,aAAgB,AAAE,CAAA,iBAAF,EAAE,CAAC,SAAM,GAAzDE,KAAAA,CAAyD,GAAzDA,GAAmD,CAAEW,IAAI,YAAzDX,IAAyD,GAAI,IAAI,CAAC;KAC1E,CAAC,OAAOY,KAAK,EAAO;QACnB,IAAIA,KAAK,CAACC,IAAI,KAAK,QAAQ,EAAE;YAC3B,OAAO,IAAI,CAAC;SACb;QACD,MAAMD,KAAK,CAAC;KACb;CACF;AAED,SAASE,cAAc,GAAkB;QAChCC,WAAsB;IAA7B,OAAOA,CAAAA,WAAsB,GAAtBA,OAAO,CAACC,GAAG,CAACC,UAAU,YAAtBF,WAAsB,GAAI,IAAI,CAAC;CACvC;AAED,6EAA6E;AAC7E,eAAeG,2BAA2B,GAAoB;IAC5D,MAAMC,QAAQ,GAAG,MAAMpB,oBAAoB,EAAE,AAAC;IAC9C,IAAIqB,EAAE,GAAG,MAAMD,QAAQ,CAACE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,AAAC;IAE/C,IAAI,CAACD,EAAE,EAAE;QACPA,EAAE,GAAGE,OAAM,QAAA,CAACC,UAAU,EAAE,CAAC;QACzB,MAAMJ,QAAQ,CAACZ,QAAQ,CAAC,MAAM,EAAEa,EAAE,CAAC,CAAC;KACrC;IAED,OAAOA,EAAE,CAAC;CACX;AAED,MAAMd,YAAY,GAAGkB,MAAM,CAACC,MAAM,CAAC1B,oBAAoB,EAAE,EAAE;IACzDU,UAAU;IACVL,eAAe;IACfU,cAAc;IACdnB,YAAY;IACZE,WAAW;IACXE,oBAAoB;IACpBmB,2BAA2B;CAC5B,CAAC,AAAC;eAEYZ,YAAY"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/api/user/user.ts"],"sourcesContent":["import { promises as fs } from 'fs';\nimport gql from 'graphql-tag';\n\nimport * as Log from '../../log';\nimport * as Analytics from '../../utils/analytics/rudderstackClient';\nimport { getDevelopmentCodeSigningDirectory } from '../../utils/codesigning';\nimport { graphqlClient } from '../graphql/client';\nimport { CurrentUserQuery } from '../graphql/generated';\nimport { UserQuery } from '../graphql/queries/UserQuery';\nimport { fetchAsync } from '../rest/client';\nimport { APISettings } from '../settings';\nimport UserSettings from './UserSettings';\n\nexport type Actor = NonNullable<CurrentUserQuery['meActor']>;\n\nlet currentUser: Actor | undefined;\n\nexport const ANONYMOUS_USERNAME = 'anonymous';\n\n/**\n * Resolve the name of the actor, either normal user or robot user.\n * This should be used whenever the \"current user\" needs to be displayed.\n * The display name CANNOT be used as project owner.\n */\nexport function getActorDisplayName(user?: Actor): string {\n switch (user?.__typename) {\n case 'User':\n return user.username;\n case 'Robot':\n return user.firstName ? `${user.firstName} (robot)` : 'robot';\n default:\n return ANONYMOUS_USERNAME;\n }\n}\n\nexport async function getUserAsync(): Promise<Actor | undefined> {\n const hasCredentials = UserSettings.getAccessToken() || UserSettings.getSession()?.sessionSecret;\n if (!APISettings.isOffline && !currentUser && hasCredentials) {\n const user = await UserQuery.currentUserAsync();\n currentUser = user ?? undefined;\n if (user) {\n await Analytics.setUserDataAsync(user.id, {\n username: getActorDisplayName(user),\n user_id: user.id,\n user_type: user.__typename,\n });\n }\n }\n return currentUser;\n}\n\nexport async function loginAsync(json: {\n username: string;\n password: string;\n otp?: string;\n}): Promise<void> {\n const res = await fetchAsync('auth/loginAsync', {\n method: 'POST',\n body: JSON.stringify(json),\n });\n const {\n data: { sessionSecret },\n } = await res.json();\n const result = await graphqlClient\n .query(\n gql`\n query UserQuery {\n viewer {\n id\n username\n }\n }\n `,\n {},\n {\n fetchOptions: {\n headers: {\n 'expo-session': sessionSecret,\n },\n },\n additionalTypenames: [] /* UserQuery has immutable fields */,\n }\n )\n .toPromise();\n const {\n data: { viewer },\n } = result;\n await UserSettings.setSessionAsync({\n sessionSecret,\n userId: viewer.id,\n username: viewer.username,\n currentConnection: 'Username-Password-Authentication',\n });\n}\n\nexport async function logoutAsync(): Promise<void> {\n currentUser = undefined;\n await Promise.all([\n fs.rm(getDevelopmentCodeSigningDirectory(), { recursive: true, force: true }),\n UserSettings.setSessionAsync(undefined),\n ]);\n Log.log('Logged out');\n}\n"],"names":["getActorDisplayName","getUserAsync","loginAsync","logoutAsync","Log","Analytics","currentUser","ANONYMOUS_USERNAME","user","__typename","username","firstName","UserSettings","hasCredentials","getAccessToken","getSession","sessionSecret","APISettings","isOffline","UserQuery","currentUserAsync","undefined","setUserDataAsync","id","user_id","user_type","json","res","fetchAsync","method","body","JSON","stringify","data","result","graphqlClient","query","gql","fetchOptions","headers","additionalTypenames","toPromise","viewer","setSessionAsync","userId","currentConnection","Promise","all","fs","rm","getDevelopmentCodeSigningDirectory","recursive","force","log"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/api/user/user.ts"],"sourcesContent":["import { promises as fs } from 'fs';\nimport gql from 'graphql-tag';\n\nimport { CurrentUserQuery } from '../../graphql/generated';\nimport * as Log from '../../log';\nimport * as Analytics from '../../utils/analytics/rudderstackClient';\nimport { getDevelopmentCodeSigningDirectory } from '../../utils/codesigning';\nimport { graphqlClient } from '../graphql/client';\nimport { UserQuery } from '../graphql/queries/UserQuery';\nimport { fetchAsync } from '../rest/client';\nimport { APISettings } from '../settings';\nimport UserSettings from './UserSettings';\n\nexport type Actor = NonNullable<CurrentUserQuery['meActor']>;\n\nlet currentUser: Actor | undefined;\n\nexport const ANONYMOUS_USERNAME = 'anonymous';\n\n/**\n * Resolve the name of the actor, either normal user or robot user.\n * This should be used whenever the \"current user\" needs to be displayed.\n * The display name CANNOT be used as project owner.\n */\nexport function getActorDisplayName(user?: Actor): string {\n switch (user?.__typename) {\n case 'User':\n return user.username;\n case 'Robot':\n return user.firstName ? `${user.firstName} (robot)` : 'robot';\n default:\n return ANONYMOUS_USERNAME;\n }\n}\n\nexport async function getUserAsync(): Promise<Actor | undefined> {\n const hasCredentials = UserSettings.getAccessToken() || UserSettings.getSession()?.sessionSecret;\n if (!APISettings.isOffline && !currentUser && hasCredentials) {\n const user = await UserQuery.currentUserAsync();\n currentUser = user ?? undefined;\n if (user) {\n await Analytics.setUserDataAsync(user.id, {\n username: getActorDisplayName(user),\n user_id: user.id,\n user_type: user.__typename,\n });\n }\n }\n return currentUser;\n}\n\nexport async function loginAsync(json: {\n username: string;\n password: string;\n otp?: string;\n}): Promise<void> {\n const res = await fetchAsync('auth/loginAsync', {\n method: 'POST',\n body: JSON.stringify(json),\n });\n const {\n data: { sessionSecret },\n } = await res.json();\n const result = await graphqlClient\n .query(\n gql`\n query UserQuery {\n viewer {\n id\n username\n }\n }\n `,\n {},\n {\n fetchOptions: {\n headers: {\n 'expo-session': sessionSecret,\n },\n },\n additionalTypenames: [] /* UserQuery has immutable fields */,\n }\n )\n .toPromise();\n const {\n data: { viewer },\n } = result;\n await UserSettings.setSessionAsync({\n sessionSecret,\n userId: viewer.id,\n username: viewer.username,\n currentConnection: 'Username-Password-Authentication',\n });\n}\n\nexport async function logoutAsync(): Promise<void> {\n currentUser = undefined;\n await Promise.all([\n fs.rm(getDevelopmentCodeSigningDirectory(), { recursive: true, force: true }),\n UserSettings.setSessionAsync(undefined),\n ]);\n Log.log('Logged out');\n}\n"],"names":["getActorDisplayName","getUserAsync","loginAsync","logoutAsync","Log","Analytics","currentUser","ANONYMOUS_USERNAME","user","__typename","username","firstName","UserSettings","hasCredentials","getAccessToken","getSession","sessionSecret","APISettings","isOffline","UserQuery","currentUserAsync","undefined","setUserDataAsync","id","user_id","user_type","json","res","fetchAsync","method","body","JSON","stringify","data","result","graphqlClient","query","gql","fetchOptions","headers","additionalTypenames","toPromise","viewer","setSessionAsync","userId","currentConnection","Promise","all","fs","rm","getDevelopmentCodeSigningDirectory","recursive","force","log"],"mappings":"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"}
@@ -9,6 +9,7 @@ var _assert = _interopRequireDefault(require("assert"));
9
9
  var _util = _interopRequireDefault(require("util"));
10
10
  var Log = _interopRequireWildcard(require("../log"));
11
11
  var _errors = require("../utils/errors");
12
+ var _nodeEnv = require("../utils/nodeEnv");
12
13
  var _profile = require("../utils/profile");
13
14
  function _interopRequireDefault(obj) {
14
15
  return obj && obj.__esModule ? obj : {
@@ -53,6 +54,8 @@ function logConfig(config) {
53
54
  }));
54
55
  }
55
56
  async function configAsync(projectRoot, options) {
57
+ (0, _nodeEnv).setNodeEnv("development");
58
+ require("@expo/env").load(projectRoot);
56
59
  if (options.type) {
57
60
  _assert.default.match(options.type, /^(public|prebuild|introspect)$/);
58
61
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/config/configAsync.ts"],"sourcesContent":["import { ExpoConfig, getConfig, ProjectConfig } from '@expo/config';\nimport assert from 'assert';\nimport util from 'util';\n\nimport * as Log from '../log';\nimport { CommandError } from '../utils/errors';\nimport { profile } from '../utils/profile';\n\ntype Options = {\n type?: string;\n full?: boolean;\n json?: boolean;\n};\n\nexport function logConfig(config: ExpoConfig | ProjectConfig) {\n const isObjStr = (str: string): boolean => /^\\w+: {/g.test(str);\n Log.log(\n util.inspect(config, {\n colors: true,\n compact: false,\n // Sort objects to the end so that smaller values aren't hidden between large objects.\n sorted(a: string, b: string) {\n if (isObjStr(a)) return 1;\n if (isObjStr(b)) return -1;\n return 0;\n },\n showHidden: false,\n depth: null,\n })\n );\n}\n\nexport async function configAsync(projectRoot: string, options: Options) {\n if (options.type) {\n assert.match(options.type, /^(public|prebuild|introspect)$/);\n }\n\n let config: ProjectConfig;\n\n if (options.type === 'prebuild') {\n const { getPrebuildConfigAsync } = await import('@expo/prebuild-config');\n\n config = await profile(getPrebuildConfigAsync)(projectRoot, {\n platforms: ['ios', 'android'],\n });\n } else if (options.type === 'introspect') {\n const { getPrebuildConfigAsync } = await import('@expo/prebuild-config');\n const { compileModsAsync } = await import('@expo/config-plugins/build/plugins/mod-compiler');\n\n config = await profile(getPrebuildConfigAsync)(projectRoot, {\n platforms: ['ios', 'android'],\n });\n\n await compileModsAsync(config.exp, {\n projectRoot,\n introspect: true,\n platforms: ['ios', 'android'],\n assertMissingModProviders: false,\n });\n // @ts-ignore\n delete config.modRequest;\n // @ts-ignore\n delete config.modResults;\n } else if (options.type === 'public') {\n config = profile(getConfig)(projectRoot, {\n skipSDKVersionRequirement: true,\n isPublicConfig: true,\n });\n } else if (options.type) {\n throw new CommandError(\n `Invalid option: --type ${options.type}. Valid options are: public, prebuild`\n );\n } else {\n config = profile(getConfig)(projectRoot, {\n skipSDKVersionRequirement: true,\n });\n }\n\n const configOutput = options.full ? config : config.exp;\n\n if (!options.json) {\n Log.log();\n logConfig(configOutput);\n Log.log();\n } else {\n Log.log(JSON.stringify(configOutput));\n }\n}\n"],"names":["logConfig","configAsync","Log","config","isObjStr","str","test","log","util","inspect","colors","compact","sorted","a","b","showHidden","depth","projectRoot","options","type","assert","match","getPrebuildConfigAsync","profile","platforms","compileModsAsync","exp","introspect","assertMissingModProviders","modRequest","modResults","getConfig","skipSDKVersionRequirement","isPublicConfig","CommandError","configOutput","full","json","JSON","stringify"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/config/configAsync.ts"],"sourcesContent":["import { ExpoConfig, getConfig, ProjectConfig } from '@expo/config';\nimport assert from 'assert';\nimport util from 'util';\n\nimport * as Log from '../log';\nimport { CommandError } from '../utils/errors';\nimport { setNodeEnv } from '../utils/nodeEnv';\nimport { profile } from '../utils/profile';\n\ntype Options = {\n type?: string;\n full?: boolean;\n json?: boolean;\n};\n\nexport function logConfig(config: ExpoConfig | ProjectConfig) {\n const isObjStr = (str: string): boolean => /^\\w+: {/g.test(str);\n Log.log(\n util.inspect(config, {\n colors: true,\n compact: false,\n // Sort objects to the end so that smaller values aren't hidden between large objects.\n sorted(a: string, b: string) {\n if (isObjStr(a)) return 1;\n if (isObjStr(b)) return -1;\n return 0;\n },\n showHidden: false,\n depth: null,\n })\n );\n}\n\nexport async function configAsync(projectRoot: string, options: Options) {\n setNodeEnv('development');\n require('@expo/env').load(projectRoot);\n\n if (options.type) {\n assert.match(options.type, /^(public|prebuild|introspect)$/);\n }\n\n let config: ProjectConfig;\n\n if (options.type === 'prebuild') {\n const { getPrebuildConfigAsync } = await import('@expo/prebuild-config');\n\n config = await profile(getPrebuildConfigAsync)(projectRoot, {\n platforms: ['ios', 'android'],\n });\n } else if (options.type === 'introspect') {\n const { getPrebuildConfigAsync } = await import('@expo/prebuild-config');\n const { compileModsAsync } = await import('@expo/config-plugins/build/plugins/mod-compiler');\n\n config = await profile(getPrebuildConfigAsync)(projectRoot, {\n platforms: ['ios', 'android'],\n });\n\n await compileModsAsync(config.exp, {\n projectRoot,\n introspect: true,\n platforms: ['ios', 'android'],\n assertMissingModProviders: false,\n });\n // @ts-ignore\n delete config.modRequest;\n // @ts-ignore\n delete config.modResults;\n } else if (options.type === 'public') {\n config = profile(getConfig)(projectRoot, {\n skipSDKVersionRequirement: true,\n isPublicConfig: true,\n });\n } else if (options.type) {\n throw new CommandError(\n `Invalid option: --type ${options.type}. Valid options are: public, prebuild`\n );\n } else {\n config = profile(getConfig)(projectRoot, {\n skipSDKVersionRequirement: true,\n });\n }\n\n const configOutput = options.full ? config : config.exp;\n\n if (!options.json) {\n Log.log();\n logConfig(configOutput);\n Log.log();\n } else {\n Log.log(JSON.stringify(configOutput));\n }\n}\n"],"names":["logConfig","configAsync","Log","config","isObjStr","str","test","log","util","inspect","colors","compact","sorted","a","b","showHidden","depth","projectRoot","options","setNodeEnv","require","load","type","assert","match","getPrebuildConfigAsync","profile","platforms","compileModsAsync","exp","introspect","assertMissingModProviders","modRequest","modResults","getConfig","skipSDKVersionRequirement","isPublicConfig","CommandError","configOutput","full","json","JSON","stringify"],"mappings":"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"}
@@ -5,12 +5,15 @@ Object.defineProperty(exports, "__esModule", {
5
5
  exports.customizeAsync = customizeAsync;
6
6
  var _config = require("@expo/config");
7
7
  var _findUp = require("../utils/findUp");
8
+ var _nodeEnv = require("../utils/nodeEnv");
8
9
  var _generate = require("./generate");
9
10
  async function customizeAsync(files, options, extras) {
10
11
  var ref;
12
+ (0, _nodeEnv).setNodeEnv("development");
11
13
  // Locate the project root based on the process current working directory.
12
14
  // This enables users to run `npx expo customize` from a subdirectory of the project.
13
15
  const projectRoot = (0, _findUp).findUpProjectRootOrAssert(process.cwd());
16
+ require("@expo/env").load(projectRoot);
14
17
  // Get the static path (defaults to 'web/')
15
18
  // Doesn't matter if expo is installed or which mode is used.
16
19
  const { exp } = (0, _config).getConfig(projectRoot, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/customize/customizeAsync.ts"],"sourcesContent":["import { getConfig } from '@expo/config';\n\nimport { findUpProjectRootOrAssert } from '../utils/findUp';\nimport { queryAndGenerateAsync, selectAndGenerateAsync } from './generate';\nimport { Options } from './resolveOptions';\nimport { DestinationResolutionProps } from './templates';\n\nexport async function customizeAsync(files: string[], options: Options, extras: any[]) {\n // Locate the project root based on the process current working directory.\n // This enables users to run `npx expo customize` from a subdirectory of the project.\n const projectRoot = findUpProjectRootOrAssert(process.cwd());\n\n // Get the static path (defaults to 'web/')\n // Doesn't matter if expo is installed or which mode is used.\n const { exp } = getConfig(projectRoot, {\n skipSDKVersionRequirement: true,\n });\n\n // Create the destination resolution props which are used in both\n // the query and select functions.\n const props: DestinationResolutionProps = {\n webStaticPath: exp.web?.staticPath ?? 'web',\n };\n\n // If the user provided files, we'll generate them without prompting.\n if (files.length) {\n return queryAndGenerateAsync(projectRoot, {\n files,\n props,\n extras,\n });\n }\n\n // Otherwise, we'll prompt the user to select which files to generate.\n await selectAndGenerateAsync(projectRoot, {\n props,\n extras,\n });\n}\n"],"names":["customizeAsync","files","options","extras","exp","projectRoot","findUpProjectRootOrAssert","process","cwd","getConfig","skipSDKVersionRequirement","props","webStaticPath","web","staticPath","length","queryAndGenerateAsync","selectAndGenerateAsync"],"mappings":"AAAA;;;;QAOsBA,cAAc,GAAdA,cAAc;AAPV,IAAA,OAAc,WAAd,cAAc,CAAA;AAEE,IAAA,OAAiB,WAAjB,iBAAiB,CAAA;AACG,IAAA,SAAY,WAAZ,YAAY,CAAA;AAInE,eAAeA,cAAc,CAACC,KAAe,EAAEC,OAAgB,EAAEC,MAAa,EAAE;QAcpEC,GAAO;IAbxB,0EAA0E;IAC1E,qFAAqF;IACrF,MAAMC,WAAW,GAAGC,CAAAA,GAAAA,OAAyB,AAAe,CAAA,0BAAf,CAACC,OAAO,CAACC,GAAG,EAAE,CAAC,AAAC;IAE7D,2CAA2C;IAC3C,6DAA6D;IAC7D,MAAM,EAAEJ,GAAG,CAAA,EAAE,GAAGK,CAAAA,GAAAA,OAAS,AAEvB,CAAA,UAFuB,CAACJ,WAAW,EAAE;QACrCK,yBAAyB,EAAE,IAAI;KAChC,CAAC,AAAC;QAKcN,IAAmB;IAHpC,iEAAiE;IACjE,kCAAkC;IAClC,MAAMO,KAAK,GAA+B;QACxCC,aAAa,EAAER,CAAAA,IAAmB,GAAnBA,CAAAA,GAAO,GAAPA,GAAG,CAACS,GAAG,SAAY,GAAnBT,KAAAA,CAAmB,GAAnBA,GAAO,CAAEU,UAAU,YAAnBV,IAAmB,GAAI,KAAK;KAC5C,AAAC;IAEF,qEAAqE;IACrE,IAAIH,KAAK,CAACc,MAAM,EAAE;QAChB,OAAOC,CAAAA,GAAAA,SAAqB,AAI1B,CAAA,sBAJ0B,CAACX,WAAW,EAAE;YACxCJ,KAAK;YACLU,KAAK;YACLR,MAAM;SACP,CAAC,CAAC;KACJ;IAED,sEAAsE;IACtE,MAAMc,CAAAA,GAAAA,SAAsB,AAG1B,CAAA,uBAH0B,CAACZ,WAAW,EAAE;QACxCM,KAAK;QACLR,MAAM;KACP,CAAC,CAAC;CACJ"}
1
+ {"version":3,"sources":["../../../src/customize/customizeAsync.ts"],"sourcesContent":["import { getConfig } from '@expo/config';\n\nimport { findUpProjectRootOrAssert } from '../utils/findUp';\nimport { setNodeEnv } from '../utils/nodeEnv';\nimport { queryAndGenerateAsync, selectAndGenerateAsync } from './generate';\nimport { Options } from './resolveOptions';\nimport { DestinationResolutionProps } from './templates';\n\nexport async function customizeAsync(files: string[], options: Options, extras: any[]) {\n setNodeEnv('development');\n // Locate the project root based on the process current working directory.\n // This enables users to run `npx expo customize` from a subdirectory of the project.\n const projectRoot = findUpProjectRootOrAssert(process.cwd());\n\n require('@expo/env').load(projectRoot);\n\n // Get the static path (defaults to 'web/')\n // Doesn't matter if expo is installed or which mode is used.\n const { exp } = getConfig(projectRoot, {\n skipSDKVersionRequirement: true,\n });\n\n // Create the destination resolution props which are used in both\n // the query and select functions.\n const props: DestinationResolutionProps = {\n webStaticPath: exp.web?.staticPath ?? 'web',\n };\n\n // If the user provided files, we'll generate them without prompting.\n if (files.length) {\n return queryAndGenerateAsync(projectRoot, {\n files,\n props,\n extras,\n });\n }\n\n // Otherwise, we'll prompt the user to select which files to generate.\n await selectAndGenerateAsync(projectRoot, {\n props,\n extras,\n });\n}\n"],"names":["customizeAsync","files","options","extras","exp","setNodeEnv","projectRoot","findUpProjectRootOrAssert","process","cwd","require","load","getConfig","skipSDKVersionRequirement","props","webStaticPath","web","staticPath","length","queryAndGenerateAsync","selectAndGenerateAsync"],"mappings":"AAAA;;;;QAQsBA,cAAc,GAAdA,cAAc;AARV,IAAA,OAAc,WAAd,cAAc,CAAA;AAEE,IAAA,OAAiB,WAAjB,iBAAiB,CAAA;AAChC,IAAA,QAAkB,WAAlB,kBAAkB,CAAA;AACiB,IAAA,SAAY,WAAZ,YAAY,CAAA;AAInE,eAAeA,cAAc,CAACC,KAAe,EAAEC,OAAgB,EAAEC,MAAa,EAAE;QAiBpEC,GAAO;IAhBxBC,CAAAA,GAAAA,QAAU,AAAe,CAAA,WAAf,CAAC,aAAa,CAAC,CAAC;IAC1B,0EAA0E;IAC1E,qFAAqF;IACrF,MAAMC,WAAW,GAAGC,CAAAA,GAAAA,OAAyB,AAAe,CAAA,0BAAf,CAACC,OAAO,CAACC,GAAG,EAAE,CAAC,AAAC;IAE7DC,OAAO,CAAC,WAAW,CAAC,CAACC,IAAI,CAACL,WAAW,CAAC,CAAC;IAEvC,2CAA2C;IAC3C,6DAA6D;IAC7D,MAAM,EAAEF,GAAG,CAAA,EAAE,GAAGQ,CAAAA,GAAAA,OAAS,AAEvB,CAAA,UAFuB,CAACN,WAAW,EAAE;QACrCO,yBAAyB,EAAE,IAAI;KAChC,CAAC,AAAC;QAKcT,IAAmB;IAHpC,iEAAiE;IACjE,kCAAkC;IAClC,MAAMU,KAAK,GAA+B;QACxCC,aAAa,EAAEX,CAAAA,IAAmB,GAAnBA,CAAAA,GAAO,GAAPA,GAAG,CAACY,GAAG,SAAY,GAAnBZ,KAAAA,CAAmB,GAAnBA,GAAO,CAAEa,UAAU,YAAnBb,IAAmB,GAAI,KAAK;KAC5C,AAAC;IAEF,qEAAqE;IACrE,IAAIH,KAAK,CAACiB,MAAM,EAAE;QAChB,OAAOC,CAAAA,GAAAA,SAAqB,AAI1B,CAAA,sBAJ0B,CAACb,WAAW,EAAE;YACxCL,KAAK;YACLa,KAAK;YACLX,MAAM;SACP,CAAC,CAAC;KACJ;IAED,sEAAsE;IACtE,MAAMiB,CAAAA,GAAAA,SAAsB,AAG1B,CAAA,uBAH0B,CAACd,WAAW,EAAE;QACxCQ,KAAK;QACLX,MAAM;KACP,CAAC,CAAC;CACJ"}
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  exports.createBundlesAsync = createBundlesAsync;
6
6
  var _config = require("@expo/config");
7
7
  var Log = _interopRequireWildcard(require("../log"));
8
- var _resolveEntryPoint = require("../start/server/middleware/resolveEntryPoint");
8
+ var _manifestMiddleware = require("../start/server/middleware/ManifestMiddleware");
9
9
  var _forkBundleAsync = require("./fork-bundleAsync");
10
10
  function _interopRequireWildcard(obj) {
11
11
  if (obj && obj.__esModule) {
@@ -29,9 +29,13 @@ function _interopRequireWildcard(obj) {
29
29
  }
30
30
  }
31
31
  async function createBundlesAsync(projectRoot, publishOptions = {}, bundleOptions) {
32
- const { exp } = (0, _config).getConfig(projectRoot, {
32
+ if (!bundleOptions.platforms.length) {
33
+ return {};
34
+ }
35
+ const projectConfig = (0, _config).getConfig(projectRoot, {
33
36
  skipSDKVersionRequirement: true
34
37
  });
38
+ const { exp } = projectConfig;
35
39
  const bundles = await (0, _forkBundleAsync).bundleAsync(projectRoot, exp, {
36
40
  // If not legacy, ignore the target option to prevent warnings from being thrown.
37
41
  resetCache: publishOptions.resetCache,
@@ -47,7 +51,7 @@ async function createBundlesAsync(projectRoot, publishOptions = {}, bundleOption
47
51
  quiet: false
48
52
  }, bundleOptions.platforms.map((platform)=>({
49
53
  platform,
50
- entryPoint: (0, _resolveEntryPoint).resolveEntryPoint(projectRoot, platform),
54
+ entryPoint: (0, _manifestMiddleware).getEntryWithServerRoot(projectRoot, projectConfig, platform),
51
55
  dev: bundleOptions.dev
52
56
  })
53
57
  ));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/export/createBundles.ts"],"sourcesContent":["import { getConfig, Platform, ProjectTarget } from '@expo/config';\n\nimport * as Log from '../log';\nimport { resolveEntryPoint } from '../start/server/middleware/resolveEntryPoint';\nimport { bundleAsync, BundleOutput } from './fork-bundleAsync';\n\nexport type PublishOptions = {\n releaseChannel?: string;\n target?: ProjectTarget;\n resetCache?: boolean;\n maxWorkers?: number;\n};\n\n// TODO: Reduce layers of indirection\nexport async function createBundlesAsync(\n projectRoot: string,\n publishOptions: PublishOptions = {},\n bundleOptions: { platforms: Platform[]; dev?: boolean }\n): Promise<Partial<Record<Platform, BundleOutput>>> {\n const { exp } = getConfig(projectRoot, { skipSDKVersionRequirement: true });\n\n const bundles = await bundleAsync(\n projectRoot,\n exp,\n {\n // If not legacy, ignore the target option to prevent warnings from being thrown.\n resetCache: publishOptions.resetCache,\n maxWorkers: publishOptions.maxWorkers,\n logger: {\n info(tag: unknown, message: string) {\n Log.log(message);\n },\n error(tag: unknown, message: string) {\n Log.error(message);\n },\n } as any,\n quiet: false,\n },\n bundleOptions.platforms.map((platform: Platform) => ({\n platform,\n entryPoint: resolveEntryPoint(projectRoot, platform),\n dev: bundleOptions.dev,\n }))\n );\n\n // { ios: bundle, android: bundle }\n return bundleOptions.platforms.reduce<Partial<Record<Platform, BundleOutput>>>(\n (prev, platform, index) => ({\n ...prev,\n [platform]: bundles[index],\n }),\n {}\n );\n}\n"],"names":["createBundlesAsync","Log","projectRoot","publishOptions","bundleOptions","exp","getConfig","skipSDKVersionRequirement","bundles","bundleAsync","resetCache","maxWorkers","logger","info","tag","message","log","error","quiet","platforms","map","platform","entryPoint","resolveEntryPoint","dev","reduce","prev","index"],"mappings":"AAAA;;;;QAcsBA,kBAAkB,GAAlBA,kBAAkB;AAdW,IAAA,OAAc,WAAd,cAAc,CAAA;AAErDC,IAAAA,GAAG,mCAAM,QAAQ,EAAd;AACmB,IAAA,kBAA8C,WAA9C,8CAA8C,CAAA;AACtC,IAAA,gBAAoB,WAApB,oBAAoB,CAAA;;;;;;;;;;;;;;;;;;;;;;AAUvD,eAAeD,kBAAkB,CACtCE,WAAmB,EACnBC,cAA8B,GAAG,EAAE,EACnCC,aAAuD,EACL;IAClD,MAAM,EAAEC,GAAG,CAAA,EAAE,GAAGC,CAAAA,GAAAA,OAAS,AAAkD,CAAA,UAAlD,CAACJ,WAAW,EAAE;QAAEK,yBAAyB,EAAE,IAAI;KAAE,CAAC,AAAC;IAE5E,MAAMC,OAAO,GAAG,MAAMC,CAAAA,GAAAA,gBAAW,AAsBhC,CAAA,YAtBgC,CAC/BP,WAAW,EACXG,GAAG,EACH;QACE,iFAAiF;QACjFK,UAAU,EAAEP,cAAc,CAACO,UAAU;QACrCC,UAAU,EAAER,cAAc,CAACQ,UAAU;QACrCC,MAAM,EAAE;YACNC,IAAI,EAACC,GAAY,EAAEC,OAAe,EAAE;gBAClCd,GAAG,CAACe,GAAG,CAACD,OAAO,CAAC,CAAC;aAClB;YACDE,KAAK,EAACH,GAAY,EAAEC,OAAe,EAAE;gBACnCd,GAAG,CAACgB,KAAK,CAACF,OAAO,CAAC,CAAC;aACpB;SACF;QACDG,KAAK,EAAE,KAAK;KACb,EACDd,aAAa,CAACe,SAAS,CAACC,GAAG,CAAC,CAACC,QAAkB,GAAK,CAAC;YACnDA,QAAQ;YACRC,UAAU,EAAEC,CAAAA,GAAAA,kBAAiB,AAAuB,CAAA,kBAAvB,CAACrB,WAAW,EAAEmB,QAAQ,CAAC;YACpDG,GAAG,EAAEpB,aAAa,CAACoB,GAAG;SACvB,CAAC;IAAA,CAAC,CACJ,AAAC;IAEF,mCAAmC;IACnC,OAAOpB,aAAa,CAACe,SAAS,CAACM,MAAM,CACnC,CAACC,IAAI,EAAEL,QAAQ,EAAEM,KAAK,GAAK,CAAC;YAC1B,GAAGD,IAAI;YACP,CAACL,QAAQ,CAAC,EAAEb,OAAO,CAACmB,KAAK,CAAC;SAC3B,CAAC;IAAA,EACF,EAAE,CACH,CAAC;CACH"}
1
+ {"version":3,"sources":["../../../src/export/createBundles.ts"],"sourcesContent":["import { getConfig, Platform, ProjectTarget } from '@expo/config';\n\nimport * as Log from '../log';\nimport { getEntryWithServerRoot } from '../start/server/middleware/ManifestMiddleware';\nimport { bundleAsync, BundleOutput } from './fork-bundleAsync';\n\nexport type PublishOptions = {\n releaseChannel?: string;\n target?: ProjectTarget;\n resetCache?: boolean;\n maxWorkers?: number;\n};\n\n// TODO: Reduce layers of indirection\nexport async function createBundlesAsync(\n projectRoot: string,\n publishOptions: PublishOptions = {},\n bundleOptions: { platforms: Platform[]; dev?: boolean }\n): Promise<Partial<Record<Platform, BundleOutput>>> {\n if (!bundleOptions.platforms.length) {\n return {};\n }\n const projectConfig = getConfig(projectRoot, { skipSDKVersionRequirement: true });\n const { exp } = projectConfig;\n\n const bundles = await bundleAsync(\n projectRoot,\n exp,\n {\n // If not legacy, ignore the target option to prevent warnings from being thrown.\n resetCache: publishOptions.resetCache,\n maxWorkers: publishOptions.maxWorkers,\n logger: {\n info(tag: unknown, message: string) {\n Log.log(message);\n },\n error(tag: unknown, message: string) {\n Log.error(message);\n },\n } as any,\n quiet: false,\n },\n bundleOptions.platforms.map((platform: Platform) => ({\n platform,\n entryPoint: getEntryWithServerRoot(projectRoot, projectConfig, platform),\n dev: bundleOptions.dev,\n }))\n );\n\n // { ios: bundle, android: bundle }\n return bundleOptions.platforms.reduce<Partial<Record<Platform, BundleOutput>>>(\n (prev, platform, index) => ({\n ...prev,\n [platform]: bundles[index],\n }),\n {}\n );\n}\n"],"names":["createBundlesAsync","Log","projectRoot","publishOptions","bundleOptions","platforms","length","projectConfig","getConfig","skipSDKVersionRequirement","exp","bundles","bundleAsync","resetCache","maxWorkers","logger","info","tag","message","log","error","quiet","map","platform","entryPoint","getEntryWithServerRoot","dev","reduce","prev","index"],"mappings":"AAAA;;;;QAcsBA,kBAAkB,GAAlBA,kBAAkB;AAdW,IAAA,OAAc,WAAd,cAAc,CAAA;AAErDC,IAAAA,GAAG,mCAAM,QAAQ,EAAd;AACwB,IAAA,mBAA+C,WAA/C,+CAA+C,CAAA;AAC5C,IAAA,gBAAoB,WAApB,oBAAoB,CAAA;;;;;;;;;;;;;;;;;;;;;;AAUvD,eAAeD,kBAAkB,CACtCE,WAAmB,EACnBC,cAA8B,GAAG,EAAE,EACnCC,aAAuD,EACL;IAClD,IAAI,CAACA,aAAa,CAACC,SAAS,CAACC,MAAM,EAAE;QACnC,OAAO,EAAE,CAAC;KACX;IACD,MAAMC,aAAa,GAAGC,CAAAA,GAAAA,OAAS,AAAkD,CAAA,UAAlD,CAACN,WAAW,EAAE;QAAEO,yBAAyB,EAAE,IAAI;KAAE,CAAC,AAAC;IAClF,MAAM,EAAEC,GAAG,CAAA,EAAE,GAAGH,aAAa,AAAC;IAE9B,MAAMI,OAAO,GAAG,MAAMC,CAAAA,GAAAA,gBAAW,AAsBhC,CAAA,YAtBgC,CAC/BV,WAAW,EACXQ,GAAG,EACH;QACE,iFAAiF;QACjFG,UAAU,EAAEV,cAAc,CAACU,UAAU;QACrCC,UAAU,EAAEX,cAAc,CAACW,UAAU;QACrCC,MAAM,EAAE;YACNC,IAAI,EAACC,GAAY,EAAEC,OAAe,EAAE;gBAClCjB,GAAG,CAACkB,GAAG,CAACD,OAAO,CAAC,CAAC;aAClB;YACDE,KAAK,EAACH,GAAY,EAAEC,OAAe,EAAE;gBACnCjB,GAAG,CAACmB,KAAK,CAACF,OAAO,CAAC,CAAC;aACpB;SACF;QACDG,KAAK,EAAE,KAAK;KACb,EACDjB,aAAa,CAACC,SAAS,CAACiB,GAAG,CAAC,CAACC,QAAkB,GAAK,CAAC;YACnDA,QAAQ;YACRC,UAAU,EAAEC,CAAAA,GAAAA,mBAAsB,AAAsC,CAAA,uBAAtC,CAACvB,WAAW,EAAEK,aAAa,EAAEgB,QAAQ,CAAC;YACxEG,GAAG,EAAEtB,aAAa,CAACsB,GAAG;SACvB,CAAC;IAAA,CAAC,CACJ,AAAC;IAEF,mCAAmC;IACnC,OAAOtB,aAAa,CAACC,SAAS,CAACsB,MAAM,CACnC,CAACC,IAAI,EAAEL,QAAQ,EAAEM,KAAK,GAAK,CAAC;YAC1B,GAAGD,IAAI;YACP,CAACL,QAAQ,CAAC,EAAEZ,OAAO,CAACkB,KAAK,CAAC;SAC3B,CAAC;IAAA,EACF,EAAE,CACH,CAAC;CACH"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ exports.exportEmbedAsync = exportEmbedAsync;
6
+ var _instantiateMetro = require("../../start/server/metro/instantiateMetro");
7
+ var _resolveFromProject = require("../../start/server/metro/resolveFromProject");
8
+ var _nodeEnv = require("../../utils/nodeEnv");
9
+ async function exportEmbedAsync(projectRoot, options) {
10
+ (0, _nodeEnv).setNodeEnv(options.dev ? "development" : "production");
11
+ require("@expo/env").load(projectRoot);
12
+ const { config } = await (0, _instantiateMetro).loadMetroConfigAsync(projectRoot, {
13
+ maxWorkers: options.maxWorkers,
14
+ resetCache: options.resetCache,
15
+ config: options.config
16
+ });
17
+ const buildBundleWithConfig = (0, _resolveFromProject).importCliBuildBundleWithConfigFromProject(projectRoot);
18
+ // Import the internal `buildBundleWithConfig()` function from `react-native` for the purpose
19
+ // of exporting with `@expo/metro-config` and other defaults like a resolved project entry.
20
+ await buildBundleWithConfig(options, // @ts-expect-error: MetroConfig type mismatch.
21
+ config);
22
+ }
23
+
24
+ //# sourceMappingURL=exportEmbedAsync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/export/embed/exportEmbedAsync.ts"],"sourcesContent":["import { loadMetroConfigAsync } from '../../start/server/metro/instantiateMetro';\nimport { importCliBuildBundleWithConfigFromProject } from '../../start/server/metro/resolveFromProject';\nimport { setNodeEnv } from '../../utils/nodeEnv';\nimport { Options } from './resolveOptions';\n\nexport async function exportEmbedAsync(projectRoot: string, options: Options) {\n setNodeEnv(options.dev ? 'development' : 'production');\n require('@expo/env').load(projectRoot);\n\n const { config } = await loadMetroConfigAsync(projectRoot, {\n maxWorkers: options.maxWorkers,\n resetCache: options.resetCache,\n config: options.config,\n });\n\n const buildBundleWithConfig = importCliBuildBundleWithConfigFromProject(projectRoot);\n\n // Import the internal `buildBundleWithConfig()` function from `react-native` for the purpose\n // of exporting with `@expo/metro-config` and other defaults like a resolved project entry.\n await buildBundleWithConfig(\n options,\n // @ts-expect-error: MetroConfig type mismatch.\n config\n );\n}\n"],"names":["exportEmbedAsync","projectRoot","options","setNodeEnv","dev","require","load","config","loadMetroConfigAsync","maxWorkers","resetCache","buildBundleWithConfig","importCliBuildBundleWithConfigFromProject"],"mappings":"AAAA;;;;QAKsBA,gBAAgB,GAAhBA,gBAAgB;AALD,IAAA,iBAA2C,WAA3C,2CAA2C,CAAA;AACtB,IAAA,mBAA6C,WAA7C,6CAA6C,CAAA;AAC5E,IAAA,QAAqB,WAArB,qBAAqB,CAAA;AAGzC,eAAeA,gBAAgB,CAACC,WAAmB,EAAEC,OAAgB,EAAE;IAC5EC,CAAAA,GAAAA,QAAU,AAA4C,CAAA,WAA5C,CAACD,OAAO,CAACE,GAAG,GAAG,aAAa,GAAG,YAAY,CAAC,CAAC;IACvDC,OAAO,CAAC,WAAW,CAAC,CAACC,IAAI,CAACL,WAAW,CAAC,CAAC;IAEvC,MAAM,EAAEM,MAAM,CAAA,EAAE,GAAG,MAAMC,CAAAA,GAAAA,iBAAoB,AAI3C,CAAA,qBAJ2C,CAACP,WAAW,EAAE;QACzDQ,UAAU,EAAEP,OAAO,CAACO,UAAU;QAC9BC,UAAU,EAAER,OAAO,CAACQ,UAAU;QAC9BH,MAAM,EAAEL,OAAO,CAACK,MAAM;KACvB,CAAC,AAAC;IAEH,MAAMI,qBAAqB,GAAGC,CAAAA,GAAAA,mBAAyC,AAAa,CAAA,0CAAb,CAACX,WAAW,CAAC,AAAC;IAErF,6FAA6F;IAC7F,2FAA2F;IAC3F,MAAMU,qBAAqB,CACzBT,OAAO,EACP,+CAA+C;IAC/CK,MAAM,CACP,CAAC;CACH"}