@php-wasm/logger 0.9.13 → 0.9.15
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 +78 -146
- package/package.json +2 -2
package/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});
|
|
2
|
-
`):JSON.stringify(e,null,2),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("@php-wasm/node-polyfills");const m="playground-log",g=(e,...r)=>{y.dispatchEvent(new CustomEvent(m,{detail:{log:e,args:r}}))},b=(e,...r)=>{switch(typeof e.message=="string"?e.message=a(e.message):e.message.message&&typeof e.message.message=="string"&&(e.message.message=a(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)}},v=e=>e instanceof Error?[e.message,e.stack].join(`
|
|
2
|
+
`):JSON.stringify(e,null,2),p=[],d=e=>{p.push(e)},c=e=>{if(e.raw===!0)d(e.message);else{const r=E(typeof e.message=="object"?v(e.message):e.message,e.severity??"Info",e.prefix??"JavaScript");d(r)}};class h extends EventTarget{constructor(r=[]){super(),this.handlers=r,this.fatalErrorEvent="playground-fatal-error"}getLogs(){return this.handlers.includes(c)?[...p]:(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,...
|
|
4
|
+
`),[])}logMessage(r,...s){for(const t of this.handlers)t(r,...s)}log(r,...s){this.logMessage({message:r,severity:void 0,prefix:"JavaScript",raw:!1},...s)}debug(r,...s){this.logMessage({message:r,severity:"Debug",prefix:"JavaScript",raw:!1},...s)}info(r,...s){this.logMessage({message:r,severity:"Info",prefix:"JavaScript",raw:!1},...s)}warn(r,...s){this.logMessage({message:r,severity:"Warn",prefix:"JavaScript",raw:!1},...s)}error(r,...s){this.logMessage({message:r,severity:"Error",prefix:"JavaScript",raw:!1},...s)}}const T=()=>{try{if(process.env.NODE_ENV==="test")return[c,g]}catch{}return[c,b,g]},y=new h(T()),a=e=>e.replace(/\t/g,""),E=(e,r,s)=>{const t=new Date,o=new Intl.DateTimeFormat("en-GB",{year:"numeric",month:"short",day:"2-digit",timeZone:"UTC"}).format(t).replace(/ /g,"-"),w=new Intl.DateTimeFormat("en-GB",{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1,timeZone:"UTC",timeZoneName:"short"}).format(t),L=o+" "+w;return e=a(e),`[${L}] ${s} ${r}: ${e}`},M=(e,r)=>{e.addEventListener(e.fatalErrorEvent,r)};let n=0;const l="/wordpress/wp-content/debug.log",P=async e=>await e.fileExists(l)?await e.readFileAsText(l):"",O=(e,r)=>{r.addEventListener("request.end",async()=>{const s=await P(r);if(s.length>n){const t=s.substring(n);e.logMessage({message:t,raw:!0}),n=s.length}}),r.addEventListener("request.error",s=>{s=s,s.error&&(e.logMessage({message:`${s.error.message} ${s.error.stack}`,severity:"Fatal",prefix:s.source==="request"?"PHP":"WASM Crash"}),e.dispatchEvent(new CustomEvent(e.fatalErrorEvent,{detail:{logs:e.getLogs(),source:s.source}})))})},S=(e,r)=>{e.logMessage({message:`${r.message} in ${r.filename} on line ${r.lineno}:${r.colno}`,severity:"Error"})},f=(e,r)=>{if(!(r!=null&&r.reason))return;const s=(r==null?void 0:r.reason.stack)??r.reason;e.logMessage({message:s,severity:"Error"})};let i=0;const k=e=>{navigator.serviceWorker.addEventListener("message",r=>{var s,t,o;((s=r.data)==null?void 0:s.numberOfOpenPlaygroundTabs)!==void 0&&i!==((t=r.data)==null?void 0:t.numberOfOpenPlaygroundTabs)&&(i=(o=r.data)==null?void 0:o.numberOfOpenPlaygroundTabs,e.debug(`Number of open Playground tabs is: ${i}`))})};let u=!1;const $=e=>{u||(k(e),!(typeof window>"u")&&(window.addEventListener("error",r=>S(e,r)),window.addEventListener("unhandledrejection",r=>f(e,r)),window.addEventListener("rejectionhandled",r=>f(e,r)),u=!0))},x=e=>{e.addEventListener("activate",()=>{e.clients.matchAll().then(r=>{const s={numberOfOpenPlaygroundTabs:r.filter(t=>t.frameType==="top-level").length};for(const t of r)t.postMessage(s)})})};exports.Logger=h;exports.addCrashListener=M;exports.collectPhpLogs=O;exports.collectWindowErrors=$;exports.formatLogEntry=E;exports.logEventType=m;exports.logger=y;exports.prepareLogMessage=a;exports.reportServiceWorkerMetrics=x;
|
package/index.js
CHANGED
|
@@ -1,83 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
typeof WorkerGlobalScope < "u" && // @ts-ignore
|
|
6
|
-
self instanceof WorkerGlobalScope ? "WORKER" : "NODE"
|
|
7
|
-
);
|
|
8
|
-
}();
|
|
9
|
-
if (w === "NODE") {
|
|
10
|
-
let e = function(t) {
|
|
11
|
-
return new Promise(function(s, o) {
|
|
12
|
-
t.onload = t.onerror = function(n) {
|
|
13
|
-
t.onload = t.onerror = null, n.type === "load" ? s(t.result) : o(new Error("Failed to read the blob/file"));
|
|
14
|
-
};
|
|
15
|
-
});
|
|
16
|
-
}, r = function() {
|
|
17
|
-
const t = new Uint8Array([1, 2, 3, 4]), o = new File([t], "test").stream();
|
|
18
|
-
try {
|
|
19
|
-
return o.getReader({ mode: "byob" }), !0;
|
|
20
|
-
} catch {
|
|
21
|
-
return !1;
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
if (typeof File > "u") {
|
|
25
|
-
class t extends Blob {
|
|
26
|
-
constructor(o, n, i) {
|
|
27
|
-
super(o);
|
|
28
|
-
let a;
|
|
29
|
-
i != null && i.lastModified && (a = /* @__PURE__ */ new Date()), (!a || isNaN(a.getFullYear())) && (a = /* @__PURE__ */ new Date()), this.lastModifiedDate = a, this.lastModified = a.getMilliseconds(), this.name = n || "";
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
global.File = t;
|
|
33
|
-
}
|
|
34
|
-
typeof Blob.prototype.arrayBuffer > "u" && (Blob.prototype.arrayBuffer = function() {
|
|
35
|
-
const s = new FileReader();
|
|
36
|
-
return s.readAsArrayBuffer(this), e(s);
|
|
37
|
-
}), typeof Blob.prototype.text > "u" && (Blob.prototype.text = function() {
|
|
38
|
-
const s = new FileReader();
|
|
39
|
-
return s.readAsText(this), e(s);
|
|
40
|
-
}), (typeof Blob.prototype.stream > "u" || !r()) && (Blob.prototype.stream = function() {
|
|
41
|
-
let t = 0;
|
|
42
|
-
const s = this;
|
|
43
|
-
return new ReadableStream({
|
|
44
|
-
type: "bytes",
|
|
45
|
-
// 0.5 MB seems like a reasonable chunk size, let's adjust
|
|
46
|
-
// this if needed.
|
|
47
|
-
autoAllocateChunkSize: 512 * 1024,
|
|
48
|
-
async pull(o) {
|
|
49
|
-
const n = o.byobRequest.view, a = await s.slice(
|
|
50
|
-
t,
|
|
51
|
-
t + n.byteLength
|
|
52
|
-
).arrayBuffer(), u = new Uint8Array(a);
|
|
53
|
-
new Uint8Array(n.buffer).set(u);
|
|
54
|
-
const g = u.byteLength;
|
|
55
|
-
o.byobRequest.respond(g), t += g, t >= s.size && o.close();
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
if (w === "NODE" && typeof CustomEvent > "u") {
|
|
61
|
-
class e extends Event {
|
|
62
|
-
constructor(t, s = {}) {
|
|
63
|
-
super(t, s), this.detail = s.detail;
|
|
64
|
-
}
|
|
65
|
-
initCustomEvent() {
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
globalThis.CustomEvent = e;
|
|
69
|
-
}
|
|
70
|
-
const v = "playground-log", m = (e, ...r) => {
|
|
71
|
-
B.dispatchEvent(
|
|
72
|
-
new CustomEvent(v, {
|
|
1
|
+
import "@php-wasm/node-polyfills";
|
|
2
|
+
const E = "playground-log", d = (e, ...r) => {
|
|
3
|
+
v.dispatchEvent(
|
|
4
|
+
new CustomEvent(E, {
|
|
73
5
|
detail: {
|
|
74
6
|
log: e,
|
|
75
7
|
args: r
|
|
76
8
|
}
|
|
77
9
|
})
|
|
78
10
|
);
|
|
79
|
-
},
|
|
80
|
-
switch (typeof e.message == "string" ? e.message =
|
|
11
|
+
}, w = (e, ...r) => {
|
|
12
|
+
switch (typeof e.message == "string" ? e.message = c(e.message) : e.message.message && typeof e.message.message == "string" && (e.message.message = c(e.message.message)), e.severity) {
|
|
81
13
|
case "Debug":
|
|
82
14
|
console.debug(e.message, ...r);
|
|
83
15
|
break;
|
|
@@ -96,22 +28,22 @@ const v = "playground-log", m = (e, ...r) => {
|
|
|
96
28
|
default:
|
|
97
29
|
console.log(e.message, ...r);
|
|
98
30
|
}
|
|
99
|
-
},
|
|
100
|
-
`) : JSON.stringify(e, null, 2),
|
|
101
|
-
|
|
102
|
-
},
|
|
31
|
+
}, y = (e) => e instanceof Error ? [e.message, e.stack].join(`
|
|
32
|
+
`) : JSON.stringify(e, null, 2), u = [], g = (e) => {
|
|
33
|
+
u.push(e);
|
|
34
|
+
}, i = (e) => {
|
|
103
35
|
if (e.raw === !0)
|
|
104
|
-
|
|
36
|
+
g(e.message);
|
|
105
37
|
else {
|
|
106
|
-
const r =
|
|
107
|
-
typeof e.message == "object" ?
|
|
38
|
+
const r = T(
|
|
39
|
+
typeof e.message == "object" ? y(e.message) : e.message,
|
|
108
40
|
e.severity ?? "Info",
|
|
109
41
|
e.prefix ?? "JavaScript"
|
|
110
42
|
);
|
|
111
|
-
|
|
43
|
+
g(r);
|
|
112
44
|
}
|
|
113
45
|
};
|
|
114
|
-
class
|
|
46
|
+
class b extends EventTarget {
|
|
115
47
|
// constructor
|
|
116
48
|
constructor(r = []) {
|
|
117
49
|
super(), this.handlers = r, this.fatalErrorEvent = "playground-fatal-error";
|
|
@@ -121,7 +53,7 @@ class M extends EventTarget {
|
|
|
121
53
|
* @returns string[]
|
|
122
54
|
*/
|
|
123
55
|
getLogs() {
|
|
124
|
-
return this.handlers.includes(
|
|
56
|
+
return this.handlers.includes(i) ? [...u] : (this.error(`Logs aren't stored because the logToMemory handler isn't registered.
|
|
125
57
|
If you're using a custom logger instance, make sure to register logToMemory handler.
|
|
126
58
|
`), []);
|
|
127
59
|
}
|
|
@@ -133,9 +65,9 @@ class M extends EventTarget {
|
|
|
133
65
|
* @param raw boolean
|
|
134
66
|
* @param args any
|
|
135
67
|
*/
|
|
136
|
-
logMessage(r, ...
|
|
137
|
-
for (const
|
|
138
|
-
|
|
68
|
+
logMessage(r, ...s) {
|
|
69
|
+
for (const t of this.handlers)
|
|
70
|
+
t(r, ...s);
|
|
139
71
|
}
|
|
140
72
|
/**
|
|
141
73
|
* Log message
|
|
@@ -143,7 +75,7 @@ class M extends EventTarget {
|
|
|
143
75
|
* @param message any
|
|
144
76
|
* @param args any
|
|
145
77
|
*/
|
|
146
|
-
log(r, ...
|
|
78
|
+
log(r, ...s) {
|
|
147
79
|
this.logMessage(
|
|
148
80
|
{
|
|
149
81
|
message: r,
|
|
@@ -151,7 +83,7 @@ class M extends EventTarget {
|
|
|
151
83
|
prefix: "JavaScript",
|
|
152
84
|
raw: !1
|
|
153
85
|
},
|
|
154
|
-
...
|
|
86
|
+
...s
|
|
155
87
|
);
|
|
156
88
|
}
|
|
157
89
|
/**
|
|
@@ -160,7 +92,7 @@ class M extends EventTarget {
|
|
|
160
92
|
* @param message any
|
|
161
93
|
* @param args any
|
|
162
94
|
*/
|
|
163
|
-
debug(r, ...
|
|
95
|
+
debug(r, ...s) {
|
|
164
96
|
this.logMessage(
|
|
165
97
|
{
|
|
166
98
|
message: r,
|
|
@@ -168,7 +100,7 @@ class M extends EventTarget {
|
|
|
168
100
|
prefix: "JavaScript",
|
|
169
101
|
raw: !1
|
|
170
102
|
},
|
|
171
|
-
...
|
|
103
|
+
...s
|
|
172
104
|
);
|
|
173
105
|
}
|
|
174
106
|
/**
|
|
@@ -177,7 +109,7 @@ class M extends EventTarget {
|
|
|
177
109
|
* @param message any
|
|
178
110
|
* @param args any
|
|
179
111
|
*/
|
|
180
|
-
info(r, ...
|
|
112
|
+
info(r, ...s) {
|
|
181
113
|
this.logMessage(
|
|
182
114
|
{
|
|
183
115
|
message: r,
|
|
@@ -185,7 +117,7 @@ class M extends EventTarget {
|
|
|
185
117
|
prefix: "JavaScript",
|
|
186
118
|
raw: !1
|
|
187
119
|
},
|
|
188
|
-
...
|
|
120
|
+
...s
|
|
189
121
|
);
|
|
190
122
|
}
|
|
191
123
|
/**
|
|
@@ -194,7 +126,7 @@ class M extends EventTarget {
|
|
|
194
126
|
* @param message any
|
|
195
127
|
* @param args any
|
|
196
128
|
*/
|
|
197
|
-
warn(r, ...
|
|
129
|
+
warn(r, ...s) {
|
|
198
130
|
this.logMessage(
|
|
199
131
|
{
|
|
200
132
|
message: r,
|
|
@@ -202,7 +134,7 @@ class M extends EventTarget {
|
|
|
202
134
|
prefix: "JavaScript",
|
|
203
135
|
raw: !1
|
|
204
136
|
},
|
|
205
|
-
...
|
|
137
|
+
...s
|
|
206
138
|
);
|
|
207
139
|
}
|
|
208
140
|
/**
|
|
@@ -211,7 +143,7 @@ class M extends EventTarget {
|
|
|
211
143
|
* @param message any
|
|
212
144
|
* @param args any
|
|
213
145
|
*/
|
|
214
|
-
error(r, ...
|
|
146
|
+
error(r, ...s) {
|
|
215
147
|
this.logMessage(
|
|
216
148
|
{
|
|
217
149
|
message: r,
|
|
@@ -219,56 +151,56 @@ class M extends EventTarget {
|
|
|
219
151
|
prefix: "JavaScript",
|
|
220
152
|
raw: !1
|
|
221
153
|
},
|
|
222
|
-
...
|
|
154
|
+
...s
|
|
223
155
|
);
|
|
224
156
|
}
|
|
225
157
|
}
|
|
226
|
-
const
|
|
158
|
+
const L = () => {
|
|
227
159
|
try {
|
|
228
160
|
if (process.env.NODE_ENV === "test")
|
|
229
|
-
return [
|
|
161
|
+
return [i, d];
|
|
230
162
|
} catch {
|
|
231
163
|
}
|
|
232
|
-
return [
|
|
233
|
-
},
|
|
234
|
-
const
|
|
164
|
+
return [i, w, d];
|
|
165
|
+
}, v = new b(L()), c = (e) => e.replace(/\t/g, ""), T = (e, r, s) => {
|
|
166
|
+
const t = /* @__PURE__ */ new Date(), a = new Intl.DateTimeFormat("en-GB", {
|
|
235
167
|
year: "numeric",
|
|
236
168
|
month: "short",
|
|
237
169
|
day: "2-digit",
|
|
238
170
|
timeZone: "UTC"
|
|
239
|
-
}).format(
|
|
171
|
+
}).format(t).replace(/ /g, "-"), p = new Intl.DateTimeFormat("en-GB", {
|
|
240
172
|
hour: "2-digit",
|
|
241
173
|
minute: "2-digit",
|
|
242
174
|
second: "2-digit",
|
|
243
175
|
hour12: !1,
|
|
244
176
|
timeZone: "UTC",
|
|
245
177
|
timeZoneName: "short"
|
|
246
|
-
}).format(
|
|
247
|
-
return e =
|
|
248
|
-
},
|
|
178
|
+
}).format(t), h = a + " " + p;
|
|
179
|
+
return e = c(e), `[${h}] ${s} ${r}: ${e}`;
|
|
180
|
+
}, k = (e, r) => {
|
|
249
181
|
e.addEventListener(e.fatalErrorEvent, r);
|
|
250
182
|
};
|
|
251
|
-
let
|
|
252
|
-
const
|
|
183
|
+
let o = 0;
|
|
184
|
+
const l = "/wordpress/wp-content/debug.log", M = async (e) => await e.fileExists(l) ? await e.readFileAsText(l) : "", x = (e, r) => {
|
|
253
185
|
r.addEventListener("request.end", async () => {
|
|
254
|
-
const
|
|
255
|
-
if (
|
|
256
|
-
const
|
|
186
|
+
const s = await M(r);
|
|
187
|
+
if (s.length > o) {
|
|
188
|
+
const t = s.substring(o);
|
|
257
189
|
e.logMessage({
|
|
258
|
-
message:
|
|
190
|
+
message: t,
|
|
259
191
|
raw: !0
|
|
260
|
-
}),
|
|
192
|
+
}), o = s.length;
|
|
261
193
|
}
|
|
262
|
-
}), r.addEventListener("request.error", (
|
|
263
|
-
|
|
264
|
-
message: `${
|
|
194
|
+
}), r.addEventListener("request.error", (s) => {
|
|
195
|
+
s = s, s.error && (e.logMessage({
|
|
196
|
+
message: `${s.error.message} ${s.error.stack}`,
|
|
265
197
|
severity: "Fatal",
|
|
266
|
-
prefix:
|
|
198
|
+
prefix: s.source === "request" ? "PHP" : "WASM Crash"
|
|
267
199
|
}), e.dispatchEvent(
|
|
268
200
|
new CustomEvent(e.fatalErrorEvent, {
|
|
269
201
|
detail: {
|
|
270
202
|
logs: e.getLogs(),
|
|
271
|
-
source:
|
|
203
|
+
source: s.source
|
|
272
204
|
}
|
|
273
205
|
})
|
|
274
206
|
));
|
|
@@ -278,58 +210,58 @@ const y = "/wordpress/wp-content/debug.log", k = async (e) => await e.fileExists
|
|
|
278
210
|
message: `${r.message} in ${r.filename} on line ${r.lineno}:${r.colno}`,
|
|
279
211
|
severity: "Error"
|
|
280
212
|
});
|
|
281
|
-
},
|
|
213
|
+
}, f = (e, r) => {
|
|
282
214
|
if (!(r != null && r.reason))
|
|
283
215
|
return;
|
|
284
|
-
const
|
|
216
|
+
const s = (r == null ? void 0 : r.reason.stack) ?? r.reason;
|
|
285
217
|
e.logMessage({
|
|
286
|
-
message:
|
|
218
|
+
message: s,
|
|
287
219
|
severity: "Error"
|
|
288
220
|
});
|
|
289
221
|
};
|
|
290
|
-
let
|
|
291
|
-
const
|
|
222
|
+
let n = 0;
|
|
223
|
+
const O = (e) => {
|
|
292
224
|
navigator.serviceWorker.addEventListener("message", (r) => {
|
|
293
|
-
var
|
|
294
|
-
((
|
|
295
|
-
`Number of open Playground tabs is: ${
|
|
225
|
+
var s, t, a;
|
|
226
|
+
((s = r.data) == null ? void 0 : s.numberOfOpenPlaygroundTabs) !== void 0 && n !== ((t = r.data) == null ? void 0 : t.numberOfOpenPlaygroundTabs) && (n = (a = r.data) == null ? void 0 : a.numberOfOpenPlaygroundTabs, e.debug(
|
|
227
|
+
`Number of open Playground tabs is: ${n}`
|
|
296
228
|
));
|
|
297
229
|
});
|
|
298
230
|
};
|
|
299
|
-
let
|
|
300
|
-
const
|
|
301
|
-
|
|
231
|
+
let m = !1;
|
|
232
|
+
const S = (e) => {
|
|
233
|
+
m || (O(e), !(typeof window > "u") && (window.addEventListener(
|
|
302
234
|
"error",
|
|
303
235
|
(r) => P(e, r)
|
|
304
236
|
), window.addEventListener(
|
|
305
237
|
"unhandledrejection",
|
|
306
|
-
(r) =>
|
|
238
|
+
(r) => f(e, r)
|
|
307
239
|
), window.addEventListener(
|
|
308
240
|
"rejectionhandled",
|
|
309
|
-
(r) =>
|
|
310
|
-
),
|
|
311
|
-
},
|
|
241
|
+
(r) => f(e, r)
|
|
242
|
+
), m = !0));
|
|
243
|
+
}, C = (e) => {
|
|
312
244
|
e.addEventListener("activate", () => {
|
|
313
245
|
e.clients.matchAll().then((r) => {
|
|
314
|
-
const
|
|
246
|
+
const s = {
|
|
315
247
|
numberOfOpenPlaygroundTabs: r.filter(
|
|
316
248
|
// Only count top-level frames to get the number of tabs.
|
|
317
|
-
(
|
|
249
|
+
(t) => t.frameType === "top-level"
|
|
318
250
|
).length
|
|
319
251
|
};
|
|
320
|
-
for (const
|
|
321
|
-
|
|
252
|
+
for (const t of r)
|
|
253
|
+
t.postMessage(s);
|
|
322
254
|
});
|
|
323
255
|
});
|
|
324
256
|
};
|
|
325
257
|
export {
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
258
|
+
b as Logger,
|
|
259
|
+
k as addCrashListener,
|
|
260
|
+
x as collectPhpLogs,
|
|
261
|
+
S as collectWindowErrors,
|
|
262
|
+
T as formatLogEntry,
|
|
263
|
+
E as logEventType,
|
|
264
|
+
v as logger,
|
|
265
|
+
c as prepareLogMessage,
|
|
266
|
+
C as reportServiceWorkerMetrics
|
|
335
267
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@php-wasm/logger",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.15",
|
|
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": "62c0b6769e8922ec6ec1fdb985a69c4e86d070a2"
|
|
31
31
|
}
|