equipped 5.3.1 → 5.3.3
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/CHANGELOG.md +9 -0
- package/dist/cjs/cache/adapters/in-memory/index.cjs +155 -155
- package/dist/cjs/cache/adapters/in-memory/index.cjs.map +1 -1
- package/dist/cjs/cache/adapters/in-memory/index.min.cjs +3 -3
- package/dist/cjs/cache/adapters/in-memory/index.min.cjs.map +1 -1
- package/dist/cjs/dbs/adapters/mongodb/index.cjs.map +1 -1
- package/dist/cjs/dbs/adapters/mongodb/index.min.cjs +2 -2
- package/dist/cjs/dbs/adapters/mongodb/index.min.cjs.map +1 -1
- package/dist/cjs/dbs/index.cjs +181 -179
- package/dist/cjs/dbs/index.cjs.map +1 -1
- package/dist/cjs/dbs/index.min.cjs +3 -3
- package/dist/cjs/dbs/index.min.cjs.map +1 -1
- package/dist/cjs/errors/index.cjs +11 -0
- package/dist/cjs/errors/index.cjs.map +1 -1
- package/dist/cjs/errors/index.min.cjs +1 -1
- package/dist/cjs/errors/index.min.cjs.map +1 -1
- package/dist/cjs/events/adapters/kafka/index.cjs.map +1 -1
- package/dist/cjs/events/adapters/kafka/index.min.cjs +2 -2
- package/dist/cjs/events/adapters/kafka/index.min.cjs.map +1 -1
- package/dist/cjs/events/adapters/rabbitmq/index.cjs +179 -179
- package/dist/cjs/events/adapters/rabbitmq/index.cjs.map +1 -1
- package/dist/cjs/events/adapters/rabbitmq/index.min.cjs +3 -3
- package/dist/cjs/events/adapters/rabbitmq/index.min.cjs.map +1 -1
- package/dist/cjs/orm/adapters/mongodb/index.cjs +144 -144
- package/dist/cjs/orm/adapters/mongodb/index.cjs.map +1 -1
- package/dist/cjs/orm/adapters/mongodb/index.min.cjs +1 -1
- package/dist/cjs/orm/adapters/mongodb/index.min.cjs.map +1 -1
- package/dist/cjs/orm/adapters/postgresql/index.cjs +152 -215
- package/dist/cjs/orm/adapters/postgresql/index.cjs.map +1 -1
- package/dist/cjs/orm/adapters/postgresql/index.min.cjs +11 -11
- package/dist/cjs/orm/adapters/postgresql/index.min.cjs.map +1 -1
- package/dist/cjs/server/adapters/express/index.cjs +292 -225
- package/dist/cjs/server/adapters/express/index.cjs.map +1 -1
- package/dist/cjs/server/adapters/express/index.min.cjs +7 -7
- package/dist/cjs/server/adapters/express/index.min.cjs.map +1 -1
- package/dist/cjs/server/adapters/fastify/index.cjs +277 -210
- package/dist/cjs/server/adapters/fastify/index.cjs.map +1 -1
- package/dist/cjs/server/adapters/fastify/index.min.cjs +7 -7
- package/dist/cjs/server/adapters/fastify/index.min.cjs.map +1 -1
- package/dist/cjs/server/index.cjs +82 -15
- package/dist/cjs/server/index.cjs.map +1 -1
- package/dist/cjs/server/index.min.cjs +7 -7
- package/dist/cjs/server/index.min.cjs.map +1 -1
- package/dist/cjs/utilities/index.cjs +0 -5
- package/dist/cjs/utilities/index.cjs.map +1 -1
- package/dist/cjs/utilities/index.min.cjs +2 -2
- package/dist/cjs/utilities/index.min.cjs.map +1 -1
- package/dist/cjs/validations/index.cjs +1 -0
- package/dist/cjs/validations/index.cjs.map +1 -1
- package/dist/cjs/validations/index.min.cjs +1 -1
- package/dist/cjs/validations/index.min.cjs.map +1 -1
- package/dist/esm/cache/adapters/in-memory/index.min.mjs +1 -1
- package/dist/esm/cache/adapters/in-memory/index.min.mjs.map +1 -1
- package/dist/esm/cache/adapters/in-memory/index.mjs +6 -3
- package/dist/esm/cache/adapters/in-memory/index.mjs.map +1 -1
- package/dist/esm/cache/adapters/redis/index.min.mjs +1 -1
- package/dist/esm/cache/adapters/redis/index.mjs +5 -3
- package/dist/esm/cache/index.min.mjs +1 -1
- package/dist/esm/cache/index.mjs +2 -2
- package/dist/esm/{chunk-2GGMLKRP.min.mjs → chunk-4GZ43EQ2.min.mjs} +2 -2
- package/dist/esm/{chunk-IRYCN6PI.min.mjs → chunk-5FEVQT6K.min.mjs} +2 -2
- package/dist/esm/{chunk-LKS5ZE45.mjs → chunk-74GY55PM.mjs} +2 -2
- package/dist/esm/{chunk-A4P7P6BU.mjs → chunk-7N4WUZ7P.mjs} +167 -347
- package/dist/esm/chunk-7N4WUZ7P.mjs.map +1 -0
- package/dist/esm/chunk-A332TTED.mjs +135 -0
- package/dist/esm/chunk-A332TTED.mjs.map +1 -0
- package/dist/esm/{chunk-7CP7ZE2O.mjs → chunk-BONYW6LU.mjs} +9 -5
- package/dist/esm/{chunk-7CP7ZE2O.mjs.map → chunk-BONYW6LU.mjs.map} +1 -1
- package/dist/esm/{chunk-HXFNN6RI.mjs → chunk-C3G4W4ZV.mjs} +3 -3
- package/dist/esm/chunk-CU2HU5UE.min.mjs +2 -0
- package/dist/esm/chunk-CU2HU5UE.min.mjs.map +1 -0
- package/dist/esm/{chunk-676VIABN.min.mjs → chunk-LJZOS62I.min.mjs} +2 -2
- package/dist/esm/{chunk-7SQ5JQYR.min.mjs → chunk-MCX2O5IT.min.mjs} +2 -2
- package/dist/esm/{chunk-BWUFPMVG.mjs → chunk-MNKDFIVK.mjs} +2 -2
- package/dist/esm/chunk-N3OD4QL2.min.mjs +32 -0
- package/dist/esm/chunk-N3OD4QL2.min.mjs.map +1 -0
- package/dist/esm/chunk-NEF3UYFA.mjs +144 -0
- package/dist/esm/chunk-NEF3UYFA.mjs.map +1 -0
- package/dist/esm/{chunk-TSVHZZE4.mjs → chunk-RFJ5URMP.mjs} +5 -5
- package/dist/esm/chunk-RX4XPABH.min.mjs +2 -0
- package/dist/esm/{chunk-MQXTTWPS.min.mjs.map → chunk-RX4XPABH.min.mjs.map} +1 -1
- package/dist/esm/chunk-SPOVKWV3.min.mjs +2 -0
- package/dist/esm/chunk-SPOVKWV3.min.mjs.map +1 -0
- package/dist/esm/{chunk-3TP7NINX.mjs → chunk-XESM7IWM.mjs} +2 -2
- package/dist/esm/{chunk-5PZACGPI.mjs → chunk-XJKBHQWO.mjs} +7 -5
- package/dist/esm/{chunk-5PZACGPI.mjs.map → chunk-XJKBHQWO.mjs.map} +1 -1
- package/dist/esm/chunk-YC6V4HLT.min.mjs +2 -0
- package/dist/esm/{chunk-7NF7PV6S.min.mjs.map → chunk-YC6V4HLT.min.mjs.map} +1 -1
- package/dist/esm/{chunk-P4PRHHIY.min.mjs → chunk-YWQTFKNY.min.mjs} +2 -2
- package/dist/esm/dbs/adapters/mongodb/index.min.mjs +1 -1
- package/dist/esm/dbs/adapters/mongodb/index.min.mjs.map +1 -1
- package/dist/esm/dbs/adapters/mongodb/index.mjs +8 -5
- package/dist/esm/dbs/adapters/mongodb/index.mjs.map +1 -1
- package/dist/esm/dbs/index.min.mjs +1 -1
- package/dist/esm/dbs/index.mjs +5 -3
- package/dist/esm/errors/index.min.mjs +1 -1
- package/dist/esm/errors/index.mjs +3 -1
- package/dist/esm/events/adapters/kafka/index.min.mjs +1 -1
- package/dist/esm/events/adapters/kafka/index.mjs +4 -2
- package/dist/esm/events/adapters/rabbitmq/index.min.mjs +1 -1
- package/dist/esm/events/adapters/rabbitmq/index.min.mjs.map +1 -1
- package/dist/esm/events/adapters/rabbitmq/index.mjs +7 -3
- package/dist/esm/events/adapters/rabbitmq/index.mjs.map +1 -1
- package/dist/esm/index.min.mjs +1 -1
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/instance/index.min.mjs +1 -1
- package/dist/esm/instance/index.mjs +1 -1
- package/dist/esm/introspection-TO27QT2X.min.mjs +2 -0
- package/dist/esm/{introspection-YJF3QAUK.mjs → introspection-ZUQYVEFC.mjs} +3 -3
- package/dist/esm/jobs/adapters/redis/index.min.mjs +1 -1
- package/dist/esm/jobs/adapters/redis/index.min.mjs.map +1 -1
- package/dist/esm/jobs/adapters/redis/index.mjs +10 -6
- package/dist/esm/jobs/adapters/redis/index.mjs.map +1 -1
- package/dist/esm/orm/adapters/in-memory/index.min.mjs +1 -1
- package/dist/esm/orm/adapters/in-memory/index.mjs +4 -3
- package/dist/esm/orm/adapters/json/index.min.mjs +1 -1
- package/dist/esm/orm/adapters/json/index.min.mjs.map +1 -1
- package/dist/esm/orm/adapters/json/index.mjs +6 -5
- package/dist/esm/orm/adapters/json/index.mjs.map +1 -1
- package/dist/esm/orm/adapters/mongodb/index.min.mjs +1 -1
- package/dist/esm/orm/adapters/mongodb/index.min.mjs.map +1 -1
- package/dist/esm/orm/adapters/mongodb/index.mjs +6 -4
- package/dist/esm/orm/adapters/mongodb/index.mjs.map +1 -1
- package/dist/esm/orm/adapters/postgresql/index.min.mjs +2 -2
- package/dist/esm/orm/adapters/postgresql/index.min.mjs.map +1 -1
- package/dist/esm/orm/adapters/postgresql/index.mjs +8 -5
- package/dist/esm/orm/adapters/postgresql/index.mjs.map +1 -1
- package/dist/esm/orm/index.min.mjs +1 -1
- package/dist/esm/orm/index.mjs +3 -3
- package/dist/esm/server/adapters/express/index.min.mjs +1 -1
- package/dist/esm/server/adapters/express/index.min.mjs.map +1 -1
- package/dist/esm/server/adapters/express/index.mjs +7 -3
- package/dist/esm/server/adapters/express/index.mjs.map +1 -1
- package/dist/esm/server/adapters/fastify/index.min.mjs +1 -1
- package/dist/esm/server/adapters/fastify/index.min.mjs.map +1 -1
- package/dist/esm/server/adapters/fastify/index.mjs +7 -3
- package/dist/esm/server/adapters/fastify/index.mjs.map +1 -1
- package/dist/esm/server/index.min.mjs +1 -1
- package/dist/esm/server/index.mjs +1 -1
- package/dist/esm/utilities/index.min.mjs +1 -1
- package/dist/esm/utilities/index.mjs +5 -4
- package/dist/esm/validations/index.min.mjs +1 -1
- package/dist/esm/validations/index.mjs +1 -1
- package/dist/types/{base-BDTBLZ9a.d.ts → base-BnwwLupM.d.ts} +3 -3
- package/dist/types/cache/adapters/in-memory/index.js +6 -3
- package/dist/types/cache/adapters/redis/index.js +5 -3
- package/dist/types/cache/index.js +2 -2
- package/dist/types/chunk-7MXHWHRV.js +134 -0
- package/dist/types/{chunk-LPB5LS7A.js → chunk-BKXNLF6X.js} +1 -1
- package/dist/types/{chunk-J3TGB5YQ.js → chunk-DZFKDZDZ.js} +8 -4
- package/dist/types/{chunk-YLJNBL6J.js → chunk-GQRSK2KP.js} +6 -4
- package/dist/types/chunk-PPD4WDG6.js +143 -0
- package/dist/types/{chunk-55CTVK7R.js → chunk-SZAA5GF6.js} +1 -1
- package/dist/types/{chunk-4DH3POYM.js → chunk-UGLZIYAR.js} +4 -4
- package/dist/types/{chunk-5Z26ZURE.js → chunk-UR7O43FC.js} +1 -1
- package/dist/types/{chunk-IZDJDGOV.js → chunk-X5ZDIXCZ.js} +2 -2
- package/dist/types/{chunk-TT5EORDK.js → chunk-YGIIUOQM.js} +166 -346
- package/dist/types/dbs/adapters/mongodb/index.js +8 -5
- package/dist/types/dbs/index.js +5 -3
- package/dist/types/errors/index.d.ts +8 -3
- package/dist/types/errors/index.js +3 -1
- package/dist/types/events/adapters/kafka/index.js +4 -2
- package/dist/types/events/adapters/rabbitmq/index.js +7 -3
- package/dist/types/index.js +1 -1
- package/dist/types/instance/index.js +1 -1
- package/dist/types/{introspection-EHGM4RMO.js → introspection-ZQMYTW6H.js} +2 -2
- package/dist/types/jobs/adapters/redis/index.js +10 -6
- package/dist/types/orm/adapters/in-memory/index.js +4 -3
- package/dist/types/orm/adapters/json/index.js +6 -5
- package/dist/types/orm/adapters/mongodb/index.js +6 -4
- package/dist/types/orm/adapters/postgresql/index.js +8 -5
- package/dist/types/orm/index.js +3 -3
- package/dist/types/{requestError-DdaL8hc3.d.ts → requestError-BmOhSuFb.d.ts} +1 -0
- package/dist/types/server/adapters/express/index.d.ts +2 -2
- package/dist/types/server/adapters/express/index.js +7 -3
- package/dist/types/server/adapters/fastify/index.d.ts +3 -3
- package/dist/types/server/adapters/fastify/index.js +7 -3
- package/dist/types/server/index.d.ts +4 -4
- package/dist/types/server/index.js +1 -1
- package/dist/types/utilities/index.d.ts +1 -2
- package/dist/types/utilities/index.js +5 -4
- package/dist/types/{validationError-oigtHqBi.d.ts → validationError-C2tVK4s7.d.ts} +1 -1
- package/dist/types/validations/index.d.ts +4 -4
- package/dist/types/validations/index.js +1 -1
- package/package.json +1 -1
- package/dist/esm/chunk-7NF7PV6S.min.mjs +0 -2
- package/dist/esm/chunk-A4P7P6BU.mjs.map +0 -1
- package/dist/esm/chunk-IN5YKIJ7.min.mjs +0 -32
- package/dist/esm/chunk-IN5YKIJ7.min.mjs.map +0 -1
- package/dist/esm/chunk-MQXTTWPS.min.mjs +0 -2
- package/dist/esm/introspection-THKMXV5V.min.mjs +0 -2
- /package/dist/esm/{chunk-2GGMLKRP.min.mjs.map → chunk-4GZ43EQ2.min.mjs.map} +0 -0
- /package/dist/esm/{chunk-IRYCN6PI.min.mjs.map → chunk-5FEVQT6K.min.mjs.map} +0 -0
- /package/dist/esm/{chunk-LKS5ZE45.mjs.map → chunk-74GY55PM.mjs.map} +0 -0
- /package/dist/esm/{chunk-HXFNN6RI.mjs.map → chunk-C3G4W4ZV.mjs.map} +0 -0
- /package/dist/esm/{chunk-676VIABN.min.mjs.map → chunk-LJZOS62I.min.mjs.map} +0 -0
- /package/dist/esm/{chunk-7SQ5JQYR.min.mjs.map → chunk-MCX2O5IT.min.mjs.map} +0 -0
- /package/dist/esm/{chunk-BWUFPMVG.mjs.map → chunk-MNKDFIVK.mjs.map} +0 -0
- /package/dist/esm/{chunk-TSVHZZE4.mjs.map → chunk-RFJ5URMP.mjs.map} +0 -0
- /package/dist/esm/{chunk-3TP7NINX.mjs.map → chunk-XESM7IWM.mjs.map} +0 -0
- /package/dist/esm/{chunk-P4PRHHIY.min.mjs.map → chunk-YWQTFKNY.min.mjs.map} +0 -0
- /package/dist/esm/{introspection-THKMXV5V.min.mjs.map → introspection-TO27QT2X.min.mjs.map} +0 -0
- /package/dist/esm/{introspection-YJF3QAUK.mjs.map → introspection-ZUQYVEFC.mjs.map} +0 -0
|
@@ -610,216 +610,6 @@ ${settingsValidity.error.toString()}`, {
|
|
|
610
610
|
}
|
|
611
611
|
});
|
|
612
612
|
|
|
613
|
-
// src/utilities/authProviders.ts
|
|
614
|
-
var import_axios, import_jsonwebtoken, import_jwks_rsa;
|
|
615
|
-
var init_authProviders = __esm({
|
|
616
|
-
"src/utilities/authProviders.ts"() {
|
|
617
|
-
"use strict";
|
|
618
|
-
import_axios = __toESM(require("axios"), 1);
|
|
619
|
-
import_jsonwebtoken = __toESM(require("jsonwebtoken"), 1);
|
|
620
|
-
import_jwks_rsa = __toESM(require("jwks-rsa"), 1);
|
|
621
|
-
}
|
|
622
|
-
});
|
|
623
|
-
|
|
624
|
-
// src/utilities/configurable.ts
|
|
625
|
-
function configurable(pipeFn, base) {
|
|
626
|
-
const pipe = pipeFn();
|
|
627
|
-
import_valleyed3.v.compile(pipe);
|
|
628
|
-
class Configurable extends base {
|
|
629
|
-
constructor(config, ...baseArgs) {
|
|
630
|
-
super(...baseArgs);
|
|
631
|
-
this.config = config;
|
|
632
|
-
}
|
|
633
|
-
static create(input, ...args) {
|
|
634
|
-
const r = import_valleyed3.v.validate(pipe, input);
|
|
635
|
-
if (!r.valid) throw r.error;
|
|
636
|
-
return new this(r.value, ...args);
|
|
637
|
-
}
|
|
638
|
-
}
|
|
639
|
-
return Configurable;
|
|
640
|
-
}
|
|
641
|
-
var import_valleyed3;
|
|
642
|
-
var init_configurable = __esm({
|
|
643
|
-
"src/utilities/configurable.ts"() {
|
|
644
|
-
"use strict";
|
|
645
|
-
import_valleyed3 = require("valleyed");
|
|
646
|
-
if (void 0) {
|
|
647
|
-
const { describe, test, expect, expectTypeOf } = void 0;
|
|
648
|
-
const { v: v6 } = null;
|
|
649
|
-
const testPipe = () => v6.object({
|
|
650
|
-
host: v6.string(),
|
|
651
|
-
port: v6.number()
|
|
652
|
-
});
|
|
653
|
-
class TestBase {
|
|
654
|
-
baseValue;
|
|
655
|
-
constructor() {
|
|
656
|
-
this.baseValue = "base";
|
|
657
|
-
}
|
|
658
|
-
}
|
|
659
|
-
class TestBaseWithArgs {
|
|
660
|
-
label;
|
|
661
|
-
constructor(label) {
|
|
662
|
-
this.label = label;
|
|
663
|
-
}
|
|
664
|
-
}
|
|
665
|
-
describe("configurable", () => {
|
|
666
|
-
test("validation runs in static create before constructor body executes", () => {
|
|
667
|
-
let constructorRan = false;
|
|
668
|
-
const Wrapped = configurable(testPipe, TestBase);
|
|
669
|
-
class MyClass extends Wrapped {
|
|
670
|
-
constructor(config) {
|
|
671
|
-
super(config);
|
|
672
|
-
constructorRan = true;
|
|
673
|
-
}
|
|
674
|
-
}
|
|
675
|
-
expect(() => MyClass.create({ host: 123, port: "bad" })).toThrow();
|
|
676
|
-
expect(constructorRan).toBe(false);
|
|
677
|
-
MyClass.create({ host: "localhost", port: 3e3 });
|
|
678
|
-
expect(constructorRan).toBe(true);
|
|
679
|
-
});
|
|
680
|
-
test("constructor receives validated value", () => {
|
|
681
|
-
const Wrapped = configurable(testPipe, TestBase);
|
|
682
|
-
let receivedConfig;
|
|
683
|
-
class MyClass extends Wrapped {
|
|
684
|
-
constructor(config) {
|
|
685
|
-
super(config);
|
|
686
|
-
receivedConfig = this.config;
|
|
687
|
-
}
|
|
688
|
-
}
|
|
689
|
-
MyClass.create({ host: "localhost", port: 3e3 });
|
|
690
|
-
expect(receivedConfig).toEqual({ host: "localhost", port: 3e3 });
|
|
691
|
-
});
|
|
692
|
-
test("external new is a compile error", () => {
|
|
693
|
-
const Wrapped = configurable(testPipe, TestBase);
|
|
694
|
-
class MyClass extends Wrapped {
|
|
695
|
-
constructor(config) {
|
|
696
|
-
super(config);
|
|
697
|
-
}
|
|
698
|
-
}
|
|
699
|
-
void (() => new MyClass({ host: "localhost", port: 3e3 }));
|
|
700
|
-
});
|
|
701
|
-
test("static Config resolves to PipeOutput<P> at the type level", () => {
|
|
702
|
-
const Wrapped = configurable(testPipe, TestBase);
|
|
703
|
-
class MyClass extends Wrapped {
|
|
704
|
-
constructor(config) {
|
|
705
|
-
super(config);
|
|
706
|
-
}
|
|
707
|
-
}
|
|
708
|
-
expectTypeOf().toEqualTypeOf();
|
|
709
|
-
expect(MyClass.create).toBeTypeOf("function");
|
|
710
|
-
});
|
|
711
|
-
test("ConstructorParameters<This>-based extras inference works for non-zero-arg leaf signatures", () => {
|
|
712
|
-
const Wrapped = configurable(testPipe, TestBase);
|
|
713
|
-
class MyClass extends Wrapped {
|
|
714
|
-
extra;
|
|
715
|
-
constructor(config, extra) {
|
|
716
|
-
super(config);
|
|
717
|
-
this.extra = extra;
|
|
718
|
-
}
|
|
719
|
-
}
|
|
720
|
-
const instance = MyClass.create({ host: "localhost", port: 3e3 }, 42);
|
|
721
|
-
expect(instance.extra).toBe(42);
|
|
722
|
-
expectTypeOf(instance).toHaveProperty("extra");
|
|
723
|
-
expectTypeOf(instance.extra).toEqualTypeOf();
|
|
724
|
-
void (() => MyClass.create({ host: "localhost", port: 3e3 }, "not-a-number"));
|
|
725
|
-
});
|
|
726
|
-
test("base-args forwarding works for non-zero-arg bases", () => {
|
|
727
|
-
const Wrapped = configurable(testPipe, TestBaseWithArgs);
|
|
728
|
-
class MyClass extends Wrapped {
|
|
729
|
-
constructor(config, label) {
|
|
730
|
-
super(config, label);
|
|
731
|
-
}
|
|
732
|
-
}
|
|
733
|
-
const instance = MyClass.create({ host: "localhost", port: 3e3 }, "test-label");
|
|
734
|
-
expect(instance.label).toBe("test-label");
|
|
735
|
-
});
|
|
736
|
-
test("config is accessible as protected readonly on instances", () => {
|
|
737
|
-
const Wrapped = configurable(testPipe, TestBase);
|
|
738
|
-
class MyClass extends Wrapped {
|
|
739
|
-
constructor(config) {
|
|
740
|
-
super(config);
|
|
741
|
-
}
|
|
742
|
-
getHost() {
|
|
743
|
-
return this.config.host;
|
|
744
|
-
}
|
|
745
|
-
}
|
|
746
|
-
const instance = MyClass.create({ host: "localhost", port: 3e3 });
|
|
747
|
-
expect(instance.getHost()).toBe("localhost");
|
|
748
|
-
});
|
|
749
|
-
test("accepts an abstract base class", () => {
|
|
750
|
-
class AbstractBase {
|
|
751
|
-
}
|
|
752
|
-
const Wrapped = configurable(testPipe, AbstractBase);
|
|
753
|
-
class Concrete extends Wrapped {
|
|
754
|
-
constructor(config) {
|
|
755
|
-
super(config);
|
|
756
|
-
}
|
|
757
|
-
greet() {
|
|
758
|
-
return `hello from ${this.config.host}`;
|
|
759
|
-
}
|
|
760
|
-
}
|
|
761
|
-
const instance = Concrete.create({ host: "localhost", port: 3e3 });
|
|
762
|
-
expect(instance.greet()).toBe("hello from localhost");
|
|
763
|
-
expectTypeOf(instance).toHaveProperty("config");
|
|
764
|
-
});
|
|
765
|
-
});
|
|
766
|
-
}
|
|
767
|
-
}
|
|
768
|
-
});
|
|
769
|
-
|
|
770
|
-
// src/utilities/hash.ts
|
|
771
|
-
var bcrypt;
|
|
772
|
-
var init_hash = __esm({
|
|
773
|
-
"src/utilities/hash.ts"() {
|
|
774
|
-
"use strict";
|
|
775
|
-
bcrypt = __toESM(require("bcryptjs"), 1);
|
|
776
|
-
}
|
|
777
|
-
});
|
|
778
|
-
|
|
779
|
-
// src/utilities/json.ts
|
|
780
|
-
var init_json = __esm({
|
|
781
|
-
"src/utilities/json.ts"() {
|
|
782
|
-
"use strict";
|
|
783
|
-
}
|
|
784
|
-
});
|
|
785
|
-
|
|
786
|
-
// src/utilities/media.ts
|
|
787
|
-
var import_music_metadata;
|
|
788
|
-
var init_media = __esm({
|
|
789
|
-
"src/utilities/media.ts"() {
|
|
790
|
-
"use strict";
|
|
791
|
-
import_music_metadata = require("music-metadata");
|
|
792
|
-
}
|
|
793
|
-
});
|
|
794
|
-
|
|
795
|
-
// src/utilities/random.ts
|
|
796
|
-
var init_random = __esm({
|
|
797
|
-
"src/utilities/random.ts"() {
|
|
798
|
-
"use strict";
|
|
799
|
-
}
|
|
800
|
-
});
|
|
801
|
-
|
|
802
|
-
// src/utilities/retry.ts
|
|
803
|
-
var init_retry = __esm({
|
|
804
|
-
"src/utilities/retry.ts"() {
|
|
805
|
-
"use strict";
|
|
806
|
-
}
|
|
807
|
-
});
|
|
808
|
-
|
|
809
|
-
// src/utilities/index.ts
|
|
810
|
-
var init_utilities = __esm({
|
|
811
|
-
"src/utilities/index.ts"() {
|
|
812
|
-
"use strict";
|
|
813
|
-
init_authProviders();
|
|
814
|
-
init_configurable();
|
|
815
|
-
init_hash();
|
|
816
|
-
init_json();
|
|
817
|
-
init_media();
|
|
818
|
-
init_random();
|
|
819
|
-
init_retry();
|
|
820
|
-
}
|
|
821
|
-
});
|
|
822
|
-
|
|
823
613
|
// src/errors/types/badRequestError.ts
|
|
824
614
|
var init_badRequestError = __esm({
|
|
825
615
|
"src/errors/types/badRequestError.ts"() {
|
|
@@ -848,6 +638,13 @@ var init_notFoundError = __esm({
|
|
|
848
638
|
}
|
|
849
639
|
});
|
|
850
640
|
|
|
641
|
+
// src/errors/types/preconditionRequiredError.ts
|
|
642
|
+
var init_preconditionRequiredError = __esm({
|
|
643
|
+
"src/errors/types/preconditionRequiredError.ts"() {
|
|
644
|
+
"use strict";
|
|
645
|
+
}
|
|
646
|
+
});
|
|
647
|
+
|
|
851
648
|
// src/errors/types/tokenExpired.ts
|
|
852
649
|
var init_tokenExpired = __esm({
|
|
853
650
|
"src/errors/types/tokenExpired.ts"() {
|
|
@@ -872,6 +669,7 @@ var init_errors = __esm({
|
|
|
872
669
|
init_notAuthenticatedError();
|
|
873
670
|
init_notAuthorizedError();
|
|
874
671
|
init_notFoundError();
|
|
672
|
+
init_preconditionRequiredError();
|
|
875
673
|
init_tokenExpired();
|
|
876
674
|
init_validationError();
|
|
877
675
|
}
|
|
@@ -948,7 +746,7 @@ var import_valleyed5 = require("valleyed");
|
|
|
948
746
|
init_errors();
|
|
949
747
|
|
|
950
748
|
// src/orm/fields.ts
|
|
951
|
-
var
|
|
749
|
+
var import_valleyed3 = require("valleyed");
|
|
952
750
|
var Field = class {
|
|
953
751
|
name;
|
|
954
752
|
path;
|
|
@@ -987,7 +785,7 @@ if (void 0) {
|
|
|
987
785
|
});
|
|
988
786
|
describe("SchemaField", () => {
|
|
989
787
|
test("extends Field and stores pipe", () => {
|
|
990
|
-
const mockPipe =
|
|
788
|
+
const mockPipe = v3.string();
|
|
991
789
|
const f = new SchemaField("email", mockPipe);
|
|
992
790
|
expect(f).toBeInstanceOf(Field);
|
|
993
791
|
expect(f.name).toBe("email");
|
|
@@ -995,7 +793,7 @@ if (void 0) {
|
|
|
995
793
|
expect(f.pipe).toBe(mockPipe);
|
|
996
794
|
});
|
|
997
795
|
test("stores lifecycle hooks when provided", () => {
|
|
998
|
-
const mockPipe =
|
|
796
|
+
const mockPipe = v3.number();
|
|
999
797
|
const f = new SchemaField("updatedAt", mockPipe, {
|
|
1000
798
|
onCreate: () => 1e3,
|
|
1001
799
|
onUpdate: () => 2e3
|
|
@@ -1004,7 +802,7 @@ if (void 0) {
|
|
|
1004
802
|
expect(f.onUpdate?.()).toBe(2e3);
|
|
1005
803
|
});
|
|
1006
804
|
test("keeps lifecycle hooks undefined when omitted", () => {
|
|
1007
|
-
const mockPipe =
|
|
805
|
+
const mockPipe = v3.string();
|
|
1008
806
|
const f = new SchemaField("name", mockPipe);
|
|
1009
807
|
expect(f.onCreate).toBeUndefined();
|
|
1010
808
|
expect(f.onUpdate).toBeUndefined();
|
|
@@ -2466,7 +2264,146 @@ if (void 0) {
|
|
|
2466
2264
|
|
|
2467
2265
|
// src/orm/adapters/postgresql/index.ts
|
|
2468
2266
|
init_errors();
|
|
2469
|
-
|
|
2267
|
+
|
|
2268
|
+
// src/utilities/configurable.ts
|
|
2269
|
+
var import_valleyed4 = require("valleyed");
|
|
2270
|
+
function configurable(pipeFn, base) {
|
|
2271
|
+
const pipe = pipeFn();
|
|
2272
|
+
import_valleyed4.v.compile(pipe);
|
|
2273
|
+
class Configurable extends base {
|
|
2274
|
+
constructor(config, ...baseArgs) {
|
|
2275
|
+
super(...baseArgs);
|
|
2276
|
+
this.config = config;
|
|
2277
|
+
}
|
|
2278
|
+
static create(input, ...args) {
|
|
2279
|
+
const r = import_valleyed4.v.validate(pipe, input);
|
|
2280
|
+
if (!r.valid) throw r.error;
|
|
2281
|
+
return new this(r.value, ...args);
|
|
2282
|
+
}
|
|
2283
|
+
}
|
|
2284
|
+
return Configurable;
|
|
2285
|
+
}
|
|
2286
|
+
if (void 0) {
|
|
2287
|
+
const { describe, test, expect, expectTypeOf } = void 0;
|
|
2288
|
+
const { v: v6 } = null;
|
|
2289
|
+
const testPipe = () => v6.object({
|
|
2290
|
+
host: v6.string(),
|
|
2291
|
+
port: v6.number()
|
|
2292
|
+
});
|
|
2293
|
+
class TestBase {
|
|
2294
|
+
baseValue;
|
|
2295
|
+
constructor() {
|
|
2296
|
+
this.baseValue = "base";
|
|
2297
|
+
}
|
|
2298
|
+
}
|
|
2299
|
+
class TestBaseWithArgs {
|
|
2300
|
+
label;
|
|
2301
|
+
constructor(label) {
|
|
2302
|
+
this.label = label;
|
|
2303
|
+
}
|
|
2304
|
+
}
|
|
2305
|
+
describe("configurable", () => {
|
|
2306
|
+
test("validation runs in static create before constructor body executes", () => {
|
|
2307
|
+
let constructorRan = false;
|
|
2308
|
+
const Wrapped = configurable(testPipe, TestBase);
|
|
2309
|
+
class MyClass extends Wrapped {
|
|
2310
|
+
constructor(config) {
|
|
2311
|
+
super(config);
|
|
2312
|
+
constructorRan = true;
|
|
2313
|
+
}
|
|
2314
|
+
}
|
|
2315
|
+
expect(() => MyClass.create({ host: 123, port: "bad" })).toThrow();
|
|
2316
|
+
expect(constructorRan).toBe(false);
|
|
2317
|
+
MyClass.create({ host: "localhost", port: 3e3 });
|
|
2318
|
+
expect(constructorRan).toBe(true);
|
|
2319
|
+
});
|
|
2320
|
+
test("constructor receives validated value", () => {
|
|
2321
|
+
const Wrapped = configurable(testPipe, TestBase);
|
|
2322
|
+
let receivedConfig;
|
|
2323
|
+
class MyClass extends Wrapped {
|
|
2324
|
+
constructor(config) {
|
|
2325
|
+
super(config);
|
|
2326
|
+
receivedConfig = this.config;
|
|
2327
|
+
}
|
|
2328
|
+
}
|
|
2329
|
+
MyClass.create({ host: "localhost", port: 3e3 });
|
|
2330
|
+
expect(receivedConfig).toEqual({ host: "localhost", port: 3e3 });
|
|
2331
|
+
});
|
|
2332
|
+
test("external new is a compile error", () => {
|
|
2333
|
+
const Wrapped = configurable(testPipe, TestBase);
|
|
2334
|
+
class MyClass extends Wrapped {
|
|
2335
|
+
constructor(config) {
|
|
2336
|
+
super(config);
|
|
2337
|
+
}
|
|
2338
|
+
}
|
|
2339
|
+
void (() => new MyClass({ host: "localhost", port: 3e3 }));
|
|
2340
|
+
});
|
|
2341
|
+
test("static Config resolves to PipeOutput<P> at the type level", () => {
|
|
2342
|
+
const Wrapped = configurable(testPipe, TestBase);
|
|
2343
|
+
class MyClass extends Wrapped {
|
|
2344
|
+
constructor(config) {
|
|
2345
|
+
super(config);
|
|
2346
|
+
}
|
|
2347
|
+
}
|
|
2348
|
+
expectTypeOf().toEqualTypeOf();
|
|
2349
|
+
expect(MyClass.create).toBeTypeOf("function");
|
|
2350
|
+
});
|
|
2351
|
+
test("ConstructorParameters<This>-based extras inference works for non-zero-arg leaf signatures", () => {
|
|
2352
|
+
const Wrapped = configurable(testPipe, TestBase);
|
|
2353
|
+
class MyClass extends Wrapped {
|
|
2354
|
+
extra;
|
|
2355
|
+
constructor(config, extra) {
|
|
2356
|
+
super(config);
|
|
2357
|
+
this.extra = extra;
|
|
2358
|
+
}
|
|
2359
|
+
}
|
|
2360
|
+
const instance = MyClass.create({ host: "localhost", port: 3e3 }, 42);
|
|
2361
|
+
expect(instance.extra).toBe(42);
|
|
2362
|
+
expectTypeOf(instance).toHaveProperty("extra");
|
|
2363
|
+
expectTypeOf(instance.extra).toEqualTypeOf();
|
|
2364
|
+
void (() => MyClass.create({ host: "localhost", port: 3e3 }, "not-a-number"));
|
|
2365
|
+
});
|
|
2366
|
+
test("base-args forwarding works for non-zero-arg bases", () => {
|
|
2367
|
+
const Wrapped = configurable(testPipe, TestBaseWithArgs);
|
|
2368
|
+
class MyClass extends Wrapped {
|
|
2369
|
+
constructor(config, label) {
|
|
2370
|
+
super(config, label);
|
|
2371
|
+
}
|
|
2372
|
+
}
|
|
2373
|
+
const instance = MyClass.create({ host: "localhost", port: 3e3 }, "test-label");
|
|
2374
|
+
expect(instance.label).toBe("test-label");
|
|
2375
|
+
});
|
|
2376
|
+
test("config is accessible as protected readonly on instances", () => {
|
|
2377
|
+
const Wrapped = configurable(testPipe, TestBase);
|
|
2378
|
+
class MyClass extends Wrapped {
|
|
2379
|
+
constructor(config) {
|
|
2380
|
+
super(config);
|
|
2381
|
+
}
|
|
2382
|
+
getHost() {
|
|
2383
|
+
return this.config.host;
|
|
2384
|
+
}
|
|
2385
|
+
}
|
|
2386
|
+
const instance = MyClass.create({ host: "localhost", port: 3e3 });
|
|
2387
|
+
expect(instance.getHost()).toBe("localhost");
|
|
2388
|
+
});
|
|
2389
|
+
test("accepts an abstract base class", () => {
|
|
2390
|
+
class AbstractBase {
|
|
2391
|
+
}
|
|
2392
|
+
const Wrapped = configurable(testPipe, AbstractBase);
|
|
2393
|
+
class Concrete extends Wrapped {
|
|
2394
|
+
constructor(config) {
|
|
2395
|
+
super(config);
|
|
2396
|
+
}
|
|
2397
|
+
greet() {
|
|
2398
|
+
return `hello from ${this.config.host}`;
|
|
2399
|
+
}
|
|
2400
|
+
}
|
|
2401
|
+
const instance = Concrete.create({ host: "localhost", port: 3e3 });
|
|
2402
|
+
expect(instance.greet()).toBe("hello from localhost");
|
|
2403
|
+
expectTypeOf(instance).toHaveProperty("config");
|
|
2404
|
+
});
|
|
2405
|
+
});
|
|
2406
|
+
}
|
|
2470
2407
|
|
|
2471
2408
|
// src/orm/orm-adapter.ts
|
|
2472
2409
|
init_errors();
|