@serve.zone/dcrouter 34.7.1 → 34.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/testing/classes.testing-certificate-manager.js +23 -6
- package/dist_ts/testing/classes.testing-dns-cleanup-manager.d.ts +20 -1
- package/dist_ts/testing/classes.testing-dns-cleanup-manager.js +97 -20
- package/dist_ts/testing/error-log-fields.d.ts +10 -0
- package/dist_ts/testing/error-log-fields.js +28 -0
- package/dist_ts_migrations/index.d.ts +1 -1
- package/dist_ts_migrations/index.js +54 -3
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/package.json +2 -2
- package/readme.md +9 -2
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/testing/classes.testing-certificate-manager.ts +22 -5
- package/ts/testing/classes.testing-dns-cleanup-manager.ts +98 -18
- package/ts/testing/error-log-fields.ts +35 -0
- package/ts_web/00_commitinfo_data.ts +1 -1
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { TestingError } from './errors.js';
|
|
2
|
+
const withheldMessage = 'withheld: the message may hold key material or a token';
|
|
3
|
+
/** A PEM armor line, or an unbroken run long enough to be a token, a key or a digest. */
|
|
4
|
+
const secretShape = /-----BEGIN|[A-Za-z0-9+_=-]{40,}/;
|
|
5
|
+
/** Shorter than the run `secretShape` withholds, so a code never carries what a message may not. */
|
|
6
|
+
const codeShape = /^[A-Za-z0-9_.-]{1,39}$/;
|
|
7
|
+
/**
|
|
8
|
+
* What a log line may say about a caught error. A caught error is foreign text: it can quote a provider
|
|
9
|
+
* response, a certificate or a credential. The logger never gets the error itself, its stack or its cause.
|
|
10
|
+
*/
|
|
11
|
+
export function testingErrorLogFields(error) {
|
|
12
|
+
// An error's `message` and `name` are whatever its thrower assigned: only a string is text to log.
|
|
13
|
+
const foreignMessage = error instanceof Error ? error.message : error;
|
|
14
|
+
const message = typeof foreignMessage === 'string' ? foreignMessage : '';
|
|
15
|
+
const foreignName = error instanceof Error ? error.name : undefined;
|
|
16
|
+
const name = typeof foreignName === 'string' ? foreignName : typeof error;
|
|
17
|
+
const code = error instanceof TestingError ? error.publicError.code
|
|
18
|
+
: typeof error === 'object' && error !== null && 'code' in error ? error.code : undefined;
|
|
19
|
+
const loggable = typeof code === 'string' ? codeShape.test(code) : Number.isSafeInteger(code);
|
|
20
|
+
return {
|
|
21
|
+
errorName: name.slice(0, 64),
|
|
22
|
+
...(loggable ? { errorCode: code } : {}),
|
|
23
|
+
// The whole message is judged before it is cut: a secret behind the first line still withholds it.
|
|
24
|
+
errorMessage: secretShape.test(message) ? withheldMessage
|
|
25
|
+
: message.split(/[\r\n\u2028\u2029]/, 1)[0].replace(/[\u0000-\u001f\u007f-\u009f]/g, ' ').slice(0, 300),
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItbG9nLWZpZWxkcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL3Rlc3RpbmcvZXJyb3ItbG9nLWZpZWxkcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBUTNDLE1BQU0sZUFBZSxHQUFHLHdEQUF3RCxDQUFDO0FBQ2pGLHlGQUF5RjtBQUN6RixNQUFNLFdBQVcsR0FBRyxpQ0FBaUMsQ0FBQztBQUN0RCxvR0FBb0c7QUFDcEcsTUFBTSxTQUFTLEdBQUcsd0JBQXdCLENBQUM7QUFFM0M7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUFDLEtBQWM7SUFDbEQsbUdBQW1HO0lBQ25HLE1BQU0sY0FBYyxHQUFZLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUMvRSxNQUFNLE9BQU8sR0FBRyxPQUFPLGNBQWMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3pFLE1BQU0sV0FBVyxHQUFZLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUM3RSxNQUFNLElBQUksR0FBRyxPQUFPLFdBQVcsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUM7SUFDMUUsTUFBTSxJQUFJLEdBQUcsS0FBSyxZQUFZLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJO1FBQ2pFLENBQUMsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxNQUFNLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDNUYsTUFBTSxRQUFRLEdBQUcsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlGLE9BQU87UUFDTCxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQzVCLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQXVCLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzNELG1HQUFtRztRQUNuRyxZQUFZLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZTtZQUN2RCxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsK0JBQStCLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUM7S0FDMUcsQ0FBQztBQUNKLENBQUMifQ==
|
|
@@ -51,7 +51,7 @@ export interface IDowngradeMigrationRunner extends IMigrationRunner {
|
|
|
51
51
|
/** The reverse plan, without the lock and without writing anything. */
|
|
52
52
|
plan(): Promise<IDowngradeMigrationRunResult>;
|
|
53
53
|
}
|
|
54
|
-
export declare const dcRouterSchemaVersion = "34.
|
|
54
|
+
export declare const dcRouterSchemaVersion = "34.7.2";
|
|
55
55
|
export declare function createApplicationMigrationRunner(db: unknown, options?: IDcRouterMigrationOptions): Promise<IMigrationRunner>;
|
|
56
56
|
export interface IDcRouterMigrationOptions {
|
|
57
57
|
remoteIngressHubSettings?: {
|