@expo/cli 0.5.0 → 0.6.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 (55) hide show
  1. package/build/bin/cli +2 -2
  2. package/build/src/export/createBundles.js.map +1 -1
  3. package/build/src/export/exportApp.js +1 -2
  4. package/build/src/export/exportApp.js.map +1 -1
  5. package/build/src/export/fork-bundleAsync.js +3 -0
  6. package/build/src/export/fork-bundleAsync.js.map +1 -1
  7. package/build/src/install/checkPackages.js +3 -6
  8. package/build/src/install/checkPackages.js.map +1 -1
  9. package/build/src/install/installAsync.js +37 -3
  10. package/build/src/install/installAsync.js.map +1 -1
  11. package/build/src/install/resolveOptions.js.map +1 -1
  12. package/build/src/run/ios/appleDevice/ClientManager.js +5 -1
  13. package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -1
  14. package/build/src/run/ios/appleDevice/client/LockdowndClient.js +5 -1
  15. package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -1
  16. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +18 -0
  17. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -1
  18. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +13 -3
  19. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
  20. package/build/src/start/doctor/ngrok/ExternalModule.js +6 -2
  21. package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -1
  22. package/build/src/start/doctor/typescript/updateTSConfig.js +1 -1
  23. package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -1
  24. package/build/src/start/interface/interactiveActions.js +7 -2
  25. package/build/src/start/interface/interactiveActions.js.map +1 -1
  26. package/build/src/start/server/BundlerDevServer.js +14 -10
  27. package/build/src/start/server/BundlerDevServer.js.map +1 -1
  28. package/build/src/start/server/DevServerManager.js +4 -1
  29. package/build/src/start/server/DevServerManager.js.map +1 -1
  30. package/build/src/start/server/metro/instantiateMetro.js +5 -0
  31. package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
  32. package/build/src/start/server/metro/resolveFromProject.js +4 -0
  33. package/build/src/start/server/metro/resolveFromProject.js.map +1 -1
  34. package/build/src/start/server/middleware/ClassicManifestMiddleware.js +1 -1
  35. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js +29 -0
  36. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js.map +1 -1
  37. package/build/src/start/server/middleware/ManifestMiddleware.js +30 -1
  38. package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
  39. package/build/src/start/server/middleware/resolveEntryPoint.js +5 -1
  40. package/build/src/start/server/middleware/resolveEntryPoint.js.map +1 -1
  41. package/build/src/utils/FileNotifier.js +11 -2
  42. package/build/src/utils/FileNotifier.js.map +1 -1
  43. package/build/src/utils/analytics/getMetroDebugProperties.js +16 -0
  44. package/build/src/utils/analytics/getMetroDebugProperties.js.map +1 -0
  45. package/build/src/utils/analytics/getMetroProperties.js +29 -0
  46. package/build/src/utils/analytics/getMetroProperties.js.map +1 -0
  47. package/build/src/utils/analytics/metroDebuggerMiddleware.js +50 -0
  48. package/build/src/utils/analytics/metroDebuggerMiddleware.js.map +1 -0
  49. package/build/src/utils/analytics/rudderstackClient.js +2 -2
  50. package/build/src/utils/analytics/rudderstackClient.js.map +1 -1
  51. package/build/src/utils/array.js +11 -0
  52. package/build/src/utils/array.js.map +1 -1
  53. package/build/src/utils/env.js +3 -0
  54. package/build/src/utils/env.js.map +1 -1
  55. package/package.json +4 -4
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ exports.createDebuggerTelemetryMiddleware = createDebuggerTelemetryMiddleware;
6
+ exports.findDebugTool = findDebugTool;
7
+ var _env = require("../env");
8
+ var _getMetroDebugProperties = require("./getMetroDebugProperties");
9
+ var _rudderstackClient = require("./rudderstackClient");
10
+ function createDebuggerTelemetryMiddleware(projectRoot, exp) {
11
+ let hasReported = false;
12
+ // This only works for Hermes apps, disable when telemetry is turned off
13
+ if (_env.env.EXPO_NO_TELEMETRY || exp.jsEngine !== "hermes") {
14
+ return (req, res, next)=>next(undefined)
15
+ ;
16
+ }
17
+ return (req, res, next)=>{
18
+ // Only report once
19
+ if (hasReported) {
20
+ return next(undefined);
21
+ }
22
+ const debugTool = findDebugTool(req);
23
+ if (debugTool) {
24
+ hasReported = true;
25
+ (0, _rudderstackClient).logEventAsync("metro debug", (0, _getMetroDebugProperties).getMetroDebugProperties(projectRoot, exp, debugTool));
26
+ }
27
+ return next(undefined);
28
+ };
29
+ }
30
+ function findDebugTool(req) {
31
+ var ref, ref1;
32
+ if ((ref = req.headers["origin"]) == null ? void 0 : ref.includes("chrome-devtools")) {
33
+ return {
34
+ name: "chrome"
35
+ };
36
+ }
37
+ if ((ref1 = req.url) == null ? void 0 : ref1.startsWith("/json")) {
38
+ var ref2;
39
+ const flipperUserAgent = (ref2 = req.headers["user-agent"]) == null ? void 0 : ref2.match(/(Flipper)\/([^\s]+)/);
40
+ if (flipperUserAgent) {
41
+ return {
42
+ name: flipperUserAgent[1].toLowerCase(),
43
+ version: flipperUserAgent[2]
44
+ };
45
+ }
46
+ }
47
+ return null;
48
+ }
49
+
50
+ //# sourceMappingURL=metroDebuggerMiddleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/utils/analytics/metroDebuggerMiddleware.ts"],"sourcesContent":["import { ExpoConfig } from '@expo/config';\nimport { Middleware } from 'metro-config';\n\nimport { env } from '../env';\nimport { DebugTool, getMetroDebugProperties } from './getMetroDebugProperties';\nimport { logEventAsync } from './rudderstackClient';\n\n/**\n * Create a Metro middleware that reports when a debugger request was found.\n * This will only be reported once, if the app uses Hermes and telemetry is not enabled.\n */\nexport function createDebuggerTelemetryMiddleware(\n projectRoot: string,\n exp: ExpoConfig\n): Middleware {\n let hasReported = false;\n\n // This only works for Hermes apps, disable when telemetry is turned off\n if (env.EXPO_NO_TELEMETRY || exp.jsEngine !== 'hermes') {\n return (req, res, next) => next(undefined);\n }\n\n return (req, res, next) => {\n // Only report once\n if (hasReported) {\n return next(undefined);\n }\n\n const debugTool = findDebugTool(req);\n if (debugTool) {\n hasReported = true;\n logEventAsync('metro debug', getMetroDebugProperties(projectRoot, exp, debugTool));\n }\n\n return next(undefined);\n };\n}\n\n/** Exposed for testing */\nexport function findDebugTool(\n req: Pick<Parameters<Middleware>[0], 'headers' | 'url'>\n): DebugTool | null {\n if (req.headers['origin']?.includes('chrome-devtools')) {\n return { name: 'chrome' };\n }\n\n if (req.url?.startsWith('/json')) {\n const flipperUserAgent = req.headers['user-agent']?.match(/(Flipper)\\/([^\\s]+)/);\n if (flipperUserAgent) {\n return {\n name: flipperUserAgent[1].toLowerCase(),\n version: flipperUserAgent[2],\n };\n }\n }\n\n return null;\n}\n"],"names":["createDebuggerTelemetryMiddleware","findDebugTool","projectRoot","exp","hasReported","env","EXPO_NO_TELEMETRY","jsEngine","req","res","next","undefined","debugTool","logEventAsync","getMetroDebugProperties","headers","includes","name","url","startsWith","flipperUserAgent","match","toLowerCase","version"],"mappings":"AAAA;;;;QAWgBA,iCAAiC,GAAjCA,iCAAiC;QA4BjCC,aAAa,GAAbA,aAAa;AApCT,IAAA,IAAQ,WAAR,QAAQ,CAAA;AACuB,IAAA,wBAA2B,WAA3B,2BAA2B,CAAA;AAChD,IAAA,kBAAqB,WAArB,qBAAqB,CAAA;AAM5C,SAASD,iCAAiC,CAC/CE,WAAmB,EACnBC,GAAe,EACH;IACZ,IAAIC,WAAW,GAAG,KAAK,AAAC;IAExB,wEAAwE;IACxE,IAAIC,IAAG,IAAA,CAACC,iBAAiB,IAAIH,GAAG,CAACI,QAAQ,KAAK,QAAQ,EAAE;QACtD,OAAO,CAACC,GAAG,EAAEC,GAAG,EAAEC,IAAI,GAAKA,IAAI,CAACC,SAAS,CAAC;QAAA,CAAC;KAC5C;IAED,OAAO,CAACH,GAAG,EAAEC,GAAG,EAAEC,IAAI,GAAK;QACzB,mBAAmB;QACnB,IAAIN,WAAW,EAAE;YACf,OAAOM,IAAI,CAACC,SAAS,CAAC,CAAC;SACxB;QAED,MAAMC,SAAS,GAAGX,aAAa,CAACO,GAAG,CAAC,AAAC;QACrC,IAAII,SAAS,EAAE;YACbR,WAAW,GAAG,IAAI,CAAC;YACnBS,CAAAA,GAAAA,kBAAa,AAAqE,CAAA,cAArE,CAAC,aAAa,EAAEC,CAAAA,GAAAA,wBAAuB,AAA6B,CAAA,wBAA7B,CAACZ,WAAW,EAAEC,GAAG,EAAES,SAAS,CAAC,CAAC,CAAC;SACpF;QAED,OAAOF,IAAI,CAACC,SAAS,CAAC,CAAC;KACxB,CAAC;CACH;AAGM,SAASV,aAAa,CAC3BO,GAAuD,EACrC;QACdA,GAAqB,EAIrBA,IAAO;IAJX,IAAIA,CAAAA,GAAqB,GAArBA,GAAG,CAACO,OAAO,CAAC,QAAQ,CAAC,SAAU,GAA/BP,KAAAA,CAA+B,GAA/BA,GAAqB,CAAEQ,QAAQ,CAAC,iBAAiB,CAAC,EAAE;QACtD,OAAO;YAAEC,IAAI,EAAE,QAAQ;SAAE,CAAC;KAC3B;IAED,IAAIT,CAAAA,IAAO,GAAPA,GAAG,CAACU,GAAG,SAAY,GAAnBV,KAAAA,CAAmB,GAAnBA,IAAO,CAAEW,UAAU,CAAC,OAAO,CAAC,EAAE;YACPX,IAAyB;QAAlD,MAAMY,gBAAgB,GAAGZ,CAAAA,IAAyB,GAAzBA,GAAG,CAACO,OAAO,CAAC,YAAY,CAAC,SAAO,GAAhCP,KAAAA,CAAgC,GAAhCA,IAAyB,CAAEa,KAAK,uBAAuB,AAAC;QACjF,IAAID,gBAAgB,EAAE;YACpB,OAAO;gBACLH,IAAI,EAAEG,gBAAgB,CAAC,CAAC,CAAC,CAACE,WAAW,EAAE;gBACvCC,OAAO,EAAEH,gBAAgB,CAAC,CAAC,CAAC;aAC7B,CAAC;SACH;KACF;IAED,OAAO,IAAI,CAAC;CACb"}
@@ -94,7 +94,7 @@ async function logEventAsync(event, properties = {}) {
94
94
  }
