@ahoo-wang/fetcher 1.2.2 → 1.2.5

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,4 +1,5 @@
1
1
  import { BaseURLCapable, FetchRequest } from './fetchRequest';
2
+ import { UrlTemplateResolver, UrlTemplateStyle } from './urlTemplateResolver';
2
3
  /**
3
4
  * Container for URL parameters including path and query parameters.
4
5
  *
@@ -54,17 +55,25 @@ export declare class UrlBuilder implements BaseURLCapable {
54
55
  * This is typically the root of your API endpoint (e.g., 'https://api.example.com').
55
56
  */
56
57
  readonly baseURL: string;
58
+ readonly urlTemplateResolver: UrlTemplateResolver;
57
59
  /**
58
60
  * Initializes a new UrlBuilder instance.
59
61
  *
60
62
  * @param baseURL - Base URL that all constructed URLs will be based on
63
+ * @param urlTemplateStyle - Optional style configuration for URL template resolution.
64
+ * Determines how path parameters are parsed and resolved.
65
+ * Defaults to UriTemplate style if not specified.
61
66
  *
62
67
  * @example
63
68
  * ```typescript
69
+ * // Create a URL builder with default URI template style
64
70
  * const urlBuilder = new UrlBuilder('https://api.example.com');
71
+ *
72
+ * // Create a URL builder with Express-style template resolution
73
+ * const expressUrlBuilder = new UrlBuilder('https://api.example.com', UrlTemplateStyle.Express);
65
74
  * ```
66
75
  */
