@rpcbase/api 0.86.0 → 0.88.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/dist/index.js +319 -26
- package/dist/index.js.map +1 -1
- package/dist/initApi.d.ts +3 -1
- package/dist/initApi.d.ts.map +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -5874,7 +5874,7 @@ function requireBytes() {
|
|
|
5874
5874
|
}
|
|
5875
5875
|
return bytes.exports;
|
|
5876
5876
|
}
|
|
5877
|
-
var lib$
|
|
5877
|
+
var lib$2 = { exports: {} };
|
|
5878
5878
|
var safer_1;
|
|
5879
5879
|
var hasRequiredSafer;
|
|
5880
5880
|
function requireSafer() {
|
|
@@ -9595,11 +9595,11 @@ function requireStreams() {
|
|
|
9595
9595
|
};
|
|
9596
9596
|
return streams;
|
|
9597
9597
|
}
|
|
9598
|
-
lib$
|
|
9599
|
-
var hasRequiredLib$
|
|
9600
|
-
function requireLib$
|
|
9601
|
-
if (hasRequiredLib$
|
|
9602
|
-
hasRequiredLib$
|
|
9598
|
+
lib$2.exports;
|
|
9599
|
+
var hasRequiredLib$2;
|
|
9600
|
+
function requireLib$2() {
|
|
9601
|
+
if (hasRequiredLib$2) return lib$2.exports;
|
|
9602
|
+
hasRequiredLib$2 = 1;
|
|
9603
9603
|
(function(module) {
|
|
9604
9604
|
var Buffer2 = requireSafer().Buffer;
|
|
9605
9605
|
var bomHandling2 = requireBomHandling();
|
|
@@ -9723,8 +9723,8 @@ function requireLib$1() {
|
|
|
9723
9723
|
throw new Error("iconv-lite Streaming API is not enabled. Use iconv.enableStreamingAPI(require('stream')); to enable it.");
|
|
9724
9724
|
};
|
|
9725
9725
|
}
|
|
9726
|
-
})(lib$
|
|
9727
|
-
return lib$
|
|
9726
|
+
})(lib$2);
|
|
9727
|
+
return lib$2.exports;
|
|
9728
9728
|
}
|
|
9729
9729
|
var unpipe_1;
|
|
9730
9730
|
var hasRequiredUnpipe;
|
|
@@ -9772,7 +9772,7 @@ function requireRawBody() {
|
|
|
9772
9772
|
var asyncHooks = tryRequireAsyncHooks();
|
|
9773
9773
|
var bytes2 = requireBytes();
|
|
9774
9774
|
var createError = requireHttpErrors();
|
|
9775
|
-
var iconv = requireLib$
|
|
9775
|
+
var iconv = requireLib$2();
|
|
9776
9776
|
var unpipe = requireUnpipe();
|
|
9777
9777
|
rawBody = getRawBody;
|
|
9778
9778
|
var ICONV_ENCODING_MESSAGE_REGEXP = /^Encoding not recognized: /;
|
|
@@ -13124,7 +13124,7 @@ function requireRead() {
|
|
|
13124
13124
|
hasRequiredRead = 1;
|
|
13125
13125
|
var createError = requireHttpErrors();
|
|
13126
13126
|
var getBody = requireRawBody();
|
|
13127
|
-
var iconv = requireLib$
|
|
13127
|
+
var iconv = requireLib$2();
|
|
13128
13128
|
var onFinished2 = requireOnFinished();
|
|
13129
13129
|
var zlib = require$$4$1;
|
|
13130
13130
|
var hasBody = requireTypeIs().hasBody;
|
|
@@ -15859,20 +15859,20 @@ function requireParse() {
|
|
|
15859
15859
|
};
|
|
15860
15860
|
return parse;
|
|
15861
15861
|
}
|
|
15862
|
-
var lib;
|
|
15863
|
-
var hasRequiredLib;
|
|
15864
|
-
function requireLib() {
|
|
15865
|
-
if (hasRequiredLib) return lib;
|
|
15866
|
-
hasRequiredLib = 1;
|
|
15862
|
+
var lib$1;
|
|
15863
|
+
var hasRequiredLib$1;
|
|
15864
|
+
function requireLib$1() {
|
|
15865
|
+
if (hasRequiredLib$1) return lib$1;
|
|
15866
|
+
hasRequiredLib$1 = 1;
|
|
15867
15867
|
var stringify = /* @__PURE__ */ requireStringify();
|
|
15868
15868
|
var parse2 = /* @__PURE__ */ requireParse();
|
|
15869
15869
|
var formats2 = /* @__PURE__ */ requireFormats();
|
|
15870
|
-
lib = {
|
|
15870
|
+
lib$1 = {
|
|
15871
15871
|
formats: formats2,
|
|
15872
15872
|
parse: parse2,
|
|
15873
15873
|
stringify
|
|
15874
15874
|
};
|
|
15875
|
-
return lib;
|
|
15875
|
+
return lib$1;
|
|
15876
15876
|
}
|
|
15877
15877
|
var urlencoded_1;
|
|
15878
15878
|
var hasRequiredUrlencoded;
|
|
@@ -15882,7 +15882,7 @@ function requireUrlencoded() {
|
|
|
15882
15882
|
var createError = requireHttpErrors();
|
|
15883
15883
|
var debug = requireBrowser$1()("body-parser:urlencoded");
|
|
15884
15884
|
var read = requireRead();
|
|
15885
|
-
var qs = /* @__PURE__ */ requireLib();
|
|
15885
|
+
var qs = /* @__PURE__ */ requireLib$1();
|
|
15886
15886
|
var { normalizeOptions } = requireUtils$2();
|
|
15887
15887
|
urlencoded_1 = urlencoded;
|
|
15888
15888
|
function urlencoded(options) {
|
|
@@ -17265,7 +17265,7 @@ function requireUtils() {
|
|
|
17265
17265
|
var etag = requireEtag();
|
|
17266
17266
|
var mime = requireMimeTypes();
|
|
17267
17267
|
var proxyaddr = requireProxyAddr();
|
|
17268
|
-
var qs = /* @__PURE__ */ requireLib();
|
|
17268
|
+
var qs = /* @__PURE__ */ requireLib$1();
|
|
17269
17269
|
var querystring = require$$6$1;
|
|
17270
17270
|
const { Buffer: Buffer2 } = require$$7$1;
|
|
17271
17271
|
exports$1.methods = METHODS.map((method) => method.toLowerCase());
|
|
@@ -21181,6 +21181,286 @@ function requireExpress() {
|
|
|
21181
21181
|
return express;
|
|
21182
21182
|
}
|
|
21183
21183
|
var expressExports = requireExpress();
|
|
21184
|
+
var lib = { exports: {} };
|
|
21185
|
+
var objectAssign;
|
|
21186
|
+
var hasRequiredObjectAssign;
|
|
21187
|
+
function requireObjectAssign() {
|
|
21188
|
+
if (hasRequiredObjectAssign) return objectAssign;
|
|
21189
|
+
hasRequiredObjectAssign = 1;
|
|
21190
|
+
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
|
|
21191
|
+
var hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
21192
|
+
var propIsEnumerable = Object.prototype.propertyIsEnumerable;
|
|
21193
|
+
function toObject(val) {
|
|
21194
|
+
if (val === null || val === void 0) {
|
|
21195
|
+
throw new TypeError("Object.assign cannot be called with null or undefined");
|
|
21196
|
+
}
|
|
21197
|
+
return Object(val);
|
|
21198
|
+
}
|
|
21199
|
+
function shouldUseNative() {
|
|
21200
|
+
try {
|
|
21201
|
+
if (!Object.assign) {
|
|
21202
|
+
return false;
|
|
21203
|
+
}
|
|
21204
|
+
var test1 = new String("abc");
|
|
21205
|
+
test1[5] = "de";
|
|
21206
|
+
if (Object.getOwnPropertyNames(test1)[0] === "5") {
|
|
21207
|
+
return false;
|
|
21208
|
+
}
|
|
21209
|
+
var test2 = {};
|
|
21210
|
+
for (var i = 0; i < 10; i++) {
|
|
21211
|
+
test2["_" + String.fromCharCode(i)] = i;
|
|
21212
|
+
}
|
|
21213
|
+
var order2 = Object.getOwnPropertyNames(test2).map(function(n) {
|
|
21214
|
+
return test2[n];
|
|
21215
|
+
});
|
|
21216
|
+
if (order2.join("") !== "0123456789") {
|
|
21217
|
+
return false;
|
|
21218
|
+
}
|
|
21219
|
+
var test3 = {};
|
|
21220
|
+
"abcdefghijklmnopqrst".split("").forEach(function(letter) {
|
|
21221
|
+
test3[letter] = letter;
|
|
21222
|
+
});
|
|
21223
|
+
if (Object.keys(Object.assign({}, test3)).join("") !== "abcdefghijklmnopqrst") {
|
|
21224
|
+
return false;
|
|
21225
|
+
}
|
|
21226
|
+
return true;
|
|
21227
|
+
} catch (err) {
|
|
21228
|
+
return false;
|
|
21229
|
+
}
|
|
21230
|
+
}
|
|
21231
|
+
objectAssign = shouldUseNative() ? Object.assign : function(target, source) {
|
|
21232
|
+
var from;
|
|
21233
|
+
var to = toObject(target);
|
|
21234
|
+
var symbols;
|
|
21235
|
+
for (var s = 1; s < arguments.length; s++) {
|
|
21236
|
+
from = Object(arguments[s]);
|
|
21237
|
+
for (var key in from) {
|
|
21238
|
+
if (hasOwnProperty.call(from, key)) {
|
|
21239
|
+
to[key] = from[key];
|
|
21240
|
+
}
|
|
21241
|
+
}
|
|
21242
|
+
if (getOwnPropertySymbols) {
|
|
21243
|
+
symbols = getOwnPropertySymbols(from);
|
|
21244
|
+
for (var i = 0; i < symbols.length; i++) {
|
|
21245
|
+
if (propIsEnumerable.call(from, symbols[i])) {
|
|
21246
|
+
to[symbols[i]] = from[symbols[i]];
|
|
21247
|
+
}
|
|
21248
|
+
}
|
|
21249
|
+
}
|
|
21250
|
+
}
|
|
21251
|
+
return to;
|
|
21252
|
+
};
|
|
21253
|
+
return objectAssign;
|
|
21254
|
+
}
|
|
21255
|
+
var hasRequiredLib;
|
|
21256
|
+
function requireLib() {
|
|
21257
|
+
if (hasRequiredLib) return lib.exports;
|
|
21258
|
+
hasRequiredLib = 1;
|
|
21259
|
+
(function() {
|
|
21260
|
+
var assign = requireObjectAssign();
|
|
21261
|
+
var vary2 = requireVary();
|
|
21262
|
+
var defaults = {
|
|
21263
|
+
origin: "*",
|
|
21264
|
+
methods: "GET,HEAD,PUT,PATCH,POST,DELETE",
|
|
21265
|
+
preflightContinue: false,
|
|
21266
|
+
optionsSuccessStatus: 204
|
|
21267
|
+
};
|
|
21268
|
+
function isString(s) {
|
|
21269
|
+
return typeof s === "string" || s instanceof String;
|
|
21270
|
+
}
|
|
21271
|
+
function isOriginAllowed(origin, allowedOrigin) {
|
|
21272
|
+
if (Array.isArray(allowedOrigin)) {
|
|
21273
|
+
for (var i = 0; i < allowedOrigin.length; ++i) {
|
|
21274
|
+
if (isOriginAllowed(origin, allowedOrigin[i])) {
|
|
21275
|
+
return true;
|
|
21276
|
+
}
|
|
21277
|
+
}
|
|
21278
|
+
return false;
|
|
21279
|
+
} else if (isString(allowedOrigin)) {
|
|
21280
|
+
return origin === allowedOrigin;
|
|
21281
|
+
} else if (allowedOrigin instanceof RegExp) {
|
|
21282
|
+
return allowedOrigin.test(origin);
|
|
21283
|
+
} else {
|
|
21284
|
+
return !!allowedOrigin;
|
|
21285
|
+
}
|
|
21286
|
+
}
|
|
21287
|
+
function configureOrigin(options, req) {
|
|
21288
|
+
var requestOrigin = req.headers.origin, headers = [], isAllowed;
|
|
21289
|
+
if (!options.origin || options.origin === "*") {
|
|
21290
|
+
headers.push([{
|
|
21291
|
+
key: "Access-Control-Allow-Origin",
|
|
21292
|
+
value: "*"
|
|
21293
|
+
}]);
|
|
21294
|
+
} else if (isString(options.origin)) {
|
|
21295
|
+
headers.push([{
|
|
21296
|
+
key: "Access-Control-Allow-Origin",
|
|
21297
|
+
value: options.origin
|
|
21298
|
+
}]);
|
|
21299
|
+
headers.push([{
|
|
21300
|
+
key: "Vary",
|
|
21301
|
+
value: "Origin"
|
|
21302
|
+
}]);
|
|
21303
|
+
} else {
|
|
21304
|
+
isAllowed = isOriginAllowed(requestOrigin, options.origin);
|
|
21305
|
+
headers.push([{
|
|
21306
|
+
key: "Access-Control-Allow-Origin",
|
|
21307
|
+
value: isAllowed ? requestOrigin : false
|
|
21308
|
+
}]);
|
|
21309
|
+
headers.push([{
|
|
21310
|
+
key: "Vary",
|
|
21311
|
+
value: "Origin"
|
|
21312
|
+
}]);
|
|
21313
|
+
}
|
|
21314
|
+
return headers;
|
|
21315
|
+
}
|
|
21316
|
+
function configureMethods(options) {
|
|
21317
|
+
var methods = options.methods;
|
|
21318
|
+
if (methods.join) {
|
|
21319
|
+
methods = options.methods.join(",");
|
|
21320
|
+
}
|
|
21321
|
+
return {
|
|
21322
|
+
key: "Access-Control-Allow-Methods",
|
|
21323
|
+
value: methods
|
|
21324
|
+
};
|
|
21325
|
+
}
|
|
21326
|
+
function configureCredentials(options) {
|
|
21327
|
+
if (options.credentials === true) {
|
|
21328
|
+
return {
|
|
21329
|
+
key: "Access-Control-Allow-Credentials",
|
|
21330
|
+
value: "true"
|
|
21331
|
+
};
|
|
21332
|
+
}
|
|
21333
|
+
return null;
|
|
21334
|
+
}
|
|
21335
|
+
function configureAllowedHeaders(options, req) {
|
|
21336
|
+
var allowedHeaders = options.allowedHeaders || options.headers;
|
|
21337
|
+
var headers = [];
|
|
21338
|
+
if (!allowedHeaders) {
|
|
21339
|
+
allowedHeaders = req.headers["access-control-request-headers"];
|
|
21340
|
+
headers.push([{
|
|
21341
|
+
key: "Vary",
|
|
21342
|
+
value: "Access-Control-Request-Headers"
|
|
21343
|
+
}]);
|
|
21344
|
+
} else if (allowedHeaders.join) {
|
|
21345
|
+
allowedHeaders = allowedHeaders.join(",");
|
|
21346
|
+
}
|
|
21347
|
+
if (allowedHeaders && allowedHeaders.length) {
|
|
21348
|
+
headers.push([{
|
|
21349
|
+
key: "Access-Control-Allow-Headers",
|
|
21350
|
+
value: allowedHeaders
|
|
21351
|
+
}]);
|
|
21352
|
+
}
|
|
21353
|
+
return headers;
|
|
21354
|
+
}
|
|
21355
|
+
function configureExposedHeaders(options) {
|
|
21356
|
+
var headers = options.exposedHeaders;
|
|
21357
|
+
if (!headers) {
|
|
21358
|
+
return null;
|
|
21359
|
+
} else if (headers.join) {
|
|
21360
|
+
headers = headers.join(",");
|
|
21361
|
+
}
|
|
21362
|
+
if (headers && headers.length) {
|
|
21363
|
+
return {
|
|
21364
|
+
key: "Access-Control-Expose-Headers",
|
|
21365
|
+
value: headers
|
|
21366
|
+
};
|
|
21367
|
+
}
|
|
21368
|
+
return null;
|
|
21369
|
+
}
|
|
21370
|
+
function configureMaxAge(options) {
|
|
21371
|
+
var maxAge = (typeof options.maxAge === "number" || options.maxAge) && options.maxAge.toString();
|
|
21372
|
+
if (maxAge && maxAge.length) {
|
|
21373
|
+
return {
|
|
21374
|
+
key: "Access-Control-Max-Age",
|
|
21375
|
+
value: maxAge
|
|
21376
|
+
};
|
|
21377
|
+
}
|
|
21378
|
+
return null;
|
|
21379
|
+
}
|
|
21380
|
+
function applyHeaders(headers, res) {
|
|
21381
|
+
for (var i = 0, n = headers.length; i < n; i++) {
|
|
21382
|
+
var header = headers[i];
|
|
21383
|
+
if (header) {
|
|
21384
|
+
if (Array.isArray(header)) {
|
|
21385
|
+
applyHeaders(header, res);
|
|
21386
|
+
} else if (header.key === "Vary" && header.value) {
|
|
21387
|
+
vary2(res, header.value);
|
|
21388
|
+
} else if (header.value) {
|
|
21389
|
+
res.setHeader(header.key, header.value);
|
|
21390
|
+
}
|
|
21391
|
+
}
|
|
21392
|
+
}
|
|
21393
|
+
}
|
|
21394
|
+
function cors2(options, req, res, next) {
|
|
21395
|
+
var headers = [], method = req.method && req.method.toUpperCase && req.method.toUpperCase();
|
|
21396
|
+
if (method === "OPTIONS") {
|
|
21397
|
+
headers.push(configureOrigin(options, req));
|
|
21398
|
+
headers.push(configureCredentials(options));
|
|
21399
|
+
headers.push(configureMethods(options));
|
|
21400
|
+
headers.push(configureAllowedHeaders(options, req));
|
|
21401
|
+
headers.push(configureMaxAge(options));
|
|
21402
|
+
headers.push(configureExposedHeaders(options));
|
|
21403
|
+
applyHeaders(headers, res);
|
|
21404
|
+
if (options.preflightContinue) {
|
|
21405
|
+
next();
|
|
21406
|
+
} else {
|
|
21407
|
+
res.statusCode = options.optionsSuccessStatus;
|
|
21408
|
+
res.setHeader("Content-Length", "0");
|
|
21409
|
+
res.end();
|
|
21410
|
+
}
|
|
21411
|
+
} else {
|
|
21412
|
+
headers.push(configureOrigin(options, req));
|
|
21413
|
+
headers.push(configureCredentials(options));
|
|
21414
|
+
headers.push(configureExposedHeaders(options));
|
|
21415
|
+
applyHeaders(headers, res);
|
|
21416
|
+
next();
|
|
21417
|
+
}
|
|
21418
|
+
}
|
|
21419
|
+
function middlewareWrapper(o) {
|
|
21420
|
+
var optionsCallback = null;
|
|
21421
|
+
if (typeof o === "function") {
|
|
21422
|
+
optionsCallback = o;
|
|
21423
|
+
} else {
|
|
21424
|
+
optionsCallback = function(req, cb) {
|
|
21425
|
+
cb(null, o);
|
|
21426
|
+
};
|
|
21427
|
+
}
|
|
21428
|
+
return function corsMiddleware(req, res, next) {
|
|
21429
|
+
optionsCallback(req, function(err, options) {
|
|
21430
|
+
if (err) {
|
|
21431
|
+
next(err);
|
|
21432
|
+
} else {
|
|
21433
|
+
var corsOptions = assign({}, defaults, options);
|
|
21434
|
+
var originCallback = null;
|
|
21435
|
+
if (corsOptions.origin && typeof corsOptions.origin === "function") {
|
|
21436
|
+
originCallback = corsOptions.origin;
|
|
21437
|
+
} else if (corsOptions.origin) {
|
|
21438
|
+
originCallback = function(origin, cb) {
|
|
21439
|
+
cb(null, corsOptions.origin);
|
|
21440
|
+
};
|
|
21441
|
+
}
|
|
21442
|
+
if (originCallback) {
|
|
21443
|
+
originCallback(req.headers.origin, function(err2, origin) {
|
|
21444
|
+
if (err2 || !origin) {
|
|
21445
|
+
next(err2);
|
|
21446
|
+
} else {
|
|
21447
|
+
corsOptions.origin = origin;
|
|
21448
|
+
cors2(corsOptions, req, res, next);
|
|
21449
|
+
}
|
|
21450
|
+
});
|
|
21451
|
+
} else {
|
|
21452
|
+
next();
|
|
21453
|
+
}
|
|
21454
|
+
}
|
|
21455
|
+
});
|
|
21456
|
+
};
|
|
21457
|
+
}
|
|
21458
|
+
lib.exports = middlewareWrapper;
|
|
21459
|
+
})();
|
|
21460
|
+
return lib.exports;
|
|
21461
|
+
}
|
|
21462
|
+
var libExports = requireLib();
|
|
21463
|
+
const cors = /* @__PURE__ */ getDefaultExportFromCjs(libExports);
|
|
21184
21464
|
process.env = {
|
|
21185
21465
|
...env,
|
|
21186
21466
|
...__rb_env__,
|
|
@@ -21188,7 +21468,8 @@ process.env = {
|
|
|
21188
21468
|
};
|
|
21189
21469
|
const initApi = async ({
|
|
21190
21470
|
app,
|
|
21191
|
-
routes
|
|
21471
|
+
routes,
|
|
21472
|
+
cors: corsOptions
|
|
21192
21473
|
}) => {
|
|
21193
21474
|
await initApiClient({ app });
|
|
21194
21475
|
const registerHandler = (method, path, handler) => {
|
|
@@ -21222,24 +21503,36 @@ const initApi = async ({
|
|
|
21222
21503
|
registerHandler("delete", path, handler);
|
|
21223
21504
|
}
|
|
21224
21505
|
};
|
|
21506
|
+
app.use("/api", cors(corsOptions));
|
|
21225
21507
|
app.use("/api", expressExports.json({ limit: "8mb" }));
|
|
21226
21508
|
app.use("/api", function __FIRST_API_MIDDLEWARE__(_req, _res, next) {
|
|
21227
21509
|
next();
|
|
21228
21510
|
});
|
|
21229
21511
|
const routeEntries = Object.entries(routes);
|
|
21230
|
-
const
|
|
21512
|
+
const totalRoutes = routeEntries.length;
|
|
21513
|
+
const loadedModules = /* @__PURE__ */ new Map();
|
|
21514
|
+
let loadedCount = 0;
|
|
21515
|
+
await BBPromise.map(routeEntries, async ([routePath, loadFn]) => {
|
|
21231
21516
|
const routeModule = await loadFn();
|
|
21232
|
-
|
|
21517
|
+
loadedModules.set(routePath, routeModule);
|
|
21518
|
+
loadedCount += 1;
|
|
21519
|
+
if (loadedCount % 32 === 0 || loadedCount === totalRoutes) {
|
|
21520
|
+
console.log(`loaded ${loadedCount}/${totalRoutes} api routes`);
|
|
21521
|
+
}
|
|
21522
|
+
return routeModule;
|
|
21523
|
+
}, { concurrency: 32 });
|
|
21524
|
+
for (const [routePath] of routeEntries) {
|
|
21525
|
+
const routeModule = loadedModules.get(routePath);
|
|
21526
|
+
if (!routeModule || typeof routeModule.default !== "function") {
|
|
21233
21527
|
console.warn(`skipping api module without default export: ${routePath}`);
|
|
21234
|
-
|
|
21528
|
+
continue;
|
|
21235
21529
|
}
|
|
21236
21530
|
routeModule.default(api);
|
|
21237
21531
|
const GRAY = "\x1B[90m";
|
|
21238
21532
|
const RESET = "\x1B[0m";
|
|
21239
21533
|
const coloredPath = routePath.startsWith("@rpcbase/") ? `${GRAY}${routePath}${RESET}` : routePath;
|
|
21240
|
-
console.log("
|
|
21241
|
-
}
|
|
21242
|
-
await BBPromise.mapSeries(routeEntries, loadRoute);
|
|
21534
|
+
console.log("registered api route", coloredPath);
|
|
21535
|
+
}
|
|
21243
21536
|
console.log("Done loading routes");
|
|
21244
21537
|
app.use("/api", (req, res) => {
|
|
21245
21538
|
res.status(404).json({ error: `Not Found: ${req.method}:${req.originalUrl}` });
|