95
95
  const { userId , deviceId } = identifyData;
96
96
  const commonEventProperties = {
97
- source_version: "0.5.0",
97
+ source_version: "0.6.0",
98
98
  source: "expo"
99
99
  };
100
100
  const identity = {
@@ -135,7 +135,7 @@ function getContext() {
135
135
  },
136
136
  app: {
137
137
  name: "expo",
138
- version: "0.5.0"
138
+ version: "0.6.0"
139
139
  },
140
140
  ci: ciInfo.isCI ? {
141
141
  name: ciInfo.name,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/utils/analytics/rudderstackClient.ts"],"sourcesContent":["import RudderAnalytics from '@expo/rudder-sdk-node';\nimport * as ciInfo from 'ci-info';\nimport os from 'os';\n\nimport UserSettings from '../../api/user/UserSettings';\nimport { getUserAsync } from '../../api/user/user';\nimport { env } from '../env';\n\nconst PLATFORM_TO_ANALYTICS_PLATFORM: { [platform: string]: string } = {\n darwin: 'Mac',\n win32: 'Windows',\n linux: 'Linux',\n};\n\nlet client: RudderAnalytics | null = null;\nlet identified = false;\nlet identifyData: {\n userId: string;\n deviceId: string;\n traits: Record<string, any>;\n} | null = null;\n\nexport function resetInternalStateForTesting() {\n identified = false;\n identifyData = null;\n client = null;\n}\n\nexport function getRudderAnalyticsClient(): RudderAnalytics {\n if (client) {\n return client;\n }\n\n client = new RudderAnalytics(\n env.EXPO_STAGING || env.EXPO_LOCAL\n ? '24TKICqYKilXM480mA7ktgVDdea'\n : '24TKR7CQAaGgIrLTgu3Fp4OdOkI', // expo unified\n 'https://cdp.expo.dev/v1/batch',\n {\n flushInterval: 300,\n }\n );\n\n // Install flush on exit...\n process.on('SIGINT', () => client?.flush?.());\n process.on('SIGTERM', () => client?.flush?.());\n\n return client;\n}\n\nexport async function setUserDataAsync(userId: string, traits: Record<string, any>): Promise<void> {\n if (env.EXPO_NO_TELEMETRY) {\n return;\n }\n\n const deviceId = await UserSettings.getAnonymousIdentifierAsync();\n\n identifyData = {\n userId,\n deviceId,\n traits,\n };\n\n identifyIfNotYetIdentified();\n}\n\ntype Event =\n | 'action'\n | 'Open Url on Device'\n | 'Start Project'\n | 'Serve Manifest'\n | 'Serve Expo Updates Manifest'\n | 'dev client start command'\n | 'dev client run command';\n\n/**\n * Log an event, ensuring the user is identified before logging the event.\n **/\nexport async function logEventAsync(\n event: Event,\n properties: Record<string, any> = {}\n): Promise<void> {\n if (env.EXPO_NO_TELEMETRY) {\n return;\n }\n\n // this has the side effect of calling `setUserData` which fetches the user and populates identifyData\n try {\n await getUserAsync();\n } catch {}\n\n identifyIfNotYetIdentified();\n\n if (!identifyData) {\n return;\n }\n const { userId, deviceId } = identifyData;\n const commonEventProperties = { source_version: process.env.__EXPO_VERSION, source: 'expo' };\n\n const identity = { userId, anonymousId: deviceId };\n getRudderAnalyticsClient().track({\n event,\n properties: { ...properties, ...commonEventProperties },\n ...identity,\n context: getContext(),\n });\n}\n\nfunction identifyIfNotYetIdentified(): void {\n if (env.EXPO_NO_TELEMETRY || identified || !identifyData) {\n return;\n }\n\n getRudderAnalyticsClient().identify({\n userId: identifyData.userId,\n anonymousId: identifyData.deviceId,\n traits: identifyData.traits,\n });\n identified = true;\n}\n\n/** Exposed for testing only */\nexport function getContext(): Record<string, any> {\n const platform = PLATFORM_TO_ANALYTICS_PLATFORM[os.platform()] || os.platform();\n return {\n os: { name: platform, version: os.release() },\n device: { type: platform, model: platform },\n app: { name: 'expo', version: process.env.__EXPO_VERSION },\n ci: ciInfo.isCI ? { name: ciInfo.name, isPr: ciInfo.isPR } : undefined,\n };\n}\n"],"names":["resetInternalStateForTesting","getRudderAnalyticsClient","setUserDataAsync","logEventAsync","getContext","ciInfo","PLATFORM_TO_ANALYTICS_PLATFORM","darwin","win32","linux","client","identified","identifyData","RudderAnalytics","env","EXPO_STAGING","EXPO_LOCAL","flushInterval","process","on","flush","userId","traits","EXPO_NO_TELEMETRY","deviceId","UserSettings","getAnonymousIdentifierAsync","identifyIfNotYetIdentified","event","properties","getUserAsync","commonEventProperties","source_version","__EXPO_VERSION","source","identity","anonymousId","track","context","identify","platform","os","name","version","release","device","type","model","app","ci","isCI","isPr","isPR","undefined"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/utils/analytics/rudderstackClient.ts"],"sourcesContent":["import RudderAnalytics from '@expo/rudder-sdk-node';\nimport * as ciInfo from 'ci-info';\nimport os from 'os';\n\nimport UserSettings from '../../api/user/UserSettings';\nimport { getUserAsync } from '../../api/user/user';\nimport { env } from '../env';\n\nconst PLATFORM_TO_ANALYTICS_PLATFORM: { [platform: string]: string } = {\n darwin: 'Mac',\n win32: 'Windows',\n linux: 'Linux',\n};\n\nlet client: RudderAnalytics | null = null;\nlet identified = false;\nlet identifyData: {\n userId: string;\n deviceId: string;\n traits: Record<string, any>;\n} | null = null;\n\nexport function resetInternalStateForTesting() {\n identified = false;\n identifyData = null;\n client = null;\n}\n\nexport function getRudderAnalyticsClient(): RudderAnalytics {\n if (client) {\n return client;\n }\n\n client = new RudderAnalytics(\n env.EXPO_STAGING || env.EXPO_LOCAL\n ? '24TKICqYKilXM480mA7ktgVDdea'\n : '24TKR7CQAaGgIrLTgu3Fp4OdOkI', // expo unified\n 'https://cdp.expo.dev/v1/batch',\n {\n flushInterval: 300,\n }\n );\n\n // Install flush on exit...\n process.on('SIGINT', () => client?.flush?.());\n process.on('SIGTERM', () => client?.flush?.());\n\n return client;\n}\n\nexport async function setUserDataAsync(userId: string, traits: Record<string, any>): Promise<void> {\n if (env.EXPO_NO_TELEMETRY) {\n return;\n }\n\n const deviceId = await UserSettings.getAnonymousIdentifierAsync();\n\n identifyData = {\n userId,\n deviceId,\n traits,\n };\n\n identifyIfNotYetIdentified();\n}\n\ntype Event =\n | 'action'\n | 'Open Url on Device'\n | 'Start Project'\n | 'Serve Manifest'\n | 'Serve Expo Updates Manifest'\n | 'dev client start command'\n | 'dev client run command'\n | 'metro config'\n | 'metro debug';\n\n/**\n * Log an event, ensuring the user is identified before logging the event.\n **/\nexport async function logEventAsync(\n event: Event,\n properties: Record<string, any> = {}\n): Promise<void> {\n if (env.EXPO_NO_TELEMETRY) {\n return;\n }\n\n // this has the side effect of calling `setUserData` which fetches the user and populates identifyData\n try {\n await getUserAsync();\n } catch {}\n\n identifyIfNotYetIdentified();\n\n if (!identifyData) {\n return;\n }\n const { userId, deviceId } = identifyData;\n const commonEventProperties = { source_version: process.env.__EXPO_VERSION, source: 'expo' };\n\n const identity = { userId, anonymousId: deviceId };\n getRudderAnalyticsClient().track({\n event,\n properties: { ...properties, ...commonEventProperties },\n ...identity,\n context: getContext(),\n });\n}\n\nfunction identifyIfNotYetIdentified(): void {\n if (env.EXPO_NO_TELEMETRY || identified || !identifyData) {\n return;\n }\n\n getRudderAnalyticsClient().identify({\n userId: identifyData.userId,\n anonymousId: identifyData.deviceId,\n traits: identifyData.traits,\n });\n identified = true;\n}\n\n/** Exposed for testing only */\nexport function getContext(): Record<string, any> {\n const platform = PLATFORM_TO_ANALYTICS_PLATFORM[os.platform()] || os.platform();\n return {\n os: { name: platform, version: os.release() },\n device: { type: platform, model: platform },\n app: { name: 'expo', version: process.env.__EXPO_VERSION },\n ci: ciInfo.isCI ? { name: ciInfo.name, isPr: ciInfo.isPR } : undefined,\n };\n}\n"],"names":["resetInternalStateForTesting","getRudderAnalyticsClient","setUserDataAsync","logEventAsync","getContext","ciInfo","PLATFORM_TO_ANALYTICS_PLATFORM","darwin","win32","linux","client","identified","identifyData","RudderAnalytics","env","EXPO_STAGING","EXPO_LOCAL","flushInterval","process","on","flush","userId","traits","EXPO_NO_TELEMETRY","deviceId","UserSettings","getAnonymousIdentifierAsync","identifyIfNotYetIdentified","event","properties","getUserAsync","commonEventProperties","source_version","__EXPO_VERSION","source","identity","anonymousId","track","context","identify","platform","os","name","version","release","device","type","model","app","ci","isCI","isPr","isPR","undefined"],"mappings":"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"}
@@ -7,6 +7,7 @@ exports.intersecting = intersecting;
7
7
  exports.replaceValue = replaceValue;
8
8
  exports.uniqBy = uniqBy;
9
9
  exports.chunk = chunk;
10
+ exports.groupBy = groupBy;
10
11
  function findLastIndex(array, predicate) {
11
12
  for(let i = array.length - 1; i >= 0; i--){
12
13
  if (predicate(array[i])) {
@@ -52,5 +53,15 @@ function chunk(array, size) {
52
53
  }
53
54
  return chunked;
54
55
  }
56
+ function groupBy(list, getKey) {
57
+ return list.reduce((previous, currentItem)=>{
58
+ const group = getKey(currentItem);
59
+ if (!previous[group]) {
60
+ previous[group] = [];
61
+ }
62
+ previous[group].push(currentItem);
63
+ return previous;
64
+ }, {});
65
+ }
55
66
 
56
67
  //# sourceMappingURL=array.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/array.ts"],"sourcesContent":["/** Returns the last index of an item based on a given criteria. */\nexport function findLastIndex<T>(array: T[], predicate: (item: T) => boolean) {\n for (let i = array.length - 1; i >= 0; i--) {\n if (predicate(array[i])) {\n return i;\n }\n }\n return -1;\n}\n\n/** Returns a list of items that intersect between two given arrays. */\nexport function intersecting<T>(a: T[], b: T[]): T[] {\n const [c, d] = a.length > b.length ? [a, b] : [b, a];\n return c.filter((value) => d.includes(value));\n}\n\nexport function replaceValue<T>(values: T[], original: T, replacement: T): T[] {\n const index = values.indexOf(original);\n if (index > -1) {\n values[index] = replacement;\n }\n return values;\n}\n\n/** lodash.uniqBy */\nexport function uniqBy<T>(array: T[], key: (item: T) => string): T[] {\n const seen: { [key: string]: boolean } = {};\n return array.filter((item) => {\n const k = key(item);\n if (seen[k]) {\n return false;\n }\n seen[k] = true;\n return true;\n });\n}\n\n/** `lodash.chunk` */\nexport function chunk<T>(array: T[], size: number): T[][] {\n const chunked = [];\n let index = 0;\n while (index < array.length) {\n chunked.push(array.slice(index, (index += size)));\n }\n return chunked;\n}\n"],"names":["findLastIndex","intersecting","replaceValue","uniqBy","chunk","array","predicate","i","length","a","b","c","d","filter","value","includes","values","original","replacement","index","indexOf","key","seen","item","k","size","chunked","push","slice"],"mappings":"AACA;;;;QAAgBA,aAAa,GAAbA,aAAa;QAUbC,YAAY,GAAZA,YAAY;QAKZC,YAAY,GAAZA,YAAY;QASZC,MAAM,GAANA,MAAM;QAaNC,KAAK,GAALA,KAAK;AArCd,SAASJ,aAAa,CAAIK,KAAU,EAAEC,SAA+B,EAAE;IAC5E,IAAK,IAAIC,CAAC,GAAGF,KAAK,CAACG,MAAM,GAAG,CAAC,EAAED,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,CAAE;QAC1C,IAAID,SAAS,CAACD,KAAK,CAACE,CAAC,CAAC,CAAC,EAAE;YACvB,OAAOA,CAAC,CAAC;SACV;KACF;IACD,OAAO,CAAC,CAAC,CAAC;CACX;AAGM,SAASN,YAAY,CAAIQ,CAAM,EAAEC,CAAM,EAAO;IACnD,MAAM,CAACC,CAAC,EAAEC,CAAC,CAAC,GAAGH,CAAC,CAACD,MAAM,GAAGE,CAAC,CAACF,MAAM,GAAG;QAACC,CAAC;QAAEC,CAAC;KAAC,GAAG;QAACA,CAAC;QAAED,CAAC;KAAC,AAAC;IACrD,OAAOE,CAAC,CAACE,MAAM,CAAC,CAACC,KAAK,GAAKF,CAAC,CAACG,QAAQ,CAACD,KAAK,CAAC;IAAA,CAAC,CAAC;CAC/C;AAEM,SAASZ,YAAY,CAAIc,MAAW,EAAEC,QAAW,EAAEC,WAAc,EAAO;IAC7E,MAAMC,KAAK,GAAGH,MAAM,CAACI,OAAO,CAACH,QAAQ,CAAC,AAAC;IACvC,IAAIE,KAAK,GAAG,CAAC,CAAC,EAAE;QACdH,MAAM,CAACG,KAAK,CAAC,GAAGD,WAAW,CAAC;KAC7B;IACD,OAAOF,MAAM,CAAC;CACf;AAGM,SAASb,MAAM,CAAIE,KAAU,EAAEgB,GAAwB,EAAO;IACnE,MAAMC,IAAI,GAA+B,EAAE,AAAC;IAC5C,OAAOjB,KAAK,CAACQ,MAAM,CAAC,CAACU,IAAI,GAAK;QAC5B,MAAMC,CAAC,GAAGH,GAAG,CAACE,IAAI,CAAC,AAAC;QACpB,IAAID,IAAI,CAACE,CAAC,CAAC,EAAE;YACX,OAAO,KAAK,CAAC;SACd;QACDF,IAAI,CAACE,CAAC,CAAC,GAAG,IAAI,CAAC;QACf,OAAO,IAAI,CAAC;KACb,CAAC,CAAC;CACJ;AAGM,SAASpB,KAAK,CAAIC,KAAU,EAAEoB,IAAY,EAAS;IACxD,MAAMC,OAAO,GAAG,EAAE,AAAC;IACnB,IAAIP,KAAK,GAAG,CAAC,AAAC;IACd,MAAOA,KAAK,GAAGd,KAAK,CAACG,MAAM,CAAE;QAC3BkB,OAAO,CAACC,IAAI,CAACtB,KAAK,CAACuB,KAAK,CAACT,KAAK,EAAGA,KAAK,IAAIM,IAAI,CAAE,CAAC,CAAC;KACnD;IACD,OAAOC,OAAO,CAAC;CAChB"}
1
+ {"version":3,"sources":["../../../src/utils/array.ts"],"sourcesContent":["/** Returns the last index of an item based on a given criteria. */\nexport function findLastIndex<T>(array: T[], predicate: (item: T) => boolean) {\n for (let i = array.length - 1; i >= 0; i--) {\n if (predicate(array[i])) {\n return i;\n }\n }\n return -1;\n}\n\n/** Returns a list of items that intersect between two given arrays. */\nexport function intersecting<T>(a: T[], b: T[]): T[] {\n const [c, d] = a.length > b.length ? [a, b] : [b, a];\n return c.filter((value) => d.includes(value));\n}\n\nexport function replaceValue<T>(values: T[], original: T, replacement: T): T[] {\n const index = values.indexOf(original);\n if (index > -1) {\n values[index] = replacement;\n }\n return values;\n}\n\n/** lodash.uniqBy */\nexport function uniqBy<T>(array: T[], key: (item: T) => string): T[] {\n const seen: { [key: string]: boolean } = {};\n return array.filter((item) => {\n const k = key(item);\n if (seen[k]) {\n return false;\n }\n seen[k] = true;\n return true;\n });\n}\n\n/** `lodash.chunk` */\nexport function chunk<T>(array: T[], size: number): T[][] {\n const chunked = [];\n let index = 0;\n while (index < array.length) {\n chunked.push(array.slice(index, (index += size)));\n }\n return chunked;\n}\n\n/** `lodash.groupBy` */\nexport function groupBy<T, K extends keyof any>(list: T[], getKey: (item: T) => K): Record<K, T[]> {\n return list.reduce((previous, currentItem) => {\n const group = getKey(currentItem);\n if (!previous[group]) {\n previous[group] = [];\n }\n previous[group].push(currentItem);\n return previous;\n }, {} as Record<K, T[]>);\n}\n"],"names":["findLastIndex","intersecting","replaceValue","uniqBy","chunk","groupBy","array","predicate","i","length","a","b","c","d","filter","value","includes","values","original","replacement","index","indexOf","key","seen","item","k","size","chunked","push","slice","list","getKey","reduce","previous","currentItem","group"],"mappings":"AACA;;;;QAAgBA,aAAa,GAAbA,aAAa;QAUbC,YAAY,GAAZA,YAAY;QAKZC,YAAY,GAAZA,YAAY;QASZC,MAAM,GAANA,MAAM;QAaNC,KAAK,GAALA,KAAK;QAULC,OAAO,GAAPA,OAAO;AA/ChB,SAASL,aAAa,CAAIM,KAAU,EAAEC,SAA+B,EAAE;IAC5E,IAAK,IAAIC,CAAC,GAAGF,KAAK,CAACG,MAAM,GAAG,CAAC,EAAED,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,CAAE;QAC1C,IAAID,SAAS,CAACD,KAAK,CAACE,CAAC,CAAC,CAAC,EAAE;YACvB,OAAOA,CAAC,CAAC;SACV;KACF;IACD,OAAO,CAAC,CAAC,CAAC;CACX;AAGM,SAASP,YAAY,CAAIS,CAAM,EAAEC,CAAM,EAAO;IACnD,MAAM,CAACC,CAAC,EAAEC,CAAC,CAAC,GAAGH,CAAC,CAACD,MAAM,GAAGE,CAAC,CAACF,MAAM,GAAG;QAACC,CAAC;QAAEC,CAAC;KAAC,GAAG;QAACA,CAAC;QAAED,CAAC;KAAC,AAAC;IACrD,OAAOE,CAAC,CAACE,MAAM,CAAC,CAACC,KAAK,GAAKF,CAAC,CAACG,QAAQ,CAACD,KAAK,CAAC;IAAA,CAAC,CAAC;CAC/C;AAEM,SAASb,YAAY,CAAIe,MAAW,EAAEC,QAAW,EAAEC,WAAc,EAAO;IAC7E,MAAMC,KAAK,GAAGH,MAAM,CAACI,OAAO,CAACH,QAAQ,CAAC,AAAC;IACvC,IAAIE,KAAK,GAAG,CAAC,CAAC,EAAE;QACdH,MAAM,CAACG,KAAK,CAAC,GAAGD,WAAW,CAAC;KAC7B;IACD,OAAOF,MAAM,CAAC;CACf;AAGM,SAASd,MAAM,CAAIG,KAAU,EAAEgB,GAAwB,EAAO;IACnE,MAAMC,IAAI,GAA+B,EAAE,AAAC;IAC5C,OAAOjB,KAAK,CAACQ,MAAM,CAAC,CAACU,IAAI,GAAK;QAC5B,MAAMC,CAAC,GAAGH,GAAG,CAACE,IAAI,CAAC,AAAC;QACpB,IAAID,IAAI,CAACE,CAAC,CAAC,EAAE;YACX,OAAO,KAAK,CAAC;SACd;QACDF,IAAI,CAACE,CAAC,CAAC,GAAG,IAAI,CAAC;QACf,OAAO,IAAI,CAAC;KACb,CAAC,CAAC;CACJ;AAGM,SAASrB,KAAK,CAAIE,KAAU,EAAEoB,IAAY,EAAS;IACxD,MAAMC,OAAO,GAAG,EAAE,AAAC;IACnB,IAAIP,KAAK,GAAG,CAAC,AAAC;IACd,MAAOA,KAAK,GAAGd,KAAK,CAACG,MAAM,CAAE;QAC3BkB,OAAO,CAACC,IAAI,CAACtB,KAAK,CAACuB,KAAK,CAACT,KAAK,EAAGA,KAAK,IAAIM,IAAI,CAAE,CAAC,CAAC;KACnD;IACD,OAAOC,OAAO,CAAC;CAChB;AAGM,SAAStB,OAAO,CAAyByB,IAAS,EAAEC,MAAsB,EAAkB;IACjG,OAAOD,IAAI,CAACE,MAAM,CAAC,CAACC,QAAQ,EAAEC,WAAW,GAAK;QAC5C,MAAMC,KAAK,GAAGJ,MAAM,CAACG,WAAW,CAAC,AAAC;QAClC,IAAI,CAACD,QAAQ,CAACE,KAAK,CAAC,EAAE;YACpBF,QAAQ,CAACE,KAAK,CAAC,GAAG,EAAE,CAAC;SACtB;QACDF,QAAQ,CAACE,KAAK,CAAC,CAACP,IAAI,CAACM,WAAW,CAAC,CAAC;QAClC,OAAOD,QAAQ,CAAC;KACjB,EAAE,EAAE,CAAmB,CAAC;CAC1B"}
@@ -61,6 +61,9 @@ class Env {
61
61
  /** Higher priority `$EDIOTR` variable for indicating which editor to use when pressing `o` in the Terminal UI. */ get EXPO_EDITOR() {
62
62
  return (0, _getenv).string("EXPO_EDITOR", "");
63
63
  }
64
+ /** Enable auto server root detection for Metro. This will change the server root to the workspace root. */ get EXPO_USE_METRO_WORKSPACE_ROOT() {
65
+ return (0, _getenv).boolish("EXPO_USE_METRO_WORKSPACE_ROOT", false);
66
+ }
64
67
  /**
65
68
  * Overwrite the dev server URL, disregarding the `--port`, `--host`, `--tunnel`, `--lan`, `--localhost` arguments.
66
69
  * This is useful for browser editors that require custom proxy URLs.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/env.ts"],"sourcesContent":["import { boolish, int, string } from 'getenv';\n\n// @expo/webpack-config -> expo-pwa -> @expo/image-utils: EXPO_IMAGE_UTILS_NO_SHARP\n\n// TODO: EXPO_CLI_USERNAME, EXPO_CLI_PASSWORD\n\nclass Env {\n /** Enable profiling metrics */\n get EXPO_PROFILE() {\n return boolish('EXPO_PROFILE', false);\n }\n\n /** Enable debug logging */\n get EXPO_DEBUG() {\n return boolish('EXPO_DEBUG', false);\n }\n\n /** Enable the beta version of Expo (TODO: Should this just be in the beta version of expo releases?) */\n get EXPO_BETA() {\n return boolish('EXPO_BETA', false);\n }\n\n /** Enable staging API environment */\n get EXPO_STAGING() {\n return boolish('EXPO_STAGING', false);\n }\n\n /** Enable local API environment */\n get EXPO_LOCAL() {\n return boolish('EXPO_LOCAL', false);\n }\n\n /** Is running in non-interactive CI mode */\n get CI() {\n return boolish('CI', false);\n }\n\n /** Disable telemetry (analytics) */\n get EXPO_NO_TELEMETRY() {\n return boolish('EXPO_NO_TELEMETRY', false);\n }\n\n /** local directory to the universe repo for testing locally */\n get EXPO_UNIVERSE_DIR() {\n return string('EXPO_UNIVERSE_DIR', '');\n }\n\n /** @deprecated Default Webpack host string */\n get WEB_HOST() {\n return string('WEB_HOST', '0.0.0.0');\n }\n\n /** Skip warning users about a dirty git status */\n get EXPO_NO_GIT_STATUS() {\n return boolish('EXPO_NO_GIT_STATUS', false);\n }\n /** Disable auto web setup */\n get EXPO_NO_WEB_SETUP() {\n return boolish('EXPO_NO_WEB_SETUP', false);\n }\n /** Disable auto TypeScript setup */\n get EXPO_NO_TYPESCRIPT_SETUP() {\n return boolish('EXPO_NO_TYPESCRIPT_SETUP', false);\n }\n /** Disable all API caches. Does not disable bundler caches. */\n get EXPO_NO_CACHE() {\n return boolish('EXPO_NO_CACHE', false);\n }\n /** Disable the app select redirect page. */\n get EXPO_NO_REDIRECT_PAGE() {\n return boolish('EXPO_NO_REDIRECT_PAGE', false);\n }\n /** The React Metro port that's baked into react-native scripts and tools. */\n get RCT_METRO_PORT() {\n return int('RCT_METRO_PORT', 0);\n }\n /** Skip validating the manifest during `export`. */\n get EXPO_SKIP_MANIFEST_VALIDATION_TOKEN(): boolean {\n return !!string('EXPO_SKIP_MANIFEST_VALIDATION_TOKEN');\n }\n\n /** Public folder path relative to the project root. Default to `public` */\n get EXPO_PUBLIC_FOLDER(): string {\n return string('EXPO_PUBLIC_FOLDER', 'public');\n }\n\n /** Higher priority `$EDIOTR` variable for indicating which editor to use when pressing `o` in the Terminal UI. */\n get EXPO_EDITOR(): string {\n return string('EXPO_EDITOR', '');\n }\n\n /**\n * Overwrite the dev server URL, disregarding the `--port`, `--host`, `--tunnel`, `--lan`, `--localhost` arguments.\n * This is useful for browser editors that require custom proxy URLs.\n */\n get EXPO_PACKAGER_PROXY_URL(): string {\n return string('EXPO_PACKAGER_PROXY_URL', '');\n }\n\n /**\n * **Experimental** - Disable using `exp.direct` as the hostname for\n * `--tunnel` connections. This enables **https://** forwarding which\n * can be used to test universal links on iOS.\n *\n * This may cause issues with `expo-linking` and Expo Go.\n *\n * Select the exact subdomain by passing a string value that is not one of: `true`, `false`, `1`, `0`.\n */\n get EXPO_TUNNEL_SUBDOMAIN(): string | boolean {\n const subdomain = string('EXPO_TUNNEL_SUBDOMAIN', '');\n if (['0', 'false', ''].includes(subdomain)) {\n return false;\n } else if (['1', 'true'].includes(subdomain)) {\n return true;\n }\n return subdomain;\n }\n\n /**\n * Force Expo CLI to use the [`resolver.resolverMainFields`](https://facebook.github.io/metro/docs/configuration/#resolvermainfields) from the project `metro.config.js` for all platforms.\n *\n * By default, Expo CLI will use `['browser', 'module', 'main']` (default for Webpack) for web and the user-defined main fields for other platforms.\n */\n get EXPO_METRO_NO_MAIN_FIELD_OVERRIDE(): boolean {\n return boolish('EXPO_METRO_NO_MAIN_FIELD_OVERRIDE', false);\n }\n\n /**\n * HTTP/HTTPS proxy to connect to for network requests. Configures [https-proxy-agent](https://www.npmjs.com/package/https-proxy-agent).\n */\n get HTTP_PROXY(): string {\n return process.env.HTTP_PROXY || process.env.http_proxy || '';\n }\n}\n\nexport const env = new Env();\n"],"names":["Env","EXPO_PROFILE","boolish","EXPO_DEBUG","EXPO_BETA","EXPO_STAGING","EXPO_LOCAL","CI","EXPO_NO_TELEMETRY","EXPO_UNIVERSE_DIR","string","WEB_HOST","EXPO_NO_GIT_STATUS","EXPO_NO_WEB_SETUP","EXPO_NO_TYPESCRIPT_SETUP","EXPO_NO_CACHE","EXPO_NO_REDIRECT_PAGE","RCT_METRO_PORT","int","EXPO_SKIP_MANIFEST_VALIDATION_TOKEN","EXPO_PUBLIC_FOLDER","EXPO_EDITOR","EXPO_PACKAGER_PROXY_URL","EXPO_TUNNEL_SUBDOMAIN","subdomain","includes","EXPO_METRO_NO_MAIN_FIELD_OVERRIDE","HTTP_PROXY","process","env","http_proxy"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/utils/env.ts"],"sourcesContent":["import { boolish, int, string } from 'getenv';\n\n// @expo/webpack-config -> expo-pwa -> @expo/image-utils: EXPO_IMAGE_UTILS_NO_SHARP\n\n// TODO: EXPO_CLI_USERNAME, EXPO_CLI_PASSWORD\n\nclass Env {\n /** Enable profiling metrics */\n get EXPO_PROFILE() {\n return boolish('EXPO_PROFILE', false);\n }\n\n /** Enable debug logging */\n get EXPO_DEBUG() {\n return boolish('EXPO_DEBUG', false);\n }\n\n /** Enable the beta version of Expo (TODO: Should this just be in the beta version of expo releases?) */\n get EXPO_BETA() {\n return boolish('EXPO_BETA', false);\n }\n\n /** Enable staging API environment */\n get EXPO_STAGING() {\n return boolish('EXPO_STAGING', false);\n }\n\n /** Enable local API environment */\n get EXPO_LOCAL() {\n return boolish('EXPO_LOCAL', false);\n }\n\n /** Is running in non-interactive CI mode */\n get CI() {\n return boolish('CI', false);\n }\n\n /** Disable telemetry (analytics) */\n get EXPO_NO_TELEMETRY() {\n return boolish('EXPO_NO_TELEMETRY', false);\n }\n\n /** local directory to the universe repo for testing locally */\n get EXPO_UNIVERSE_DIR() {\n return string('EXPO_UNIVERSE_DIR', '');\n }\n\n /** @deprecated Default Webpack host string */\n get WEB_HOST() {\n return string('WEB_HOST', '0.0.0.0');\n }\n\n /** Skip warning users about a dirty git status */\n get EXPO_NO_GIT_STATUS() {\n return boolish('EXPO_NO_GIT_STATUS', false);\n }\n /** Disable auto web setup */\n get EXPO_NO_WEB_SETUP() {\n return boolish('EXPO_NO_WEB_SETUP', false);\n }\n /** Disable auto TypeScript setup */\n get EXPO_NO_TYPESCRIPT_SETUP() {\n return boolish('EXPO_NO_TYPESCRIPT_SETUP', false);\n }\n /** Disable all API caches. Does not disable bundler caches. */\n get EXPO_NO_CACHE() {\n return boolish('EXPO_NO_CACHE', false);\n }\n /** Disable the app select redirect page. */\n get EXPO_NO_REDIRECT_PAGE() {\n return boolish('EXPO_NO_REDIRECT_PAGE', false);\n }\n /** The React Metro port that's baked into react-native scripts and tools. */\n get RCT_METRO_PORT() {\n return int('RCT_METRO_PORT', 0);\n }\n /** Skip validating the manifest during `export`. */\n get EXPO_SKIP_MANIFEST_VALIDATION_TOKEN(): boolean {\n return !!string('EXPO_SKIP_MANIFEST_VALIDATION_TOKEN');\n }\n\n /** Public folder path relative to the project root. Default to `public` */\n get EXPO_PUBLIC_FOLDER(): string {\n return string('EXPO_PUBLIC_FOLDER', 'public');\n }\n\n /** Higher priority `$EDIOTR` variable for indicating which editor to use when pressing `o` in the Terminal UI. */\n get EXPO_EDITOR(): string {\n return string('EXPO_EDITOR', '');\n }\n\n /** Enable auto server root detection for Metro. This will change the server root to the workspace root. */\n get EXPO_USE_METRO_WORKSPACE_ROOT(): boolean {\n return boolish('EXPO_USE_METRO_WORKSPACE_ROOT', false);\n }\n\n /**\n * Overwrite the dev server URL, disregarding the `--port`, `--host`, `--tunnel`, `--lan`, `--localhost` arguments.\n * This is useful for browser editors that require custom proxy URLs.\n */\n get EXPO_PACKAGER_PROXY_URL(): string {\n return string('EXPO_PACKAGER_PROXY_URL', '');\n }\n\n /**\n * **Experimental** - Disable using `exp.direct` as the hostname for\n * `--tunnel` connections. This enables **https://** forwarding which\n * can be used to test universal links on iOS.\n *\n * This may cause issues with `expo-linking` and Expo Go.\n *\n * Select the exact subdomain by passing a string value that is not one of: `true`, `false`, `1`, `0`.\n */\n get EXPO_TUNNEL_SUBDOMAIN(): string | boolean {\n const subdomain = string('EXPO_TUNNEL_SUBDOMAIN', '');\n if (['0', 'false', ''].includes(subdomain)) {\n return false;\n } else if (['1', 'true'].includes(subdomain)) {\n return true;\n }\n return subdomain;\n }\n\n /**\n * Force Expo CLI to use the [`resolver.resolverMainFields`](https://facebook.github.io/metro/docs/configuration/#resolvermainfields) from the project `metro.config.js` for all platforms.\n *\n * By default, Expo CLI will use `['browser', 'module', 'main']` (default for Webpack) for web and the user-defined main fields for other platforms.\n */\n get EXPO_METRO_NO_MAIN_FIELD_OVERRIDE(): boolean {\n return boolish('EXPO_METRO_NO_MAIN_FIELD_OVERRIDE', false);\n }\n\n /**\n * HTTP/HTTPS proxy to connect to for network requests. Configures [https-proxy-agent](https://www.npmjs.com/package/https-proxy-agent).\n */\n get HTTP_PROXY(): string {\n return process.env.HTTP_PROXY || process.env.http_proxy || '';\n }\n}\n\nexport const env = new Env();\n"],"names":["Env","EXPO_PROFILE","boolish","EXPO_DEBUG","EXPO_BETA","EXPO_STAGING","EXPO_LOCAL","CI","EXPO_NO_TELEMETRY","EXPO_UNIVERSE_DIR","string","WEB_HOST","EXPO_NO_GIT_STATUS","EXPO_NO_WEB_SETUP","EXPO_NO_TYPESCRIPT_SETUP","EXPO_NO_CACHE","EXPO_NO_REDIRECT_PAGE","RCT_METRO_PORT","int","EXPO_SKIP_MANIFEST_VALIDATION_TOKEN","EXPO_PUBLIC_FOLDER","EXPO_EDITOR","EXPO_USE_METRO_WORKSPACE_ROOT","EXPO_PACKAGER_PROXY_URL","EXPO_TUNNEL_SUBDOMAIN","subdomain","includes","EXPO_METRO_NO_MAIN_FIELD_OVERRIDE","HTTP_PROXY","process","env","http_proxy"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expo/cli",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "The Expo CLI",
5
5
  "main": "build/bin/cli",
6
6
  "bin": {
@@ -40,10 +40,10 @@
40
40
  "@expo/code-signing-certificates": "0.0.5",
41
41
  "@expo/config": "~8.0.0",
42
42
  "@expo/config-plugins": "~6.0.0",
43
- "@expo/dev-server": "0.2.0",
43
+ "@expo/dev-server": "0.2.2",
44
44
  "@expo/devcert": "^1.0.0",
45
45
  "@expo/json-file": "^8.2.37",
46
- "@expo/metro-config": "~0.6.0",
46
+ "@expo/metro-config": "~0.7.0",
47
47
  "@expo/osascript": "^2.0.31",
48
48
  "@expo/package-manager": "~0.0.53",
49
49
  "@expo/plist": "^0.0.20",
@@ -139,5 +139,5 @@
139
139
  "structured-headers": "^0.4.1",
140
140
  "taskr": "1.1.0"
141
141
  },
142
- "gitHead": "1815e2eaad8c753588c7b1eb74420174a28e01f4"
142
+ "gitHead": "c8107d57eabaedff5d53bc8036d062db12a473c8"
143
143
  }