@webiny/api-audit-logs 6.6.0-alpha.0 → 6.6.0-alpha.1
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/AuditLogsFeature.js +2 -3
- package/AuditLogsFeature.js.map +1 -1
- package/package.json +23 -23
- package/subscriptions/ai/handlers/AuditLogAiAfterGenerateTextHandler.d.ts +11 -0
- package/subscriptions/ai/handlers/AuditLogAiAfterGenerateTextHandler.js +41 -0
- package/subscriptions/ai/handlers/AuditLogAiAfterGenerateTextHandler.js.map +1 -0
- package/subscriptions/ai/handlers/AuditLogAiBeforeGenerateTextHandler.d.ts +11 -0
- package/subscriptions/ai/handlers/AuditLogAiBeforeGenerateTextHandler.js +38 -0
- package/subscriptions/ai/handlers/AuditLogAiBeforeGenerateTextHandler.js.map +1 -0
- package/subscriptions/ai/handlers/AuditLogAiGenerateTextErrorHandler.d.ts +11 -0
- package/subscriptions/ai/handlers/AuditLogAiGenerateTextErrorHandler.js +40 -0
- package/subscriptions/ai/handlers/AuditLogAiGenerateTextErrorHandler.js.map +1 -0
- package/subscriptions/ai/index.d.ts +2 -0
- package/subscriptions/ai/index.js +11 -0
- package/subscriptions/ai/index.js.map +1 -0
- package/subscriptions/index.js +2 -0
- package/subscriptions/index.js.map +1 -1
package/AuditLogsFeature.js
CHANGED
|
@@ -2,7 +2,7 @@ import { createFeature } from "@webiny/feature/api";
|
|
|
2
2
|
import { GraphQLContextualSchema } from "@webiny/api-graphql";
|
|
3
3
|
import { makeExecutableSchema } from "@graphql-tools/schema";
|
|
4
4
|
import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
5
|
-
import {
|
|
5
|
+
import { FeatureFlags } from "@webiny/api-core/features/featureFlags/abstractions.js";
|
|
6
6
|
import { AuditLogsContext, AuditLogsStorage } from "./abstractions.js";
|
|
7
7
|
import { createAuditLogsContextValue } from "./context/AuditLogsContextValue.js";
|
|
8
8
|
import { createSubscriptionHooks } from "./subscriptions/index.js";
|
|
@@ -11,6 +11,7 @@ const getDeleteLogsAfterDays = (days)=>days && days > 0 ? days : 60;
|
|
|
11
11
|
const AuditLogsFeature = createFeature({
|
|
12
12
|
name: "AuditLogs",
|
|
13
13
|
register (container, config = {}) {
|
|
14
|
+
if (!container.resolve(FeatureFlags).get().isEnabled("auditLogs")) return;
|
|
14
15
|
container.register(AuditLogsGraphQLSchema);
|
|
15
16
|
let initialized = false;
|
|
16
17
|
const STUB_SCHEMA = makeExecutableSchema({
|
|
@@ -21,8 +22,6 @@ const AuditLogsFeature = createFeature({
|
|
|
21
22
|
async build (ctx) {
|
|
22
23
|
if (initialized) return STUB_SCHEMA;
|
|
23
24
|
initialized = true;
|
|
24
|
-
const wcpContext = container.resolve(WcpContext);
|
|
25
|
-
if (!wcpContext.canUseFeature("auditLogs")) return STUB_SCHEMA;
|
|
26
25
|
const storage = container.resolve(AuditLogsStorage);
|
|
27
26
|
const eventPublisher = container.resolve(EventPublisher);
|
|
28
27
|
ctx.auditLogs = createAuditLogsContextValue({
|
package/AuditLogsFeature.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuditLogsFeature.js","sources":["../src/AuditLogsFeature.ts"],"sourcesContent":["import { createFeature, type Container } from \"@webiny/feature/api\";\nimport { GraphQLContextualSchema } from \"@webiny/api-graphql\";\nimport { makeExecutableSchema } from \"@graphql-tools/schema\";\nimport { EventPublisher } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport {
|
|
1
|
+
{"version":3,"file":"AuditLogsFeature.js","sources":["../src/AuditLogsFeature.ts"],"sourcesContent":["import { createFeature, type Container } from \"@webiny/feature/api\";\nimport { GraphQLContextualSchema } from \"@webiny/api-graphql\";\nimport { makeExecutableSchema } from \"@graphql-tools/schema\";\nimport { EventPublisher } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { FeatureFlags } from \"@webiny/api-core/features/featureFlags/abstractions.js\";\nimport { AuditLogsContext, AuditLogsStorage } from \"./abstractions.js\";\nimport type { GraphQLSchema } from \"graphql\";\nimport { createAuditLogsContextValue } from \"./context/AuditLogsContextValue.js\";\nimport { createSubscriptionHooks } from \"./subscriptions/index.js\";\nimport { AuditLogsGraphQLSchema } from \"./graphql/AuditLogsGraphQLSchema.js\";\n\nexport interface AuditLogsFeatureConfig {\n deleteLogsAfterDays?: number;\n}\n\nconst getDeleteLogsAfterDays = (days?: number): number => {\n return days && days > 0 ? days : 60;\n};\n\nexport const AuditLogsFeature = createFeature({\n name: \"AuditLogs\",\n register(container: Container, config: AuditLogsFeatureConfig = {}) {\n // Audit logs are license-gated — check at register time (license is fresh pre-register) so\n // nothing wires up without the entitlement.\n if (!container.resolve(FeatureFlags).get().isEnabled(\"auditLogs\")) {\n return;\n }\n\n container.register(AuditLogsGraphQLSchema);\n\n let initialized = false;\n\n const STUB_SCHEMA: GraphQLSchema = makeExecutableSchema({\n typeDefs: \"type Query\\ntype Mutation\",\n assumeValidSDL: true\n });\n\n container.registerInstance(GraphQLContextualSchema, {\n async build(ctx: Record<string, any>): Promise<GraphQLSchema> {\n if (initialized) {\n return STUB_SCHEMA;\n }\n initialized = true;\n\n const storage = container.resolve(AuditLogsStorage);\n const eventPublisher = container.resolve(EventPublisher);\n\n ctx.auditLogs = createAuditLogsContextValue({\n getContext: () => ctx as any,\n deleteLogsAfterDays: getDeleteLogsAfterDays(config.deleteLogsAfterDays),\n storage,\n eventPublisher\n });\n\n container.registerInstance(AuditLogsContext, ctx.auditLogs);\n createSubscriptionHooks(ctx as any);\n\n return STUB_SCHEMA;\n }\n });\n }\n});\n"],"names":["getDeleteLogsAfterDays","days","AuditLogsFeature","createFeature","container","config","FeatureFlags","AuditLogsGraphQLSchema","initialized","STUB_SCHEMA","makeExecutableSchema","GraphQLContextualSchema","ctx","storage","AuditLogsStorage","eventPublisher","EventPublisher","createAuditLogsContextValue","AuditLogsContext","createSubscriptionHooks"],"mappings":";;;;;;;;;AAeA,MAAMA,yBAAyB,CAACC,OACrBA,QAAQA,OAAO,IAAIA,OAAO;AAG9B,MAAMC,mBAAmBC,cAAc;IAC1C,MAAM;IACN,UAASC,SAAoB,EAAEC,SAAiC,CAAC,CAAC;QAG9D,IAAI,CAACD,UAAU,OAAO,CAACE,cAAc,GAAG,GAAG,SAAS,CAAC,cACjD;QAGJF,UAAU,QAAQ,CAACG;QAEnB,IAAIC,cAAc;QAElB,MAAMC,cAA6BC,qBAAqB;YACpD,UAAU;YACV,gBAAgB;QACpB;QAEAN,UAAU,gBAAgB,CAACO,yBAAyB;YAChD,MAAM,OAAMC,GAAwB;gBAChC,IAAIJ,aACA,OAAOC;gBAEXD,cAAc;gBAEd,MAAMK,UAAUT,UAAU,OAAO,CAACU;gBAClC,MAAMC,iBAAiBX,UAAU,OAAO,CAACY;gBAEzCJ,IAAI,SAAS,GAAGK,4BAA4B;oBACxC,YAAY,IAAML;oBAClB,qBAAqBZ,uBAAuBK,OAAO,mBAAmB;oBACtEQ;oBACAE;gBACJ;gBAEAX,UAAU,gBAAgB,CAACc,kBAAkBN,IAAI,SAAS;gBAC1DO,wBAAwBP;gBAExB,OAAOH;YACX;QACJ;IACJ;AACJ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/api-audit-logs",
|
|
3
|
-
"version": "6.6.0-alpha.
|
|
3
|
+
"version": "6.6.0-alpha.1",
|
|
4
4
|
"exports": {
|
|
5
5
|
".": "./index.js",
|
|
6
6
|
"./*": "./*"
|
|
@@ -22,32 +22,32 @@
|
|
|
22
22
|
"access": "public"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@webiny/api-headless-cms-testing": "6.6.0-alpha.
|
|
26
|
-
"@webiny/
|
|
27
|
-
"@webiny/
|
|
28
|
-
"@webiny/handler": "6.6.0-alpha.
|
|
29
|
-
"@webiny/
|
|
30
|
-
"@webiny/
|
|
25
|
+
"@webiny/api-headless-cms-testing": "6.6.0-alpha.1",
|
|
26
|
+
"@webiny/db-dynamodb": "6.6.0-alpha.1",
|
|
27
|
+
"@webiny/di": "1.1.0",
|
|
28
|
+
"@webiny/event-handler-core": "6.6.0-alpha.1",
|
|
29
|
+
"@webiny/handler": "6.6.0-alpha.1",
|
|
30
|
+
"@webiny/plugins": "6.6.0-alpha.1",
|
|
31
31
|
"graphql": "16.14.2",
|
|
32
32
|
"typescript": "7.0.2",
|
|
33
|
-
"vitest": "4.1.
|
|
33
|
+
"vitest": "4.1.11"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@graphql-tools/schema": "10.0
|
|
37
|
-
"@webiny/api": "6.6.0-alpha.
|
|
38
|
-
"@webiny/api-aco": "6.6.0-alpha.
|
|
39
|
-
"@webiny/api-core": "6.6.0-alpha.
|
|
40
|
-
"@webiny/api-file-manager": "6.6.0-alpha.
|
|
41
|
-
"@webiny/api-graphql": "6.6.0-alpha.
|
|
42
|
-
"@webiny/api-headless-cms": "6.6.0-alpha.
|
|
43
|
-
"@webiny/api-mailer": "6.6.0-alpha.
|
|
44
|
-
"@webiny/api-website-builder": "6.6.0-alpha.
|
|
45
|
-
"@webiny/build-tools": "6.6.0-alpha.
|
|
46
|
-
"@webiny/common-audit-logs": "6.6.0-alpha.
|
|
47
|
-
"@webiny/error": "6.6.0-alpha.
|
|
48
|
-
"@webiny/feature": "6.6.0-alpha.
|
|
49
|
-
"@webiny/utils": "6.6.0-alpha.
|
|
50
|
-
"@webiny/wcp": "6.6.0-alpha.
|
|
36
|
+
"@graphql-tools/schema": "10.1.0",
|
|
37
|
+
"@webiny/api": "6.6.0-alpha.1",
|
|
38
|
+
"@webiny/api-aco": "6.6.0-alpha.1",
|
|
39
|
+
"@webiny/api-core": "6.6.0-alpha.1",
|
|
40
|
+
"@webiny/api-file-manager": "6.6.0-alpha.1",
|
|
41
|
+
"@webiny/api-graphql": "6.6.0-alpha.1",
|
|
42
|
+
"@webiny/api-headless-cms": "6.6.0-alpha.1",
|
|
43
|
+
"@webiny/api-mailer": "6.6.0-alpha.1",
|
|
44
|
+
"@webiny/api-website-builder": "6.6.0-alpha.1",
|
|
45
|
+
"@webiny/build-tools": "6.6.0-alpha.1",
|
|
46
|
+
"@webiny/common-audit-logs": "6.6.0-alpha.1",
|
|
47
|
+
"@webiny/error": "6.6.0-alpha.1",
|
|
48
|
+
"@webiny/feature": "6.6.0-alpha.1",
|
|
49
|
+
"@webiny/utils": "6.6.0-alpha.1",
|
|
50
|
+
"@webiny/wcp": "6.6.0-alpha.1",
|
|
51
51
|
"zod": "4.4.3"
|
|
52
52
|
},
|
|
53
53
|
"webiny": {
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { AiAfterGenerateTextEventHandler } from "@webiny/api-core/features/ai/index.js";
|
|
2
|
+
import { AuditLogsContext } from "../../../abstractions.js";
|
|
3
|
+
declare class AuditLogAiAfterGenerateTextHandlerImpl implements AiAfterGenerateTextEventHandler.Interface {
|
|
4
|
+
private context;
|
|
5
|
+
constructor(context: AuditLogsContext.Interface);
|
|
6
|
+
handle(event: AiAfterGenerateTextEventHandler.Event): Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
export declare const AuditLogAiAfterGenerateTextHandler: typeof AuditLogAiAfterGenerateTextHandlerImpl & {
|
|
9
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher").IEventHandler<import("@webiny/api-core/features/ai/events").AiAfterGenerateTextEvent>>;
|
|
10
|
+
};
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import _webiny_error from "@webiny/error";
|
|
2
|
+
import { AiAfterGenerateTextEventHandler } from "@webiny/api-core/features/ai/index.js";
|
|
3
|
+
import { AuditLogsContext } from "../../../abstractions.js";
|
|
4
|
+
import { AUDIT } from "../../../config.js";
|
|
5
|
+
import { getAuditConfig } from "../../../utils/getAuditConfig.js";
|
|
6
|
+
class AuditLogAiAfterGenerateTextHandlerImpl {
|
|
7
|
+
constructor(context){
|
|
8
|
+
this.context = context;
|
|
9
|
+
}
|
|
10
|
+
async handle(event) {
|
|
11
|
+
try {
|
|
12
|
+
const { requestId, result, duration } = event.payload;
|
|
13
|
+
const createAuditLog = getAuditConfig(AUDIT.AI.TEXT.GENERATE);
|
|
14
|
+
await createAuditLog("AI Generate Text", {
|
|
15
|
+
after: {
|
|
16
|
+
status: "success",
|
|
17
|
+
duration: Math.round(duration),
|
|
18
|
+
text: result.text,
|
|
19
|
+
usage: result.usage,
|
|
20
|
+
finishReason: result.finishReason,
|
|
21
|
+
steps: result.steps.length,
|
|
22
|
+
toolCalls: result.steps.reduce((sum, step)=>sum + step.toolCalls.length, 0)
|
|
23
|
+
}
|
|
24
|
+
}, requestId, this.context);
|
|
25
|
+
} catch (error) {
|
|
26
|
+
throw _webiny_error.from(error, {
|
|
27
|
+
message: "Error while executing AuditLogAiAfterGenerateTextHandler",
|
|
28
|
+
code: "AUDIT_LOGS_AI_AFTER_GENERATE_TEXT"
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
const AuditLogAiAfterGenerateTextHandler = AiAfterGenerateTextEventHandler.createImplementation({
|
|
34
|
+
implementation: AuditLogAiAfterGenerateTextHandlerImpl,
|
|
35
|
+
dependencies: [
|
|
36
|
+
AuditLogsContext
|
|
37
|
+
]
|
|
38
|
+
});
|
|
39
|
+
export { AuditLogAiAfterGenerateTextHandler };
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=AuditLogAiAfterGenerateTextHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscriptions/ai/handlers/AuditLogAiAfterGenerateTextHandler.js","sources":["../../../../src/subscriptions/ai/handlers/AuditLogAiAfterGenerateTextHandler.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { AiAfterGenerateTextEventHandler } from \"@webiny/api-core/features/ai/index.js\";\nimport { AuditLogsContext } from \"~/abstractions.js\";\nimport { AUDIT } from \"~/config.js\";\nimport { getAuditConfig } from \"~/utils/getAuditConfig.js\";\n\nclass AuditLogAiAfterGenerateTextHandlerImpl implements AiAfterGenerateTextEventHandler.Interface {\n constructor(private context: AuditLogsContext.Interface) {}\n\n async handle(event: AiAfterGenerateTextEventHandler.Event): Promise<void> {\n try {\n const { requestId, result, duration } = event.payload;\n const createAuditLog = getAuditConfig(AUDIT.AI.TEXT.GENERATE);\n\n await createAuditLog(\n \"AI Generate Text\",\n {\n after: {\n status: \"success\",\n duration: Math.round(duration),\n text: result.text,\n usage: result.usage,\n finishReason: result.finishReason,\n steps: result.steps.length,\n toolCalls: result.steps.reduce(\n (sum, step) => sum + step.toolCalls.length,\n 0\n )\n }\n },\n requestId,\n this.context\n );\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while executing AuditLogAiAfterGenerateTextHandler\",\n code: \"AUDIT_LOGS_AI_AFTER_GENERATE_TEXT\"\n });\n }\n }\n}\n\nexport const AuditLogAiAfterGenerateTextHandler =\n AiAfterGenerateTextEventHandler.createImplementation({\n implementation: AuditLogAiAfterGenerateTextHandlerImpl,\n dependencies: [AuditLogsContext]\n });\n"],"names":["AuditLogAiAfterGenerateTextHandlerImpl","context","event","requestId","result","duration","createAuditLog","getAuditConfig","AUDIT","Math","sum","step","error","WebinyError","AuditLogAiAfterGenerateTextHandler","AiAfterGenerateTextEventHandler","AuditLogsContext"],"mappings":";;;;;AAMA,MAAMA;IACF,YAAoBC,OAAmC,CAAE;aAArCA,OAAO,GAAPA;IAAsC;IAE1D,MAAM,OAAOC,KAA4C,EAAiB;QACtE,IAAI;YACA,MAAM,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,EAAE,GAAGH,MAAM,OAAO;YACrD,MAAMI,iBAAiBC,eAAeC,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ;YAE5D,MAAMF,eACF,oBACA;gBACI,OAAO;oBACH,QAAQ;oBACR,UAAUG,KAAK,KAAK,CAACJ;oBACrB,MAAMD,OAAO,IAAI;oBACjB,OAAOA,OAAO,KAAK;oBACnB,cAAcA,OAAO,YAAY;oBACjC,OAAOA,OAAO,KAAK,CAAC,MAAM;oBAC1B,WAAWA,OAAO,KAAK,CAAC,MAAM,CAC1B,CAACM,KAAKC,OAASD,MAAMC,KAAK,SAAS,CAAC,MAAM,EAC1C;gBAER;YACJ,GACAR,WACA,IAAI,CAAC,OAAO;QAEpB,EAAE,OAAOS,OAAO;YACZ,MAAMC,cAAAA,IAAgB,CAACD,OAAO;gBAC1B,SAAS;gBACT,MAAM;YACV;QACJ;IACJ;AACJ;AAEO,MAAME,qCACTC,gCAAgC,oBAAoB,CAAC;IACjD,gBAAgBf;IAChB,cAAc;QAACgB;KAAiB;AACpC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { AiBeforeGenerateTextEventHandler } from "@webiny/api-core/features/ai/index.js";
|
|
2
|
+
import { AuditLogsContext } from "../../../abstractions.js";
|
|
3
|
+
declare class AuditLogAiBeforeGenerateTextHandlerImpl implements AiBeforeGenerateTextEventHandler.Interface {
|
|
4
|
+
private context;
|
|
5
|
+
constructor(context: AuditLogsContext.Interface);
|
|
6
|
+
handle(event: AiBeforeGenerateTextEventHandler.Event): Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
export declare const AuditLogAiBeforeGenerateTextHandler: typeof AuditLogAiBeforeGenerateTextHandlerImpl & {
|
|
9
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher").IEventHandler<import("@webiny/api-core/features/ai/events").AiBeforeGenerateTextEvent>>;
|
|
10
|
+
};
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import _webiny_error from "@webiny/error";
|
|
2
|
+
import { AiBeforeGenerateTextEventHandler } from "@webiny/api-core/features/ai/index.js";
|
|
3
|
+
import { AuditLogsContext } from "../../../abstractions.js";
|
|
4
|
+
import { AUDIT } from "../../../config.js";
|
|
5
|
+
import { getAuditConfig } from "../../../utils/getAuditConfig.js";
|
|
6
|
+
class AuditLogAiBeforeGenerateTextHandlerImpl {
|
|
7
|
+
constructor(context){
|
|
8
|
+
this.context = context;
|
|
9
|
+
}
|
|
10
|
+
async handle(event) {
|
|
11
|
+
try {
|
|
12
|
+
const { requestId, params } = event.payload;
|
|
13
|
+
const createAuditLog = getAuditConfig(AUDIT.AI.TEXT.GENERATE);
|
|
14
|
+
await createAuditLog("AI Generate Text", {
|
|
15
|
+
before: {
|
|
16
|
+
model: params.model,
|
|
17
|
+
system: params.system,
|
|
18
|
+
prompt: params.prompt,
|
|
19
|
+
tools: params.tools ? Object.keys(params.tools) : []
|
|
20
|
+
}
|
|
21
|
+
}, requestId, this.context);
|
|
22
|
+
} catch (error) {
|
|
23
|
+
throw _webiny_error.from(error, {
|
|
24
|
+
message: "Error while executing AuditLogAiBeforeGenerateTextHandler",
|
|
25
|
+
code: "AUDIT_LOGS_AI_BEFORE_GENERATE_TEXT"
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
const AuditLogAiBeforeGenerateTextHandler = AiBeforeGenerateTextEventHandler.createImplementation({
|
|
31
|
+
implementation: AuditLogAiBeforeGenerateTextHandlerImpl,
|
|
32
|
+
dependencies: [
|
|
33
|
+
AuditLogsContext
|
|
34
|
+
]
|
|
35
|
+
});
|
|
36
|
+
export { AuditLogAiBeforeGenerateTextHandler };
|
|
37
|
+
|
|
38
|
+
//# sourceMappingURL=AuditLogAiBeforeGenerateTextHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscriptions/ai/handlers/AuditLogAiBeforeGenerateTextHandler.js","sources":["../../../../src/subscriptions/ai/handlers/AuditLogAiBeforeGenerateTextHandler.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { AiBeforeGenerateTextEventHandler } from \"@webiny/api-core/features/ai/index.js\";\nimport { AuditLogsContext } from \"~/abstractions.js\";\nimport { AUDIT } from \"~/config.js\";\nimport { getAuditConfig } from \"~/utils/getAuditConfig.js\";\n\nclass AuditLogAiBeforeGenerateTextHandlerImpl\n implements AiBeforeGenerateTextEventHandler.Interface\n{\n constructor(private context: AuditLogsContext.Interface) {}\n\n async handle(event: AiBeforeGenerateTextEventHandler.Event): Promise<void> {\n try {\n const { requestId, params } = event.payload;\n const createAuditLog = getAuditConfig(AUDIT.AI.TEXT.GENERATE);\n\n await createAuditLog(\n \"AI Generate Text\",\n {\n before: {\n model: params.model,\n system: params.system,\n prompt: params.prompt,\n tools: params.tools ? Object.keys(params.tools) : []\n }\n },\n requestId,\n this.context\n );\n } catch (error) {\n throw WebinyError.from(error, {\n message: \"Error while executing AuditLogAiBeforeGenerateTextHandler\",\n code: \"AUDIT_LOGS_AI_BEFORE_GENERATE_TEXT\"\n });\n }\n }\n}\n\nexport const AuditLogAiBeforeGenerateTextHandler =\n AiBeforeGenerateTextEventHandler.createImplementation({\n implementation: AuditLogAiBeforeGenerateTextHandlerImpl,\n dependencies: [AuditLogsContext]\n });\n"],"names":["AuditLogAiBeforeGenerateTextHandlerImpl","context","event","requestId","params","createAuditLog","getAuditConfig","AUDIT","Object","error","WebinyError","AuditLogAiBeforeGenerateTextHandler","AiBeforeGenerateTextEventHandler","AuditLogsContext"],"mappings":";;;;;AAMA,MAAMA;IAGF,YAAoBC,OAAmC,CAAE;aAArCA,OAAO,GAAPA;IAAsC;IAE1D,MAAM,OAAOC,KAA6C,EAAiB;QACvE,IAAI;YACA,MAAM,EAAEC,SAAS,EAAEC,MAAM,EAAE,GAAGF,MAAM,OAAO;YAC3C,MAAMG,iBAAiBC,eAAeC,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ;YAE5D,MAAMF,eACF,oBACA;gBACI,QAAQ;oBACJ,OAAOD,OAAO,KAAK;oBACnB,QAAQA,OAAO,MAAM;oBACrB,QAAQA,OAAO,MAAM;oBACrB,OAAOA,OAAO,KAAK,GAAGI,OAAO,IAAI,CAACJ,OAAO,KAAK,IAAI,EAAE;gBACxD;YACJ,GACAD,WACA,IAAI,CAAC,OAAO;QAEpB,EAAE,OAAOM,OAAO;YACZ,MAAMC,cAAAA,IAAgB,CAACD,OAAO;gBAC1B,SAAS;gBACT,MAAM;YACV;QACJ;IACJ;AACJ;AAEO,MAAME,sCACTC,iCAAiC,oBAAoB,CAAC;IAClD,gBAAgBZ;IAChB,cAAc;QAACa;KAAiB;AACpC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { AiGenerateTextErrorEventHandler } from "@webiny/api-core/features/ai/index.js";
|
|
2
|
+
import { AuditLogsContext } from "../../../abstractions.js";
|
|
3
|
+
declare class AuditLogAiGenerateTextErrorHandlerImpl implements AiGenerateTextErrorEventHandler.Interface {
|
|
4
|
+
private context;
|
|
5
|
+
constructor(context: AuditLogsContext.Interface);
|
|
6
|
+
handle(event: AiGenerateTextErrorEventHandler.Event): Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
export declare const AuditLogAiGenerateTextErrorHandler: typeof AuditLogAiGenerateTextErrorHandlerImpl & {
|
|
9
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher").IEventHandler<import("@webiny/api-core/features/ai/events").AiGenerateTextErrorEvent>>;
|
|
10
|
+
};
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import _webiny_error from "@webiny/error";
|
|
2
|
+
import { AiGenerateTextErrorEventHandler } from "@webiny/api-core/features/ai/index.js";
|
|
3
|
+
import { AuditLogsContext } from "../../../abstractions.js";
|
|
4
|
+
import { AUDIT } from "../../../config.js";
|
|
5
|
+
import { getAuditConfig } from "../../../utils/getAuditConfig.js";
|
|
6
|
+
class AuditLogAiGenerateTextErrorHandlerImpl {
|
|
7
|
+
constructor(context){
|
|
8
|
+
this.context = context;
|
|
9
|
+
}
|
|
10
|
+
async handle(event) {
|
|
11
|
+
try {
|
|
12
|
+
const { requestId, error, duration } = event.payload;
|
|
13
|
+
const createAuditLog = getAuditConfig(AUDIT.AI.TEXT.GENERATE);
|
|
14
|
+
await createAuditLog("AI Generate Text", {
|
|
15
|
+
after: {
|
|
16
|
+
status: "error",
|
|
17
|
+
duration: Math.round(duration),
|
|
18
|
+
error: {
|
|
19
|
+
message: error.message,
|
|
20
|
+
name: error.name
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}, requestId, this.context);
|
|
24
|
+
} catch (err) {
|
|
25
|
+
throw _webiny_error.from(err, {
|
|
26
|
+
message: "Error while executing AuditLogAiGenerateTextErrorHandler",
|
|
27
|
+
code: "AUDIT_LOGS_AI_GENERATE_TEXT_ERROR"
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
const AuditLogAiGenerateTextErrorHandler = AiGenerateTextErrorEventHandler.createImplementation({
|
|
33
|
+
implementation: AuditLogAiGenerateTextErrorHandlerImpl,
|
|
34
|
+
dependencies: [
|
|
35
|
+
AuditLogsContext
|
|
36
|
+
]
|
|
37
|
+
});
|
|
38
|
+
export { AuditLogAiGenerateTextErrorHandler };
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=AuditLogAiGenerateTextErrorHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscriptions/ai/handlers/AuditLogAiGenerateTextErrorHandler.js","sources":["../../../../src/subscriptions/ai/handlers/AuditLogAiGenerateTextErrorHandler.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { AiGenerateTextErrorEventHandler } from \"@webiny/api-core/features/ai/index.js\";\nimport { AuditLogsContext } from \"~/abstractions.js\";\nimport { AUDIT } from \"~/config.js\";\nimport { getAuditConfig } from \"~/utils/getAuditConfig.js\";\n\nclass AuditLogAiGenerateTextErrorHandlerImpl implements AiGenerateTextErrorEventHandler.Interface {\n constructor(private context: AuditLogsContext.Interface) {}\n\n async handle(event: AiGenerateTextErrorEventHandler.Event): Promise<void> {\n try {\n const { requestId, error, duration } = event.payload;\n const createAuditLog = getAuditConfig(AUDIT.AI.TEXT.GENERATE);\n\n await createAuditLog(\n \"AI Generate Text\",\n {\n after: {\n status: \"error\",\n duration: Math.round(duration),\n error: {\n message: error.message,\n name: error.name\n }\n }\n },\n requestId,\n this.context\n );\n } catch (err) {\n throw WebinyError.from(err, {\n message: \"Error while executing AuditLogAiGenerateTextErrorHandler\",\n code: \"AUDIT_LOGS_AI_GENERATE_TEXT_ERROR\"\n });\n }\n }\n}\n\nexport const AuditLogAiGenerateTextErrorHandler =\n AiGenerateTextErrorEventHandler.createImplementation({\n implementation: AuditLogAiGenerateTextErrorHandlerImpl,\n dependencies: [AuditLogsContext]\n });\n"],"names":["AuditLogAiGenerateTextErrorHandlerImpl","context","event","requestId","error","duration","createAuditLog","getAuditConfig","AUDIT","Math","err","WebinyError","AuditLogAiGenerateTextErrorHandler","AiGenerateTextErrorEventHandler","AuditLogsContext"],"mappings":";;;;;AAMA,MAAMA;IACF,YAAoBC,OAAmC,CAAE;aAArCA,OAAO,GAAPA;IAAsC;IAE1D,MAAM,OAAOC,KAA4C,EAAiB;QACtE,IAAI;YACA,MAAM,EAAEC,SAAS,EAAEC,KAAK,EAAEC,QAAQ,EAAE,GAAGH,MAAM,OAAO;YACpD,MAAMI,iBAAiBC,eAAeC,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ;YAE5D,MAAMF,eACF,oBACA;gBACI,OAAO;oBACH,QAAQ;oBACR,UAAUG,KAAK,KAAK,CAACJ;oBACrB,OAAO;wBACH,SAASD,MAAM,OAAO;wBACtB,MAAMA,MAAM,IAAI;oBACpB;gBACJ;YACJ,GACAD,WACA,IAAI,CAAC,OAAO;QAEpB,EAAE,OAAOO,KAAK;YACV,MAAMC,cAAAA,IAAgB,CAACD,KAAK;gBACxB,SAAS;gBACT,MAAM;YACV;QACJ;IACJ;AACJ;AAEO,MAAME,qCACTC,gCAAgC,oBAAoB,CAAC;IACjD,gBAAgBb;IAChB,cAAc;QAACc;KAAiB;AACpC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { AuditLogAiBeforeGenerateTextHandler } from "./handlers/AuditLogAiBeforeGenerateTextHandler.js";
|
|
2
|
+
import { AuditLogAiAfterGenerateTextHandler } from "./handlers/AuditLogAiAfterGenerateTextHandler.js";
|
|
3
|
+
import { AuditLogAiGenerateTextErrorHandler } from "./handlers/AuditLogAiGenerateTextErrorHandler.js";
|
|
4
|
+
const createAiHooks = (context)=>{
|
|
5
|
+
context.container.register(AuditLogAiBeforeGenerateTextHandler);
|
|
6
|
+
context.container.register(AuditLogAiAfterGenerateTextHandler);
|
|
7
|
+
context.container.register(AuditLogAiGenerateTextErrorHandler);
|
|
8
|
+
};
|
|
9
|
+
export { createAiHooks };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscriptions/ai/index.js","sources":["../../../src/subscriptions/ai/index.ts"],"sourcesContent":["import { AuditLogAiBeforeGenerateTextHandler } from \"./handlers/AuditLogAiBeforeGenerateTextHandler.js\";\nimport { AuditLogAiAfterGenerateTextHandler } from \"./handlers/AuditLogAiAfterGenerateTextHandler.js\";\nimport { AuditLogAiGenerateTextErrorHandler } from \"./handlers/AuditLogAiGenerateTextErrorHandler.js\";\nimport type { AuditLogsContext } from \"~/types.js\";\n\nexport const createAiHooks = (context: AuditLogsContext) => {\n context.container.register(AuditLogAiBeforeGenerateTextHandler);\n context.container.register(AuditLogAiAfterGenerateTextHandler);\n context.container.register(AuditLogAiGenerateTextErrorHandler);\n};\n"],"names":["createAiHooks","context","AuditLogAiBeforeGenerateTextHandler","AuditLogAiAfterGenerateTextHandler","AuditLogAiGenerateTextErrorHandler"],"mappings":";;;AAKO,MAAMA,gBAAgB,CAACC;IAC1BA,QAAQ,SAAS,CAAC,QAAQ,CAACC;IAC3BD,QAAQ,SAAS,CAAC,QAAQ,CAACE;IAC3BF,QAAQ,SAAS,CAAC,QAAQ,CAACG;AAC/B"}
|
package/subscriptions/index.js
CHANGED
|
@@ -4,6 +4,7 @@ import { createSecurityHooks } from "./security/index.js";
|
|
|
4
4
|
import { createMailerHooks } from "./mailer/index.js";
|
|
5
5
|
import { createAcoHooks } from "./aco/index.js";
|
|
6
6
|
import { createWebsiteBuilderHooks } from "./websiteBuilder/index.js";
|
|
7
|
+
import { createAiHooks } from "./ai/index.js";
|
|
7
8
|
const createSubscriptionHooks = (context)=>{
|
|
8
9
|
createFileManagerHooks(context);
|
|
9
10
|
createHeadlessCmsHooks(context);
|
|
@@ -11,6 +12,7 @@ const createSubscriptionHooks = (context)=>{
|
|
|
11
12
|
createMailerHooks(context);
|
|
12
13
|
createAcoHooks(context);
|
|
13
14
|
createWebsiteBuilderHooks(context);
|
|
15
|
+
createAiHooks(context);
|
|
14
16
|
};
|
|
15
17
|
export { createSubscriptionHooks };
|
|
16
18
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscriptions/index.js","sources":["../../src/subscriptions/index.ts"],"sourcesContent":["import { createFileManagerHooks } from \"./fileManager/index.js\";\nimport { createHeadlessCmsHooks } from \"./headlessCms/index.js\";\nimport { createSecurityHooks } from \"./security/index.js\";\nimport { createMailerHooks } from \"./mailer/index.js\";\nimport { createAcoHooks } from \"./aco/index.js\";\nimport { createWebsiteBuilderHooks } from \"~/subscriptions/websiteBuilder/index.js\";\nimport type { AuditLogsContext } from \"~/types.js\";\n\nexport const createSubscriptionHooks = (context: AuditLogsContext) => {\n createFileManagerHooks(context);\n createHeadlessCmsHooks(context);\n createSecurityHooks(context);\n createMailerHooks(context);\n createAcoHooks(context);\n createWebsiteBuilderHooks(context);\n};\n"],"names":["createSubscriptionHooks","context","createFileManagerHooks","createHeadlessCmsHooks","createSecurityHooks","createMailerHooks","createAcoHooks","createWebsiteBuilderHooks"],"mappings":"
|
|
1
|
+
{"version":3,"file":"subscriptions/index.js","sources":["../../src/subscriptions/index.ts"],"sourcesContent":["import { createFileManagerHooks } from \"./fileManager/index.js\";\nimport { createHeadlessCmsHooks } from \"./headlessCms/index.js\";\nimport { createSecurityHooks } from \"./security/index.js\";\nimport { createMailerHooks } from \"./mailer/index.js\";\nimport { createAcoHooks } from \"./aco/index.js\";\nimport { createWebsiteBuilderHooks } from \"~/subscriptions/websiteBuilder/index.js\";\nimport { createAiHooks } from \"./ai/index.js\";\nimport type { AuditLogsContext } from \"~/types.js\";\n\nexport const createSubscriptionHooks = (context: AuditLogsContext) => {\n createFileManagerHooks(context);\n createHeadlessCmsHooks(context);\n createSecurityHooks(context);\n createMailerHooks(context);\n createAcoHooks(context);\n createWebsiteBuilderHooks(context);\n createAiHooks(context);\n};\n"],"names":["createSubscriptionHooks","context","createFileManagerHooks","createHeadlessCmsHooks","createSecurityHooks","createMailerHooks","createAcoHooks","createWebsiteBuilderHooks","createAiHooks"],"mappings":";;;;;;;AASO,MAAMA,0BAA0B,CAACC;IACpCC,uBAAuBD;IACvBE,uBAAuBF;IACvBG,oBAAoBH;IACpBI,kBAAkBJ;IAClBK,eAAeL;IACfM,0BAA0BN;IAC1BO,cAAcP;AAClB"}
|