@enbox/browser 0.0.1 → 0.0.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.
package/README.md CHANGED
@@ -1,7 +1,9 @@
1
- # Web5 Browser package
1
+ # Enbox Browser
2
2
 
3
- | Web5 tools and features to use in the browser |
4
- | --------------------------------------------- |
3
+ > **Research Preview** Enbox is under active development. APIs may change without notice.
4
+
5
+ | Browser-specific tools and features for building decentralized web applications |
6
+ | ------------------------------------------------------------------------------ |
5
7
 
6
8
  [![NPM Package][browser-npm-badge]][browser-npm-link]
7
9
  [![NPM Downloads][browser-downloads-badge]][browser-npm-link]
@@ -12,7 +14,7 @@
12
14
 
13
15
  ---
14
16
 
15
- - [Web5 Browser](#introduction)
17
+ - [Enbox Browser](#enbox-browser)
16
18
  - [Activate Polyfills](#activate-polyfills)
17
19
  - [Project Resources](#project-resources)
18
20
 
@@ -20,11 +22,11 @@
20
22
 
21
23
  <a id="introduction"></a>
22
24
 
23
- This package contains browser-specific helpers for building DWAs (Decentralized Web Apps).
25
+ This package contains browser-specific helpers for building DWAs (Decentralized Web Apps) with the Enbox toolkit.
24
26
 
25
27
  ### Activate Polyfills
26
28
 
27
- This enables a service worker that can handle Web5 features in the browser such as resolving DRLs that look like: `http://dweb/did:dht:abc123/protocols/read/aHR0cHM6Ly9hcmV3ZXdlYjV5ZXQuY29tL3NjaGVtYXMvcHJvdG9jb2xz/avatar`
29
+ This enables a service worker that can handle Enbox features in the browser such as resolving DRLs that look like: `http://dweb/did:dht:abc123/protocols/read/aHR0cHM6Ly9hcmV3ZXdlYjV5ZXQuY29tL3NjaGVtYXMvcHJvdG9jb2xz/avatar`
28
30
 
29
31
  To enable this functionality import and run `activatePolyfills()` at the entrypoint of your project, or within an existing service worker.
30
32
 
@@ -41,21 +43,21 @@ To enable this functionality import and run `activatePolyfills()` at the entrypo
41
43
  [browser-npm-badge]: https://img.shields.io/npm/v/@enbox/browser.svg?style=flat&color=blue&santize=true
42
44
  [browser-npm-link]: https://www.npmjs.com/package/@enbox/browser
43
45
  [browser-downloads-badge]: https://img.shields.io/npm/dt/@enbox/browser?&color=blue
44
- [browser-build-badge]: https://img.shields.io/github/actions/workflow/status/enboxorg/enbox/enbox/tests-ci.yml?branch=main&label=build
45
- [browser-build-link]: https://github.com/enboxorg/enbox/enbox/actions/workflows/tests-ci.yml
46
- [browser-coverage-badge]: https://img.shields.io/codecov/c/gh/enboxorg/enbox/enbox/main?style=flat&token=YI87CKF1LI
47
- [browser-coverage-link]: https://app.codecov.io/github/enboxorg/enbox/enbox/tree/main/packages%2Fbrowser
48
- [browser-issues-badge]: https://img.shields.io/github/issues/enboxorg/enbox/enbox/package:%20browser?label=issues
49
- [browser-issues-link]: https://github.com/enboxorg/enbox/enbox/issues?q=is%3Aopen+is%3Aissue+label%3A"package%3A+browser"
50
- [browser-repo-link]: https://github.com/enboxorg/enbox/enbox/tree/main/packages/browser
46
+ [browser-build-badge]: https://img.shields.io/github/actions/workflow/status/enboxorg/enbox/tests-ci.yml?branch=main&label=build
47
+ [browser-build-link]: https://github.com/enboxorg/enbox/actions/workflows/tests-ci.yml
48
+ [browser-coverage-badge]: https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/LiranCohen/02d15f39a46173a612a8862ec6d7cfcf/raw/crypto.json
49
+ [browser-coverage-link]: https://github.com/enboxorg/enbox/actions/workflows/ci.yml
50
+ [browser-issues-badge]: https://img.shields.io/github/issues/enboxorg/enbox/package:%20browser?label=issues
51
+ [browser-issues-link]: https://github.com/enboxorg/enbox/issues?q=is%3Aopen+is%3Aissue+label%3A"package%3A+browser"
52
+ [browser-repo-link]: https://github.com/enboxorg/enbox/tree/main/packages/browser
51
53
  [browser-jsdelivr-link]: https://www.jsdelivr.com/package/npm/@enbox/browser
52
54
  [browser-jsdelivr-browser]: https://cdn.jsdelivr.net/npm/@enbox/browser/dist/browser.mjs
53
55
  [browser-unpkg-link]: https://unpkg.com/@enbox/browser
54
56
  [browser-unpkg-browser]: https://unpkg.com/@enbox/browser/dist/browser.mjs
55
- [codeowners-link]: https://github.com/enboxorg/enbox/enbox/blob/main/CODEOWNERS
56
- [code-of-conduct-link]: https://github.com/enboxorg/enbox/enbox/blob/main/CODE_OF_CONDUCT.md
57
- [contributing-link]: https://github.com/enboxorg/enbox/enbox/blob/main/CONTRIBUTING.md
58
- [governance-link]: https://github.com/enboxorg/enbox/enbox/blob/main/GOVERNANCE.md
59
- [license-link]: https://github.com/enboxorg/enbox/enbox/blob/main/LICENSE
57
+ [codeowners-link]: https://github.com/enboxorg/enbox/blob/main/CODEOWNERS
58
+ [code-of-conduct-link]: https://github.com/enboxorg/enbox/blob/main/CODE_OF_CONDUCT.md
59
+ [contributing-link]: https://github.com/enboxorg/enbox/blob/main/CONTRIBUTING.md
60
+ [governance-link]: https://github.com/enboxorg/enbox/blob/main/GOVERNANCE.md
61
+ [license-link]: https://github.com/enboxorg/enbox/blob/main/LICENSE
60
62
  [discord-badge]: https://img.shields.io/discord/937858703112155166?color=5865F2&logo=discord&logoColor=white
61
- [discord-link]: https://discord.com/channels/937858703112155166/969272658501976117
63
+ [discord-link]: https://discord.com/channels/937858703112155166/969272658501976117
@@ -13,15 +13,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
13
13
  Be mindful that code placed in any open excution space may be evaluated multiple times in different contexts,
14
14
  so take care to gate additions to only activate code in the right env, such as a Service Worker scope or page window.
15
15
  */
16
- import { UniversalResolver, DidDht, DidWeb } from '@enbox/dids';
16
+ import { DidDht, DidWeb, UniversalResolver } from '@enbox/dids';
17
17
  // This is in place to prevent our `bundler-bonanza` repo from failing for Node CJS builds
18
18
  // Not sure if this is working as expected in all environments, crated an issue
19
- // TODO: https://github.com/TBD54566975/web5-js/issues/767
19
+ // TODO: https://github.com/enboxorg/enbox/issues/767
20
20
  function importMetaIfSupported() {
21
21
  try {
22
22
  return new Function('return import.meta')();
23
23
  }
24
- catch (_error) {
24
+ catch (_a) {
25
25
  return undefined;
26
26
  }
27
27
  }
@@ -30,8 +30,8 @@ const didUrlRegex = /^https?:\/\/dweb\/([^/]+)\/?(.*)?$/;
30
30
  const httpToHttpsRegex = /^http:/;
31
31
  const trailingSlashRegex = /\/$/;
32
32
  function getDwnEndpoints(did) {
33
- var _a, _b;
34
33
  return __awaiter(this, void 0, void 0, function* () {
34
+ var _a, _b;
35
35
  const { didDocument } = yield DidResolver.resolve(did);
36
36
  const endpoints = (_b = (_a = didDocument === null || didDocument === void 0 ? void 0 : didDocument.service) === null || _a === void 0 ? void 0 : _a.find((service) => service.type === 'DecentralizedWebNode')) === null || _b === void 0 ? void 0 : _b.serviceEndpoint;
37
37
  return (Array.isArray(endpoints) ? endpoints : [endpoints]).filter((url) => url.startsWith('http'));
@@ -45,8 +45,9 @@ function handleEvent(event, did, path, options) {
45
45
  const responseCache = yield caches.open('drl');
46
46
  const cachedResponse = yield responseCache.match(drl);
47
47
  if (cachedResponse) {
48
- if (!navigator.onLine)
48
+ if (!navigator.onLine) {
49
49
  return cachedResponse;
50
+ }
50
51
  const match = yield (options === null || options === void 0 ? void 0 : options.onCacheCheck(event, drl));
51
52
  if (match) {
52
53
  const cacheTime = cachedResponse.headers.get('dwn-cache-time');
@@ -66,8 +67,9 @@ function handleEvent(event, did, path, options) {
66
67
  },
67
68
  });
68
69
  }
69
- else
70
+ else {
70
71
  return yield fetchResource(event, did, drl, path, responseCache, options);
72
+ }
71
73
  }
72
74
  catch (error) {
73
75
  if (error instanceof Response) {
@@ -120,15 +122,15 @@ function cacheResponse(drl, url, response, cache) {
120
122
  });
121
123
  }
122
124
  /* Service Worker-based features */
123
- function installWorker(options = {}) {
124
- var _a, _b, _c;
125
- return __awaiter(this, void 0, void 0, function* () {
126
- const workerSelf = self;
125
+ function installWorker() {
126
+ return __awaiter(this, arguments, void 0, function* (options = {}) {
127
+ var _a, _b, _c;
127
128
  try {
128
129
  // Check to see if we are in a Service Worker already, if so, proceed
129
130
  // You can call the activatePolyfills() function in your own worker, or standalone as a root worker
130
131
  if (typeof ServiceWorkerGlobalScope !== 'undefined' &&
131
- workerSelf instanceof ServiceWorkerGlobalScope) {
132
+ self instanceof ServiceWorkerGlobalScope) {
133
+ const workerSelf = self;
132
134
  workerSelf.skipWaiting();
133
135
  workerSelf.addEventListener('activate', (event) => {
134
136
  // Claim clients to make the service worker take control immediately
@@ -151,12 +153,13 @@ function installWorker(options = {}) {
151
153
  (globalThis.document
152
154
  ? (_b = document === null || document === void 0 ? void 0 : document.currentScript) === null || _b === void 0 ? void 0 : _b.src
153
155
  : (_c = importMetaIfSupported()) === null || _c === void 0 ? void 0 : _c.url);
154
- if (installUrl)
156
+ if (installUrl) {
155
157
  navigator.serviceWorker
156
158
  .register(installUrl, { type: 'module' })
157
159
  .catch((error) => {
158
160
  console.error('DWeb networking feature installation failed: ', error);
159
161
  });
162
+ }
160
163
  }
161
164
  }
162
165
  else {
@@ -307,8 +310,9 @@ const tabContent = `
307
310
  `;
308
311
  let elementsInjected = false;
309
312
  function injectElements() {
310
- if (elementsInjected)
313
+ if (elementsInjected) {
311
314
  return;
315
+ }
312
316
  const style = document.createElement('style');
313
317
  style.innerHTML = `
314
318
  ${loaderStyles}
@@ -368,18 +372,20 @@ function addLinkFeatures() {
368
372
  setTimeout(() => document.documentElement.setAttribute('drl-link-loading', ''), 50);
369
373
  }
370
374
  const endpoints = yield getDwnEndpoints(did);
371
- if (!endpoints.length)
375
+ if (!endpoints.length) {
372
376
  throw null;
377
+ }
373
378
  const url = `${endpoints[0].replace(trailingSlashRegex, '')}/${did}/${path}`;
374
379
  if (openAsTab) {
375
- if (!tab.closed)
380
+ if (!tab.closed) {
376
381
  tab.location.href = url;
382
+ }
377
383
  }
378
384
  else if (activeNavigation === path) {
379
385
  window.location.href = url;
380
386
  }
381
387
  }
382
- catch (e) {
388
+ catch (_a) {
383
389
  if (activeNavigation === path) {
384
390
  cancelNavigation();
385
391
  }
@@ -404,8 +410,9 @@ function addLinkFeatures() {
404
410
  const responseCache = yield caches.open('drl');
405
411
  const response = yield responseCache.match(drl);
406
412
  const url = response.headers.get('dwn-composed-url');
407
- if (url)
413
+ if (url) {
408
414
  target.src = url;
415
+ }
409
416
  target.addEventListener('pointerup', resetContextMenuTarget, {
410
417
  once: true,
411
418
  });
@@ -435,10 +442,12 @@ function resetContextMenuTarget(e) {
435
442
  * Activates various polyfills to enable Web5 features in Web environments.
436
443
  *
437
444
  * @param {object} [options={}] - Configuration options to control the activation of polyfills.
438
- * @param {boolean} [options.serviceWorker=true] - Option to avoid installation of the Service Worker. Defaults to true, installing the Service Worker.
445
+ * @param {boolean} [options.serviceWorker=true] - Option to avoid installation of the Service Worker.
446
+ * Defaults to true, installing the Service Worker.
439
447
  * @param {boolean} [options.injectStyles=true] - Option to skip injection of styles for UI related UX polyfills. Defaults to true, injecting styles.
440
448
  * @param {boolean} [options.links=true] - Option to skip activation of DRL link features. Defaults to true, activating link features.
441
- * @param {function} [options.onCacheCheck] - Callback function to handle cache check events, allowing fine-grained control over what DRL request to cache, and for how long.
449
+ * @param {function} [options.onCacheCheck] - Callback function to handle cache check events,
450
+ * allowing fine-grained control over what DRL request to cache, and for how long.
442
451
  * @param {object} [options.onCacheCheck.event] - The event object passed to the callback.
443
452
  * @param {object} [options.onCacheCheck.route] - The route object passed to the callback.
444
453
  * @returns {object} [options.onCacheCheck.return] - The return object from the callback.
@@ -466,16 +475,18 @@ export function activatePolyfills(options = {}) {
466
475
  }
467
476
  if (typeof window !== 'undefined' && typeof window.document !== 'undefined') {
468
477
  if (options.injectStyles !== false) {
469
- if (document.readyState !== 'loading')
478
+ if (document.readyState !== 'loading') {
470
479
  injectElements();
480
+ }
471
481
  else {
472
482
  document.addEventListener('DOMContentLoaded', injectElements, {
473
483
  once: true,
474
484
  });
475
485
  }
476
486
  }
477
- if (options.links !== false)
487
+ if (options.links !== false) {
478
488
  addLinkFeatures();
489
+ }
479
490
  }
480
491
  }
481
492
  //# sourceMappingURL=web-features.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"web-features.js","sourceRoot":"","sources":["../../src/web-features.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web-features.js","sourceRoot":"","sources":["../../src/web-features.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,12 @@
2
2
  * Activates various polyfills to enable Web5 features in Web environments.
3
3
  *
4
4
  * @param {object} [options={}] - Configuration options to control the activation of polyfills.
5
- * @param {boolean} [options.serviceWorker=true] - Option to avoid installation of the Service Worker. Defaults to true, installing the Service Worker.
5
+ * @param {boolean} [options.serviceWorker=true] - Option to avoid installation of the Service Worker.
6
+ * Defaults to true, installing the Service Worker.
6
7
  * @param {boolean} [options.injectStyles=true] - Option to skip injection of styles for UI related UX polyfills. Defaults to true, injecting styles.
7
8
  * @param {boolean} [options.links=true] - Option to skip activation of DRL link features. Defaults to true, activating link features.
8
- * @param {function} [options.onCacheCheck] - Callback function to handle cache check events, allowing fine-grained control over what DRL request to cache, and for how long.
9
+ * @param {function} [options.onCacheCheck] - Callback function to handle cache check events,
10
+ * allowing fine-grained control over what DRL request to cache, and for how long.
9
11
  * @param {object} [options.onCacheCheck.event] - The event object passed to the callback.
10
12
  * @param {object} [options.onCacheCheck.route] - The route object passed to the callback.
11
13
  * @returns {object} [options.onCacheCheck.return] - The return object from the callback.
@@ -1 +1 @@
1
- {"version":3,"file":"web-features.d.ts","sourceRoot":"","sources":["../../src/web-features.ts"],"names":[],"mappings":"AA4bA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,GAAQ,QAelD"}
1
+ {"version":3,"file":"web-features.d.ts","sourceRoot":"","sources":["../../src/web-features.ts"],"names":[],"mappings":"AA4bA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,GAAQ,GAAG,IAAI,CAezD"}
package/package.json CHANGED
@@ -1,20 +1,20 @@
1
1
  {
2
2
  "name": "@enbox/browser",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "description": "Web5 tools and features to use in the browser",
5
5
  "type": "module",
6
6
  "main": "./dist/esm/index.js",
7
7
  "module": "./dist/esm/index.js",
8
8
  "types": "./dist/types/index.d.ts",
9
9
  "scripts": {
10
- "clean": "rimraf dist coverage tests/compiled",
11
- "build:tests": "rimraf tests/compiled && node build/esbuild-tests.cjs",
12
- "build:esm": "rimraf dist/esm dist/types && pnpm tsc -p tsconfig.json",
13
- "build:browser": "pnpm build:esm",
14
- "build": "pnpm clean && pnpm build:esm",
10
+ "clean": "rimraf dist tests/compiled",
11
+ "build:tests": "rimraf tests/compiled && bun build/esbuild-tests.cjs",
12
+ "build:esm": "rimraf dist/esm dist/types && bun tsc -p tsconfig.json",
13
+ "build:browser": "bun run build:esm",
14
+ "build": "bun run clean && bun run build:esm",
15
15
  "lint": "eslint . --max-warnings 0",
16
16
  "lint:fix": "eslint . --fix",
17
- "test:browser": "pnpm build:tests && web-test-runner"
17
+ "test:browser": "bun run build:tests && bunx web-test-runner"
18
18
  },
19
19
  "homepage": "https://github.com/enboxorg/enbox/tree/main/packages/browser#readme",
20
20
  "bugs": "https://github.com/enboxorg/enbox/issues",
@@ -55,22 +55,20 @@
55
55
  "access": "public"
56
56
  },
57
57
  "dependencies": {
58
- "@enbox/dids": "workspace:*"
58
+ "@enbox/dids": "0.0.3"
59
59
  },
60
60
  "devDependencies": {
61
61
  "@playwright/test": "1.45.3",
62
62
  "@types/chai": "4.3.6",
63
- "@types/eslint": "8.56.10",
64
63
  "@types/mocha": "10.0.1",
65
64
  "@types/sinon": "17.0.3",
66
- "@typescript-eslint/eslint-plugin": "7.9.0",
67
- "@typescript-eslint/parser": "7.14.1",
65
+ "@typescript-eslint/eslint-plugin": "8.32.1",
66
+ "@typescript-eslint/parser": "8.32.1",
68
67
  "@web/test-runner": "0.18.2",
69
68
  "@web/test-runner-playwright": "0.11.0",
70
- "c8": "9.1.0",
71
69
  "chai": "4.3.10",
72
70
  "esbuild": "0.19.8",
73
- "eslint": "9.3.0",
71
+ "eslint": "9.7.0",
74
72
  "eslint-plugin-mocha": "10.4.3",
75
73
  "mocha": "10.2.0",
76
74
  "mocha-junit-reporter": "2.2.1",
@@ -78,6 +76,6 @@
78
76
  "rimraf": "4.4.0",
79
77
  "sinon": "18.0.0",
80
78
  "source-map-loader": "4.0.2",
81
- "typescript": "5.1.6"
79
+ "typescript": "5.5.4"
82
80
  }
83
81
  }
@@ -6,15 +6,15 @@
6
6
  so take care to gate additions to only activate code in the right env, such as a Service Worker scope or page window.
7
7
  */
8
8
 
9
- import { UniversalResolver, DidDht, DidWeb } from '@enbox/dids';
9
+ import { DidDht, DidWeb, UniversalResolver } from '@enbox/dids';
10
10
 
11
11
  // This is in place to prevent our `bundler-bonanza` repo from failing for Node CJS builds
12
12
  // Not sure if this is working as expected in all environments, crated an issue
13
- // TODO: https://github.com/TBD54566975/web5-js/issues/767
14
- function importMetaIfSupported() {
13
+ // TODO: https://github.com/enboxorg/enbox/issues/767
14
+ function importMetaIfSupported(): any {
15
15
  try {
16
16
  return new Function('return import.meta')();
17
- } catch (_error) {
17
+ } catch {
18
18
  return undefined;
19
19
  }
20
20
  }
@@ -26,7 +26,7 @@ const didUrlRegex = /^https?:\/\/dweb\/([^/]+)\/?(.*)?$/;
26
26
  const httpToHttpsRegex = /^http:/;
27
27
  const trailingSlashRegex = /\/$/;
28
28
 
29
- async function getDwnEndpoints(did) {
29
+ async function getDwnEndpoints(did: any): Promise<string[]> {
30
30
  const { didDocument } = await DidResolver.resolve(did);
31
31
  const endpoints = didDocument?.service?.find(
32
32
  (service) => service.type === 'DecentralizedWebNode'
@@ -36,14 +36,14 @@ async function getDwnEndpoints(did) {
36
36
  );
37
37
  }
38
38
 
39
- async function handleEvent(event, did, path, options) {
39
+ async function handleEvent(event: any, did: any, path: any, options: any): Promise<Response> {
40
40
  const drl = event.request.url
41
41
  .replace(httpToHttpsRegex, 'https:')
42
42
  .replace(trailingSlashRegex, '');
43
43
  const responseCache = await caches.open('drl');
44
44
  const cachedResponse = await responseCache.match(drl);
45
45
  if (cachedResponse) {
46
- if (!navigator.onLine) return cachedResponse;
46
+ if (!navigator.onLine) {return cachedResponse;}
47
47
  const match = await options?.onCacheCheck(event, drl);
48
48
  if (match) {
49
49
  const cacheTime = cachedResponse.headers.get('dwn-cache-time');
@@ -65,7 +65,7 @@ async function handleEvent(event, did, path, options) {
65
65
  },
66
66
  });
67
67
  } else
68
- return await fetchResource(event, did, drl, path, responseCache, options);
68
+ {return await fetchResource(event, did, drl, path, responseCache, options);}
69
69
  } catch (error) {
70
70
  if (error instanceof Response) {
71
71
  return error;
@@ -75,7 +75,7 @@ async function handleEvent(event, did, path, options) {
75
75
  }
76
76
  }
77
77
 
78
- async function fetchResource(event, did, drl, path, responseCache, options) {
78
+ async function fetchResource(event: any, did: any, drl: any, path: any, responseCache: any, options: any): Promise<Response | undefined> {
79
79
  const endpoints = await getDwnEndpoints(did);
80
80
  if (!endpoints?.length) {
81
81
  throw new Response(
@@ -107,7 +107,7 @@ async function fetchResource(event, did, drl, path, responseCache, options) {
107
107
  }
108
108
  }
109
109
 
110
- async function cacheResponse(drl, url, response, cache) {
110
+ async function cacheResponse(drl: any, url: any, response: any, cache: any): Promise<void> {
111
111
  const clonedResponse = response.clone();
112
112
  const headers = new Headers(clonedResponse.headers);
113
113
  headers.append('dwn-cache-time', Date.now().toString());
@@ -119,14 +119,14 @@ async function cacheResponse(drl, url, response, cache) {
119
119
  /* Service Worker-based features */
120
120
 
121
121
  async function installWorker(options: any = {}): Promise<void> {
122
- const workerSelf = self as any;
123
122
  try {
124
123
  // Check to see if we are in a Service Worker already, if so, proceed
125
124
  // You can call the activatePolyfills() function in your own worker, or standalone as a root worker
126
125
  if (
127
126
  typeof ServiceWorkerGlobalScope !== 'undefined' &&
128
- workerSelf instanceof ServiceWorkerGlobalScope
127
+ self instanceof ServiceWorkerGlobalScope
129
128
  ) {
129
+ const workerSelf = self as ServiceWorkerGlobalScope;
130
130
  workerSelf.skipWaiting();
131
131
  workerSelf.addEventListener('activate', (event) => {
132
132
  // Claim clients to make the service worker take control immediately
@@ -151,14 +151,14 @@ async function installWorker(options: any = {}): Promise<void> {
151
151
  ? document?.currentScript?.src
152
152
  : importMetaIfSupported()?.url);
153
153
  if (installUrl)
154
- navigator.serviceWorker
155
- .register(installUrl, { type: 'module' })
156
- .catch((error) => {
157
- console.error(
158
- 'DWeb networking feature installation failed: ',
159
- error
160
- );
161
- });
154
+ {navigator.serviceWorker
155
+ .register(installUrl, { type: 'module' })
156
+ .catch((error) => {
157
+ console.error(
158
+ 'DWeb networking feature installation failed: ',
159
+ error
160
+ );
161
+ });}
162
162
  }
163
163
  } else {
164
164
  throw new Error(
@@ -310,8 +310,8 @@ const tabContent = `
310
310
  `;
311
311
 
312
312
  let elementsInjected = false;
313
- function injectElements() {
314
- if (elementsInjected) return;
313
+ function injectElements(): void {
314
+ if (elementsInjected) {return;}
315
315
  const style = document.createElement('style');
316
316
  style.innerHTML = `
317
317
  ${loaderStyles}
@@ -343,14 +343,14 @@ function injectElements() {
343
343
  elementsInjected = true;
344
344
  }
345
345
 
346
- function cancelNavigation() {
346
+ function cancelNavigation(): void {
347
347
  document.documentElement.removeAttribute('drl-link-loading');
348
348
  activeNavigation = null;
349
349
  }
350
350
 
351
351
  let activeNavigation;
352
352
  let linkFeaturesActive = false;
353
- function addLinkFeatures() {
353
+ function addLinkFeatures(): void {
354
354
  if (!linkFeaturesActive) {
355
355
  document.addEventListener('click', async (event: any) => {
356
356
  const anchor = event.target.closest('a');
@@ -377,17 +377,17 @@ function addLinkFeatures() {
377
377
  );
378
378
  }
379
379
  const endpoints = await getDwnEndpoints(did);
380
- if (!endpoints.length) throw null;
380
+ if (!endpoints.length) {throw null;}
381
381
  const url = `${endpoints[0].replace(
382
382
  trailingSlashRegex,
383
383
  ''
384
384
  )}/${did}/${path}`;
385
385
  if (openAsTab) {
386
- if (!tab.closed) tab.location.href = url;
386
+ if (!tab.closed) {tab.location.href = url;}
387
387
  } else if (activeNavigation === path) {
388
388
  window.location.href = url;
389
389
  }
390
- } catch (e) {
390
+ } catch {
391
391
  if (activeNavigation === path) {
392
392
  cancelNavigation();
393
393
  }
@@ -416,7 +416,7 @@ function addLinkFeatures() {
416
416
  const responseCache = await caches.open('drl');
417
417
  const response = await responseCache.match(drl);
418
418
  const url = response.headers.get('dwn-composed-url');
419
- if (url) target.src = url;
419
+ if (url) {target.src = url;}
420
420
  target.addEventListener('pointerup', resetContextMenuTarget, {
421
421
  once: true,
422
422
  });
@@ -431,7 +431,7 @@ function addLinkFeatures() {
431
431
  }
432
432
 
433
433
  let contextMenuTarget;
434
- async function resetContextMenuTarget(e?: any) {
434
+ async function resetContextMenuTarget(e?: any): Promise<void> {
435
435
  if (e?.type === 'pointerup') {
436
436
  await new Promise((r) => requestAnimationFrame(r));
437
437
  }
@@ -446,10 +446,12 @@ async function resetContextMenuTarget(e?: any) {
446
446
  * Activates various polyfills to enable Web5 features in Web environments.
447
447
  *
448
448
  * @param {object} [options={}] - Configuration options to control the activation of polyfills.
449
- * @param {boolean} [options.serviceWorker=true] - Option to avoid installation of the Service Worker. Defaults to true, installing the Service Worker.
449
+ * @param {boolean} [options.serviceWorker=true] - Option to avoid installation of the Service Worker.
450
+ * Defaults to true, installing the Service Worker.
450
451
  * @param {boolean} [options.injectStyles=true] - Option to skip injection of styles for UI related UX polyfills. Defaults to true, injecting styles.
451
452
  * @param {boolean} [options.links=true] - Option to skip activation of DRL link features. Defaults to true, activating link features.
452
- * @param {function} [options.onCacheCheck] - Callback function to handle cache check events, allowing fine-grained control over what DRL request to cache, and for how long.
453
+ * @param {function} [options.onCacheCheck] - Callback function to handle cache check events,
454
+ * allowing fine-grained control over what DRL request to cache, and for how long.
453
455
  * @param {object} [options.onCacheCheck.event] - The event object passed to the callback.
454
456
  * @param {object} [options.onCacheCheck.route] - The route object passed to the callback.
455
457
  * @returns {object} [options.onCacheCheck.return] - The return object from the callback.
@@ -471,19 +473,19 @@ async function resetContextMenuTarget(e?: any) {
471
473
  * // Activate polyfills, but without Service Worker activation
472
474
  * activatePolyfills({ serviceWorker: false });
473
475
  */
474
- export function activatePolyfills(options: any = {}) {
476
+ export function activatePolyfills(options: any = {}): void {
475
477
  if (options.serviceWorker !== false) {
476
478
  installWorker(options);
477
479
  }
478
480
  if (typeof window !== 'undefined' && typeof window.document !== 'undefined') {
479
481
  if (options.injectStyles !== false) {
480
- if (document.readyState !== 'loading') injectElements();
482
+ if (document.readyState !== 'loading') {injectElements();}
481
483
  else {
482
484
  document.addEventListener('DOMContentLoaded', injectElements, {
483
485
  once: true,
484
486
  });
485
487
  }
486
488
  }
487
- if (options.links !== false) addLinkFeatures();
489
+ if (options.links !== false) {addLinkFeatures();}
488
490
  }
489
491
  }