pagespeed-quest 0.10.0 → 0.12.0

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.
Files changed (54) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.ja.md +47 -0
  3. package/README.md +49 -0
  4. package/build/cli.d.ts +8 -0
  5. package/build/cli.js +263 -0
  6. package/build/command.js +3 -229
  7. package/build/lighthouse-summary.d.ts +3 -1
  8. package/build/lighthouse-summary.js +31 -46
  9. package/build/lighthouse.d.ts +0 -1
  10. package/build/lighthouse.js +6 -2
  11. package/build/llm.d.ts +20 -0
  12. package/build/llm.js +42 -0
  13. package/llmdocs/00-guide.md +146 -0
  14. package/llmdocs/10-inventory.md +157 -0
  15. package/llmdocs/20-experiments.md +93 -0
  16. package/llmdocs/30-measuring.md +158 -0
  17. package/llmdocs/90-commands.md +188 -0
  18. package/package.json +13 -7
  19. package/scripts/build-llm-docs.js +79 -0
  20. package/scripts/postinstall.js +2 -3
  21. package/scripts/validate-plugin-skills.js +117 -0
  22. package/build/docs/assets/css/main.css +0 -1
  23. package/build/docs/assets/images/icons.png +0 -0
  24. package/build/docs/assets/images/icons@2x.png +0 -0
  25. package/build/docs/assets/images/widgets.png +0 -0
  26. package/build/docs/assets/images/widgets@2x.png +0 -0
  27. package/build/docs/assets/js/main.js +0 -51
  28. package/build/docs/classes/inventoryrepository.html +0 -305
  29. package/build/docs/classes/playbackproxy.html +0 -524
  30. package/build/docs/classes/proxy.html +0 -474
  31. package/build/docs/classes/recordingproxy.html +0 -532
  32. package/build/docs/classes/testproxy.html +0 -497
  33. package/build/docs/classes/throttle.html +0 -425
  34. package/build/docs/classes/throttlinglog.html +0 -174
  35. package/build/docs/classes/throttlingtransform.html +0 -6297
  36. package/build/docs/globals.html +0 -1131
  37. package/build/docs/index.html +0 -348
  38. package/build/docs/interfaces/beautifyresult.html +0 -174
  39. package/build/docs/interfaces/contentencodingpair.html +0 -174
  40. package/build/docs/interfaces/inventory.html +0 -174
  41. package/build/docs/interfaces/lighthouseoptions.html +0 -230
  42. package/build/docs/interfaces/playbacktransaction.html +0 -272
  43. package/build/docs/interfaces/proxyoptions.html +0 -423
  44. package/build/docs/interfaces/recordingsession.html +0 -174
  45. package/build/docs/interfaces/recordingtransaction.html +0 -286
  46. package/build/docs/interfaces/resource.html +0 -314
  47. package/build/docs/interfaces/transaction.html +0 -258
  48. package/build/docs/interfaces/withproxyoptions.html +0 -418
  49. package/build/logger.d.ts +0 -2
  50. package/build/logger.js +0 -15
  51. package/build/proxy.d.ts +0 -35
  52. package/build/proxy.js +0 -96
  53. package/build/throttling.d.ts +0 -33
  54. package/build/throttling.js +0 -89
