@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.
- package/dist/for-fabric.cjs +3 -3
- package/dist/for-fabric.js +3 -3
- package/lib/contract/logging-context.cjs +77 -0
- package/lib/contract/logging-context.d.ts +8 -0
- package/lib/contracts/ContractAdapter.cjs +27 -11
- package/lib/contracts/logging.cjs +26 -15
- package/lib/contracts/logging.d.ts +11 -6
- package/lib/esm/contract/logging-context.d.ts +8 -0
- package/lib/esm/contract/logging-context.js +71 -0
- package/lib/esm/contracts/ContractAdapter.js +27 -11
- package/lib/esm/contracts/logging.d.ts +11 -6
- package/lib/esm/contracts/logging.js +26 -15
- package/lib/esm/shared/decorators.js +2 -2
- package/lib/esm/version.d.ts +1 -1
- package/lib/esm/version.js +1 -1
- package/lib/shared/decorators.cjs +2 -2
- package/lib/version.cjs +1 -1
- package/lib/version.d.ts +1 -1
- package/package.json +2 -2
|
@@ -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;
|