From 42f8adfc0fb9bf604f6d9e75ef48e03e4c30131b Mon Sep 17 00:00:00 2001 From: Dung Huynh Duc Date: Tue, 10 Dec 2024 04:21:36 +0800 Subject: [PATCH] chore: update MSW to v2.6.8 --- bun.lockb | Bin 550915 -> 545433 bytes mocks/browser.ts | 2 +- mocks/handlers.ts | 6 +- next-env.d.ts | 2 +- package.json | 2 +- public/mockServiceWorker.js | 498 ++++++++++++++++++------------------ 6 files changed, 255 insertions(+), 255 deletions(-) diff --git a/bun.lockb b/bun.lockb index 54182b6f94c5360016039e71ad3ba47a7699d03e..e21f2de21545c8706cf2f8e61b40a34376e868a5 100755 GIT binary patch delta 75930 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ⅅSrU`VUrV^$(c{~92N3G6Ko>FD~DI1@|cJ- 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 diff --git a/mocks/browser.ts b/mocks/browser.ts index 255209f8..9298eaf7 100644 --- a/mocks/browser.ts +++ b/mocks/browser.ts @@ -1,4 +1,4 @@ -import { setupWorker } from 'msw'; +import { setupWorker } from 'msw/browser'; import handlers from './handlers'; diff --git a/mocks/handlers.ts b/mocks/handlers.ts index 1c364add..ab0aa006 100644 --- a/mocks/handlers.ts +++ b/mocks/handlers.ts @@ -1,7 +1,7 @@ -import { rest } from 'msw'; +import { http } from 'msw'; const handlers = [ - rest.post('/login', async (_req, res, ctx) => { + http.post('/login', async (_req, res, ctx) => { // Persist user's authentication in the session sessionStorage.setItem('is-authenticated', 'true'); return res( @@ -9,7 +9,7 @@ const handlers = [ ctx.status(200), ); }), - rest.get('/user', async (_req, res, ctx) => { + http.get('/user', async (_req, res, ctx) => { // Check if the user is authenticated in this session const isAuthenticated = sessionStorage.getItem('is-authenticated'); if (!isAuthenticated) { diff --git a/next-env.d.ts b/next-env.d.ts index fd36f949..725dd6f2 100644 --- a/next-env.d.ts +++ b/next-env.d.ts @@ -3,4 +3,4 @@ /// // NOTE: This file should not be edited -// see https://nextjs.org/docs/basic-features/typescript for more information. +// see https://nextjs.org/docs/app/building-your-application/configuring/typescript for more information. diff --git a/package.json b/package.json index ba9827bf..cfa09af2 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "identity-obj-proxy": "3.0.0", "jest-fetch-mock": "3.0.3", "jsdom": "25.0.1", - "msw": "1.3.5", + "msw": "2.6.8", "postcss": "8.4.49", "prisma": "6.0.1", "rustywind": "0.23.1", diff --git a/public/mockServiceWorker.js b/public/mockServiceWorker.js index 7ec55099..dbc5b1d0 100644 --- a/public/mockServiceWorker.js +++ b/public/mockServiceWorker.js @@ -2,173 +2,155 @@ /* tslint:disable */ /** - * Mock Service Worker (1.3.3). + * Mock Service Worker. * @see https://github.com/mswjs/msw * - Please do NOT modify this file. * - Please do NOT serve this file on production. */ -const INTEGRITY_CHECKSUM = '3d6b9f06410d179a7f7404d4bf4c3c70'; -const activeClientIds = new Set(); +const PACKAGE_VERSION = '2.6.8' +const INTEGRITY_CHECKSUM = '00729d72e3b82faf54ca8b9621dbb96f' +const IS_MOCKED_RESPONSE = Symbol('isMockedResponse') +const activeClientIds = new Set() self.addEventListener('install', function () { - self.skipWaiting(); -}); + self.skipWaiting() +}) self.addEventListener('activate', function (event) { - event.waitUntil(self.clients.claim()); -}); + event.waitUntil(self.clients.claim()) +}) self.addEventListener('message', async function (event) { - const clientId = event.source.id; + const clientId = event.source.id - if (!clientId || !self.clients) { - return; - } + if (!clientId || !self.clients) { + return + } + + const client = await self.clients.get(clientId) + + if (!client) { + return + } - const client = await self.clients.get(clientId); + const allClients = await self.clients.matchAll({ + type: 'window', + }) - if (!client) { - return; + switch (event.data) { + case 'KEEPALIVE_REQUEST': { + sendToClient(client, { + type: 'KEEPALIVE_RESPONSE', + }) + break } - const allClients = await self.clients.matchAll({ - type: 'window', - }); - - switch (event.data) { - case 'KEEPALIVE_REQUEST': { - sendToClient(client, { - type: 'KEEPALIVE_RESPONSE', - }); - break; - } - - case 'INTEGRITY_CHECK_REQUEST': { - sendToClient(client, { - type: 'INTEGRITY_CHECK_RESPONSE', - payload: INTEGRITY_CHECKSUM, - }); - break; - } - - case 'MOCK_ACTIVATE': { - activeClientIds.add(clientId); - - sendToClient(client, { - type: 'MOCKING_ENABLED', - payload: true, - }); - break; - } - - case 'MOCK_DEACTIVATE': { - activeClientIds.delete(clientId); - break; - } - - case 'CLIENT_CLOSED': { - activeClientIds.delete(clientId); - - const remainingClients = allClients.filter((client) => { - return client.id !== clientId; - }); - - // Unregister itself when there are no more clients - if (remainingClients.length === 0) { - self.registration.unregister(); - } - - break; - } + case 'INTEGRITY_CHECK_REQUEST': { + sendToClient(client, { + type: 'INTEGRITY_CHECK_RESPONSE', + payload: { + packageVersion: PACKAGE_VERSION, + checksum: INTEGRITY_CHECKSUM, + }, + }) + break } -}); -self.addEventListener('fetch', function (event) { - const { request } = event; - const accept = request.headers.get('accept') || ''; + case 'MOCK_ACTIVATE': { + activeClientIds.add(clientId) - // Bypass server-sent events. - if (accept.includes('text/event-stream')) { - return; + sendToClient(client, { + type: 'MOCKING_ENABLED', + payload: { + client: { + id: client.id, + frameType: client.frameType, + }, + }, + }) + break } - // Bypass navigation requests. - if (request.mode === 'navigate') { - return; + case 'MOCK_DEACTIVATE': { + activeClientIds.delete(clientId) + break } - // Opening the DevTools triggers the "only-if-cached" request - // that cannot be handled by the worker. Bypass such requests. - if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') { - return; - } + case 'CLIENT_CLOSED': { + activeClientIds.delete(clientId) - // Bypass all requests when there are no active clients. - // Prevents the self-unregistered worked from handling requests - // after it's been deleted (still remains active until the next reload). - if (activeClientIds.size === 0) { - return; + const remainingClients = allClients.filter((client) => { + return client.id !== clientId + }) + + // Unregister itself when there are no more clients + if (remainingClients.length === 0) { + self.registration.unregister() + } + + break } + } +}) - // Generate unique request ID. - const requestId = Math.random().toString(16).slice(2); - - event.respondWith( - handleRequest(event, requestId).catch((error) => { - if (error.name === 'NetworkError') { - console.warn( - '[MSW] Successfully emulated a network error for the "%s %s" request.', - request.method, - request.url, - ); - return; - } - - // At this point, any exception indicates an issue with the original request/response. - console.error( - `\ -[MSW] Caught an exception from the "%s %s" request (%s). This is probably not a problem with Mock Service Worker. There is likely an additional logging output above.`, - request.method, - request.url, - `${error.name}: ${error.message}`, - ); - }), - ); -}); +self.addEventListener('fetch', function (event) { + const { request } = event + + // Bypass navigation requests. + if (request.mode === 'navigate') { + return + } + + // Opening the DevTools triggers the "only-if-cached" request + // that cannot be handled by the worker. Bypass such requests. + if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') { + return + } + + // Bypass all requests when there are no active clients. + // Prevents the self-unregistered worked from handling requests + // after it's been deleted (still remains active until the next reload). + if (activeClientIds.size === 0) { + return + } + + // Generate unique request ID. + const requestId = crypto.randomUUID() + event.respondWith(handleRequest(event, requestId)) +}) async function handleRequest(event, requestId) { - const client = await resolveMainClient(event); - const response = await getResponse(event, client, requestId); - - // Send back the response clone for the "response:*" life-cycle events. - // Ensure MSW is active and ready to handle the message, otherwise - // this message will pend indefinitely. - if (client && activeClientIds.has(client.id)) { - (async function () { - const clonedResponse = response.clone(); - sendToClient(client, { - type: 'RESPONSE', - payload: { - requestId, - type: clonedResponse.type, - ok: clonedResponse.ok, - status: clonedResponse.status, - statusText: clonedResponse.statusText, - body: - clonedResponse.body === null - ? null - : await clonedResponse.text(), - headers: Object.fromEntries( - clonedResponse.headers.entries(), - ), - redirected: clonedResponse.redirected, - }, - }); - })(); - } + const client = await resolveMainClient(event) + const response = await getResponse(event, client, requestId) + + // Send back the response clone for the "response:*" life-cycle events. + // Ensure MSW is active and ready to handle the message, otherwise + // this message will pend indefinitely. + if (client && activeClientIds.has(client.id)) { + ;(async function () { + const responseClone = response.clone() + + sendToClient( + client, + { + type: 'RESPONSE', + payload: { + requestId, + isMockedResponse: IS_MOCKED_RESPONSE in response, + type: responseClone.type, + status: responseClone.status, + statusText: responseClone.statusText, + body: responseClone.body, + headers: Object.fromEntries(responseClone.headers.entries()), + }, + }, + [responseClone.body], + ) + })() + } - return response; + return response } // Resolve the main client for the given event. @@ -176,132 +158,150 @@ async function handleRequest(event, requestId) { // that registered the worker. It's with the latter the worker should // communicate with during the response resolving phase. async function resolveMainClient(event) { - const client = await self.clients.get(event.clientId); - - if (client?.frameType === 'top-level') { - return client; - } - - const allClients = await self.clients.matchAll({ - type: 'window', - }); - - return allClients - .filter((client) => { - // Get only those clients that are currently visible. - return client.visibilityState === 'visible'; - }) - .find((client) => { - // Find the client ID that's recorded in the - // set of clients that have registered the worker. - return activeClientIds.has(client.id); - }); + const client = await self.clients.get(event.clientId) + + if (activeClientIds.has(event.clientId)) { + return client + } + + if (client?.frameType === 'top-level') { + return client + } + + const allClients = await self.clients.matchAll({ + type: 'window', + }) + + return allClients + .filter((client) => { + // Get only those clients that are currently visible. + return client.visibilityState === 'visible' + }) + .find((client) => { + // Find the client ID that's recorded in the + // set of clients that have registered the worker. + return activeClientIds.has(client.id) + }) } async function getResponse(event, client, requestId) { - const { request } = event; - const clonedRequest = request.clone(); - - function passthrough() { - // Clone the request because it might've been already used - // (i.e. its body has been read and sent to the client). - const headers = Object.fromEntries(clonedRequest.headers.entries()); - - // Remove MSW-specific request headers so the bypassed requests - // comply with the server's CORS preflight check. - // Operate with the headers as an object because request "Headers" - // are immutable. - delete headers['x-msw-bypass']; - - return fetch(clonedRequest, { headers }); - } - - // Bypass mocking when the client is not active. - if (!client) { - return passthrough(); - } - - // Bypass initial page load requests (i.e. static assets). - // The absence of the immediate/parent client in the map of the active clients - // means that MSW hasn't dispatched the "MOCK_ACTIVATE" event yet - // and is not ready to handle requests. - if (!activeClientIds.has(client.id)) { - return passthrough(); + const { request } = event + + // Clone the request because it might've been already used + // (i.e. its body has been read and sent to the client). + const requestClone = request.clone() + + function passthrough() { + // Cast the request headers to a new Headers instance + // so the headers can be manipulated with. + const headers = new Headers(requestClone.headers) + + // Remove the "accept" header value that marked this request as passthrough. + // This prevents request alteration and also keeps it compliant with the + // user-defined CORS policies. + const acceptHeader = headers.get('accept') + if (acceptHeader) { + const values = acceptHeader.split(',').map((value) => value.trim()) + const filteredValues = values.filter( + (value) => value !== 'msw/passthrough', + ) + + if (filteredValues.length > 0) { + headers.set('accept', filteredValues.join(', ')) + } else { + headers.delete('accept') + } } - // Bypass requests with the explicit bypass header. - // Such requests can be issued by "ctx.fetch()". - if (request.headers.get('x-msw-bypass') === 'true') { - return passthrough(); + return fetch(requestClone, { headers }) + } + + // Bypass mocking when the client is not active. + if (!client) { + return passthrough() + } + + // Bypass initial page load requests (i.e. static assets). + // The absence of the immediate/parent client in the map of the active clients + // means that MSW hasn't dispatched the "MOCK_ACTIVATE" event yet + // and is not ready to handle requests. + if (!activeClientIds.has(client.id)) { + return passthrough() + } + + // Notify the client that a request has been intercepted. + const requestBuffer = await request.arrayBuffer() + const clientMessage = await sendToClient( + client, + { + type: 'REQUEST', + payload: { + id: requestId, + url: request.url, + mode: request.mode, + method: request.method, + headers: Object.fromEntries(request.headers.entries()), + cache: request.cache, + credentials: request.credentials, + destination: request.destination, + integrity: request.integrity, + redirect: request.redirect, + referrer: request.referrer, + referrerPolicy: request.referrerPolicy, + body: requestBuffer, + keepalive: request.keepalive, + }, + }, + [requestBuffer], + ) + + switch (clientMessage.type) { + case 'MOCK_RESPONSE': { + return respondWithMock(clientMessage.data) } - // Notify the client that a request has been intercepted. - const clientMessage = await sendToClient(client, { - type: 'REQUEST', - payload: { - id: requestId, - url: request.url, - method: request.method, - headers: Object.fromEntries(request.headers.entries()), - cache: request.cache, - mode: request.mode, - credentials: request.credentials, - destination: request.destination, - integrity: request.integrity, - redirect: request.redirect, - referrer: request.referrer, - referrerPolicy: request.referrerPolicy, - body: await request.text(), - bodyUsed: request.bodyUsed, - keepalive: request.keepalive, - }, - }); - - switch (clientMessage.type) { - case 'MOCK_RESPONSE': { - return respondWithMock(clientMessage.data); - } - - case 'MOCK_NOT_FOUND': { - return passthrough(); - } - - case 'NETWORK_ERROR': { - const { name, message } = clientMessage.data; - const networkError = new Error(message); - networkError.name = name; - - // Rejecting a "respondWith" promise emulates a network error. - throw networkError; - } + case 'PASSTHROUGH': { + return passthrough() } + } - return passthrough(); + return passthrough() } -function sendToClient(client, message) { - return new Promise((resolve, reject) => { - const channel = new MessageChannel(); - - channel.port1.onmessage = (event) => { - if (event.data?.error) { - return reject(event.data.error); - } +function sendToClient(client, message, transferrables = []) { + return new Promise((resolve, reject) => { + const channel = new MessageChannel() - resolve(event.data); - }; + channel.port1.onmessage = (event) => { + if (event.data && event.data.error) { + return reject(event.data.error) + } - client.postMessage(message, [channel.port2]); - }); -} + resolve(event.data) + } -function sleep(timeMs) { - return new Promise((resolve) => { - setTimeout(resolve, timeMs); - }); + client.postMessage( + message, + [channel.port2].concat(transferrables.filter(Boolean)), + ) + }) } async function respondWithMock(response) { - await sleep(response.delay); - return new Response(response.body, response); + // Setting response status code to 0 is a no-op. + // However, when responding with a "Response.error()", the produced Response + // instance will have status code set to 0. Since it's not possible to create + // a Response instance with status code 0, handle that use-case separately. + if (response.status === 0) { + return Response.error() + } + + const mockedResponse = new Response(response.body, response) + + Reflect.defineProperty(mockedResponse, IS_MOCKED_RESPONSE, { + value: true, + enumerable: true, + }) + + return mockedResponse }