67
- constructor(baseURL: string);
76
+ constructor(baseURL: string, urlTemplateStyle?: UrlTemplateStyle);
68
77
  /**
69
78
  * Builds a complete URL, including path parameter replacement and query parameter addition.
70
79
  *
@@ -1 +1 @@
1
- {"version":3,"file":"urlBuilder.d.ts","sourceRoot":"","sources":["../src/urlBuilder.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9D;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE3B;;;;;;;;;;OAUG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,UAAW,YAAW,cAAc;IAC/C;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB;;;;;;;;;OASG;gBACS,OAAO,EAAE,MAAM;IAI3B;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM;IAc9C;;;;;;;;OAQG;IACH,iBAAiB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM;CAGjD;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,UAAU,EAAE,UAAU,CAAC;CACxB"}
1
+ {"version":3,"file":"urlBuilder.d.ts","sourceRoot":"","sources":["../src/urlBuilder.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAEL,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAE/B;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE3B;;;;;;;;;;OAUG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,UAAW,YAAW,cAAc;IAC/C;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAElD;;;;;;;;;;;;;;;;OAgBG;gBACS,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,gBAAgB;IAKhE;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM;IAc9C;;;;;;;;OAQG;IACH,iBAAiB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM;CAGjD;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,UAAU,EAAE,UAAU,CAAC;CACxB"}
@@ -0,0 +1,307 @@
1
+ /**
2
+ * Enumeration of URL template path styles.
3
+ *
4
+ * This enum defines the supported URL template path styles for parameter resolution.
5
+ * Each style has its own pattern for defining path parameters in URL templates.
6
+ */
7
+ export declare enum UrlTemplateStyle {
8
+ /**
9
+ * URI Template style following RFC 6570 specification.
10
+ * Uses curly braces to define parameters, e.g., /users/{id}/posts/{postId}
11
+ *
12
+ * @see https://www.rfc-editor.org/rfc/rfc6570.html
13
+ *
14
+ * @see {@link UriTemplateResolver}
15
+ */
16
+ UriTemplate = 0,
17
+ /**
18
+ * Express.js style for defining route parameters.
19
+ * Uses colons to define parameters, e.g., /users/:id/posts/:postId
20
+ *
21
+ * @see {@link ExpressUrlTemplateResolver}
22
+ */
23
+ Express = 1
24
+ }
25
+ /**
26
+ * Gets the appropriate URL template resolver based on the specified style.
27
+ *
28
+ * This factory function returns a URL template resolver instance based on the requested style.
29
+ * If no style is specified or if the UriTemplate style is requested, it returns the default
30
+ * URI template resolver. If Express style is requested, it returns the Express-style resolver.
31
+ *
32
+ * @param style - The URL template path style to use (optional).
33
+ * If not provided, defaults to UriTemplate style.
34
+ * @returns A UrlTemplateResolver instance corresponding to the requested style
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * // Get default URI template resolver
39
+ * const resolver = getUrlTemplateResolver();
40
+ *
41
+ * // Get URI template resolver explicitly
42
+ * const uriResolver = getUrlTemplateResolver(UrlTemplatePathStyle.UriTemplate);
43
+ *
44
+ * // Get Express-style resolver
45
+ * const expressResolver = getUrlTemplateResolver(UrlTemplatePathStyle.Express);
46
+ * ```
47
+ */
48
+ export declare function getUrlTemplateResolver(style?: UrlTemplateStyle): UrlTemplateResolver;
49
+ /**
50
+ * Interface for resolving URL templates by extracting path parameters and replacing placeholders.
51
+ *
52
+ * This interface provides methods to work with URL templates that contain parameter placeholders.
53
+ * It supports extracting parameter names from templates and replacing placeholders with actual values.
54
+ *
55
+ * @example
56
+ * ```typescript
57
+ * // Example usage of UrlTemplateResolver
58
+ * const resolver: UrlTemplateResolver = new UriTemplateResolver();
59
+ *
60
+ * // Extract path parameters
61
+ * const params = resolver.extractPathParams('/users/{id}/posts/{postId}');
62
+ * // params = ['id', 'postId']
63
+ *
64
+ * // Resolve URL template with parameters
65
+ * const url = resolver.resolve('/users/{id}/posts/{postId}', { id: 123, postId: 456 });
66
+ * // url = '/users/123/posts/456'
67
+ * ```
68
+ */
69
+ export interface UrlTemplateResolver {
70
+ /**
71
+ * Extracts path parameters from the URL.
72
+ * @param urlTemplate - The URL template string containing parameter placeholders
73
+ * @returns An array of parameter names extracted from the URL template
74
+ *
75
+ * @example
76
+ * ```typescript
77
+ * const resolver: UrlTemplateResolver = uriTemplateResolver;
78
+ * const params = resolver.extractPathParams('/users/{id}/posts/{postId}');
79
+ * // params = ['id', 'postId']
80
+ *
81
+ * const noParams = resolver.extractPathParams('/users/profile');
82
+ * // noParams = []
83
+ * ```
84
+ */
85
+ extractPathParams(urlTemplate: string): string[];
86
+ /**
87
+ * Replaces placeholders in the URL with path parameters.
88
+ * @param urlTemplate - The URL template string containing parameter placeholders
89
+ * @param pathParams - Object containing parameter values to replace placeholders
90
+ * @returns The URL with placeholders replaced by actual values
91
+ *
92
+ * @example
93
+ * ```typescript
94
+ * const resolver: UrlTemplateResolver = uriTemplateResolver;
95
+ * const url = resolver.resolve('/users/{id}/posts/{postId}', { id: 123, postId: 456 });
96
+ * // url = '/users/123/posts/456'
97
+ *
98
+ * // With Express-style resolver
99
+ * const expressResolver: UrlTemplateResolver = new ExpressUrlTemplateResolver();
100
+ * const expressUrl = expressResolver.resolve('/users/:id/posts/:postId', { id: 123, postId: 456 });
101
+ * // expressUrl = '/users/123/posts/456'
102
+ * ```
103
+ *
104
+ * @throws Error when required path parameters are missing
105
+ * @example
106
+ * ```typescript
107
+ * const resolver: UrlTemplateResolver = uriTemplateResolver;
108
+ * try {
109
+ * resolver.resolve('/users/{id}', { name: 'John' });
110
+ * } catch (error) {
111
+ * console.error(error.message); // "Missing required path parameter: id"
112
+ * }
113
+ * ```
114
+ */
115
+ resolve(urlTemplate: string, pathParams?: Record<string, any> | null): string;
116
+ }
117
+ /**
118
+ * Replaces placeholders in a URL template with actual parameter values.
119
+ *
120
+ * @param urlTemplate - The URL template string containing parameter placeholders
121
+ * @param pathParamRegex - Regular expression to match parameter placeholders
122
+ * @param pathParams - Object containing parameter values to replace placeholders
123
+ * @returns The URL with placeholders replaced by actual values
124
+ * @throws Error when required path parameters are missing
125
+ */
126
+ export declare function urlTemplateRegexResolve(urlTemplate: string, pathParamRegex: RegExp, pathParams?: Record<string, any> | null): string;
127
+ /**
128
+ * Extracts parameter names from a URL template using a regular expression.
129
+ *
130
+ * @param urlTemplate - The URL template string containing parameter placeholders
131
+ * @param pathParamRegex - Regular expression to match parameter placeholders
132
+ * @returns An array of parameter names extracted from the URL template
133
+ */
134
+ export declare function urlTemplateRegexExtract(urlTemplate: string, pathParamRegex: RegExp): string[];
135
+ /**
136
+ * https://www.rfc-editor.org/rfc/rfc6570.html
137
+ *
138
+ * Implementation of URI Template resolution following RFC 6570 specification.
139
+ * Handles URI templates with parameters enclosed in curly braces like {paramName}.
140
+ *
141
+ * @example
142
+ * ```typescript
143
+ * const resolver = uriTemplateResolver;
144
+ *
145
+ * // Extract path parameters
146
+ * const params = resolver.extractPathParams('/users/{id}/posts/{postId}');
147
+ * // params = ['id', 'postId']
148
+ *
149
+ * // Resolve URL template with parameters
150
+ * const url = resolver.resolve('/users/{id}/posts/{postId}', { id: 123, postId: 456 });
151
+ * // url = '/users/123/posts/456'
152
+ * ```
153
+ */
154
+ export declare class UriTemplateResolver implements UrlTemplateResolver {
155
+ /**
156
+ * Regular expression pattern to match path parameters in the format {paramName}
157
+ *
158
+ * This regex is used to identify and extract path parameters from URL patterns.
159
+ * It matches any text enclosed in curly braces {} and captures the content inside.
160
+ *
161
+ * Example matches:
162
+ * - {id} -> captures "id"
163
+ * - {userId} -> captures "userId"
164
+ * - {category-name} -> captures "category-name"
165
+ */
166
+ private static PATH_PARAM_REGEX;
167
+ /**
168
+ * Extracts path parameters from a URL string.
169
+ *
170
+ * @param urlTemplate - The URL string to extract path parameters from
171
+ * @returns An array of path parameter names without the curly braces, or an empty array if no matches found
172
+ *
173
+ * @example
174
+ * ```typescript
175
+ * const resolver = uriTemplateResolver;
176
+ *
177
+ * // Extract multiple parameters
178
+ * const params = resolver.extractPathParams('/users/{id}/posts/{postId}');
179
+ * // params = ['id', 'postId']
180
+ *
181
+ * // Extract parameters from full URLs
182
+ * const urlParams = resolver.extractPathParams('https://api.example.com/{resource}/{id}');
183
+ * // urlParams = ['resource', 'id']
184
+ *
185
+ * // No parameters
186
+ * const noParams = resolver.extractPathParams('/users/profile');
187
+ * // noParams = []
188
+ * ```
189
+ */
190
+ extractPathParams(urlTemplate: string): string[];
191
+ /**
192
+ * Replaces placeholders in the URL with path parameters.
193
+ *
194
+ * @param urlTemplate - Path string containing placeholders, e.g., "http://localhost/users/{id}/posts/{postId}"
195
+ * @param pathParams - Path parameter object used to replace placeholders in the URL
196
+ * @returns Path string with placeholders replaced
197
+ * @throws Error when required path parameters are missing
198
+ *
199
+ * @example
200
+ * ```typescript
201
+ * const resolver = uriTemplateResolver;
202
+ *
203
+ * // Replace parameters
204
+ * const url = resolver.resolve('/users/{id}/posts/{postId}', { id: 123, postId: 456 });
205
+ * // url = '/users/123/posts/456'
206
+ *
207
+ * // Handle string parameter values
208
+ * const stringUrl = resolver.resolve('/users/{username}', { username: 'john_doe' });
209
+ * // stringUrl = '/users/john_doe'
210
+ *
211
+ * // URL encode parameter values
212
+ * const encodedUrl = resolver.resolve('/search/{query}', { query: 'hello world' });
213
+ * // encodedUrl = '/search/hello%20world'
214
+ * ```
215
+ *
216
+ * @example
217
+ * ```typescript
218
+ * // Missing required parameter throws an error
219
+ * const resolver = uriTemplateResolver;
220
+ * try {
221
+ * resolver.resolve('/users/{id}', { name: 'John' });
222
+ * } catch (error) {
223
+ * console.error(error.message); // "Missing required path parameter: id"
224
+ * }
225
+ * ```
226
+ */
227
+ resolve(urlTemplate: string, pathParams?: Record<string, any> | null): string;
228
+ }
229
+ export declare const uriTemplateResolver: UriTemplateResolver;
230
+ /**
231
+ * Express-style URL template resolver.
232
+ * Handles URI templates with parameters in the format :paramName.
233
+ *
234
+ * @example
235
+ * ```typescript
236
+ * const resolver = expressUrlTemplateResolver;
237
+ *
238
+ * // Extract path parameters
239
+ * const params = resolver.extractPathParams('/users/:id/posts/:postId');
240
+ * // params = ['id', 'postId']
241
+ *
242
+ * // Resolve URL template with parameters
243
+ * const url = resolver.resolve('/users/:id/posts/:postId', { id: 123, postId: 456 });
244
+ * // url = '/users/123/posts/456'
245
+ * ```
246
+ */
247
+ export declare class ExpressUrlTemplateResolver implements UrlTemplateResolver {
248
+ /**
249
+ * Regular expression pattern to match Express-style path parameters in the format :paramName
250
+ */
251
+ private static PATH_PARAM_REGEX;
252
+ /**
253
+ * Extracts path parameters from an Express-style URL string.
254
+ *
255
+ * @param urlTemplate - The URL string with Express-style parameter placeholders
256
+ * @returns An array of parameter names extracted from the URL template
257
+ *
258
+ * @example
259
+ * ```typescript
260
+ * const resolver = new expressUrlTemplateResolver;
261
+ *
262
+ * // Extract multiple parameters
263
+ * const params = resolver.extractPathParams('/users/:id/posts/:postId');
264
+ * // params = ['id', 'postId']
265
+ *
266
+ * // No parameters
267
+ * const noParams = resolver.extractPathParams('/users/profile');
268
+ * // noParams = []
269
+ * ```
270
+ */
271
+ extractPathParams(urlTemplate: string): string[];
272
+ /**
273
+ * Replaces Express-style placeholders in the URL with path parameters.
274
+ *
275
+ * @param urlTemplate - Path string containing Express-style placeholders
276
+ * @param pathParams - Object containing parameter values to replace placeholders
277
+ * @returns Path string with placeholders replaced
278
+ * @throws Error when required path parameters are missing
279
+ *
280
+ * @example
281
+ * ```typescript
282
+ * const resolver = expressUrlTemplateResolver;
283
+ *
284
+ * // Replace parameters
285
+ * const url = resolver.resolve('/users/:id/posts/:postId', { id: 123, postId: 456 });
286
+ * // url = '/users/123/posts/456'
287
+ *
288
+ * // Handle string parameter values
289
+ * const stringUrl = resolver.resolve('/users/:username', { username: 'john_doe' });
290
+ * // stringUrl = '/users/john_doe'
291
+ * ```
292
+ *
293
+ * @example
294
+ * ```typescript
295
+ * // Missing required parameter throws an error
296
+ * const resolver = expressUrlTemplateResolver;
297
+ * try {
298
+ * resolver.resolve('/users/:id', { name: 'John' });
299
+ * } catch (error) {
300
+ * console.error(error.message); // "Missing required path parameter: id"
301
+ * }
302
+ * ```
303
+ */
304
+ resolve(urlTemplate: string, pathParams?: Record<string, any> | null): string;
305
+ }
306
+ export declare const expressUrlTemplateResolver: ExpressUrlTemplateResolver;
307
+ //# sourceMappingURL=urlTemplateResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"urlTemplateResolver.d.ts","sourceRoot":"","sources":["../src/urlTemplateResolver.ts"],"names":[],"mappings":"AAaA;;;;;GAKG;AACH,oBAAY,gBAAgB;IAC1B;;;;;;;OAOG;IACH,WAAW,IAAA;IAEX;;;;;OAKG;IACH,OAAO,IAAA;CACR;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,CAAC,EAAE,gBAAgB,GAAG,mBAAmB,CAKpF;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,mBAAmB;IAElC;;;;;;;;;;;;;;OAcG;IACH,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC;CAE/E;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,UAU3H;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,CAO7F;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,mBAAoB,YAAW,mBAAmB;IAC7D;;;;;;;;;;OAUG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAgB;IAE/C;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE;IAIhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,MAAM;CAG9E;AAED,eAAO,MAAM,mBAAmB,qBAA4B,CAAC;AAE7D;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,0BAA2B,YAAW,mBAAmB;IACpE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAe;IAE9C;;;;;;;;;;;;;;;;;;OAkBG;IACH,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE;IAIhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,MAAM;CAG9E;AAED,eAAO,MAAM,0BAA0B,4BAAmC,CAAC"}
package/dist/urls.d.ts CHANGED
@@ -31,51 +31,4 @@ export declare function isAbsoluteURL(url: string): boolean;
31
31
  * ```
32
32
  */
33
33
  export declare function combineURLs(baseURL: string, relativeURL: string): string;
34
- /**
35
- * Extracts path parameters from a URL string.
36
- *
37
- * @param url - The URL string to extract path parameters from
38
- * @returns An array of path parameter names without the curly braces, or an empty array if no matches found
39
- *
40
- * @example
41
- * ```typescript
42
- * extractPathParams('/users/{id}/posts/{postId}');
43
- * // Returns: ['id', 'postId']
44
- *
45
- * extractPathParams('https://api.example.com/{resource}/{id}');
46
- * // Returns: ['resource', 'id']
47
- *
48
- * extractPathParams('/users/profile');
49
- * // Returns: []
50
- * ```
51
- */
52
- export declare function extractPathParams(url: string): string[];
53
- /**
54
- * Replaces placeholders in the URL with path parameters.
55
- *
56
- * @param url - Path string containing placeholders, e.g., "http://localhost/users/{id}/posts/{postId}"
57
- * @param path - Path parameter object used to replace placeholders in the URL
58
- * @returns Path string with placeholders replaced
59
- * @throws Error when required path parameters are missing
60
- *
61
- * @example
62
- * ```typescript
63
- * const urlBuilder = new UrlBuilder('https://api.example.com');
64
- * const result = urlBuilder.interpolateUrl('/users/{id}/posts/{postId}', {
65
- * path: { id: 123, postId: 456 }
66
- * });
67
- * // Result: https://api.example.com/users/123/posts/456
68
- * ```
69
- *
70
- * @example
71
- * ```typescript
72
- * // Missing required parameter throws an error
73
- * try {
74
- * urlBuilder.interpolateUrl('/users/{id}', { name: 'John' });
75
- * } catch (error) {
76
- * console.error(error.message); // "Missing required path parameter: id"
77
- * }
78
- * ```
79
- */
80
- export declare function interpolateUrl(url: string, path?: Record<string, any> | null): string;
81
34
  //# sourceMappingURL=urls.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"urls.d.ts","sourceRoot":"","sources":["../src/urls.ts"],"names":[],"mappings":"AAaA;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,WAExC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,UAQ/D;AAeD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAQvD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAChC,MAAM,CAUR"}
1
+ {"version":3,"file":"urls.d.ts","sourceRoot":"","sources":["../src/urls.ts"],"names":[],"mappings":"AAaA;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,WAExC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,UAQ/D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ahoo-wang/fetcher",
3
- "version": "1.2.2",
3
+ "version": "1.2.5",
4
4
  "description": "Ultra-lightweight (2.7kB min+gzip) HTTP client with built-in path parameters, query parameters, and Axios-like API. The foundation of the Fetcher ecosystem with powerful interceptor system and LLM streaming API support.",
5
5
  "keywords": [
6
6
  "fetch",
@@ -54,6 +54,7 @@
54
54
  "build": "vite build",
55
55
  "test": "vitest run --coverage",
56
56
  "lint": "eslint . --fix",
57
- "clean": "rm -rf dist"
57
+ "clean": "rm -rf dist",
58
+ "analyze": "npx vite-bundle-analyzer -p auto"
58
59
  }
59
60
  }