@dooboostore/simple-boot-http-server 1.0.26 → 1.0.27
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/README.md +100 -14
- package/dist/cjs/SimpleBootHttpServer.js +20 -16
- package/dist/cjs/SimpleBootHttpServer.js.map +2 -2
- package/dist/cjs/codes/Mimes.js +2 -0
- package/dist/cjs/codes/Mimes.js.map +2 -2
- package/dist/cjs/decorators/MethodMapping.js +2 -2
- package/dist/cjs/decorators/MethodMapping.js.map +2 -2
- package/dist/cjs/filters/ResourceFilter.js +0 -1
- package/dist/cjs/filters/ResourceFilter.js.map +2 -2
- package/dist/cjs/websocket/WebSocketManager.js +68 -40
- package/dist/cjs/websocket/WebSocketManager.js.map +2 -2
- package/dist/esm/SimpleBootHttpServer.js +20 -16
- package/dist/esm/SimpleBootHttpServer.js.map +2 -2
- package/dist/esm/codes/Mimes.js +2 -0
- package/dist/esm/codes/Mimes.js.map +2 -2
- package/dist/esm/decorators/MethodMapping.js +2 -2
- package/dist/esm/decorators/MethodMapping.js.map +2 -2
- package/dist/esm/filters/ResourceFilter.js +0 -1
- package/dist/esm/filters/ResourceFilter.js.map +2 -2
- package/dist/esm/websocket/WebSocketManager.js +68 -40
- package/dist/esm/websocket/WebSocketManager.js.map +2 -2
- package/dist/esm-bundle/dooboostore-simple-boot-http-server.esm.js +279 -137
- package/dist/esm-bundle/dooboostore-simple-boot-http-server.esm.js.map +4 -4
- package/dist/types/SimpleBootHttpServer.d.ts.map +1 -1
- package/dist/types/codes/Mimes.d.ts +2 -0
- package/dist/types/codes/Mimes.d.ts.map +1 -1
- package/dist/types/decorators/MethodMapping.d.ts +8 -0
- package/dist/types/decorators/MethodMapping.d.ts.map +1 -1
- package/dist/types/filters/ResourceFilter.d.ts.map +1 -1
- package/dist/types/websocket/WebSocketManager.d.ts +3 -1
- package/dist/types/websocket/WebSocketManager.d.ts.map +1 -1
- package/dist/umd-bundle/dooboostore-simple-boot-http-server.umd.js +279 -137
- package/dist/umd-bundle/dooboostore-simple-boot-http-server.umd.js.map +4 -4
- package/dist/umd-bundle/websocket-client.umd.js +209 -9
- package/dist/umd-bundle/websocket-client.umd.js.map +4 -4
- package/package.json +8 -8
- package/src/SimpleBootHttpServer.ts +21 -16
- package/src/codes/Mimes.ts +2 -0
- package/src/decorators/MethodMapping.ts +14 -7
- package/src/filters/ResourceFilter.ts +0 -1
- package/src/websocket/WebSocketManager.ts +69 -41
|
@@ -34,9 +34,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
34
34
|
mod
|
|
35
35
|
));
|
|
36
36
|
|
|
37
|
-
//
|
|
37
|
+
// ../../../node_modules/.pnpm/reflect-metadata@0.2.2/node_modules/reflect-metadata/Reflect.js
|
|
38
38
|
var require_Reflect = __commonJS({
|
|
39
|
-
"
|
|
39
|
+
"../../../node_modules/.pnpm/reflect-metadata@0.2.2/node_modules/reflect-metadata/Reflect.js"() {
|
|
40
40
|
var Reflect2;
|
|
41
41
|
(function(Reflect3) {
|
|
42
42
|
(function(factory) {
|
|
@@ -1119,9 +1119,9 @@ var require_Reflect = __commonJS({
|
|
|
1119
1119
|
}
|
|
1120
1120
|
});
|
|
1121
1121
|
|
|
1122
|
-
//
|
|
1122
|
+
// ../../../node_modules/.pnpm/mime-db@1.52.0/node_modules/mime-db/db.json
|
|
1123
1123
|
var require_db = __commonJS({
|
|
1124
|
-
"
|
|
1124
|
+
"../../../node_modules/.pnpm/mime-db@1.52.0/node_modules/mime-db/db.json"(exports, module) {
|
|
1125
1125
|
module.exports = {
|
|
1126
1126
|
"application/1d-interleaved-parityfec": {
|
|
1127
1127
|
source: "iana"
|
|
@@ -9644,16 +9644,16 @@ var require_db = __commonJS({
|
|
|
9644
9644
|
}
|
|
9645
9645
|
});
|
|
9646
9646
|
|
|
9647
|
-
//
|
|
9647
|
+
// ../../../node_modules/.pnpm/mime-db@1.52.0/node_modules/mime-db/index.js
|
|
9648
9648
|
var require_mime_db = __commonJS({
|
|
9649
|
-
"
|
|
9649
|
+
"../../../node_modules/.pnpm/mime-db@1.52.0/node_modules/mime-db/index.js"(exports, module) {
|
|
9650
9650
|
module.exports = require_db();
|
|
9651
9651
|
}
|
|
9652
9652
|
});
|
|
9653
9653
|
|
|
9654
|
-
//
|
|
9654
|
+
// ../../../node_modules/.pnpm/mime-types@2.1.35/node_modules/mime-types/index.js
|
|
9655
9655
|
var require_mime_types = __commonJS({
|
|
9656
|
-
"
|
|
9656
|
+
"../../../node_modules/.pnpm/mime-types@2.1.35/node_modules/mime-types/index.js"(exports) {
|
|
9657
9657
|
"use strict";
|
|
9658
9658
|
var db = require_mime_db();
|
|
9659
9659
|
var extname2 = __require("path").extname;
|
|
@@ -9741,9 +9741,9 @@ var require_mime_types = __commonJS({
|
|
|
9741
9741
|
}
|
|
9742
9742
|
});
|
|
9743
9743
|
|
|
9744
|
-
//
|
|
9744
|
+
// ../../../node_modules/.pnpm/node-gzip@1.1.2/node_modules/node-gzip/dist/index.js
|
|
9745
9745
|
var require_dist = __commonJS({
|
|
9746
|
-
"
|
|
9746
|
+
"../../../node_modules/.pnpm/node-gzip@1.1.2/node_modules/node-gzip/dist/index.js"(exports, module) {
|
|
9747
9747
|
"use strict";
|
|
9748
9748
|
var zlib = __require("zlib");
|
|
9749
9749
|
module.exports = {
|
|
@@ -9769,9 +9769,9 @@ var require_dist = __commonJS({
|
|
|
9769
9769
|
}
|
|
9770
9770
|
});
|
|
9771
9771
|
|
|
9772
|
-
//
|
|
9772
|
+
// ../../../node_modules/.pnpm/fast-json-patch@3.1.1/node_modules/fast-json-patch/commonjs/helpers.js
|
|
9773
9773
|
var require_helpers = __commonJS({
|
|
9774
|
-
"
|
|
9774
|
+
"../../../node_modules/.pnpm/fast-json-patch@3.1.1/node_modules/fast-json-patch/commonjs/helpers.js"(exports) {
|
|
9775
9775
|
var __extends = exports && exports.__extends || /* @__PURE__ */ function() {
|
|
9776
9776
|
var extendStatics = function(d, b) {
|
|
9777
9777
|
extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
|
|
@@ -9937,9 +9937,9 @@ var require_helpers = __commonJS({
|
|
|
9937
9937
|
}
|
|
9938
9938
|
});
|
|
9939
9939
|
|
|
9940
|
-
//
|
|
9940
|
+
// ../../../node_modules/.pnpm/fast-json-patch@3.1.1/node_modules/fast-json-patch/commonjs/core.js
|
|
9941
9941
|
var require_core = __commonJS({
|
|
9942
|
-
"
|
|
9942
|
+
"../../../node_modules/.pnpm/fast-json-patch@3.1.1/node_modules/fast-json-patch/commonjs/core.js"(exports) {
|
|
9943
9943
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9944
9944
|
var helpers_js_1 = require_helpers();
|
|
9945
9945
|
exports.JsonPatchError = helpers_js_1.PatchError;
|
|
@@ -10270,9 +10270,9 @@ var require_core = __commonJS({
|
|
|
10270
10270
|
}
|
|
10271
10271
|
});
|
|
10272
10272
|
|
|
10273
|
-
//
|
|
10273
|
+
// ../../../node_modules/.pnpm/fast-json-patch@3.1.1/node_modules/fast-json-patch/commonjs/duplex.js
|
|
10274
10274
|
var require_duplex = __commonJS({
|
|
10275
|
-
"
|
|
10275
|
+
"../../../node_modules/.pnpm/fast-json-patch@3.1.1/node_modules/fast-json-patch/commonjs/duplex.js"(exports) {
|
|
10276
10276
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10277
10277
|
var helpers_js_1 = require_helpers();
|
|
10278
10278
|
var core_js_1 = require_core();
|
|
@@ -10444,9 +10444,9 @@ var require_duplex = __commonJS({
|
|
|
10444
10444
|
}
|
|
10445
10445
|
});
|
|
10446
10446
|
|
|
10447
|
-
//
|
|
10447
|
+
// ../../../node_modules/.pnpm/fast-json-patch@3.1.1/node_modules/fast-json-patch/index.js
|
|
10448
10448
|
var require_fast_json_patch = __commonJS({
|
|
10449
|
-
"
|
|
10449
|
+
"../../../node_modules/.pnpm/fast-json-patch@3.1.1/node_modules/fast-json-patch/index.js"(exports) {
|
|
10450
10450
|
var core = require_core();
|
|
10451
10451
|
Object.assign(exports, core);
|
|
10452
10452
|
var duplex = require_duplex();
|
|
@@ -10459,9 +10459,9 @@ var require_fast_json_patch = __commonJS({
|
|
|
10459
10459
|
}
|
|
10460
10460
|
});
|
|
10461
10461
|
|
|
10462
|
-
//
|
|
10462
|
+
// ../../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/constants.js
|
|
10463
10463
|
var require_constants = __commonJS({
|
|
10464
|
-
"
|
|
10464
|
+
"../../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/constants.js"(exports, module) {
|
|
10465
10465
|
"use strict";
|
|
10466
10466
|
var BINARY_TYPES = ["nodebuffer", "arraybuffer", "fragments"];
|
|
10467
10467
|
var hasBlob = typeof Blob !== "undefined";
|
|
@@ -10482,9 +10482,9 @@ var require_constants = __commonJS({
|
|
|
10482
10482
|
}
|
|
10483
10483
|
});
|
|
10484
10484
|
|
|
10485
|
-
//
|
|
10485
|
+
// ../../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/buffer-util.js
|
|
10486
10486
|
var require_buffer_util = __commonJS({
|
|
10487
|
-
"
|
|
10487
|
+
"../../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/buffer-util.js"(exports, module) {
|
|
10488
10488
|
"use strict";
|
|
10489
10489
|
var { EMPTY_BUFFER } = require_constants();
|
|
10490
10490
|
var FastBuffer = Buffer[Symbol.species];
|
|
@@ -10557,9 +10557,9 @@ var require_buffer_util = __commonJS({
|
|
|
10557
10557
|
}
|
|
10558
10558
|
});
|
|
10559
10559
|
|
|
10560
|
-
//
|
|
10560
|
+
// ../../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/limiter.js
|
|
10561
10561
|
var require_limiter = __commonJS({
|
|
10562
|
-
"
|
|
10562
|
+
"../../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/limiter.js"(exports, module) {
|
|
10563
10563
|
"use strict";
|
|
10564
10564
|
var kDone = Symbol("kDone");
|
|
10565
10565
|
var kRun = Symbol("kRun");
|
|
@@ -10607,9 +10607,9 @@ var require_limiter = __commonJS({
|
|
|
10607
10607
|
}
|
|
10608
10608
|
});
|
|
10609
10609
|
|
|
10610
|
-
//
|
|
10610
|
+
// ../../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/permessage-deflate.js
|
|
10611
10611
|
var require_permessage_deflate = __commonJS({
|
|
10612
|
-
"
|
|
10612
|
+
"../../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/permessage-deflate.js"(exports, module) {
|
|
10613
10613
|
"use strict";
|
|
10614
10614
|
var zlib = __require("zlib");
|
|
10615
10615
|
var bufferUtil = require_buffer_util();
|
|
@@ -10990,9 +10990,9 @@ var require_permessage_deflate = __commonJS({
|
|
|
10990
10990
|
}
|
|
10991
10991
|
});
|
|
10992
10992
|
|
|
10993
|
-
//
|
|
10993
|
+
// ../../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/validation.js
|
|
10994
10994
|
var require_validation = __commonJS({
|
|
10995
|
-
"
|
|
10995
|
+
"../../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/validation.js"(exports, module) {
|
|
10996
10996
|
"use strict";
|
|
10997
10997
|
var { isUtf8 } = __require("buffer");
|
|
10998
10998
|
var { hasBlob } = require_constants();
|
|
@@ -11191,9 +11191,9 @@ var require_validation = __commonJS({
|
|
|
11191
11191
|
}
|
|
11192
11192
|
});
|
|
11193
11193
|
|
|
11194
|
-
//
|
|
11194
|
+
// ../../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/receiver.js
|
|
11195
11195
|
var require_receiver = __commonJS({
|
|
11196
|
-
"
|
|
11196
|
+
"../../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/receiver.js"(exports, module) {
|
|
11197
11197
|
"use strict";
|
|
11198
11198
|
var { Writable } = __require("stream");
|
|
11199
11199
|
var PerMessageDeflate2 = require_permessage_deflate();
|
|
@@ -11226,10 +11226,6 @@ var require_receiver = __commonJS({
|
|
|
11226
11226
|
* extensions
|
|
11227
11227
|
* @param {Boolean} [options.isServer=false] Specifies whether to operate in
|
|
11228
11228
|
* client or server mode
|
|
11229
|
-
* @param {Number} [options.maxBufferedChunks=0] The maximum number of
|
|
11230
|
-
* buffered data chunks
|
|
11231
|
-
* @param {Number} [options.maxFragments=0] The maximum number of message
|
|
11232
|
-
* fragments
|
|
11233
11229
|
* @param {Number} [options.maxPayload=0] The maximum allowed message length
|
|
11234
11230
|
* @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or
|
|
11235
11231
|
* not to skip UTF-8 validation for text and close messages
|
|
@@ -11240,8 +11236,6 @@ var require_receiver = __commonJS({
|
|
|
11240
11236
|
this._binaryType = options.binaryType || BINARY_TYPES[0];
|
|
11241
11237
|
this._extensions = options.extensions || {};
|
|
11242
11238
|
this._isServer = !!options.isServer;
|
|
11243
|
-
this._maxBufferedChunks = options.maxBufferedChunks | 0;
|
|
11244
|
-
this._maxFragments = options.maxFragments | 0;
|
|
11245
11239
|
this._maxPayload = options.maxPayload | 0;
|
|
11246
11240
|
this._skipUTF8Validation = !!options.skipUTF8Validation;
|
|
11247
11241
|
this[kWebSocket] = void 0;
|
|
@@ -11271,18 +11265,6 @@ var require_receiver = __commonJS({
|
|
|
11271
11265
|
*/
|
|
11272
11266
|
_write(chunk, encoding, cb) {
|
|
11273
11267
|
if (this._opcode === 8 && this._state == GET_INFO) return cb();
|
|
11274
|
-
if (this._maxBufferedChunks > 0 && this._buffers.length >= this._maxBufferedChunks) {
|
|
11275
|
-
cb(
|
|
11276
|
-
this.createError(
|
|
11277
|
-
RangeError,
|
|
11278
|
-
"Too many buffered chunks",
|
|
11279
|
-
false,
|
|
11280
|
-
1008,
|
|
11281
|
-
"WS_ERR_TOO_MANY_BUFFERED_PARTS"
|
|
11282
|
-
)
|
|
11283
|
-
);
|
|
11284
|
-
return;
|
|
11285
|
-
}
|
|
11286
11268
|
this._bufferedBytes += chunk.length;
|
|
11287
11269
|
this._buffers.push(chunk);
|
|
11288
11270
|
this.startLoop(cb);
|
|
@@ -11612,17 +11594,6 @@ var require_receiver = __commonJS({
|
|
|
11612
11594
|
return;
|
|
11613
11595
|
}
|
|
11614
11596
|
if (data.length) {
|
|
11615
|
-
if (this._maxFragments > 0 && this._fragments.length >= this._maxFragments) {
|
|
11616
|
-
const error = this.createError(
|
|
11617
|
-
RangeError,
|
|
11618
|
-
"Too many message fragments",
|
|
11619
|
-
false,
|
|
11620
|
-
1008,
|
|
11621
|
-
"WS_ERR_TOO_MANY_BUFFERED_PARTS"
|
|
11622
|
-
);
|
|
11623
|
-
cb(error);
|
|
11624
|
-
return;
|
|
11625
|
-
}
|
|
11626
11597
|
this._messageLength = this._totalPayloadLength;
|
|
11627
11598
|
this._fragments.push(data);
|
|
11628
11599
|
}
|
|
@@ -11652,17 +11623,6 @@ var require_receiver = __commonJS({
|
|
|
11652
11623
|
cb(error);
|
|
11653
11624
|
return;
|
|
11654
11625
|
}
|
|
11655
|
-
if (this._maxFragments > 0 && this._fragments.length >= this._maxFragments) {
|
|
11656
|
-
const error = this.createError(
|
|
11657
|
-
RangeError,
|
|
11658
|
-
"Too many message fragments",
|
|
11659
|
-
false,
|
|
11660
|
-
1008,
|
|
11661
|
-
"WS_ERR_TOO_MANY_BUFFERED_PARTS"
|
|
11662
|
-
);
|
|
11663
|
-
cb(error);
|
|
11664
|
-
return;
|
|
11665
|
-
}
|
|
11666
11626
|
this._fragments.push(buf);
|
|
11667
11627
|
}
|
|
11668
11628
|
this.dataMessage(cb);
|
|
@@ -11823,15 +11783,12 @@ var require_receiver = __commonJS({
|
|
|
11823
11783
|
}
|
|
11824
11784
|
});
|
|
11825
11785
|
|
|
11826
|
-
//
|
|
11786
|
+
// ../../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/sender.js
|
|
11827
11787
|
var require_sender = __commonJS({
|
|
11828
|
-
"
|
|
11788
|
+
"../../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/sender.js"(exports, module) {
|
|
11829
11789
|
"use strict";
|
|
11830
11790
|
var { Duplex } = __require("stream");
|
|
11831
11791
|
var { randomFillSync } = __require("crypto");
|
|
11832
|
-
var {
|
|
11833
|
-
types: { isUint8Array }
|
|
11834
|
-
} = __require("util");
|
|
11835
11792
|
var PerMessageDeflate2 = require_permessage_deflate();
|
|
11836
11793
|
var { EMPTY_BUFFER, kWebSocket, NOOP } = require_constants();
|
|
11837
11794
|
var { isBlob, isValidStatusCode } = require_validation();
|
|
@@ -11985,10 +11942,8 @@ var require_sender = __commonJS({
|
|
|
11985
11942
|
buf.writeUInt16BE(code, 0);
|
|
11986
11943
|
if (typeof data === "string") {
|
|
11987
11944
|
buf.write(data, 2);
|
|
11988
|
-
} else if (isUint8Array(data)) {
|
|
11989
|
-
buf.set(data, 2);
|
|
11990
11945
|
} else {
|
|
11991
|
-
|
|
11946
|
+
buf.set(data, 2);
|
|
11992
11947
|
}
|
|
11993
11948
|
}
|
|
11994
11949
|
const options = {
|
|
@@ -12316,9 +12271,9 @@ var require_sender = __commonJS({
|
|
|
12316
12271
|
}
|
|
12317
12272
|
});
|
|
12318
12273
|
|
|
12319
|
-
//
|
|
12274
|
+
// ../../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/event-target.js
|
|
12320
12275
|
var require_event_target = __commonJS({
|
|
12321
|
-
"
|
|
12276
|
+
"../../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/event-target.js"(exports, module) {
|
|
12322
12277
|
"use strict";
|
|
12323
12278
|
var { kForOnEventAttribute, kListener } = require_constants();
|
|
12324
12279
|
var kCode = Symbol("kCode");
|
|
@@ -12545,9 +12500,9 @@ var require_event_target = __commonJS({
|
|
|
12545
12500
|
}
|
|
12546
12501
|
});
|
|
12547
12502
|
|
|
12548
|
-
//
|
|
12503
|
+
// ../../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/extension.js
|
|
12549
12504
|
var require_extension = __commonJS({
|
|
12550
|
-
"
|
|
12505
|
+
"../../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/extension.js"(exports, module) {
|
|
12551
12506
|
"use strict";
|
|
12552
12507
|
var { tokenChars } = require_validation();
|
|
12553
12508
|
function push(dest, name, elem) {
|
|
@@ -12698,9 +12653,9 @@ var require_extension = __commonJS({
|
|
|
12698
12653
|
}
|
|
12699
12654
|
});
|
|
12700
12655
|
|
|
12701
|
-
//
|
|
12656
|
+
// ../../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/websocket.js
|
|
12702
12657
|
var require_websocket = __commonJS({
|
|
12703
|
-
"
|
|
12658
|
+
"../../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/websocket.js"(exports, module) {
|
|
12704
12659
|
"use strict";
|
|
12705
12660
|
var EventEmitter = __require("events");
|
|
12706
12661
|
var https = __require("https");
|
|
@@ -12869,10 +12824,6 @@ var require_websocket = __commonJS({
|
|
|
12869
12824
|
* multiple times in the same tick
|
|
12870
12825
|
* @param {Function} [options.generateMask] The function used to generate the
|
|
12871
12826
|
* masking key
|
|
12872
|
-
* @param {Number} [options.maxBufferedChunks=0] The maximum number of
|
|
12873
|
-
* buffered data chunks
|
|
12874
|
-
* @param {Number} [options.maxFragments=0] The maximum number of message
|
|
12875
|
-
* fragments
|
|
12876
12827
|
* @param {Number} [options.maxPayload=0] The maximum allowed message size
|
|
12877
12828
|
* @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or
|
|
12878
12829
|
* not to skip UTF-8 validation for text and close messages
|
|
@@ -12884,8 +12835,6 @@ var require_websocket = __commonJS({
|
|
|
12884
12835
|
binaryType: this.binaryType,
|
|
12885
12836
|
extensions: this._extensions,
|
|
12886
12837
|
isServer: this._isServer,
|
|
12887
|
-
maxBufferedChunks: options.maxBufferedChunks,
|
|
12888
|
-
maxFragments: options.maxFragments,
|
|
12889
12838
|
maxPayload: options.maxPayload,
|
|
12890
12839
|
skipUTF8Validation: options.skipUTF8Validation
|
|
12891
12840
|
});
|
|
@@ -13185,8 +13134,6 @@ var require_websocket = __commonJS({
|
|
|
13185
13134
|
autoPong: true,
|
|
13186
13135
|
closeTimeout: CLOSE_TIMEOUT,
|
|
13187
13136
|
protocolVersion: protocolVersions[1],
|
|
13188
|
-
maxBufferedChunks: 1024 * 1024,
|
|
13189
|
-
maxFragments: 128 * 1024,
|
|
13190
13137
|
maxPayload: 100 * 1024 * 1024,
|
|
13191
13138
|
skipUTF8Validation: false,
|
|
13192
13139
|
perMessageDeflate: true,
|
|
@@ -13429,8 +13376,6 @@ var require_websocket = __commonJS({
|
|
|
13429
13376
|
websocket.setSocket(socket, head, {
|
|
13430
13377
|
allowSynchronousEvents: opts.allowSynchronousEvents,
|
|
13431
13378
|
generateMask: opts.generateMask,
|
|
13432
|
-
maxBufferedChunks: opts.maxBufferedChunks,
|
|
13433
|
-
maxFragments: opts.maxFragments,
|
|
13434
13379
|
maxPayload: opts.maxPayload,
|
|
13435
13380
|
skipUTF8Validation: opts.skipUTF8Validation
|
|
13436
13381
|
});
|
|
@@ -13594,9 +13539,9 @@ var require_websocket = __commonJS({
|
|
|
13594
13539
|
}
|
|
13595
13540
|
});
|
|
13596
13541
|
|
|
13597
|
-
//
|
|
13542
|
+
// ../../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/stream.js
|
|
13598
13543
|
var require_stream = __commonJS({
|
|
13599
|
-
"
|
|
13544
|
+
"../../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/stream.js"(exports, module) {
|
|
13600
13545
|
"use strict";
|
|
13601
13546
|
var WebSocket3 = require_websocket();
|
|
13602
13547
|
var { Duplex } = __require("stream");
|
|
@@ -13692,9 +13637,9 @@ var require_stream = __commonJS({
|
|
|
13692
13637
|
}
|
|
13693
13638
|
});
|
|
13694
13639
|
|
|
13695
|
-
//
|
|
13640
|
+
// ../../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/subprotocol.js
|
|
13696
13641
|
var require_subprotocol = __commonJS({
|
|
13697
|
-
"
|
|
13642
|
+
"../../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/subprotocol.js"(exports, module) {
|
|
13698
13643
|
"use strict";
|
|
13699
13644
|
var { tokenChars } = require_validation();
|
|
13700
13645
|
function parse2(header) {
|
|
@@ -13737,9 +13682,9 @@ var require_subprotocol = __commonJS({
|
|
|
13737
13682
|
}
|
|
13738
13683
|
});
|
|
13739
13684
|
|
|
13740
|
-
//
|
|
13685
|
+
// ../../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/websocket-server.js
|
|
13741
13686
|
var require_websocket_server = __commonJS({
|
|
13742
|
-
"
|
|
13687
|
+
"../../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/websocket-server.js"(exports, module) {
|
|
13743
13688
|
"use strict";
|
|
13744
13689
|
var EventEmitter = __require("events");
|
|
13745
13690
|
var http = __require("http");
|
|
@@ -13773,10 +13718,6 @@ var require_websocket_server = __commonJS({
|
|
|
13773
13718
|
* called
|
|
13774
13719
|
* @param {Function} [options.handleProtocols] A hook to handle protocols
|
|
13775
13720
|
* @param {String} [options.host] The hostname where to bind the server
|
|
13776
|
-
* @param {Number} [options.maxBufferedChunks=1048576] The maximum number of
|
|
13777
|
-
* buffered data chunks
|
|
13778
|
-
* @param {Number} [options.maxFragments=131072] The maximum number of message
|
|
13779
|
-
* fragments
|
|
13780
13721
|
* @param {Number} [options.maxPayload=104857600] The maximum allowed message
|
|
13781
13722
|
* size
|
|
13782
13723
|
* @param {Boolean} [options.noServer=false] Enable no server mode
|
|
@@ -13798,8 +13739,6 @@ var require_websocket_server = __commonJS({
|
|
|
13798
13739
|
options = {
|
|
13799
13740
|
allowSynchronousEvents: true,
|
|
13800
13741
|
autoPong: true,
|
|
13801
|
-
maxBufferedChunks: 1024 * 1024,
|
|
13802
|
-
maxFragments: 128 * 1024,
|
|
13803
13742
|
maxPayload: 100 * 1024 * 1024,
|
|
13804
13743
|
skipUTF8Validation: false,
|
|
13805
13744
|
perMessageDeflate: false,
|
|
@@ -14079,8 +14018,6 @@ var require_websocket_server = __commonJS({
|
|
|
14079
14018
|
socket.removeListener("error", socketOnError);
|
|
14080
14019
|
ws.setSocket(socket, head, {
|
|
14081
14020
|
allowSynchronousEvents: this.options.allowSynchronousEvents,
|
|
14082
|
-
maxBufferedChunks: this.options.maxBufferedChunks,
|
|
14083
|
-
maxFragments: this.options.maxFragments,
|
|
14084
14021
|
maxPayload: this.options.maxPayload,
|
|
14085
14022
|
skipUTF8Validation: this.options.skipUTF8Validation
|
|
14086
14023
|
});
|
|
@@ -14168,6 +14105,8 @@ var Mimes = /* @__PURE__ */ ((Mimes2) => {
|
|
|
14168
14105
|
Mimes2["ImageXpixmap"] = "image/x-xpixmap";
|
|
14169
14106
|
Mimes2["ImageXxbm"] = "image/x-xbm";
|
|
14170
14107
|
Mimes2["MultipartFormData"] = "multipart/form-data";
|
|
14108
|
+
Mimes2["TextEventStream"] = "text/event-stream";
|
|
14109
|
+
Mimes2["ApplicationXndjson"] = "application/x-ndjson";
|
|
14171
14110
|
Mimes2["ApplicationJsonPostSimpleBootSsrIntentScheme"] = "application/json-post+simple-boot-ssr-intent-scheme";
|
|
14172
14111
|
Mimes2["Intent"] = "intent";
|
|
14173
14112
|
return Mimes2;
|
|
@@ -14300,6 +14239,7 @@ __export(esm_exports, {
|
|
|
14300
14239
|
Fetcher: () => Fetcher,
|
|
14301
14240
|
FormValidator: () => FormValidator,
|
|
14302
14241
|
FunctionUtils: () => FunctionUtils,
|
|
14242
|
+
HashUtils: () => HashUtils,
|
|
14303
14243
|
HttpFetcher: () => HttpFetcher,
|
|
14304
14244
|
HttpJsonFetcher: () => HttpJsonFetcher,
|
|
14305
14245
|
HttpResponseError: () => HttpResponseError,
|
|
@@ -14380,6 +14320,7 @@ __export(esm_exports, {
|
|
|
14380
14320
|
isCssCommentItem: () => isCssCommentItem,
|
|
14381
14321
|
isCssDeclarationItem: () => isCssDeclarationItem,
|
|
14382
14322
|
isCssRuleItem: () => isCssRuleItem,
|
|
14323
|
+
isDefined: () => isDefined,
|
|
14383
14324
|
isHttpResponseError: () => isHttpResponseError,
|
|
14384
14325
|
isPoint2DType: () => isPoint2DType,
|
|
14385
14326
|
isPoint3DType: () => isPoint3DType,
|
|
@@ -16339,6 +16280,12 @@ var Vector = class _Vector {
|
|
|
16339
16280
|
this.z = z ?? 0;
|
|
16340
16281
|
}
|
|
16341
16282
|
}
|
|
16283
|
+
/**
|
|
16284
|
+
* 성분 대입 (파괴적). 벡터 전달 시 그 성분을 복사.
|
|
16285
|
+
* @example
|
|
16286
|
+
* v.set(1, 2, 3); // v = (1, 2, 3)
|
|
16287
|
+
* v.set(otherVector); // v = other와 동일 성분
|
|
16288
|
+
*/
|
|
16342
16289
|
set(v, y = 0, z = 0) {
|
|
16343
16290
|
if (v instanceof _Vector || v instanceof Point3D) {
|
|
16344
16291
|
this.set(v.x || 0, v.y || 0, v.z || 0);
|
|
@@ -16349,16 +16296,45 @@ var Vector = class _Vector {
|
|
|
16349
16296
|
}
|
|
16350
16297
|
return this;
|
|
16351
16298
|
}
|
|
16299
|
+
/**
|
|
16300
|
+
* 복사본 반환 (비파괴). 파괴적 메서드와 조합해 원본 보존용.
|
|
16301
|
+
* @example
|
|
16302
|
+
* const s = a.get(); s.add(b); // s = a+b, a는 그대로
|
|
16303
|
+
*/
|
|
16352
16304
|
get() {
|
|
16353
16305
|
return new _Vector(this.x, this.y, this.z);
|
|
16354
16306
|
}
|
|
16355
|
-
|
|
16356
|
-
|
|
16307
|
+
/**
|
|
16308
|
+
* 노름(norm). 평평한 공간(유클리드 공간)에서의 직선 거리.
|
|
16309
|
+
* - 수식: ‖v‖ = √(x² + y² + z²)
|
|
16310
|
+
* - 2D에서는 피타고라스 정리 그 자체. 3D는 두 번 적용한 것과 같음.
|
|
16311
|
+
* (바닥 대각선 √(x²+y²) → 공간 대각선 √((바닥)²+z²))
|
|
16312
|
+
* - "유클리드"는 평평한 공간의 기하학을 말함 (좌표계는 데카르트의 것, 유클리드는 좌표 없이 기하학을 세움).
|
|
16313
|
+
* 휘어진 공간(구면·쌍곡)에서는 이 공식이 성립하지 않음.
|
|
16314
|
+
* @example
|
|
16315
|
+
* new Vector(3, 4, 0).norm(); // 5
|
|
16316
|
+
* new Vector(6, 8, 0).norm(); // 10
|
|
16317
|
+
*/
|
|
16318
|
+
norm() {
|
|
16357
16319
|
const x = this.x;
|
|
16358
16320
|
const y = this.y;
|
|
16359
16321
|
const z = this.z;
|
|
16360
16322
|
return Math.sqrt(x * x + y * y + z * z);
|
|
16361
16323
|
}
|
|
16324
|
+
/**
|
|
16325
|
+
* norm()의 별칭 (p5.js 호환).
|
|
16326
|
+
* @example
|
|
16327
|
+
* new Vector(3, 4, 0).mag(); // 5
|
|
16328
|
+
*/
|
|
16329
|
+
mag() {
|
|
16330
|
+
return this.norm();
|
|
16331
|
+
}
|
|
16332
|
+
/**
|
|
16333
|
+
* 덧셈 (파괴적). 성분별 합. 기하학적으로 평행사변형의 대각선.
|
|
16334
|
+
* - 수식: a + b = (ax+bx, ay+by, az+bz)
|
|
16335
|
+
* @example
|
|
16336
|
+
* const a = new Vector(4, 2); a.add(new Vector(-2, 3)); // a = (2, 5)
|
|
16337
|
+
*/
|
|
16362
16338
|
add(v, y = 0, z = 0) {
|
|
16363
16339
|
if (v instanceof _Vector || v instanceof Point3D) {
|
|
16364
16340
|
this.x += v.x;
|
|
@@ -16370,12 +16346,24 @@ var Vector = class _Vector {
|
|
|
16370
16346
|
this.z += z;
|
|
16371
16347
|
}
|
|
16372
16348
|
}
|
|
16349
|
+
/**
|
|
16350
|
+
* 덧셈 결과의 새 벡터 반환 (비파괴).
|
|
16351
|
+
* - 수식: a + b = (ax+bx, ay+by, az+bz)
|
|
16352
|
+
* @example
|
|
16353
|
+
* const s = a.toAdd(a, b); // s = a+b, a·b는 그대로
|
|
16354
|
+
*/
|
|
16373
16355
|
toAdd(v1, v2) {
|
|
16374
16356
|
return new _Vector(v1.x + v2.x, v1.y + v2.y, v1.x + v2.y);
|
|
16375
16357
|
}
|
|
16376
16358
|
// public static add(v1: Vector, v2: Vector): Vector {
|
|
16377
16359
|
// return new Vector(v1.x + v2.x, v1.y + v2.y, v1.x + v2.y);
|
|
16378
16360
|
// }
|
|
16361
|
+
/**
|
|
16362
|
+
* 뺄셈 (파괴적). a - b는 "a에서 b를 되돌리는" 벡터.
|
|
16363
|
+
* - 수식: a - b = (ax-bx, ay-by, az-bz)
|
|
16364
|
+
* @example
|
|
16365
|
+
* const a = new Vector(4, 2); a.sub(new Vector(1, 1)); // a = (3, 1)
|
|
16366
|
+
*/
|
|
16379
16367
|
sub(v, y = 0, z = 0) {
|
|
16380
16368
|
if (v instanceof _Vector || v instanceof Point3D) {
|
|
16381
16369
|
this.x -= v.x;
|
|
@@ -16387,6 +16375,12 @@ var Vector = class _Vector {
|
|
|
16387
16375
|
this.z -= z;
|
|
16388
16376
|
}
|
|
16389
16377
|
}
|
|
16378
|
+
/**
|
|
16379
|
+
* 뺄셈 결과의 새 벡터 반환 (비파괴).
|
|
16380
|
+
* - 수식: a - b = (ax-bx, ay-by, az-bz)
|
|
16381
|
+
* @example
|
|
16382
|
+
* const d = a.toSub(b); // d = a-b, a·b는 그대로
|
|
16383
|
+
*/
|
|
16390
16384
|
toSub(v2) {
|
|
16391
16385
|
const v1 = this;
|
|
16392
16386
|
return new _Vector(v1.x - v2.x, v1.y - v2.y, v1.z - v2.z);
|
|
@@ -16395,6 +16389,12 @@ var Vector = class _Vector {
|
|
|
16395
16389
|
// public static sub(v1: Vector, v2: Vector): Vector {
|
|
16396
16390
|
// return new Vector(v1.x - v2.x, v1.y - v2.y, v1.z - v2.z);
|
|
16397
16391
|
// }
|
|
16392
|
+
/**
|
|
16393
|
+
* 스칼라배 또는 성분별 곱 (파괴적). 스칼라 k>1이면 늘어나고, 0<k<1이면 줄어듦. k<0이면 반대 방향.
|
|
16394
|
+
* - 수식(스칼라): k·v = (k·x, k·y, k·z)
|
|
16395
|
+
* @example
|
|
16396
|
+
* const v = new Vector(1, 2); v.mult(3); // v = (3, 6)
|
|
16397
|
+
*/
|
|
16398
16398
|
mult(v) {
|
|
16399
16399
|
if (v instanceof _Vector || v instanceof Point3D) {
|
|
16400
16400
|
this.x *= v.x;
|
|
@@ -16407,6 +16407,12 @@ var Vector = class _Vector {
|
|
|
16407
16407
|
}
|
|
16408
16408
|
return this;
|
|
16409
16409
|
}
|
|
16410
|
+
/**
|
|
16411
|
+
* 성분별 곱 결과의 새 벡터 반환 (비파괴).
|
|
16412
|
+
* - 수식: (ax·bx, ay·by, az·bz)
|
|
16413
|
+
* @example
|
|
16414
|
+
* const m = a.toMult(b); // m = 성분별 곱, a·b는 그대로
|
|
16415
|
+
*/
|
|
16410
16416
|
toMult(v2) {
|
|
16411
16417
|
const v1 = this;
|
|
16412
16418
|
return new _Vector(v1.x *= v2.x, v1.y *= v2.y, v1.z *= v2.z);
|
|
@@ -16414,6 +16420,12 @@ var Vector = class _Vector {
|
|
|
16414
16420
|
// public static mult(v1: Vector, v2: Vector) {
|
|
16415
16421
|
// return new Vector(v1.x *= v2.x, v1.y *= v2.y, v1.z *= v2.z);
|
|
16416
16422
|
// }
|
|
16423
|
+
/**
|
|
16424
|
+
* 스칼라 나눗셈 또는 성분별 나눗셈 (파괴적). 정규화의 핵심 연산.
|
|
16425
|
+
* - 수식(스칼라): v/k = (x/k, y/k, z/k)
|
|
16426
|
+
* @example
|
|
16427
|
+
* const v = new Vector(6, 8); v.div(2); // v = (3, 4)
|
|
16428
|
+
*/
|
|
16417
16429
|
div(v) {
|
|
16418
16430
|
if (v instanceof _Vector || v instanceof Point3D) {
|
|
16419
16431
|
this.x /= v.x;
|
|
@@ -16426,6 +16438,12 @@ var Vector = class _Vector {
|
|
|
16426
16438
|
}
|
|
16427
16439
|
return this;
|
|
16428
16440
|
}
|
|
16441
|
+
/**
|
|
16442
|
+
* 스칼라 나눗셈 결과의 새 벡터 반환 (비파괴).
|
|
16443
|
+
* - 수식: v/k = (x/k, y/k, z/k)
|
|
16444
|
+
* @example
|
|
16445
|
+
* const h = v.toDiv(2); // h = v/2, v는 그대로
|
|
16446
|
+
*/
|
|
16429
16447
|
toDiv(d) {
|
|
16430
16448
|
const v = this;
|
|
16431
16449
|
const rv = v.get();
|
|
@@ -16441,10 +16459,22 @@ var Vector = class _Vector {
|
|
|
16441
16459
|
// rv.z /= d;
|
|
16442
16460
|
// return rv;
|
|
16443
16461
|
// }
|
|
16462
|
+
/**
|
|
16463
|
+
* 두 점(벡터) 사이 거리. 차 벡터의 크기.
|
|
16464
|
+
* - 수식: d = √((dx)² + (dy)² + (dz)²)
|
|
16465
|
+
* @example
|
|
16466
|
+
* new Vector(0, 0).dist(new Vector(3, 4)); // 5
|
|
16467
|
+
*/
|
|
16444
16468
|
dist(v) {
|
|
16445
16469
|
const dx = this.x - v.x, dy = this.y - v.y, dz = this.z - v.z;
|
|
16446
16470
|
return Math.sqrt(dx * dx + dy * dy + dz * dz);
|
|
16447
16471
|
}
|
|
16472
|
+
/**
|
|
16473
|
+
* 두 점(벡터) 사이 거리 (toDist는 dist와 동일, 비파괴).
|
|
16474
|
+
* - 수식: d = √((dx)² + (dy)² + (dz)²)
|
|
16475
|
+
* @example
|
|
16476
|
+
* a.toDist(b); // a와 b 사이 거리
|
|
16477
|
+
*/
|
|
16448
16478
|
toDist(v2) {
|
|
16449
16479
|
const v1 = this;
|
|
16450
16480
|
const dx = v1.x - v2.x, dy = v1.y - v2.y, dz = v1.z - v2.z;
|
|
@@ -16456,36 +16486,90 @@ var Vector = class _Vector {
|
|
|
16456
16486
|
// dz = v1.z - v2.z;
|
|
16457
16487
|
// return Math.sqrt(dx * dx + dy * dy + dz * dz);
|
|
16458
16488
|
// }
|
|
16459
|
-
|
|
16489
|
+
/**
|
|
16490
|
+
* 내적(dot product). 두 벡터가 같은 방향을 향하는 정도.
|
|
16491
|
+
* - 수식: a·b = ax·bx + ay·by + az·bz = |a||b|cosθ
|
|
16492
|
+
* - θ=90°면 0(직교), 0°면 최대(같은 방향).
|
|
16493
|
+
* - 벡터 전달 시 y·z 생략 가능, 스칼라(x) 전달 시 y·z와 함께 사용.
|
|
16494
|
+
* @example
|
|
16495
|
+
* new Vector(5, 12).dot(new Vector(-5, 12)); // -25+144 = 119
|
|
16496
|
+
* new Vector(1, 0).dot(new Vector(0, 1)); // 0 (직각)
|
|
16497
|
+
* new Vector(1, 2).dot(3, 4); // 1*3+2*4 = 11
|
|
16498
|
+
*/
|
|
16499
|
+
dot(v, y = 0, z = 0) {
|
|
16460
16500
|
if (v instanceof _Vector || v instanceof Point3D) {
|
|
16461
16501
|
return this.x * v.x + this.y * v.y + this.z * v.z;
|
|
16462
16502
|
}
|
|
16463
16503
|
;
|
|
16464
16504
|
return this.x * v + this.y * y + this.z * z;
|
|
16465
16505
|
}
|
|
16506
|
+
/**
|
|
16507
|
+
* 외적(cross product). 두 벡터에 수직인 벡터. 오른손 법칙 방향.
|
|
16508
|
+
* - 수식: a×b = (ay·bz − az·by, az·bx − ax·bz, ax·by − ay·bx)
|
|
16509
|
+
* - 2D에서는 z값 = ax·by − ay·bx (부호 있는 면적, 회전 방향 판정용).
|
|
16510
|
+
* @example
|
|
16511
|
+
* new Vector(1, 0, 0).cross(new Vector(0, 1, 0)); // (0, 0, 1)
|
|
16512
|
+
*/
|
|
16466
16513
|
cross(v) {
|
|
16467
16514
|
const x = this.x, y = this.y, z = this.z;
|
|
16468
16515
|
return new _Vector(y * v.z - v.y * z, z * v.x - v.z * x, x * v.y - v.x * y);
|
|
16469
16516
|
}
|
|
16517
|
+
/**
|
|
16518
|
+
* 정규화 (파괴적). 방향은 그대로, 크기를 1로. 단위벡터 v̂ 생성.
|
|
16519
|
+
* - 수식: v̂ = v / |v|
|
|
16520
|
+
* - 영벡터(|v|=0)는 0으로 나누지 않고 그대로 둠.
|
|
16521
|
+
* @example
|
|
16522
|
+
* const v = new Vector(6, 8); v.normalize(); // v = (0.6, 0.8), |v| = 1
|
|
16523
|
+
*/
|
|
16470
16524
|
normalize() {
|
|
16471
|
-
const m = this.
|
|
16525
|
+
const m = this.norm();
|
|
16472
16526
|
if (m > 0) this.div(m);
|
|
16473
16527
|
}
|
|
16528
|
+
/**
|
|
16529
|
+
* 크기 상한 (파괴적). 속도가 high를 넘으면 방향 유지한 채 high로 자름. 물리 시뮬레이션 최고속도용.
|
|
16530
|
+
* - 수식: |v| > high → v = v̂ · high
|
|
16531
|
+
* @example
|
|
16532
|
+
* const v = new Vector(6, 8); v.limit(5); // |v|=10 → 5, v = (3, 4)
|
|
16533
|
+
*/
|
|
16474
16534
|
limit(high) {
|
|
16475
|
-
if (this.
|
|
16535
|
+
if (this.norm() > high) {
|
|
16476
16536
|
this.normalize();
|
|
16477
16537
|
this.mult(high);
|
|
16478
16538
|
}
|
|
16479
16539
|
}
|
|
16540
|
+
/**
|
|
16541
|
+
* 2D 방향각. +x축 기준 반시계 방향 라디안 (-π ~ π).
|
|
16542
|
+
* - 수식: θ = atan2(y, x)
|
|
16543
|
+
* @example
|
|
16544
|
+
* new Vector(1, 1).heading2D(); // π/4 (45°)
|
|
16545
|
+
* new Vector(-1, 0).heading2D(); // π (180°)
|
|
16546
|
+
*/
|
|
16480
16547
|
heading2D() {
|
|
16481
16548
|
return -Math.atan2(-this.y, this.x);
|
|
16482
16549
|
}
|
|
16550
|
+
/**
|
|
16551
|
+
* 무작위 방향 단위벡터 반환 (새 Vector, 자신은 변경 안 함).
|
|
16552
|
+
* @example
|
|
16553
|
+
* const r = new Vector().random2D(); // |r| = 1, 방향 랜덤
|
|
16554
|
+
*/
|
|
16483
16555
|
random2D() {
|
|
16484
16556
|
return this.fromAngle(Math.random() * (2 * Math.PI));
|
|
16485
16557
|
}
|
|
16558
|
+
/**
|
|
16559
|
+
* 각도→벡터. 각도 θ, 길이 L인 2D 벡터 반환 (새 Vector).
|
|
16560
|
+
* - 수식: (L·cosθ, L·sinθ, 0)
|
|
16561
|
+
* @example
|
|
16562
|
+
* new Vector().fromAngle(Math.PI / 3, 2); // (1, 1.73, 0)
|
|
16563
|
+
*/
|
|
16486
16564
|
fromAngle(angle, length = 1) {
|
|
16487
16565
|
return new _Vector(length * Math.cos(angle), length * Math.sin(angle), 0);
|
|
16488
16566
|
}
|
|
16567
|
+
/**
|
|
16568
|
+
* 구면좌표→3D 벡터 (새 Vector 반환, p5.js 컨벤션).
|
|
16569
|
+
* - 수식: (L·sinθ·sinφ, −L·cosθ, L·sinθ·cosφ)
|
|
16570
|
+
* @example
|
|
16571
|
+
* new Vector().fromAngles(Math.PI / 2, Math.PI / 2, 1); // (1, 0, 0)
|
|
16572
|
+
*/
|
|
16489
16573
|
fromAngles(theta, phi, length = 1) {
|
|
16490
16574
|
const cosPhi = Math.cos(phi);
|
|
16491
16575
|
const sinPhi = Math.sin(phi);
|
|
@@ -16497,18 +16581,43 @@ var Vector = class _Vector {
|
|
|
16497
16581
|
length * sinTheta * cosPhi
|
|
16498
16582
|
);
|
|
16499
16583
|
}
|
|
16584
|
+
/**
|
|
16585
|
+
* 성분 배열 반환. [x, y, z] 순서.
|
|
16586
|
+
* @example
|
|
16587
|
+
* new Vector(1, 2, 3).array(); // [1, 2, 3]
|
|
16588
|
+
*/
|
|
16500
16589
|
array() {
|
|
16501
16590
|
return [this.x, this.y, this.z];
|
|
16502
16591
|
}
|
|
16592
|
+
/**
|
|
16593
|
+
* Point3D로 변환 (위치 의미로 바꿀 때).
|
|
16594
|
+
* @example
|
|
16595
|
+
* new Vector(1, 2, 3).toPoint3D(); // Point3D(1, 2, 3)
|
|
16596
|
+
*/
|
|
16503
16597
|
toPoint3D() {
|
|
16504
16598
|
return new Point3D(this.x, this.y, this.z);
|
|
16505
16599
|
}
|
|
16600
|
+
/**
|
|
16601
|
+
* Point2D로 변환 (z 버림).
|
|
16602
|
+
* @example
|
|
16603
|
+
* new Vector(1, 2, 3).toPoint2D(); // Point2D(1, 2)
|
|
16604
|
+
*/
|
|
16506
16605
|
toPoint2D() {
|
|
16507
16606
|
return new Point2D(this.x, this.y);
|
|
16508
16607
|
}
|
|
16608
|
+
/**
|
|
16609
|
+
* 복사본 반환 (get()과 동일, 비파괴).
|
|
16610
|
+
* @example
|
|
16611
|
+
* const c = v.copy(); // v와 같은 성분의 새 벡터
|
|
16612
|
+
*/
|
|
16509
16613
|
copy() {
|
|
16510
16614
|
return new _Vector(this.x, this.y, this.z);
|
|
16511
16615
|
}
|
|
16616
|
+
/**
|
|
16617
|
+
* 문자열 표현. "[x, y, z]" 형식.
|
|
16618
|
+
* @example
|
|
16619
|
+
* new Vector(1, 2).toString(); // "[1, 2, 0]"
|
|
16620
|
+
*/
|
|
16512
16621
|
toString() {
|
|
16513
16622
|
return "[" + this.x + ", " + this.y + ", " + this.z + "]";
|
|
16514
16623
|
}
|
|
@@ -21354,7 +21463,7 @@ var StoreLoader = class {
|
|
|
21354
21463
|
|
|
21355
21464
|
// ../core/dist/esm/url/UrlUtils.js
|
|
21356
21465
|
var UrlUtils;
|
|
21357
|
-
((UrlUtils2)
|
|
21466
|
+
(function(UrlUtils2) {
|
|
21358
21467
|
UrlUtils2.origin = (fullurl) => {
|
|
21359
21468
|
return new URL(fullurl).origin;
|
|
21360
21469
|
};
|
|
@@ -21392,15 +21501,28 @@ var UrlUtils;
|
|
|
21392
21501
|
});
|
|
21393
21502
|
return searchParams;
|
|
21394
21503
|
};
|
|
21504
|
+
UrlUtils2.toAbsoluteUrl = (relative2, base) => {
|
|
21505
|
+
return new URL(relative2, base);
|
|
21506
|
+
};
|
|
21507
|
+
function toAbsoluteRequest(input, base) {
|
|
21508
|
+
if (input instanceof URL) {
|
|
21509
|
+
return UrlUtils2.toAbsoluteUrl(input.href, base);
|
|
21510
|
+
}
|
|
21511
|
+
if (typeof input === "string") {
|
|
21512
|
+
return UrlUtils2.toAbsoluteUrl(input, base).href;
|
|
21513
|
+
}
|
|
21514
|
+
return new Request(UrlUtils2.toAbsoluteUrl(input.url, base).href, input);
|
|
21515
|
+
}
|
|
21516
|
+
UrlUtils2.toAbsoluteRequest = toAbsoluteRequest;
|
|
21395
21517
|
UrlUtils2.manipulateSearchParams = (searchParams, options) => {
|
|
21396
21518
|
if (options?.delete) {
|
|
21397
|
-
|
|
21519
|
+
UrlUtils2.deleteSearchParam(searchParams, options.delete);
|
|
21398
21520
|
}
|
|
21399
21521
|
if (options?.append) {
|
|
21400
|
-
|
|
21522
|
+
UrlUtils2.appendSearchParam(searchParams, options.append);
|
|
21401
21523
|
}
|
|
21402
21524
|
if (options?.upsert) {
|
|
21403
|
-
|
|
21525
|
+
UrlUtils2.upsertSearchParam(searchParams, options.upsert);
|
|
21404
21526
|
}
|
|
21405
21527
|
return searchParams;
|
|
21406
21528
|
};
|
|
@@ -23794,6 +23916,23 @@ function getExpression(value, config) {
|
|
|
23794
23916
|
};
|
|
23795
23917
|
}
|
|
23796
23918
|
|
|
23919
|
+
// ../core/dist/esm/hash/HashUtils.js
|
|
23920
|
+
var HashUtils;
|
|
23921
|
+
((HashUtils2) => {
|
|
23922
|
+
const core53 = (str, seed) => {
|
|
23923
|
+
let h1 = 3735928559 ^ seed, h2 = 1103547991 ^ seed;
|
|
23924
|
+
for (let i = 0; i < str.length; i++) {
|
|
23925
|
+
const ch = str.charCodeAt(i);
|
|
23926
|
+
h1 = Math.imul(h1 ^ ch, 2654435761);
|
|
23927
|
+
h2 = Math.imul(h2 ^ ch, 1597334677);
|
|
23928
|
+
}
|
|
23929
|
+
h1 = Math.imul(h1 ^ h1 >>> 16, 2246822507) ^ Math.imul(h2 ^ h2 >>> 13, 3266489909);
|
|
23930
|
+
h2 = Math.imul(h2 ^ h2 >>> 16, 2246822507) ^ Math.imul(h1 ^ h1 >>> 13, 3266489909);
|
|
23931
|
+
return (4294967296 * (2097151 & h2) + (h1 >>> 0)).toString(16).padStart(14, "0");
|
|
23932
|
+
};
|
|
23933
|
+
HashUtils2.hash53 = (str, seed = 0, xyz = 16) => `${core53(str, seed)}${core53(str, seed + 1)}`.slice(0, Math.max(1, xyz));
|
|
23934
|
+
})(HashUtils || (HashUtils = {}));
|
|
23935
|
+
|
|
23797
23936
|
// ../core/dist/esm/index.js
|
|
23798
23937
|
var src_default = {
|
|
23799
23938
|
// Core utilities are exported as named exports above
|
|
@@ -23911,7 +24050,7 @@ var getPATCH = (target, propertyKey) => {
|
|
|
23911
24050
|
return getUrlMapping(target, propertyKey);
|
|
23912
24051
|
};
|
|
23913
24052
|
var getPATCHS = (target) => {
|
|
23914
|
-
return getUrlMappings(target)?.filter((it) => it.config?.method.toUpperCase() === "
|
|
24053
|
+
return getUrlMappings(target)?.filter((it) => it.config?.method.toUpperCase() === "PATCH" /* PATCH */);
|
|
23915
24054
|
};
|
|
23916
24055
|
function OPTIONS(configOrTarget, propertyKey, descriptor) {
|
|
23917
24056
|
if (propertyKey && descriptor) {
|
|
@@ -23943,7 +24082,7 @@ var getHEAD = (target, propertyKey) => {
|
|
|
23943
24082
|
return getUrlMapping(target, propertyKey);
|
|
23944
24083
|
};
|
|
23945
24084
|
var getHEADS = (target) => {
|
|
23946
|
-
return getUrlMappings(target)?.filter((it) => it.config?.method.toUpperCase() === "
|
|
24085
|
+
return getUrlMappings(target)?.filter((it) => it.config?.method.toUpperCase() === "HEAD" /* HEAD */);
|
|
23947
24086
|
};
|
|
23948
24087
|
function TRACE(configOrTarget, propertyKey, descriptor) {
|
|
23949
24088
|
if (propertyKey && descriptor) {
|
|
@@ -27667,7 +27806,6 @@ var ResourceFilter = class {
|
|
|
27667
27806
|
return it.test(url);
|
|
27668
27807
|
}
|
|
27669
27808
|
if (typeof it === "string") {
|
|
27670
|
-
console.log("url!!!!!!!", url);
|
|
27671
27809
|
return it === url;
|
|
27672
27810
|
}
|
|
27673
27811
|
if (typeof it === "function") {
|
|
@@ -28861,7 +28999,7 @@ var SessionManager = class {
|
|
|
28861
28999
|
import { IncomingMessage, Server as HttpServer, ServerResponse } from "http";
|
|
28862
29000
|
import { Server as HttpsServer } from "https";
|
|
28863
29001
|
|
|
28864
|
-
//
|
|
29002
|
+
// ../../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/wrapper.mjs
|
|
28865
29003
|
var import_stream = __toESM(require_stream(), 1);
|
|
28866
29004
|
var import_extension = __toESM(require_extension(), 1);
|
|
28867
29005
|
var import_permessage_deflate = __toESM(require_permessage_deflate(), 1);
|
|
@@ -29117,23 +29255,27 @@ var SimpleBootHttpServer = class _SimpleBootHttpServer extends SimpleApplication
|
|
|
29117
29255
|
target: moduleInstance,
|
|
29118
29256
|
targetKey: it.propertyKey
|
|
29119
29257
|
}, otherStorage);
|
|
29120
|
-
|
|
29121
|
-
|
|
29122
|
-
|
|
29123
|
-
|
|
29124
|
-
|
|
29125
|
-
|
|
29126
|
-
|
|
29127
|
-
|
|
29128
|
-
|
|
29129
|
-
|
|
29130
|
-
|
|
29131
|
-
|
|
29132
|
-
|
|
29258
|
+
const resConfig = it.config?.res;
|
|
29259
|
+
if (resConfig?.manual === true) {
|
|
29260
|
+
} else {
|
|
29261
|
+
if (it.config?.resolver) {
|
|
29262
|
+
const execute = typeof it.config.resolver === "function" ? this.simstanceManager.getOrNewSim({ target: it.config.resolver }) : it.config.resolver;
|
|
29263
|
+
data = await execute?.resolve?.(data, rr);
|
|
29264
|
+
}
|
|
29265
|
+
const status = resConfig?.status ?? 200 /* Ok */;
|
|
29266
|
+
const headers = resConfig?.header ?? {};
|
|
29267
|
+
if (resConfig?.contentType) {
|
|
29268
|
+
headers[HttpHeaders.ContentType] = resConfig.contentType;
|
|
29269
|
+
}
|
|
29270
|
+
if ((resConfig?.contentType?.toLowerCase().indexOf("application/json" /* ApplicationJson */.toLowerCase()) ?? -1) > -1) {
|
|
29271
|
+
data = JSON.stringify(data);
|
|
29272
|
+
} else if (data && typeof data === "object") {
|
|
29273
|
+
data = JSON.stringify(data);
|
|
29274
|
+
}
|
|
29275
|
+
rr.resSetHeaders(headers);
|
|
29276
|
+
rr.resSetStatusCode(status);
|
|
29277
|
+
rr.resWrite(data);
|
|
29133
29278
|
}
|
|
29134
|
-
rr.resSetHeaders(headers);
|
|
29135
|
-
rr.resSetStatusCode(status);
|
|
29136
|
-
rr.resWrite(data);
|
|
29137
29279
|
}
|
|
29138
29280
|
}
|
|
29139
29281
|
if (this.option.noSuchRouteEndPointMappingThrow && methods.length <= 0 && rr.reqMethod()?.toUpperCase() !== "OPTIONS" /* OPTIONS */) {
|