@php-wasm/logger 0.7.20 → 0.9.4
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/index.cjs +3 -3
- package/index.js +50 -40
- package/lib/handlers/log-event.d.ts +3 -0
- package/lib/logger.d.ts +1 -0
- package/package.json +2 -2
package/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
2
|
-
`):JSON.stringify(e,null,2),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const w=function(){var e;return typeof process<"u"&&((e=process.release)==null?void 0:e.name)==="node"?"NODE":typeof window<"u"?"WEB":typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?"WORKER":"NODE"}();if(w==="NODE"){let e=function(t){return new Promise(function(s,o){t.onload=t.onerror=function(n){t.onload=t.onerror=null,n.type==="load"?s(t.result):o(new Error("Failed to read the blob/file"))}})},r=function(){const t=new Uint8Array([1,2,3,4]),o=new File([t],"test").stream();try{return o.getReader({mode:"byob"}),!0}catch{return!1}};if(typeof File>"u"){class t extends Blob{constructor(o,n,i){super(o);let a;i!=null&&i.lastModified&&(a=new Date),(!a||isNaN(a.getFullYear()))&&(a=new Date),this.lastModifiedDate=a,this.lastModified=a.getMilliseconds(),this.name=n||""}}global.File=t}typeof Blob.prototype.arrayBuffer>"u"&&(Blob.prototype.arrayBuffer=function(){const s=new FileReader;return s.readAsArrayBuffer(this),e(s)}),typeof Blob.prototype.text>"u"&&(Blob.prototype.text=function(){const s=new FileReader;return s.readAsText(this),e(s)}),(typeof Blob.prototype.stream>"u"||!r())&&(Blob.prototype.stream=function(){let t=0;const s=this;return new ReadableStream({type:"bytes",autoAllocateChunkSize:512*1024,async pull(o){const n=o.byobRequest.view,a=await s.slice(t,t+n.byteLength).arrayBuffer(),u=new Uint8Array(a);new Uint8Array(n.buffer).set(u);const g=u.byteLength;o.byobRequest.respond(g),t+=g,t>=s.size&&o.close()}})})}if(w==="NODE"&&typeof CustomEvent>"u"){class e extends Event{constructor(t,s={}){super(t,s),this.detail=s.detail}initCustomEvent(){}}globalThis.CustomEvent=e}const E="playground-log",m=(e,...r)=>{M.dispatchEvent(new CustomEvent(E,{detail:{log:e,args:r}}))},O=(e,...r)=>{switch(typeof e.message=="string"?e.message=l(e.message):e.message.message&&typeof e.message.message=="string"&&(e.message.message=l(e.message.message)),e.severity){case"Debug":console.debug(e.message,...r);break;case"Info":console.info(e.message,...r);break;case"Warn":console.warn(e.message,...r);break;case"Error":console.error(e.message,...r);break;case"Fatal":console.error(e.message,...r);break;default:console.log(e.message,...r)}},P=e=>e instanceof Error?[e.message,e.stack].join(`
|
|
2
|
+
`):JSON.stringify(e,null,2),v=[],p=e=>{v.push(e)},f=e=>{if(e.raw===!0)p(e.message);else{const r=T(typeof e.message=="object"?P(e.message):e.message,e.severity??"Info",e.prefix??"JavaScript");p(r)}};class L extends EventTarget{constructor(r=[]){super(),this.handlers=r,this.fatalErrorEvent="playground-fatal-error"}getLogs(){return this.handlers.includes(f)?[...v]:(this.error(`Logs aren't stored because the logToMemory handler isn't registered.
|
|
3
3
|
If you're using a custom logger instance, make sure to register logToMemory handler.
|
|
4
|
-
`),[])}logMessage(r,...t){for(const s of this.handlers)s(r,...t)}log(r,...t){this.logMessage({message:r,severity:void 0,prefix:"JavaScript",raw:!1},...t)}debug(r,...t){this.logMessage({message:r,severity:"Debug",prefix:"JavaScript",raw:!1},...t)}info(r,...t){this.logMessage({message:r,severity:"Info",prefix:"JavaScript",raw:!1},...t)}warn(r,...t){this.logMessage({message:r,severity:"Warn",prefix:"JavaScript",raw:!1},...t)}error(r,...t){this.logMessage({message:r,severity:"Error",prefix:"JavaScript",raw:!1},...t)}}const
|
|
4
|
+
`),[])}logMessage(r,...t){for(const s of this.handlers)s(r,...t)}log(r,...t){this.logMessage({message:r,severity:void 0,prefix:"JavaScript",raw:!1},...t)}debug(r,...t){this.logMessage({message:r,severity:"Debug",prefix:"JavaScript",raw:!1},...t)}info(r,...t){this.logMessage({message:r,severity:"Info",prefix:"JavaScript",raw:!1},...t)}warn(r,...t){this.logMessage({message:r,severity:"Warn",prefix:"JavaScript",raw:!1},...t)}error(r,...t){this.logMessage({message:r,severity:"Error",prefix:"JavaScript",raw:!1},...t)}}const S=()=>{try{if(process.env.NODE_ENV==="test")return[f,m]}catch{}return[f,O,m]},M=new L(S()),l=e=>e.replace(/\t/g,""),T=(e,r,t)=>{const s=new Date,o=new Intl.DateTimeFormat("en-GB",{year:"numeric",month:"short",day:"2-digit",timeZone:"UTC"}).format(s).replace(/ /g,"-"),n=new Intl.DateTimeFormat("en-GB",{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1,timeZone:"UTC",timeZoneName:"short"}).format(s),i=o+" "+n;return e=l(e),`[${i}] ${t} ${r}: ${e}`},k=(e,r)=>{e.addEventListener(e.fatalErrorEvent,r)};let c=0;const y="/wordpress/wp-content/debug.log",B=async e=>await e.fileExists(y)?await e.readFileAsText(y):"",x=(e,r)=>{r.addEventListener("request.end",async()=>{const t=await B(r);if(t.length>c){const s=t.substring(c);e.logMessage({message:s,raw:!0}),c=t.length}}),r.addEventListener("request.error",t=>{t=t,t.error&&(e.logMessage({message:`${t.error.message} ${t.error.stack}`,severity:"Fatal",prefix:t.source==="request"?"PHP":"WASM Crash"}),e.dispatchEvent(new CustomEvent(e.fatalErrorEvent,{detail:{logs:e.getLogs(),source:t.source}})))})},D=(e,r)=>{e.logMessage({message:`${r.message} in ${r.filename} on line ${r.lineno}:${r.colno}`,severity:"Error"})},h=(e,r)=>{if(!(r!=null&&r.reason))return;const t=(r==null?void 0:r.reason.stack)??r.reason;e.logMessage({message:t,severity:"Error"})};let d=0;const C=e=>{navigator.serviceWorker.addEventListener("message",r=>{var t,s,o;((t=r.data)==null?void 0:t.numberOfOpenPlaygroundTabs)!==void 0&&d!==((s=r.data)==null?void 0:s.numberOfOpenPlaygroundTabs)&&(d=(o=r.data)==null?void 0:o.numberOfOpenPlaygroundTabs,e.debug(`Number of open Playground tabs is: ${d}`))})};let b=!1;const W=e=>{b||(C(e),!(typeof window>"u")&&(window.addEventListener("error",r=>D(e,r)),window.addEventListener("unhandledrejection",r=>h(e,r)),window.addEventListener("rejectionhandled",r=>h(e,r)),b=!0))},F=e=>{e.addEventListener("activate",()=>{e.clients.matchAll().then(r=>{const t={numberOfOpenPlaygroundTabs:r.filter(s=>s.frameType==="top-level").length};for(const s of r)s.postMessage(t)})})};exports.Logger=L;exports.addCrashListener=k;exports.collectPhpLogs=x;exports.collectWindowErrors=W;exports.formatLogEntry=T;exports.logEventType=E;exports.logger=M;exports.prepareLogMessage=l;exports.reportServiceWorkerMetrics=F;
|
package/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const
|
|
1
|
+
const w = function() {
|
|
2
2
|
var e;
|
|
3
3
|
return typeof process < "u" && ((e = process.release) == null ? void 0 : e.name) === "node" ? "NODE" : typeof window < "u" ? "WEB" : (
|
|
4
4
|
// @ts-ignore
|
|
@@ -6,7 +6,7 @@ const b = function() {
|
|
|
6
6
|
self instanceof WorkerGlobalScope ? "WORKER" : "NODE"
|
|
7
7
|
);
|
|
8
8
|
}();
|
|
9
|
-
if (
|
|
9
|
+
if (w === "NODE") {
|
|
10
10
|
let e = function(t) {
|
|
11
11
|
return new Promise(function(s, o) {
|
|
12
12
|
t.onload = t.onerror = function(n) {
|
|
@@ -51,13 +51,13 @@ if (b === "NODE") {
|
|
|
51
51
|
t + n.byteLength
|
|
52
52
|
).arrayBuffer(), u = new Uint8Array(a);
|
|
53
53
|
new Uint8Array(n.buffer).set(u);
|
|
54
|
-
const
|
|
55
|
-
o.byobRequest.respond(
|
|
54
|
+
const g = u.byteLength;
|
|
55
|
+
o.byobRequest.respond(g), t += g, t >= s.size && o.close();
|
|
56
56
|
}
|
|
57
57
|
});
|
|
58
58
|
});
|
|
59
59
|
}
|
|
60
|
-
if (
|
|
60
|
+
if (w === "NODE" && typeof CustomEvent > "u") {
|
|
61
61
|
class e extends Event {
|
|
62
62
|
constructor(t, s = {}) {
|
|
63
63
|
super(t, s), this.detail = s.detail;
|
|
@@ -67,7 +67,16 @@ if (b === "NODE" && typeof CustomEvent > "u") {
|
|
|
67
67
|
}
|
|
68
68
|
globalThis.CustomEvent = e;
|
|
69
69
|
}
|
|
70
|
-
const
|
|
70
|
+
const v = "playground-log", m = (e, ...r) => {
|
|
71
|
+
B.dispatchEvent(
|
|
72
|
+
new CustomEvent(v, {
|
|
73
|
+
detail: {
|
|
74
|
+
log: e,
|
|
75
|
+
args: r
|
|
76
|
+
}
|
|
77
|
+
})
|
|
78
|
+
);
|
|
79
|
+
}, L = (e, ...r) => {
|
|
71
80
|
switch (typeof e.message == "string" ? e.message = l(e.message) : e.message.message && typeof e.message.message == "string" && (e.message.message = l(e.message.message)), e.severity) {
|
|
72
81
|
case "Debug":
|
|
73
82
|
console.debug(e.message, ...r);
|
|
@@ -87,22 +96,22 @@ const E = (e, ...r) => {
|
|
|
87
96
|
default:
|
|
88
97
|
console.log(e.message, ...r);
|
|
89
98
|
}
|
|
90
|
-
},
|
|
91
|
-
`) : JSON.stringify(e, null, 2),
|
|
92
|
-
|
|
99
|
+
}, T = (e) => e instanceof Error ? [e.message, e.stack].join(`
|
|
100
|
+
`) : JSON.stringify(e, null, 2), E = [], p = (e) => {
|
|
101
|
+
E.push(e);
|
|
93
102
|
}, d = (e) => {
|
|
94
103
|
if (e.raw === !0)
|
|
95
|
-
|
|
104
|
+
p(e.message);
|
|
96
105
|
else {
|
|
97
|
-
const r =
|
|
98
|
-
typeof e.message == "object" ?
|
|
106
|
+
const r = O(
|
|
107
|
+
typeof e.message == "object" ? T(e.message) : e.message,
|
|
99
108
|
e.severity ?? "Info",
|
|
100
109
|
e.prefix ?? "JavaScript"
|
|
101
110
|
);
|
|
102
|
-
|
|
111
|
+
p(r);
|
|
103
112
|
}
|
|
104
113
|
};
|
|
105
|
-
class
|
|
114
|
+
class M extends EventTarget {
|
|
106
115
|
// constructor
|
|
107
116
|
constructor(r = []) {
|
|
108
117
|
super(), this.handlers = r, this.fatalErrorEvent = "playground-fatal-error";
|
|
@@ -112,7 +121,7 @@ class L extends EventTarget {
|
|
|
112
121
|
* @returns string[]
|
|
113
122
|
*/
|
|
114
123
|
getLogs() {
|
|
115
|
-
return this.handlers.includes(d) ? [...
|
|
124
|
+
return this.handlers.includes(d) ? [...E] : (this.error(`Logs aren't stored because the logToMemory handler isn't registered.
|
|
116
125
|
If you're using a custom logger instance, make sure to register logToMemory handler.
|
|
117
126
|
`), []);
|
|
118
127
|
}
|
|
@@ -214,14 +223,14 @@ class L extends EventTarget {
|
|
|
214
223
|
);
|
|
215
224
|
}
|
|
216
225
|
}
|
|
217
|
-
const
|
|
226
|
+
const x = () => {
|
|
218
227
|
try {
|
|
219
228
|
if (process.env.NODE_ENV === "test")
|
|
220
|
-
return [d];
|
|
229
|
+
return [d, m];
|
|
221
230
|
} catch {
|
|
222
231
|
}
|
|
223
|
-
return [d,
|
|
224
|
-
},
|
|
232
|
+
return [d, L, m];
|
|
233
|
+
}, B = new M(x()), l = (e) => e.replace(/\t/g, ""), O = (e, r, t) => {
|
|
225
234
|
const s = /* @__PURE__ */ new Date(), o = new Intl.DateTimeFormat("en-GB", {
|
|
226
235
|
year: "numeric",
|
|
227
236
|
month: "short",
|
|
@@ -236,13 +245,13 @@ const M = () => {
|
|
|
236
245
|
timeZoneName: "short"
|
|
237
246
|
}).format(s), i = o + " " + n;
|
|
238
247
|
return e = l(e), `[${i}] ${t} ${r}: ${e}`;
|
|
239
|
-
},
|
|
248
|
+
}, S = (e, r) => {
|
|
240
249
|
e.addEventListener(e.fatalErrorEvent, r);
|
|
241
250
|
};
|
|
242
251
|
let f = 0;
|
|
243
|
-
const
|
|
252
|
+
const y = "/wordpress/wp-content/debug.log", k = async (e) => await e.fileExists(y) ? await e.readFileAsText(y) : "", C = (e, r) => {
|
|
244
253
|
r.addEventListener("request.end", async () => {
|
|
245
|
-
const t = await
|
|
254
|
+
const t = await k(r);
|
|
246
255
|
if (t.length > f) {
|
|
247
256
|
const s = t.substring(f);
|
|
248
257
|
e.logMessage({
|
|
@@ -264,12 +273,12 @@ const p = "/wordpress/wp-content/debug.log", x = async (e) => await e.fileExists
|
|
|
264
273
|
})
|
|
265
274
|
));
|
|
266
275
|
});
|
|
267
|
-
},
|
|
276
|
+
}, P = (e, r) => {
|
|
268
277
|
e.logMessage({
|
|
269
278
|
message: `${r.message} in ${r.filename} on line ${r.lineno}:${r.colno}`,
|
|
270
279
|
severity: "Error"
|
|
271
280
|
});
|
|
272
|
-
},
|
|
281
|
+
}, h = (e, r) => {
|
|
273
282
|
if (!(r != null && r.reason))
|
|
274
283
|
return;
|
|
275
284
|
const t = (r == null ? void 0 : r.reason.stack) ?? r.reason;
|
|
@@ -279,7 +288,7 @@ const p = "/wordpress/wp-content/debug.log", x = async (e) => await e.fileExists
|
|
|
279
288
|
});
|
|
280
289
|
};
|
|
281
290
|
let c = 0;
|
|
282
|
-
const
|
|
291
|
+
const D = (e) => {
|
|
283
292
|
navigator.serviceWorker.addEventListener("message", (r) => {
|
|
284
293
|
var t, s, o;
|
|
285
294
|
((t = r.data) == null ? void 0 : t.numberOfOpenPlaygroundTabs) !== void 0 && c !== ((s = r.data) == null ? void 0 : s.numberOfOpenPlaygroundTabs) && (c = (o = r.data) == null ? void 0 : o.numberOfOpenPlaygroundTabs, e.debug(
|
|
@@ -287,19 +296,19 @@ const O = (e) => {
|
|
|
287
296
|
));
|
|
288
297
|
});
|
|
289
298
|
};
|
|
290
|
-
let
|
|
291
|
-
const
|
|
292
|
-
|
|
299
|
+
let b = !1;
|
|
300
|
+
const F = (e) => {
|
|
301
|
+
b || (D(e), !(typeof window > "u") && (window.addEventListener(
|
|
293
302
|
"error",
|
|
294
|
-
(r) =>
|
|
303
|
+
(r) => P(e, r)
|
|
295
304
|
), window.addEventListener(
|
|
296
305
|
"unhandledrejection",
|
|
297
|
-
(r) =>
|
|
306
|
+
(r) => h(e, r)
|
|
298
307
|
), window.addEventListener(
|
|
299
308
|
"rejectionhandled",
|
|
300
|
-
(r) =>
|
|
301
|
-
),
|
|
302
|
-
},
|
|
309
|
+
(r) => h(e, r)
|
|
310
|
+
), b = !0));
|
|
311
|
+
}, R = (e) => {
|
|
303
312
|
e.addEventListener("activate", () => {
|
|
304
313
|
e.clients.matchAll().then((r) => {
|
|
305
314
|
const t = {
|
|
@@ -314,12 +323,13 @@ const S = (e) => {
|
|
|
314
323
|
});
|
|
315
324
|
};
|
|
316
325
|
export {
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
326
|
+
M as Logger,
|
|
327
|
+
S as addCrashListener,
|
|
328
|
+
C as collectPhpLogs,
|
|
329
|
+
F as collectWindowErrors,
|
|
330
|
+
O as formatLogEntry,
|
|
331
|
+
v as logEventType,
|
|
332
|
+
B as logger,
|
|
323
333
|
l as prepareLogMessage,
|
|
324
|
-
|
|
334
|
+
R as reportServiceWorkerMetrics
|
|
325
335
|
};
|
package/lib/logger.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@php-wasm/logger",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.4",
|
|
4
4
|
"description": "A logger for PHP-wasm clients like Playground and WP-now.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -27,5 +27,5 @@
|
|
|
27
27
|
"node": ">=18.18.0",
|
|
28
28
|
"npm": ">=8.11.0"
|
|
29
29
|
},
|
|
30
|
-
"gitHead": "
|
|
30
|
+
"gitHead": "702bb9bed9c153ea23651059592aea19c1ba9be4"
|
|
31
31
|
}
|