@webda/core 4.0.0-beta.5 → 4.0.0-beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -5
- package/lib/application/application.d.ts.map +1 -1
- package/lib/application/application.js +18 -6
- package/lib/application/application.js.map +1 -1
- package/lib/application/iconfiguration.d.ts +31 -0
- package/lib/application/iconfiguration.d.ts.map +1 -1
- package/lib/application/iconfiguration.js.map +1 -1
- package/lib/application/unpackedapplication.d.ts.map +1 -1
- package/lib/application/unpackedapplication.js +2 -1
- package/lib/application/unpackedapplication.js.map +1 -1
- package/lib/bin/cli-phase.d.ts +18 -2
- package/lib/bin/cli-phase.d.ts.map +1 -1
- package/lib/bin/cli-phase.js +25 -0
- package/lib/bin/cli-phase.js.map +1 -1
- package/lib/bin/cli.d.ts +19 -0
- package/lib/bin/cli.d.ts.map +1 -1
- package/lib/bin/cli.js +120 -41
- package/lib/bin/cli.js.map +1 -1
- package/lib/configurations/configuration.service.d.ts +7 -0
- package/lib/configurations/configuration.service.d.ts.map +1 -1
- package/lib/configurations/configuration.service.js +18 -5
- package/lib/configurations/configuration.service.js.map +1 -1
- package/lib/configurations/kubernetesconfiguration.service.d.ts.map +1 -1
- package/lib/configurations/kubernetesconfiguration.service.js +1 -4
- package/lib/configurations/kubernetesconfiguration.service.js.map +1 -1
- package/lib/contexts/httpcontext.d.ts +15 -1
- package/lib/contexts/httpcontext.d.ts.map +1 -1
- package/lib/contexts/httpcontext.js +61 -19
- package/lib/contexts/httpcontext.js.map +1 -1
- package/lib/contexts/operationcontext.d.ts +6 -0
- package/lib/contexts/operationcontext.d.ts.map +1 -1
- package/lib/contexts/operationcontext.js +16 -2
- package/lib/contexts/operationcontext.js.map +1 -1
- package/lib/contexts/restcontext.d.ts +110 -0
- package/lib/contexts/restcontext.d.ts.map +1 -0
- package/lib/contexts/restcontext.js +247 -0
- package/lib/contexts/restcontext.js.map +1 -0
- package/lib/contexts/streamingcontext.d.ts +71 -0
- package/lib/contexts/streamingcontext.d.ts.map +1 -0
- package/lib/contexts/streamingcontext.js +93 -0
- package/lib/contexts/streamingcontext.js.map +1 -0
- package/lib/contexts/webcontext.d.ts +20 -0
- package/lib/contexts/webcontext.d.ts.map +1 -1
- package/lib/contexts/webcontext.js +43 -10
- package/lib/contexts/webcontext.js.map +1 -1
- package/lib/contexts/websocketcontext.d.ts +39 -0
- package/lib/contexts/websocketcontext.d.ts.map +1 -0
- package/lib/contexts/websocketcontext.js +67 -0
- package/lib/contexts/websocketcontext.js.map +1 -0
- package/lib/core/asyncqueue.d.ts +50 -0
- package/lib/core/asyncqueue.d.ts.map +1 -0
- package/lib/core/asyncqueue.js +96 -0
- package/lib/core/asyncqueue.js.map +1 -0
- package/lib/core/core.d.ts +21 -2
- package/lib/core/core.d.ts.map +1 -1
- package/lib/core/core.js +87 -24
- package/lib/core/core.js.map +1 -1
- package/lib/core/icore.d.ts +14 -1
- package/lib/core/icore.d.ts.map +1 -1
- package/lib/core/icore.js.map +1 -1
- package/lib/core/instancestorage.d.ts +1 -0
- package/lib/core/instancestorage.d.ts.map +1 -1
- package/lib/core/instancestorage.js +1 -0
- package/lib/core/instancestorage.js.map +1 -1
- package/lib/core/operations.d.ts +49 -6
- package/lib/core/operations.d.ts.map +1 -1
- package/lib/core/operations.js +187 -24
- package/lib/core/operations.js.map +1 -1
- package/lib/deployers/git.d.ts +4 -2
- package/lib/deployers/git.d.ts.map +1 -1
- package/lib/deployers/git.js +44 -5
- package/lib/deployers/git.js.map +1 -1
- package/lib/deployers/packager.d.ts +38 -0
- package/lib/deployers/packager.d.ts.map +1 -1
- package/lib/deployers/packager.js +70 -18
- package/lib/deployers/packager.js.map +1 -1
- package/lib/deployers/packager.service.d.ts +33 -0
- package/lib/deployers/packager.service.d.ts.map +1 -0
- package/lib/deployers/packager.service.js +112 -0
- package/lib/deployers/packager.service.js.map +1 -0
- package/lib/errors/errors.d.ts +15 -0
- package/lib/errors/errors.d.ts.map +1 -1
- package/lib/errors/errors.js +20 -0
- package/lib/errors/errors.js.map +1 -1
- package/lib/index.d.ts +7 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +6 -0
- package/lib/index.js.map +1 -1
- package/lib/models/permissions.d.ts +12 -1
- package/lib/models/permissions.d.ts.map +1 -1
- package/lib/models/permissions.js +29 -2
- package/lib/models/permissions.js.map +1 -1
- package/lib/rest/restoperationstransport.service.d.ts +108 -0
- package/lib/rest/restoperationstransport.service.d.ts.map +1 -1
- package/lib/rest/restoperationstransport.service.js +348 -9
- package/lib/rest/restoperationstransport.service.js.map +1 -1
- package/lib/rest/router.service.d.ts +1 -1
- package/lib/rest/router.service.d.ts.map +1 -1
- package/lib/rest/router.service.js.map +1 -1
- package/lib/services/audit.model.d.ts.map +1 -1
- package/lib/services/audit.model.js +7 -3
- package/lib/services/audit.model.js.map +1 -1
- package/lib/services/authenticatedencryption.d.ts +25 -0
- package/lib/services/authenticatedencryption.d.ts.map +1 -0
- package/lib/services/authenticatedencryption.js +56 -0
- package/lib/services/authenticatedencryption.js.map +1 -0
- package/lib/services/cloudbinary.d.ts.map +1 -1
- package/lib/services/cloudbinary.js +3 -2
- package/lib/services/cloudbinary.js.map +1 -1
- package/lib/services/command.d.ts +7 -1
- package/lib/services/command.d.ts.map +1 -1
- package/lib/services/command.js +4 -0
- package/lib/services/command.js.map +1 -1
- package/lib/services/cryptoservice.service.d.ts +405 -25
- package/lib/services/cryptoservice.service.d.ts.map +1 -1
- package/lib/services/cryptoservice.service.js +779 -72
- package/lib/services/cryptoservice.service.js.map +1 -1
- package/lib/services/httpserver.service.d.ts.map +1 -1
- package/lib/services/httpserver.service.js +15 -9
- package/lib/services/httpserver.service.js.map +1 -1
- package/lib/services/icryptoservice.d.ts +11 -0
- package/lib/services/icryptoservice.d.ts.map +1 -1
- package/lib/services/icryptoservice.js +2 -0
- package/lib/services/icryptoservice.js.map +1 -1
- package/lib/services/mailer.service.d.ts +4 -0
- package/lib/services/mailer.service.d.ts.map +1 -1
- package/lib/services/mailer.service.js +8 -1
- package/lib/services/mailer.service.js.map +1 -1
- package/lib/services/operationstransport.d.ts +13 -0
- package/lib/services/operationstransport.d.ts.map +1 -1
- package/lib/services/operationstransport.js +28 -6
- package/lib/services/operationstransport.js.map +1 -1
- package/lib/services/pki.encrypter.d.ts +214 -0
- package/lib/services/pki.encrypter.d.ts.map +1 -0
- package/lib/services/pki.encrypter.js +350 -0
- package/lib/services/pki.encrypter.js.map +1 -0
- package/lib/services/secretscheck.d.ts +120 -0
- package/lib/services/secretscheck.d.ts.map +1 -0
- package/lib/services/secretscheck.js +322 -0
- package/lib/services/secretscheck.js.map +1 -0
- package/lib/services/servicecommands.d.ts +8 -4
- package/lib/services/servicecommands.d.ts.map +1 -1
- package/lib/services/servicecommands.js +14 -5
- package/lib/services/servicecommands.js.map +1 -1
- package/lib/session/manager.model.d.ts +3 -1
- package/lib/session/manager.model.d.ts.map +1 -1
- package/lib/session/manager.model.js +6 -3
- package/lib/session/manager.model.js.map +1 -1
- package/lib/stores/store.d.ts +20 -1
- package/lib/stores/store.d.ts.map +1 -1
- package/lib/stores/store.js +29 -1
- package/lib/stores/store.js.map +1 -1
- package/lib/test/objects.d.ts.map +1 -1
- package/lib/test/objects.js +3 -1
- package/lib/test/objects.js.map +1 -1
- package/package.json +15 -15
- package/webda.module.json +224 -50
package/lib/core/operations.js
CHANGED
|
@@ -29,27 +29,177 @@ function checkOperationPermission(context, operationId, operation) {
|
|
|
29
29
|
return true;
|
|
30
30
|
}
|
|
31
31
|
/**
|
|
32
|
-
*
|
|
32
|
+
* @returns the authorizers of the current instance
|
|
33
|
+
*/
|
|
34
|
+
function useAuthorizers() {
|
|
35
|
+
const storage = useInstanceStorage();
|
|
36
|
+
storage.operationAuthorizers ??= new Set();
|
|
37
|
+
return storage.operationAuthorizers;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Register an operation authorizer
|
|
41
|
+
* @param fn - the authorizer
|
|
42
|
+
*/
|
|
43
|
+
export function registerOperationAuthorizer(fn) {
|
|
44
|
+
useAuthorizers().add(fn);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Unregister an operation authorizer
|
|
48
|
+
* @param fn - the authorizer
|
|
49
|
+
*/
|
|
50
|
+
export function unregisterOperationAuthorizer(fn) {
|
|
51
|
+
useAuthorizers().delete(fn);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* @returns the registered operation authorizers
|
|
55
|
+
*/
|
|
56
|
+
export function listOperationAuthorizers() {
|
|
57
|
+
return [...useAuthorizers()];
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Run every authorizer; the first refusal wins
|
|
61
|
+
* @param context - the execution context
|
|
62
|
+
* @param operationId - the operation identifier
|
|
63
|
+
* @param operation - the operation definition
|
|
64
|
+
* @param options - input and probe mode
|
|
65
|
+
* @param options.input - the operation input
|
|
66
|
+
* @param options.probe - true to ask whether some input could be allowed
|
|
67
|
+
* @returns true when every authorizer allows, otherwise the refusal reason
|
|
68
|
+
* @throws WebdaError.HttpError thrown by an authorizer
|
|
69
|
+
*/
|
|
70
|
+
async function runAuthorizers(context, operationId, operation, options) {
|
|
71
|
+
for (const authorizer of useAuthorizers()) {
|
|
72
|
+
let allowed;
|
|
73
|
+
try {
|
|
74
|
+
allowed = await authorizer(context, operationId, operation, options);
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
if (err instanceof WebdaError.HttpError) {
|
|
78
|
+
throw err;
|
|
79
|
+
}
|
|
80
|
+
useLog("WARN", `Operation authorizer failed on ${operationId}`, err);
|
|
81
|
+
return err?.message ?? "authorizer error";
|
|
82
|
+
}
|
|
83
|
+
if (allowed !== true) {
|
|
84
|
+
return typeof allowed === "string" ? allowed : "refused";
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Check whether the context is allowed to call an operation: the session `permission` then the authorizers
|
|
33
91
|
*
|
|
34
|
-
* Unlike {@link checkOperation}, this never throws: unknown operations and
|
|
35
|
-
*
|
|
92
|
+
* Unlike {@link checkOperation}, this never throws: unknown operations, refusals and errors return false.
|
|
93
|
+
*
|
|
94
|
+
* Without `options` the authorizers are asked in probe mode ("could the caller call it with some input?"), for
|
|
95
|
+
* listings. With `options`, they decide on `options.input` exactly.
|
|
36
96
|
*
|
|
37
97
|
* @param context - the execution context holding the session
|
|
38
98
|
* @param operationId - the operation identifier
|
|
39
|
-
* @
|
|
99
|
+
* @param options - the operation input for an exact check
|
|
100
|
+
* @param options.input - the operation input
|
|
101
|
+
* @returns true if the operation exists and is allowed
|
|
40
102
|
*/
|
|
41
|
-
export function canCallOperation(context, operationId) {
|
|
103
|
+
export async function canCallOperation(context, operationId, options) {
|
|
42
104
|
const operation = useInstanceStorage().operations[operationId];
|
|
43
105
|
if (!operation) {
|
|
44
106
|
return false;
|
|
45
107
|
}
|
|
46
108
|
try {
|
|
47
|
-
|
|
109
|
+
if (!checkOperationPermission(context, operationId, operation)) {
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
return ((await runAuthorizers(context, operationId, operation, {
|
|
113
|
+
input: options?.input,
|
|
114
|
+
probe: options === undefined
|
|
115
|
+
})) === true);
|
|
48
116
|
}
|
|
49
117
|
catch {
|
|
50
118
|
return false;
|
|
51
119
|
}
|
|
52
120
|
}
|
|
121
|
+
/**
|
|
122
|
+
* JSON Schema keyword the compiler sets on a streamed `.input` or `.output` schema
|
|
123
|
+
*/
|
|
124
|
+
export const STREAM_SCHEMA_KEYWORD = "x-webda-stream";
|
|
125
|
+
/**
|
|
126
|
+
* Streaming mode of an operation
|
|
127
|
+
* @param operation - the operation definition
|
|
128
|
+
* @returns its mode, `none` when unknown
|
|
129
|
+
*/
|
|
130
|
+
export function getOperationStreaming(operation) {
|
|
131
|
+
if (operation?.streaming)
|
|
132
|
+
return operation.streaming;
|
|
133
|
+
const grpc = operation?.grpc;
|
|
134
|
+
return (typeof grpc === "object" && grpc?.streaming) || "none";
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* @param operation - the operation definition
|
|
138
|
+
* @returns true when the operation reads a stream of input messages
|
|
139
|
+
*/
|
|
140
|
+
function hasStreamedInput(operation) {
|
|
141
|
+
const streaming = getOperationStreaming(operation);
|
|
142
|
+
return streaming === "client" || streaming === "bidi";
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Derive the streaming mode at registration: explicit grpc.streaming, else the schema markers and generator flag
|
|
146
|
+
* @param definition - the operation being registered (input/output already resolved)
|
|
147
|
+
* @returns the mode
|
|
148
|
+
*/
|
|
149
|
+
function computeStreaming(definition) {
|
|
150
|
+
if (typeof definition.grpc === "object" && definition.grpc?.streaming)
|
|
151
|
+
return definition.grpc.streaming;
|
|
152
|
+
const marked = (ref) => ref !== "void" && useApplication().getSchema(ref)?.[STREAM_SCHEMA_KEYWORD] === true;
|
|
153
|
+
const input = marked(definition.input);
|
|
154
|
+
const output = marked(definition.output) || definition.generator === true;
|
|
155
|
+
if (input && output)
|
|
156
|
+
return "bidi";
|
|
157
|
+
if (input)
|
|
158
|
+
return "client";
|
|
159
|
+
return output ? "server" : "none";
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Turn an AJV validation error into the BadRequest an operation answers
|
|
163
|
+
* @param operationId - the operation
|
|
164
|
+
* @param err - the validation error
|
|
165
|
+
* @returns the error to throw
|
|
166
|
+
*/
|
|
167
|
+
function invalidInput(operationId, err) {
|
|
168
|
+
// Include the failing attribute path (AJV `instancePath`) in the human
|
|
169
|
+
// message so the client can tell *which* field is invalid; attach the
|
|
170
|
+
// raw `errors[]` as structured `details` so consumers can map errors
|
|
171
|
+
// to fields without parsing the string.
|
|
172
|
+
const summary = err.errors
|
|
173
|
+
.map(e => {
|
|
174
|
+
const path = e.instancePath ||
|
|
175
|
+
(e.params && e.params.missingProperty ? `/${e.params.missingProperty}` : "/");
|
|
176
|
+
return `${path} ${e.message}`;
|
|
177
|
+
})
|
|
178
|
+
.join("; ");
|
|
179
|
+
return new WebdaError.BadRequest(`${operationId} InvalidInput: ${summary}`, { errors: err.errors });
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* The streamed input of an operation, each message validated against its input schema as it is read
|
|
183
|
+
* @param operationId - the operation
|
|
184
|
+
* @param schema - its input schema name
|
|
185
|
+
* @param source - the messages from the transport
|
|
186
|
+
* @returns the validated messages
|
|
187
|
+
*/
|
|
188
|
+
async function* validatedStream(operationId, schema, source) {
|
|
189
|
+
for await (const item of source) {
|
|
190
|
+
if (schema && schema !== "void") {
|
|
191
|
+
try {
|
|
192
|
+
validateSchema(schema, item);
|
|
193
|
+
}
|
|
194
|
+
catch (err) {
|
|
195
|
+
if (err instanceof ValidationError)
|
|
196
|
+
throw invalidInput(operationId, err);
|
|
197
|
+
throw err;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
yield item;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
53
203
|
/**
|
|
54
204
|
* Serialize a primary key to the canonical string identifying an operation subject.
|
|
55
205
|
*
|
|
@@ -267,10 +417,18 @@ function coerceMergedToSchema(schema, merged) {
|
|
|
267
417
|
* @param operationId - the operation identifier
|
|
268
418
|
*/
|
|
269
419
|
async function checkOperation(context, operationId) {
|
|
420
|
+
context.setExtension("operationResolvedInput", undefined);
|
|
270
421
|
const operations = useInstanceStorage().operations;
|
|
271
422
|
if (!checkOperationPermission(context, operationId, operations[operationId])) {
|
|
272
423
|
throw new WebdaError.Forbidden(`${operationId} PermissionDenied`);
|
|
273
424
|
}
|
|
425
|
+
if (hasStreamedInput(operations[operationId])) {
|
|
426
|
+
if (!context.getExtension("operationInputStream")) {
|
|
427
|
+
throw new WebdaError.BadRequest(`${operationId} expects a stream of messages (gRPC stream or WebSocket)`);
|
|
428
|
+
}
|
|
429
|
+
// Each message is validated as the operation reads it (resolveArguments)
|
|
430
|
+
return;
|
|
431
|
+
}
|
|
274
432
|
try {
|
|
275
433
|
if (operations[operationId].input && operations[operationId].input !== "void") {
|
|
276
434
|
// Validate the merged (path params + request body) against the input schema.
|
|
@@ -300,23 +458,18 @@ async function checkOperation(context, operationId) {
|
|
|
300
458
|
}
|
|
301
459
|
catch (err) {
|
|
302
460
|
if (err instanceof ValidationError) {
|
|
303
|
-
|
|
304
|
-
// message so the client can tell *which* field is invalid; attach the
|
|
305
|
-
// raw `errors[]` as structured `details` so consumers can map errors
|
|
306
|
-
// to fields without parsing the string.
|
|
307
|
-
const summary = err.errors
|
|
308
|
-
.map(e => {
|
|
309
|
-
const path = e.instancePath ||
|
|
310
|
-
(e.params && e.params.missingProperty ? `/${e.params.missingProperty}` : "/");
|
|
311
|
-
return `${path} ${e.message}`;
|
|
312
|
-
})
|
|
313
|
-
.join("; ");
|
|
314
|
-
throw new WebdaError.BadRequest(`${operationId} InvalidInput: ${summary}`, {
|
|
315
|
-
errors: err.errors
|
|
316
|
-
});
|
|
461
|
+
throw invalidInput(operationId, err);
|
|
317
462
|
}
|
|
318
463
|
throw err;
|
|
319
464
|
}
|
|
465
|
+
const authorized = await runAuthorizers(context, operationId, operations[operationId], {
|
|
466
|
+
input: context.getExtension("operationResolvedInput"),
|
|
467
|
+
probe: false
|
|
468
|
+
});
|
|
469
|
+
if (authorized !== true) {
|
|
470
|
+
useLog("DEBUG", `Operation ${operationId} refused by an authorizer`, authorized);
|
|
471
|
+
throw new WebdaError.Forbidden(`${operationId} PermissionDenied`);
|
|
472
|
+
}
|
|
320
473
|
}
|
|
321
474
|
/**
|
|
322
475
|
* Resolve method arguments from the OperationContext using the operation's input schema metadata.
|
|
@@ -331,6 +484,10 @@ async function checkOperation(context, operationId) {
|
|
|
331
484
|
* @returns an array of resolved arguments to pass to the operation method
|
|
332
485
|
*/
|
|
333
486
|
export async function resolveArguments(context, operation) {
|
|
487
|
+
if (hasStreamedInput(operation)) {
|
|
488
|
+
const source = context.getExtension("operationInputStream");
|
|
489
|
+
return [validatedStream(operation.id, operation.input, source)];
|
|
490
|
+
}
|
|
334
491
|
// Prefer the merged-and-coerced object that `checkOperation` left on the
|
|
335
492
|
// context. Re-merging here would discard AJV's `coerceTypes` rewrites
|
|
336
493
|
// (e.g. string `"0"` from a `{index}` URL slot back to a `number`).
|
|
@@ -426,11 +583,16 @@ export async function callOperation(context, operationId) {
|
|
|
426
583
|
if (result !== undefined && result !== null) {
|
|
427
584
|
if (typeof result[Symbol.asyncIterator] === "function") {
|
|
428
585
|
// AsyncGenerator — stream each yielded value; flag it so contexts
|
|
429
|
-
// (e.g. MCP) can tell streamed chunks from a single written result
|
|
586
|
+
// (e.g. MCP) can tell streamed chunks from a single written result.
|
|
587
|
+
// The generator body runs during iteration: iterate inside the context so useContext() keeps working
|
|
588
|
+
// after a yield, and wait whenever the client cannot take more (backpressure)
|
|
430
589
|
context.setExtension("operationStreaming", true);
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
590
|
+
await runWithContext(context, async () => {
|
|
591
|
+
for await (const chunk of result) {
|
|
592
|
+
if (context.write(chunk) === false)
|
|
593
|
+
await context.drained();
|
|
594
|
+
}
|
|
595
|
+
});
|
|
434
596
|
}
|
|
435
597
|
else if (context.getOutput() === undefined) {
|
|
436
598
|
// Normal return — write to context only if nothing written yet
|
|
@@ -528,6 +690,7 @@ export function registerOperation(operationId, definition) {
|
|
|
528
690
|
operations[operationId][key] = "void";
|
|
529
691
|
}
|
|
530
692
|
});
|
|
693
|
+
operations[operationId].streaming = definition.streaming ?? computeStreaming(operations[operationId]);
|
|
531
694
|
}
|
|
532
695
|
/**
|
|
533
696
|
* Decorator that registers a class method as an operation with optional configuration
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/core/operations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/core/operations.ts"],"names":[],"mappings":"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"}
|
package/lib/deployers/git.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { GitInformation } from "../application/iconfiguration.js";
|
|
|
2
2
|
/**
|
|
3
3
|
* Compute the snapshot version used when the current commit is not tagged with the package version
|
|
4
4
|
*
|
|
5
|
-
* The patch is incremented (or the prerelease dropped) and the build metadata is the date
|
|
5
|
+
* The patch is incremented (or the prerelease dropped) and the build metadata is the UTC date
|
|
6
6
|
* as `yyyymmddHHMMssl`: `1.2.3` becomes `1.2.4+20261004130507009`
|
|
7
7
|
*
|
|
8
8
|
* @param version - the package version
|
|
@@ -16,7 +16,9 @@ export declare function nextSnapshotVersion(version: string, date?: Date): strin
|
|
|
16
16
|
* The `GIT_INFO` environment variable (base64 JSON of {@link GitInformation}) takes precedence,
|
|
17
17
|
* useful when building without the repository (containers). The version is the package version
|
|
18
18
|
* when the current commit has the tag `<packageName>@<version>` or `v<version>`, otherwise a
|
|
19
|
-
* snapshot version from {@link nextSnapshotVersion}.
|
|
19
|
+
* snapshot version from {@link nextSnapshotVersion} dated by `SOURCE_DATE_EPOCH` or the commit.
|
|
20
|
+
* Uncommitted changes add `dirty.<hash of the changes>` to the build metadata, so the same sources
|
|
21
|
+
* always give the same version.
|
|
20
22
|
*
|
|
21
23
|
* @param cwd - a folder within the repository
|
|
22
24
|
* @param packageName - the package name, to find the version tag
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/deployers/git.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/deployers/git.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEvE;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,IAAiB,GAAG,MAAM,CAYpF;AAuCD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,GAAE,MAAW,EAAE,OAAO,GAAE,MAAW,GAAG,cAAc,CAkC7G"}
|
package/lib/deployers/git.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { execFileSync } from "node:child_process";
|
|
2
|
+
import { createHash } from "node:crypto";
|
|
3
|
+
import { lstatSync, readFileSync, readlinkSync } from "node:fs";
|
|
4
|
+
import { join } from "node:path";
|
|
2
5
|
/**
|
|
3
6
|
* Compute the snapshot version used when the current commit is not tagged with the package version
|
|
4
7
|
*
|
|
5
|
-
* The patch is incremented (or the prerelease dropped) and the build metadata is the date
|
|
8
|
+
* The patch is incremented (or the prerelease dropped) and the build metadata is the UTC date
|
|
6
9
|
* as `yyyymmddHHMMssl`: `1.2.3` becomes `1.2.4+20261004130507009`
|
|
7
10
|
*
|
|
8
11
|
* @param version - the package version
|
|
@@ -16,17 +19,47 @@ export function nextSnapshotVersion(version, date = new Date()) {
|
|
|
16
19
|
}
|
|
17
20
|
const [, major, minor, patch, prerelease] = match;
|
|
18
21
|
const pad = (value, length = 2) => value.toString().padStart(length, "0");
|
|
19
|
-
const stamp = `${date.
|
|
20
|
-
`${pad(date.
|
|
22
|
+
const stamp = `${date.getUTCFullYear()}${pad(date.getUTCMonth() + 1)}${pad(date.getUTCDate())}` +
|
|
23
|
+
`${pad(date.getUTCHours())}${pad(date.getUTCMinutes())}${pad(date.getUTCSeconds())}` +
|
|
24
|
+
pad(date.getUTCMilliseconds(), 3);
|
|
21
25
|
return `${major}.${minor}.${prerelease ? patch : parseInt(patch) + 1}+${stamp}`;
|
|
22
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Hash the uncommitted changes of a repository: tracked changes against HEAD and untracked files
|
|
29
|
+
* that are not ignored
|
|
30
|
+
*
|
|
31
|
+
* @param root - the repository root
|
|
32
|
+
* @returns the first 8 hex characters of the hash, undefined when the working tree is clean
|
|
33
|
+
*/
|
|
34
|
+
function uncommittedHash(root) {
|
|
35
|
+
const run = (...args) => execFileSync("git", args, { cwd: root, stdio: "pipe", maxBuffer: 1024 ** 3 });
|
|
36
|
+
// Fixed diff format: the user configuration (colors, prefixes, renames) must not change the hash
|
|
37
|
+
const diff = run("diff", "HEAD", "--binary", "--no-color", "--no-ext-diff", "--no-renames", "--src-prefix=a/", "--dst-prefix=b/");
|
|
38
|
+
const untracked = run("ls-files", "--others", "--exclude-standard", "-z")
|
|
39
|
+
.toString()
|
|
40
|
+
.split("\0")
|
|
41
|
+
.filter(file => file !== "")
|
|
42
|
+
.sort();
|
|
43
|
+
if (!diff.length && !untracked.length) {
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
const hash = createHash("sha256").update(diff);
|
|
47
|
+
for (const file of untracked) {
|
|
48
|
+
const path = join(root, file);
|
|
49
|
+
hash.update(`\0${file}\0`);
|
|
50
|
+
hash.update(lstatSync(path).isSymbolicLink() ? readlinkSync(path) : readFileSync(path));
|
|
51
|
+
}
|
|
52
|
+
return hash.digest("hex").substring(0, 8);
|
|
53
|
+
}
|
|
23
54
|
/**
|
|
24
55
|
* Retrieve the git information of a repository
|
|
25
56
|
*
|
|
26
57
|
* The `GIT_INFO` environment variable (base64 JSON of {@link GitInformation}) takes precedence,
|
|
27
58
|
* useful when building without the repository (containers). The version is the package version
|
|
28
59
|
* when the current commit has the tag `<packageName>@<version>` or `v<version>`, otherwise a
|
|
29
|
-
* snapshot version from {@link nextSnapshotVersion}.
|
|
60
|
+
* snapshot version from {@link nextSnapshotVersion} dated by `SOURCE_DATE_EPOCH` or the commit.
|
|
61
|
+
* Uncommitted changes add `dirty.<hash of the changes>` to the build metadata, so the same sources
|
|
62
|
+
* always give the same version.
|
|
30
63
|
*
|
|
31
64
|
* @param cwd - a folder within the repository
|
|
32
65
|
* @param packageName - the package name, to find the version tag
|
|
@@ -43,13 +76,19 @@ export function getGitInformation(cwd, packageName = "", version = "") {
|
|
|
43
76
|
.split("\n")
|
|
44
77
|
.filter(tag => tag !== "");
|
|
45
78
|
const tag = [`${packageName}@${version}`, `v${version}`].find(candidate => tags.includes(candidate)) ?? "";
|
|
79
|
+
const epoch = process.env.SOURCE_DATE_EPOCH ?? git("log", "-1", "--format=%ct");
|
|
80
|
+
let gitVersion = tag ? version : nextSnapshotVersion(version, new Date(parseInt(epoch) * 1000));
|
|
81
|
+
const dirty = gitVersion ? uncommittedHash(git("rev-parse", "--show-toplevel")) : undefined;
|
|
82
|
+
if (dirty) {
|
|
83
|
+
gitVersion += `${gitVersion.includes("+") ? "." : "+"}dirty.${dirty}`;
|
|
84
|
+
}
|
|
46
85
|
return {
|
|
47
86
|
commit: git("rev-parse", "HEAD"),
|
|
48
87
|
branch: git("rev-parse", "--abbrev-ref", "HEAD"),
|
|
49
88
|
short: git("rev-parse", "--short", "HEAD"),
|
|
50
89
|
tag,
|
|
51
90
|
tags,
|
|
52
|
-
version:
|
|
91
|
+
version: gitVersion
|
|
53
92
|
};
|
|
54
93
|
}
|
|
55
94
|
catch {
|
package/lib/deployers/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/deployers/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/deployers/git.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,6 +50,23 @@ export interface PackageOptions {
|
|
|
50
50
|
includes?: string[];
|
|
51
51
|
excludes?: string[];
|
|
52
52
|
};
|
|
53
|
+
/**
|
|
54
|
+
* Services to remove from the packaged configuration, like the ones injected by the CLI to run a command
|
|
55
|
+
*/
|
|
56
|
+
excludeServices?: string[];
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Options of {@link getDeployedConfiguration}
|
|
60
|
+
*/
|
|
61
|
+
export interface DeployedConfigurationOptions {
|
|
62
|
+
/**
|
|
63
|
+
* Services to remove from the configuration, in addition to the deployment units
|
|
64
|
+
*/
|
|
65
|
+
excludeServices?: string[];
|
|
66
|
+
/**
|
|
67
|
+
* Rewrite the `Import` and `Configuration` paths of the cached modules, kept as is when omitted
|
|
68
|
+
*/
|
|
69
|
+
rewriteImport?: (value: string) => string;
|
|
53
70
|
}
|
|
54
71
|
/**
|
|
55
72
|
* A packaged application
|
|
@@ -64,6 +81,27 @@ export interface ApplicationPackage {
|
|
|
64
81
|
*/
|
|
65
82
|
configuration: Configuration;
|
|
66
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* Compute the configuration of the application with its current deployment applied
|
|
86
|
+
*
|
|
87
|
+
* It is a copy of the current configuration without the deployment units and the excluded services,
|
|
88
|
+
* with the deployment name and the git information baked in the cached project.
|
|
89
|
+
*
|
|
90
|
+
* @param app - the loaded application
|
|
91
|
+
* @param options - excluded services and import rewriting
|
|
92
|
+
* @returns the deployed configuration
|
|
93
|
+
*/
|
|
94
|
+
export declare function getDeployedConfiguration(app: Application, options?: DeployedConfigurationOptions): Configuration;
|
|
95
|
+
/**
|
|
96
|
+
* Write a packaged application into a folder
|
|
97
|
+
*
|
|
98
|
+
* The folder is created if needed and must be empty: a previous package is never overwritten.
|
|
99
|
+
*
|
|
100
|
+
* @param pkg - the package from {@link packageApplication}
|
|
101
|
+
* @param output - the target folder
|
|
102
|
+
* @throws CodeError PACKAGE_OUTPUT_NOT_EMPTY if the folder already contains files
|
|
103
|
+
*/
|
|
104
|
+
export declare function writeApplicationPackage(pkg: ApplicationPackage, output: string): void;
|
|
67
105
|
/**
|
|
68
106
|
* Compute the content of a deployable application: its files, its production dependencies and
|
|
69
107
|
* its packaged configuration
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packager.d.ts","sourceRoot":"","sources":["../../src/deployers/packager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"packager.d.ts","sourceRoot":"","sources":["../../src/deployers/packager.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAItE;;GAEG;AACH,eAAO,MAAM,sBAAsB,sBAAsB,CAAC;AAC1D;;GAEG;AACH,eAAO,MAAM,eAAe,yBAAyB,CAAC;AAmBtD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B;;OAEG;IACH,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IACF;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB;;OAEG;IACH,aAAa,EAAE,aAAa,CAAC;CAC9B;AAmJD;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,GAAE,4BAAiC,GAAG,aAAa,CA2BpH;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAerF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA0FpH"}
|