@zimic/interceptor 0.16.0-canary.11 → 0.16.0-canary.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 (37) hide show
  1. package/README.md +2 -1
  2. package/dist/{chunk-NTRC2S4I.mjs → chunk-2RNFR6TF.mjs} +267 -249
  3. package/dist/chunk-2RNFR6TF.mjs.map +1 -0
  4. package/dist/{chunk-O6ZIPCUJ.js → chunk-D7CDDSQE.js} +268 -250
  5. package/dist/chunk-D7CDDSQE.js.map +1 -0
  6. package/dist/cli.js +9 -9
  7. package/dist/cli.js.map +1 -1
  8. package/dist/cli.mjs +5 -5
  9. package/dist/cli.mjs.map +1 -1
  10. package/dist/http.d.ts +141 -180
  11. package/dist/http.js +69 -102
  12. package/dist/http.js.map +1 -1
  13. package/dist/http.mjs +69 -101
  14. package/dist/http.mjs.map +1 -1
  15. package/dist/server.d.ts +46 -20
  16. package/dist/server.js +7 -7
  17. package/dist/server.mjs +1 -1
  18. package/package.json +11 -11
  19. package/src/cli/browser/init.ts +2 -2
  20. package/src/cli/server/start.ts +2 -2
  21. package/src/http/index.ts +2 -5
  22. package/src/http/interceptor/HttpInterceptorClient.ts +15 -30
  23. package/src/http/interceptor/LocalHttpInterceptor.ts +8 -8
  24. package/src/http/interceptor/RemoteHttpInterceptor.ts +8 -8
  25. package/src/http/interceptor/types/options.ts +10 -3
  26. package/src/http/interceptor/types/public.ts +12 -44
  27. package/src/http/interceptorWorker/HttpInterceptorWorker.ts +2 -2
  28. package/src/http/requestHandler/HttpRequestHandlerClient.ts +5 -15
  29. package/src/http/requestHandler/errors/DisabledRequestSavingError.ts +1 -1
  30. package/src/http/requestHandler/errors/TimesCheckError.ts +14 -15
  31. package/src/http/requestHandler/types/public.ts +8 -16
  32. package/src/server/index.ts +11 -1
  33. package/src/server/namespace/InterceptorServerNamespace.ts +21 -0
  34. package/src/utils/console.ts +2 -2
  35. package/dist/chunk-NTRC2S4I.mjs.map +0 -1
  36. package/dist/chunk-O6ZIPCUJ.js.map +0 -1
  37. package/src/http/interceptor/errors/RequestSavingSafeLimitExceededError.ts +0 -22
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
  </h1>
8
8
 
9
9
  <p align="center">
10
- Next-gen, TypeScript-first HTTP intercepting and mocking
10
+ TypeScript-first HTTP intercepting and mocking
11
11
  </p>
12
12
 
13
13
  <p align="center">
