miaoda-expo-devkit 0.1.1-beta.62 → 0.1.1-beta.64

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.
package/dist/metro.d.mts CHANGED
@@ -111,6 +111,7 @@ declare function withRouteEndpoint(config: MetroConfig, options: RouteEndpointOp
111
111
  * withDevkit — 一站式 Metro 配置入口
112
112
  *
113
113
  * 按固定顺序依次应用:
114
+ * withPersistentCache — 将 Metro transform cache 固定到项目目录(.metro-cache/),重启不丢失
114
115
  * withWorkspaceNodeModules — 修复沙箱中 node_modules 位于祖先目录时的模块解析问题
115
116
  * withWasmSupport — 将 .wasm 加入 assetExts,修复 expo-sqlite web worker 打包失败
116
117
  * withCssInterop — 为 expo-image / expo-camera 等注入 NativeWind cssInterop
@@ -153,8 +154,11 @@ declare function withDevkit(config: MetroConfig, options?: DevkitOptions): Metro
153
154
  /**
154
155
  * withDevStubs — 开发阶段模块替换
155
156
  *
156
- * 1. web:@expo/log-box / ErrorOverlayWebControls → no-op stub(屏蔽全屏错误遮罩)
157
+ * 1. web:@expo/log-box 及其所有子路径 → no-op stub(屏蔽全屏错误遮罩及其传递依赖 pretty-format 等)
157
158
  * 2. 所有平台:@sentry/react-native → stub(替换 DSN,注入内置捕获器)
159
+ * 3. 所有平台:@sentry-internal/replay → no-op stub(跳过 308KB 转译,约节省 1.27s)
160
+ * 4. 所有平台:@sentry-internal/replay-canvas → no-op stub
161
+ * 5. 所有平台:@sentry-internal/feedback → no-op stub
158
162
  */
159
163
 
160
164
  /**
@@ -430,4 +434,23 @@ declare function withWasmSupport(config: MetroConfig): MetroConfig;
430
434
  */
431
435
  declare function withTransformLogger(config: MetroConfig): MetroConfig;
432
436
 
433
- export { type DevkitOptions, type InjectOptions, type PatchNativeWindCacheOptions, type RouteEndpointOptions, patchNativeWindCachePath, withCssInterop, withDevStubs, withDevkit, withEntryInjection, withEsbuildMinify, withExpoCalendarStub, withExpoContactsStub, withExpoFileSystemStub, withExpoHapticsStub, withExpoImagePickerStub, withExpoMediaLibraryStub, withExpoNotificationsStub, withLucideResolver, withNativeWind, withRouteEndpoint, withTransformLogger, withWasmSupport, withWorkspaceNodeModules };
437
+ /**
438
+ * withPersistentCache — 将 Metro transform cache 固定到项目目录
439
+ *
440
+ * Metro 默认将 transform cache 写入系统临时目录(os.tmpdir()/metro-cache),
441
+ * 系统随时可以清理,导致每次重启都是冷启动。
442
+ * 此 wrapper 将 cacheStores 替换为项目根目录下的 .metro-cache/,持久保留。
443
+ *
444
+ * cache key 由文件内容 sha1 + 相对路径 + Babel/Metro 版本共同决定,
445
+ * 与项目绝对路径无关,换目录 clone 后缓存同样有效。
446
+ */
447
+
448
+ interface PersistentCacheOptions {
449
+ /**
450
+ * cache 目录,相对于 projectRoot。默认:'.metro-cache'
451
+ */
452
+ cacheDir?: string;
453
+ }
454
+ declare function withPersistentCache(config: MetroConfig, options?: PersistentCacheOptions): MetroConfig;
455
+
456
+ export { type DevkitOptions, type InjectOptions, type PatchNativeWindCacheOptions, type PersistentCacheOptions, type RouteEndpointOptions, patchNativeWindCachePath, withCssInterop, withDevStubs, withDevkit, withEntryInjection, withEsbuildMinify, withExpoCalendarStub, withExpoContactsStub, withExpoFileSystemStub, withExpoHapticsStub, withExpoImagePickerStub, withExpoMediaLibraryStub, withExpoNotificationsStub, withLucideResolver, withNativeWind, withPersistentCache, withRouteEndpoint, withTransformLogger, withWasmSupport, withWorkspaceNodeModules };
package/dist/metro.d.ts CHANGED
@@ -111,6 +111,7 @@ declare function withRouteEndpoint(config: MetroConfig, options: RouteEndpointOp
111
111
  * withDevkit — 一站式 Metro 配置入口
112
112
  *
113
113
  * 按固定顺序依次应用:
114
+ * withPersistentCache — 将 Metro transform cache 固定到项目目录(.metro-cache/),重启不丢失
114
115
  * withWorkspaceNodeModules — 修复沙箱中 node_modules 位于祖先目录时的模块解析问题
115
116
  * withWasmSupport — 将 .wasm 加入 assetExts,修复 expo-sqlite web worker 打包失败
116
117
  * withCssInterop — 为 expo-image / expo-camera 等注入 NativeWind cssInterop
@@ -153,8 +154,11 @@ declare function withDevkit(config: MetroConfig, options?: DevkitOptions): Metro
153
154
  /**
154
155
  * withDevStubs — 开发阶段模块替换
155
156
  *
156
- * 1. web:@expo/log-box / ErrorOverlayWebControls → no-op stub(屏蔽全屏错误遮罩)
157
+ * 1. web:@expo/log-box 及其所有子路径 → no-op stub(屏蔽全屏错误遮罩及其传递依赖 pretty-format 等)
157
158
  * 2. 所有平台:@sentry/react-native → stub(替换 DSN,注入内置捕获器)
159
+ * 3. 所有平台:@sentry-internal/replay → no-op stub(跳过 308KB 转译,约节省 1.27s)
160
+ * 4. 所有平台:@sentry-internal/replay-canvas → no-op stub
161
+ * 5. 所有平台:@sentry-internal/feedback → no-op stub
158
162
  */
159
163
 
160
164
  /**
@@ -430,4 +434,23 @@ declare function withWasmSupport(config: MetroConfig): MetroConfig;
430
434
  */
431
435
  declare function withTransformLogger(config: MetroConfig): MetroConfig;
432
436
 
433
- export { type DevkitOptions, type InjectOptions, type PatchNativeWindCacheOptions, type RouteEndpointOptions, patchNativeWindCachePath, withCssInterop, withDevStubs, withDevkit, withEntryInjection, withEsbuildMinify, withExpoCalendarStub, withExpoContactsStub, withExpoFileSystemStub, withExpoHapticsStub, withExpoImagePickerStub, withExpoMediaLibraryStub, withExpoNotificationsStub, withLucideResolver, withNativeWind, withRouteEndpoint, withTransformLogger, withWasmSupport, withWorkspaceNodeModules };
437
+ /**
438
+ * withPersistentCache — 将 Metro transform cache 固定到项目目录
439
+ *
440
+ * Metro 默认将 transform cache 写入系统临时目录(os.tmpdir()/metro-cache),
441
+ * 系统随时可以清理,导致每次重启都是冷启动。
442
+ * 此 wrapper 将 cacheStores 替换为项目根目录下的 .metro-cache/,持久保留。
443
+ *
444
+ * cache key 由文件内容 sha1 + 相对路径 + Babel/Metro 版本共同决定,
445
+ * 与项目绝对路径无关,换目录 clone 后缓存同样有效。
446
+ */
447
+
448
+ interface PersistentCacheOptions {
449
+ /**
450
+ * cache 目录,相对于 projectRoot。默认:'.metro-cache'
451
+ */
452
+ cacheDir?: string;
453
+ }
454
+ declare function withPersistentCache(config: MetroConfig, options?: PersistentCacheOptions): MetroConfig;
455
+
456
+ export { type DevkitOptions, type InjectOptions, type PatchNativeWindCacheOptions, type PersistentCacheOptions, type RouteEndpointOptions, patchNativeWindCachePath, withCssInterop, withDevStubs, withDevkit, withEntryInjection, withEsbuildMinify, withExpoCalendarStub, withExpoContactsStub, withExpoFileSystemStub, withExpoHapticsStub, withExpoImagePickerStub, withExpoMediaLibraryStub, withExpoNotificationsStub, withLucideResolver, withNativeWind, withPersistentCache, withRouteEndpoint, withTransformLogger, withWasmSupport, withWorkspaceNodeModules };
package/dist/metro.js CHANGED
@@ -45,6 +45,7 @@ __export(metro_exports, {
45
45
  withExpoNotificationsStub: () => withExpoNotificationsStub,
46
46
  withLucideResolver: () => withLucideResolver,
47
47
  withNativeWind: () => withNativeWind,
48
+ withPersistentCache: () => withPersistentCache,
48
49
  withRouteEndpoint: () => withRouteEndpoint,
49
50
  withTransformLogger: () => withTransformLogger,
50
51
  withWasmSupport: () => withWasmSupport,
@@ -92,17 +93,29 @@ var import_path2 = __toESM(require("path"));
92
93
  var SENTRY_STUB_FILENAME = "sentry-react-native-stub.js";
93
94
  var SENTRY_STUB_PATH = import_path2.default.resolve(__dirname, "stubs", SENTRY_STUB_FILENAME);
94
95
  var NO_OP_LOGBOX_STUB_PATH = import_path2.default.resolve(__dirname, "stubs", "no-op-logbox.js");
96
+ var SENTRY_REPLAY_STUB_PATH = import_path2.default.resolve(__dirname, "stubs", "sentry-replay-stub.js");
97
+ var SENTRY_REPLAY_CANVAS_STUB_PATH = import_path2.default.resolve(__dirname, "stubs", "sentry-replay-canvas-stub.js");
98
+ var SENTRY_FEEDBACK_STUB_PATH = import_path2.default.resolve(__dirname, "stubs", "sentry-feedback-stub.js");
95
99
  function withDevStubs(config) {
96
100
  const upstream = config.resolver?.resolveRequest ?? null;
97
101
  const resolveRequest = (context, moduleName, platform) => {
98
102
  if (platform === "web" && __DEV__) {
99
- if (moduleName === "@expo/log-box" || moduleName === "@expo/log-box/lib" || moduleName.endsWith("ErrorOverlayWebControls")) {
103
+ if (moduleName.startsWith("@expo/log-box") || moduleName.endsWith("ErrorOverlayWebControls")) {
100
104
  return { filePath: NO_OP_LOGBOX_STUB_PATH, type: "sourceFile" };
101
105
  }
102
106
  }
103
107
  if (moduleName === "@sentry/react-native" && !context.originModulePath.includes(SENTRY_STUB_FILENAME)) {
104
108
  return { filePath: SENTRY_STUB_PATH, type: "sourceFile" };
105
109
  }
110
+ if (moduleName === "@sentry-internal/replay") {
111
+ return { filePath: SENTRY_REPLAY_STUB_PATH, type: "sourceFile" };
112
+ }
113
+ if (moduleName === "@sentry-internal/replay-canvas") {
114
+ return { filePath: SENTRY_REPLAY_CANVAS_STUB_PATH, type: "sourceFile" };
115
+ }
116
+ if (moduleName === "@sentry-internal/feedback") {
117
+ return { filePath: SENTRY_FEEDBACK_STUB_PATH, type: "sourceFile" };
118
+ }
106
119
  if (upstream) return upstream(context, moduleName, platform);
107
120
  return context.resolveRequest(context, moduleName, platform);
108
121
  };
@@ -291,7 +304,7 @@ function withCssInterop(config) {
291
304
  }
292
305
 
293
306
  // src/metro/withDevkit.ts
294
- var import_path13 = __toESM(require("path"));
307
+ var import_path14 = __toESM(require("path"));
295
308
 
296
309
  // src/metro/withEsbuildMinify.ts
297
310
  function withEsbuildMinify(config) {
@@ -543,11 +556,28 @@ function withTransformLogger(config) {
543
556
  };
544
557
  }
545
558
 
559
+ // src/metro/withPersistentCache.ts
560
+ var import_path13 = __toESM(require("path"));
561
+ var import_metro_cache = require("metro-cache");
562
+ function withPersistentCache(config, options = {}) {
563
+ const projectRoot = config.projectRoot ?? process.cwd();
564
+ const { cacheDir = ".metro-cache" } = options;
565
+ const cacheRoot = import_path13.default.join(projectRoot, cacheDir);
566
+ const existingStores = config.cacheStores;
567
+ const firstStore = Array.isArray(existingStores) ? existingStores[0] : void 0;
568
+ const StoreClass = firstStore ? Object.getPrototypeOf(firstStore).constructor : import_metro_cache.FileStore;
569
+ return {
570
+ ...config,
571
+ cacheStores: [new StoreClass({ root: cacheRoot })]
572
+ };
573
+ }
574
+
546
575
  // src/metro/withDevkit.ts
547
576
  function withDevkit(config, options = {}) {
548
577
  const projectRoot = config.projectRoot ?? process.cwd();
549
578
  const { input = "./src/global.css" } = options;
550
579
  config = withTransformLogger(config);
580
+ config = withPersistentCache(config);
551
581
  config = withWorkspaceNodeModules(config);
552
582
  config = withWasmSupport(config);
553
583
  config = withCssInterop(config);
@@ -561,15 +591,15 @@ function withDevkit(config, options = {}) {
561
591
  if (typeof __DEV__ !== "undefined" && __DEV__) {
562
592
  config = withEntryInjection(config);
563
593
  config = withDevStubs(config);
564
- config = withRouteEndpoint(config, { appDir: import_path13.default.join(projectRoot, "src", "app") });
594
+ config = withRouteEndpoint(config, { appDir: import_path14.default.join(projectRoot, "src", "app") });
565
595
  }
566
596
  return withNativeWind(config, { input, inlineRem: 16 });
567
597
  }
568
598
 
569
599
  // src/metro/withExpoHapticsStub.ts
570
- var import_path14 = __toESM(require("path"));
600
+ var import_path15 = __toESM(require("path"));
571
601
  var EXPO_HAPTICS_STUB_FILENAME = "expo-haptics-stub.js";
572
- var EXPO_HAPTICS_STUB_PATH = import_path14.default.resolve(__dirname, "stubs", EXPO_HAPTICS_STUB_FILENAME);
602
+ var EXPO_HAPTICS_STUB_PATH = import_path15.default.resolve(__dirname, "stubs", EXPO_HAPTICS_STUB_FILENAME);
573
603
  function withExpoHapticsStub(config) {
574
604
  const upstream = config.resolver?.resolveRequest ?? null;
575
605
  const resolveRequest = (context, moduleName, platform) => {
@@ -583,9 +613,9 @@ function withExpoHapticsStub(config) {
583
613
  }
584
614
 
585
615
  // src/metro/withExpoContactsStub.ts
586
- var import_path15 = __toESM(require("path"));
616
+ var import_path16 = __toESM(require("path"));
587
617
  var EXPO_CONTACTS_STUB_FILENAME = "expo-contacts-stub.js";
588
- var EXPO_CONTACTS_STUB_PATH = import_path15.default.resolve(
618
+ var EXPO_CONTACTS_STUB_PATH = import_path16.default.resolve(
589
619
  __dirname,
590
620
  "stubs",
591
621
  EXPO_CONTACTS_STUB_FILENAME
@@ -626,6 +656,7 @@ try {
626
656
  withExpoNotificationsStub,
627
657
  withLucideResolver,
628
658
  withNativeWind,
659
+ withPersistentCache,
629
660
  withRouteEndpoint,
630
661
  withTransformLogger,
631
662
  withWasmSupport,
package/dist/metro.mjs CHANGED
@@ -45,17 +45,29 @@ import path2 from "path";
45
45
  var SENTRY_STUB_FILENAME = "sentry-react-native-stub.js";
46
46
  var SENTRY_STUB_PATH = path2.resolve(__dirname, "stubs", SENTRY_STUB_FILENAME);
47
47
  var NO_OP_LOGBOX_STUB_PATH = path2.resolve(__dirname, "stubs", "no-op-logbox.js");
48
+ var SENTRY_REPLAY_STUB_PATH = path2.resolve(__dirname, "stubs", "sentry-replay-stub.js");
49
+ var SENTRY_REPLAY_CANVAS_STUB_PATH = path2.resolve(__dirname, "stubs", "sentry-replay-canvas-stub.js");
50
+ var SENTRY_FEEDBACK_STUB_PATH = path2.resolve(__dirname, "stubs", "sentry-feedback-stub.js");
48
51
  function withDevStubs(config) {
49
52
  const upstream = config.resolver?.resolveRequest ?? null;
50
53
  const resolveRequest = (context, moduleName, platform) => {
51
54
  if (platform === "web" && __DEV__) {
52
- if (moduleName === "@expo/log-box" || moduleName === "@expo/log-box/lib" || moduleName.endsWith("ErrorOverlayWebControls")) {
55
+ if (moduleName.startsWith("@expo/log-box") || moduleName.endsWith("ErrorOverlayWebControls")) {
53
56
  return { filePath: NO_OP_LOGBOX_STUB_PATH, type: "sourceFile" };
54
57
  }
55
58
  }
56
59
  if (moduleName === "@sentry/react-native" && !context.originModulePath.includes(SENTRY_STUB_FILENAME)) {
57
60
  return { filePath: SENTRY_STUB_PATH, type: "sourceFile" };
58
61
  }
62
+ if (moduleName === "@sentry-internal/replay") {
63
+ return { filePath: SENTRY_REPLAY_STUB_PATH, type: "sourceFile" };
64
+ }
65
+ if (moduleName === "@sentry-internal/replay-canvas") {
66
+ return { filePath: SENTRY_REPLAY_CANVAS_STUB_PATH, type: "sourceFile" };
67
+ }
68
+ if (moduleName === "@sentry-internal/feedback") {
69
+ return { filePath: SENTRY_FEEDBACK_STUB_PATH, type: "sourceFile" };
70
+ }
59
71
  if (upstream) return upstream(context, moduleName, platform);
60
72
  return context.resolveRequest(context, moduleName, platform);
61
73
  };
@@ -244,7 +256,7 @@ function withCssInterop(config) {
244
256
  }
245
257
 
246
258
  // src/metro/withDevkit.ts
247
- import path14 from "path";
259
+ import path15 from "path";
248
260
 
249
261
  // src/metro/withEsbuildMinify.ts
250
262
  function withEsbuildMinify(config) {
@@ -496,11 +508,28 @@ function withTransformLogger(config) {
496
508
  };
497
509
  }
498
510
 
511
+ // src/metro/withPersistentCache.ts
512
+ import path14 from "path";
513
+ import { FileStore } from "metro-cache";
514
+ function withPersistentCache(config, options = {}) {
515
+ const projectRoot = config.projectRoot ?? process.cwd();
516
+ const { cacheDir = ".metro-cache" } = options;
517
+ const cacheRoot = path14.join(projectRoot, cacheDir);
518
+ const existingStores = config.cacheStores;
519
+ const firstStore = Array.isArray(existingStores) ? existingStores[0] : void 0;
520
+ const StoreClass = firstStore ? Object.getPrototypeOf(firstStore).constructor : FileStore;
521
+ return {
522
+ ...config,
523
+ cacheStores: [new StoreClass({ root: cacheRoot })]
524
+ };
525
+ }
526
+
499
527
  // src/metro/withDevkit.ts
500
528
  function withDevkit(config, options = {}) {
501
529
  const projectRoot = config.projectRoot ?? process.cwd();
502
530
  const { input = "./src/global.css" } = options;
503
531
  config = withTransformLogger(config);
532
+ config = withPersistentCache(config);
504
533
  config = withWorkspaceNodeModules(config);
505
534
  config = withWasmSupport(config);
506
535
  config = withCssInterop(config);
@@ -514,15 +543,15 @@ function withDevkit(config, options = {}) {
514
543
  if (typeof __DEV__ !== "undefined" && __DEV__) {
515
544
  config = withEntryInjection(config);
516
545
  config = withDevStubs(config);
517
- config = withRouteEndpoint(config, { appDir: path14.join(projectRoot, "src", "app") });
546
+ config = withRouteEndpoint(config, { appDir: path15.join(projectRoot, "src", "app") });
518
547
  }
519
548
  return withNativeWind(config, { input, inlineRem: 16 });
520
549
  }
521
550
 
522
551
  // src/metro/withExpoHapticsStub.ts
523
- import path15 from "path";
552
+ import path16 from "path";
524
553
  var EXPO_HAPTICS_STUB_FILENAME = "expo-haptics-stub.js";
525
- var EXPO_HAPTICS_STUB_PATH = path15.resolve(__dirname, "stubs", EXPO_HAPTICS_STUB_FILENAME);
554
+ var EXPO_HAPTICS_STUB_PATH = path16.resolve(__dirname, "stubs", EXPO_HAPTICS_STUB_FILENAME);
526
555
  function withExpoHapticsStub(config) {
527
556
  const upstream = config.resolver?.resolveRequest ?? null;
528
557
  const resolveRequest = (context, moduleName, platform) => {
@@ -536,9 +565,9 @@ function withExpoHapticsStub(config) {
536
565
  }
537
566
 
538
567
  // src/metro/withExpoContactsStub.ts
539
- import path16 from "path";
568
+ import path17 from "path";
540
569
  var EXPO_CONTACTS_STUB_FILENAME = "expo-contacts-stub.js";
541
- var EXPO_CONTACTS_STUB_PATH = path16.resolve(
570
+ var EXPO_CONTACTS_STUB_PATH = path17.resolve(
542
571
  __dirname,
543
572
  "stubs",
544
573
  EXPO_CONTACTS_STUB_FILENAME
@@ -578,6 +607,7 @@ export {
578
607
  withExpoNotificationsStub,
579
608
  withLucideResolver,
580
609
  withNativeWind,
610
+ withPersistentCache,
581
611
  withRouteEndpoint,
582
612
  withTransformLogger,
583
613
  withWasmSupport,
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var sentry_feedback_stub_exports = {};
20
+ __export(sentry_feedback_stub_exports, {
21
+ buildFeedbackIntegration: () => buildFeedbackIntegration,
22
+ feedbackAsyncIntegration: () => feedbackAsyncIntegration,
23
+ feedbackIntegration: () => feedbackIntegration,
24
+ feedbackModalIntegration: () => feedbackModalIntegration,
25
+ feedbackScreenshotIntegration: () => feedbackScreenshotIntegration,
26
+ feedbackSyncIntegration: () => feedbackSyncIntegration,
27
+ getFeedback: () => getFeedback,
28
+ sendFeedback: () => sendFeedback
29
+ });
30
+ module.exports = __toCommonJS(sentry_feedback_stub_exports);
31
+ function noopIntegration(name) {
32
+ return { name, setup() {
33
+ } };
34
+ }
35
+ const feedbackIntegration = () => noopIntegration("Feedback");
36
+ const feedbackSyncIntegration = () => noopIntegration("Feedback");
37
+ const feedbackAsyncIntegration = () => noopIntegration("FeedbackAsync");
38
+ const feedbackModalIntegration = () => noopIntegration("FeedbackModal");
39
+ const feedbackScreenshotIntegration = () => noopIntegration("FeedbackScreenshot");
40
+ function buildFeedbackIntegration() {
41
+ return noopIntegration("Feedback");
42
+ }
43
+ function getFeedback() {
44
+ return void 0;
45
+ }
46
+ function sendFeedback() {
47
+ return Promise.reject(new Error("Feedback is disabled in dev"));
48
+ }
49
+ // Annotate the CommonJS export names for ESM import in node:
50
+ 0 && (module.exports = {
51
+ buildFeedbackIntegration,
52
+ feedbackAsyncIntegration,
53
+ feedbackIntegration,
54
+ feedbackModalIntegration,
55
+ feedbackScreenshotIntegration,
56
+ feedbackSyncIntegration,
57
+ getFeedback,
58
+ sendFeedback
59
+ });
60
+ //# sourceMappingURL=sentry-feedback-stub.js.map
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var sentry_replay_canvas_stub_exports = {};
20
+ __export(sentry_replay_canvas_stub_exports, {
21
+ replayCanvasIntegration: () => replayCanvasIntegration
22
+ });
23
+ module.exports = __toCommonJS(sentry_replay_canvas_stub_exports);
24
+ function replayCanvasIntegration() {
25
+ return {
26
+ name: "ReplayCanvas",
27
+ setup() {
28
+ }
29
+ };
30
+ }
31
+ // Annotate the CommonJS export names for ESM import in node:
32
+ 0 && (module.exports = {
33
+ replayCanvasIntegration
34
+ });
35
+ //# sourceMappingURL=sentry-replay-canvas-stub.js.map
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var sentry_replay_stub_exports = {};
20
+ __export(sentry_replay_stub_exports, {
21
+ getReplay: () => getReplay,
22
+ replayIntegration: () => replayIntegration
23
+ });
24
+ module.exports = __toCommonJS(sentry_replay_stub_exports);
25
+ function noopIntegration() {
26
+ return {
27
+ name: "Replay",
28
+ setup() {
29
+ }
30
+ };
31
+ }
32
+ const replayIntegration = noopIntegration;
33
+ function getReplay() {
34
+ return void 0;
35
+ }
36
+ // Annotate the CommonJS export names for ESM import in node:
37
+ 0 && (module.exports = {
38
+ getReplay,
39
+ replayIntegration
40
+ });
41
+ //# sourceMappingURL=sentry-replay-stub.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "miaoda-expo-devkit",
3
- "version": "0.1.1-beta.62",
3
+ "version": "0.1.1-beta.64",
4
4
  "description": "Expo 应用开发工具集:Sentry DSN 替换 stub、错误/网络捕获、Metro 符号化",
5
5
  "license": "MIT",
6
6
  "main": "./dist/index.js",
@@ -86,6 +86,7 @@
86
86
  "@sentry/core": "^10.38.0",
87
87
  "@sentry/react-native": ">=8.0.0",
88
88
  "metro": ">=0.80.0",
89
+ "metro-cache": ">=0.80.0",
89
90
  "metro-config": ">=0.80.0",
90
91
  "metro-core": ">=0.80.0",
91
92
  "metro-resolver": ">=0.80.0",
@@ -104,6 +105,9 @@
104
105
  "metro": {
105
106
  "optional": true
106
107
  },
108
+ "metro-cache": {
109
+ "optional": true
110
+ },
107
111
  "metro-config": {
108
112
  "optional": true
109
113
  },