@atlantjs/backend 11.0.20 → 11.0.22
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/index.d.ts +3 -0
- package/index.js +7 -1
- package/package.json +7 -6
- package/setup/index.d.ts +1 -2
- package/setup-test/create-work-stub.d.ts +8 -0
- package/setup-test/create-work-stub.js +22 -0
- package/setup-test/faker-server.d.ts +9 -0
- package/setup-test/faker-server.js +37 -0
- package/setup-test/get-boundary.d.ts +2 -0
- package/setup-test/get-boundary.js +20 -0
- package/setup-test/test-setup.d.ts +1 -0
- package/setup-test/test-setup.js +16 -0
- package/tsconfig.tsbuildinfo +1 -1
package/index.d.ts
CHANGED
|
@@ -5,6 +5,9 @@ export { NextFunction, Request, RequestHandler, Response } from "express";
|
|
|
5
5
|
export { HttpContentTypePoint } from "./backend/boundary/forces/thetas/http-content-type.point";
|
|
6
6
|
export { Get, Post, Put, Patch, Delete, } from "./backend/boundary/forces/thetas/http-method.theta";
|
|
7
7
|
export { APP_PORT, LOAD_MODULES, CORS_ALLOWED_ORIGINS, ENVIRONMENT, } from "./backend/stitch/verses";
|
|
8
|
+
export { getBoundary } from "./setup-test/get-boundary";
|
|
9
|
+
export { FakeServer } from "./setup-test/faker-server";
|
|
10
|
+
export { createWorkStub } from "./setup-test/create-work-stub";
|
|
8
11
|
export { ThetaHandlerAbstract } from "./backend/mesh/thetas/theta.handler.abstract";
|
|
9
12
|
export { ProviderAbstract } from "./backend/mesh/providers/provider.abstract";
|
|
10
13
|
export { RepositoryAbstract } from "./backend/mesh/repositories/repository.abstract";
|
package/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EmailDeliveryProvider = exports.ForceResponse = exports.StitchesAbstract = exports.initialize = exports.stitchable = exports.toStitch = exports.Server = exports.DefaultErrorHandlerTheta = exports.CorsTheta = exports.BodyParserTheta = exports.DiContainerAbstract = exports.diContainer = exports.startContainer = exports.ValidatorAbstract = exports.ForceAbstract = exports.WorkAbstract = exports.ServiceAbstract = exports.RepositoryAbstract = exports.ProviderAbstract = exports.ThetaHandlerAbstract = exports.ENVIRONMENT = exports.CORS_ALLOWED_ORIGINS = exports.LOAD_MODULES = exports.APP_PORT = exports.Delete = exports.Patch = exports.Put = exports.Post = exports.Get = exports.HttpContentTypePoint = exports.QueryParam = exports.Param = exports.Req = exports.Body = exports.Res = exports.JsonForce = exports.UseBefore = exports.getFromContainer = void 0;
|
|
3
|
+
exports.EmailDeliveryProvider = exports.ForceResponse = exports.StitchesAbstract = exports.initialize = exports.stitchable = exports.toStitch = exports.Server = exports.DefaultErrorHandlerTheta = exports.CorsTheta = exports.BodyParserTheta = exports.DiContainerAbstract = exports.diContainer = exports.startContainer = exports.ValidatorAbstract = exports.ForceAbstract = exports.WorkAbstract = exports.ServiceAbstract = exports.RepositoryAbstract = exports.ProviderAbstract = exports.ThetaHandlerAbstract = exports.createWorkStub = exports.FakeServer = exports.getBoundary = exports.ENVIRONMENT = exports.CORS_ALLOWED_ORIGINS = exports.LOAD_MODULES = exports.APP_PORT = exports.Delete = exports.Patch = exports.Put = exports.Post = exports.Get = exports.HttpContentTypePoint = exports.QueryParam = exports.Param = exports.Req = exports.Body = exports.Res = exports.JsonForce = exports.UseBefore = exports.getFromContainer = void 0;
|
|
4
4
|
require("./backend/stitch/verses/load-verses");
|
|
5
5
|
require("reflect-metadata");
|
|
6
6
|
const setup_1 = require("./setup");
|
|
@@ -27,6 +27,12 @@ Object.defineProperty(exports, "APP_PORT", { enumerable: true, get: function ()
|
|
|
27
27
|
Object.defineProperty(exports, "LOAD_MODULES", { enumerable: true, get: function () { return verses_1.LOAD_MODULES; } });
|
|
28
28
|
Object.defineProperty(exports, "CORS_ALLOWED_ORIGINS", { enumerable: true, get: function () { return verses_1.CORS_ALLOWED_ORIGINS; } });
|
|
29
29
|
Object.defineProperty(exports, "ENVIRONMENT", { enumerable: true, get: function () { return verses_1.ENVIRONMENT; } });
|
|
30
|
+
var get_boundary_1 = require("./setup-test/get-boundary");
|
|
31
|
+
Object.defineProperty(exports, "getBoundary", { enumerable: true, get: function () { return get_boundary_1.getBoundary; } });
|
|
32
|
+
var faker_server_1 = require("./setup-test/faker-server");
|
|
33
|
+
Object.defineProperty(exports, "FakeServer", { enumerable: true, get: function () { return faker_server_1.FakeServer; } });
|
|
34
|
+
var create_work_stub_1 = require("./setup-test/create-work-stub");
|
|
35
|
+
Object.defineProperty(exports, "createWorkStub", { enumerable: true, get: function () { return create_work_stub_1.createWorkStub; } });
|
|
30
36
|
var theta_handler_abstract_1 = require("./backend/mesh/thetas/theta.handler.abstract");
|
|
31
37
|
Object.defineProperty(exports, "ThetaHandlerAbstract", { enumerable: true, get: function () { return theta_handler_abstract_1.ThetaHandlerAbstract; } });
|
|
32
38
|
var provider_abstract_1 = require("./backend/mesh/providers/provider.abstract");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlantjs/backend",
|
|
3
|
-
"version": "11.0.
|
|
3
|
+
"version": "11.0.22",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"publishConfig": {
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"test": "tests"
|
|
12
12
|
},
|
|
13
13
|
"engines": {
|
|
14
|
-
"node": "
|
|
14
|
+
"node": "24.16.x"
|
|
15
15
|
},
|
|
16
16
|
"repository": {
|
|
17
17
|
"type": "git",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"@atlantjs/arch": "15.4.2",
|
|
35
35
|
"@atlantjs/database": "2.1.10",
|
|
36
36
|
"@atlantjs/parchment": "1.0.28",
|
|
37
|
-
"@aws-sdk/client-ses": "3.
|
|
37
|
+
"@aws-sdk/client-ses": "3.1057.0",
|
|
38
38
|
"@types/signale": "^1.4.7",
|
|
39
39
|
"body-parser": "1.20.2",
|
|
40
40
|
"cfonts": "^3.3.1",
|
|
@@ -53,17 +53,18 @@
|
|
|
53
53
|
"resend": "6.9.3",
|
|
54
54
|
"routing-controllers": "0.10.4",
|
|
55
55
|
"routing-controllers-openapi": "4.0.0",
|
|
56
|
-
"signale": "^1.4.0"
|
|
56
|
+
"signale": "^1.4.0",
|
|
57
|
+
"supertest": "^7.2.2"
|
|
57
58
|
},
|
|
58
59
|
"devDependencies": {
|
|
59
|
-
"@biomejs/biome": "
|
|
60
|
+
"@biomejs/biome": "2.4.16",
|
|
60
61
|
"@types/cookie-parser": "1.4.8",
|
|
61
62
|
"@types/cors": "2.8.17",
|
|
62
63
|
"@types/express": "5.0.0",
|
|
63
64
|
"@types/lodash": "4.17.16",
|
|
64
65
|
"@types/node": "22.13.5",
|
|
65
66
|
"copyfiles": "2.4.1",
|
|
66
|
-
"cross-env": "
|
|
67
|
+
"cross-env": "10.1.0",
|
|
67
68
|
"ts-node": "10.9.2",
|
|
68
69
|
"ts-node-dev": "2.0.0",
|
|
69
70
|
"tsconfig-paths": "4.2.0",
|
package/setup/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { Newable } from "@atlantjs/arch";
|
|
|
2
2
|
import { DatabaseConfigAbstract, DatabaseHelperAbstract, DatabaseLiteConfigAbstract } from "@atlantjs/database";
|
|
3
3
|
import express from "express";
|
|
4
4
|
import { interfaces } from "inversify";
|
|
5
|
-
interface ServerProps {
|
|
5
|
+
export interface ServerProps {
|
|
6
6
|
databases?: Array<{
|
|
7
7
|
token: interfaces.ServiceIdentifier<unknown>;
|
|
8
8
|
target: InstanceType<typeof DatabaseHelperAbstract>;
|
|
@@ -11,4 +11,3 @@ interface ServerProps {
|
|
|
11
11
|
}
|
|
12
12
|
export declare function initialize(props: ServerProps): Promise<express.Application | undefined>;
|
|
13
13
|
export declare function synthesizePaths(): void;
|
|
14
|
-
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { WorkAbstract } from "../backend/mesh/works/work.abstract";
|
|
2
|
+
import { Return } from "@atlantjs/arch";
|
|
3
|
+
declare class WorkStub implements WorkAbstract {
|
|
4
|
+
execute(...args: unknown[]): Promise<Return<unknown, unknown>>;
|
|
5
|
+
emitting<ARG>(event: "success" | "failure", arg?: ARG): void;
|
|
6
|
+
}
|
|
7
|
+
export declare function createWorkStub<T extends WorkAbstract>(): WorkStub & T;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createWorkStub = createWorkStub;
|
|
4
|
+
const arch_1 = require("@atlantjs/arch");
|
|
5
|
+
class WorkStub {
|
|
6
|
+
execute(...args) {
|
|
7
|
+
throw new Error("Method not implemented.");
|
|
8
|
+
}
|
|
9
|
+
emitting(event, arg) {
|
|
10
|
+
this.execute = async () => {
|
|
11
|
+
if (event === "success") {
|
|
12
|
+
return (0, arch_1.Success)(arg);
|
|
13
|
+
}
|
|
14
|
+
if (arg instanceof arch_1.FailureAbstract || arg instanceof Error)
|
|
15
|
+
return (0, arch_1.Failure)(arg);
|
|
16
|
+
throw new Error("Invalid argument provided to emitting method. Expected a FailureAbstract or an Error instance for 'failure' events.");
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function createWorkStub() {
|
|
21
|
+
return new WorkStub();
|
|
22
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import TestAgent from "supertest/lib/agent";
|
|
2
|
+
import e from "express";
|
|
3
|
+
import { ServerProps } from "../setup";
|
|
4
|
+
export declare class FakeServer {
|
|
5
|
+
private static server;
|
|
6
|
+
static set(server: e.Application): void;
|
|
7
|
+
static initialize(props: ServerProps): Promise<void>;
|
|
8
|
+
static get request(): TestAgent;
|
|
9
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.FakeServer = void 0;
|
|
7
|
+
const supertest_1 = __importDefault(require("supertest"));
|
|
8
|
+
const setup_1 = require("../setup");
|
|
9
|
+
class FakeServer {
|
|
10
|
+
static set(server) {
|
|
11
|
+
FakeServer.server = (0, supertest_1.default)(server);
|
|
12
|
+
}
|
|
13
|
+
static initialize(props) {
|
|
14
|
+
return new Promise((resolve, reject) => {
|
|
15
|
+
(0, setup_1.initialize)(props)
|
|
16
|
+
.then((app) => {
|
|
17
|
+
if (app) {
|
|
18
|
+
FakeServer.set(app);
|
|
19
|
+
resolve();
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
reject(new Error("Failed to initialize the fake server."));
|
|
23
|
+
}
|
|
24
|
+
})
|
|
25
|
+
.catch((error) => {
|
|
26
|
+
reject(error);
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
static get request() {
|
|
31
|
+
if (!FakeServer.server) {
|
|
32
|
+
throw new Error("Server not set. Please call FakerServer.set() before FakerServer.getInstance().");
|
|
33
|
+
}
|
|
34
|
+
return FakeServer.server;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.FakeServer = FakeServer;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getBoundary = getBoundary;
|
|
4
|
+
const di_container_1 = require("../setup/dependency-injections/di-container");
|
|
5
|
+
function getBoundary(stitchPoint) {
|
|
6
|
+
let token;
|
|
7
|
+
if (!di_container_1.diContainer.isBound(stitchPoint)) {
|
|
8
|
+
// access internal binding keys and find a matching symbol by description
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
10
|
+
// @ts-ignore
|
|
11
|
+
const keys = di_container_1.diContainer._bindingDictionary?._map
|
|
12
|
+
? // @ts-ignore
|
|
13
|
+
Array.from(di_container_1.diContainer._bindingDictionary._map.keys())
|
|
14
|
+
: [];
|
|
15
|
+
const found = keys.find((k) => String(k) === String(stitchPoint));
|
|
16
|
+
if (found)
|
|
17
|
+
token = found;
|
|
18
|
+
}
|
|
19
|
+
return di_container_1.diContainer.get(token);
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
require("reflect-metadata");
|
|
4
|
+
// allow require() to load TypeScript source files during tests
|
|
5
|
+
require("ts-node/register/transpile-only");
|
|
6
|
+
const node_fs_1 = require("node:fs");
|
|
7
|
+
const node_path_1 = require("node:path");
|
|
8
|
+
const dotenv_1 = require("dotenv");
|
|
9
|
+
const setup_1 = require("../setup");
|
|
10
|
+
(0, setup_1.synthesizePaths)();
|
|
11
|
+
const envConfig = (0, dotenv_1.parse)((0, node_fs_1.readFileSync)((0, node_path_1.join)(__dirname, "..", "..", "..", "..", ".env.test")));
|
|
12
|
+
for (const key in envConfig) {
|
|
13
|
+
if (!envConfig[key].startsWith("$")) {
|
|
14
|
+
process.env[key] = envConfig[key];
|
|
15
|
+
}
|
|
16
|
+
}
|