@browserless.io/browserless 2.4.0-beta-1 → 2.4.0-beta-3

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 (93) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/bin/scaffold/README.md +2 -0
  3. package/build/browserless.d.ts +4 -2
  4. package/build/browserless.js +15 -2
  5. package/build/browsers/chromium.cdp.d.ts +1 -5
  6. package/build/browsers/chromium.cdp.js +5 -115
  7. package/build/browsers/chromium.playwright.d.ts +1 -3
  8. package/build/browsers/chromium.playwright.js +1 -6
  9. package/build/browsers/firefox.playwright.d.ts +1 -3
  10. package/build/browsers/firefox.playwright.js +1 -6
  11. package/build/browsers/index.d.ts +5 -1
  12. package/build/browsers/index.js +6 -5
  13. package/build/browsers/webkit.playwright.d.ts +1 -3
  14. package/build/browsers/webkit.playwright.js +1 -6
  15. package/build/config.d.ts +9 -0
  16. package/build/config.js +11 -0
  17. package/build/constants.d.ts +0 -1
  18. package/build/constants.js +0 -1
  19. package/build/file-system.d.ts +12 -1
  20. package/build/file-system.js +14 -1
  21. package/build/http.d.ts +0 -7
  22. package/build/limiter.d.ts +9 -0
  23. package/build/limiter.js +11 -0
  24. package/build/metrics.d.ts +12 -1
  25. package/build/metrics.js +13 -1
  26. package/build/monitoring.d.ts +12 -1
  27. package/build/monitoring.js +14 -1
  28. package/build/router.d.ts +12 -2
  29. package/build/router.js +16 -6
  30. package/build/routes/chrome/http/content.post.body.json +8 -8
  31. package/build/routes/chrome/http/content.post.query.json +0 -4
  32. package/build/routes/chrome/http/download.post.query.json +0 -4
  33. package/build/routes/chrome/http/function.post.query.json +0 -4
  34. package/build/routes/chrome/http/pdf.post.body.json +8 -8
  35. package/build/routes/chrome/http/pdf.post.query.json +0 -4
  36. package/build/routes/chrome/http/performance.post.query.json +0 -4
  37. package/build/routes/chrome/http/scrape.post.body.json +8 -8
  38. package/build/routes/chrome/http/scrape.post.query.json +0 -4
  39. package/build/routes/chrome/http/screenshot.post.body.json +8 -8
  40. package/build/routes/chrome/http/screenshot.post.query.json +0 -4
  41. package/build/routes/chrome/ws/browser.query.json +0 -4
  42. package/build/routes/chrome/ws/cdp.query.json +0 -4
  43. package/build/routes/chrome/ws/page.query.json +0 -4
  44. package/build/routes/chrome/ws/playwright.query.json +0 -4
  45. package/build/routes/chromium/http/content.post.body.json +8 -8
  46. package/build/routes/chromium/http/content.post.query.json +0 -4
  47. package/build/routes/chromium/http/download.post.query.json +0 -4
  48. package/build/routes/chromium/http/function.post.query.json +0 -4
  49. package/build/routes/chromium/http/pdf.post.body.json +8 -8
  50. package/build/routes/chromium/http/pdf.post.query.json +0 -4
  51. package/build/routes/chromium/http/performance.post.query.json +0 -4
  52. package/build/routes/chromium/http/scrape.post.body.json +8 -8
  53. package/build/routes/chromium/http/scrape.post.query.json +0 -4
  54. package/build/routes/chromium/http/screenshot.post.body.json +8 -8
  55. package/build/routes/chromium/http/screenshot.post.query.json +0 -4
  56. package/build/routes/chromium/ws/browser.query.json +0 -4
  57. package/build/routes/chromium/ws/cdp.query.json +0 -4
  58. package/build/routes/chromium/ws/page.query.json +0 -4
  59. package/build/routes/chromium/ws/playwright.query.json +0 -4
  60. package/build/routes/firefox/ws/playwright.query.json +0 -4
  61. package/build/routes/webkit/ws/playwright.query.json +0 -4
  62. package/build/server.d.ts +8 -3
  63. package/build/server.js +15 -13
  64. package/build/token.d.ts +12 -1
  65. package/build/token.js +14 -1
  66. package/build/types.d.ts +0 -11
  67. package/build/webhooks.d.ts +12 -1
  68. package/build/webhooks.js +14 -1
  69. package/extensions/.gitkeep +0 -0
  70. package/package.json +3 -3
  71. package/src/browserless.ts +15 -2
  72. package/src/browsers/chromium.cdp.ts +10 -157
  73. package/src/browsers/chromium.playwright.ts +0 -8
  74. package/src/browsers/firefox.playwright.ts +0 -8
  75. package/src/browsers/index.ts +7 -6
  76. package/src/browsers/webkit.playwright.ts +0 -8
  77. package/src/config.ts +13 -0
  78. package/src/constants.ts +0 -1
  79. package/src/file-system.ts +16 -1
  80. package/src/http.ts +0 -8
  81. package/src/limiter.ts +13 -0
  82. package/src/metrics.ts +16 -1
  83. package/src/monitoring.ts +18 -2
  84. package/src/router.ts +20 -9
  85. package/src/server.ts +18 -16
  86. package/src/token.ts +18 -2
  87. package/src/types.ts +0 -13
  88. package/src/webhooks.ts +18 -2
  89. package/static/docs/swagger.json +10 -186
  90. package/static/docs/swagger.min.json +9 -185
  91. package/extensions/screencast/background.js +0 -143
  92. package/extensions/screencast/content_script.js +0 -18
  93. package/extensions/screencast/manifest.json +0 -19
