@decaf-ts/for-fabric 0.5.1-query → 0.5.1-query.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.
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ensureContractLogFieldRegistration = ensureContractLogFieldRegistration;
4
+ exports.enrichContractLoggingConfig = enrichContractLoggingConfig;
5
+ exports.extractUserFromIdentity = extractUserFromIdentity;
6
+ exports.trimCorrelationId = trimCorrelationId;
7
+ const logging_1 = require("@decaf-ts/logging");
8
+ let userFieldRegistered = false;
9
+ function ensureContractLogFieldRegistration() {
10
+ if (userFieldRegistered)
11
+ return;
12
+ userFieldRegistered = true;
13
+ logging_1.Logging.register({
14
+ key: "correlationId",
15
+ shouldInclude(payload) {
16
+ const value = payload?.correlationId ?? payload?.config?.correlationId;
17
+ return Boolean(value);
18
+ },
19
+ render(payload) {
20
+ const value = payload?.correlationId ?? payload?.config?.correlationId;
21
+ return value === undefined || value === null
22
+ ? undefined
23
+ : `, correlationId: ${String(value)}`;
24
+ },
25
+ style(rendered, payload) {
26
+ return payload.applyTheme(rendered, "id");
27
+ },
28
+ });
29
+ logging_1.Logging.register({
30
+ key: "user",
31
+ shouldInclude(payload) {
32
+ const value = payload?.user ?? payload?.config?.user;
33
+ return Boolean(value);
34
+ },
35
+ render(payload) {
36
+ const value = payload?.user ?? payload?.config?.user;
37
+ return value === undefined || value === null
38
+ ? undefined
39
+ : `, user: ${String(value)}`;
40
+ },
41
+ style(rendered, payload) {
42
+ return payload.applyTheme(rendered, "id");
43
+ },
44
+ });
45
+ }
46
+ function enrichContractLoggingConfig(conf, ctx) {
47
+ if (!ctx)
48
+ return conf;
49
+ const txId = ctx.stub?.getTxID?.();
50
+ const compactTxId = trimCorrelationId(txId);
51
+ const user = extractUserFromIdentity(ctx.clientIdentity?.getID?.());
52
+ const useDefaultFabricFormatting = !conf?.pattern;
53
+ return {
54
+ ...(conf || {}),
55
+ correlationId: conf?.correlationId || compactTxId,
56
+ user: conf?.user || user,
57
+ pattern: conf?.pattern || "{message}{user}{correlationId} {stack}",
58
+ logLevel: useDefaultFabricFormatting ? false : conf?.logLevel,
59
+ timestamp: useDefaultFabricFormatting ? false : conf?.timestamp,
60
+ context: useDefaultFabricFormatting ? false : conf?.context,
61
+ separator: useDefaultFabricFormatting ? "" : conf?.separator,
62
+ };
63
+ }
64
+ function extractUserFromIdentity(id) {
65
+ if (!id)
66
+ return undefined;
67
+ const emailMatch = id.match(/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}/);
68
+ return emailMatch?.[0];
69
+ }
70
+ function trimCorrelationId(id) {
71
+ if (!id)
72
+ return undefined;
73
+ if (id.length <= 10)
74
+ return id;
75
+ return `${id.slice(0, 5)}-${id.slice(-5)}`;
76
+ }
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0L2xvZ2dpbmctY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUtBLGdGQW1DQztBQUVELGtFQW1CQztBQUVELDBEQU1DO0FBRUQsOENBSUM7QUEzRUQsK0NBQTJEO0FBRzNELElBQUksbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0FBRWhDLFNBQWdCLGtDQUFrQztJQUNoRCxJQUFJLG1CQUFtQjtRQUFFLE9BQU87SUFDaEMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO0lBQzNCLGlCQUFPLENBQUMsUUFBUSxDQUFDO1FBQ2YsR0FBRyxFQUFFLGVBQWU7UUFDcEIsYUFBYSxDQUFDLE9BQVk7WUFDeEIsTUFBTSxLQUFLLEdBQUcsT0FBTyxFQUFFLGFBQWEsSUFBSSxPQUFPLEVBQUUsTUFBTSxFQUFFLGFBQWEsQ0FBQztZQUN2RSxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixDQUFDO1FBQ0QsTUFBTSxDQUFDLE9BQVk7WUFDakIsTUFBTSxLQUFLLEdBQUcsT0FBTyxFQUFFLGFBQWEsSUFBSSxPQUFPLEVBQUUsTUFBTSxFQUFFLGFBQWEsQ0FBQztZQUN2RSxPQUFPLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLElBQUk7Z0JBQzFDLENBQUMsQ0FBQyxTQUFTO2dCQUNYLENBQUMsQ0FBQyxvQkFBb0IsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDMUMsQ0FBQztRQUNELEtBQUssQ0FBQyxRQUFnQixFQUFFLE9BQVk7WUFDbEMsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1QyxDQUFDO0tBQ0ssQ0FBQyxDQUFDO0lBQ1YsaUJBQU8sQ0FBQyxRQUFRLENBQUM7UUFDZixHQUFHLEVBQUUsTUFBTTtRQUNYLGFBQWEsQ0FBQyxPQUFZO1lBQ3hCLE1BQU0sS0FBSyxHQUFHLE9BQU8sRUFBRSxJQUFJLElBQUksT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUM7WUFDckQsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsQ0FBQztRQUNELE1BQU0sQ0FBQyxPQUFZO1lBQ2pCLE1BQU0sS0FBSyxHQUFHLE9BQU8sRUFBRSxJQUFJLElBQUksT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUM7WUFDckQsT0FBTyxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJO2dCQUMxQyxDQUFDLENBQUMsU0FBUztnQkFDWCxDQUFDLENBQUMsV0FBVyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNqQyxDQUFDO1FBQ0QsS0FBSyxDQUFDLFFBQWdCLEVBQUUsT0FBWTtZQUNsQyxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVDLENBQUM7S0FDSyxDQUFDLENBQUM7QUFDWixDQUFDO0FBRUQsU0FBZ0IsMkJBQTJCLENBQ3pDLElBQXdDLEVBQ3hDLEdBQVM7SUFFVCxJQUFJLENBQUMsR0FBRztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQ3RCLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQztJQUNuQyxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxNQUFNLElBQUksR0FBRyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRSxNQUFNLDBCQUEwQixHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQztJQUNsRCxPQUFPO1FBQ0wsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDZixhQUFhLEVBQUUsSUFBSSxFQUFFLGFBQWEsSUFBSSxXQUFXO1FBQ2pELElBQUksRUFBRyxJQUFZLEVBQUUsSUFBSSxJQUFJLElBQUk7UUFDakMsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLElBQUksd0NBQXdDO1FBQ2xFLFFBQVEsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsUUFBUTtRQUM3RCxTQUFTLEVBQUUsMEJBQTBCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFNBQVM7UUFDL0QsT0FBTyxFQUFFLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxPQUFPO1FBQzNELFNBQVMsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUztLQUM3RCxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLHVCQUF1QixDQUFDLEVBQVc7SUFDakQsSUFBSSxDQUFDLEVBQUU7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUMxQixNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUN6QixnREFBZ0QsQ0FDakQsQ0FBQztJQUNGLE9BQU8sVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDekIsQ0FBQztBQUVELFNBQWdCLGlCQUFpQixDQUFDLEVBQVc7SUFDM0MsSUFBSSxDQUFDLEVBQUU7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUMxQixJQUFJLEVBQUUsQ0FBQyxNQUFNLElBQUksRUFBRTtRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQy9CLE9BQU8sR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUM3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9nZ2luZywgTG9nZ2luZ0NvbmZpZyB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuaW1wb3J0IHsgQ29udGV4dCBhcyBDdHggfSBmcm9tIFwiZmFicmljLWNvbnRyYWN0LWFwaVwiO1xuXG5sZXQgdXNlckZpZWxkUmVnaXN0ZXJlZCA9IGZhbHNlO1xuXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlQ29udHJhY3RMb2dGaWVsZFJlZ2lzdHJhdGlvbigpIHtcbiAgaWYgKHVzZXJGaWVsZFJlZ2lzdGVyZWQpIHJldHVybjtcbiAgdXNlckZpZWxkUmVnaXN0ZXJlZCA9IHRydWU7XG4gIExvZ2dpbmcucmVnaXN0ZXIoe1xuICAgIGtleTogXCJjb3JyZWxhdGlvbklkXCIsXG4gICAgc2hvdWxkSW5jbHVkZShwYXlsb2FkOiBhbnkpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gcGF5bG9hZD8uY29ycmVsYXRpb25JZCA/PyBwYXlsb2FkPy5jb25maWc/LmNvcnJlbGF0aW9uSWQ7XG4gICAgICByZXR1cm4gQm9vbGVhbih2YWx1ZSk7XG4gICAgfSxcbiAgICByZW5kZXIocGF5bG9hZDogYW55KSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHBheWxvYWQ/LmNvcnJlbGF0aW9uSWQgPz8gcGF5bG9hZD8uY29uZmlnPy5jb3JyZWxhdGlvbklkO1xuICAgICAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGxcbiAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgOiBgLCBjb3JyZWxhdGlvbklkOiAke1N0cmluZyh2YWx1ZSl9YDtcbiAgICB9LFxuICAgIHN0eWxlKHJlbmRlcmVkOiBzdHJpbmcsIHBheWxvYWQ6IGFueSkge1xuICAgICAgcmV0dXJuIHBheWxvYWQuYXBwbHlUaGVtZShyZW5kZXJlZCwgXCJpZFwiKTtcbiAgICB9LFxuICB9IGFzIGFueSk7XG4gIExvZ2dpbmcucmVnaXN0ZXIoe1xuICAgIGtleTogXCJ1c2VyXCIsXG4gICAgc2hvdWxkSW5jbHVkZShwYXlsb2FkOiBhbnkpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gcGF5bG9hZD8udXNlciA/PyBwYXlsb2FkPy5jb25maWc/LnVzZXI7XG4gICAgICByZXR1cm4gQm9vbGVhbih2YWx1ZSk7XG4gICAgfSxcbiAgICByZW5kZXIocGF5bG9hZDogYW55KSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHBheWxvYWQ/LnVzZXIgPz8gcGF5bG9hZD8uY29uZmlnPy51c2VyO1xuICAgICAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGxcbiAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgOiBgLCB1c2VyOiAke1N0cmluZyh2YWx1ZSl9YDtcbiAgICB9LFxuICAgIHN0eWxlKHJlbmRlcmVkOiBzdHJpbmcsIHBheWxvYWQ6IGFueSkge1xuICAgICAgcmV0dXJuIHBheWxvYWQuYXBwbHlUaGVtZShyZW5kZXJlZCwgXCJpZFwiKTtcbiAgICB9LFxuICB9IGFzIGFueSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnJpY2hDb250cmFjdExvZ2dpbmdDb25maWcoXG4gIGNvbmY6IFBhcnRpYWw8TG9nZ2luZ0NvbmZpZz4gfCB1bmRlZmluZWQsXG4gIGN0eD86IEN0eFxuKTogKFBhcnRpYWw8TG9nZ2luZ0NvbmZpZz4gJiB7IHVzZXI/OiBzdHJpbmcgfSkgfCB1bmRlZmluZWQge1xuICBpZiAoIWN0eCkgcmV0dXJuIGNvbmY7XG4gIGNvbnN0IHR4SWQgPSBjdHguc3R1Yj8uZ2V0VHhJRD8uKCk7XG4gIGNvbnN0IGNvbXBhY3RUeElkID0gdHJpbUNvcnJlbGF0aW9uSWQodHhJZCk7XG4gIGNvbnN0IHVzZXIgPSBleHRyYWN0VXNlckZyb21JZGVudGl0eShjdHguY2xpZW50SWRlbnRpdHk/LmdldElEPy4oKSk7XG4gIGNvbnN0IHVzZURlZmF1bHRGYWJyaWNGb3JtYXR0aW5nID0gIWNvbmY/LnBhdHRlcm47XG4gIHJldHVybiB7XG4gICAgLi4uKGNvbmYgfHwge30pLFxuICAgIGNvcnJlbGF0aW9uSWQ6IGNvbmY/LmNvcnJlbGF0aW9uSWQgfHwgY29tcGFjdFR4SWQsXG4gICAgdXNlcjogKGNvbmYgYXMgYW55KT8udXNlciB8fCB1c2VyLFxuICAgIHBhdHRlcm46IGNvbmY/LnBhdHRlcm4gfHwgXCJ7bWVzc2FnZX17dXNlcn17Y29ycmVsYXRpb25JZH0ge3N0YWNrfVwiLFxuICAgIGxvZ0xldmVsOiB1c2VEZWZhdWx0RmFicmljRm9ybWF0dGluZyA/IGZhbHNlIDogY29uZj8ubG9nTGV2ZWwsXG4gICAgdGltZXN0YW1wOiB1c2VEZWZhdWx0RmFicmljRm9ybWF0dGluZyA/IGZhbHNlIDogY29uZj8udGltZXN0YW1wLFxuICAgIGNvbnRleHQ6IHVzZURlZmF1bHRGYWJyaWNGb3JtYXR0aW5nID8gZmFsc2UgOiBjb25mPy5jb250ZXh0LFxuICAgIHNlcGFyYXRvcjogdXNlRGVmYXVsdEZhYnJpY0Zvcm1hdHRpbmcgPyBcIlwiIDogY29uZj8uc2VwYXJhdG9yLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFVzZXJGcm9tSWRlbnRpdHkoaWQ/OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoIWlkKSByZXR1cm4gdW5kZWZpbmVkO1xuICBjb25zdCBlbWFpbE1hdGNoID0gaWQubWF0Y2goXG4gICAgL1tBLVphLXowLTkuXyUrLV0rQFtBLVphLXowLTkuLV0rXFwuW0EtWmEtel17Mix9L1xuICApO1xuICByZXR1cm4gZW1haWxNYXRjaD8uWzBdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJpbUNvcnJlbGF0aW9uSWQoaWQ/OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoIWlkKSByZXR1cm4gdW5kZWZpbmVkO1xuICBpZiAoaWQubGVuZ3RoIDw9IDEwKSByZXR1cm4gaWQ7XG4gIHJldHVybiBgJHtpZC5zbGljZSgwLCA1KX0tJHtpZC5zbGljZSgtNSl9YDtcbn1cbiJdfQ==
@@ -0,0 +1,8 @@
1
+ import { LoggingConfig } from "@decaf-ts/logging";
2
+ import { Context as Ctx } from "fabric-contract-api";
3
+ export declare function ensureContractLogFieldRegistration(): void;
4
+ export declare function enrichContractLoggingConfig(conf: Partial<LoggingConfig> | undefined, ctx?: Ctx): (Partial<LoggingConfig> & {
5
+ user?: string;
6
+ }) | undefined;
7
+ export declare function extractUserFromIdentity(id?: string): string | undefined;
8
+ export declare function trimCorrelationId(id?: string): string | undefined;