@php-wasm/web-service-worker 0.9.45 → 0.9.46

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@php-wasm/web-service-worker",
3
- "version": "0.9.45",
3
+ "version": "0.9.46",
4
4
  "description": "PHP.wasm – service worker utils",
5
5
  "repository": {
6
6
  "type": "git",
@@ -23,12 +23,12 @@
23
23
  "type": "module",
24
24
  "main": "src/index.js",
25
25
  "types": "src/index.d.ts",
26
- "gitHead": "0c51051f503936c8bc92974ed660bd83f1957922",
26
+ "gitHead": "fa393bcf69536e421246aa8e321e3e9af4b61c7b",
27
27
  "engines": {
28
28
  "node": ">=18.18.0",
29
29
  "npm": ">=8.11.0"
30
30
  },
31
31
  "dependencies": {
32
- "@php-wasm/scopes": "0.9.45"
32
+ "@php-wasm/scopes": "0.9.46"
33
33
  }
34
34
  }
package/src/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export * from './initialize-service-worker';
1
+ export * from './utils';
2
2
  export * from './messaging';
package/src/index.js CHANGED
@@ -1,3 +1,3 @@
1
- export * from './initialize-service-worker';
1
+ export * from './utils';
2
2
  export * from './messaging';
3
3
  //# sourceMappingURL=index.js.map
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/php-wasm/web-service-worker/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/php-wasm/web-service-worker/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
@@ -1,11 +1,4 @@
1
1
  /// <reference lib="webworker" />
2
- /**
3
- * Run this function in the service worker to install the required event
4
- * handlers.
5
- *
6
- * @param config
7
- */
8
- export declare function initializeServiceWorker(config: ServiceWorkerConfiguration): void;
9
2
  export declare function convertFetchEventToPHPRequest(event: FetchEvent): Promise<Response>;
10
3
  /**
11
4
  * Sends the message to all the controlled clients
@@ -27,9 +20,6 @@ export declare function convertFetchEventToPHPRequest(event: FetchEvent): Promis
27
20
  * @returns The request ID to receive the reply.
28
21
  */
29
22
  export declare function broadcastMessageExpectReply(message: any, scope: string): Promise<number>;
30
- interface ServiceWorkerConfiguration {
31
- handleRequest?: (event: FetchEvent) => Promise<Response> | undefined;
32
- }
33
23
  /**
34
24
  * Copy a request with custom overrides.
35
25
  *
@@ -51,4 +41,3 @@ export declare function cloneRequest(request: Request, overrides: Record<string,
51
41
  * @returns
52
42
  */
53
43
  export declare function getRequestHeaders(request: Request): Record<string, string>;
54
- export {};
@@ -1,65 +1,6 @@
1
1
  /// <reference lib="WebWorker" />
2
2
  import { awaitReply, getNextRequestId } from './messaging';
3
3
  import { getURLScope, isURLScoped, setURLScope } from '@php-wasm/scopes';
4
- /**
5
- * Run this function in the service worker to install the required event
6
- * handlers.
7
- *
8
- * @param config
9
- */
10
- export function initializeServiceWorker(config) {
11
- const { handleRequest = defaultRequestHandler } = config;
12
- /**
13
- * The main method. It captures the requests and loop them back to the
14
- * Worker Thread using the Loopback request
15
- */
16
- self.addEventListener('fetch', (event) => {
17
- const url = new URL(event.request.url);
18
- // Don't handle requests to the service worker script itself.
19
- if (url.pathname.startsWith(self.location.pathname)) {
20
- return;
21
- }
22
- // Only handle requests from scoped sites.
23
- // So – bale out if the request URL is not scoped and the
24
- // referrer URL is not scoped.
25
- if (!isURLScoped(url)) {
26
- let referrerUrl;
27
- try {
28
- referrerUrl = new URL(event.request.referrer);
29
- }
30
- catch (e) {
31
- return;
32
- }
33
- if (!isURLScoped(referrerUrl)) {
34
- // Let the browser handle uncoped requests as is.
35
- return;
36
- }
37
- }
38
- const responsePromise = handleRequest(event);
39
- if (responsePromise) {
40
- event.respondWith(responsePromise);
41
- }
42
- });
43
- }
44
- async function defaultRequestHandler(event) {
45
- event.preventDefault();
46
- const url = new URL(event.request.url);
47
- const workerResponse = await convertFetchEventToPHPRequest(event);
48
- if (workerResponse.status === 404 &&
49
- (workerResponse.headers.get('x-backfill-from') === 'remote-host' ||
50
- // TODO: Remove this once it become clear we aren't reverting
51
- // request routing changes
52
- workerResponse.headers.get('x-file-type') === 'static')) {
53
- const request = await cloneRequest(event.request, {
54
- url,
55
- // Omit credentials to avoid causing cache aborts due to presence of
56
- // cookies
57
- credentials: 'omit',
58
- });
59
- return fetch(request);
60
- }
61
- return workerResponse;
62
- }
63
4
  export async function convertFetchEventToPHPRequest(event) {
64
5
  let url = new URL(event.request.url);
65
6
  if (!isURLScoped(url)) {
@@ -205,4 +146,4 @@ export function getRequestHeaders(request) {
205
146
  });
206
147
  return headers;
207
148
  }
208
- //# sourceMappingURL=initialize-service-worker.js.map
149
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../packages/php-wasm/web-service-worker/src/utils.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"initialize-service-worker.js","sourceRoot":"","sources":["../../../../../packages/php-wasm/web-service-worker/src/initialize-service-worker.ts"],"names":[],"mappings":"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"}