@lark-apaas/client-toolkit-lite 1.1.7-alpha.14 → 1.1.7-alpha.16

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/index.cjs CHANGED
@@ -153,6 +153,9 @@ __name(initAxiosConfig, "initAxiosConfig");
153
153
  // src/logger/logger.ts
154
154
  var import_observable_web = require("@lark-apaas/observable-web");
155
155
 
156
+ // src/logger/intercept-global-error.ts
157
+ var import_internal_slardar = require("@lark-apaas/internal-slardar");
158
+
156
159
  // src/utils/hmr-api.ts
157
160
  var import_meta = {};
158
161
  function createWebpackHmrApi(hot) {
@@ -300,12 +303,32 @@ function processDevServerLog(log) {
300
303
  status: "disconnected"
301
304
  }
302
305
  });
306
+ import_internal_slardar.slardar.sendEvent({
307
+ name: "sandbox-devServer",
308
+ metrics: {
309
+ time
310
+ },
311
+ categories: {
312
+ type: "disconnected"
313
+ }
314
+ });
303
315
  return;
304
316
  }
305
317
  if (!devServerDisconnectInfo) {
306
318
  return;
307
319
  }
308
320
  if (devFlag && log.includes("Trying to reconnect")) {
321
+ if (retryCount) {
322
+ import_internal_slardar.slardar.sendEvent({
323
+ name: "sandbox-devServer",
324
+ metrics: {
325
+ retryCount: retryCount + 1
326
+ },
327
+ categories: {
328
+ type: "reconnect-failed"
329
+ }
330
+ });
331
+ }
309
332
  retryCount++;
310
333
  return;
311
334
  }
@@ -318,6 +341,18 @@ function processDevServerLog(log) {
318
341
  status: "connected"
319
342
  }
320
343
  });
344
+ const startTime = devServerDisconnectInfo.time;
345
+ const duration = Date.now() - startTime;
346
+ import_internal_slardar.slardar.sendEvent({
347
+ name: "sandbox-devServer",
348
+ metrics: {
349
+ startTime,
350
+ duration
351
+ },
352
+ categories: {
353
+ type: "devServer-reconnected"
354
+ }
355
+ });
321
356
  devServerDisconnectInfo = null;
322
357
  retryCount = 0;
323
358
  }
@@ -337,6 +372,13 @@ function listenModuleHmr() {
337
372
  });
338
373
  hmr.onError((error) => {
339
374
  console.warn("hmr apply failed", error);
375
+ import_internal_slardar.slardar.sendEvent({
376
+ name: "sandbox-devServer",
377
+ categories: {
378
+ type: "hmr-apply-failed",
379
+ error: String(error)
380
+ }
381
+ });
340
382
  });
341
383
  }
342
384
  }
@@ -446,123 +488,8 @@ function mapLogLevel(level) {
446
488
  }
447
489
  __name(mapLogLevel, "mapLogLevel");
448
490
 
