@livestore/utils-dev 0.0.0-snapshot-785d927ad644da4e856ea5d73244571f23ede77e → 0.0.0-snapshot-d413f1f107a949afd38343e23eefb2a88ae4c600

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.
@@ -1 +1 @@
1
- {"version":3,"file":"WranglerDevServer.d.ts","sourceRoot":"","sources":["../../src/wrangler/WranglerDevServer.ts"],"names":[],"mappings":"AAKA,OAAO,EAAS,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAY,MAAM,EAAE,MAAM,yBAAyB,CAAA;;;;;;;;AAI3G;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,2BAI1C;CAAG;AAEL;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAErB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,sFAAsF;IACtF,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAA;CACxC;;4BAYgB,0BAA0B;;;;;AAV3C;;;;;;;;GAQG;AACH,qBAAa,wBAAyB,SAAQ,6BAyF5C;CAAG"}
1
+ {"version":3,"file":"WranglerDevServer.d.ts","sourceRoot":"","sources":["../../src/wrangler/WranglerDevServer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAS,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAY,MAAM,EAAE,MAAM,yBAAyB,CAAA;;;;;;;;AAI3G;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,2BAI1C;CAAG;AAEL;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAErB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,sFAAsF;IACtF,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAA;CACxC;;4BAYgB,0BAA0B;;;;;AAV3C;;;;;;;;GAQG;AACH,qBAAa,wBAAyB,SAAQ,6BAyF5C;CAAG"}
@@ -1,5 +1,3 @@
1
- import * as http from 'node:http';
2
- import * as https from 'node:https';
3
1
  import * as path from 'node:path';
4
2
  import * as Toml from '@iarna/toml';
5
3
  import { IS_CI } from '@livestore/utils';
@@ -78,78 +76,15 @@ export class WranglerDevServerService extends Effect.Service()('WranglerDevServe
78
76
  * Verifies the server is actually accepting HTTP connections by making a test request
79
77
  */
80
78
  const verifyHttpConnectivity = ({ url, showLogs, connectTimeout, }) => Effect.gen(function* () {
81
- const parsedUrl = new URL(url);
82
- const shouldBypassProxy = isLoopbackHostname(parsedUrl.hostname);
79
+ const client = yield* HttpClient.HttpClient;
83
80
  if (showLogs) {
84
- const suffix = shouldBypassProxy ? ' (proxy bypass for loopback)' : '';
85
- yield* Effect.logDebug(`Verifying HTTP connectivity to ${url}${suffix}`);
81
+ yield* Effect.logDebug(`Verifying HTTP connectivity to ${url}`);
86
82
  }
87
- const withRetries = (effect) => effect.pipe(Effect.retryOrElse(Schedule.exponential('50 millis', 2).pipe(Schedule.jittered, Schedule.intersect(Schedule.elapsed.pipe(Schedule.whileOutput(Duration.lessThanOrEqualTo(connectTimeout)))), Schedule.compose(Schedule.count)), (error, attemptCount) => Effect.fail(new WranglerDevServerError({
83
+ // Try to connect with retries using exponential backoff
84
+ yield* client.get(url).pipe(Effect.retryOrElse(Schedule.exponential('50 millis', 2).pipe(Schedule.jittered, Schedule.intersect(Schedule.elapsed.pipe(Schedule.whileOutput(Duration.lessThanOrEqualTo(connectTimeout)))), Schedule.compose(Schedule.count)), (error, attemptCount) => Effect.fail(new WranglerDevServerError({
88
85
  cause: error,
89
86
  message: `Failed to establish HTTP connection to Wrangler server at ${url} after ${attemptCount} attempts (timeout: ${Duration.toMillis(connectTimeout)}ms)`,
90
87
  port: 0,
91
88
  }))), Effect.tap(() => (showLogs ? Effect.logDebug(`HTTP connectivity verified for ${url}`) : Effect.void)), Effect.asVoid, Effect.withSpan('verifyHttpConnectivity'));
92
- if (shouldBypassProxy) {
93
- // When connecting to loopback, bypass HTTP(S)_PROXY entirely
94
- yield* withRetries(loopbackConnectivityAttempt(parsedUrl, connectTimeout));
95
- return;
96
- }
97
- const client = yield* HttpClient.HttpClient;
98
- // Try to connect with retries using exponential backoff
99
- yield* withRetries(client.get(url));
100
- });
101
- const loopbackConnectivityAttempt = (url, connectTimeout) => Effect.tryPromise({
102
- try: () => {
103
- const protocol = url.protocol;
104
- const isHttps = protocol === 'https:';
105
- const hostname = resolveLoopbackHostname(url.hostname);
106
- const port = url.port === '' ? (isHttps ? 443 : 80) : Number(url.port);
107
- const pathWithQuery = `${url.pathname}${url.search}` || '/';
108
- const perAttemptTimeoutMillis = Math.min(Duration.toMillis(connectTimeout), 1_000);
109
- return new Promise((resolve, reject) => {
110
- const request = (isHttps ? https : http).request({
111
- hostname,
112
- port,
113
- path: pathWithQuery,
114
- method: 'GET',
115
- timeout: perAttemptTimeoutMillis,
116
- }, (response) => {
117
- response.resume();
118
- resolve();
119
- });
120
- request.on('error', reject);
121
- request.on('timeout', () => {
122
- request.destroy(new Error(`Request timed out after ${perAttemptTimeoutMillis}ms`));
123
- });
124
- request.end();
125
- });
126
- },
127
- catch: (error) => error,
128
89
  });
129
- const isLoopbackHostname = (hostname) => {
130
- const normalized = hostname.toLowerCase();
131
- if (normalized === 'localhost') {
132
- return true;
133
- }
134
- if (normalized === '0.0.0.0' || normalized === '::') {
135
- return true;
136
- }
137
- if (normalized === '::1' || normalized === '0:0:0:0:0:0:0:1') {
138
- return true;
139
- }
140
- if (normalized === '127.0.0.1' || normalized.startsWith('127.')) {
141
- return true;
142
- }
143
- return false;
144
- };
145
- const resolveLoopbackHostname = (hostname) => {
146
- const normalized = hostname.toLowerCase();
147
- if (normalized === '0.0.0.0') {
148
- return '127.0.0.1';
149
- }
150
- if (normalized === '::') {
151
- return '::1';
152
- }
153
- return hostname;
154
- };
155
90
  //# sourceMappingURL=WranglerDevServer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WranglerDevServer.js","sourceRoot":"","sources":["../../src/wrangler/WranglerDevServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WranglerDevServer.js","sourceRoot":"","sources":["../../src/wrangler/WranglerDevServer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@livestore/utils-dev",
3
- "version": "0.0.0-snapshot-785d927ad644da4e856ea5d73244571f23ede77e",
3
+ "version": "0.0.0-snapshot-d413f1f107a949afd38343e23eefb2a88ae4c600",
4
4
  "type": "module",
5
5
  "sideEffects": [
6
6
  "./src/node-vitest/global.ts",
@@ -22,7 +22,7 @@
22
22
  "@opentelemetry/sdk-trace-base": "2.0.1",
23
23
  "@opentelemetry/sdk-trace-node": "2.0.1",
24
24
  "wrangler": "4.32.0",
25
- "@livestore/utils": "0.0.0-snapshot-785d927ad644da4e856ea5d73244571f23ede77e"
25
+ "@livestore/utils": "0.0.0-snapshot-d413f1f107a949afd38343e23eefb2a88ae4c600"
26
26
  },
27
27
  "devDependencies": {},
28
28
  "files": [
@@ -1,5 +1,3 @@
1
- import * as http from 'node:http'
2
- import * as https from 'node:https'
3
1
  import * as path from 'node:path'
4
2
  import * as Toml from '@iarna/toml'
5
3
  import { IS_CI } from '@livestore/utils'
@@ -152,119 +150,31 @@ const verifyHttpConnectivity = ({
152
150
  connectTimeout: Duration.DurationInput
153
151
  }): Effect.Effect<void, WranglerDevServerError, HttpClient.HttpClient> =>
154
152
  Effect.gen(function* () {
155
- const parsedUrl = new URL(url)
156
- const shouldBypassProxy = isLoopbackHostname(parsedUrl.hostname)
153
+ const client = yield* HttpClient.HttpClient
157
154
 
158
155
  if (showLogs) {
159
- const suffix = shouldBypassProxy ? ' (proxy bypass for loopback)' : ''
160
- yield* Effect.logDebug(`Verifying HTTP connectivity to ${url}${suffix}`)
161
- }
162
-
163
- const withRetries = <A, R>(effect: Effect.Effect<A, unknown, R>) =>
164
- effect.pipe(
165
- Effect.retryOrElse(
166
- Schedule.exponential('50 millis', 2).pipe(
167
- Schedule.jittered,
168
- Schedule.intersect(Schedule.elapsed.pipe(Schedule.whileOutput(Duration.lessThanOrEqualTo(connectTimeout)))),
169
- Schedule.compose(Schedule.count),
170
- ),
171
- (error, attemptCount) =>
172
- Effect.fail(
173
- new WranglerDevServerError({
174
- cause: error,
175
- message: `Failed to establish HTTP connection to Wrangler server at ${url} after ${attemptCount} attempts (timeout: ${Duration.toMillis(connectTimeout)}ms)`,
176
- port: 0,
177
- }),
178
- ),
179
- ),
180
- Effect.tap(() => (showLogs ? Effect.logDebug(`HTTP connectivity verified for ${url}`) : Effect.void)),
181
- Effect.asVoid,
182
- Effect.withSpan('verifyHttpConnectivity'),
183
- )
184
-
185
- if (shouldBypassProxy) {
186
- // When connecting to loopback, bypass HTTP(S)_PROXY entirely
187
- yield* withRetries(loopbackConnectivityAttempt(parsedUrl, connectTimeout))
188
- return
156
+ yield* Effect.logDebug(`Verifying HTTP connectivity to ${url}`)
189
157
  }
190
158
 
191
- const client = yield* HttpClient.HttpClient
192
-
193
159
  // Try to connect with retries using exponential backoff
194
- yield* withRetries(client.get(url))
195
- })
196
-
197
- const loopbackConnectivityAttempt = (
198
- url: URL,
199
- connectTimeout: Duration.DurationInput,
200
- ): Effect.Effect<void, unknown> =>
201
- Effect.tryPromise({
202
- try: () => {
203
- const protocol = url.protocol
204
- const isHttps = protocol === 'https:'
205
- const hostname = resolveLoopbackHostname(url.hostname)
206
- const port = url.port === '' ? (isHttps ? 443 : 80) : Number(url.port)
207
- const pathWithQuery = `${url.pathname}${url.search}` || '/'
208
- const perAttemptTimeoutMillis = Math.min(Duration.toMillis(connectTimeout), 1_000)
209
-
210
- return new Promise<void>((resolve, reject) => {
211
- const request = (isHttps ? https : http).request(
212
- {
213
- hostname,
214
- port,
215
- path: pathWithQuery,
216
- method: 'GET',
217
- timeout: perAttemptTimeoutMillis,
218
- },
219
- (response) => {
220
- response.resume()
221
- resolve()
222
- },
223
- )
224
-
225
- request.on('error', reject)
226
- request.on('timeout', () => {
227
- request.destroy(new Error(`Request timed out after ${perAttemptTimeoutMillis}ms`))
228
- })
229
-
230
- request.end()
231
- })
232
- },
233
- catch: (error) => error as unknown,
160
+ yield* client.get(url).pipe(
161
+ Effect.retryOrElse(
162
+ Schedule.exponential('50 millis', 2).pipe(
163
+ Schedule.jittered,
164
+ Schedule.intersect(Schedule.elapsed.pipe(Schedule.whileOutput(Duration.lessThanOrEqualTo(connectTimeout)))),
165
+ Schedule.compose(Schedule.count),
166
+ ),
167
+ (error, attemptCount) =>
168
+ Effect.fail(
169
+ new WranglerDevServerError({
170
+ cause: error,
171
+ message: `Failed to establish HTTP connection to Wrangler server at ${url} after ${attemptCount} attempts (timeout: ${Duration.toMillis(connectTimeout)}ms)`,
172
+ port: 0,
173
+ }),
174
+ ),
175
+ ),
176
+ Effect.tap(() => (showLogs ? Effect.logDebug(`HTTP connectivity verified for ${url}`) : Effect.void)),
177
+ Effect.asVoid,
178
+ Effect.withSpan('verifyHttpConnectivity'),
179
+ )
234
180
  })
235
-
236
- const isLoopbackHostname = (hostname: string): boolean => {
237
- const normalized = hostname.toLowerCase()
238
-
239
- if (normalized === 'localhost') {
240
- return true
241
- }
242
-
243
- if (normalized === '0.0.0.0' || normalized === '::') {
244
- return true
245
- }
246
-
247
- if (normalized === '::1' || normalized === '0:0:0:0:0:0:0:1') {
248
- return true
249
- }
250
-
251
- if (normalized === '127.0.0.1' || normalized.startsWith('127.')) {
252
- return true
253
- }
254
-
255
- return false
256
- }
257
-
258
- const resolveLoopbackHostname = (hostname: string): string => {
259
- const normalized = hostname.toLowerCase()
260
-
261
- if (normalized === '0.0.0.0') {
262
- return '127.0.0.1'
263
- }
264
-
265
- if (normalized === '::') {
266
- return '::1'
267
- }
268
-
269
- return hostname
270
- }