@@ -149,6 +149,7 @@ Check our [getting started guide](https://github.com/zimicjs/zimic/wiki/getting
149
149
  const interceptor = createHttpInterceptor<Schema>({
150
150
  type: 'local',
151
151
  baseURL: 'http://localhost:3000',
152
+ saveRequests: true, // Allow access to `handler.requests`
152
153
  });
153
154
  ```
154
155
 
@@ -1,251 +1,10 @@
1
1
  import { __name } from './chunk-CGILA3WO.mjs';
2
- import { HTTP_METHODS, HttpHeaders, HttpSearchParams, HttpFormData, HTTP_METHODS_WITH_RESPONSE_BODY } from '@zimic/http';
3
2
  import { normalizeNodeRequest, sendNodeResponse } from '@whatwg-node/server';
4
3
  import { createServer } from 'http';
5
- import color2 from 'picocolors';
4
+ import { HttpHeaders, HttpSearchParams, HttpFormData, HTTP_METHODS, HTTP_METHODS_WITH_RESPONSE_BODY } from '@zimic/http';
5
+ import chalk2 from 'chalk';
6
6
  import ClientSocket from 'isomorphic-ws';
7
7
 
8
- // src/server/errors/RunningInterceptorServerError.ts
9
- var RunningInterceptorServerError = class extends Error {
10
- static {
11
- __name(this, "RunningInterceptorServerError");
12
- }
13
- constructor(additionalMessage) {
14
- super(`The interceptor server is running.${additionalMessage}`);
15
- this.name = "RunningInterceptorServerError";
16
- }
17
- };
18
- var RunningInterceptorServerError_default = RunningInterceptorServerError;
19
-
20
- // src/server/errors/NotRunningInterceptorServerError.ts
21
- var NotRunningInterceptorServerError = class extends Error {
22
- static {
23
- __name(this, "NotRunningInterceptorServerError");
24
- }
25
- constructor() {
26
- super("The interceptor server is not running. Did you forget to start it?");
27
- this.name = "NotRunningInterceptorServerError";
28
- }
29
- };
30
- var NotRunningInterceptorServerError_default = NotRunningInterceptorServerError;
31
- var HttpServerTimeoutError = class extends Error {
32
- static {
33
- __name(this, "HttpServerTimeoutError");
34
- }
35
- };
36
- var HttpServerStartTimeoutError = class extends HttpServerTimeoutError {
37
- static {
38
- __name(this, "HttpServerStartTimeoutError");
39
- }
40
- constructor(reachedTimeout) {
41
- super(`HTTP server start timed out after ${reachedTimeout}ms.`);
42
- this.name = "HttpServerStartTimeout";
43
- }
44
- };
45
- var HttpServerStopTimeoutError = class extends HttpServerTimeoutError {
46
- static {
47
- __name(this, "HttpServerStopTimeoutError");
48
- }
49
- constructor(reachedTimeout) {
50
- super(`HTTP server stop timed out after ${reachedTimeout}ms.`);
51
- this.name = "HttpServerStopTimeout";
52
- }
53
- };
54
- var DEFAULT_HTTP_SERVER_LIFECYCLE_TIMEOUT = 60 * 1e3;
55
- async function startHttpServer(server, options = {}) {
56
- const { hostname, port, timeout: timeoutDuration = DEFAULT_HTTP_SERVER_LIFECYCLE_TIMEOUT } = options;
57
- await new Promise((resolve, reject) => {
58
- function handleStartError(error) {
59
- server.off("listening", handleStartSuccess);
60
- reject(error);
61
- }
62
- __name(handleStartError, "handleStartError");
63
- const startTimeout = setTimeout(() => {
64
- const timeoutError = new HttpServerStartTimeoutError(timeoutDuration);
65
- handleStartError(timeoutError);
66
- }, timeoutDuration);
67
- function handleStartSuccess() {
68
- server.off("error", handleStartError);
69
- clearTimeout(startTimeout);
70
- resolve();
71
- }
72
- __name(handleStartSuccess, "handleStartSuccess");
73
- server.once("error", handleStartError);
74
- server.listen(port, hostname, handleStartSuccess);
75
- });
76
- }
77
- __name(startHttpServer, "startHttpServer");
78
- async function stopHttpServer(server, options = {}) {
79
- const { timeout: timeoutDuration = DEFAULT_HTTP_SERVER_LIFECYCLE_TIMEOUT } = options;
80
- if (!server.listening) {
81
- return;
82
- }
83
- await new Promise((resolve, reject) => {
84
- const stopTimeout = setTimeout(() => {
85
- const timeoutError = new HttpServerStopTimeoutError(timeoutDuration);
86
- reject(timeoutError);
87
- }, timeoutDuration);
88
- server.close((error) => {
89
- clearTimeout(stopTimeout);
90
- if (error) {
91
- reject(error);
92
- } else {
93
- resolve();
94
- }
95
- });
96
- server.closeAllConnections();
97
- });
98
- }
99
- __name(stopHttpServer, "stopHttpServer");
100
- function getHttpServerPort(server) {
101
- const address = server.address();
102
- if (typeof address === "string") {
103
- return void 0;
104
- } else {
105
- return address?.port;
106
- }
107
- }
108
- __name(getHttpServerPort, "getHttpServerPort");
109
- function methodCanHaveResponseBody(method) {
110
- const methodsToCompare = HTTP_METHODS_WITH_RESPONSE_BODY;
111
- return methodsToCompare.includes(method);
112
- }
113
- __name(methodCanHaveResponseBody, "methodCanHaveResponseBody");
114
-
115
- // src/utils/webSocket.ts
116
- var WebSocketTimeoutError = class extends Error {
117
- static {
118
- __name(this, "WebSocketTimeoutError");
119
- }
120
- };
121
- var WebSocketOpenTimeoutError = class extends WebSocketTimeoutError {
122
- static {
123
- __name(this, "WebSocketOpenTimeoutError");
124
- }
125
- constructor(reachedTimeout) {
126
- super(`Web socket open timed out after ${reachedTimeout}ms.`);
127
- this.name = "WebSocketOpenTimeout";
128
- }
129
- };
130
- var WebSocketMessageTimeoutError = class extends WebSocketTimeoutError {
131
- static {
132
- __name(this, "WebSocketMessageTimeoutError");
133
- }
134
- constructor(reachedTimeout) {
135
- super(`Web socket message timed out after ${reachedTimeout}ms.`);
136
- this.name = "WebSocketMessageTimeout";
137
- }
138
- };
139
- var WebSocketMessageAbortError = class extends WebSocketTimeoutError {
140
- static {
141
- __name(this, "WebSocketMessageAbortError");
142
- }
143
- constructor() {
144
- super("Web socket message was aborted.");
145
- this.name = "WebSocketMessageAbortError";
146
- }
147
- };
148
- var WebSocketCloseTimeoutError = class extends WebSocketTimeoutError {
149
- static {
150
- __name(this, "WebSocketCloseTimeoutError");
151
- }
152
- constructor(reachedTimeout) {
153
- super(`Web socket close timed out after ${reachedTimeout}ms.`);
154
- this.name = "WebSocketCloseTimeout";
155
- }
156
- };
157
- var DEFAULT_WEB_SOCKET_LIFECYCLE_TIMEOUT = 60 * 1e3;
158
- var DEFAULT_WEB_SOCKET_MESSAGE_TIMEOUT = 3 * 60 * 1e3;
159
- async function waitForOpenClientSocket(socket, options = {}) {
160
- const { timeout: timeoutDuration = DEFAULT_WEB_SOCKET_LIFECYCLE_TIMEOUT } = options;
161
- const isAlreadyOpen = socket.readyState === socket.OPEN;
162
- if (isAlreadyOpen) {
163
- return;
164
- }
165
- await new Promise((resolve, reject) => {
166
- function handleOpenError(error) {
167
- socket.removeEventListener("open", handleOpenSuccess);
168
- reject(error);
169
- }
170
- __name(handleOpenError, "handleOpenError");
171
- const openTimeout = setTimeout(() => {
172
- const timeoutError = new WebSocketOpenTimeoutError(timeoutDuration);
173
- handleOpenError(timeoutError);
174
- }, timeoutDuration);
175
- function handleOpenSuccess() {
176
- socket.removeEventListener("error", handleOpenError);
177
- clearTimeout(openTimeout);
178
- resolve();
179
- }
180
- __name(handleOpenSuccess, "handleOpenSuccess");
181
- socket.addEventListener("open", handleOpenSuccess);
182
- socket.addEventListener("error", handleOpenError);
183
- });
184
- }
185
- __name(waitForOpenClientSocket, "waitForOpenClientSocket");
186
- async function closeClientSocket(socket, options = {}) {
187
- const { timeout: timeoutDuration = DEFAULT_WEB_SOCKET_LIFECYCLE_TIMEOUT } = options;
188
- const isAlreadyClosed = socket.readyState === socket.CLOSED;
189
- if (isAlreadyClosed) {
190
- return;
191
- }
192
- await new Promise((resolve, reject) => {
193
- function handleCloseError(error) {
194
- socket.removeEventListener("close", handleCloseSuccess);
195
- reject(error);
196
- }
197
- __name(handleCloseError, "handleCloseError");
198
- const closeTimeout = setTimeout(() => {
199
- const timeoutError = new WebSocketCloseTimeoutError(timeoutDuration);
200
- handleCloseError(timeoutError);
201
- }, timeoutDuration);
202
- function handleCloseSuccess() {
203
- socket.removeEventListener("error", handleCloseError);
204
- clearTimeout(closeTimeout);
205
- resolve();
206
- }
207
- __name(handleCloseSuccess, "handleCloseSuccess");
208
- socket.addEventListener("error", handleCloseError);
209
- socket.addEventListener("close", handleCloseSuccess);
210
- socket.close();
211
- });
212
- }
213
- __name(closeClientSocket, "closeClientSocket");
214
- async function closeServerSocket(socket, options = {}) {
215
- const { timeout: timeoutDuration = DEFAULT_WEB_SOCKET_LIFECYCLE_TIMEOUT } = options;
216
- await new Promise((resolve, reject) => {
217
- const closeTimeout = setTimeout(() => {
218
- const timeoutError = new WebSocketCloseTimeoutError(timeoutDuration);
219
- reject(timeoutError);
220
- }, timeoutDuration);
221
- for (const client of socket.clients) {
222
- client.terminate();
223
- }
224
- socket.close((error) => {
225
- clearTimeout(closeTimeout);
226
- if (error) {
227
- reject(error);
228
- } else {
229
- resolve();
230
- }
231
- });
232
- });
233
- }
234
- __name(closeServerSocket, "closeServerSocket");
235
-
236
- // src/server/constants.ts
237
- var ALLOWED_ACCESS_CONTROL_HTTP_METHODS = HTTP_METHODS.join(",");
238
- var DEFAULT_ACCESS_CONTROL_HEADERS = Object.freeze({
239
- "access-control-allow-origin": "*",
240
- "access-control-allow-methods": ALLOWED_ACCESS_CONTROL_HTTP_METHODS,
241
- "access-control-allow-headers": "*",
242
- "access-control-expose-headers": "*",
243
- "access-control-max-age": ""
244
- });
245
- var DEFAULT_PREFLIGHT_STATUS_CODE = 204;
246
- var DEFAULT_HOSTNAME = "localhost";
247
- var DEFAULT_LOG_UNHANDLED_REQUESTS = true;
248
-
249
8
  // ../zimic-utils/dist/chunk-PAWJFY3S.mjs
250
9
  var __defProp = Object.defineProperty;
251
10
  var __name2 = /* @__PURE__ */ __name((target, value) => __defProp(target, "name", { value, configurable: true }), "__name");
@@ -345,9 +104,92 @@ __name(formatValueToLog, "formatValueToLog");
345
104
  function logWithPrefix(messageOrMessages, options = {}) {
346
105
  const { method = "log" } = options;
347
106
  const messages = Array.isArray(messageOrMessages) ? messageOrMessages : [messageOrMessages];
348
- console[method](color2.cyan("[@zimic/interceptor]"), ...messages);
107
+ console[method](chalk2.cyan("[@zimic/interceptor]"), ...messages);
349
108
  }
350
109
  __name(logWithPrefix, "logWithPrefix");
110
+ var HttpServerTimeoutError = class extends Error {
111
+ static {
112
+ __name(this, "HttpServerTimeoutError");
113
+ }
114
+ };
115
+ var HttpServerStartTimeoutError = class extends HttpServerTimeoutError {
116
+ static {
117
+ __name(this, "HttpServerStartTimeoutError");
118
+ }
119
+ constructor(reachedTimeout) {
120
+ super(`HTTP server start timed out after ${reachedTimeout}ms.`);
121
+ this.name = "HttpServerStartTimeout";
122
+ }
123
+ };
124
+ var HttpServerStopTimeoutError = class extends HttpServerTimeoutError {
125
+ static {
126
+ __name(this, "HttpServerStopTimeoutError");
127
+ }
128
+ constructor(reachedTimeout) {
129
+ super(`HTTP server stop timed out after ${reachedTimeout}ms.`);
130
+ this.name = "HttpServerStopTimeout";
131
+ }
132
+ };
133
+ var DEFAULT_HTTP_SERVER_LIFECYCLE_TIMEOUT = 60 * 1e3;
134
+ async function startHttpServer(server, options = {}) {
135
+ const { hostname, port, timeout: timeoutDuration = DEFAULT_HTTP_SERVER_LIFECYCLE_TIMEOUT } = options;
136
+ await new Promise((resolve, reject) => {
137
+ function handleStartError(error) {
138
+ server.off("listening", handleStartSuccess);
139
+ reject(error);
140
+ }
141
+ __name(handleStartError, "handleStartError");
142
+ const startTimeout = setTimeout(() => {
143
+ const timeoutError = new HttpServerStartTimeoutError(timeoutDuration);
144
+ handleStartError(timeoutError);
145
+ }, timeoutDuration);
146
+ function handleStartSuccess() {
147
+ server.off("error", handleStartError);
148
+ clearTimeout(startTimeout);
149
+ resolve();
150
+ }
151
+ __name(handleStartSuccess, "handleStartSuccess");
152
+ server.once("error", handleStartError);
153
+ server.listen(port, hostname, handleStartSuccess);
154
+ });
155
+ }
156
+ __name(startHttpServer, "startHttpServer");
157
+ async function stopHttpServer(server, options = {}) {
158
+ const { timeout: timeoutDuration = DEFAULT_HTTP_SERVER_LIFECYCLE_TIMEOUT } = options;
159
+ if (!server.listening) {
160
+ return;
161
+ }
162
+ await new Promise((resolve, reject) => {
163
+ const stopTimeout = setTimeout(() => {
164
+ const timeoutError = new HttpServerStopTimeoutError(timeoutDuration);
165
+ reject(timeoutError);
166
+ }, timeoutDuration);
167
+ server.close((error) => {
168
+ clearTimeout(stopTimeout);
169
+ if (error) {
170
+ reject(error);
171
+ } else {
172
+ resolve();
173
+ }
174
+ });
175
+ server.closeAllConnections();
176
+ });
177
+ }
178
+ __name(stopHttpServer, "stopHttpServer");
179
+ function getHttpServerPort(server) {
180
+ const address = server.address();
181
+ if (typeof address === "string") {
182
+ return void 0;
183
+ } else {
184
+ return address?.port;
185
+ }
186
+ }
187
+ __name(getHttpServerPort, "getHttpServerPort");
188
+ function methodCanHaveResponseBody(method) {
189
+ const methodsToCompare = HTTP_METHODS_WITH_RESPONSE_BODY;
190
+ return methodsToCompare.includes(method);
191
+ }
192
+ __name(methodCanHaveResponseBody, "methodCanHaveResponseBody");
351
193
 
352
194
  // src/http/requestHandler/types/requests.ts
353
195
  var HTTP_INTERCEPTOR_REQUEST_HIDDEN_PROPERTIES = Object.freeze(
@@ -709,7 +551,7 @@ var HttpInterceptorWorker = class _HttpInterceptorWorker {
709
551
  ]);
710
552
  logWithPrefix(
711
553
  [
712
- `${action === "bypass" ? "Warning:" : "Error:"} Request was not handled and was ${action === "bypass" ? color2.yellow("bypassed") : color2.red("rejected")}.
554
+ `${action === "bypass" ? "Warning:" : "Error:"} Request was not handled and was ${action === "bypass" ? chalk2.yellow("bypassed") : chalk2.red("rejected")}.
713
555
 
714
556
  `,
715
557
  `${request.method} ${request.url}`,
@@ -784,6 +626,127 @@ function deserializeResponse(serializedResponse) {
784
626
  }
785
627
  __name(deserializeResponse, "deserializeResponse");
786
628
 
629
+ // src/utils/webSocket.ts
630
+ var WebSocketTimeoutError = class extends Error {
631
+ static {
632
+ __name(this, "WebSocketTimeoutError");
633
+ }
634
+ };
635
+ var WebSocketOpenTimeoutError = class extends WebSocketTimeoutError {
636
+ static {
637
+ __name(this, "WebSocketOpenTimeoutError");
638
+ }
639
+ constructor(reachedTimeout) {
640
+ super(`Web socket open timed out after ${reachedTimeout}ms.`);
641
+ this.name = "WebSocketOpenTimeout";
642
+ }
643
+ };
644
+ var WebSocketMessageTimeoutError = class extends WebSocketTimeoutError {
645
+ static {
646
+ __name(this, "WebSocketMessageTimeoutError");
647
+ }
648
+ constructor(reachedTimeout) {
649
+ super(`Web socket message timed out after ${reachedTimeout}ms.`);
650
+ this.name = "WebSocketMessageTimeout";
651
+ }
652
+ };
653
+ var WebSocketMessageAbortError = class extends WebSocketTimeoutError {
654
+ static {
655
+ __name(this, "WebSocketMessageAbortError");
656
+ }
657
+ constructor() {
658
+ super("Web socket message was aborted.");
659
+ this.name = "WebSocketMessageAbortError";
660
+ }
661
+ };
662
+ var WebSocketCloseTimeoutError = class extends WebSocketTimeoutError {
663
+ static {
664
+ __name(this, "WebSocketCloseTimeoutError");
665
+ }
666
+ constructor(reachedTimeout) {
667
+ super(`Web socket close timed out after ${reachedTimeout}ms.`);
668
+ this.name = "WebSocketCloseTimeout";
669
+ }
670
+ };
671
+ var DEFAULT_WEB_SOCKET_LIFECYCLE_TIMEOUT = 60 * 1e3;
672
+ var DEFAULT_WEB_SOCKET_MESSAGE_TIMEOUT = 3 * 60 * 1e3;
673
+ async function waitForOpenClientSocket(socket, options = {}) {
674
+ const { timeout: timeoutDuration = DEFAULT_WEB_SOCKET_LIFECYCLE_TIMEOUT } = options;
675
+ const isAlreadyOpen = socket.readyState === socket.OPEN;
676
+ if (isAlreadyOpen) {
677
+ return;
678
+ }
679
+ await new Promise((resolve, reject) => {
680
+ function handleOpenError(error) {
681
+ socket.removeEventListener("open", handleOpenSuccess);
682
+ reject(error);
683
+ }
684
+ __name(handleOpenError, "handleOpenError");
685
+ const openTimeout = setTimeout(() => {
686
+ const timeoutError = new WebSocketOpenTimeoutError(timeoutDuration);
687
+ handleOpenError(timeoutError);
688
+ }, timeoutDuration);
689
+ function handleOpenSuccess() {
690
+ socket.removeEventListener("error", handleOpenError);
691
+ clearTimeout(openTimeout);
692
+ resolve();
693
+ }
694
+ __name(handleOpenSuccess, "handleOpenSuccess");
695
+ socket.addEventListener("open", handleOpenSuccess);
696
+ socket.addEventListener("error", handleOpenError);
697
+ });
698
+ }
699
+ __name(waitForOpenClientSocket, "waitForOpenClientSocket");
700
+ async function closeClientSocket(socket, options = {}) {
701
+ const { timeout: timeoutDuration = DEFAULT_WEB_SOCKET_LIFECYCLE_TIMEOUT } = options;
702
+ const isAlreadyClosed = socket.readyState === socket.CLOSED;
703
+ if (isAlreadyClosed) {
704
+ return;
705
+ }
706
+ await new Promise((resolve, reject) => {
707
+ function handleCloseError(error) {
708
+ socket.removeEventListener("close", handleCloseSuccess);
709
+ reject(error);
710
+ }
711
+ __name(handleCloseError, "handleCloseError");
712
+ const closeTimeout = setTimeout(() => {
713
+ const timeoutError = new WebSocketCloseTimeoutError(timeoutDuration);
714
+ handleCloseError(timeoutError);
715
+ }, timeoutDuration);
716
+ function handleCloseSuccess() {
717
+ socket.removeEventListener("error", handleCloseError);
718
+ clearTimeout(closeTimeout);
719
+ resolve();
720
+ }
721
+ __name(handleCloseSuccess, "handleCloseSuccess");
722
+ socket.addEventListener("error", handleCloseError);
723
+ socket.addEventListener("close", handleCloseSuccess);
724
+ socket.close();
725
+ });
726
+ }
727
+ __name(closeClientSocket, "closeClientSocket");
728
+ async function closeServerSocket(socket, options = {}) {
729
+ const { timeout: timeoutDuration = DEFAULT_WEB_SOCKET_LIFECYCLE_TIMEOUT } = options;
730
+ await new Promise((resolve, reject) => {
731
+ const closeTimeout = setTimeout(() => {
732
+ const timeoutError = new WebSocketCloseTimeoutError(timeoutDuration);
733
+ reject(timeoutError);
734
+ }, timeoutDuration);
735
+ for (const client of socket.clients) {
736
+ client.terminate();
737
+ }
738
+ socket.close((error) => {
739
+ clearTimeout(closeTimeout);
740
+ if (error) {
741
+ reject(error);
742
+ } else {
743
+ resolve();
744
+ }
745
+ });
746
+ });
747
+ }
748
+ __name(closeServerSocket, "closeServerSocket");
749
+
787
750
  // src/utils/crypto.ts
788
751
  var importCrypto = createCachedDynamicImport_default(async () => {
789
752
  const globalCrypto = globalThis.crypto;
@@ -1102,6 +1065,41 @@ var WebSocketServer = class extends WebSocketHandler_default {
1102
1065
  }
1103
1066
  };
1104
1067
  var WebSocketServer_default = WebSocketServer;
1068
+ var ALLOWED_ACCESS_CONTROL_HTTP_METHODS = HTTP_METHODS.join(",");
1069
+ var DEFAULT_ACCESS_CONTROL_HEADERS = Object.freeze({
1070
+ "access-control-allow-origin": "*",
1071
+ "access-control-allow-methods": ALLOWED_ACCESS_CONTROL_HTTP_METHODS,
1072
+ "access-control-allow-headers": "*",
1073
+ "access-control-expose-headers": "*",
1074
+ "access-control-max-age": ""
1075
+ });
1076
+ var DEFAULT_PREFLIGHT_STATUS_CODE = 204;
1077
+ var DEFAULT_HOSTNAME = "localhost";
1078
+ var DEFAULT_LOG_UNHANDLED_REQUESTS = true;
1079
+
1080
+ // src/server/errors/NotRunningInterceptorServerError.ts
1081
+ var NotRunningInterceptorServerError = class extends Error {
1082
+ static {
1083
+ __name(this, "NotRunningInterceptorServerError");
1084
+ }
1085
+ constructor() {
1086
+ super("The interceptor server is not running. Did you forget to start it?");
1087
+ this.name = "NotRunningInterceptorServerError";
1088
+ }
1089
+ };
1090
+ var NotRunningInterceptorServerError_default = NotRunningInterceptorServerError;
1091
+
1092
+ // src/server/errors/RunningInterceptorServerError.ts
1093
+ var RunningInterceptorServerError = class extends Error {
1094
+ static {
1095
+ __name(this, "RunningInterceptorServerError");
1096
+ }
1097
+ constructor(additionalMessage) {
1098
+ super(`The interceptor server is running.${additionalMessage}`);
1099
+ this.name = "RunningInterceptorServerError";
1100
+ }
1101
+ };
1102
+ var RunningInterceptorServerError_default = RunningInterceptorServerError;
1105
1103
 
1106
1104
  // src/server/utils/fetch.ts
1107
1105
  async function getFetchAPI() {
@@ -1386,7 +1384,26 @@ function createInterceptorServer(options = {}) {
1386
1384
  return new InterceptorServer_default(options);
1387
1385
  }
1388
1386
  __name(createInterceptorServer, "createInterceptorServer");
1389
- /* istanbul ignore next -- @preserve */
1387
+
1388
+ // src/server/namespace/InterceptorServerNamespace.ts
1389
+ var InterceptorServerNamespace = class {
1390
+ static {
1391
+ __name(this, "InterceptorServerNamespace");
1392
+ }
1393
+ /**
1394
+ * Creates an {@link https://github.com/zimicjs/zimic/wiki/cli‐zimic‐server#zimic-server interceptor server}.
1395
+ *
1396
+ * @param options The options to create the server.
1397
+ * @returns The created server.
1398
+ * @see {@link https://github.com/zimicjs/zimic/wiki/cli‐zimic‐server#zimic-server-programmatic-usage `zimic-interceptor server` programmatic usage}
1399
+ * @see {@link https://github.com/zimicjs/zimic/wiki/getting‐started#remote-http-interceptors Remote HTTP Interceptors} .
1400
+ */
1401
+ create = createInterceptorServer;
1402
+ };
1403
+ var InterceptorServerNamespace_default = InterceptorServerNamespace;
1404
+
1405
+ // src/server/index.ts
1406
+ var interceptorServer = Object.freeze(new InterceptorServerNamespace_default());
1390
1407
  /* istanbul ignore if -- @preserve
1391
1408
  * This is expected not to happen since the servers are not stopped unless they are running. */
1392
1409
  /* istanbul ignore if -- @preserve
@@ -1402,6 +1419,7 @@ __name(createInterceptorServer, "createInterceptorServer");
1402
1419
  /* istanbul ignore next -- @preserve
1403
1420
  * Reply listeners are always present when notified in normal conditions. If they were not present, the request
1404
1421
  * would reach a timeout and not be responded. The empty set serves as a fallback. */
1422
+ /* istanbul ignore next -- @preserve */
1405
1423
  /* istanbul ignore if -- @preserve
1406
1424
  * The HTTP server is initialized before using this method in normal conditions. */
1407
1425
  /* istanbul ignore if -- @preserve
@@ -1412,6 +1430,6 @@ __name(createInterceptorServer, "createInterceptorServer");
1412
1430
  * This try..catch is for the case when the remote interceptor web socket client is closed before responding.
1413
1431
  * Since simulating this scenario is difficult, we are ignoring this branch fow now. */
1414
1432
 
1415
- export { DEFAULT_ACCESS_CONTROL_HEADERS, DEFAULT_PREFLIGHT_STATUS_CODE, NotRunningInterceptorServerError_default, RunningInterceptorServerError_default, createCachedDynamicImport_default, createInterceptorServer, logWithPrefix };
1416
- //# sourceMappingURL=chunk-NTRC2S4I.mjs.map
1417
- //# sourceMappingURL=chunk-NTRC2S4I.mjs.map
1433
+ export { DEFAULT_ACCESS_CONTROL_HEADERS, DEFAULT_PREFLIGHT_STATUS_CODE, NotRunningInterceptorServerError_default, RunningInterceptorServerError_default, createCachedDynamicImport_default, interceptorServer, logWithPrefix };
1434
+ //# sourceMappingURL=chunk-2RNFR6TF.mjs.map
1435
+ //# sourceMappingURL=chunk-2RNFR6TF.mjs.map