449
- // src/logger/logger.ts
450
- var shouldReportToObservable = process.env.NODE_ENV === "production";
451
- var ORDERED_LEVELS = [
452
- "debug",
453
- "info",
454
- "warn",
455
- "error"
456
- ];
457
- var defaultConfig = {
458
- showLevel: false,
459
- showTimestamp: false,
460
- level: "info",
461
- prefix: ""
462
- };
463
- var config = {
464
- ...defaultConfig
465
- };
466
- function configureLogger(options) {
467
- config = {
468
- ...defaultConfig,
469
- ...options
470
- };
471
- }
472
- __name(configureLogger, "configureLogger");
473
- function shouldLog(level) {
474
- return ORDERED_LEVELS.indexOf(level) >= ORDERED_LEVELS.indexOf(config.level);
475
- }
476
- __name(shouldLog, "shouldLog");
477
- function getFormattedPrefix(level) {
478
- const parts = [];
479
- if (config.prefix) {
480
- parts.push(`[${config.prefix}]`);
481
- }
482
- if (config.showLevel) {
483
- parts.push(`[${level.toUpperCase()}]`);
484
- }
485
- return parts;
486
- }
487
- __name(getFormattedPrefix, "getFormattedPrefix");
488
- configureLogger({
489
- showLevel: true,
490
- showTimestamp: false,
491
- level: process.env.NODE_ENV === "development" ? "debug" : "error",
492
- prefix: "MiaoDa"
493
- });
494
- var logger = {
495
- debug(message, ...args) {
496
- if (shouldLog("debug")) {
497
- console.log(...getFormattedPrefix("debug"), message, ...args);
498
- }
499
- },
500
- info(message, ...args) {
501
- if (shouldLog("info")) {
502
- console.log(...getFormattedPrefix("info"), message, ...args);
503
- }
504
- if (shouldReportToObservable) {
505
- import_observable_web.observable.log("INFO", processLogParams([
506
- message,
507
- ...args
508
- ]).join(" "));
509
- }
510
- },
511
- warn(message, ...args) {
512
- if (shouldLog("warn")) {
513
- console.log(...getFormattedPrefix("warn"), message, ...args);
514
- }
515
- if (shouldReportToObservable) {
516
- import_observable_web.observable.log("WARN", processLogParams([
517
- message,
518
- ...args
519
- ]).join(" "));
520
- }
521
- },
522
- error(message, ...args) {
523
- if (shouldLog("error")) {
524
- console.error(...getFormattedPrefix("error"), message, ...args);
525
- }
526
- if (shouldReportToObservable) {
527
- import_observable_web.observable.log("ERROR", processLogParams([
528
- message,
529
- ...args
530
- ]).join(" "));
531
- }
532
- },
533
- success(message, ...args) {
534
- if (shouldLog("info")) {
535
- console.log(...getFormattedPrefix("success"), message, ...args);
536
- }
537
- if (shouldReportToObservable) {
538
- import_observable_web.observable.log("INFO", processLogParams([
539
- message,
540
- ...args
541
- ]).join(" "));
542
- }
543
- },
544
- log({ level, args }) {
545
- if (shouldLog(level)) {
546
- console.log(...getFormattedPrefix(level), ...args);
547
- }
548
- if (shouldReportToObservable && level !== "debug") {
549
- import_observable_web.observable.log(mapLogLevel(level), processLogParams(args).join(" "));
550
- }
551
- }
552
- };
553
- if (process.env.NODE_ENV !== "production") {
554
- window.__RUNTIME_LOGGER__ = {
555
- get() {
556
- return logger;
557
- }
558
- };
559
- }
560
- if (process.env.NODE_ENV !== "production") {
561
- interceptErrors();
562
- }
563
-
564
- // src/runtime/iframe-bridge.ts
565
- var import_penpal = require("penpal");
491
+ // src/logger/selected-logs.ts
492
+ var import_stacktrace_js = __toESM(require("stacktrace-js"), 1);
566
493
 
567
494
  // src/logger/batch-logger.ts