@@ -1,89 +0,0 @@
1
- import { Transform } from 'stream';
2
- export class ThrottlingLog {
3
- ms;
4
- bytes;
5
- }
6
- export class Throttle {
7
- flushIntervalMs;
8
- limitBytes;
9
- currentBytes = 0;
10
- interval;
11
- logs = [];
12
- constructor(limitBytes, flushIntervalMs) {
13
- this.limitBytes = limitBytes;
14
- this.flushIntervalMs = flushIntervalMs ?? 100;
15
- }
16
- static fromMbps(mbps, flushIntervalMs) {
17
- const bytesPerSec = (mbps * 1024 * 1024) / 8;
18
- const limitBytes = Math.floor((bytesPerSec * flushIntervalMs) / 1000);
19
- return new Throttle(limitBytes, flushIntervalMs);
20
- }
21
- computeCapacity() {
22
- const consumed = Math.min(this.currentBytes, this.limitBytes);
23
- const carryover = this.currentBytes - consumed;
24
- return { consumed, carryover };
25
- }
26
- start() {
27
- this.interval = setInterval(() => {
28
- const c = this.computeCapacity();
29
- this.logs.push({
30
- ms: Date.now(),
31
- bytes: c.consumed,
32
- });
33
- this.currentBytes = c.carryover;
34
- }, this.flushIntervalMs);
35
- }
36
- stop() {
37
- if (this.interval)
38
- clearInterval(this.interval);
39
- }
40
- checkAndStack(bytes) {
41
- if (!this.interval)
42
- throw new Error('Throttle is not started');
43
- if (this.currentBytes >= this.limitBytes) {
44
- return false;
45
- }
46
- this.currentBytes += bytes;
47
- return true;
48
- }
49
- simpleReport(unitMs = 1000) {
50
- const bySec = new Map();
51
- for (const log of this.logs) {
52
- const unit = Math.floor(log.ms / unitMs);
53
- if (!bySec.has(unit))
54
- bySec.set(unit, 0);
55
- bySec.set(unit, bySec.get(unit) + log.bytes);
56
- }
57
- const values = Array.from(bySec.values());
58
- const maxBytesPerUnit = Math.max(...values);
59
- const avgBytesPerUnit = Math.floor(values.reduce((a, b) => a + b, 0) / bySec.size) / 1024 / 1024;
60
- return {
61
- maxBytesPerUnit,
62
- avgBytesPerUnit,
63
- };
64
- }
65
- }
66
- export class ThrottlingTransform extends Transform {
67
- throttle;
68
- retryIntervalMs;
69
- constructor(throttle, retryIntervalMs) {
70
- super();
71
- this.throttle = throttle;
72
- this.retryIntervalMs = retryIntervalMs;
73
- }
74
- _transform(chunk, _, done) {
75
- if (this.throttle.checkAndStack(chunk.length)) {
76
- this.push(chunk);
77
- done();
78
- return;
79
- }
80
- const interval = setInterval(() => {
81
- if (this.throttle.checkAndStack(chunk.length)) {
82
- clearInterval(interval);
83
- this.push(chunk);
84
- done();
85
- }
86
- });
87
- }
88
- }
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyb3R0bGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90aHJvdHRsaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sUUFBUSxDQUFBO0FBRXJELE1BQU0sT0FBTyxhQUFhO0lBQ3hCLEVBQUUsQ0FBUTtJQUNWLEtBQUssQ0FBUTtDQUNkO0FBRUQsTUFBTSxPQUFPLFFBQVE7SUFDbkIsZUFBZSxDQUFTO0lBQ3hCLFVBQVUsQ0FBUztJQUNuQixZQUFZLEdBQUcsQ0FBQyxDQUFBO0lBQ2hCLFFBQVEsQ0FBaUM7SUFDekMsSUFBSSxHQUFvQixFQUFFLENBQUE7SUFFMUIsWUFBWSxVQUFrQixFQUFFLGVBQXdCO1FBQ3RELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFBO1FBQzVCLElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxJQUFJLEdBQUcsQ0FBQTtJQUMvQyxDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFZLEVBQUUsZUFBd0I7UUFDcEQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUM1QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxHQUFHLGVBQWUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO1FBQ3JFLE9BQU8sSUFBSSxRQUFRLENBQUMsVUFBVSxFQUFFLGVBQWUsQ0FBQyxDQUFBO0lBQ2xELENBQUM7SUFFRCxlQUFlO1FBQ2IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUM3RCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQTtRQUM5QyxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFBO0lB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