@payfit/audit-log 3.5.0-rc.9 → 3.6.0
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 +2 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.js +1 -1
- package/dist/index.mjs +133 -61
- package/dist/transport/implementation.d.ts +6 -6
- package/dist/transport/interface.d.ts +1 -0
- package/package.json +4 -8
- package/dist/index.test.d.ts +0 -1
package/README.md
CHANGED
|
@@ -16,7 +16,8 @@ Then, you must instanciate a client :
|
|
|
16
16
|
import { AuditLogger } from '@payfit/audit-log'
|
|
17
17
|
|
|
18
18
|
const logger = new AuditLogger({
|
|
19
|
-
|
|
19
|
+
apiUrl: 'http://localhost:8090',
|
|
20
|
+
environment: 'an-environment-name',
|
|
20
21
|
service: 'the-name-of-the-service',
|
|
21
22
|
})
|
|
22
23
|
```
|
package/dist/index.d.ts
CHANGED
|
@@ -92,8 +92,7 @@ export interface IAuditLogger {
|
|
|
92
92
|
log: (data: IAuditLogData) => Promise<void>;
|
|
93
93
|
}
|
|
94
94
|
export interface IAuditLoggerInitialization {
|
|
95
|
-
|
|
96
|
-
apiUrl?: string;
|
|
95
|
+
apiUrl: string;
|
|
97
96
|
environment: string;
|
|
98
97
|
service: string;
|
|
99
98
|
}
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var d=Object.defineProperty;var
|
|
1
|
+
"use strict";var d=Object.defineProperty;var P=(s,e,t)=>e in s?d(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var n=(s,e,t)=>(P(s,typeof e!="symbol"?e+"":e,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("uuid"),h=require("axios"),p="http://localhost:8090".replace(/\/+$/,"");class f{constructor(e,t=p,r=h){n(this,"basePath");n(this,"axios");n(this,"configuration");this.basePath=t,this.axios=r,e&&(this.configuration=e,this.basePath=e.basePath||this.basePath)}}class g extends Error{constructor(t,r){super(r);n(this,"field");n(this,"name","RequiredError");this.field=t}}const A="https://example.com",w=function(s,e,t){if(t==null)throw new g(e,`Required parameter ${e} was null or undefined when calling ${s}.`)},b=function(s,...e){const t=new URLSearchParams(s.search);for(const r of e)for(const o in r)if(Array.isArray(r[o])){t.delete(o);for(const a of r[o])t.append(o,a)}else t.set(o,r[o]);s.search=t.toString()},x=function(s,e,t){const r=typeof s!="string";return(r&&t&&t.isJsonMime?t.isJsonMime(e.headers["Content-Type"]):r)?JSON.stringify(s!==void 0?s:{}):s||""},y=function(s){return s.pathname+s.search+s.hash},L=function(s,e,t,r){return(o=e,a=t)=>{const i={...s.options,url:((r==null?void 0:r.basePath)||a)+s.url};return o.request(i)}},S=function(s){return{v1LogPost:async(e,t={})=>{w("v1LogPost","inlineObject",e);const r="/v1/log",o=new URL(r,A);let a;s&&(a=s.baseOptions);const i={method:"POST",...a,...t},c={},l={};c["Content-Type"]="application/json",b(o,l);let u=a&&a.headers?a.headers:{};return i.headers={...c,...u,...t.headers},i.data=x(e,i,s),{url:y(o),options:i}}}},E=function(s){const e=S(s);return{async v1LogPost(t,r){const o=await e.v1LogPost(t,r);return L(o,h,p,s)}}};class v extends f{v1LogPost(e,t){return E(this.configuration).v1LogPost(e,t).then(r=>r(this.axios,this.basePath))}}const R=s=>"isAxiosError"in s&&s.isAxiosError&&s instanceof Error;class j{constructor(e){n(this,"apiUrl");n(this,"api");this.apiUrl=e,this.api=new v({basePath:this.apiUrl,isJsonMime(t){const r=new RegExp("^(application/json|[^;/ ]+/[^;/ ]+[+]json)[ ]*(;.*)?$","i");return t!==null&&(r.test(t)||t.toLowerCase()==="application/json-patch+json")}})}async create(e){var t;try{await this.api.v1LogPost(e,{timeout:5e3})}catch(r){if(!R(r))throw r;const o=((t=r.response)==null?void 0:t.data)||r.message;throw new Error(o)}}}class q{constructor(e){n(this,"params");n(this,"transport");this.params=e,this.transport=new j(e.apiUrl)}async log({scope:e,account:t,...r}){const o=m.v4(),{environment:a,service:i}=this.params,c=Math.floor(Date.now()/1e3),l={...r,...t,service:i,id:o,environment:a,timestamp:c,...e&&{scope:e}};await this.transport.create(l)}}exports.AuditLogger=q;
|
package/dist/index.mjs
CHANGED
|
@@ -1,77 +1,149 @@
|
|
|
1
1
|
var u = Object.defineProperty;
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
import { v4 as
|
|
5
|
-
import
|
|
6
|
-
const
|
|
7
|
-
dev: "https://sqs.eu-west-3.amazonaws.com/533547282673/audit-logs-ingest",
|
|
8
|
-
staging: "https://sqs.eu-west-3.amazonaws.com/589883667243/audit-logs-ingest",
|
|
9
|
-
prod: "https://sqs.eu-west-3.amazonaws.com/614948436281/audit-logs-ingest"
|
|
10
|
-
};
|
|
2
|
+
var P = (s, e, t) => e in s ? u(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t;
|
|
3
|
+
var n = (s, e, t) => (P(s, typeof e != "symbol" ? e + "" : e, t), t);
|
|
4
|
+
import { v4 as m } from "uuid";
|
|
5
|
+
import l from "axios";
|
|
6
|
+
const p = "http://localhost:8090".replace(/\/+$/, "");
|
|
11
7
|
class f {
|
|
8
|
+
constructor(e, t = p, o = l) {
|
|
9
|
+
n(this, "basePath");
|
|
10
|
+
n(this, "axios");
|
|
11
|
+
n(this, "configuration");
|
|
12
|
+
this.basePath = t, this.axios = o, e && (this.configuration = e, this.basePath = e.basePath || this.basePath);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
class A extends Error {
|
|
16
|
+
constructor(t, o) {
|
|
17
|
+
super(o);
|
|
18
|
+
n(this, "field");
|
|
19
|
+
n(this, "name", "RequiredError");
|
|
20
|
+
this.field = t;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
const w = "https://example.com", x = function(s, e, t) {
|
|
24
|
+
if (t == null)
|
|
25
|
+
throw new A(e, `Required parameter ${e} was null or undefined when calling ${s}.`);
|
|
26
|
+
}, g = function(s, ...e) {
|
|
27
|
+
const t = new URLSearchParams(s.search);
|
|
28
|
+
for (const o of e)
|
|
29
|
+
for (const r in o)
|
|
30
|
+
if (Array.isArray(o[r])) {
|
|
31
|
+
t.delete(r);
|
|
32
|
+
for (const a of o[r])
|
|
33
|
+
t.append(r, a);
|
|
34
|
+
} else
|
|
35
|
+
t.set(r, o[r]);
|
|
36
|
+
s.search = t.toString();
|
|
37
|
+
}, b = function(s, e, t) {
|
|
38
|
+
const o = typeof s != "string";
|
|
39
|
+
return (o && t && t.isJsonMime ? t.isJsonMime(e.headers["Content-Type"]) : o) ? JSON.stringify(s !== void 0 ? s : {}) : s || "";
|
|
40
|
+
}, y = function(s) {
|
|
41
|
+
return s.pathname + s.search + s.hash;
|
|
42
|
+
}, E = function(s, e, t, o) {
|
|
43
|
+
return (r = e, a = t) => {
|
|
44
|
+
const i = { ...s.options, url: ((o == null ? void 0 : o.basePath) || a) + s.url };
|
|
45
|
+
return r.request(i);
|
|
46
|
+
};
|
|
47
|
+
}, L = function(s) {
|
|
48
|
+
return {
|
|
49
|
+
/**
|
|
50
|
+
*
|
|
51
|
+
* @summary Creates Audit Log event
|
|
52
|
+
* @param {InlineObject} inlineObject
|
|
53
|
+
* @param {*} [options] Override http request option.
|
|
54
|
+
* @throws {RequiredError}
|
|
55
|
+
*/
|
|
56
|
+
v1LogPost: async (e, t = {}) => {
|
|
57
|
+
x("v1LogPost", "inlineObject", e);
|
|
58
|
+
const o = "/v1/log", r = new URL(o, w);
|
|
59
|
+
let a;
|
|
60
|
+
s && (a = s.baseOptions);
|
|
61
|
+
const i = { method: "POST", ...a, ...t }, c = {}, h = {};
|
|
62
|
+
c["Content-Type"] = "application/json", g(r, h);
|
|
63
|
+
let d = a && a.headers ? a.headers : {};
|
|
64
|
+
return i.headers = { ...c, ...d, ...t.headers }, i.data = b(e, i, s), {
|
|
65
|
+
url: y(r),
|
|
66
|
+
options: i
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
}, S = function(s) {
|
|
71
|
+
const e = L(s);
|
|
72
|
+
return {
|
|
73
|
+
/**
|
|
74
|
+
*
|
|
75
|
+
* @summary Creates Audit Log event
|
|
76
|
+
* @param {InlineObject} inlineObject
|
|
77
|
+
* @param {*} [options] Override http request option.
|
|
78
|
+
* @throws {RequiredError}
|
|
79
|
+
*/
|
|
80
|
+
async v1LogPost(t, o) {
|
|
81
|
+
const r = await e.v1LogPost(t, o);
|
|
82
|
+
return E(r, l, p, s);
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
class v extends f {
|
|
87
|
+
/**
|
|
88
|
+
*
|
|
89
|
+
* @summary Creates Audit Log event
|
|
90
|
+
* @param {InlineObject} inlineObject
|
|
91
|
+
* @param {*} [options] Override http request option.
|
|
92
|
+
* @throws {RequiredError}
|
|
93
|
+
* @memberof DefaultApi
|
|
94
|
+
*/
|
|
95
|
+
v1LogPost(e, t) {
|
|
96
|
+
return S(this.configuration).v1LogPost(e, t).then((o) => o(this.axios, this.basePath));
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
const R = (s) => "isAxiosError" in s && s.isAxiosError && s instanceof Error;
|
|
100
|
+
class U {
|
|
12
101
|
constructor(e) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
102
|
+
n(this, "apiUrl");
|
|
103
|
+
n(this, "api");
|
|
104
|
+
this.apiUrl = e, this.api = new v({
|
|
105
|
+
basePath: this.apiUrl,
|
|
106
|
+
isJsonMime(t) {
|
|
107
|
+
const o = new RegExp(
|
|
108
|
+
// eslint-disable-next-line no-control-regex
|
|
109
|
+
"^(application/json|[^;/ ]+/[^;/ ]+[+]json)[ ]*(;.*)?$",
|
|
110
|
+
"i"
|
|
111
|
+
);
|
|
112
|
+
return t !== null && (o.test(t) || t.toLowerCase() === "application/json-patch+json");
|
|
113
|
+
}
|
|
114
|
+
});
|
|
21
115
|
}
|
|
22
116
|
async create(e) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
})
|
|
117
|
+
var t;
|
|
118
|
+
try {
|
|
119
|
+
await this.api.v1LogPost(e, { timeout: 5e3 });
|
|
120
|
+
} catch (o) {
|
|
121
|
+
if (!R(o))
|
|
122
|
+
throw o;
|
|
123
|
+
const r = ((t = o.response) == null ? void 0 : t.data) || o.message;
|
|
124
|
+
throw new Error(r);
|
|
125
|
+
}
|
|
27
126
|
}
|
|
28
127
|
}
|
|
29
|
-
class
|
|
128
|
+
class O {
|
|
30
129
|
constructor(e) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
this.params = e, this.transport = new
|
|
130
|
+
n(this, "params");
|
|
131
|
+
n(this, "transport");
|
|
132
|
+
this.params = e, this.transport = new U(e.apiUrl);
|
|
34
133
|
}
|
|
35
|
-
async log({ scope: e, account: t, ...
|
|
36
|
-
const
|
|
37
|
-
...
|
|
134
|
+
async log({ scope: e, account: t, ...o }) {
|
|
135
|
+
const r = m(), { environment: a, service: i } = this.params, c = Math.floor(Date.now() / 1e3), h = {
|
|
136
|
+
...o,
|
|
38
137
|
...t,
|
|
39
|
-
service:
|
|
40
|
-
id:
|
|
41
|
-
environment:
|
|
138
|
+
service: i,
|
|
139
|
+
id: r,
|
|
140
|
+
environment: a,
|
|
141
|
+
timestamp: c,
|
|
42
142
|
...e && { scope: e }
|
|
43
143
|
};
|
|
44
|
-
|
|
45
|
-
await this.transport.create(s);
|
|
46
|
-
} catch (g) {
|
|
47
|
-
const a = g.message;
|
|
48
|
-
try {
|
|
49
|
-
console.error(JSON.stringify({
|
|
50
|
-
level: "error",
|
|
51
|
-
namespace: "audit-logs",
|
|
52
|
-
message: "audit-log write failed",
|
|
53
|
-
audit_log: s,
|
|
54
|
-
error: a
|
|
55
|
-
}));
|
|
56
|
-
} catch {
|
|
57
|
-
console.error(JSON.stringify({
|
|
58
|
-
level: "error",
|
|
59
|
-
namespace: "audit-logs",
|
|
60
|
-
message: "audit-log write failed (serialization failed)",
|
|
61
|
-
audit_log_meta: {
|
|
62
|
-
id: s.id,
|
|
63
|
-
service: s.service,
|
|
64
|
-
environment: s.environment,
|
|
65
|
-
namespace: s.namespace,
|
|
66
|
-
event: s.event,
|
|
67
|
-
target: s.target
|
|
68
|
-
},
|
|
69
|
-
error: a
|
|
70
|
-
}));
|
|
71
|
-
}
|
|
72
|
-
}
|
|
144
|
+
await this.transport.create(h);
|
|
73
145
|
}
|
|
74
146
|
}
|
|
75
147
|
export {
|
|
76
|
-
|
|
148
|
+
O as AuditLogger
|
|
77
149
|
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InlineObject } from './generated/model';
|
|
2
|
+
import { IAuditLogTransport } from './interface';
|
|
2
3
|
export declare class Transport implements IAuditLogTransport {
|
|
3
|
-
protected
|
|
4
|
-
private
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
create(auditLogData: IAuditLogCreationData): Promise<void>;
|
|
4
|
+
protected apiUrl: string;
|
|
5
|
+
private api;
|
|
6
|
+
constructor(apiUrl: string);
|
|
7
|
+
create(auditLogData: InlineObject): Promise<void>;
|
|
8
8
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payfit/audit-log",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.6.0",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/PayFit/audit-logs.git",
|
|
@@ -15,8 +15,6 @@
|
|
|
15
15
|
"build": "rimraf dist && vite build",
|
|
16
16
|
"prepack": "npm run build",
|
|
17
17
|
"lint": "eslint .",
|
|
18
|
-
"test": "vitest run",
|
|
19
|
-
"test:watch": "vitest",
|
|
20
18
|
"start:playground": "ts-node src/playground.ts",
|
|
21
19
|
"format:check": "prettier --check .",
|
|
22
20
|
"format:fix": "prettier --write .",
|
|
@@ -25,7 +23,6 @@
|
|
|
25
23
|
"author": "",
|
|
26
24
|
"license": "ISC",
|
|
27
25
|
"dependencies": {
|
|
28
|
-
"@aws-sdk/client-sqs": "^3.600.0",
|
|
29
26
|
"axios": "^1.0.0",
|
|
30
27
|
"lodash": "^4.17.20",
|
|
31
28
|
"uuid": "^9.0.0"
|
|
@@ -49,14 +46,13 @@
|
|
|
49
46
|
"semantic-release": "22.0.12",
|
|
50
47
|
"ts-node": "10.9.2",
|
|
51
48
|
"typescript": "5.3.3",
|
|
52
|
-
"vite": "4.5.1"
|
|
53
|
-
"vitest": "4.1.4"
|
|
49
|
+
"vite": "4.5.1"
|
|
54
50
|
},
|
|
51
|
+
"peerDependencies": {},
|
|
55
52
|
"publishConfig": {
|
|
56
53
|
"registry": "https://registry.npmjs.org/"
|
|
57
54
|
},
|
|
58
55
|
"files": [
|
|
59
56
|
"dist"
|
|
60
|
-
]
|
|
61
|
-
"packageManager": "yarn@4.14.1+sha512.64df448055b2d37ba269d7db535a469b8da93f8ef1140c25fd7a83c00a8fbaacb214ca0e02553b92a2c54cef78bb67d0b4817fab02001df0e24fac0faccc3b42"
|
|
57
|
+
]
|
|
62
58
|
}
|
package/dist/index.test.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|