@ublitzjs/core 0.1.1 → 1.0.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.
package/src/index.ts ADDED
@@ -0,0 +1,360 @@
1
+ "use strict";
2
+ import type { BaseHeaders, lowHeaders } from "./http-headers.js";
3
+ import uWS from "uWebSockets.js";
4
+ import { Buffer } from "node:buffer";
5
+ import { EventEmitter } from "tseep";
6
+ (uWS as any).DeclarativeResponse.prototype.writeHeaders = function (headers: any) {
7
+ for (const key in headers) this.writeHeader(key, headers[key]);
8
+ return this;
9
+ };
10
+
11
+
12
+ import type {
13
+ CompressOptions,
14
+ WebSocket,
15
+ HttpRequest as uwsHttpRequest,
16
+ TemplatedApp,
17
+ HttpResponse as uwsHttpResponse,
18
+ RecognizedString,
19
+ us_socket_context_t,
20
+ } from "uWebSockets.js";
21
+
22
+ /**
23
+ * function to effortlessly mark response as aborted AND to attach an event emitter, so that you can easily scale the handler. If you don't need event emitter and only some res.aborted - set it by yourself (no overkill for the handler)
24
+ * @param res
25
+ */
26
+ export function registerAbort(res: uwsHttpResponse): HttpResponse {
27
+ if (typeof res.aborted === "boolean")
28
+ throw new Error("abort already registered");
29
+ res.aborted = false;
30
+ res.emitter = new EventEmitter();
31
+ return res.onAborted(() => {
32
+ res.aborted = true;
33
+ res.emitter.emit("abort");
34
+ }) as HttpResponse;
35
+ };
36
+ /**
37
+ * An extended version of uWS.App . It provides you with several features:
38
+ * 1) plugin registration (just like in Fastify);
39
+ * 2) "ready" function and _startPromises array (use it to make your code more asynchronous and safe)
40
+ * 3) "route" function for more descriptive adn extensible way of registering handlers
41
+ * 4) "onError" function (mainly used by @ublitzjs/router)
42
+ */
43
+ export interface Server extends TemplatedApp {
44
+ /**
45
+ * It is same as plugins in Fastify -> you register some functionality in separate function
46
+ * @param plugin
47
+ * @returns itself (for chaining methods)
48
+ */
49
+ register(plugin: (server: this) => void): this;
50
+ /** set global _errHandler (in fact it is used only by @ublitzjs/router) */
51
+ onError(fn: (error: Error, res: HttpResponse, data: any) => any): this;
52
+ _errHandler?(error: Error, res: HttpResponse, data: any): any;
53
+ /**some undocumented property in uWS - get it here */
54
+ addChildAppDescriptor(...any: any[]): this;
55
+ /**a function, which pushes promises to be awaited using "await server.ready()"*/
56
+ awaitLater(...promises: Promise<any>[]): void;
57
+ /**a function, which awaits all promises inside _startPromises array and then clears it*/
58
+ ready: () => Promise<any[]>;
59
+ /**
60
+ * simple array of promises. You can push several inside and await all of them using server.ready() method
61
+ */
62
+ _startPromises: Promise<any>[];
63
+ /**
64
+ * this function allows you to create new handlers but more dynamically than uWS. Best use case - development. By default, the first param you pass includes a method, path, and a controller. However you can configure it for additional properties, which can be consumed on startup by second param - plugins
65
+ * @example
66
+ * server.route<onlyHttpMethods, {deprecated:boolean}>({
67
+ * method:"any",
68
+ * path: "/",
69
+ * controller(res){ res.end("hello") },
70
+ * deprecated:true
71
+ * },
72
+ * [
73
+ * (opts)=>{
74
+ * if(opts.deprecated) console.error("DEPRECATION FOUND", opts.path)
75
+ * }
76
+ * ])
77
+ */
78
+ route<T extends HttpMethods, obj extends object = {}>(
79
+ opts: routeFNOpts<T> & obj,
80
+ plugins?: ((param: typeof opts, server: this) => void)[]
81
+ ): this;
82
+ get(pattern: RecognizedString, handler: HttpControllerFn): this;
83
+ post(pattern: RecognizedString, handler: HttpControllerFn): this;
84
+ options(pattern: RecognizedString, handler: HttpControllerFn): this;
85
+ del(pattern: RecognizedString, handler: HttpControllerFn): this;
86
+ patch(pattern: RecognizedString, handler: HttpControllerFn): this;
87
+ put(pattern: RecognizedString, handler: HttpControllerFn): this;
88
+ head(pattern: RecognizedString, handler: HttpControllerFn): this;
89
+ connect(pattern: RecognizedString, handler: HttpControllerFn): this;
90
+ trace(pattern: RecognizedString, handler: HttpControllerFn): this;
91
+ any(pattern: RecognizedString, handler: HttpControllerFn): this;
92
+ ws<UserData>(pattern: RecognizedString, behavior: DocumentedWSBehavior<UserData>) : this;
93
+ }
94
+ export type routeFNOpts<T extends HttpMethods> = {
95
+ method: T;
96
+ path: RecognizedString;
97
+ controller: T extends "ws" ? DocumentedWSBehavior<any> : HttpControllerFn;
98
+ };
99
+
100
+ /**
101
+ * Utility for making closures. Exists for organizing code and caching values in non-global scope.
102
+ * @param param
103
+ * @returns what you passed
104
+ */
105
+ export var closure = <T>(param: () => T): T => param() ;
106
+ /**
107
+ * little more typed response which has:
108
+ * 1) "emitter", that comes from "tseep" package
109
+ * 2) "aborted" flag
110
+ * 3) "finished" flag
111
+ * 4) "collect" function, which comes from original uWS (and isn't documented), but the purpose remains unknown
112
+ * 5) "upgrade" function, though comes from original uWS, must not contain any names, which "DocumentedWS" has (or websocket object). ws.getUserData() return "ws" itself, so setting any data, which overlaps with already existing will impact your workflow. µBlitz.js doesn't add any lsp help here because it will brake "extends uwsHttpResponse" part.
113
+ */
114
+ export interface HttpResponse<UserDataForWS = {}>
115
+ extends uwsHttpResponse {
116
+ upgrade<UserData = UserDataForWS>(
117
+ userData: UserData,
118
+ secWebSocketKey: RecognizedString,
119
+ secWebSocketProtocol: RecognizedString,
120
+ secWebSocketExtensions: RecognizedString,
121
+ context: us_socket_context_t
122
+ ): void;
123
+ /**
124
+ * This method actually exists in original uWebSockets.js, but is undocumented. I'll put it here for your IDE to be happy
125
+ */
126
+ collect: (...any: any[]) => any;
127
+ /**
128
+ * An event emitter, which lets you subscribe several listeners to "abort" event OR your own events, defined with Symbol().
129
+ */
130
+ emitter: EventEmitter<{
131
+ abort: () => void;
132
+ [k: symbol]: (...any: any[]) => void;
133
+ }>;
134
+ /**
135
+ * changes when res.onAborted fires.
136
+ */
137
+ aborted?: boolean;
138
+ /**
139
+ * You should set it manually when ending the response. Particularly useful if some error has fired and you are doubting whether res.aborted is a sufficient flag.
140
+ */
141
+ finished?: boolean;
142
+ }
143
+ /**This HttpRequest is same as original uWS.HttpRequest, but getHeader method is typed for additional tips
144
+ * @example
145
+ * import {lowHeaders} from "@ublitzjs/core"
146
+ * // some handler later
147
+ * req.getHeader<lowHeaders>("content-type")
148
+ */
149
+ export interface HttpRequest extends uwsHttpRequest {
150
+ getHeader<T extends RecognizedString = lowHeaders>(a: T): string;
151
+ }
152
+
153
+ export type HttpControllerFn = (
154
+ res: HttpResponse,
155
+ req: HttpRequest
156
+ ) => any | Promise<any>;
157
+ /**
158
+ * only http methods without "ws"
159
+ */
160
+ export type onlyHttpMethods =
161
+ | "get"
162
+ | "post"
163
+ | "del"
164
+ | "patch"
165
+ | "put"
166
+ | "head"
167
+ | "trace"
168
+ | "options"
169
+ | "connect"
170
+ | "any";
171
+ /**
172
+ * all httpMethods with "ws" method
173
+ */
174
+ export type HttpMethods = onlyHttpMethods | "ws"; //NOT A HTTP METHOD, but had to put it here
175
+ type MergeObjects<T extends any[]> = T extends [infer First, ...infer Rest]
176
+ ? First & MergeObjects<Rest extends any[] ? Rest : []>
177
+ : {};
178
+ /**
179
+ * extends uWS.App() or uWS.SSLApp. See interface Server
180
+ * @param app uWS.App()
181
+ */
182
+ export function extendApp<T extends object[]>(
183
+ app: TemplatedApp,
184
+ ...rest: T
185
+ ): Server & MergeObjects<T> {
186
+ (app as any).register = function (plugin: any) {
187
+ return plugin(this), this;
188
+ };
189
+ (app as any).onError = function (fn: any) {
190
+ return (this._errHandler = fn), this;
191
+ };
192
+ (app as any)._startPromises = [];
193
+ (app as any).awaitLater = function(){
194
+ this._startPromises.push(...arguments);
195
+ };
196
+ (app as any).ready = function () {
197
+ return Promise.all(this._startPromises).then(
198
+ () => (this._startPromises = [])
199
+ );
200
+ };
201
+ (app as any).route = function (opts: any, plugins: any) {
202
+ if (plugins) for (const p of plugins) p(opts, this);
203
+ return this[opts.method](opts.path, opts.controller);
204
+ };
205
+ for (const extension of rest) Object.assign(app, extension);
206
+ return app as any;
207
+ }
208
+ /**
209
+ * conversion to ArrayBuffer ('cause transferring strings to uWS is really slow)
210
+ */
211
+ export function toAB(data: Buffer | string): ArrayBuffer {
212
+ var NodeBuf = data instanceof Buffer ? data : Buffer.from(data);
213
+ return NodeBuf.buffer.slice(
214
+ NodeBuf.byteOffset,
215
+ NodeBuf.byteOffset + NodeBuf.byteLength
216
+ ) as ArrayBuffer;
217
+ }
218
+
219
+ /**
220
+ * Thanks to "acarstoiu" github user for listing such methods here: "https://github.com/uNetworking/uWebSockets.js/issues/1165".
221
+ */
222
+ type WebSocketFragmentation = {
223
+ /** Sends the first frame of a multi-frame message. More fragments are expected (possibly none), followed by a last fragment. Care must be taken so as not to interleave these fragments with whole messages (sent with WebSocket.send) or with other messages' fragments.
224
+ *
225
+ * Returns 1 for success, 2 for dropped due to backpressure limit, and 0 for built up backpressure that will drain over time. You can check backpressure before or after sending by calling getBufferedAmount().
226
+ *
227
+ * Make sure you properly understand the concept of backpressure. Check the backpressure example file.
228
+ */
229
+ sendFirstFragment(
230
+ message: RecognizedString,
231
+ isBinary?: boolean,
232
+ compress?: boolean
233
+ ): number;
234
+ /** Sends a continuation frame of a multi-frame message. More fragments are expected (possibly none), followed by a last fragment. In terms of sending data, a call to this method must follow a call to WebSocket.sendFirstFragment.
235
+ *
236
+ * Returns 1 for success, 2 for dropped due to backpressure limit, and 0 for built up backpressure that will drain over time. You can check backpressure before or after sending by calling getBufferedAmount().
237
+ *
238
+ * Make sure you properly understand the concept of backpressure. Check the backpressure example file.
239
+ */
240
+ sendFragment(message: RecognizedString, compress?: boolean): number;
241
+ /** Sends the last continuation frame of a multi-frame message. In terms of sending data, a call to this method must follow a call to WebSocket.sendFirstFragment or WebSocket.sendFragment.
242
+ *
243
+ * Returns 1 for success, 2 for dropped due to backpressure limit, and 0 for built up backpressure that will drain over time. You can check backpressure before or after sending by calling getBufferedAmount().
244
+ *
245
+ * Make sure you properly understand the concept of backpressure. Check the backpressure example file.
246
+ */
247
+ sendLastFragment(message: RecognizedString, compress?: boolean): number;
248
+ };
249
+ export interface DocumentedWS<UserData> extends WebSocket<UserData>, WebSocketFragmentation {
250
+ /**
251
+ * this is an additional property, which saves you from server crashing. In "close" handler you should add "ws.closed = true" and each time you perform any asynchronous work before sending a message run a check "if(ws.closed) { cleanup and quit }"
252
+ * @example
253
+ * import {setTimeout} from "node:timers/promises"
254
+ * server.ws("/", {
255
+ * close(ws){
256
+ * ws.closed = true;
257
+ * },
258
+ * async message(ws){
259
+ * await setTimeout(100); // simulate some db query
260
+ * if(!ws.closed) ws.send("handled message", false)
261
+ * }
262
+ * })
263
+ * */
264
+ closed: boolean;
265
+ /**
266
+ * an additional property which might save websocket from overexhaustion
267
+ * */
268
+ drainEvent: Promise<void> | undefined;
269
+ /**
270
+ * an additional property to monitor queued messages, which can't be sent due to overexhaustion (need to wait for drain).
271
+ **/
272
+ queue: number;
273
+
274
+ }
275
+ export interface DocumentedWSBehavior<UserData> {
276
+ /** Maximum length of received message. If a client tries to send you a message larger than this, the connection is immediately closed. Defaults to 16 * 1024. */
277
+ maxPayloadLength?: number;
278
+ /** Whether or not we should automatically close the socket when a message is dropped due to backpressure. Defaults to false. */
279
+ closeOnBackpressureLimit?: boolean;
280
+ /** Maximum number of minutes a WebSocket may be connected before being closed by the server. 0 disables the feature. */
281
+ maxLifetime?: number;
282
+ /** Maximum amount of seconds that may pass without sending or getting a message. Connection is closed if this timeout passes. Resolution (granularity) for timeouts are typically 4 seconds, rounded to closest.
283
+ * Disable by using 0. Defaults to 120.
284
+ */
285
+ idleTimeout?: number;
286
+ /** What permessage-deflate compression to use. uWS.DISABLED, uWS.SHARED_COMPRESSOR or any of the uWS.DEDICATED_COMPRESSOR_xxxKB. Defaults to uWS.DISABLED. */
287
+ compression?: CompressOptions;
288
+ /** Maximum length of allowed backpressure per socket when publishing or sending messages. Slow receivers with too high backpressure will be skipped until they catch up or timeout. Defaults to 64 * 1024. */
289
+ maxBackpressure?: number;
290
+ /** Whether or not we should automatically send pings to uphold a stable connection given whatever idleTimeout. */
291
+ sendPingsAutomatically?: boolean;
292
+ /** Handler for new WebSocket connection. WebSocket is valid from open to close, no errors. */
293
+ open?: (ws: DocumentedWS<UserData>) => void | Promise<void>;
294
+ /** Handler for a WebSocket message. Messages are given as ArrayBuffer no matter if they are binary or not. Given ArrayBuffer is valid during the lifetime of this callback (until first await or return) and will be neutered. */
295
+ message?: (
296
+ ws: DocumentedWS<UserData>,
297
+ message: ArrayBuffer,
298
+ isBinary: boolean
299
+ ) => void | Promise<void>;
300
+ /** Handler for a dropped WebSocket message. Messages can be dropped due to specified backpressure settings. Messages are given as ArrayBuffer no matter if they are binary or not. Given ArrayBuffer is valid during the lifetime of this callback (until first await or return) and will be neutered. */
301
+ dropped?: (
302
+ ws: DocumentedWS<UserData>,
303
+ message: ArrayBuffer,
304
+ isBinary: boolean
305
+ ) => void | Promise<void>;
306
+ /** Handler for when WebSocket backpressure drains. Check ws.getBufferedAmount(). Use this to guide / drive your backpressure throttling. */
307
+ drain?: (ws: DocumentedWS<UserData>) => void;
308
+ /** Handler for close event, no matter if error, timeout or graceful close. You may not use WebSocket after this event. Do not send on this WebSocket from within here, it is closed. */
309
+ close?: (
310
+ ws: DocumentedWS<UserData>,
311
+ code: number,
312
+ message: ArrayBuffer
313
+ ) => void;
314
+ /** Handler for received ping control message. You do not need to handle this, pong messages are automatically sent as per the standard. */
315
+ ping?: (ws: DocumentedWS<UserData>, message: ArrayBuffer) => void;
316
+ /** Handler for received pong control message. */
317
+ pong?: (ws: DocumentedWS<UserData>, message: ArrayBuffer) => void;
318
+ /** Handler for subscription changes. */
319
+ subscription?: (
320
+ ws: DocumentedWS<UserData>,
321
+ topic: ArrayBuffer,
322
+ newCount: number,
323
+ oldCount: number
324
+ ) => void;
325
+ /** Upgrade handler used to intercept HTTP upgrade requests and potentially upgrade to WebSocket.
326
+ * See UpgradeAsync and UpgradeSync example files.
327
+ */
328
+ upgrade?: (
329
+ res: HttpResponse<UserData>,
330
+ req: HttpRequest,
331
+ context: us_socket_context_t
332
+ ) => void | Promise<void>;
333
+ }
334
+ export type DeclarativeResType = {
335
+ writeHeader(key: string, value: string): DeclarativeResType;
336
+ writeQueryValue(key: string): DeclarativeResType;
337
+ writeHeaderValue(key: string): DeclarativeResType;
338
+ /**
339
+ * Write a chunk to the precompiled response
340
+ */
341
+ write(value: string): DeclarativeResType;
342
+ writeParameterValue(key: string): DeclarativeResType;
343
+ /**
344
+ * Method to finalize forming a response.
345
+ */
346
+ end(value: string): any;
347
+ writeBody(): DeclarativeResType;
348
+ /**
349
+ * additional method from µBlitz.js
350
+ */
351
+ writeHeaders<Opts extends BaseHeaders>(headers: Opts): DeclarativeResType;
352
+ };
353
+ /**
354
+ * Almost nothing different from uWS.DeclarativeResponse. The only modification - writeHeaders method (several methods, typescript intellisense)
355
+ */
356
+ export var DeclarativeResponse: {
357
+ new (): DeclarativeResType;
358
+ } = (uWS as any).DeclarativeResponse;
359
+ export * from "./http-codes.js"
360
+ export * from "./http-headers.js"
package/tmp/cjs.cjs ADDED
@@ -0,0 +1,75 @@
1
+ "use strict";var d=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var K=d(x=>{"use strict";Object.defineProperty(x,"__esModule",{value:!0})});var D=d(P=>{"use strict";Object.defineProperty(P,"__esModule",{value:!0});P._fast_remove_single=void 0;function ne(e,t){t!==-1&&(t===0?e.shift():t===e.length-1?e.length=e.length-1:e.splice(t,1))}P._fast_remove_single=ne});var H=d((exports,module)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.bakeCollectionVariadic=exports.bakeCollectionAwait=exports.bakeCollection=exports.BAKED_EMPTY_FUNC=void 0;exports.BAKED_EMPTY_FUNC=(function(){});var FORLOOP_FALLBACK=1500;function generateArgsDefCode(e){var t="";if(e===0)return t;for(var n=0;n<e-1;++n)t+="arg"+String(n)+", ";return t+="arg"+String(e-1),t}function generateBodyPartsCode(e,t){for(var n="",i="",r=0;r<t;++r)n+="var f".concat(r," = collection[").concat(r,`];
2
+ `),i+="f".concat(r,"(").concat(e,`)
3
+ `);return{funcDefCode:n,funcCallCode:i}}function generateBodyPartsVariadicCode(e){for(var t="",n="",i=0;i<e;++i)t+="var f".concat(i," = collection[").concat(i,`];
4
+ `),n+="f".concat(i,`.apply(undefined, arguments)
5
+ `);return{funcDefCode:t,funcCallCode:n}}function bakeCollection(collection,fixedArgsNum){if(collection.length===0)return exports.BAKED_EMPTY_FUNC;if(collection.length===1)return collection[0];var funcFactoryCode;if(collection.length<FORLOOP_FALLBACK){var argsDefCode=generateArgsDefCode(fixedArgsNum),_a=generateBodyPartsCode(argsDefCode,collection.length),funcDefCode=_a.funcDefCode,funcCallCode=_a.funcCallCode;funcFactoryCode=`(function(collection) {
6
+ `.concat(funcDefCode,`
7
+ collection = undefined;
8
+ return (function(`).concat(argsDefCode,`) {
9
+ `).concat(funcCallCode,`
10
+ });
11
+ })`)}else{var argsDefCode=generateArgsDefCode(fixedArgsNum);collection.length%10===0?funcFactoryCode=`(function(collection) {
12
+ return (function(`.concat(argsDefCode,`) {
13
+ for (var i = 0; i < collection.length; i += 10) {
14
+ collection[i](`).concat(argsDefCode,`);
15
+ collection[i+1](`).concat(argsDefCode,`);
16
+ collection[i+2](`).concat(argsDefCode,`);
17
+ collection[i+3](`).concat(argsDefCode,`);
18
+ collection[i+4](`).concat(argsDefCode,`);
19
+ collection[i+5](`).concat(argsDefCode,`);
20
+ collection[i+6](`).concat(argsDefCode,`);
21
+ collection[i+7](`).concat(argsDefCode,`);
22
+ collection[i+8](`).concat(argsDefCode,`);
23
+ collection[i+9](`).concat(argsDefCode,`);
24
+ }
25
+ });
26
+ })`):collection.length%4===0?funcFactoryCode=`(function(collection) {
27
+ return (function(`.concat(argsDefCode,`) {
28
+ for (var i = 0; i < collection.length; i += 4) {
29
+ collection[i](`).concat(argsDefCode,`);
30
+ collection[i+1](`).concat(argsDefCode,`);
31
+ collection[i+2](`).concat(argsDefCode,`);
32
+ collection[i+3](`).concat(argsDefCode,`);
33
+ }
34
+ });
35
+ })`):collection.length%3===0?funcFactoryCode=`(function(collection) {
36
+ return (function(`.concat(argsDefCode,`) {
37
+ for (var i = 0; i < collection.length; i += 3) {
38
+ collection[i](`).concat(argsDefCode,`);
39
+ collection[i+1](`).concat(argsDefCode,`);
40
+ collection[i+2](`).concat(argsDefCode,`);
41
+ }
42
+ });
43
+ })`):funcFactoryCode=`(function(collection) {
44
+ return (function(`.concat(argsDefCode,`) {
45
+ for (var i = 0; i < collection.length; ++i) {
46
+ collection[i](`).concat(argsDefCode,`);
47
+ }
48
+ });
49
+ })`)}{var bakeCollection_1=void 0,fixedArgsNum_1=void 0,bakeCollectionVariadic_1=void 0,bakeCollectionAwait_1=void 0,funcFactory=eval(funcFactoryCode);return funcFactory(collection)}}exports.bakeCollection=bakeCollection;function bakeCollectionAwait(collection,fixedArgsNum){if(collection.length===0)return exports.BAKED_EMPTY_FUNC;if(collection.length===1)return collection[0];var funcFactoryCode;if(collection.length<FORLOOP_FALLBACK){var argsDefCode=generateArgsDefCode(fixedArgsNum),_a=generateBodyPartsCode(argsDefCode,collection.length),funcDefCode=_a.funcDefCode,funcCallCode=_a.funcCallCode;funcFactoryCode=`(function(collection) {
50
+ `.concat(funcDefCode,`
51
+ collection = undefined;
52
+ return (function(`).concat(argsDefCode,`) {
53
+ return Promise.all([ `).concat(funcCallCode,` ]);
54
+ });
55
+ })`)}else{var argsDefCode=generateArgsDefCode(fixedArgsNum);funcFactoryCode=`(function(collection) {
56
+ return (function(`.concat(argsDefCode,`) {
57
+ var promises = Array(collection.length);
58
+ for (var i = 0; i < collection.length; ++i) {
59
+ promises[i] = collection[i](`).concat(argsDefCode,`);
60
+ }
61
+ return Promise.all(promises);
62
+ });
63
+ })`)}{var bakeCollection_2=void 0,fixedArgsNum_2=void 0,bakeCollectionVariadic_2=void 0,bakeCollectionAwait_2=void 0,funcFactory=eval(funcFactoryCode);return funcFactory(collection)}}exports.bakeCollectionAwait=bakeCollectionAwait;function bakeCollectionVariadic(collection){if(collection.length===0)return exports.BAKED_EMPTY_FUNC;if(collection.length===1)return collection[0];var funcFactoryCode;if(collection.length<FORLOOP_FALLBACK){var _a=generateBodyPartsVariadicCode(collection.length),funcDefCode=_a.funcDefCode,funcCallCode=_a.funcCallCode;funcFactoryCode=`(function(collection) {
64
+ `.concat(funcDefCode,`
65
+ collection = undefined;
66
+ return (function() {
67
+ `).concat(funcCallCode,`
68
+ });
69
+ })`)}else funcFactoryCode=`(function(collection) {
70
+ return (function() {
71
+ for (var i = 0; i < collection.length; ++i) {
72
+ collection[i].apply(undefined, arguments);
73
+ }
74
+ });
75
+ })`;{var bakeCollection_3=void 0,fixedArgsNum=void 0,bakeCollectionVariadic_3=void 0,bakeCollectionAwait_3=void 0,funcFactory=eval(funcFactoryCode);return funcFactory(collection)}}exports.bakeCollectionVariadic=bakeCollectionVariadic});var R=d(C=>{"use strict";var q=C&&C.__spreadArray||function(e,t,n){if(n||arguments.length===2)for(var i=0,r=t.length,c;i<r;i++)(c||!(i in t))&&(c||(c=Array.prototype.slice.call(t,0,i)),c[i]=t[i]);return e.concat(c||Array.prototype.slice.call(t))};Object.defineProperty(C,"__esModule",{value:!0});C.TaskCollection=void 0;var T=D(),g=H();function ie(e,t){var n=this.length;if(n>1)if(t){var i;(i=this._tasks).push.apply(i,arguments),this.length+=arguments.length}else this._tasks.push(e),this.length++;else if(t){if(n===1){var r=Array(1+arguments.length);r.push(r),r.push.apply(r,arguments),this._tasks=r}else{var r=Array(arguments.length);r.push.apply(r,arguments),this._tasks=r}this.length+=arguments.length}else n===1?this._tasks=[this._tasks,e]:this._tasks=e,this.length++}function re(e,t){var n=this.length;if(n>1)if(t){var i;(i=this._tasks).push.apply(i,arguments),this.length+=arguments.length}else this._tasks.push(e),this.length++;else if(t){if(n===1){var r=Array(1+arguments.length);r.push(r),r.push.apply(r,arguments),this._tasks=r}else{var r=Array(arguments.length);r.push.apply(r,arguments),this._tasks=r}this.length+=arguments.length}else n===1?this._tasks=[this._tasks,e]:this._tasks=e,this.length++;this.firstEmitBuildStrategy?this.call=k:this.rebuild()}function se(e){this.length!==0&&(this.length===1?this._tasks===e&&(this.length=0):((0,T._fast_remove_single)(this._tasks,this._tasks.lastIndexOf(e)),this._tasks.length===1?(this._tasks=this._tasks[0],this.length=1):this.length=this._tasks.length))}function oe(e){if(this.length!==0){if(this.length===1)if(this._tasks===e&&(this.length=0),this.firstEmitBuildStrategy){this.call=g.BAKED_EMPTY_FUNC;return}else{this.rebuild();return}else(0,T._fast_remove_single)(this._tasks,this._tasks.lastIndexOf(e)),this._tasks.length===1?(this._tasks=this._tasks[0],this.length=1):this.length=this._tasks.length;this.firstEmitBuildStrategy?this.call=k:this.rebuild()}}function le(e){for(var t,n=[],i=1;i<arguments.length;i++)n[i-1]=arguments[i];this.length===0?(this._tasks=n,this.length=1):this.length===1?(n.unshift(this._tasks),this._tasks=n,this.length=this._tasks.length):((t=this._tasks).splice.apply(t,q([e,0],n,!1)),this.length=this._tasks.length)}function ce(e){for(var t,n=[],i=1;i<arguments.length;i++)n[i-1]=arguments[i];this.length===0?(this._tasks=n,this.length=1):this.length===1?(n.unshift(this._tasks),this._tasks=n,this.length=this._tasks.length):((t=this._tasks).splice.apply(t,q([e,0],n,!1)),this.length=this._tasks.length),this.firstEmitBuildStrategy?this.call=k:this.rebuild()}function ae(){this.length===0?this.call=g.BAKED_EMPTY_FUNC:this.length===1?this.call=this._tasks:this.call=(0,g.bakeCollection)(this._tasks,this.argsNum)}function ue(){this.length===0?this.call=g.BAKED_EMPTY_FUNC:this.length===1?this.call=this._tasks:this.call=(0,g.bakeCollectionAwait)(this._tasks,this.argsNum)}function k(){this.rebuild(),this.call.apply(void 0,arguments)}var p=(function(){function e(t,n,i,r){n===void 0&&(n=!0),i===void 0&&(i=null),r===void 0&&(r=!1),this.awaitTasks=r,this.call=g.BAKED_EMPTY_FUNC,this.argsNum=t,this.firstEmitBuildStrategy=!0,r?this.rebuild=ue.bind(this):this.rebuild=ae.bind(this),this.setAutoRebuild(n),i?typeof i=="function"?(this._tasks=i,this.length=1):(this._tasks=i,this.length=i.length):(this._tasks=null,this.length=0),n&&this.rebuild()}return e})();C.TaskCollection=p;function fe(){this._tasks=null,this.length=0,this.call=g.BAKED_EMPTY_FUNC}function he(){this._tasks=null,this.length=0,this.call=g.BAKED_EMPTY_FUNC}function de(e){this.argsNum<e&&(this.argsNum=e,this.firstEmitBuildStrategy?this.call=k:this.rebuild())}function ge(e){e?(this.push=re.bind(this),this.insert=ce.bind(this),this.removeLast=oe.bind(this)):(this.push=ie.bind(this),this.insert=le.bind(this),this.removeLast=se.bind(this))}function ve(){return this.length===0?[]:this.length===1?[this._tasks]:this._tasks}function _e(e){e.length===0?(this.length=0,this.call=g.BAKED_EMPTY_FUNC):e.length===1?(this.length=1,this.call=e[0],this._tasks=e[0]):(this.length=e.length,this._tasks=e,this.firstEmitBuildStrategy?this.call=k:this.rebuild())}p.prototype.fastClear=fe;p.prototype.clear=he;p.prototype.growArgsNum=de;p.prototype.setAutoRebuild=ge;p.prototype.tasksAsArray=ve;p.prototype.setTasks=_e});var U=d(y=>{"use strict";var pe=y&&y.__createBinding||(Object.create?(function(e,t,n,i){i===void 0&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);(!r||("get"in r?!t.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}):(function(e,t,n,i){i===void 0&&(i=n),e[i]=t[n]})),ye=y&&y.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&pe(t,e,n)};Object.defineProperty(y,"__esModule",{value:!0});ye(R(),y)});var Y=d(w=>{"use strict";Object.defineProperty(w,"__esModule",{value:!0});w.nullObj=void 0;function be(){var e={};return e.__proto__=null,e}w.nullObj=be});var W=d(A=>{"use strict";var b=A&&A.__spreadArray||function(e,t,n){if(n||arguments.length===2)for(var i=0,r=t.length,c;i<r;i++)(c||!(i in t))&&(c||(c=Array.prototype.slice.call(t,0,i)),c[i]=t[i]);return e.concat(c||Array.prototype.slice.call(t))};Object.defineProperty(A,"__esModule",{value:!0});A.EventEmitter=void 0;var F=U(),me=D(),L=Y();function E(e,t,n,i,r,c){var f=this.events[e];if(f){if(f.length===0)return!1;if(f.argsNum<6)f.call(t,n,i,r,c);else{for(var o=new Array(f.argsNum),s=0,_=o.length;s<_;++s)o[s]=arguments[s+1];f.call.apply(void 0,o)}return!0}return!1}function V(e,t,n,i,r,c){var f=this.events[e],o;if(f!==void 0){if(f.length===0)return!1;if(f.argsNum<6)f.call(t,n,i,r,c);else{o=new Array(f.argsNum);for(var s=0,_=o.length;s<_;++s)o[s]=arguments[s+1];f.call.apply(void 0,o)}}var O=this.onceEvents[e];if(O){if(typeof O=="function")if(this.onceEvents[e]=void 0,arguments.length<6)O(t,n,i,r,c);else{if(o===void 0){o=new Array(arguments.length-1);for(var s=0,_=o.length;s<_;++s)o[s]=arguments[s+1]}O.apply(void 0,o)}else{var B=O;if(this.onceEvents[e]=void 0,arguments.length<6)for(var s=0;s<B.length;++s)B[s](t,n,i,r,c);else{if(o===void 0){o=new Array(arguments.length-1);for(var s=0,_=o.length;s<_;++s)o[s]=arguments[s+1]}for(var s=0;s<B.length;++s)B[s].apply(void 0,o)}}return!0}return f!==void 0}var l=(function(){function e(){this.events=(0,L.nullObj)(),this.onceEvents=(0,L.nullObj)(),this._symbolKeys=new Set,this.maxListeners=1/0}return Object.defineProperty(e.prototype,"_eventsCount",{get:function(){return this.eventNames().length},enumerable:!1,configurable:!0}),e})();A.EventEmitter=l;function Ce(e,t){switch(this.emit===E&&(this.emit=V),typeof this.onceEvents[e]){case"undefined":this.onceEvents[e]=t,typeof e=="symbol"&&this._symbolKeys.add(e);break;case"function":this.onceEvents[e]=[this.onceEvents[e],t];break;case"object":this.onceEvents[e].push(t)}return this}function I(e,t,n){if(n===void 0&&(n=t.length),typeof t!="function")throw new TypeError("The listener must be a function");var i=this.events[e];return i?(i.push(t),i.growArgsNum(n),this.maxListeners!==1/0&&this.maxListeners<=i.length&&console.warn('Maximum event listeners for "'.concat(String(e),'" event!'))):(this.events[e]=new F.TaskCollection(n,!0,t,!1),typeof e=="symbol"&&this._symbolKeys.add(e)),this}function X(e,t){var n=this.events[e];n&&n.removeLast(t);var i=this.onceEvents[e];return i&&(typeof i=="function"?this.onceEvents[e]=void 0:typeof i=="object"&&(i.length===1&&i[0]===t?this.onceEvents[e]=void 0:(0,me._fast_remove_single)(i,i.lastIndexOf(t)))),this}function Ae(e,t,n,i){n===void 0&&(n=this),i===void 0&&(i=t.length),this.boundFuncs||(this.boundFuncs=new Map);var r=t.bind(n);return this.boundFuncs.set(t,r),this.addListener(e,r,i)}function Ee(e,t){var n,i,r=(n=this.boundFuncs)===null||n===void 0?void 0:n.get(t);return(i=this.boundFuncs)===null||i===void 0||i.delete(t),this.removeListener(e,r)}function Oe(e){return this.events[e]&&!!this.events[e].length}function ke(e,t,n){if(n===void 0&&(n=t.length),typeof t!="function")throw new TypeError("The listener must be a function");var i=this.events[e];return!i||!(i instanceof F.TaskCollection)?(i=this.events[e]=new F.TaskCollection(n,!0,t,!1),typeof e=="symbol"&&this._symbolKeys.add(e)):(i.insert(0,t),i.growArgsNum(n),this.maxListeners!==1/0&&this.maxListeners<=i.length&&console.warn('Maximum event listeners for "'.concat(String(e),'" event!'))),this}function Be(e,t){this.emit===E&&(this.emit=V);var n=this.onceEvents[e];return n?typeof n!="object"?(this.onceEvents[e]=[t,n],typeof e=="symbol"&&this._symbolKeys.add(e)):(n.unshift(t),this.maxListeners!==1/0&&this.maxListeners<=n.length&&console.warn('Maximum event listeners for "'.concat(String(e),'" once event!'))):(this.onceEvents[e]=[t],typeof e=="symbol"&&this._symbolKeys.add(e)),this}function Pe(e){return e===void 0?(this.events=(0,L.nullObj)(),this.onceEvents=(0,L.nullObj)(),this._symbolKeys=new Set):(this.events[e]=void 0,this.onceEvents[e]=void 0,typeof e=="symbol"&&this._symbolKeys.delete(e)),this}function we(e){return this.maxListeners=e,this}function Le(){return this.maxListeners}function De(e){return this.emit===E?this.events[e]?this.events[e].tasksAsArray().slice():[]:this.events[e]&&this.onceEvents[e]?b(b([],this.events[e].tasksAsArray(),!0),typeof this.onceEvents[e]=="function"?[this.onceEvents[e]]:this.onceEvents[e],!0):this.events[e]?this.events[e].tasksAsArray():this.onceEvents[e]?typeof this.onceEvents[e]=="function"?[this.onceEvents[e]]:this.onceEvents[e]:[]}function Fe(){var e=this;if(this.emit===E){var t=Object.keys(this.events);return b(b([],t,!0),Array.from(this._symbolKeys),!0).filter(function(i){return i in e.events&&e.events[i]&&e.events[i].length})}else{var t=Object.keys(this.events).filter(function(r){return e.events[r]&&e.events[r].length}),n=Object.keys(this.onceEvents).filter(function(r){return e.onceEvents[r]&&e.onceEvents[r].length});return b(b(b([],t,!0),n,!0),Array.from(this._symbolKeys).filter(function(r){return r in e.events&&e.events[r]&&e.events[r].length||r in e.onceEvents&&e.onceEvents[r]&&e.onceEvents[r].length}),!0)}}function je(e){return this.emit===E?this.events[e]&&this.events[e].length||0:(this.events[e]&&this.events[e].length||0)+(this.onceEvents[e]&&this.onceEvents[e].length||0)}l.prototype.emit=E;l.prototype.on=I;l.prototype.once=Ce;l.prototype.addListener=I;l.prototype.removeListener=X;l.prototype.addListenerBound=Ae;l.prototype.removeListenerBound=Ee;l.prototype.hasListeners=Oe;l.prototype.prependListener=ke;l.prototype.prependOnceListener=Be;l.prototype.off=X;l.prototype.removeAllListeners=Pe;l.prototype.setMaxListeners=we;l.prototype.getMaxListeners=Le;l.prototype.listeners=De;l.prototype.eventNames=Fe;l.prototype.listenerCount=je});var G=d(v=>{"use strict";var Me=v&&v.__createBinding||(Object.create?(function(e,t,n,i){i===void 0&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);(!r||("get"in r?!t.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}):(function(e,t,n,i){i===void 0&&(i=n),e[i]=t[n]})),z=v&&v.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&Me(t,e,n)};Object.defineProperty(v,"__esModule",{value:!0});z(K(),v);z(W(),v)});var J=d(a=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0});a.badRequest=qe;a.c413=a.c411=a.c405=a.c404=a.c400=void 0;a.checkContentLength=He;a.notFoundConstructor=Ue;a.seeOtherMethods=Re;a.tooLargeBody=Te;var h=j(),Ne=(0,h.toAB)("Method is not allowed"),Se=(0,h.toAB)("Allow"),xe=(0,h.toAB)("content-length"),Ke=(0,h.toAB)("Content-Length is required to be > 0 and to be an integer");function He(e,t){var n=t.getHeader(xe),i;if(!n||!Number.isInteger(i=Number(n)))throw e.finished=!0,e.cork(()=>e.writeStatus(Ye).end(Ke)),new Error("Wrong content-length",{cause:{CL:n}});return i}function qe(e,t,n){throw e.finished=!0,e.aborted||e.cork(()=>e.writeStatus(Ve).end((0,h.toAB)(t))),new Error("Bad request",{cause:n})}function Te(e,t){var n=(0,h.toAB)("Body is too large. Limit in bytes - "+t);e.aborted||e.cork(()=>e.writeStatus(Ie).end(n)),e.finished=!0}function Re(e){if(new Set(e).size!=e.length)throw new Error("the methods repeat");var t=[];e:for(var n of e)switch(n){case"ws":continue e;case"del":t.push("DELETE");break;default:t.push(n.toUpperCase())}var i=(0,h.toAB)(t.join(", "));return r=>r.writeStatus(Xe).writeHeader(Se,i).end(Ne)}function Ue(e="Not found"){var t=(0,h.toAB)(e);return n=>n.writeStatus(We).end(t,!0)}var Ye=a.c411=(0,h.toAB)("411"),Ve=a.c400=(0,h.toAB)("400"),Ie=a.c413=(0,h.toAB)("413"),Xe=a.c405=(0,h.toAB)("405"),We=a.c404=(0,h.toAB)("404")});var Z=d(m=>{"use strict";Object.defineProperty(m,"__esModule",{value:!0});m.HeadersMap=m.CSPDirs=void 0;m.setCSP=Ge;var Q=j(),ze={"X-Content-Type-Options":"nosniff","X-DNS-Prefetch-Control":"off","X-Frame-Options":"DENY","Referrer-Policy":"same-origin","X-Permitted-Cross-Domain-Policies":"none","X-Download-Options":"noopen","Cross-Origin-Resource-Policy":"same-origin","Cross-Origin-Opener-Policy":"same-origin","Cross-Origin-Embedder-Policy":"require-corp","Origin-Agent-Cluster":"?1"},M=class e extends Map{currentHeaders;constructor(t){super(),this.currentHeaders=t}remove(...t){for(let n of t)delete this.currentHeaders[n];return this}prepare(){for(let t in this.currentHeaders)this.set((0,Q.toAB)(t),(0,Q.toAB)(this.currentHeaders[t]));return delete this.currentHeaders,t=>{for(var n of this)t.writeHeader(n[0],n[1]);return t}}toRes(t){var n;for(n in this.currentHeaders)t.writeHeader(n,this.currentHeaders[n]);return t}static baseObj=ze;static default(t){var n;for(n in e.baseObj)t.writeHeader(n,e.baseObj[n]);return t}};m.HeadersMap=M;function Ge(e,...t){var n="";for(let r of t)delete e[r];var i;for(i in e)n+=i+" "+e[i].join(" ")+"; ";return n}var ut=m.CSPDirs={"default-src":["'self'"],"base-uri":["'self'"],"font-src":["'self'"],"form-action":["'self'"],"frame-ancestors":["'none'"],"img-src":["'self'"],"connect-src":["'self'"],"object-src":["'none'"],"script-src":["'self'"],"script-src-attr":["'none'"],"script-src-elem":["'self'"],"style-src":["'self'"],"style-src-attr":["'none'"],"style-src-elem":["'self'"],"trusted-types":["'none'"],"worker-src":["'self'"],"media-src":["'self'"]}});var j=d(u=>{Object.defineProperty(u,"__esModule",{value:!0});var ee={registerAbort:!0,closure:!0,extendApp:!0,toAB:!0,DeclarativeResponse:!0};u.closure=u.DeclarativeResponse=void 0;u.extendApp=$e;u.registerAbort=Qe;u.toAB=et;var te=require("uWebSockets.js"),$=require("node:buffer"),Je=G(),N=J();Object.keys(N).forEach(function(e){e==="default"||e==="__esModule"||Object.prototype.hasOwnProperty.call(ee,e)||e in u&&u[e]===N[e]||Object.defineProperty(u,e,{enumerable:!0,get:function(){return N[e]}})});var S=Z();Object.keys(S).forEach(function(e){e==="default"||e==="__esModule"||Object.prototype.hasOwnProperty.call(ee,e)||e in u&&u[e]===S[e]||Object.defineProperty(u,e,{enumerable:!0,get:function(){return S[e]}})});te.DeclarativeResponse.prototype.writeHeaders=function(e){for(let t in e)this.writeHeader(t,e[t]);return this};function Qe(e){if(typeof e.aborted=="boolean")throw new Error("abort already registered");return e.aborted=!1,e.emitter=new Je.EventEmitter,e.onAborted(()=>{e.aborted=!0,e.emitter.emit("abort")})}var Ze=e=>e();u.closure=Ze;function $e(e,...t){e.register=function(n){return n(this),this},e.onError=function(n){return this._errHandler=n,this},e._startPromises=[],e.awaitLater=function(){this._startPromises.push(...arguments)},e.ready=function(){return Promise.all(this._startPromises).then(()=>this._startPromises=[])},e.route=function(n,i){if(i)for(let r of i)r(n,this);return this[n.method](n.path,n.controller)};for(let n of t)Object.assign(e,n);return e}function et(e){var t=e instanceof $.Buffer?e:$.Buffer.from(e);return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}var ht=u.DeclarativeResponse=te.DeclarativeResponse});module.exports=j();
package/tmp/esm.mjs ADDED
@@ -0,0 +1,75 @@
1
+ var z=Object.create;var D=Object.defineProperty;var G=Object.getOwnPropertyDescriptor;var J=Object.getOwnPropertyNames;var Q=Object.getPrototypeOf,Z=Object.prototype.hasOwnProperty;var h=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var $=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of J(t))!Z.call(e,s)&&s!==n&&D(e,s,{get:()=>t[s],enumerable:!(i=G(t,s))||i.enumerable});return e};var ee=(e,t,n)=>(n=e!=null?z(Q(e)):{},$(t||!e||!e.__esModule?D(n,"default",{value:e,enumerable:!0}):n,e));var B=h(F=>{"use strict";Object.defineProperty(F,"__esModule",{value:!0})});var L=h(A=>{"use strict";Object.defineProperty(A,"__esModule",{value:!0});A._fast_remove_single=void 0;function te(e,t){t!==-1&&(t===0?e.shift():t===e.length-1?e.length=e.length-1:e.splice(t,1))}A._fast_remove_single=te});var x=h((exports,module)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.bakeCollectionVariadic=exports.bakeCollectionAwait=exports.bakeCollection=exports.BAKED_EMPTY_FUNC=void 0;exports.BAKED_EMPTY_FUNC=(function(){});var FORLOOP_FALLBACK=1500;function generateArgsDefCode(e){var t="";if(e===0)return t;for(var n=0;n<e-1;++n)t+="arg"+String(n)+", ";return t+="arg"+String(e-1),t}function generateBodyPartsCode(e,t){for(var n="",i="",s=0;s<t;++s)n+="var f".concat(s," = collection[").concat(s,`];
2
+ `),i+="f".concat(s,"(").concat(e,`)
3
+ `);return{funcDefCode:n,funcCallCode:i}}function generateBodyPartsVariadicCode(e){for(var t="",n="",i=0;i<e;++i)t+="var f".concat(i," = collection[").concat(i,`];
4
+ `),n+="f".concat(i,`.apply(undefined, arguments)
5
+ `);return{funcDefCode:t,funcCallCode:n}}function bakeCollection(collection,fixedArgsNum){if(collection.length===0)return exports.BAKED_EMPTY_FUNC;if(collection.length===1)return collection[0];var funcFactoryCode;if(collection.length<FORLOOP_FALLBACK){var argsDefCode=generateArgsDefCode(fixedArgsNum),_a=generateBodyPartsCode(argsDefCode,collection.length),funcDefCode=_a.funcDefCode,funcCallCode=_a.funcCallCode;funcFactoryCode=`(function(collection) {
6
+ `.concat(funcDefCode,`
7
+ collection = undefined;
8
+ return (function(`).concat(argsDefCode,`) {
9
+ `).concat(funcCallCode,`
10
+ });
11
+ })`)}else{var argsDefCode=generateArgsDefCode(fixedArgsNum);collection.length%10===0?funcFactoryCode=`(function(collection) {
12
+ return (function(`.concat(argsDefCode,`) {
13
+ for (var i = 0; i < collection.length; i += 10) {
14
+ collection[i](`).concat(argsDefCode,`);
15
+ collection[i+1](`).concat(argsDefCode,`);
16
+ collection[i+2](`).concat(argsDefCode,`);
17
+ collection[i+3](`).concat(argsDefCode,`);
18
+ collection[i+4](`).concat(argsDefCode,`);
19
+ collection[i+5](`).concat(argsDefCode,`);
20
+ collection[i+6](`).concat(argsDefCode,`);
21
+ collection[i+7](`).concat(argsDefCode,`);
22
+ collection[i+8](`).concat(argsDefCode,`);
23
+ collection[i+9](`).concat(argsDefCode,`);
24
+ }
25
+ });
26
+ })`):collection.length%4===0?funcFactoryCode=`(function(collection) {
27
+ return (function(`.concat(argsDefCode,`) {
28
+ for (var i = 0; i < collection.length; i += 4) {
29
+ collection[i](`).concat(argsDefCode,`);
30
+ collection[i+1](`).concat(argsDefCode,`);
31
+ collection[i+2](`).concat(argsDefCode,`);
32
+ collection[i+3](`).concat(argsDefCode,`);
33
+ }
34
+ });
35
+ })`):collection.length%3===0?funcFactoryCode=`(function(collection) {
36
+ return (function(`.concat(argsDefCode,`) {
37
+ for (var i = 0; i < collection.length; i += 3) {
38
+ collection[i](`).concat(argsDefCode,`);
39
+ collection[i+1](`).concat(argsDefCode,`);
40
+ collection[i+2](`).concat(argsDefCode,`);
41
+ }
42
+ });
43
+ })`):funcFactoryCode=`(function(collection) {
44
+ return (function(`.concat(argsDefCode,`) {
45
+ for (var i = 0; i < collection.length; ++i) {
46
+ collection[i](`).concat(argsDefCode,`);
47
+ }
48
+ });
49
+ })`)}{var bakeCollection_1=void 0,fixedArgsNum_1=void 0,bakeCollectionVariadic_1=void 0,bakeCollectionAwait_1=void 0,funcFactory=eval(funcFactoryCode);return funcFactory(collection)}}exports.bakeCollection=bakeCollection;function bakeCollectionAwait(collection,fixedArgsNum){if(collection.length===0)return exports.BAKED_EMPTY_FUNC;if(collection.length===1)return collection[0];var funcFactoryCode;if(collection.length<FORLOOP_FALLBACK){var argsDefCode=generateArgsDefCode(fixedArgsNum),_a=generateBodyPartsCode(argsDefCode,collection.length),funcDefCode=_a.funcDefCode,funcCallCode=_a.funcCallCode;funcFactoryCode=`(function(collection) {
50
+ `.concat(funcDefCode,`
51
+ collection = undefined;
52
+ return (function(`).concat(argsDefCode,`) {
53
+ return Promise.all([ `).concat(funcCallCode,` ]);
54
+ });
55
+ })`)}else{var argsDefCode=generateArgsDefCode(fixedArgsNum);funcFactoryCode=`(function(collection) {
56
+ return (function(`.concat(argsDefCode,`) {
57
+ var promises = Array(collection.length);
58
+ for (var i = 0; i < collection.length; ++i) {
59
+ promises[i] = collection[i](`).concat(argsDefCode,`);
60
+ }
61
+ return Promise.all(promises);
62
+ });
63
+ })`)}{var bakeCollection_2=void 0,fixedArgsNum_2=void 0,bakeCollectionVariadic_2=void 0,bakeCollectionAwait_2=void 0,funcFactory=eval(funcFactoryCode);return funcFactory(collection)}}exports.bakeCollectionAwait=bakeCollectionAwait;function bakeCollectionVariadic(collection){if(collection.length===0)return exports.BAKED_EMPTY_FUNC;if(collection.length===1)return collection[0];var funcFactoryCode;if(collection.length<FORLOOP_FALLBACK){var _a=generateBodyPartsVariadicCode(collection.length),funcDefCode=_a.funcDefCode,funcCallCode=_a.funcCallCode;funcFactoryCode=`(function(collection) {
64
+ `.concat(funcDefCode,`
65
+ collection = undefined;
66
+ return (function() {
67
+ `).concat(funcCallCode,`
68
+ });
69
+ })`)}else funcFactoryCode=`(function(collection) {
70
+ return (function() {
71
+ for (var i = 0; i < collection.length; ++i) {
72
+ collection[i].apply(undefined, arguments);
73
+ }
74
+ });
75
+ })`;{var bakeCollection_3=void 0,fixedArgsNum=void 0,bakeCollectionVariadic_3=void 0,bakeCollectionAwait_3=void 0,funcFactory=eval(funcFactoryCode);return funcFactory(collection)}}exports.bakeCollectionVariadic=bakeCollectionVariadic});var N=h(y=>{"use strict";var j=y&&y.__spreadArray||function(e,t,n){if(n||arguments.length===2)for(var i=0,s=t.length,c;i<s;i++)(c||!(i in t))&&(c||(c=Array.prototype.slice.call(t,0,i)),c[i]=t[i]);return e.concat(c||Array.prototype.slice.call(t))};Object.defineProperty(y,"__esModule",{value:!0});y.TaskCollection=void 0;var M=L(),f=x();function ne(e,t){var n=this.length;if(n>1)if(t){var i;(i=this._tasks).push.apply(i,arguments),this.length+=arguments.length}else this._tasks.push(e),this.length++;else if(t){if(n===1){var s=Array(1+arguments.length);s.push(s),s.push.apply(s,arguments),this._tasks=s}else{var s=Array(arguments.length);s.push.apply(s,arguments),this._tasks=s}this.length+=arguments.length}else n===1?this._tasks=[this._tasks,e]:this._tasks=e,this.length++}function ie(e,t){var n=this.length;if(n>1)if(t){var i;(i=this._tasks).push.apply(i,arguments),this.length+=arguments.length}else this._tasks.push(e),this.length++;else if(t){if(n===1){var s=Array(1+arguments.length);s.push(s),s.push.apply(s,arguments),this._tasks=s}else{var s=Array(arguments.length);s.push.apply(s,arguments),this._tasks=s}this.length+=arguments.length}else n===1?this._tasks=[this._tasks,e]:this._tasks=e,this.length++;this.firstEmitBuildStrategy?this.call=E:this.rebuild()}function se(e){this.length!==0&&(this.length===1?this._tasks===e&&(this.length=0):((0,M._fast_remove_single)(this._tasks,this._tasks.lastIndexOf(e)),this._tasks.length===1?(this._tasks=this._tasks[0],this.length=1):this.length=this._tasks.length))}function re(e){if(this.length!==0){if(this.length===1)if(this._tasks===e&&(this.length=0),this.firstEmitBuildStrategy){this.call=f.BAKED_EMPTY_FUNC;return}else{this.rebuild();return}else(0,M._fast_remove_single)(this._tasks,this._tasks.lastIndexOf(e)),this._tasks.length===1?(this._tasks=this._tasks[0],this.length=1):this.length=this._tasks.length;this.firstEmitBuildStrategy?this.call=E:this.rebuild()}}function oe(e){for(var t,n=[],i=1;i<arguments.length;i++)n[i-1]=arguments[i];this.length===0?(this._tasks=n,this.length=1):this.length===1?(n.unshift(this._tasks),this._tasks=n,this.length=this._tasks.length):((t=this._tasks).splice.apply(t,j([e,0],n,!1)),this.length=this._tasks.length)}function le(e){for(var t,n=[],i=1;i<arguments.length;i++)n[i-1]=arguments[i];this.length===0?(this._tasks=n,this.length=1):this.length===1?(n.unshift(this._tasks),this._tasks=n,this.length=this._tasks.length):((t=this._tasks).splice.apply(t,j([e,0],n,!1)),this.length=this._tasks.length),this.firstEmitBuildStrategy?this.call=E:this.rebuild()}function ce(){this.length===0?this.call=f.BAKED_EMPTY_FUNC:this.length===1?this.call=this._tasks:this.call=(0,f.bakeCollection)(this._tasks,this.argsNum)}function ae(){this.length===0?this.call=f.BAKED_EMPTY_FUNC:this.length===1?this.call=this._tasks:this.call=(0,f.bakeCollectionAwait)(this._tasks,this.argsNum)}function E(){this.rebuild(),this.call.apply(void 0,arguments)}var v=(function(){function e(t,n,i,s){n===void 0&&(n=!0),i===void 0&&(i=null),s===void 0&&(s=!1),this.awaitTasks=s,this.call=f.BAKED_EMPTY_FUNC,this.argsNum=t,this.firstEmitBuildStrategy=!0,s?this.rebuild=ae.bind(this):this.rebuild=ce.bind(this),this.setAutoRebuild(n),i?typeof i=="function"?(this._tasks=i,this.length=1):(this._tasks=i,this.length=i.length):(this._tasks=null,this.length=0),n&&this.rebuild()}return e})();y.TaskCollection=v;function ue(){this._tasks=null,this.length=0,this.call=f.BAKED_EMPTY_FUNC}function fe(){this._tasks=null,this.length=0,this.call=f.BAKED_EMPTY_FUNC}function he(e){this.argsNum<e&&(this.argsNum=e,this.firstEmitBuildStrategy?this.call=E:this.rebuild())}function de(e){e?(this.push=ie.bind(this),this.insert=le.bind(this),this.removeLast=re.bind(this)):(this.push=ne.bind(this),this.insert=oe.bind(this),this.removeLast=se.bind(this))}function ge(){return this.length===0?[]:this.length===1?[this._tasks]:this._tasks}function ve(e){e.length===0?(this.length=0,this.call=f.BAKED_EMPTY_FUNC):e.length===1?(this.length=1,this.call=e[0],this._tasks=e[0]):(this.length=e.length,this._tasks=e,this.firstEmitBuildStrategy?this.call=E:this.rebuild())}v.prototype.fastClear=ue;v.prototype.clear=fe;v.prototype.growArgsNum=he;v.prototype.setAutoRebuild=de;v.prototype.tasksAsArray=ge;v.prototype.setTasks=ve});var S=h(_=>{"use strict";var _e=_&&_.__createBinding||(Object.create?(function(e,t,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(t,n);(!s||("get"in s?!t.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,s)}):(function(e,t,n,i){i===void 0&&(i=n),e[i]=t[n]})),pe=_&&_.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&_e(t,e,n)};Object.defineProperty(_,"__esModule",{value:!0});pe(N(),_)});var K=h(O=>{"use strict";Object.defineProperty(O,"__esModule",{value:!0});O.nullObj=void 0;function ye(){var e={};return e.__proto__=null,e}O.nullObj=ye});var Y=h(m=>{"use strict";var p=m&&m.__spreadArray||function(e,t,n){if(n||arguments.length===2)for(var i=0,s=t.length,c;i<s;i++)(c||!(i in t))&&(c||(c=Array.prototype.slice.call(t,0,i)),c[i]=t[i]);return e.concat(c||Array.prototype.slice.call(t))};Object.defineProperty(m,"__esModule",{value:!0});m.EventEmitter=void 0;var P=S(),me=L(),w=K();function b(e,t,n,i,s,c){var u=this.events[e];if(u){if(u.length===0)return!1;if(u.argsNum<6)u.call(t,n,i,s,c);else{for(var o=new Array(u.argsNum),r=0,g=o.length;r<g;++r)o[r]=arguments[r+1];u.call.apply(void 0,o)}return!0}return!1}function H(e,t,n,i,s,c){var u=this.events[e],o;if(u!==void 0){if(u.length===0)return!1;if(u.argsNum<6)u.call(t,n,i,s,c);else{o=new Array(u.argsNum);for(var r=0,g=o.length;r<g;++r)o[r]=arguments[r+1];u.call.apply(void 0,o)}}var C=this.onceEvents[e];if(C){if(typeof C=="function")if(this.onceEvents[e]=void 0,arguments.length<6)C(t,n,i,s,c);else{if(o===void 0){o=new Array(arguments.length-1);for(var r=0,g=o.length;r<g;++r)o[r]=arguments[r+1]}C.apply(void 0,o)}else{var k=C;if(this.onceEvents[e]=void 0,arguments.length<6)for(var r=0;r<k.length;++r)k[r](t,n,i,s,c);else{if(o===void 0){o=new Array(arguments.length-1);for(var r=0,g=o.length;r<g;++r)o[r]=arguments[r+1]}for(var r=0;r<k.length;++r)k[r].apply(void 0,o)}}return!0}return u!==void 0}var l=(function(){function e(){this.events=(0,w.nullObj)(),this.onceEvents=(0,w.nullObj)(),this._symbolKeys=new Set,this.maxListeners=1/0}return Object.defineProperty(e.prototype,"_eventsCount",{get:function(){return this.eventNames().length},enumerable:!1,configurable:!0}),e})();m.EventEmitter=l;function be(e,t){switch(this.emit===b&&(this.emit=H),typeof this.onceEvents[e]){case"undefined":this.onceEvents[e]=t,typeof e=="symbol"&&this._symbolKeys.add(e);break;case"function":this.onceEvents[e]=[this.onceEvents[e],t];break;case"object":this.onceEvents[e].push(t)}return this}function T(e,t,n){if(n===void 0&&(n=t.length),typeof t!="function")throw new TypeError("The listener must be a function");var i=this.events[e];return i?(i.push(t),i.growArgsNum(n),this.maxListeners!==1/0&&this.maxListeners<=i.length&&console.warn('Maximum event listeners for "'.concat(String(e),'" event!'))):(this.events[e]=new P.TaskCollection(n,!0,t,!1),typeof e=="symbol"&&this._symbolKeys.add(e)),this}function U(e,t){var n=this.events[e];n&&n.removeLast(t);var i=this.onceEvents[e];return i&&(typeof i=="function"?this.onceEvents[e]=void 0:typeof i=="object"&&(i.length===1&&i[0]===t?this.onceEvents[e]=void 0:(0,me._fast_remove_single)(i,i.lastIndexOf(t)))),this}function Ce(e,t,n,i){n===void 0&&(n=this),i===void 0&&(i=t.length),this.boundFuncs||(this.boundFuncs=new Map);var s=t.bind(n);return this.boundFuncs.set(t,s),this.addListener(e,s,i)}function Ee(e,t){var n,i,s=(n=this.boundFuncs)===null||n===void 0?void 0:n.get(t);return(i=this.boundFuncs)===null||i===void 0||i.delete(t),this.removeListener(e,s)}function ke(e){return this.events[e]&&!!this.events[e].length}function Ae(e,t,n){if(n===void 0&&(n=t.length),typeof t!="function")throw new TypeError("The listener must be a function");var i=this.events[e];return!i||!(i instanceof P.TaskCollection)?(i=this.events[e]=new P.TaskCollection(n,!0,t,!1),typeof e=="symbol"&&this._symbolKeys.add(e)):(i.insert(0,t),i.growArgsNum(n),this.maxListeners!==1/0&&this.maxListeners<=i.length&&console.warn('Maximum event listeners for "'.concat(String(e),'" event!'))),this}function Oe(e,t){this.emit===b&&(this.emit=H);var n=this.onceEvents[e];return n?typeof n!="object"?(this.onceEvents[e]=[t,n],typeof e=="symbol"&&this._symbolKeys.add(e)):(n.unshift(t),this.maxListeners!==1/0&&this.maxListeners<=n.length&&console.warn('Maximum event listeners for "'.concat(String(e),'" once event!'))):(this.onceEvents[e]=[t],typeof e=="symbol"&&this._symbolKeys.add(e)),this}function we(e){return e===void 0?(this.events=(0,w.nullObj)(),this.onceEvents=(0,w.nullObj)(),this._symbolKeys=new Set):(this.events[e]=void 0,this.onceEvents[e]=void 0,typeof e=="symbol"&&this._symbolKeys.delete(e)),this}function Le(e){return this.maxListeners=e,this}function Pe(){return this.maxListeners}function De(e){return this.emit===b?this.events[e]?this.events[e].tasksAsArray().slice():[]:this.events[e]&&this.onceEvents[e]?p(p([],this.events[e].tasksAsArray(),!0),typeof this.onceEvents[e]=="function"?[this.onceEvents[e]]:this.onceEvents[e],!0):this.events[e]?this.events[e].tasksAsArray():this.onceEvents[e]?typeof this.onceEvents[e]=="function"?[this.onceEvents[e]]:this.onceEvents[e]:[]}function Fe(){var e=this;if(this.emit===b){var t=Object.keys(this.events);return p(p([],t,!0),Array.from(this._symbolKeys),!0).filter(function(i){return i in e.events&&e.events[i]&&e.events[i].length})}else{var t=Object.keys(this.events).filter(function(s){return e.events[s]&&e.events[s].length}),n=Object.keys(this.onceEvents).filter(function(s){return e.onceEvents[s]&&e.onceEvents[s].length});return p(p(p([],t,!0),n,!0),Array.from(this._symbolKeys).filter(function(s){return s in e.events&&e.events[s]&&e.events[s].length||s in e.onceEvents&&e.onceEvents[s]&&e.onceEvents[s].length}),!0)}}function Be(e){return this.emit===b?this.events[e]&&this.events[e].length||0:(this.events[e]&&this.events[e].length||0)+(this.onceEvents[e]&&this.onceEvents[e].length||0)}l.prototype.emit=b;l.prototype.on=T;l.prototype.once=be;l.prototype.addListener=T;l.prototype.removeListener=U;l.prototype.addListenerBound=Ce;l.prototype.removeListenerBound=Ee;l.prototype.hasListeners=ke;l.prototype.prependListener=Ae;l.prototype.prependOnceListener=Oe;l.prototype.off=U;l.prototype.removeAllListeners=we;l.prototype.setMaxListeners=Le;l.prototype.getMaxListeners=Pe;l.prototype.listeners=De;l.prototype.eventNames=Fe;l.prototype.listenerCount=Be});var R=h(d=>{"use strict";var xe=d&&d.__createBinding||(Object.create?(function(e,t,n,i){i===void 0&&(i=n);var s=Object.getOwnPropertyDescriptor(t,n);(!s||("get"in s?!t.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,s)}):(function(e,t,n,i){i===void 0&&(i=n),e[i]=t[n]})),q=d&&d.__exportStar||function(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&xe(t,e,n)};Object.defineProperty(d,"__esModule",{value:!0});q(B(),d);q(Y(),d)});var W=ee(R(),1);import X from"uWebSockets.js";import{Buffer as I}from"node:buffer";var je=a("Method is not allowed"),Me=a("Allow"),Ne=a("content-length"),Se=a("Content-Length is required to be > 0 and to be an integer");function Ze(e,t){var n=t.getHeader(Ne),i;if(!n||!Number.isInteger(i=Number(n)))throw e.finished=!0,e.cork(()=>e.writeStatus(Ke).end(Se)),new Error("Wrong content-length",{cause:{CL:n}});return i}function $e(e,t,n){throw e.finished=!0,e.aborted||e.cork(()=>e.writeStatus(He).end(a(t))),new Error("Bad request",{cause:n})}function et(e,t){var n=a("Body is too large. Limit in bytes - "+t);e.aborted||e.cork(()=>e.writeStatus(Te).end(n)),e.finished=!0}function tt(e){if(new Set(e).size!=e.length)throw new Error("the methods repeat");var t=[];e:for(var n of e)switch(n){case"ws":continue e;case"del":t.push("DELETE");break;default:t.push(n.toUpperCase())}var i=a(t.join(", "));return s=>s.writeStatus(Ue).writeHeader(Me,i).end(je)}function nt(e="Not found"){var t=a(e);return n=>n.writeStatus(Ye).end(t,!0)}var Ke=a("411"),He=a("400"),Te=a("413"),Ue=a("405"),Ye=a("404");var qe={"X-Content-Type-Options":"nosniff","X-DNS-Prefetch-Control":"off","X-Frame-Options":"DENY","Referrer-Policy":"same-origin","X-Permitted-Cross-Domain-Policies":"none","X-Download-Options":"noopen","Cross-Origin-Resource-Policy":"same-origin","Cross-Origin-Opener-Policy":"same-origin","Cross-Origin-Embedder-Policy":"require-corp","Origin-Agent-Cluster":"?1"},V=class e extends Map{currentHeaders;constructor(t){super(),this.currentHeaders=t}remove(...t){for(let n of t)delete this.currentHeaders[n];return this}prepare(){for(let t in this.currentHeaders)this.set(a(t),a(this.currentHeaders[t]));return delete this.currentHeaders,t=>{for(var n of this)t.writeHeader(n[0],n[1]);return t}}toRes(t){var n;for(n in this.currentHeaders)t.writeHeader(n,this.currentHeaders[n]);return t}static baseObj=qe;static default(t){var n;for(n in e.baseObj)t.writeHeader(n,e.baseObj[n]);return t}};function rt(e,...t){var n="";for(let s of t)delete e[s];var i;for(i in e)n+=i+" "+e[i].join(" ")+"; ";return n}var ot={"default-src":["'self'"],"base-uri":["'self'"],"font-src":["'self'"],"form-action":["'self'"],"frame-ancestors":["'none'"],"img-src":["'self'"],"connect-src":["'self'"],"object-src":["'none'"],"script-src":["'self'"],"script-src-attr":["'none'"],"script-src-elem":["'self'"],"style-src":["'self'"],"style-src-attr":["'none'"],"style-src-elem":["'self'"],"trusted-types":["'none'"],"worker-src":["'self'"],"media-src":["'self'"]};X.DeclarativeResponse.prototype.writeHeaders=function(e){for(let t in e)this.writeHeader(t,e[t]);return this};function ut(e){if(typeof e.aborted=="boolean")throw new Error("abort already registered");return e.aborted=!1,e.emitter=new W.EventEmitter,e.onAborted(()=>{e.aborted=!0,e.emitter.emit("abort")})}var ft=e=>e();function ht(e,...t){e.register=function(n){return n(this),this},e.onError=function(n){return this._errHandler=n,this},e._startPromises=[],e.awaitLater=function(){this._startPromises.push(...arguments)},e.ready=function(){return Promise.all(this._startPromises).then(()=>this._startPromises=[])},e.route=function(n,i){if(i)for(let s of i)s(n,this);return this[n.method](n.path,n.controller)};for(let n of t)Object.assign(e,n);return e}function a(e){var t=e instanceof I?e:I.from(e);return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}var dt=X.DeclarativeResponse;export{ot as CSPDirs,dt as DeclarativeResponse,V as HeadersMap,$e as badRequest,He as c400,Ye as c404,Ue as c405,Ke as c411,Te as c413,Ze as checkContentLength,ft as closure,ht as extendApp,nt as notFoundConstructor,ut as registerAbort,tt as seeOtherMethods,rt as setCSP,a as toAB,et as tooLargeBody};
@@ -0,0 +1,9 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "target": "es2022",
5
+ "module": "es2022",
6
+ "outDir": "dist/esm"
7
+ },
8
+ "include": ["src"]
9
+ }
package/tsconfig.json CHANGED
@@ -1,26 +1,9 @@
1
1
  {
2
2
  "compilerOptions": {
3
- // Enable latest features
4
- "lib": ["ESNext"],
5
- "target": "ESNext",
6
- "module": "esnext",
7
- "moduleDetection": "force",
8
- "allowJs": true,
9
-
10
- // Bundler mode
3
+ "module": "es2022",
4
+ "target": "es2022",
11
5
  "moduleResolution": "bundler",
12
- "allowImportingTsExtensions": true,
13
6
  "verbatimModuleSyntax": true,
14
- "noEmit": true,
15
- "skipLibCheck": false,
16
- "noLib": false,
17
- // Best practices
18
- "strict": true,
19
- "alwaysStrict": true,
20
- "noFallthroughCasesInSwitch": true,
21
- "removeComments": true,
22
-
23
- // Some stricter flags (disabled by default)
24
7
  "noUnusedLocals": true,
25
8
  "allowUnusedLabels": false,
26
9
  "strictBuiltinIteratorReturn": true,
@@ -36,6 +19,12 @@
36
19
  "strictFunctionTypes": true,
37
20
  "allowUnreachableCode": false,
38
21
  "noImplicitOverride": true,
39
- "noPropertyAccessFromIndexSignature": false
22
+ "noPropertyAccessFromIndexSignature": false,
23
+ "strict": true,
24
+ "alwaysStrict": true,
25
+ "sourceMap": false
40
26
  }
41
27
  }
28
+
29
+
30
+