@rpcbase/client 0.405.0 → 0.406.0

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,18 +0,0 @@
1
- let reporter;
2
- const setClientExceptionReporter = (next) => {
3
- reporter = next;
4
- };
5
- const reportClientException = (error, context = {}) => {
6
- if (!error) return;
7
- const err = error instanceof Error ? error : new Error(String(error));
8
- try {
9
- reporter?.(err, context);
10
- } catch (reportError) {
11
- console.error("[rb/client] exception reporter failed", reportError);
12
- }
13
- };
14
- export {
15
- reportClientException as r,
16
- setClientExceptionReporter as s
17
- };
18
- //# sourceMappingURL=errorReporting-CVoUUKxW.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errorReporting-CVoUUKxW.js","sources":["../src/errorReporting.ts"],"sourcesContent":["export type ClientExceptionContext = {\n reactContext?: \"uncaught\" | \"caught\" | \"recoverable\"\n componentStack?: string\n}\n\nexport type ClientExceptionReporter = (error: Error, context: ClientExceptionContext) => void\n\nlet reporter: ClientExceptionReporter | undefined\n\nexport const setClientExceptionReporter = (next: ClientExceptionReporter | undefined) => {\n reporter = next\n}\n\nexport const reportClientException = (error: unknown, context: ClientExceptionContext = {}) => {\n if (!error) return\n\n const err = error instanceof Error ? error : new Error(String(error))\n\n try {\n reporter?.(err, context)\n } catch (reportError) {\n console.error(\"[rb/client] exception reporter failed\", reportError)\n }\n}\n\n"],"names":["reporter","setClientExceptionReporter","next","reportClientException","error","context","err","Error","String","reportError","console"],"mappings":"AAOA,IAAIA;AAEG,MAAMC,6BAA6BA,CAACC,SAA8C;AACvFF,aAAWE;AACb;AAEO,MAAMC,wBAAwBA,CAACC,OAAgBC,UAAkC,OAAO;AAC7F,MAAI,CAACD,MAAO;AAEZ,QAAME,MAAMF,iBAAiBG,QAAQH,QAAQ,IAAIG,MAAMC,OAAOJ,KAAK,CAAC;AAEpE,MAAI;AACFJ,eAAWM,KAAKD,OAAO;AAAA,EACzB,SAASI,aAAa;AACpBC,YAAQN,MAAM,yCAAyCK,WAAW;AAAA,EACpE;AACF;"}
@@ -1,179 +0,0 @@
1
- const getServerApiClient = async (app) => {
2
- const callRoute = async (app2, method, matchPath, requestUrl, req, res) => {
3
- return new Promise((resolve, reject) => {
4
- let isEnded = false;
5
- let timeoutId = null;
6
- const resolveRequest = (data) => {
7
- if (isEnded) return;
8
- isEnded = true;
9
- if (timeoutId) clearTimeout(timeoutId);
10
- resolve(data);
11
- };
12
- const rejectRequest = (error) => {
13
- if (isEnded) return;
14
- isEnded = true;
15
- if (timeoutId) clearTimeout(timeoutId);
16
- reject(error);
17
- };
18
- const mockReq = {
19
- ...req,
20
- method: method.toUpperCase(),
21
- url: requestUrl
22
- };
23
- const mockRes = {
24
- ...res,
25
- json: (data) => {
26
- resolveRequest(data);
27
- },
28
- status: (statusCode) => {
29
- console.log("Status:", statusCode, mockReq.method, mockReq.url);
30
- return mockRes;
31
- }
32
- };
33
- const routerStack = app2.router.stack;
34
- const firstApiMiddlewareIndex = routerStack.findIndex((layer) => layer.name === "__FIRST_API_MIDDLEWARE__");
35
- if (!(firstApiMiddlewareIndex > -1)) {
36
- throw new Error("middleware: __FIRST_API_MIDDLEWARE__ was not found in stack");
37
- }
38
- const apiStack = routerStack.slice(firstApiMiddlewareIndex + 1);
39
- const processLayer = async (index) => {
40
- if (index >= apiStack.length || isEnded) return;
41
- const layer = apiStack[index];
42
- const isNonMatchingLayer = !layer.match(matchPath);
43
- if (isNonMatchingLayer) {
44
- await processLayer(index + 1);
45
- return;
46
- }
47
- const runHandler = async (handler) => new Promise((resolveMiddleware, rejectMiddleware) => {
48
- handler(mockReq, mockRes, (err) => {
49
- if (err) {
50
- console.error("Middleware error:", err);
51
- rejectMiddleware(err);
52
- return;
53
- }
54
- resolveMiddleware();
55
- });
56
- });
57
- if (layer.route) {
58
- if (!layer.route.methods[method.toLowerCase()]) {
59
- await processLayer(index + 1);
60
- return;
61
- }
62
- if (layer.route.stack.length !== 1) {
63
- throw new Error(`expected only one handler per route for route: ${layer.route.path}`);
64
- }
65
- await runHandler(layer.route.stack[0].handle);
66
- } else {
67
- await runHandler(layer.handle);
68
- }
69
- if (!isEnded) {
70
- await processLayer(index + 1);
71
- }
72
- };
73
- void processLayer(0).catch((err) => {
74
- rejectRequest(err);
75
- });
76
- timeoutId = setTimeout(() => {
77
- rejectRequest(new Error("Route handler timed out"));
78
- }, 3e4);
79
- });
80
- };
81
- const mergeQueryValues = (target, key, value) => {
82
- const existing = target[key];
83
- if (Array.isArray(existing)) {
84
- existing.push(value);
85
- return;
86
- }
87
- if (typeof existing === "string") {
88
- target[key] = [existing, value];
89
- return;
90
- }
91
- target[key] = value;
92
- };
93
- const toQueryValue = (value) => {
94
- if (typeof value === "string") return value;
95
- if (typeof value === "number") return Number.isFinite(value) ? String(value) : null;
96
- if (typeof value === "boolean") return value ? "true" : "false";
97
- if (typeof value === "bigint") return String(value);
98
- if (value instanceof Date) return value.toISOString();
99
- return null;
100
- };
101
- const buildQuery = (path, payload) => {
102
- const url = new URL(path, "http://localhost");
103
- const query = {};
104
- for (const [key, value] of url.searchParams) {
105
- mergeQueryValues(query, key, value);
106
- }
107
- for (const [key, rawValue] of Object.entries(payload)) {
108
- if (!key) continue;
109
- if (Array.isArray(rawValue)) {
110
- for (const item of rawValue) {
111
- const converted2 = toQueryValue(item);
112
- if (converted2 !== null) mergeQueryValues(query, key, converted2);
113
- }
114
- continue;
115
- }
116
- const converted = toQueryValue(rawValue);
117
- if (converted !== null) mergeQueryValues(query, key, converted);
118
- }
119
- const searchParams = new URLSearchParams();
120
- for (const [key, rawValue] of Object.entries(query)) {
121
- if (Array.isArray(rawValue)) {
122
- for (const value of rawValue) {
123
- searchParams.append(key, value);
124
- }
125
- continue;
126
- }
127
- searchParams.append(key, rawValue);
128
- }
129
- const matchPath = url.pathname;
130
- const requestUrl = `${matchPath}${searchParams.toString() ? `?${searchParams.toString()}` : ""}`;
131
- return {
132
- matchPath,
133
- requestUrl,
134
- query
135
- };
136
- };
137
- const createMethod = (method) => {
138
- return async (path, payload, ctx) => {
139
- if (!ctx) {
140
- throw new Error("Context must be provided in SSR mode");
141
- }
142
- const normalizedMethod = method.toLowerCase();
143
- if (normalizedMethod === "get") {
144
- const {
145
- matchPath: matchPath2,
146
- requestUrl: requestUrl2,
147
- query: query2
148
- } = buildQuery(path, payload);
149
- return callRoute(app, method, matchPath2, requestUrl2, {
150
- ...ctx.req,
151
- body: {},
152
- query: query2
153
- }, ctx.res);
154
- }
155
- const {
156
- matchPath,
157
- requestUrl,
158
- query
159
- } = buildQuery(path, {});
160
- return callRoute(app, method, matchPath, requestUrl, {
161
- ...ctx.req,
162
- body: payload,
163
- query
164
- }, ctx.res);
165
- };
166
- };
167
- const apiClient = {
168
- get: createMethod("get"),
169
- post: createMethod("post"),
170
- put: createMethod("put"),
171
- delete: createMethod("delete")
172
- };
173
- return apiClient;
174
- };
175
- export {
176
- getServerApiClient as default,
177
- getServerApiClient
178
- };
179
- //# sourceMappingURL=getServerApiClient-C1UInaMF.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getServerApiClient-C1UInaMF.js","sources":["../src/apiClient/getServerApiClient.ts"],"sourcesContent":["import { Application, IRouter, Request, Response } from \"express\"\nimport type { Ctx } from \"@rpcbase/api\"\n\n\ntype NextMiddleware = (err?: unknown) => void\ntype LayerHandler = (req: Request, res: Response, next: NextMiddleware) => void\n\ntype RouterLayer = {\n name: string\n match: (path: string) => boolean\n handle: LayerHandler\n route?: {\n methods: Record<string, boolean | undefined>\n path: string\n stack: Array<{ handle: LayerHandler }>\n }\n}\n\n\nexport const getServerApiClient = async(app: Application) => {\n const callRoute = async <TResponse = Record<string, unknown>>(\n app: Application,\n method: string,\n matchPath: string,\n requestUrl: string,\n req: Partial<Request>,\n res: Partial<Response>\n ): Promise<TResponse> => {\n return new Promise((resolve, reject) => {\n let isEnded = false\n let timeoutId: ReturnType<typeof setTimeout> | null = null\n\n const resolveRequest = (data: TResponse) => {\n if (isEnded) return\n isEnded = true\n if (timeoutId) clearTimeout(timeoutId)\n resolve(data)\n }\n\n const rejectRequest = (error: unknown) => {\n if (isEnded) return\n isEnded = true\n if (timeoutId) clearTimeout(timeoutId)\n reject(error)\n }\n\n const mockReq = {\n ...req,\n method: method.toUpperCase(),\n url: requestUrl\n } as Request\n\n const mockRes = {\n ...res,\n json: (data: unknown) => {\n resolveRequest(data as TResponse)\n },\n status: (statusCode: number) => {\n console.log(\"Status:\", statusCode, mockReq.method, mockReq.url)\n return mockRes\n },\n } as Response\n\n const routerStack = (app.router as unknown as IRouter).stack as unknown as RouterLayer[]\n\n const firstApiMiddlewareIndex = routerStack.findIndex((layer) => layer.name === \"__FIRST_API_MIDDLEWARE__\")\n if (!(firstApiMiddlewareIndex > -1)) {\n throw new Error(\"middleware: __FIRST_API_MIDDLEWARE__ was not found in stack\")\n }\n\n const apiStack = routerStack.slice(firstApiMiddlewareIndex + 1)\n\n const processLayer = async (index: number) => {\n if (index >= apiStack.length || isEnded) return\n\n const layer = apiStack[index]\n\n const isNonMatchingLayer = !layer.match(matchPath)\n if (isNonMatchingLayer) {\n // console.log(\"not machthing route:\", matchPath, \"to layer:\", index, layer.name, layer, \"reason: \", {isNonMatchingLayer})\n await processLayer(index + 1)\n return\n }\n\n const runHandler = async(handler: LayerHandler) => new Promise<void>((resolveMiddleware, rejectMiddleware) => {\n handler(mockReq, mockRes, (err?: unknown) => {\n if (err) {\n console.error(\"Middleware error:\", err)\n rejectMiddleware(err)\n return\n }\n resolveMiddleware()\n })\n })\n\n if (layer.route) {\n if (!layer.route.methods[method.toLowerCase()]) {\n // console.log(\"not machthing route:\", matchPath, \"to route layer:\", index, layer.name, layer, \"reason: method not matching\")\n await processLayer(index + 1)\n return\n }\n\n if (layer.route.stack.length !== 1) {\n throw new Error(`expected only one handler per route for route: ${layer.route.path}`)\n }\n\n await runHandler(layer.route.stack[0].handle)\n\n } else {\n await runHandler(layer.handle)\n }\n\n if (!isEnded) {\n await processLayer(index + 1)\n }\n }\n\n void processLayer(0).catch((err) => {\n rejectRequest(err)\n })\n\n // Set a timeout to prevent hanging\n timeoutId = setTimeout(() => {\n rejectRequest(new Error(\"Route handler timed out\"))\n }, 30000)\n })\n }\n\n const mergeQueryValues = (target: Record<string, string | string[]>, key: string, value: string) => {\n const existing = target[key]\n if (Array.isArray(existing)) {\n existing.push(value)\n return\n }\n\n if (typeof existing === \"string\") {\n target[key] = [existing, value]\n return\n }\n\n target[key] = value\n }\n\n const toQueryValue = (value: unknown): string | null => {\n if (typeof value === \"string\") return value\n if (typeof value === \"number\") return Number.isFinite(value) ? String(value) : null\n if (typeof value === \"boolean\") return value ? \"true\" : \"false\"\n if (typeof value === \"bigint\") return String(value)\n if (value instanceof Date) return value.toISOString()\n return null\n }\n\n const buildQuery = (path: string, payload: Record<string, unknown>) => {\n const url = new URL(path, \"http://localhost\")\n\n const query: Record<string, string | string[]> = {}\n for (const [key, value] of url.searchParams) {\n mergeQueryValues(query, key, value)\n }\n\n for (const [key, rawValue] of Object.entries(payload)) {\n if (!key) continue\n\n if (Array.isArray(rawValue)) {\n for (const item of rawValue) {\n const converted = toQueryValue(item)\n if (converted !== null) mergeQueryValues(query, key, converted)\n }\n continue\n }\n\n const converted = toQueryValue(rawValue)\n if (converted !== null) mergeQueryValues(query, key, converted)\n }\n\n const searchParams = new URLSearchParams()\n for (const [key, rawValue] of Object.entries(query)) {\n if (Array.isArray(rawValue)) {\n for (const value of rawValue) {\n searchParams.append(key, value)\n }\n continue\n }\n\n searchParams.append(key, rawValue)\n }\n\n const matchPath = url.pathname\n const requestUrl = `${matchPath}${searchParams.toString() ? `?${searchParams.toString()}` : \"\"}`\n\n return { matchPath, requestUrl, query }\n }\n\n const createMethod = (method: string) => {\n return async <TResponse = Record<string, unknown>>(\n path: string,\n payload: Record<string, unknown>,\n ctx?: Ctx,\n ): Promise<TResponse> => {\n if (!ctx) {\n throw new Error(\"Context must be provided in SSR mode\")\n }\n\n const normalizedMethod = method.toLowerCase()\n\n if (normalizedMethod === \"get\") {\n const { matchPath, requestUrl, query } = buildQuery(path, payload)\n return callRoute<TResponse>(app, method, matchPath, requestUrl, { ...ctx.req, body: {}, query }, ctx.res)\n }\n\n const { matchPath, requestUrl, query } = buildQuery(path, {})\n return callRoute<TResponse>(app, method, matchPath, requestUrl, { ...ctx.req, body: payload, query }, ctx.res)\n }\n }\n\n const apiClient = {\n get: createMethod(\"get\"),\n post: createMethod(\"post\"),\n put: createMethod(\"put\"),\n delete: createMethod(\"delete\")\n }\n\n return apiClient\n}\n\nexport default getServerApiClient\n"],"names":["getServerApiClient","app","callRoute","method","matchPath","requestUrl","req","res","Promise","resolve","reject","isEnded","timeoutId","resolveRequest","data","rejectRequest","error","mockReq","toUpperCase","url","mockRes","json","status","statusCode","console","log","routerStack","router","stack","firstApiMiddlewareIndex","findIndex","layer","name","Error","apiStack","slice","processLayer","index","length","isNonMatchingLayer","match","runHandler","handler","resolveMiddleware","rejectMiddleware","err","route","methods","toLowerCase","path","handle","catch","setTimeout","mergeQueryValues","target","key","value","existing","Array","isArray","push","toQueryValue","Number","isFinite","String","Date","toISOString","buildQuery","payload","URL","query","searchParams","rawValue","Object","entries","item","converted","URLSearchParams","append","pathname","toString","createMethod","ctx","normalizedMethod","body","apiClient","get","post","put","delete"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1,396 +0,0 @@
1
- var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
2
- function getDefaultExportFromCjs(x) {
3
- return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
4
- }
5
- var _freeGlobal;
6
- var hasRequired_freeGlobal;
7
- function require_freeGlobal() {
8
- if (hasRequired_freeGlobal) return _freeGlobal;
9
- hasRequired_freeGlobal = 1;
10
- var freeGlobal = typeof commonjsGlobal == "object" && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;
11
- _freeGlobal = freeGlobal;
12
- return _freeGlobal;
13
- }
14
- var _root;
15
- var hasRequired_root;
16
- function require_root() {
17
- if (hasRequired_root) return _root;
18
- hasRequired_root = 1;
19
- var freeGlobal = require_freeGlobal();
20
- var freeSelf = typeof self == "object" && self && self.Object === Object && self;
21
- var root = freeGlobal || freeSelf || Function("return this")();
22
- _root = root;
23
- return _root;
24
- }
25
- var _Symbol;
26
- var hasRequired_Symbol;
27
- function require_Symbol() {
28
- if (hasRequired_Symbol) return _Symbol;
29
- hasRequired_Symbol = 1;
30
- var root = require_root();
31
- var Symbol = root.Symbol;
32
- _Symbol = Symbol;
33
- return _Symbol;
34
- }
35
- var _arrayMap;
36
- var hasRequired_arrayMap;
37
- function require_arrayMap() {
38
- if (hasRequired_arrayMap) return _arrayMap;
39
- hasRequired_arrayMap = 1;
40
- function arrayMap(array, iteratee) {
41
- var index = -1, length = array == null ? 0 : array.length, result = Array(length);
42
- while (++index < length) {
43
- result[index] = iteratee(array[index], index, array);
44
- }
45
- return result;
46
- }
47
- _arrayMap = arrayMap;
48
- return _arrayMap;
49
- }
50
- var isArray_1;
51
- var hasRequiredIsArray;
52
- function requireIsArray() {
53
- if (hasRequiredIsArray) return isArray_1;
54
- hasRequiredIsArray = 1;
55
- var isArray = Array.isArray;
56
- isArray_1 = isArray;
57
- return isArray_1;
58
- }
59
- var _getRawTag;
60
- var hasRequired_getRawTag;
61
- function require_getRawTag() {
62
- if (hasRequired_getRawTag) return _getRawTag;
63
- hasRequired_getRawTag = 1;
64
- var Symbol = require_Symbol();
65
- var objectProto = Object.prototype;
66
- var hasOwnProperty = objectProto.hasOwnProperty;
67
- var nativeObjectToString = objectProto.toString;
68
- var symToStringTag = Symbol ? Symbol.toStringTag : void 0;
69
- function getRawTag(value) {
70
- var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag];
71
- try {
72
- value[symToStringTag] = void 0;
73
- var unmasked = true;
74
- } catch (e) {
75
- }
76
- var result = nativeObjectToString.call(value);
77
- if (unmasked) {
78
- if (isOwn) {
79
- value[symToStringTag] = tag;
80
- } else {
81
- delete value[symToStringTag];
82
- }
83
- }
84
- return result;
85
- }
86
- _getRawTag = getRawTag;
87
- return _getRawTag;
88
- }
89
- var _objectToString;
90
- var hasRequired_objectToString;
91
- function require_objectToString() {
92
- if (hasRequired_objectToString) return _objectToString;
93
- hasRequired_objectToString = 1;
94
- var objectProto = Object.prototype;
95
- var nativeObjectToString = objectProto.toString;
96
- function objectToString(value) {
97
- return nativeObjectToString.call(value);
98
- }
99
- _objectToString = objectToString;
100
- return _objectToString;
101
- }
102
- var _baseGetTag;
103
- var hasRequired_baseGetTag;
104
- function require_baseGetTag() {
105
- if (hasRequired_baseGetTag) return _baseGetTag;
106
- hasRequired_baseGetTag = 1;
107
- var Symbol = require_Symbol(), getRawTag = require_getRawTag(), objectToString = require_objectToString();
108
- var nullTag = "[object Null]", undefinedTag = "[object Undefined]";
109
- var symToStringTag = Symbol ? Symbol.toStringTag : void 0;
110
- function baseGetTag(value) {
111
- if (value == null) {
112
- return value === void 0 ? undefinedTag : nullTag;
113
- }
114
- return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);
115
- }
116
- _baseGetTag = baseGetTag;
117
- return _baseGetTag;
118
- }
119
- var isObjectLike_1;
120
- var hasRequiredIsObjectLike;
121
- function requireIsObjectLike() {
122
- if (hasRequiredIsObjectLike) return isObjectLike_1;
123
- hasRequiredIsObjectLike = 1;
124
- function isObjectLike(value) {
125
- return value != null && typeof value == "object";
126
- }
127
- isObjectLike_1 = isObjectLike;
128
- return isObjectLike_1;
129
- }
130
- var isSymbol_1;
131
- var hasRequiredIsSymbol;
132
- function requireIsSymbol() {
133
- if (hasRequiredIsSymbol) return isSymbol_1;
134
- hasRequiredIsSymbol = 1;
135
- var baseGetTag = require_baseGetTag(), isObjectLike = requireIsObjectLike();
136
- var symbolTag = "[object Symbol]";
137
- function isSymbol(value) {
138
- return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag;
139
- }
140
- isSymbol_1 = isSymbol;
141
- return isSymbol_1;
142
- }
143
- var _baseToString;
144
- var hasRequired_baseToString;
145
- function require_baseToString() {
146
- if (hasRequired_baseToString) return _baseToString;
147
- hasRequired_baseToString = 1;
148
- var Symbol = require_Symbol(), arrayMap = require_arrayMap(), isArray = requireIsArray(), isSymbol = requireIsSymbol();
149
- var symbolProto = Symbol ? Symbol.prototype : void 0, symbolToString = symbolProto ? symbolProto.toString : void 0;
150
- function baseToString(value) {
151
- if (typeof value == "string") {
152
- return value;
153
- }
154
- if (isArray(value)) {
155
- return arrayMap(value, baseToString) + "";
156
- }
157
- if (isSymbol(value)) {
158
- return symbolToString ? symbolToString.call(value) : "";
159
- }
160
- var result = value + "";
161
- return result == "0" && 1 / value == -Infinity ? "-0" : result;
162
- }
163
- _baseToString = baseToString;
164
- return _baseToString;
165
- }
166
- var toString_1;
167
- var hasRequiredToString;
168
- function requireToString() {
169
- if (hasRequiredToString) return toString_1;
170
- hasRequiredToString = 1;
171
- var baseToString = require_baseToString();
172
- function toString(value) {
173
- return value == null ? "" : baseToString(value);
174
- }
175
- toString_1 = toString;
176
- return toString_1;
177
- }
178
- var isObject_1;
179
- var hasRequiredIsObject;
180
- function requireIsObject() {
181
- if (hasRequiredIsObject) return isObject_1;
182
- hasRequiredIsObject = 1;
183
- function isObject(value) {
184
- var type = typeof value;
185
- return value != null && (type == "object" || type == "function");
186
- }
187
- isObject_1 = isObject;
188
- return isObject_1;
189
- }
190
- var now_1;
191
- var hasRequiredNow;
192
- function requireNow() {
193
- if (hasRequiredNow) return now_1;
194
- hasRequiredNow = 1;
195
- var root = require_root();
196
- var now = function() {
197
- return root.Date.now();
198
- };
199
- now_1 = now;
200
- return now_1;
201
- }
202
- var _trimmedEndIndex;
203
- var hasRequired_trimmedEndIndex;
204
- function require_trimmedEndIndex() {
205
- if (hasRequired_trimmedEndIndex) return _trimmedEndIndex;
206
- hasRequired_trimmedEndIndex = 1;
207
- var reWhitespace = /\s/;
208
- function trimmedEndIndex(string) {
209
- var index = string.length;
210
- while (index-- && reWhitespace.test(string.charAt(index))) {
211
- }
212
- return index;
213
- }
214
- _trimmedEndIndex = trimmedEndIndex;
215
- return _trimmedEndIndex;
216
- }
217
- var _baseTrim;
218
- var hasRequired_baseTrim;
219
- function require_baseTrim() {
220
- if (hasRequired_baseTrim) return _baseTrim;
221
- hasRequired_baseTrim = 1;
222
- var trimmedEndIndex = require_trimmedEndIndex();
223
- var reTrimStart = /^\s+/;
224
- function baseTrim(string) {
225
- return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, "") : string;
226
- }
227
- _baseTrim = baseTrim;
228
- return _baseTrim;
229
- }
230
- var toNumber_1;
231
- var hasRequiredToNumber;
232
- function requireToNumber() {
233
- if (hasRequiredToNumber) return toNumber_1;
234
- hasRequiredToNumber = 1;
235
- var baseTrim = require_baseTrim(), isObject = requireIsObject(), isSymbol = requireIsSymbol();
236
- var NAN = 0 / 0;
237
- var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
238
- var reIsBinary = /^0b[01]+$/i;
239
- var reIsOctal = /^0o[0-7]+$/i;
240
- var freeParseInt = parseInt;
241
- function toNumber(value) {
242
- if (typeof value == "number") {
243
- return value;
244
- }
245
- if (isSymbol(value)) {
246
- return NAN;
247
- }
248
- if (isObject(value)) {
249
- var other = typeof value.valueOf == "function" ? value.valueOf() : value;
250
- value = isObject(other) ? other + "" : other;
251
- }
252
- if (typeof value != "string") {
253
- return value === 0 ? value : +value;
254
- }
255
- value = baseTrim(value);
256
- var isBinary = reIsBinary.test(value);
257
- return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;
258
- }
259
- toNumber_1 = toNumber;
260
- return toNumber_1;
261
- }
262
- var debounce_1;
263
- var hasRequiredDebounce;
264
- function requireDebounce() {
265
- if (hasRequiredDebounce) return debounce_1;
266
- hasRequiredDebounce = 1;
267
- var isObject = requireIsObject(), now = requireNow(), toNumber = requireToNumber();
268
- var FUNC_ERROR_TEXT = "Expected a function";
269
- var nativeMax = Math.max, nativeMin = Math.min;
270
- function debounce(func, wait, options) {
271
- var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;
272
- if (typeof func != "function") {
273
- throw new TypeError(FUNC_ERROR_TEXT);
274
- }
275
- wait = toNumber(wait) || 0;
276
- if (isObject(options)) {
277
- leading = !!options.leading;
278
- maxing = "maxWait" in options;
279
- maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
280
- trailing = "trailing" in options ? !!options.trailing : trailing;
281
- }
282
- function invokeFunc(time) {
283
- var args = lastArgs, thisArg = lastThis;
284
- lastArgs = lastThis = void 0;
285
- lastInvokeTime = time;
286
- result = func.apply(thisArg, args);
287
- return result;
288
- }
289
- function leadingEdge(time) {
290
- lastInvokeTime = time;
291
- timerId = setTimeout(timerExpired, wait);
292
- return leading ? invokeFunc(time) : result;
293
- }
294
- function remainingWait(time) {
295
- var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall;
296
- return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;
297
- }
298
- function shouldInvoke(time) {
299
- var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime;
300
- return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;
301
- }
302
- function timerExpired() {
303
- var time = now();
304
- if (shouldInvoke(time)) {
305
- return trailingEdge(time);
306
- }
307
- timerId = setTimeout(timerExpired, remainingWait(time));
308
- }
309
- function trailingEdge(time) {
310
- timerId = void 0;
311
- if (trailing && lastArgs) {
312
- return invokeFunc(time);
313
- }
314
- lastArgs = lastThis = void 0;
315
- return result;
316
- }
317
- function cancel() {
318
- if (timerId !== void 0) {
319
- clearTimeout(timerId);
320
- }
321
- lastInvokeTime = 0;
322
- lastArgs = lastCallTime = lastThis = timerId = void 0;
323
- }
324
- function flush() {
325
- return timerId === void 0 ? result : trailingEdge(now());
326
- }
327
- function debounced() {
328
- var time = now(), isInvoking = shouldInvoke(time);
329
- lastArgs = arguments;
330
- lastThis = this;
331
- lastCallTime = time;
332
- if (isInvoking) {
333
- if (timerId === void 0) {
334
- return leadingEdge(lastCallTime);
335
- }
336
- if (maxing) {
337
- clearTimeout(timerId);
338
- timerId = setTimeout(timerExpired, wait);
339
- return invokeFunc(lastCallTime);
340
- }
341
- }
342
- if (timerId === void 0) {
343
- timerId = setTimeout(timerExpired, wait);
344
- }
345
- return result;
346
- }
347
- debounced.cancel = cancel;
348
- debounced.flush = flush;
349
- return debounced;
350
- }
351
- debounce_1 = debounce;
352
- return debounce_1;
353
- }
354
- var throttle_1;
355
- var hasRequiredThrottle;
356
- function requireThrottle() {
357
- if (hasRequiredThrottle) return throttle_1;
358
- hasRequiredThrottle = 1;
359
- var debounce = requireDebounce(), isObject = requireIsObject();
360
- var FUNC_ERROR_TEXT = "Expected a function";
361
- function throttle2(func, wait, options) {
362
- var leading = true, trailing = true;
363
- if (typeof func != "function") {
364
- throw new TypeError(FUNC_ERROR_TEXT);
365
- }
366
- if (isObject(options)) {
367
- leading = "leading" in options ? !!options.leading : leading;
368
- trailing = "trailing" in options ? !!options.trailing : trailing;
369
- }
370
- return debounce(func, wait, {
371
- "leading": leading,
372
- "maxWait": wait,
373
- "trailing": trailing
374
- });
375
- }
376
- throttle_1 = throttle2;
377
- return throttle_1;
378
- }
379
- var throttleExports = requireThrottle();
380
- const throttle = /* @__PURE__ */ getDefaultExportFromCjs(throttleExports);
381
- export {
382
- requireDebounce as a,
383
- require_baseGetTag as b,
384
- requireIsObject as c,
385
- require_root as d,
386
- require_arrayMap as e,
387
- requireIsObjectLike as f,
388
- getDefaultExportFromCjs as g,
389
- require_Symbol as h,
390
- requireIsArray as i,
391
- require_freeGlobal as j,
392
- requireIsSymbol as k,
393
- requireToString as r,
394
- throttle as t
395
- };
396
- //# sourceMappingURL=throttle-CXOc9Dto.js.map