@webda/core 4.0.0-beta.3 → 4.0.0-beta.5
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/lib/application/application.d.ts +31 -0
- package/lib/application/application.d.ts.map +1 -1
- package/lib/application/application.js +55 -2
- package/lib/application/application.js.map +1 -1
- package/lib/application/deployment.d.ts +93 -0
- package/lib/application/deployment.d.ts.map +1 -0
- package/lib/application/deployment.js +99 -0
- package/lib/application/deployment.js.map +1 -0
- package/lib/application/unpackedapplication.d.ts.map +1 -1
- package/lib/application/unpackedapplication.js +9 -1
- package/lib/application/unpackedapplication.js.map +1 -1
- package/lib/bin/cli.d.ts +36 -1
- package/lib/bin/cli.d.ts.map +1 -1
- package/lib/bin/cli.js +108 -2
- package/lib/bin/cli.js.map +1 -1
- package/lib/contexts/execution.js +1 -1
- package/lib/contexts/execution.js.map +1 -1
- package/lib/contexts/operationcontext.d.ts +3 -0
- package/lib/contexts/operationcontext.d.ts.map +1 -1
- package/lib/contexts/operationcontext.js +6 -3
- package/lib/contexts/operationcontext.js.map +1 -1
- package/lib/core/core.js +1 -1
- package/lib/core/core.js.map +1 -1
- package/lib/core/hooks.d.ts +22 -0
- package/lib/core/hooks.d.ts.map +1 -1
- package/lib/core/hooks.js +24 -0
- package/lib/core/hooks.js.map +1 -1
- package/lib/core/operations.d.ts.map +1 -1
- package/lib/core/operations.js +13 -11
- package/lib/core/operations.js.map +1 -1
- package/lib/deployers/deployer.d.ts +157 -0
- package/lib/deployers/deployer.d.ts.map +1 -0
- package/lib/deployers/deployer.js +81 -0
- package/lib/deployers/deployer.js.map +1 -0
- package/lib/deployers/git.d.ts +27 -0
- package/lib/deployers/git.d.ts.map +1 -0
- package/lib/deployers/git.js +66 -0
- package/lib/deployers/git.js.map +1 -0
- package/lib/deployers/packager.d.ts +85 -0
- package/lib/deployers/packager.d.ts.map +1 -0
- package/lib/deployers/packager.js +259 -0
- package/lib/deployers/packager.js.map +1 -0
- package/lib/index.d.ts +10 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +10 -4
- package/lib/index.js.map +1 -1
- package/lib/models/aclmodel.d.ts +32 -5
- package/lib/models/aclmodel.d.ts.map +1 -1
- package/lib/models/aclmodel.js +34 -9
- package/lib/models/aclmodel.js.map +1 -1
- package/lib/models/coremodel.model.d.ts.map +1 -1
- package/lib/models/coremodel.model.js.map +1 -1
- package/lib/models/decorator.d.ts +4 -0
- package/lib/models/decorator.d.ts.map +1 -1
- package/lib/models/decorator.js +4 -0
- package/lib/models/decorator.js.map +1 -1
- package/lib/models/deployment.d.ts +2 -21
- package/lib/models/deployment.d.ts.map +1 -1
- package/lib/models/encrypted.model.d.ts +46 -0
- package/lib/models/encrypted.model.d.ts.map +1 -0
- package/lib/models/encrypted.model.js +87 -0
- package/lib/models/encrypted.model.js.map +1 -0
- package/lib/models/ident.model.d.ts +103 -64
- package/lib/models/ident.model.d.ts.map +1 -1
- package/lib/models/ident.model.js +168 -76
- package/lib/models/ident.model.js.map +1 -1
- package/lib/models/ownermodel.model.d.ts +25 -3
- package/lib/models/ownermodel.model.d.ts.map +1 -1
- package/lib/models/ownermodel.model.js +46 -10
- package/lib/models/ownermodel.model.js.map +1 -1
- package/lib/models/password.model.d.ts +78 -0
- package/lib/models/password.model.d.ts.map +1 -0
- package/lib/models/password.model.js +171 -0
- package/lib/models/password.model.js.map +1 -0
- package/lib/models/permissions.d.ts +236 -0
- package/lib/models/permissions.d.ts.map +1 -0
- package/lib/models/permissions.js +495 -0
- package/lib/models/permissions.js.map +1 -0
- package/lib/models/refreshtoken.model.d.ts +30 -0
- package/lib/models/refreshtoken.model.d.ts.map +1 -0
- package/lib/models/refreshtoken.model.js +29 -0
- package/lib/models/refreshtoken.model.js.map +1 -0
- package/lib/models/registry.model.d.ts.map +1 -1
- package/lib/models/registry.model.js.map +1 -1
- package/lib/models/rolemodel.model.d.ts.map +1 -1
- package/lib/models/rolemodel.model.js +1 -2
- package/lib/models/rolemodel.model.js.map +1 -1
- package/lib/models/simpleuser.model.d.ts.map +1 -1
- package/lib/models/simpleuser.model.js +2 -1
- package/lib/models/simpleuser.model.js.map +1 -1
- package/lib/models/user.model.d.ts +33 -21
- package/lib/models/user.model.d.ts.map +1 -1
- package/lib/models/user.model.js +81 -26
- package/lib/models/user.model.js.map +1 -1
- package/lib/rest/restoperationstransport.service.d.ts.map +1 -1
- package/lib/rest/restoperationstransport.service.js +7 -5
- package/lib/rest/restoperationstransport.service.js.map +1 -1
- package/lib/services/audit.model.d.ts +2 -2
- package/lib/services/audit.model.d.ts.map +1 -1
- package/lib/services/audit.model.js +16 -6
- package/lib/services/audit.model.js.map +1 -1
- package/lib/services/binary.service.d.ts +42 -4
- package/lib/services/binary.service.d.ts.map +1 -1
- package/lib/services/binary.service.js +33 -13
- package/lib/services/binary.service.js.map +1 -1
- package/lib/services/domainservice.service.d.ts +111 -1
- package/lib/services/domainservice.service.d.ts.map +1 -1
- package/lib/services/domainservice.service.js +303 -50
- package/lib/services/domainservice.service.js.map +1 -1
- package/lib/services/iauthentication.d.ts +196 -3
- package/lib/services/iauthentication.d.ts.map +1 -1
- package/lib/services/servicecommands.d.ts.map +1 -1
- package/lib/services/servicecommands.js +17 -11
- package/lib/services/servicecommands.js.map +1 -1
- package/lib/services/token.service.d.ts +95 -0
- package/lib/services/token.service.d.ts.map +1 -0
- package/lib/services/token.service.js +182 -0
- package/lib/services/token.service.js.map +1 -0
- package/lib/session/manager.model.d.ts +16 -0
- package/lib/session/manager.model.d.ts.map +1 -1
- package/lib/session/manager.model.js +58 -1
- package/lib/session/manager.model.js.map +1 -1
- package/lib/session/session.d.ts +44 -1
- package/lib/session/session.d.ts.map +1 -1
- package/lib/session/session.js +51 -2
- package/lib/session/session.js.map +1 -1
- package/lib/stores/memory.service.d.ts.map +1 -1
- package/lib/stores/memory.service.js +4 -3
- package/lib/stores/memory.service.js.map +1 -1
- package/lib/templates/templates.d.ts +8 -0
- package/lib/templates/templates.d.ts.map +1 -1
- package/lib/templates/templates.js +10 -1
- package/lib/templates/templates.js.map +1 -1
- package/lib/test/behavior-fixture.model.d.ts +30 -0
- package/lib/test/behavior-fixture.model.d.ts.map +1 -0
- package/lib/test/behavior-fixture.model.js +63 -0
- package/lib/test/behavior-fixture.model.js.map +1 -0
- package/lib/test/legacyident.fixture.model.d.ts +98 -0
- package/lib/test/legacyident.fixture.model.d.ts.map +1 -0
- package/lib/test/legacyident.fixture.model.js +125 -0
- package/lib/test/legacyident.fixture.model.js.map +1 -0
- package/lib/test/objects.d.ts +2 -2
- package/lib/test/objects.d.ts.map +1 -1
- package/lib/test/objects.js +2 -2
- package/lib/test/objects.js.map +1 -1
- package/package.json +32 -11
- package/test/config-cached.json +2 -1
- package/test/config.json +3 -1
- package/test/my-cnf.json +1 -1
- package/webda.module.json +656 -390
- package/lib/services/authentication.service.d.ts +0 -442
- package/lib/services/authentication.service.d.ts.map +0 -1
- package/lib/services/authentication.service.js +0 -932
- package/lib/services/authentication.service.js.map +0 -1
- package/lib/services/oauth.d.ts +0 -250
- package/lib/services/oauth.d.ts.map +0 -1
- package/lib/services/oauth.js +0 -405
- package/lib/services/oauth.js.map +0 -1
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
import { useLog } from "@webda/workout";
|
|
2
|
+
import { existsSync, lstatSync, readdirSync, readFileSync, realpathSync, statSync } from "node:fs";
|
|
3
|
+
import { dirname, join, relative, resolve, sep } from "node:path";
|
|
4
|
+
import { getGitInformation } from "./git.js";
|
|
5
|
+
/**
|
|
6
|
+
* Path of the configuration within a packaged application
|
|
7
|
+
*/
|
|
8
|
+
export const PACKAGED_CONFIGURATION = "webda.config.json";
|
|
9
|
+
/**
|
|
10
|
+
* Marker file of a packaged application: the CLI loads it from its cached configuration
|
|
11
|
+
*/
|
|
12
|
+
export const PACKAGED_MARKER = ".webda/packaged.json";
|
|
13
|
+
/**
|
|
14
|
+
* Top-level entries of the application never packaged, `webda.config.*` and dot entries are always skipped
|
|
15
|
+
*/
|
|
16
|
+
const DEFAULT_IGNORES = [
|
|
17
|
+
"node_modules",
|
|
18
|
+
"dist",
|
|
19
|
+
"bin",
|
|
20
|
+
"test",
|
|
21
|
+
"src",
|
|
22
|
+
"coverage",
|
|
23
|
+
"reports",
|
|
24
|
+
"deployments",
|
|
25
|
+
"app",
|
|
26
|
+
"Dockerfile",
|
|
27
|
+
"README.md"
|
|
28
|
+
];
|
|
29
|
+
/**
|
|
30
|
+
* Read a package.json
|
|
31
|
+
* @param dir - the package folder
|
|
32
|
+
* @returns the package description
|
|
33
|
+
*/
|
|
34
|
+
function readPackage(dir) {
|
|
35
|
+
return JSON.parse(readFileSync(join(dir, "package.json")).toString());
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Find a dependency folder like Node.js does, walking up the node_modules folders
|
|
39
|
+
* @param name - the dependency name
|
|
40
|
+
* @param from - real folder of the requiring package
|
|
41
|
+
* @returns the real folder of the dependency or undefined
|
|
42
|
+
*/
|
|
43
|
+
function findDependency(name, from) {
|
|
44
|
+
let dir = from;
|
|
45
|
+
while (true) {
|
|
46
|
+
const candidate = join(dir, "node_modules", name);
|
|
47
|
+
if (existsSync(join(candidate, "package.json"))) {
|
|
48
|
+
return realpathSync(candidate);
|
|
49
|
+
}
|
|
50
|
+
const parent = dirname(dir);
|
|
51
|
+
if (parent === dir) {
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
dir = parent;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Add the files of a folder, following symbolic links and skipping nested node_modules
|
|
59
|
+
* @param dir - the folder
|
|
60
|
+
* @param target - its target within the package
|
|
61
|
+
* @param entries - the entries to complete
|
|
62
|
+
* @param accept - whether a file is included
|
|
63
|
+
* @param visited - real folders already walked, to avoid cycles
|
|
64
|
+
*/
|
|
65
|
+
function addFolder(dir, target, entries, accept, visited = new Set()) {
|
|
66
|
+
const real = realpathSync(dir);
|
|
67
|
+
if (visited.has(real)) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
visited.add(real);
|
|
71
|
+
for (const name of readdirSync(real)) {
|
|
72
|
+
if (name === "node_modules" || name === ".git") {
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
addPath(join(real, name), target ? `${target}/${name}` : name, entries, accept, visited);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Add a file or folder
|
|
80
|
+
* @param path - the path
|
|
81
|
+
* @param target - its target within the package
|
|
82
|
+
* @param entries - the entries to complete
|
|
83
|
+
* @param accept - whether a file is included
|
|
84
|
+
* @param visited - real folders already walked
|
|
85
|
+
*/
|
|
86
|
+
function addPath(path, target, entries, accept, visited = new Set()) {
|
|
87
|
+
if (!existsSync(path)) {
|
|
88
|
+
// Broken symbolic link or missing `files` entry
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
const source = lstatSync(path).isSymbolicLink() ? realpathSync(path) : path;
|
|
92
|
+
const stat = statSync(source);
|
|
93
|
+
if (stat.isDirectory()) {
|
|
94
|
+
addFolder(source, target, entries, accept, visited);
|
|
95
|
+
}
|
|
96
|
+
else if (stat.isFile() && accept(source)) {
|
|
97
|
+
entries.push({ target, source, mode: stat.mode });
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Add the files of a dependency: a published package entirely, a linked workspace package
|
|
102
|
+
* only its package.json `files`
|
|
103
|
+
* @param dir - real folder of the package
|
|
104
|
+
* @param target - its target within the package
|
|
105
|
+
* @param entries - the entries to complete
|
|
106
|
+
* @param accept - whether a file is included
|
|
107
|
+
*/
|
|
108
|
+
function addPackageFiles(dir, target, entries, accept) {
|
|
109
|
+
const files = readPackage(dir).files;
|
|
110
|
+
if (dir.split(sep).includes("node_modules") || !files) {
|
|
111
|
+
addFolder(dir, target, entries, accept);
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
addPath(join(dir, "package.json"), `${target}/package.json`, entries, accept);
|
|
115
|
+
for (const file of files) {
|
|
116
|
+
addPath(join(dir, file), `${target}/${file.replace(/^\.\//, "")}`, entries, accept);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Rewrite an `Import` (`path[:export]` relative to the application) to the packaged location
|
|
121
|
+
* @param value - the import
|
|
122
|
+
* @param appPath - the application path
|
|
123
|
+
* @param realAppPath - its real path
|
|
124
|
+
* @param placed - the packaged dependencies, longest real path first
|
|
125
|
+
* @returns the packaged import
|
|
126
|
+
*/
|
|
127
|
+
function rewriteImport(value, appPath, realAppPath, placed) {
|
|
128
|
+
const [file, ...exportName] = value.split(":");
|
|
129
|
+
const absolute = resolve(appPath, file);
|
|
130
|
+
const parent = existsSync(dirname(absolute)) ? realpathSync(dirname(absolute)) : dirname(absolute);
|
|
131
|
+
const real = join(parent, absolute.substring(dirname(absolute).length + 1));
|
|
132
|
+
const suffix = exportName.length ? `:${exportName.join(":")}` : "";
|
|
133
|
+
const dependency = placed.find(pkg => real.startsWith(pkg.real + sep));
|
|
134
|
+
if (dependency) {
|
|
135
|
+
return `${dependency.target}/${relative(dependency.real, real).split(sep).join("/")}${suffix}`;
|
|
136
|
+
}
|
|
137
|
+
if (real.startsWith(realAppPath + sep)) {
|
|
138
|
+
return `${relative(realAppPath, real).split(sep).join("/")}${suffix}`;
|
|
139
|
+
}
|
|
140
|
+
useLog("WARN", `Cannot find '${value}' in the packaged application`);
|
|
141
|
+
return value;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Compute the content of a deployable application: its files, its production dependencies and
|
|
145
|
+
* its packaged configuration
|
|
146
|
+
*
|
|
147
|
+
* The application files are its package.json `files`, or its top-level entries minus the ignored ones.
|
|
148
|
+
* Production dependencies (`dependencies`, `optionalDependencies` and resolvable `peerDependencies`) are
|
|
149
|
+
* resolved like Node.js from the real path of each package, so pnpm, npm and workspace layouts work:
|
|
150
|
+
* they are placed in `node_modules/<name>`, or nested under the requiring package on a version conflict.
|
|
151
|
+
*
|
|
152
|
+
* The configuration is the current configuration (with the deployment applied) without the deployment
|
|
153
|
+
* units, its `cachedModules` imports rewritten to the packaged locations and the git information baked;
|
|
154
|
+
* with the {@link PACKAGED_MARKER} file, the CLI loads it without scanning the modules.
|
|
155
|
+
*
|
|
156
|
+
* @param app - the loaded application
|
|
157
|
+
* @param options - ignores, excludes and modules
|
|
158
|
+
* @returns the files and configuration of the package
|
|
159
|
+
*/
|
|
160
|
+
export async function packageApplication(app, options = {}) {
|
|
161
|
+
const appPath = app.applicationPath;
|
|
162
|
+
const realAppPath = realpathSync(appPath);
|
|
163
|
+
const excludes = (options.excludePatterns ?? ["\\.d\\.ts$"]).map(pattern => new RegExp(pattern));
|
|
164
|
+
const accept = (source) => !excludes.some(pattern => pattern.test(source));
|
|
165
|
+
const files = [];
|
|
166
|
+
const description = readPackage(realAppPath);
|
|
167
|
+
// Application files
|
|
168
|
+
const ignores = [...DEFAULT_IGNORES, ...(options.ignores ?? [])];
|
|
169
|
+
const entries = description.files ?? readdirSync(realAppPath);
|
|
170
|
+
for (const entry of entries) {
|
|
171
|
+
const name = entry.replace(/^\.\//, "");
|
|
172
|
+
if (name.startsWith(".") || ignores.includes(name) || name.startsWith("webda.config.") || name === "package.json") {
|
|
173
|
+
continue;
|
|
174
|
+
}
|
|
175
|
+
addPath(join(realAppPath, name), name, files, accept);
|
|
176
|
+
}
|
|
177
|
+
addPath(join(realAppPath, "package.json"), "package.json", files, accept);
|
|
178
|
+
addPath(join(realAppPath, ".webda", "operations.json"), ".webda/operations.json", files, accept);
|
|
179
|
+
// Production dependencies, breadth first so the application dependencies are placed at the top
|
|
180
|
+
const placed = [];
|
|
181
|
+
const topLevel = new Map();
|
|
182
|
+
const dependenciesOf = (pkg, root) => {
|
|
183
|
+
const names = [
|
|
184
|
+
...Object.keys(pkg.dependencies ?? {}),
|
|
185
|
+
...Object.keys(pkg.optionalDependencies ?? {}),
|
|
186
|
+
...Object.keys(pkg.peerDependencies ?? {}),
|
|
187
|
+
...(root ? (options.modules?.includes ?? []) : [])
|
|
188
|
+
];
|
|
189
|
+
const optional = new Set([
|
|
190
|
+
...Object.keys(pkg.optionalDependencies ?? {}),
|
|
191
|
+
...Object.keys(pkg.peerDependencies ?? {})
|
|
192
|
+
]);
|
|
193
|
+
return [...new Set(names)]
|
|
194
|
+
.filter(name => !root || !(options.modules?.excludes ?? []).includes(name))
|
|
195
|
+
.map(name => ({ name, optional: optional.has(name) }));
|
|
196
|
+
};
|
|
197
|
+
const queue = dependenciesOf(description, true).map(dep => ({ ...dep, from: realAppPath, parent: "" }));
|
|
198
|
+
while (queue.length) {
|
|
199
|
+
const { name, optional, from, parent } = queue.shift();
|
|
200
|
+
const real = findDependency(name, from);
|
|
201
|
+
if (!real) {
|
|
202
|
+
if (!optional) {
|
|
203
|
+
useLog("WARN", `Cannot find package '${name}' required from ${from}`);
|
|
204
|
+
}
|
|
205
|
+
continue;
|
|
206
|
+
}
|
|
207
|
+
let target = `node_modules/${name}`;
|
|
208
|
+
if (!topLevel.has(name)) {
|
|
209
|
+
topLevel.set(name, real);
|
|
210
|
+
}
|
|
211
|
+
else if (topLevel.get(name) === real) {
|
|
212
|
+
continue;
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
// Version conflict: nest under the requiring package
|
|
216
|
+
target = `${parent}/node_modules/${name}`;
|
|
217
|
+
if (placed.some(pkg => pkg.target === target)) {
|
|
218
|
+
continue;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
placed.push({ real, target });
|
|
222
|
+
addPackageFiles(real, target, files, accept);
|
|
223
|
+
queue.push(...dependenciesOf(readPackage(real), false).map(dep => ({ ...dep, from: real, parent: target })));
|
|
224
|
+
}
|
|
225
|
+
// Packaged configuration
|
|
226
|
+
const configuration = JSON.parse(JSON.stringify(app.getConfiguration()));
|
|
227
|
+
for (const unit of app.getDeployment()?.units ?? []) {
|
|
228
|
+
delete configuration.services?.[unit.name];
|
|
229
|
+
}
|
|
230
|
+
const byLength = [...placed].sort((a, b) => b.real.length - a.real.length);
|
|
231
|
+
const modules = configuration.cachedModules ?? {};
|
|
232
|
+
for (const section of ["moddas", "beans", "deployers", "models", "behaviors"]) {
|
|
233
|
+
for (const definition of Object.values(modules[section] ?? {})) {
|
|
234
|
+
for (const key of ["Import", "Configuration"]) {
|
|
235
|
+
if (typeof definition?.[key] === "string" && definition[key]) {
|
|
236
|
+
definition[key] = rewriteImport(definition[key], appPath, realAppPath, byLength);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
if (modules.project) {
|
|
242
|
+
modules.project.deployment = { ...modules.project.deployment, name: app.getCurrentDeployment() ?? "" };
|
|
243
|
+
modules.project.git = getGitInformation(realAppPath, description.name, description.version);
|
|
244
|
+
}
|
|
245
|
+
files.push({ target: PACKAGED_CONFIGURATION, content: JSON.stringify(configuration, undefined, 2) });
|
|
246
|
+
files.push({
|
|
247
|
+
target: PACKAGED_MARKER,
|
|
248
|
+
content: JSON.stringify({
|
|
249
|
+
deployment: app.getCurrentDeployment() ?? "",
|
|
250
|
+
package: { name: description.name, version: description.version },
|
|
251
|
+
git: modules.project?.git
|
|
252
|
+
}, undefined, 2)
|
|
253
|
+
});
|
|
254
|
+
// A file listed twice (overlapping `files` entries) is packaged once
|
|
255
|
+
const unique = [...new Map(files.map(file => [file.target, file])).values()];
|
|
256
|
+
unique.sort((a, b) => a.target.localeCompare(b.target));
|
|
257
|
+
return { files: unique, configuration };
|
|
258
|
+
}
|
|
259
|
+
//# sourceMappingURL=packager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packager.js","sourceRoot":"","sources":["../../src/deployers/packager.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -23,16 +23,18 @@ export * from "./core/hooks.js";
|
|
|
23
23
|
export * from "./cache/cache.js";
|
|
24
24
|
export * from "./stores/istore.js";
|
|
25
25
|
export * from "./stores/memory.service.js";
|
|
26
|
-
export { MemoryRepository, EventRepository, useRepository } from "@webda/models";
|
|
26
|
+
export { MemoryRepository, EventRepository, useRepository, registerRepository } from "@webda/models";
|
|
27
27
|
export type { ModelClass, Repository } from "@webda/models";
|
|
28
28
|
export * from "./stores/store.js";
|
|
29
29
|
export * from "./utils/abstractdeployer.js";
|
|
30
30
|
export * from "./models/simpleuser.model.js";
|
|
31
31
|
export * from "./models/ident.model.js";
|
|
32
32
|
export * from "./models/aclmodel.js";
|
|
33
|
+
export * from "./models/permissions.js";
|
|
33
34
|
export * from "./models/registry.model.js";
|
|
34
|
-
export * from "./models/deployment.js";
|
|
35
35
|
export * from "./models/user.model.js";
|
|
36
|
+
export * from "./models/password.model.js";
|
|
37
|
+
export * from "./models/encrypted.model.js";
|
|
36
38
|
export * from "./models/coremodel.model.js";
|
|
37
39
|
export * from "./models/ownermodel.model.js";
|
|
38
40
|
export * from "./models/rolemodel.model.js";
|
|
@@ -45,9 +47,12 @@ export * from "./application/unpackedapplication.js";
|
|
|
45
47
|
export * from "./application/application.js";
|
|
46
48
|
export * from "./application/hooks.js";
|
|
47
49
|
export * from "./application/runner.js";
|
|
50
|
+
export * from "./application/deployment.js";
|
|
51
|
+
export * from "./deployers/deployer.js";
|
|
52
|
+
export * from "./deployers/git.js";
|
|
53
|
+
export * from "./deployers/packager.js";
|
|
48
54
|
export * from "./events/asynceventemitter.js";
|
|
49
55
|
export * from "./events/events.js";
|
|
50
|
-
export * from "./services/oauth.js";
|
|
51
56
|
export * from "./services/mailer.service.js";
|
|
52
57
|
export * from "./configurations/kubernetesconfiguration.service.js";
|
|
53
58
|
export * from "./services/iauthentication.js";
|
|
@@ -55,10 +60,11 @@ export * from "./services/domainservice.service.js";
|
|
|
55
60
|
export * from "./services/imailer.js";
|
|
56
61
|
export * from "./services/notificationservice.service.js";
|
|
57
62
|
export * from "./services/cloudbinary.js";
|
|
58
|
-
export * from "./services/authentication.service.js";
|
|
59
63
|
export * from "./services/prometheus.service.js";
|
|
60
64
|
export * from "./services/resource.service.js";
|
|
61
65
|
export * from "./services/cryptoservice.service.js";
|
|
66
|
+
export * from "./services/token.service.js";
|
|
67
|
+
export * from "./models/refreshtoken.model.js";
|
|
62
68
|
export * from "./services/serviceparameters.js";
|
|
63
69
|
export * from "./services/cron.service.js";
|
|
64
70
|
export * from "./services/command.js";
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,OAAO,KAAK,UAAU,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/index.js
CHANGED
|
@@ -23,15 +23,17 @@ export * from "./core/hooks.js";
|
|
|
23
23
|
export * from "./cache/cache.js";
|
|
24
24
|
export * from "./stores/istore.js";
|
|
25
25
|
export * from "./stores/memory.service.js";
|
|
26
|
-
export { MemoryRepository, EventRepository, useRepository } from "@webda/models";
|
|
26
|
+
export { MemoryRepository, EventRepository, useRepository, registerRepository } from "@webda/models";
|
|
27
27
|
export * from "./stores/store.js";
|
|
28
28
|
export * from "./utils/abstractdeployer.js";
|
|
29
29
|
export * from "./models/simpleuser.model.js";
|
|
30
30
|
export * from "./models/ident.model.js";
|
|
31
31
|
export * from "./models/aclmodel.js";
|
|
32
|
+
export * from "./models/permissions.js";
|
|
32
33
|
export * from "./models/registry.model.js";
|
|
33
|
-
export * from "./models/deployment.js";
|
|
34
34
|
export * from "./models/user.model.js";
|
|
35
|
+
export * from "./models/password.model.js";
|
|
36
|
+
export * from "./models/encrypted.model.js";
|
|
35
37
|
export * from "./models/coremodel.model.js";
|
|
36
38
|
export * from "./models/ownermodel.model.js";
|
|
37
39
|
export * from "./models/rolemodel.model.js";
|
|
@@ -44,9 +46,12 @@ export * from "./application/unpackedapplication.js";
|
|
|
44
46
|
export * from "./application/application.js";
|
|
45
47
|
export * from "./application/hooks.js";
|
|
46
48
|
export * from "./application/runner.js";
|
|
49
|
+
export * from "./application/deployment.js";
|
|
50
|
+
export * from "./deployers/deployer.js";
|
|
51
|
+
export * from "./deployers/git.js";
|
|
52
|
+
export * from "./deployers/packager.js";
|
|
47
53
|
export * from "./events/asynceventemitter.js";
|
|
48
54
|
export * from "./events/events.js";
|
|
49
|
-
export * from "./services/oauth.js";
|
|
50
55
|
export * from "./services/mailer.service.js";
|
|
51
56
|
export * from "./configurations/kubernetesconfiguration.service.js";
|
|
52
57
|
export * from "./services/iauthentication.js";
|
|
@@ -54,10 +59,11 @@ export * from "./services/domainservice.service.js";
|
|
|
54
59
|
export * from "./services/imailer.js";
|
|
55
60
|
export * from "./services/notificationservice.service.js";
|
|
56
61
|
export * from "./services/cloudbinary.js";
|
|
57
|
-
export * from "./services/authentication.service.js";
|
|
58
62
|
export * from "./services/prometheus.service.js";
|
|
59
63
|
export * from "./services/resource.service.js";
|
|
60
64
|
export * from "./services/cryptoservice.service.js";
|
|
65
|
+
export * from "./services/token.service.js";
|
|
66
|
+
export * from "./models/refreshtoken.model.js";
|
|
61
67
|
export * from "./services/serviceparameters.js";
|
|
62
68
|
export * from "./services/cron.service.js";
|
|
63
69
|
export * from "./services/command.js";
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,OAAO,KAAK,UAAU,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/models/aclmodel.d.ts
CHANGED
|
@@ -1,14 +1,37 @@
|
|
|
1
|
+
import type { IOperationContext } from "../contexts/icontext.js";
|
|
2
|
+
/**
|
|
3
|
+
* Access control entry
|
|
4
|
+
*/
|
|
1
5
|
export type Ace = {
|
|
6
|
+
/**
|
|
7
|
+
* Action the entry applies to ("get", "update", "delete", an action name...)
|
|
8
|
+
*/
|
|
2
9
|
action: string;
|
|
10
|
+
/**
|
|
11
|
+
* Kind of principal: a user id or a group name
|
|
12
|
+
*/
|
|
3
13
|
type: "GROUP" | "USER";
|
|
14
|
+
/**
|
|
15
|
+
* The user id (type USER) or group name (type GROUP) the entry applies to.
|
|
16
|
+
* An entry without principal matches nobody.
|
|
17
|
+
*/
|
|
18
|
+
principal?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Allow or deny: a matching deny wins over any allow
|
|
21
|
+
*/
|
|
4
22
|
allow: boolean;
|
|
5
23
|
};
|
|
6
24
|
/**
|
|
7
25
|
* Allow to define ACLs for the object
|
|
8
26
|
*
|
|
9
27
|
* It is used as an attribute in the model so
|
|
10
|
-
* you can add it later on to existing models
|
|
28
|
+
* you can add it later on to existing models; the model delegates its permissions to it:
|
|
11
29
|
*
|
|
30
|
+
* ```ts
|
|
31
|
+
* async canAct(context: IOperationContext, action: string) {
|
|
32
|
+
* return ResourceAcl.from(this.acl ?? []).canAct(context, action);
|
|
33
|
+
* }
|
|
34
|
+
* ```
|
|
12
35
|
*/
|
|
13
36
|
export declare class ResourceAcl extends Array<Ace> {
|
|
14
37
|
/**
|
|
@@ -22,11 +45,15 @@ export declare class ResourceAcl extends Array<Ace> {
|
|
|
22
45
|
*/
|
|
23
46
|
fromDto(dto: Ace[]): void;
|
|
24
47
|
/**
|
|
25
|
-
*
|
|
48
|
+
* Check the ACL for the current caller, with the same signature as a model `canAct`
|
|
49
|
+
*
|
|
50
|
+
* An entry matches when its action is `action` and its principal is the caller id (USER) or one of the caller
|
|
51
|
+
* groups (GROUP). A matching deny wins, then a matching allow; with no matching entry the action is refused.
|
|
52
|
+
* Anonymous callers match no entry.
|
|
53
|
+
* @param context - the caller context
|
|
26
54
|
* @param action - the action to check
|
|
27
|
-
* @
|
|
28
|
-
* @returns the result
|
|
55
|
+
* @returns true or the refusal reason
|
|
29
56
|
*/
|
|
30
|
-
canAct(
|
|
57
|
+
canAct(context: IOperationContext, action: string): Promise<string | boolean>;
|
|
31
58
|
}
|
|
32
59
|
//# sourceMappingURL=aclmodel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aclmodel.d.ts","sourceRoot":"","sources":["../../src/models/aclmodel.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG,GAAG;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"aclmodel.d.ts","sourceRoot":"","sources":["../../src/models/aclmodel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE;;GAEG;AACH,MAAM,MAAM,GAAG,GAAG;IAChB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,qBAAa,WAAY,SAAQ,KAAK,CAAC,GAAG,CAAC;IACzC;;;OAGG;IACH,KAAK,IAAI,GAAG,EAAE,CAEb;IAED;;;OAGG;IACH,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAKxB;IAED;;;;;;;;;OASG;IACG,MAAM,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,CA4BlF;CACF"}
|
package/lib/models/aclmodel.js
CHANGED
|
@@ -2,8 +2,13 @@
|
|
|
2
2
|
* Allow to define ACLs for the object
|
|
3
3
|
*
|
|
4
4
|
* It is used as an attribute in the model so
|
|
5
|
-
* you can add it later on to existing models
|
|
5
|
+
* you can add it later on to existing models; the model delegates its permissions to it:
|
|
6
6
|
*
|
|
7
|
+
* ```ts
|
|
8
|
+
* async canAct(context: IOperationContext, action: string) {
|
|
9
|
+
* return ResourceAcl.from(this.acl ?? []).canAct(context, action);
|
|
10
|
+
* }
|
|
11
|
+
* ```
|
|
7
12
|
*/
|
|
8
13
|
export class ResourceAcl extends Array {
|
|
9
14
|
/**
|
|
@@ -24,19 +29,39 @@ export class ResourceAcl extends Array {
|
|
|
24
29
|
}
|
|
25
30
|
}
|
|
26
31
|
/**
|
|
27
|
-
*
|
|
32
|
+
* Check the ACL for the current caller, with the same signature as a model `canAct`
|
|
33
|
+
*
|
|
34
|
+
* An entry matches when its action is `action` and its principal is the caller id (USER) or one of the caller
|
|
35
|
+
* groups (GROUP). A matching deny wins, then a matching allow; with no matching entry the action is refused.
|
|
36
|
+
* Anonymous callers match no entry.
|
|
37
|
+
* @param context - the caller context
|
|
28
38
|
* @param action - the action to check
|
|
29
|
-
* @
|
|
30
|
-
* @returns the result
|
|
39
|
+
* @returns true or the refusal reason
|
|
31
40
|
*/
|
|
32
|
-
async canAct(
|
|
33
|
-
|
|
34
|
-
|
|
41
|
+
async canAct(context, action) {
|
|
42
|
+
const userId = context?.getCurrentUserId();
|
|
43
|
+
if (!userId) {
|
|
44
|
+
return "no matching ACE in resource ACL";
|
|
45
|
+
}
|
|
46
|
+
const entries = this.filter(a => a.action === action && a.principal);
|
|
47
|
+
let groups;
|
|
48
|
+
const matches = async (ace) => {
|
|
49
|
+
if (ace.type === "USER") {
|
|
50
|
+
return ace.principal === userId;
|
|
51
|
+
}
|
|
52
|
+
if (ace.type === "GROUP") {
|
|
53
|
+
groups ??= (await context.getCurrentUser())?.getGroups?.() ?? [];
|
|
54
|
+
return groups.includes(ace.principal);
|
|
55
|
+
}
|
|
56
|
+
return false;
|
|
57
|
+
};
|
|
58
|
+
for (const ace of entries.filter(a => !a.allow)) {
|
|
59
|
+
if (await matches(ace)) {
|
|
35
60
|
return "explicitly denied by resource ACL";
|
|
36
61
|
}
|
|
37
62
|
}
|
|
38
|
-
for (const ace of
|
|
39
|
-
if (ace
|
|
63
|
+
for (const ace of entries.filter(a => a.allow)) {
|
|
64
|
+
if (await matches(ace)) {
|
|
40
65
|
return true;
|
|
41
66
|
}
|
|
42
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aclmodel.js","sourceRoot":"","sources":["../../src/models/aclmodel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"aclmodel.js","sourceRoot":"","sources":["../../src/models/aclmodel.ts"],"names":[],"mappings":"AAyBA;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,WAAY,SAAQ,KAAU;IACzC;;;OAGG;IACH,KAAK;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,GAAU;QAChB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,MAAM,CAAC,OAA0B,EAAE,MAAc;QACrD,MAAM,MAAM,GAAG,OAAO,EAAE,gBAAgB,EAAE,CAAC;QAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,iCAAiC,CAAC;QAC3C,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;QACrE,IAAI,MAA4B,CAAC;QACjC,MAAM,OAAO,GAAG,KAAK,EAAE,GAAQ,EAAoB,EAAE;YACnD,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACxB,OAAO,GAAG,CAAC,SAAS,KAAK,MAAM,CAAC;YAClC,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACzB,MAAM,KAAK,CAAC,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC;gBACjE,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACxC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAChD,IAAI,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO,mCAAmC,CAAC;YAC7C,CAAC;QACH,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,IAAI,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,iCAAiC,CAAC;IAC3C,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coremodel.model.d.ts","sourceRoot":"","sources":["../../src/models/coremodel.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,mEAAmE;AACnE,qBAAa,SAAU,SAAQ,SAAS;
|
|
1
|
+
{"version":3,"file":"coremodel.model.d.ts","sourceRoot":"","sources":["../../src/models/coremodel.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,mEAAmE;AACnE,qBAAa,SAAU,SAAQ,SAAS;CAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coremodel.model.js","sourceRoot":"","sources":["../../src/models/coremodel.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,mEAAmE;AACnE,MAAM,OAAO,SAAU,SAAQ,SAAS;
|
|
1
|
+
{"version":3,"file":"coremodel.model.js","sourceRoot":"","sources":["../../src/models/coremodel.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,mEAAmE;AACnE,MAAM,OAAO,SAAU,SAAQ,SAAS;CAAG"}
|
|
@@ -56,6 +56,10 @@ export declare const Masked: {
|
|
|
56
56
|
(initialValue: undefined, context: any): void;
|
|
57
57
|
(context: any, mask: string): (initialValue: undefined, context: any) => void;
|
|
58
58
|
};
|
|
59
|
+
/**
|
|
60
|
+
* Placeholder that only prefixes the value with "ENCRYPTED:": it does NOT encrypt anything
|
|
61
|
+
* @deprecated use the {@link EncryptedField} behavior (`field: EncryptedField<T>`), encrypted with the CryptoService
|
|
62
|
+
*/
|
|
59
63
|
export declare const Encrypted: {
|
|
60
64
|
(initialValue: undefined, context: any): void;
|
|
61
65
|
(context: any): (initialValue: undefined, context: any) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorator.d.ts","sourceRoot":"","sources":["../../src/models/decorator.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC5B,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,MAAM;;;CAAwF,CAAC;AAE5G;;GAEG;AACH,eAAO,MAAM,MAAM;;;CA0BjB,CAAC;AAEH,eAAO,MAAM,SAAS;;;CAqBpB,CAAC"}
|
|
1
|
+
{"version":3,"file":"decorator.d.ts","sourceRoot":"","sources":["../../src/models/decorator.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC5B,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,MAAM;;;CAAwF,CAAC;AAE5G;;GAEG;AACH,eAAO,MAAM,MAAM;;;CA0BjB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,SAAS;;;CAqBpB,CAAC"}
|
package/lib/models/decorator.js
CHANGED
|
@@ -40,6 +40,10 @@ export const Masked = createPropertyDecorator((value, context, mask) => {
|
|
|
40
40
|
});
|
|
41
41
|
}
|
|
42
42
|
});
|
|
43
|
+
/**
|
|
44
|
+
* Placeholder that only prefixes the value with "ENCRYPTED:": it does NOT encrypt anything
|
|
45
|
+
* @deprecated use the {@link EncryptedField} behavior (`field: EncryptedField<T>`), encrypted with the CryptoService
|
|
46
|
+
*/
|
|
43
47
|
export const Encrypted = createPropertyDecorator((value, context) => {
|
|
44
48
|
if (context.kind === "field") {
|
|
45
49
|
context.addInitializer(function encryptedInit() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorator.js","sourceRoot":"","sources":["../../src/models/decorator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"decorator.js","sourceRoot":"","sources":["../../src/models/decorator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* Type can be a single Deployer or a chain of Deployer
|
|
2
|
+
* Deployment types moved to the application, kept here for compatibility
|
|
5
3
|
*/
|
|
6
|
-
export
|
|
7
|
-
name: string;
|
|
8
|
-
type: string;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* A Deployment is a configuration of an application along with its differents DeploymentUnit
|
|
12
|
-
*
|
|
13
|
-
* You can override the webda.config.json parameters and services parameters by specifying specific
|
|
14
|
-
*/
|
|
15
|
-
export default interface Deployment {
|
|
16
|
-
$schema?: string;
|
|
17
|
-
parameters: any;
|
|
18
|
-
resources: any;
|
|
19
|
-
services: any;
|
|
20
|
-
units: DeploymentUnit[];
|
|
21
|
-
name?: string;
|
|
22
|
-
}
|
|
23
|
-
export type { Deployment };
|
|
4
|
+
export type { Deployment, DeploymentUnit } from "../application/deployment.js";
|
|
24
5
|
//# sourceMappingURL=deployment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployment.d.ts","sourceRoot":"","sources":["../../src/models/deployment.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"deployment.d.ts","sourceRoot":"","sources":["../../src/models/deployment.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC"}
|