piral-debug-utils 1.8.0-beta.7739 → 1.8.0-beta.7744

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/lib/overlay.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { convertError } from './stack';
1
2
  // Create an element with provided attributes and optional children
2
3
  function h(e, attrs = {}, ...children) {
3
4
  const elem = document.createElement(e);
@@ -151,7 +152,7 @@ kbd {
151
152
  `;
152
153
  // Error Template
153
154
  const createTemplate = () => h('div', { class: 'backdrop', part: 'backdrop' }, h('div', { class: 'window', part: 'window' }, h('pre', { class: 'message', part: 'message' }, h('span', { class: 'plugin', part: 'plugin' }), h('span', { class: 'message-body', part: 'message-body' })), h('pre', { class: 'file', part: 'file' }), h('pre', { class: 'frame', part: 'frame' }), h('pre', { class: 'stack', part: 'stack' }), h('div', { class: 'tip', part: 'tip' }, 'Click outside, press ', h('kbd', {}, 'Esc'), ' key, or fix the code to dismiss.', h('br'), 'You can also disable this overlay by setting ', h('code', { part: 'config-option-name' }, 'dbg:error-overlay'), ' to ', h('code', { part: 'config-option-value' }, '"off"'), ' in ', h('code', { part: 'config-file-name' }, 'sessionStorage'), '.')), h('style', {}, templateStyle));
154
- const fileRE = /(?:[a-zA-Z]:\\|\/).*?:\d+:\d+/g;
155
+ const fileRE = /(?:[a-zA-Z]:\\|\/).*?:\d+:\d*/g;
155
156
  const codeframeRE = /^(?:>?\s*\d+\s+\|.*|\s+\|\s*\^.*)\r?\n/gm;
156
157
  export const overlayId = 'piral-error-overlay';
157
158
  if (typeof window !== 'undefined' && 'customElements' in window) {
@@ -178,7 +179,10 @@ if (typeof window !== 'undefined' && 'customElements' in window) {
178
179
  if (hasFrame) {
179
180
  this.text('.frame', error.frame.trim());
180
181
  }
181
- this.text('.stack', error.stack, links);
182
+ this.text('.stack', error.stack.split('\n').slice(0, 15).join('\n'), links);
183
+ convertError(error, 0, 15).then((newStack) => {
184
+ this.text('.stack', newStack, links);
185
+ });
182
186
  this.root.querySelector('.window').addEventListener('click', (e) => {
183
187
  e.stopPropagation();
184
188
  });
@@ -196,6 +200,7 @@ if (typeof window !== 'undefined' && 'customElements' in window) {
196
200
  }
197
201
  text(selector, text, linkFiles = false) {
198
202
  const el = this.root.querySelector(selector);
203
+ el.textContent = '';
199
204
  if (linkFiles) {
200
205
  let curIndex = 0;
201
206
  let match;
@@ -1 +1 @@
1
- {"version":3,"file":"overlay.js","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overlay.js","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"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"}
package/lib/stack.d.ts ADDED
@@ -0,0 +1,54 @@
1
+ export interface StackTraceOptions {
2
+ filter?: (stackFrame: StackFrame) => boolean;
3
+ sourceCache?: SourceCache;
4
+ offline?: boolean;
5
+ }
6
+ export interface SourceCache {
7
+ [key: string]: string | Promise<string>;
8
+ }
9
+ export interface StackFrame {
10
+ constructor(object: StackFrame): StackFrame;
11
+ isConstructor?: boolean;
12
+ getIsConstructor(): boolean;
13
+ setIsConstructor(): void;
14
+ isEval?: boolean;
15
+ getIsEval(): boolean;
16
+ setIsEval(): void;
17
+ isNative?: boolean;
18
+ getIsNative(): boolean;
19
+ setIsNative(): void;
20
+ isTopLevel?: boolean;
21
+ getIsTopLevel(): boolean;
22
+ setIsTopLevel(): void;
23
+ columnNumber?: number;
24
+ getColumnNumber(): number;
25
+ setColumnNumber(): void;
26
+ lineNumber?: number;
27
+ getLineNumber(): number;
28
+ setLineNumber(): void;
29
+ fileName?: string;
30
+ getFileName(): string;
31
+ setFileName(): void;
32
+ functionName?: string;
33
+ getFunctionName(): string;
34
+ setFunctionName(): void;
35
+ source?: string;
36
+ getSource(): string;
37
+ setSource(): void;
38
+ args?: any[];
39
+ getArgs(): any[];
40
+ setArgs(): void;
41
+ evalOrigin?: StackFrame;
42
+ getEvalOrigin(): StackFrame;
43
+ setEvalOrigin(): void;
44
+ toString(): string;
45
+ }
46
+ declare global {
47
+ interface Window {
48
+ StackTrace: {
49
+ fromError(error: Error, options?: StackTraceOptions): Promise<Array<StackFrame>>;
50
+ };
51
+ }
52
+ }
53
+ export declare function install(): Promise<void>;
54
+ export declare function convertError(error: any, start?: number, end?: number): Promise<string>;
package/lib/stack.js ADDED
@@ -0,0 +1,22 @@
1
+ let installPromise;
2
+ export function install() {
3
+ if (!installPromise) {
4
+ installPromise = new Promise((resolve, reject) => {
5
+ const sts = document.createElement('script');
6
+ sts.src = 'https://cdnjs.cloudflare.com/ajax/libs/stacktrace.js/2.0.2/stacktrace.min.js';
7
+ document.head.appendChild(sts);
8
+ sts.onload = () => resolve();
9
+ sts.onerror = () => reject();
10
+ });
11
+ }
12
+ return installPromise;
13
+ }
14
+ export async function convertError(error, start = 0, end = -1) {
15
+ await install();
16
+ const frames = await window.StackTrace.fromError(error);
17
+ return frames
18
+ .slice(start, end)
19
+ .map((sf) => sf.toString())
20
+ .join('\n');
21
+ }
22
+ //# sourceMappingURL=stack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack.js","sourceRoot":"","sources":["../src/stack.ts"],"names":[],"mappings":"AAoEA,IAAI,cAAyC,CAAC;AAE9C,MAAM,UAAU,OAAO;IACrB,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,cAAc,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrD,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC7C,GAAG,CAAC,GAAG,GAAG,8EAA8E,CAAC;YACzF,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC/B,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;YAC7B,GAAG,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAU,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;IAChE,MAAM,OAAO,EAAE,CAAC;IAChB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACxD,OAAO,MAAM;SACV,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;SACjB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;SAC1B,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "piral-debug-utils",
3
- "version": "1.8.0-beta.7739",
3
+ "version": "1.8.0-beta.7744",
4
4
  "description": "Utilities for debugging Piral instances.",
5
5
  "keywords": [
6
6
  "piral",
@@ -49,7 +49,7 @@
49
49
  "test": "echo \"Error: run tests from root\" && exit 1"
50
50
  },
51
51
  "devDependencies": {
52
- "piral-base": "1.8.0-beta.7739"
52
+ "piral-base": "1.8.0-beta.7744"
53
53
  },
54
- "gitHead": "fb55f1bda33c0b73baa1b0485543acfcc81bc6a6"
54
+ "gitHead": "8815cbfb9ea38d9e559e3b7745c7592daad7e99c"
55
55
  }
package/src/overlay.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import { convertError } from './stack';
2
+
1
3
  // Create an element with provided attributes and optional children
2
4
  function h(e: string, attrs: Record<string, string> = {}, ...children: (string | Node)[]) {
3
5
  const elem = document.createElement(e);
@@ -189,7 +191,7 @@ const createTemplate = () =>
189
191
  h('style', {}, templateStyle),
190
192
  );
191
193
 
192
- const fileRE = /(?:[a-zA-Z]:\\|\/).*?:\d+:\d+/g;
194
+ const fileRE = /(?:[a-zA-Z]:\\|\/).*?:\d+:\d*/g;
193
195
  const codeframeRE = /^(?:>?\s*\d+\s+\|.*|\s+\|\s*\^.*)\r?\n/gm;
194
196
 
195
197
  interface ExtendedError {
@@ -253,7 +255,11 @@ if (typeof window !== 'undefined' && 'customElements' in window) {
253
255
  this.text('.frame', error.frame!.trim());
254
256
  }
255
257
 
256
- this.text('.stack', error.stack, links);
258
+ this.text('.stack', error.stack.split('\n').slice(0, 15).join('\n'), links);
259
+
260
+ convertError(error, 0, 15).then((newStack) => {
261
+ this.text('.stack', newStack, links);
262
+ });
257
263
 
258
264
  this.root.querySelector('.window')!.addEventListener('click', (e) => {
259
265
  e.stopPropagation();
@@ -277,6 +283,7 @@ if (typeof window !== 'undefined' && 'customElements' in window) {
277
283
 
278
284
  text(selector: string, text: string, linkFiles = false) {
279
285
  const el = this.root.querySelector(selector)!;
286
+ el.textContent = '';
280
287
 
281
288
  if (linkFiles) {
282
289
  let curIndex = 0;
package/src/stack.ts ADDED
@@ -0,0 +1,92 @@
1
+ export interface StackTraceOptions {
2
+ filter?: (stackFrame: StackFrame) => boolean;
3
+ sourceCache?: SourceCache;
4
+ offline?: boolean;
5
+ }
6
+
7
+ export interface SourceCache {
8
+ [key: string]: string | Promise<string>;
9
+ }
10
+
11
+ export interface StackFrame {
12
+ constructor(object: StackFrame): StackFrame;
13
+
14
+ isConstructor?: boolean;
15
+ getIsConstructor(): boolean;
16
+ setIsConstructor(): void;
17
+
18
+ isEval?: boolean;
19
+ getIsEval(): boolean;
20
+ setIsEval(): void;
21
+
22
+ isNative?: boolean;
23
+ getIsNative(): boolean;
24
+ setIsNative(): void;
25
+
26
+ isTopLevel?: boolean;
27
+ getIsTopLevel(): boolean;
28
+ setIsTopLevel(): void;
29
+
30
+ columnNumber?: number;
31
+ getColumnNumber(): number;
32
+ setColumnNumber(): void;
33
+
34
+ lineNumber?: number;
35
+ getLineNumber(): number;
36
+ setLineNumber(): void;
37
+
38
+ fileName?: string;
39
+ getFileName(): string;
40
+ setFileName(): void;
41
+
42
+ functionName?: string;
43
+ getFunctionName(): string;
44
+ setFunctionName(): void;
45
+
46
+ source?: string;
47
+ getSource(): string;
48
+ setSource(): void;
49
+
50
+ args?: any[];
51
+ getArgs(): any[];
52
+ setArgs(): void;
53
+
54
+ evalOrigin?: StackFrame;
55
+ getEvalOrigin(): StackFrame;
56
+ setEvalOrigin(): void;
57
+
58
+ toString(): string;
59
+ }
60
+
61
+ declare global {
62
+ interface Window {
63
+ StackTrace: {
64
+ fromError(error: Error, options?: StackTraceOptions): Promise<Array<StackFrame>>;
65
+ };
66
+ }
67
+ }
68
+
69
+ let installPromise: Promise<void> | undefined;
70
+
71
+ export function install() {
72
+ if (!installPromise) {
73
+ installPromise = new Promise<void>((resolve, reject) => {
74
+ const sts = document.createElement('script');
75
+ sts.src = 'https://cdnjs.cloudflare.com/ajax/libs/stacktrace.js/2.0.2/stacktrace.min.js';
76
+ document.head.appendChild(sts);
77
+ sts.onload = () => resolve();
78
+ sts.onerror = () => reject();
79
+ });
80
+ }
81
+
82
+ return installPromise;
83
+ }
84
+
85
+ export async function convertError(error: any, start = 0, end = -1) {
86
+ await install();
87
+ const frames = await window.StackTrace.fromError(error);
88
+ return frames
89
+ .slice(start, end)
90
+ .map((sf) => sf.toString())
91
+ .join('\n');
92
+ }