package/src/token.ts CHANGED
@@ -7,9 +7,12 @@ import {
7
7
  WebSocketRoute,
8
8
  getTokenFromRequest,
9
9
  } from '@browserless.io/browserless';
10
+ import { EventEmitter } from 'events';
10
11
 
11
- export class Token {
12
- constructor(protected config: Config) {}
12
+ export class Token extends EventEmitter {
13
+ constructor(protected config: Config) {
14
+ super();
15
+ }
13
16
 
14
17
  public isAuthorized = async (
15
18
  req: Request,
@@ -37,4 +40,17 @@ export class Token {
37
40
 
38
41
  return (Array.isArray(token) ? token : [token]).includes(requestToken);
39
42
  };
43
+
44
+ /**
45
+ * Implement any browserless-core-specific shutdown logic here.
46
+ * Calls the empty-SDK stop method for downstream implementations.
47
+ */
48
+ public shutdown = async () => {
49
+ await this.stop();
50
+ };
51
+
52
+ /**
53
+ * Left blank for downstream SDK modules to optionally implement.
54
+ */
55
+ public stop = () => {};
40
56
  }
package/src/types.ts CHANGED
@@ -478,19 +478,6 @@ export const debugScreenshotOpts: ScreenshotOptions = {
478
478
  type: 'jpeg',
479
479
  };
480
480
 
481
- declare global {
482
- interface Window {
483
- browserless: BrowserlessEmbeddedAPI;
484
- }
485
- }
486
-
487
- export interface BrowserlessEmbeddedAPI {
488
- getRecording: () => Promise<string>;
489
- liveUrl: () => string;
490
- saveRecording: () => Promise<boolean>;
491
- startRecording: () => void;
492
- }
493
-
494
481
  /**
495
482
  * When bestAttempt is set to true, browserless attempt to proceed
496
483
  * when "awaited" events fail or timeout. This includes things like
package/src/webhooks.ts CHANGED
@@ -1,7 +1,10 @@
1
1
  import { Config, fetchTimeout, noop } from '@browserless.io/browserless';
2
+ import { EventEmitter } from 'events';
2
3
 
3
- export class WebHooks {
4
- constructor(protected config: Config) {}
4
+ export class WebHooks extends EventEmitter {
5
+ constructor(protected config: Config) {
6
+ super();
7
+ }
5
8
 
6
9
  protected callURL(url: string | null) {
7
10
  if (url) {
@@ -47,4 +50,17 @@ export class WebHooks {
47
50
  );
48
51
  }
49
52
  }
53
+
54
+ /**
55
+ * Implement any browserless-core-specific shutdown logic here.
56
+ * Calls the empty-SDK stop method for downstream implementations.
57
+ */
58
+ public shutdown = async () => {
59
+ await this.stop();
60
+ };
61
+
62
+ /**
63
+ * Left blank for downstream SDK modules to optionally implement.
64
+ */
65
+ public stop = () => {};
50
66
  }