568
495
  var BatchLogger = class {
@@ -747,6 +674,368 @@ if (process.env.NODE_ENV !== "production" && typeof window !== "undefined") {
747
674
  defaultBatchLogger = new BatchLogger(console);
748
675
  }
749
676
 
677
+ // src/logger/selected-logs.ts
678
+ function mapStacktrace(stacktrace) {
679
+ return stacktrace.map((frame) => ({
680
+ functionName: frame.functionName || "",
681
+ fileName: frame.fileName || "",
682
+ lineNumber: frame.lineNumber || 0,
683
+ columnNumber: frame.columnNumber || 0
684
+ }));
685
+ }
686
+ __name(mapStacktrace, "mapStacktrace");
687
+ function reportStacktraceParseError(e, context) {
688
+ if (window.parent === window) return;
689
+ try {
690
+ submitPostMessage({
691
+ type: "STACKTRACE_PARSE_ERROR",
692
+ payload: {
693
+ error: e instanceof Error ? e.message : String(e),
694
+ context
695
+ }
696
+ });
697
+ } catch {
698
+ }
699
+ }
700
+ __name(reportStacktraceParseError, "reportStacktraceParseError");
701
+ async function getStacktrace() {
702
+ const stacktrace = await import_stacktrace_js.default.get();
703
+ return mapStacktrace(stacktrace);
704
+ }
705
+ __name(getStacktrace, "getStacktrace");
706
+ function errorReplacer(_key, value) {
707
+ if (value instanceof Error) {
708
+ return {
709
+ message: value.message,
710
+ stack: value.stack,
711
+ name: value.name
712
+ };
713
+ }
714
+ return value;
715
+ }
716
+ __name(errorReplacer, "errorReplacer");
717
+ function generateLogId() {
718
+ try {
719
+ if (typeof crypto !== "undefined" && typeof crypto.randomUUID === "function") {
720
+ return crypto.randomUUID();
721
+ }
722
+ } catch {
723
+ }
724
+ return `${Date.now()}-${Math.random().toString(36).slice(2)}`;
725
+ }
726
+ __name(generateLogId, "generateLogId");
727
+ var lastLogInfo = null;
728
+ async function sendSelectedLog(logWithoutID) {
729
+ try {
730
+ const log = {
731
+ ...logWithoutID,
732
+ id: generateLogId()
733
+ };
734
+ const newParts = [];
735
+ for (let i = 0; i < log.args.length; i++) {
736
+ const item = log.args[i];
737
+ if (item instanceof Error) {
738
+ const newError = {
739
+ message: item.message,
740
+ stack: item.stack,
741
+ name: item.name
742
+ };
743
+ if (!log.meta.stacktrace) {
744
+ try {
745
+ const stacktrace = await import_stacktrace_js.default.fromError(item);
746
+ log.meta.stacktrace = mapStacktrace(stacktrace);
747
+ } catch (e) {
748
+ reportStacktraceParseError(e, "StackTrace.fromError");
749
+ }
750
+ }
751
+ newParts.push(newError.message, newError);
752
+ } else {
753
+ newParts.push(item);
754
+ }
755
+ }
756
+ log.args = newParts;
757
+ if (!log.meta.stacktrace) {
758
+ try {
759
+ const frames = await getStacktrace();
760
+ const firstFrameIndex = frames.findIndex((frame) => !frame.fileName.includes("client-toolkit-lite/dist/logger"));
761
+ log.meta.stacktrace = firstFrameIndex === -1 ? [] : frames.slice(firstFrameIndex);
762
+ } catch (e) {
763
+ reportStacktraceParseError(e, "getStacktrace");
764
+ }
765
+ }
766
+ if (log.meta.skipFrame === void 0) {
767
+ log.meta.skipFrame = 2;
768
+ }
769
+ const logJSON = JSON.stringify(log, errorReplacer);
770
+ const logForDedup = {
771
+ ...log
772
+ };
773
+ delete logForDedup.id;
774
+ const logContentForDedup = JSON.stringify(logForDedup, errorReplacer);
775
+ if (lastLogInfo && lastLogInfo.content === logContentForDedup) {
776
+ lastLogInfo.count++;
777
+ log.meta.isDuplicate = true;
778
+ log.meta.duplicateCount = lastLogInfo.count;
779
+ log.meta.duplicateOfId = lastLogInfo.id;
780
+ const updatedJSON = JSON.stringify(log, errorReplacer);
781
+ try {
782
+ batchLogInfo("info", updatedJSON);
783
+ } catch {
784
+ }
785
+ if (window.parent !== window) {
786
+ try {
787
+ submitPostMessage({
788
+ type: "SELECTED_LOG",
789
+ payload: updatedJSON
790
+ });
791
+ } catch {
792
+ }
793
+ }
794
+ return;
795
+ }
796
+ lastLogInfo = {
797
+ content: logContentForDedup,
798
+ id: log.id,
799
+ count: 1
800
+ };
801
+ try {
802
+ batchLogInfo("info", logJSON);
803
+ } catch {
804
+ }
805
+ if (window.parent !== window) {
806
+ try {
807
+ submitPostMessage({
808
+ type: "SELECTED_LOG",
809
+ payload: logJSON
810
+ });
811
+ } catch {
812
+ }
813
+ }
814
+ } catch {
815
+ }
816
+ }
817
+ __name(sendSelectedLog, "sendSelectedLog");
818
+ function sendTypedLogV2(logWithMeta) {
819
+ void sendSelectedLog({
820
+ type: "typedLogV2",
821
+ level: logWithMeta.level,
822
+ args: logWithMeta.args,
823
+ meta: logWithMeta.meta ?? {}
824
+ });
825
+ }
826
+ __name(sendTypedLogV2, "sendTypedLogV2");
827
+ var typedLogInterceptor = /* @__PURE__ */ __name((originLogger) => ({
828
+ debug: /* @__PURE__ */ __name((message, ...args) => {
829
+ try {
830
+ originLogger.debug(message, ...args);
831
+ } catch {
832
+ }
833
+ sendTypedLogV2({
834
+ level: "info",
835
+ args: [
836
+ message,
837
+ ...args
838
+ ],
839
+ meta: {}
840
+ });
841
+ }, "debug"),
842
+ info: /* @__PURE__ */ __name((message, ...args) => {
843
+ try {
844
+ originLogger.info(message, ...args);
845
+ } catch {
846
+ }
847
+ sendTypedLogV2({
848
+ level: "info",
849
+ args: [
850
+ message,
851
+ ...args
852
+ ],
853
+ meta: {}
854
+ });
855
+ }, "info"),
856
+ warn: /* @__PURE__ */ __name((message, ...args) => {
857
+ try {
858
+ originLogger.warn(message, ...args);
859
+ } catch {
860
+ }
861
+ sendTypedLogV2({
862
+ level: "warn",
863
+ args: [
864
+ message,
865
+ ...args
866
+ ],
867
+ meta: {}
868
+ });
869
+ }, "warn"),
870
+ error: /* @__PURE__ */ __name((message, ...args) => {
871
+ try {
872
+ originLogger.error(message, ...args);
873
+ } catch {
874
+ }
875
+ sendTypedLogV2({
876
+ level: "error",
877
+ args: [
878
+ message,
879
+ ...args
880
+ ],
881
+ meta: {}
882
+ });
883
+ }, "error"),
884
+ success: /* @__PURE__ */ __name((message, ...args) => {
885
+ try {
886
+ originLogger.success(message, ...args);
887
+ } catch {
888
+ }
889
+ sendTypedLogV2({
890
+ level: "success",
891
+ args: [
892
+ message,
893
+ ...args
894
+ ],
895
+ meta: {}
896
+ });
897
+ }, "success"),
898
+ log: /* @__PURE__ */ __name(({ level, args, meta }) => {
899
+ try {
900
+ originLogger.log({
901
+ level,
902
+ args,
903
+ meta
904
+ });
905
+ } catch {
906
+ }
907
+ sendTypedLogV2({
908
+ level,
909
+ args,
910
+ meta: meta ?? {}
911
+ });
912
+ }, "log")
913
+ }), "typedLogInterceptor");
914
+ var interceptors = [
915
+ typedLogInterceptor
916
+ ];
917
+
918
+ // src/logger/logger.ts
919
+ var shouldReportToObservable = process.env.NODE_ENV === "production";
920
+ var ORDERED_LEVELS = [
921
+ "debug",
922
+ "info",
923
+ "warn",
924
+ "error"
925
+ ];
926
+ var defaultConfig = {
927
+ showLevel: false,
928
+ showTimestamp: false,
929
+ level: "info",
930
+ prefix: ""
931
+ };
932
+ var config = {
933
+ ...defaultConfig
934
+ };
935
+ function configureLogger(options) {
936
+ config = {
937
+ ...defaultConfig,
938
+ ...options
939
+ };
940
+ }
941
+ __name(configureLogger, "configureLogger");
942
+ function shouldLog(level) {
943
+ return ORDERED_LEVELS.indexOf(level) >= ORDERED_LEVELS.indexOf(config.level);
944
+ }
945
+ __name(shouldLog, "shouldLog");
946
+ function getFormattedPrefix(level) {
947
+ const parts = [];
948
+ if (config.prefix) {
949
+ parts.push(`[${config.prefix}]`);
950
+ }
951
+ if (config.showLevel) {
952
+ parts.push(`[${level.toUpperCase()}]`);
953
+ }
954
+ return parts;
955
+ }
956
+ __name(getFormattedPrefix, "getFormattedPrefix");
957
+ configureLogger({
958
+ showLevel: true,
959
+ showTimestamp: false,
960
+ level: process.env.NODE_ENV === "development" ? "debug" : "error",
961
+ prefix: "MiaoDa"
962
+ });
963
+ var logger = {
964
+ debug(message, ...args) {
965
+ if (shouldLog("debug")) {
966
+ console.log(...getFormattedPrefix("debug"), message, ...args);
967
+ }
968
+ },
969
+ info(message, ...args) {
970
+ if (shouldLog("info")) {
971
+ console.log(...getFormattedPrefix("info"), message, ...args);
972
+ }
973
+ if (shouldReportToObservable) {
974
+ import_observable_web.observable.log("INFO", processLogParams([
975
+ message,
976
+ ...args
977
+ ]).join(" "));
978
+ }
979
+ },
980
+ warn(message, ...args) {
981
+ if (shouldLog("warn")) {
982
+ console.log(...getFormattedPrefix("warn"), message, ...args);
983
+ }
984
+ if (shouldReportToObservable) {
985
+ import_observable_web.observable.log("WARN", processLogParams([
986
+ message,
987
+ ...args
988
+ ]).join(" "));
989
+ }
990
+ },
991
+ error(message, ...args) {
992
+ if (shouldLog("error")) {
993
+ console.error(...getFormattedPrefix("error"), message, ...args);
994
+ }
995
+ if (shouldReportToObservable) {
996
+ import_observable_web.observable.log("ERROR", processLogParams([
997
+ message,
998
+ ...args
999
+ ]).join(" "));
1000
+ }
1001
+ },
1002
+ success(message, ...args) {
1003
+ if (shouldLog("info")) {
1004
+ console.log(...getFormattedPrefix("success"), message, ...args);
1005
+ }
1006
+ if (shouldReportToObservable) {
1007
+ import_observable_web.observable.log("INFO", processLogParams([
1008
+ message,
1009
+ ...args
1010
+ ]).join(" "));
1011
+ }
1012
+ },
1013
+ log({ level, args }) {
1014
+ if (shouldLog(level)) {
1015
+ console.log(...getFormattedPrefix(level), ...args);
1016
+ }
1017
+ if (shouldReportToObservable && level !== "debug") {
1018
+ import_observable_web.observable.log(mapLogLevel(level), processLogParams(args).join(" "));
1019
+ }
1020
+ }
1021
+ };
1022
+ if (process.env.NODE_ENV !== "production") {
1023
+ window.__RUNTIME_LOGGER__ = {
1024
+ get() {
1025
+ return logger;
1026
+ }
1027
+ };
1028
+ }
1029
+ for (const interceptor of interceptors) {
1030
+ logger = interceptor(logger);
1031
+ }
1032
+ if (process.env.NODE_ENV !== "production") {
1033
+ interceptErrors();
1034
+ }
1035
+
1036
+ // src/runtime/iframe-bridge.ts
1037
+ var import_penpal = require("penpal");
1038
+
750
1039
  // src/utils/utils.ts
751
1040
  var import_clsx = require("clsx");
752
1041
  var import_tailwind_merge = require("tailwind-merge");
@@ -2148,7 +2437,8 @@ var ErrorRender = /* @__PURE__ */ __name((props) => {
2148
2437
  error
2149
2438
  ],
2150
2439
  meta: {
2151
- type: "render-error"
2440
+ type: "render-error",
2441
+ repairMessage: "\u9875\u9762\u6E32\u67D3\u65F6\u62A5\u9519\uFF0C\u8BF7\u6839\u636E\u9519\u8BEF\u4FE1\u606F\u4FEE\u590D\u5BF9\u5E94\u9875\u9762\u7684\u4EE3\u7801"
2152
2442
  }
2153
2443
  });
2154
2444
  }