@credo-ts/action-menu 0.6.1-pr-2091-20241119140918 → 0.6.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/build/ActionMenuApi.d.mts +59 -0
- package/build/ActionMenuApi.d.mts.map +1 -0
- package/build/ActionMenuApi.mjs +117 -0
- package/build/ActionMenuApi.mjs.map +1 -0
- package/build/ActionMenuApiOptions.d.mts +42 -0
- package/build/ActionMenuApiOptions.d.mts.map +1 -0
- package/build/ActionMenuEvents.d.mts +25 -0
- package/build/ActionMenuEvents.d.mts.map +1 -0
- package/build/ActionMenuEvents.mjs +12 -0
- package/build/ActionMenuEvents.mjs.map +1 -0
- package/build/ActionMenuModule.d.mts +19 -0
- package/build/ActionMenuModule.d.mts.map +1 -0
- package/build/ActionMenuModule.mjs +48 -0
- package/build/ActionMenuModule.mjs.map +1 -0
- package/build/ActionMenuRole.d.mts +14 -0
- package/build/ActionMenuRole.d.mts.map +1 -0
- package/build/ActionMenuRole.mjs +16 -0
- package/build/ActionMenuRole.mjs.map +1 -0
- package/build/ActionMenuState.d.mts +18 -0
- package/build/ActionMenuState.d.mts.map +1 -0
- package/build/ActionMenuState.mjs +20 -0
- package/build/ActionMenuState.mjs.map +1 -0
- package/build/_virtual/_@oxc-project_runtime@0.99.0/helpers/decorate.mjs +10 -0
- package/build/_virtual/_@oxc-project_runtime@0.99.0/helpers/decorateMetadata.mjs +7 -0
- package/build/_virtual/_@oxc-project_runtime@0.99.0/helpers/decorateParam.mjs +9 -0
- package/build/errors/ActionMenuProblemReportError.mjs +22 -0
- package/build/errors/ActionMenuProblemReportError.mjs.map +1 -0
- package/build/errors/ActionMenuProblemReportReason.mjs +15 -0
- package/build/errors/ActionMenuProblemReportReason.mjs.map +1 -0
- package/build/handlers/ActionMenuProblemReportHandler.mjs +20 -0
- package/build/handlers/ActionMenuProblemReportHandler.mjs.map +1 -0
- package/build/handlers/MenuMessageHandler.mjs +21 -0
- package/build/handlers/MenuMessageHandler.mjs.map +1 -0
- package/build/handlers/MenuRequestMessageHandler.mjs +21 -0
- package/build/handlers/MenuRequestMessageHandler.mjs.map +1 -0
- package/build/handlers/PerformMessageHandler.mjs +21 -0
- package/build/handlers/PerformMessageHandler.mjs.map +1 -0
- package/build/handlers/index.mjs +4 -0
- package/build/index.d.mts +20 -0
- package/build/index.mjs +21 -0
- package/build/messages/ActionMenuProblemReportMessage.d.mts +16 -0
- package/build/messages/ActionMenuProblemReportMessage.d.mts.map +1 -0
- package/build/messages/ActionMenuProblemReportMessage.mjs +21 -0
- package/build/messages/ActionMenuProblemReportMessage.mjs.map +1 -0
- package/build/messages/MenuMessage.d.mts +32 -0
- package/build/messages/MenuMessage.d.mts.map +1 -0
- package/build/messages/MenuMessage.mjs +45 -0
- package/build/messages/MenuMessage.mjs.map +1 -0
- package/build/messages/MenuRequestMessage.d.mts +21 -0
- package/build/messages/MenuRequestMessage.d.mts.map +1 -0
- package/build/messages/MenuRequestMessage.mjs +21 -0
- package/build/messages/MenuRequestMessage.mjs.map +1 -0
- package/build/messages/PerformMessage.d.mts +26 -0
- package/build/messages/PerformMessage.d.mts.map +1 -0
- package/build/messages/PerformMessage.mjs +34 -0
- package/build/messages/PerformMessage.mjs.map +1 -0
- package/build/messages/index.d.mts +4 -0
- package/build/messages/index.mjs +4 -0
- package/build/models/ActionMenu.d.mts +24 -0
- package/build/models/ActionMenu.d.mts.map +1 -0
- package/build/models/ActionMenu.mjs +30 -0
- package/build/models/ActionMenu.mjs.map +1 -0
- package/build/models/ActionMenuOption.d.mts +28 -0
- package/build/models/ActionMenuOption.d.mts.map +1 -0
- package/build/models/ActionMenuOption.mjs +40 -0
- package/build/models/ActionMenuOption.mjs.map +1 -0
- package/build/models/ActionMenuOptionForm.d.mts +24 -0
- package/build/models/ActionMenuOptionForm.d.mts.map +1 -0
- package/build/models/ActionMenuOptionForm.mjs +34 -0
- package/build/models/ActionMenuOptionForm.mjs.map +1 -0
- package/build/models/ActionMenuOptionFormParameter.d.mts +33 -0
- package/build/models/ActionMenuOptionFormParameter.d.mts.map +1 -0
- package/build/models/ActionMenuOptionFormParameter.mjs +50 -0
- package/build/models/ActionMenuOptionFormParameter.mjs.map +1 -0
- package/build/models/ActionMenuSelection.d.mts +19 -0
- package/build/models/ActionMenuSelection.d.mts.map +1 -0
- package/build/models/ActionMenuSelection.mjs +27 -0
- package/build/models/ActionMenuSelection.mjs.map +1 -0
- package/build/models/index.mjs +5 -0
- package/build/repository/ActionMenuRecord.d.mts +58 -0
- package/build/repository/ActionMenuRecord.d.mts.map +1 -0
- package/build/repository/ActionMenuRecord.mjs +52 -0
- package/build/repository/ActionMenuRecord.mjs.map +1 -0
- package/build/repository/ActionMenuRepository.d.mts +14 -0
- package/build/repository/ActionMenuRepository.d.mts.map +1 -0
- package/build/repository/ActionMenuRepository.mjs +22 -0
- package/build/repository/ActionMenuRepository.mjs.map +1 -0
- package/build/repository/index.d.mts +2 -0
- package/build/repository/index.mjs +2 -0
- package/build/services/ActionMenuService.d.mts +46 -0
- package/build/services/ActionMenuService.d.mts.map +1 -0
- package/build/services/ActionMenuService.mjs +258 -0
- package/build/services/ActionMenuService.mjs.map +1 -0
- package/build/services/ActionMenuServiceOptions.d.mts +45 -0
- package/build/services/ActionMenuServiceOptions.d.mts.map +1 -0
- package/build/services/index.d.mts +2 -0
- package/build/services/index.mjs +1 -0
- package/package.json +15 -14
- package/build/ActionMenuApi.d.ts +0 -50
- package/build/ActionMenuApi.js +0 -135
- package/build/ActionMenuApi.js.map +0 -1
- package/build/ActionMenuApiOptions.d.ts +0 -36
- package/build/ActionMenuApiOptions.js +0 -3
- package/build/ActionMenuApiOptions.js.map +0 -1
- package/build/ActionMenuEvents.d.ts +0 -19
- package/build/ActionMenuEvents.js +0 -11
- package/build/ActionMenuEvents.js.map +0 -1
- package/build/ActionMenuModule.d.ts +0 -12
- package/build/ActionMenuModule.js +0 -32
- package/build/ActionMenuModule.js.map +0 -1
- package/build/ActionMenuRole.d.ts +0 -10
- package/build/ActionMenuRole.js +0 -15
- package/build/ActionMenuRole.js.map +0 -1
- package/build/ActionMenuState.d.ts +0 -14
- package/build/ActionMenuState.js +0 -19
- package/build/ActionMenuState.js.map +0 -1
- package/build/errors/ActionMenuProblemReportError.d.ts +0 -19
- package/build/errors/ActionMenuProblemReportError.js +0 -22
- package/build/errors/ActionMenuProblemReportError.js.map +0 -1
- package/build/errors/ActionMenuProblemReportReason.d.ts +0 -9
- package/build/errors/ActionMenuProblemReportReason.js +0 -14
- package/build/errors/ActionMenuProblemReportReason.js.map +0 -1
- package/build/handlers/ActionMenuProblemReportHandler.d.ts +0 -12
- package/build/handlers/ActionMenuProblemReportHandler.js +0 -18
- package/build/handlers/ActionMenuProblemReportHandler.js.map +0 -1
- package/build/handlers/MenuMessageHandler.d.ts +0 -12
- package/build/handlers/MenuMessageHandler.js +0 -19
- package/build/handlers/MenuMessageHandler.js.map +0 -1
- package/build/handlers/MenuRequestMessageHandler.d.ts +0 -12
- package/build/handlers/MenuRequestMessageHandler.js +0 -19
- package/build/handlers/MenuRequestMessageHandler.js.map +0 -1
- package/build/handlers/PerformMessageHandler.d.ts +0 -12
- package/build/handlers/PerformMessageHandler.js +0 -19
- package/build/handlers/PerformMessageHandler.js.map +0 -1
- package/build/handlers/index.d.ts +0 -4
- package/build/handlers/index.js +0 -21
- package/build/handlers/index.js.map +0 -1
- package/build/index.d.ts +0 -9
- package/build/index.js +0 -26
- package/build/index.js.map +0 -1
- package/build/messages/ActionMenuProblemReportMessage.d.ts +0 -16
- package/build/messages/ActionMenuProblemReportMessage.js +0 -34
- package/build/messages/ActionMenuProblemReportMessage.js.map +0 -1
- package/build/messages/MenuMessage.d.ts +0 -26
- package/build/messages/MenuMessage.js +0 -64
- package/build/messages/MenuMessage.js.map +0 -1
- package/build/messages/MenuRequestMessage.d.ts +0 -15
- package/build/messages/MenuRequestMessage.js +0 -33
- package/build/messages/MenuRequestMessage.js.map +0 -1
- package/build/messages/PerformMessage.d.ts +0 -20
- package/build/messages/PerformMessage.js +0 -48
- package/build/messages/PerformMessage.js.map +0 -1
- package/build/messages/index.d.ts +0 -4
- package/build/messages/index.js +0 -21
- package/build/messages/index.js.map +0 -1
- package/build/models/ActionMenu.d.ts +0 -19
- package/build/models/ActionMenu.js +0 -42
- package/build/models/ActionMenu.js.map +0 -1
- package/build/models/ActionMenuOption.d.ts +0 -23
- package/build/models/ActionMenuOption.js +0 -56
- package/build/models/ActionMenuOption.js.map +0 -1
- package/build/models/ActionMenuOptionForm.d.ts +0 -19
- package/build/models/ActionMenuOptionForm.js +0 -43
- package/build/models/ActionMenuOptionForm.js.map +0 -1
- package/build/models/ActionMenuOptionFormParameter.d.ts +0 -29
- package/build/models/ActionMenuOptionFormParameter.js +0 -64
- package/build/models/ActionMenuOptionFormParameter.js.map +0 -1
- package/build/models/ActionMenuSelection.d.ts +0 -15
- package/build/models/ActionMenuSelection.js +0 -35
- package/build/models/ActionMenuSelection.js.map +0 -1
- package/build/models/index.d.ts +0 -5
- package/build/models/index.js +0 -22
- package/build/models/index.js.map +0 -1
- package/build/repository/ActionMenuRecord.d.ts +0 -52
- package/build/repository/ActionMenuRecord.js +0 -63
- package/build/repository/ActionMenuRecord.js.map +0 -1
- package/build/repository/ActionMenuRepository.d.ts +0 -8
- package/build/repository/ActionMenuRepository.js +0 -32
- package/build/repository/ActionMenuRepository.js.map +0 -1
- package/build/repository/index.d.ts +0 -2
- package/build/repository/index.js +0 -19
- package/build/repository/index.js.map +0 -1
- package/build/services/ActionMenuService.d.ts +0 -36
- package/build/services/ActionMenuService.js +0 -295
- package/build/services/ActionMenuService.js.map +0 -1
- package/build/services/ActionMenuServiceOptions.d.ts +0 -39
- package/build/services/ActionMenuServiceOptions.js +0 -3
- package/build/services/ActionMenuServiceOptions.js.map +0 -1
- package/build/services/index.d.ts +0 -2
- package/build/services/index.js +0 -19
- package/build/services/index.js.map +0 -1
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { __decorateMetadata } from "../_virtual/_@oxc-project_runtime@0.99.0/helpers/decorateMetadata.mjs";
|
|
2
|
+
import { __decorate } from "../_virtual/_@oxc-project_runtime@0.99.0/helpers/decorate.mjs";
|
|
3
|
+
import { IsBoolean, IsEnum, IsOptional, IsString } from "class-validator";
|
|
4
|
+
|
|
5
|
+
//#region src/models/ActionMenuOptionFormParameter.ts
|
|
6
|
+
var _ref;
|
|
7
|
+
/**
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
let ActionMenuFormInputType = /* @__PURE__ */ function(ActionMenuFormInputType$1) {
|
|
11
|
+
ActionMenuFormInputType$1["Text"] = "text";
|
|
12
|
+
return ActionMenuFormInputType$1;
|
|
13
|
+
}({});
|
|
14
|
+
/**
|
|
15
|
+
* @public
|
|
16
|
+
*/
|
|
17
|
+
var ActionMenuFormParameter = class {
|
|
18
|
+
constructor(options) {
|
|
19
|
+
if (options) {
|
|
20
|
+
this.name = options.name;
|
|
21
|
+
this.title = options.title;
|
|
22
|
+
this.default = options.default;
|
|
23
|
+
this.description = options.description;
|
|
24
|
+
this.required = options.required;
|
|
25
|
+
this.type = options.type;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
__decorate([IsString(), __decorateMetadata("design:type", String)], ActionMenuFormParameter.prototype, "name", void 0);
|
|
30
|
+
__decorate([IsString(), __decorateMetadata("design:type", String)], ActionMenuFormParameter.prototype, "title", void 0);
|
|
31
|
+
__decorate([
|
|
32
|
+
IsString(),
|
|
33
|
+
IsOptional(),
|
|
34
|
+
__decorateMetadata("design:type", String)
|
|
35
|
+
], ActionMenuFormParameter.prototype, "default", void 0);
|
|
36
|
+
__decorate([IsString(), __decorateMetadata("design:type", String)], ActionMenuFormParameter.prototype, "description", void 0);
|
|
37
|
+
__decorate([
|
|
38
|
+
IsBoolean(),
|
|
39
|
+
IsOptional(),
|
|
40
|
+
__decorateMetadata("design:type", Boolean)
|
|
41
|
+
], ActionMenuFormParameter.prototype, "required", void 0);
|
|
42
|
+
__decorate([
|
|
43
|
+
IsEnum(ActionMenuFormInputType),
|
|
44
|
+
IsOptional(),
|
|
45
|
+
__decorateMetadata("design:type", typeof (_ref = typeof ActionMenuFormInputType !== "undefined" && ActionMenuFormInputType) === "function" ? _ref : Object)
|
|
46
|
+
], ActionMenuFormParameter.prototype, "type", void 0);
|
|
47
|
+
|
|
48
|
+
//#endregion
|
|
49
|
+
export { ActionMenuFormInputType, ActionMenuFormParameter };
|
|
50
|
+
//# sourceMappingURL=ActionMenuOptionFormParameter.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionMenuOptionFormParameter.mjs","names":[],"sources":["../../src/models/ActionMenuOptionFormParameter.ts"],"sourcesContent":["import { IsBoolean, IsEnum, IsOptional, IsString } from 'class-validator'\n\n/**\n * @public\n */\nexport enum ActionMenuFormInputType {\n Text = 'text',\n}\n\n/**\n * @public\n */\nexport interface ActionMenuFormParameterOptions {\n name: string\n title: string\n default?: string\n description: string\n required?: boolean\n type?: ActionMenuFormInputType\n}\n\n/**\n * @public\n */\nexport class ActionMenuFormParameter {\n public constructor(options: ActionMenuFormParameterOptions) {\n if (options) {\n this.name = options.name\n this.title = options.title\n this.default = options.default\n this.description = options.description\n this.required = options.required\n this.type = options.type\n }\n }\n\n @IsString()\n public name!: string\n\n @IsString()\n public title!: string\n\n @IsString()\n @IsOptional()\n public default?: string\n\n @IsString()\n public description!: string\n\n @IsBoolean()\n @IsOptional()\n public required?: boolean\n\n @IsEnum(ActionMenuFormInputType)\n @IsOptional()\n public type?: ActionMenuFormInputType\n}\n"],"mappings":";;;;;;;;;AAKA,IAAY,8EAAL;AACL;;;;;;AAkBF,IAAa,0BAAb,MAAqC;CACnC,AAAO,YAAY,SAAyC;AAC1D,MAAI,SAAS;AACX,QAAK,OAAO,QAAQ;AACpB,QAAK,QAAQ,QAAQ;AACrB,QAAK,UAAU,QAAQ;AACvB,QAAK,cAAc,QAAQ;AAC3B,QAAK,WAAW,QAAQ;AACxB,QAAK,OAAO,QAAQ;;;;YAIvB,UAAU;YAGV,UAAU;;CAGV,UAAU;CACV,YAAY;;;YAGZ,UAAU;;CAGV,WAAW;CACX,YAAY;;;;CAGZ,OAAO,wBAAwB;CAC/B,YAAY"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//#region src/models/ActionMenuSelection.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* @public
|
|
4
|
+
*/
|
|
5
|
+
interface ActionMenuSelectionOptions {
|
|
6
|
+
name: string;
|
|
7
|
+
params?: Record<string, string>;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
declare class ActionMenuSelection {
|
|
13
|
+
constructor(options: ActionMenuSelectionOptions);
|
|
14
|
+
name: string;
|
|
15
|
+
params?: Record<string, string>;
|
|
16
|
+
}
|
|
17
|
+
//#endregion
|
|
18
|
+
export { ActionMenuSelection, ActionMenuSelectionOptions };
|
|
19
|
+
//# sourceMappingURL=ActionMenuSelection.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionMenuSelection.d.mts","names":[],"sources":["../../src/models/ActionMenuSelection.ts"],"sourcesContent":[],"mappings":";;AAKA;AAQA;UARiB,0BAAA;;WAEN;;;;;cAME,mBAAA;uBACiB;;WAYZ"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { __decorateMetadata } from "../_virtual/_@oxc-project_runtime@0.99.0/helpers/decorateMetadata.mjs";
|
|
2
|
+
import { __decorate } from "../_virtual/_@oxc-project_runtime@0.99.0/helpers/decorate.mjs";
|
|
3
|
+
import { IsOptional, IsString } from "class-validator";
|
|
4
|
+
|
|
5
|
+
//#region src/models/ActionMenuSelection.ts
|
|
6
|
+
var _ref;
|
|
7
|
+
/**
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
var ActionMenuSelection = class {
|
|
11
|
+
constructor(options) {
|
|
12
|
+
if (options) {
|
|
13
|
+
this.name = options.name;
|
|
14
|
+
this.params = options.params;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
__decorate([IsString(), __decorateMetadata("design:type", String)], ActionMenuSelection.prototype, "name", void 0);
|
|
19
|
+
__decorate([
|
|
20
|
+
IsString({ each: true }),
|
|
21
|
+
IsOptional(),
|
|
22
|
+
__decorateMetadata("design:type", typeof (_ref = typeof Record !== "undefined" && Record) === "function" ? _ref : Object)
|
|
23
|
+
], ActionMenuSelection.prototype, "params", void 0);
|
|
24
|
+
|
|
25
|
+
//#endregion
|
|
26
|
+
export { ActionMenuSelection };
|
|
27
|
+
//# sourceMappingURL=ActionMenuSelection.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionMenuSelection.mjs","names":[],"sources":["../../src/models/ActionMenuSelection.ts"],"sourcesContent":["import { IsOptional, IsString } from 'class-validator'\n\n/**\n * @public\n */\nexport interface ActionMenuSelectionOptions {\n name: string\n params?: Record<string, string>\n}\n\n/**\n * @public\n */\nexport class ActionMenuSelection {\n public constructor(options: ActionMenuSelectionOptions) {\n if (options) {\n this.name = options.name\n this.params = options.params\n }\n }\n\n @IsString()\n public name!: string\n\n @IsString({ each: true })\n @IsOptional()\n public params?: Record<string, string>\n}\n"],"mappings":";;;;;;;;;AAaA,IAAa,sBAAb,MAAiC;CAC/B,AAAO,YAAY,SAAqC;AACtD,MAAI,SAAS;AACX,QAAK,OAAO,QAAQ;AACpB,QAAK,SAAS,QAAQ;;;;YAIzB,UAAU;;CAGV,SAAS,EAAE,MAAM,MAAM,CAAC;CACxB,YAAY"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ActionMenuFormInputType, ActionMenuFormParameter } from "./ActionMenuOptionFormParameter.mjs";
|
|
2
|
+
import { ActionMenuForm } from "./ActionMenuOptionForm.mjs";
|
|
3
|
+
import { ActionMenuOption } from "./ActionMenuOption.mjs";
|
|
4
|
+
import { ActionMenu } from "./ActionMenu.mjs";
|
|
5
|
+
import { ActionMenuSelection } from "./ActionMenuSelection.mjs";
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { ActionMenuRole } from "../ActionMenuRole.mjs";
|
|
2
|
+
import { ActionMenuState } from "../ActionMenuState.mjs";
|
|
3
|
+
import { ActionMenu } from "../models/ActionMenu.mjs";
|
|
4
|
+
import { ActionMenuSelection } from "../models/ActionMenuSelection.mjs";
|
|
5
|
+
import { BaseRecord, TagsBase } from "@credo-ts/core";
|
|
6
|
+
|
|
7
|
+
//#region src/repository/ActionMenuRecord.d.ts
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
interface ActionMenuRecordProps {
|
|
13
|
+
id?: string;
|
|
14
|
+
state: ActionMenuState;
|
|
15
|
+
role: ActionMenuRole;
|
|
16
|
+
createdAt?: Date;
|
|
17
|
+
connectionId: string;
|
|
18
|
+
threadId: string;
|
|
19
|
+
menu?: ActionMenu;
|
|
20
|
+
performedAction?: ActionMenuSelection;
|
|
21
|
+
tags?: CustomActionMenuTags;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @public
|
|
25
|
+
*/
|
|
26
|
+
type CustomActionMenuTags = TagsBase;
|
|
27
|
+
/**
|
|
28
|
+
* @public
|
|
29
|
+
*/
|
|
30
|
+
type DefaultActionMenuTags = {
|
|
31
|
+
role: ActionMenuRole;
|
|
32
|
+
connectionId: string;
|
|
33
|
+
threadId: string;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* @public
|
|
37
|
+
*/
|
|
38
|
+
declare class ActionMenuRecord extends BaseRecord<DefaultActionMenuTags, CustomActionMenuTags> implements ActionMenuRecordProps {
|
|
39
|
+
state: ActionMenuState;
|
|
40
|
+
role: ActionMenuRole;
|
|
41
|
+
connectionId: string;
|
|
42
|
+
threadId: string;
|
|
43
|
+
menu?: ActionMenu;
|
|
44
|
+
performedAction?: ActionMenuSelection;
|
|
45
|
+
static readonly type = "ActionMenuRecord";
|
|
46
|
+
readonly type = "ActionMenuRecord";
|
|
47
|
+
constructor(props: ActionMenuRecordProps);
|
|
48
|
+
getTags(): {
|
|
49
|
+
role: ActionMenuRole;
|
|
50
|
+
connectionId: string;
|
|
51
|
+
threadId: string;
|
|
52
|
+
};
|
|
53
|
+
assertState(expectedStates: ActionMenuState | ActionMenuState[]): void;
|
|
54
|
+
assertRole(expectedRole: ActionMenuRole): void;
|
|
55
|
+
}
|
|
56
|
+
//#endregion
|
|
57
|
+
export { ActionMenuRecord, ActionMenuRecordProps, CustomActionMenuTags, DefaultActionMenuTags };
|
|
58
|
+
//# sourceMappingURL=ActionMenuRecord.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionMenuRecord.d.mts","names":[],"sources":["../../src/repository/ActionMenuRecord.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;AAWA;AAES,UAFQ,qBAAA,CAER;EACD,EAAA,CAAA,EAAA,MAAA;EACM,KAAA,EAFL,eAEK;EAGL,IAAA,EAJD,cAIC;EACW,SAAA,CAAA,EAJN,IAIM;EACX,YAAA,EAAA,MAAA;EAAoB,QAAA,EAAA,MAAA;EAMjB,IAAA,CAAA,EARH,UAQG;EAKA,eAAA,CAAA,EAZQ,mBAaZ;EAQK,IAAA,CAAA,EApBJ,oBAqBP;;;;;AASc,KAxBJ,oBAAA,GAAuB,QAwBnB;;;;AAiCqB,KApDzB,qBAAA,GAoDyB;EAAkB,IAAA,EAnD/C,cAmD+C;EAYrB,YAAA,EAAA,MAAA;EAtDxB,QAAA,EAAA,MAAA;CACG;;;;cAFA,gBAAA,SACH,WAAW,uBAAuB,iCAC/B;SAEI;QACD;;;SAKA;oBAGW;;;qBAKC;;;;;;8BAyBS,kBAAkB;2BAYrB"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { __decorateMetadata } from "../_virtual/_@oxc-project_runtime@0.99.0/helpers/decorateMetadata.mjs";
|
|
2
|
+
import { __decorate } from "../_virtual/_@oxc-project_runtime@0.99.0/helpers/decorate.mjs";
|
|
3
|
+
import { ActionMenu } from "../models/ActionMenu.mjs";
|
|
4
|
+
import { ActionMenuSelection } from "../models/ActionMenuSelection.mjs";
|
|
5
|
+
import "../models/index.mjs";
|
|
6
|
+
import { BaseRecord, CredoError, utils } from "@credo-ts/core";
|
|
7
|
+
import { Type } from "class-transformer";
|
|
8
|
+
|
|
9
|
+
//#region src/repository/ActionMenuRecord.ts
|
|
10
|
+
var _ref, _ref2;
|
|
11
|
+
/**
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
14
|
+
var ActionMenuRecord = class ActionMenuRecord extends BaseRecord {
|
|
15
|
+
constructor(props) {
|
|
16
|
+
super();
|
|
17
|
+
this.type = ActionMenuRecord.type;
|
|
18
|
+
if (props) {
|
|
19
|
+
this.id = props.id ?? utils.uuid();
|
|
20
|
+
this.createdAt = props.createdAt ?? /* @__PURE__ */ new Date();
|
|
21
|
+
this.connectionId = props.connectionId;
|
|
22
|
+
this.threadId = props.threadId;
|
|
23
|
+
this.state = props.state;
|
|
24
|
+
this.role = props.role;
|
|
25
|
+
this.menu = props.menu;
|
|
26
|
+
this.performedAction = props.performedAction;
|
|
27
|
+
this._tags = props.tags ?? {};
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
getTags() {
|
|
31
|
+
return {
|
|
32
|
+
...this._tags,
|
|
33
|
+
role: this.role,
|
|
34
|
+
connectionId: this.connectionId,
|
|
35
|
+
threadId: this.threadId
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
assertState(expectedStates) {
|
|
39
|
+
if (!Array.isArray(expectedStates)) expectedStates = [expectedStates];
|
|
40
|
+
if (!expectedStates.includes(this.state)) throw new CredoError(`Action Menu record is in invalid state ${this.state}. Valid states are: ${expectedStates.join(", ")}.`);
|
|
41
|
+
}
|
|
42
|
+
assertRole(expectedRole) {
|
|
43
|
+
if (this.role !== expectedRole) throw new CredoError(`Action Menu record has invalid role ${this.role}. Expected role ${expectedRole}.`);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
ActionMenuRecord.type = "ActionMenuRecord";
|
|
47
|
+
__decorate([Type(() => ActionMenu), __decorateMetadata("design:type", typeof (_ref = typeof ActionMenu !== "undefined" && ActionMenu) === "function" ? _ref : Object)], ActionMenuRecord.prototype, "menu", void 0);
|
|
48
|
+
__decorate([Type(() => ActionMenuSelection), __decorateMetadata("design:type", typeof (_ref2 = typeof ActionMenuSelection !== "undefined" && ActionMenuSelection) === "function" ? _ref2 : Object)], ActionMenuRecord.prototype, "performedAction", void 0);
|
|
49
|
+
|
|
50
|
+
//#endregion
|
|
51
|
+
export { ActionMenuRecord };
|
|
52
|
+
//# sourceMappingURL=ActionMenuRecord.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionMenuRecord.mjs","names":[],"sources":["../../src/repository/ActionMenuRecord.ts"],"sourcesContent":["import type { TagsBase } from '@credo-ts/core'\nimport { BaseRecord, CredoError, utils } from '@credo-ts/core'\nimport { Type } from 'class-transformer'\nimport type { ActionMenuRole } from '../ActionMenuRole'\nimport type { ActionMenuState } from '../ActionMenuState'\n\nimport { ActionMenu, ActionMenuSelection } from '../models'\n\n/**\n * @public\n */\nexport interface ActionMenuRecordProps {\n id?: string\n state: ActionMenuState\n role: ActionMenuRole\n createdAt?: Date\n connectionId: string\n threadId: string\n menu?: ActionMenu\n performedAction?: ActionMenuSelection\n tags?: CustomActionMenuTags\n}\n\n/**\n * @public\n */\nexport type CustomActionMenuTags = TagsBase\n\n/**\n * @public\n */\nexport type DefaultActionMenuTags = {\n role: ActionMenuRole\n connectionId: string\n threadId: string\n}\n\n/**\n * @public\n */\nexport class ActionMenuRecord\n extends BaseRecord<DefaultActionMenuTags, CustomActionMenuTags>\n implements ActionMenuRecordProps\n{\n public state!: ActionMenuState\n public role!: ActionMenuRole\n public connectionId!: string\n public threadId!: string\n\n @Type(() => ActionMenu)\n public menu?: ActionMenu\n\n @Type(() => ActionMenuSelection)\n public performedAction?: ActionMenuSelection\n\n public static readonly type = 'ActionMenuRecord'\n public readonly type = ActionMenuRecord.type\n\n public constructor(props: ActionMenuRecordProps) {\n super()\n\n if (props) {\n this.id = props.id ?? utils.uuid()\n this.createdAt = props.createdAt ?? new Date()\n this.connectionId = props.connectionId\n this.threadId = props.threadId\n this.state = props.state\n this.role = props.role\n this.menu = props.menu\n this.performedAction = props.performedAction\n this._tags = props.tags ?? {}\n }\n }\n\n public getTags() {\n return {\n ...this._tags,\n role: this.role,\n connectionId: this.connectionId,\n threadId: this.threadId,\n }\n }\n\n public assertState(expectedStates: ActionMenuState | ActionMenuState[]) {\n if (!Array.isArray(expectedStates)) {\n expectedStates = [expectedStates]\n }\n\n if (!expectedStates.includes(this.state)) {\n throw new CredoError(\n `Action Menu record is in invalid state ${this.state}. Valid states are: ${expectedStates.join(', ')}.`\n )\n }\n }\n\n public assertRole(expectedRole: ActionMenuRole) {\n if (this.role !== expectedRole) {\n throw new CredoError(`Action Menu record has invalid role ${this.role}. Expected role ${expectedRole}.`)\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAwCA,IAAa,mBAAb,MAAa,yBACH,WAEV;CAeE,AAAO,YAAY,OAA8B;AAC/C,SAAO;OAHO,OAAO,iBAAiB;AAKtC,MAAI,OAAO;AACT,QAAK,KAAK,MAAM,MAAM,MAAM,MAAM;AAClC,QAAK,YAAY,MAAM,6BAAa,IAAI,MAAM;AAC9C,QAAK,eAAe,MAAM;AAC1B,QAAK,WAAW,MAAM;AACtB,QAAK,QAAQ,MAAM;AACnB,QAAK,OAAO,MAAM;AAClB,QAAK,OAAO,MAAM;AAClB,QAAK,kBAAkB,MAAM;AAC7B,QAAK,QAAQ,MAAM,QAAQ,EAAE;;;CAIjC,AAAO,UAAU;AACf,SAAO;GACL,GAAG,KAAK;GACR,MAAM,KAAK;GACX,cAAc,KAAK;GACnB,UAAU,KAAK;GAChB;;CAGH,AAAO,YAAY,gBAAqD;AACtE,MAAI,CAAC,MAAM,QAAQ,eAAe,CAChC,kBAAiB,CAAC,eAAe;AAGnC,MAAI,CAAC,eAAe,SAAS,KAAK,MAAM,CACtC,OAAM,IAAI,WACR,0CAA0C,KAAK,MAAM,sBAAsB,eAAe,KAAK,KAAK,CAAC,GACtG;;CAIL,AAAO,WAAW,cAA8B;AAC9C,MAAI,KAAK,SAAS,aAChB,OAAM,IAAI,WAAW,uCAAuC,KAAK,KAAK,kBAAkB,aAAa,GAAG;;;iBA1CrF,OAAO;YAN7B,WAAW,WAAW;YAGtB,WAAW,oBAAoB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ActionMenuRecord } from "./ActionMenuRecord.mjs";
|
|
2
|
+
import { EventEmitter, Repository, StorageService } from "@credo-ts/core";
|
|
3
|
+
|
|
4
|
+
//#region src/repository/ActionMenuRepository.d.ts
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
declare class ActionMenuRepository extends Repository<ActionMenuRecord> {
|
|
10
|
+
constructor(storageService: StorageService<ActionMenuRecord>, eventEmitter: EventEmitter);
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
13
|
+
export { ActionMenuRepository };
|
|
14
|
+
//# sourceMappingURL=ActionMenuRepository.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionMenuRepository.d.mts","names":[],"sources":["../../src/repository/ActionMenuRepository.ts"],"sourcesContent":[],"mappings":";;;;;;;AAOA;AACqD,cAAxC,oBAAA,SAA6B,UAAW,CAAA,gBAAA,CAAA,CAAA;EAEuB,WAAA,CAAA,cAAA,EAAf,cAAe,CAAA,gBAAA,CAAA,EAAA,YAAA,EAC1D,YAD0D"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { __decorateMetadata } from "../_virtual/_@oxc-project_runtime@0.99.0/helpers/decorateMetadata.mjs";
|
|
2
|
+
import { __decorate } from "../_virtual/_@oxc-project_runtime@0.99.0/helpers/decorate.mjs";
|
|
3
|
+
import { ActionMenuRecord } from "./ActionMenuRecord.mjs";
|
|
4
|
+
import { __decorateParam } from "../_virtual/_@oxc-project_runtime@0.99.0/helpers/decorateParam.mjs";
|
|
5
|
+
import { EventEmitter, InjectionSymbols, Repository, inject, injectable } from "@credo-ts/core";
|
|
6
|
+
|
|
7
|
+
//#region src/repository/ActionMenuRepository.ts
|
|
8
|
+
var _ref;
|
|
9
|
+
let ActionMenuRepository = class ActionMenuRepository$1 extends Repository {
|
|
10
|
+
constructor(storageService, eventEmitter) {
|
|
11
|
+
super(ActionMenuRecord, storageService, eventEmitter);
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
ActionMenuRepository = __decorate([
|
|
15
|
+
injectable(),
|
|
16
|
+
__decorateParam(0, inject(InjectionSymbols.StorageService)),
|
|
17
|
+
__decorateMetadata("design:paramtypes", [Object, typeof (_ref = typeof EventEmitter !== "undefined" && EventEmitter) === "function" ? _ref : Object])
|
|
18
|
+
], ActionMenuRepository);
|
|
19
|
+
|
|
20
|
+
//#endregion
|
|
21
|
+
export { ActionMenuRepository };
|
|
22
|
+
//# sourceMappingURL=ActionMenuRepository.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionMenuRepository.mjs","names":["ActionMenuRepository","storageService: StorageService<ActionMenuRecord>"],"sources":["../../src/repository/ActionMenuRepository.ts"],"sourcesContent":["import { EventEmitter, InjectionSymbols, inject, injectable, Repository, type StorageService } from '@credo-ts/core'\n\nimport { ActionMenuRecord } from './ActionMenuRecord'\n\n/**\n * @internal\n */\n@injectable()\nexport class ActionMenuRepository extends Repository<ActionMenuRecord> {\n public constructor(\n @inject(InjectionSymbols.StorageService) storageService: StorageService<ActionMenuRecord>,\n eventEmitter: EventEmitter\n ) {\n super(ActionMenuRecord, storageService, eventEmitter)\n }\n}\n"],"mappings":";;;;;;;;AAQO,iCAAMA,+BAA6B,WAA6B;CACrE,AAAO,YACL,AAAyCC,gBACzC,cACA;AACA,QAAM,kBAAkB,gBAAgB,aAAa;;;;CANxD,YAAY;oBAGR,OAAO,iBAAiB,eAAe"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { ActionMenuRecord } from "../repository/ActionMenuRecord.mjs";
|
|
2
|
+
import { ActionMenuRepository } from "../repository/ActionMenuRepository.mjs";
|
|
3
|
+
import "../repository/index.mjs";
|
|
4
|
+
import { ActionMenuProblemReportMessage } from "../messages/ActionMenuProblemReportMessage.mjs";
|
|
5
|
+
import { MenuMessage } from "../messages/MenuMessage.mjs";
|
|
6
|
+
import { MenuRequestMessage } from "../messages/MenuRequestMessage.mjs";
|
|
7
|
+
import { PerformMessage } from "../messages/PerformMessage.mjs";
|
|
8
|
+
import "../messages/index.mjs";
|
|
9
|
+
import { ClearMenuOptions, CreateMenuOptions, CreatePerformOptions, CreateRequestOptions, FindMenuOptions } from "./ActionMenuServiceOptions.mjs";
|
|
10
|
+
import { AgentConfig, AgentContext, EventEmitter, Query, QueryOptions } from "@credo-ts/core";
|
|
11
|
+
import { DidCommInboundMessageContext } from "@credo-ts/didcomm";
|
|
12
|
+
|
|
13
|
+
//#region src/services/ActionMenuService.d.ts
|
|
14
|
+
/**
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
declare class ActionMenuService {
|
|
18
|
+
private actionMenuRepository;
|
|
19
|
+
private eventEmitter;
|
|
20
|
+
private logger;
|
|
21
|
+
constructor(actionMenuRepository: ActionMenuRepository, agentConfig: AgentConfig, eventEmitter: EventEmitter);
|
|
22
|
+
createRequest(agentContext: AgentContext, options: CreateRequestOptions): Promise<{
|
|
23
|
+
message: MenuRequestMessage;
|
|
24
|
+
record: ActionMenuRecord;
|
|
25
|
+
}>;
|
|
26
|
+
processRequest(messageContext: DidCommInboundMessageContext<MenuRequestMessage>): Promise<ActionMenuRecord>;
|
|
27
|
+
createMenu(agentContext: AgentContext, options: CreateMenuOptions): Promise<{
|
|
28
|
+
message: MenuMessage;
|
|
29
|
+
record: ActionMenuRecord;
|
|
30
|
+
}>;
|
|
31
|
+
processMenu(messageContext: DidCommInboundMessageContext<MenuMessage>): Promise<void>;
|
|
32
|
+
createPerform(agentContext: AgentContext, options: CreatePerformOptions): Promise<{
|
|
33
|
+
message: PerformMessage;
|
|
34
|
+
record: ActionMenuRecord;
|
|
35
|
+
}>;
|
|
36
|
+
processPerform(messageContext: DidCommInboundMessageContext<PerformMessage>): Promise<void>;
|
|
37
|
+
clearMenu(agentContext: AgentContext, options: ClearMenuOptions): Promise<ActionMenuRecord>;
|
|
38
|
+
processProblemReport(messageContext: DidCommInboundMessageContext<ActionMenuProblemReportMessage>): Promise<ActionMenuRecord>;
|
|
39
|
+
findById(agentContext: AgentContext, actionMenuRecordId: string): Promise<ActionMenuRecord | null>;
|
|
40
|
+
find(agentContext: AgentContext, options: FindMenuOptions): Promise<ActionMenuRecord | null>;
|
|
41
|
+
findAllByQuery(agentContext: AgentContext, options: Query<ActionMenuRecord>, queryOptions?: QueryOptions): Promise<ActionMenuRecord[]>;
|
|
42
|
+
private emitStateChangedEvent;
|
|
43
|
+
}
|
|
44
|
+
//#endregion
|
|
45
|
+
export { ActionMenuService };
|
|
46
|
+
//# sourceMappingURL=ActionMenuService.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionMenuService.d.mts","names":[],"sources":["../../src/services/ActionMenuService.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;cAyBa,iBAAA;;;EAAA,QAAA,MAAA;EAK8B,WAAA,CAAA,oBAAA,EAAA,oBAAA,EAAA,WAAA,EAAmC,WAAnC,EAAA,YAAA,EAA8D,YAA9D;EAAmC,aAAA,CAAA,YAAA,EAMnC,YANmC,EAAA,OAAA,EAMZ,oBANY,CAAA,EAMQ,OANR,CAAA;IAA2B,OAAA,oBAAA;IAM9D,MAAA,kBAAA;EAAuB,CAAA,CAAA;iCAsCpB,6BAA6B,sBAAmB,QAAA;2BAuCtD,uBAAuB,oBAAiB;IA7EM,OAAA,aAAA;IAsCX,MAAA,kBAAA;EAA7B,CAAA,CAAA;EAAgD,WAAA,CAAA,cAAA,EA8FnD,4BA9FmD,CA8FtB,WA9FsB,CAAA,CAAA,EA8FV,OA9FU,CAAA,IAAA,CAAA;EAAA,aAAA,CAAA,YAAA,EAgJnD,YAhJmD,EAAA,OAAA,EAgJ5B,oBAhJ4B,CAAA,EAgJR,OAhJQ,CAAA;IAuCtD,OAAA,gBAAA;IAAuB,MAAA,kBAAA;;iCAyIjB,6BAA6B,kBAAe;EAzIV,SAAA,CAAA,YAAA,EAqLzC,YArLyC,EAAA,OAAA,EAqLlB,gBArLkB,CAAA,EAqLF,OArLE,CAqLF,gBArLE,CAAA;EAuDR,oBAAA,CAAA,cAAA,EAgJpD,4BAhJoD,CAgJvB,8BAhJuB,CAAA,CAAA,EAiJnE,OAjJmE,CAiJ3D,gBAjJ2D,CAAA;EAA7B,QAAA,CAAA,YAAA,EAoKL,YApKK,EAAA,kBAAA,EAAA,MAAA,CAAA,EAoKmC,OApKnC,CAoKmC,gBApKnC,GAAA,IAAA,CAAA;EAAyC,IAAA,CAAA,YAAA,EAwKlD,YAxKkD,EAAA,OAAA,EAwK3B,eAxK2B,CAAA,EAwKZ,OAxKY,CAwKZ,gBAxKY,GAAA,IAAA,CAAA;EAkDzC,cAAA,CAAA,YAAA,EA+HzB,YA/HyB,EAAA,OAAA,EAgI9B,KAhI8B,CAgIxB,gBAhIwB,CAAA,EAAA,YAAA,CAAA,EAiIxB,YAjIwB,CAAA,EAiIZ,OAjIY,CAiIZ,gBAjIY,EAAA,CAAA;EAAuB,QAAA,qBAAA"}
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
import { ActionMenuRole } from "../ActionMenuRole.mjs";
|
|
2
|
+
import { ActionMenuEventTypes } from "../ActionMenuEvents.mjs";
|
|
3
|
+
import { ActionMenuState } from "../ActionMenuState.mjs";
|
|
4
|
+
import { __decorateMetadata } from "../_virtual/_@oxc-project_runtime@0.99.0/helpers/decorateMetadata.mjs";
|
|
5
|
+
import { __decorate } from "../_virtual/_@oxc-project_runtime@0.99.0/helpers/decorate.mjs";
|
|
6
|
+
import { ActionMenu } from "../models/ActionMenu.mjs";
|
|
7
|
+
import { ActionMenuSelection } from "../models/ActionMenuSelection.mjs";
|
|
8
|
+
import "../models/index.mjs";
|
|
9
|
+
import { MenuMessage } from "../messages/MenuMessage.mjs";
|
|
10
|
+
import { MenuRequestMessage } from "../messages/MenuRequestMessage.mjs";
|
|
11
|
+
import { PerformMessage } from "../messages/PerformMessage.mjs";
|
|
12
|
+
import "../messages/index.mjs";
|
|
13
|
+
import { ActionMenuProblemReportError } from "../errors/ActionMenuProblemReportError.mjs";
|
|
14
|
+
import { ActionMenuProblemReportReason } from "../errors/ActionMenuProblemReportReason.mjs";
|
|
15
|
+
import { ActionMenuRecord } from "../repository/ActionMenuRecord.mjs";
|
|
16
|
+
import { ActionMenuRepository } from "../repository/ActionMenuRepository.mjs";
|
|
17
|
+
import "../repository/index.mjs";
|
|
18
|
+
import { AgentConfig, CredoError, EventEmitter, injectable } from "@credo-ts/core";
|
|
19
|
+
|
|
20
|
+
//#region src/services/ActionMenuService.ts
|
|
21
|
+
var _ref, _ref2, _ref3;
|
|
22
|
+
let ActionMenuService = class ActionMenuService$1 {
|
|
23
|
+
constructor(actionMenuRepository, agentConfig, eventEmitter) {
|
|
24
|
+
this.actionMenuRepository = actionMenuRepository;
|
|
25
|
+
this.eventEmitter = eventEmitter;
|
|
26
|
+
this.logger = agentConfig.logger;
|
|
27
|
+
}
|
|
28
|
+
async createRequest(agentContext, options) {
|
|
29
|
+
options.connection.assertReady();
|
|
30
|
+
const menuRequestMessage = new MenuRequestMessage({});
|
|
31
|
+
let actionMenuRecord = await this.find(agentContext, {
|
|
32
|
+
connectionId: options.connection.id,
|
|
33
|
+
role: ActionMenuRole.Requester
|
|
34
|
+
});
|
|
35
|
+
if (actionMenuRecord) {
|
|
36
|
+
const previousState = actionMenuRecord.state;
|
|
37
|
+
actionMenuRecord.state = ActionMenuState.AwaitingRootMenu;
|
|
38
|
+
actionMenuRecord.threadId = menuRequestMessage.id;
|
|
39
|
+
actionMenuRecord.menu = void 0;
|
|
40
|
+
actionMenuRecord.performedAction = void 0;
|
|
41
|
+
await this.actionMenuRepository.update(agentContext, actionMenuRecord);
|
|
42
|
+
this.emitStateChangedEvent(agentContext, actionMenuRecord, previousState);
|
|
43
|
+
} else {
|
|
44
|
+
actionMenuRecord = new ActionMenuRecord({
|
|
45
|
+
connectionId: options.connection.id,
|
|
46
|
+
role: ActionMenuRole.Requester,
|
|
47
|
+
state: ActionMenuState.AwaitingRootMenu,
|
|
48
|
+
threadId: menuRequestMessage.threadId
|
|
49
|
+
});
|
|
50
|
+
await this.actionMenuRepository.save(agentContext, actionMenuRecord);
|
|
51
|
+
this.emitStateChangedEvent(agentContext, actionMenuRecord, null);
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
message: menuRequestMessage,
|
|
55
|
+
record: actionMenuRecord
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
async processRequest(messageContext) {
|
|
59
|
+
const { message: menuRequestMessage, agentContext } = messageContext;
|
|
60
|
+
this.logger.debug(`Processing menu request with id ${menuRequestMessage.id}`);
|
|
61
|
+
const connection = messageContext.assertReadyConnection();
|
|
62
|
+
let actionMenuRecord = await this.find(agentContext, {
|
|
63
|
+
connectionId: connection.id,
|
|
64
|
+
role: ActionMenuRole.Responder
|
|
65
|
+
});
|
|
66
|
+
if (actionMenuRecord) {
|
|
67
|
+
const previousState = actionMenuRecord.state;
|
|
68
|
+
actionMenuRecord.state = ActionMenuState.PreparingRootMenu;
|
|
69
|
+
actionMenuRecord.threadId = menuRequestMessage.id;
|
|
70
|
+
actionMenuRecord.menu = void 0;
|
|
71
|
+
actionMenuRecord.performedAction = void 0;
|
|
72
|
+
await this.actionMenuRepository.update(agentContext, actionMenuRecord);
|
|
73
|
+
this.emitStateChangedEvent(agentContext, actionMenuRecord, previousState);
|
|
74
|
+
} else {
|
|
75
|
+
actionMenuRecord = new ActionMenuRecord({
|
|
76
|
+
connectionId: connection.id,
|
|
77
|
+
role: ActionMenuRole.Responder,
|
|
78
|
+
state: ActionMenuState.PreparingRootMenu,
|
|
79
|
+
threadId: menuRequestMessage.threadId
|
|
80
|
+
});
|
|
81
|
+
await this.actionMenuRepository.save(agentContext, actionMenuRecord);
|
|
82
|
+
this.emitStateChangedEvent(agentContext, actionMenuRecord, null);
|
|
83
|
+
}
|
|
84
|
+
return actionMenuRecord;
|
|
85
|
+
}
|
|
86
|
+
async createMenu(agentContext, options) {
|
|
87
|
+
options.connection.assertReady();
|
|
88
|
+
if (new Set(options.menu.options.map((v) => v.name)).size < options.menu.options.length) throw new CredoError("Action Menu contains duplicated options");
|
|
89
|
+
const menuMessage = new MenuMessage({
|
|
90
|
+
title: options.menu.title,
|
|
91
|
+
description: options.menu.description,
|
|
92
|
+
options: options.menu.options
|
|
93
|
+
});
|
|
94
|
+
let actionMenuRecord = await this.find(agentContext, {
|
|
95
|
+
connectionId: options.connection.id,
|
|
96
|
+
role: ActionMenuRole.Responder
|
|
97
|
+
});
|
|
98
|
+
if (actionMenuRecord) {
|
|
99
|
+
actionMenuRecord.assertState([
|
|
100
|
+
ActionMenuState.Null,
|
|
101
|
+
ActionMenuState.PreparingRootMenu,
|
|
102
|
+
ActionMenuState.Done
|
|
103
|
+
]);
|
|
104
|
+
if (actionMenuRecord.state !== ActionMenuState.Null) menuMessage.setThread({ threadId: actionMenuRecord.threadId });
|
|
105
|
+
const previousState = actionMenuRecord.state;
|
|
106
|
+
actionMenuRecord.menu = options.menu;
|
|
107
|
+
actionMenuRecord.state = ActionMenuState.AwaitingSelection;
|
|
108
|
+
actionMenuRecord.threadId = menuMessage.threadId;
|
|
109
|
+
await this.actionMenuRepository.update(agentContext, actionMenuRecord);
|
|
110
|
+
this.emitStateChangedEvent(agentContext, actionMenuRecord, previousState);
|
|
111
|
+
} else {
|
|
112
|
+
actionMenuRecord = new ActionMenuRecord({
|
|
113
|
+
connectionId: options.connection.id,
|
|
114
|
+
role: ActionMenuRole.Responder,
|
|
115
|
+
state: ActionMenuState.AwaitingSelection,
|
|
116
|
+
menu: options.menu,
|
|
117
|
+
threadId: menuMessage.threadId
|
|
118
|
+
});
|
|
119
|
+
await this.actionMenuRepository.save(agentContext, actionMenuRecord);
|
|
120
|
+
this.emitStateChangedEvent(agentContext, actionMenuRecord, null);
|
|
121
|
+
}
|
|
122
|
+
return {
|
|
123
|
+
message: menuMessage,
|
|
124
|
+
record: actionMenuRecord
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
async processMenu(messageContext) {
|
|
128
|
+
const { message: menuMessage, agentContext } = messageContext;
|
|
129
|
+
this.logger.debug(`Processing action menu with id ${menuMessage.id}`);
|
|
130
|
+
const connection = messageContext.assertReadyConnection();
|
|
131
|
+
const record = await this.find(agentContext, {
|
|
132
|
+
connectionId: connection.id,
|
|
133
|
+
role: ActionMenuRole.Requester
|
|
134
|
+
});
|
|
135
|
+
if (record) {
|
|
136
|
+
const previousState = record.state;
|
|
137
|
+
record.state = ActionMenuState.PreparingSelection;
|
|
138
|
+
record.menu = new ActionMenu({
|
|
139
|
+
title: menuMessage.title,
|
|
140
|
+
description: menuMessage.description,
|
|
141
|
+
options: menuMessage.options
|
|
142
|
+
});
|
|
143
|
+
record.threadId = menuMessage.threadId;
|
|
144
|
+
record.performedAction = void 0;
|
|
145
|
+
await this.actionMenuRepository.update(agentContext, record);
|
|
146
|
+
this.emitStateChangedEvent(agentContext, record, previousState);
|
|
147
|
+
} else {
|
|
148
|
+
const actionMenuRecord = new ActionMenuRecord({
|
|
149
|
+
connectionId: connection.id,
|
|
150
|
+
role: ActionMenuRole.Requester,
|
|
151
|
+
state: ActionMenuState.PreparingSelection,
|
|
152
|
+
threadId: menuMessage.threadId,
|
|
153
|
+
menu: new ActionMenu({
|
|
154
|
+
title: menuMessage.title,
|
|
155
|
+
description: menuMessage.description,
|
|
156
|
+
options: menuMessage.options
|
|
157
|
+
})
|
|
158
|
+
});
|
|
159
|
+
await this.actionMenuRepository.save(agentContext, actionMenuRecord);
|
|
160
|
+
this.emitStateChangedEvent(agentContext, actionMenuRecord, null);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
async createPerform(agentContext, options) {
|
|
164
|
+
const { actionMenuRecord: record, performedAction: performedSelection } = options;
|
|
165
|
+
record.assertRole(ActionMenuRole.Requester);
|
|
166
|
+
record.assertState([ActionMenuState.PreparingSelection]);
|
|
167
|
+
if (!record.menu?.options.some((item) => item.name === performedSelection.name)) throw new CredoError("Selection does not match valid actions");
|
|
168
|
+
const previousState = record.state;
|
|
169
|
+
const menuMessage = new PerformMessage({
|
|
170
|
+
name: performedSelection.name,
|
|
171
|
+
params: performedSelection.params,
|
|
172
|
+
threadId: record.threadId
|
|
173
|
+
});
|
|
174
|
+
record.performedAction = options.performedAction;
|
|
175
|
+
record.state = ActionMenuState.Done;
|
|
176
|
+
await this.actionMenuRepository.update(agentContext, record);
|
|
177
|
+
this.emitStateChangedEvent(agentContext, record, previousState);
|
|
178
|
+
return {
|
|
179
|
+
message: menuMessage,
|
|
180
|
+
record
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
async processPerform(messageContext) {
|
|
184
|
+
const { message: performMessage, agentContext } = messageContext;
|
|
185
|
+
this.logger.debug(`Processing action menu perform with id ${performMessage.id}`);
|
|
186
|
+
const connection = messageContext.assertReadyConnection();
|
|
187
|
+
const record = await this.find(agentContext, {
|
|
188
|
+
connectionId: connection.id,
|
|
189
|
+
role: ActionMenuRole.Responder,
|
|
190
|
+
threadId: performMessage.threadId
|
|
191
|
+
});
|
|
192
|
+
if (record) {
|
|
193
|
+
if (record.state === ActionMenuState.Null) throw new ActionMenuProblemReportError("Action Menu has been cleared by the responder", { problemCode: ActionMenuProblemReportReason.Timeout });
|
|
194
|
+
record.assertState([ActionMenuState.AwaitingSelection]);
|
|
195
|
+
if (!record.menu?.options.some((item) => item.name === performMessage.name)) throw new CredoError("Selection does not match valid actions");
|
|
196
|
+
const previousState = record.state;
|
|
197
|
+
record.state = ActionMenuState.Done;
|
|
198
|
+
record.performedAction = new ActionMenuSelection({
|
|
199
|
+
name: performMessage.name,
|
|
200
|
+
params: performMessage.params
|
|
201
|
+
});
|
|
202
|
+
await this.actionMenuRepository.update(agentContext, record);
|
|
203
|
+
this.emitStateChangedEvent(agentContext, record, previousState);
|
|
204
|
+
} else throw new CredoError(`No Action Menu found with thread id ${messageContext.message.threadId}`);
|
|
205
|
+
}
|
|
206
|
+
async clearMenu(agentContext, options) {
|
|
207
|
+
const { actionMenuRecord: record } = options;
|
|
208
|
+
const previousState = record.state;
|
|
209
|
+
record.state = ActionMenuState.Null;
|
|
210
|
+
record.menu = void 0;
|
|
211
|
+
record.performedAction = void 0;
|
|
212
|
+
await this.actionMenuRepository.update(agentContext, record);
|
|
213
|
+
this.emitStateChangedEvent(agentContext, record, previousState);
|
|
214
|
+
return record;
|
|
215
|
+
}
|
|
216
|
+
async processProblemReport(messageContext) {
|
|
217
|
+
const { message: actionMenuProblemReportMessage, agentContext } = messageContext;
|
|
218
|
+
const connection = messageContext.assertReadyConnection();
|
|
219
|
+
this.logger.debug(`Processing problem report with id ${actionMenuProblemReportMessage.id}`);
|
|
220
|
+
const actionMenuRecord = await this.find(agentContext, {
|
|
221
|
+
role: ActionMenuRole.Requester,
|
|
222
|
+
connectionId: connection.id
|
|
223
|
+
});
|
|
224
|
+
if (!actionMenuRecord) throw new CredoError(`Unable to process action menu problem: record not found for connection id ${connection.id}`);
|
|
225
|
+
return await this.clearMenu(agentContext, { actionMenuRecord });
|
|
226
|
+
}
|
|
227
|
+
async findById(agentContext, actionMenuRecordId) {
|
|
228
|
+
return await this.actionMenuRepository.findById(agentContext, actionMenuRecordId);
|
|
229
|
+
}
|
|
230
|
+
async find(agentContext, options) {
|
|
231
|
+
return await this.actionMenuRepository.findSingleByQuery(agentContext, {
|
|
232
|
+
connectionId: options.connectionId,
|
|
233
|
+
role: options.role,
|
|
234
|
+
threadId: options.threadId
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
async findAllByQuery(agentContext, options, queryOptions) {
|
|
238
|
+
return await this.actionMenuRepository.findByQuery(agentContext, options, queryOptions);
|
|
239
|
+
}
|
|
240
|
+
emitStateChangedEvent(agentContext, actionMenuRecord, previousState) {
|
|
241
|
+
this.eventEmitter.emit(agentContext, {
|
|
242
|
+
type: ActionMenuEventTypes.ActionMenuStateChanged,
|
|
243
|
+
payload: {
|
|
244
|
+
actionMenuRecord: actionMenuRecord.clone(),
|
|
245
|
+
previousState
|
|
246
|
+
}
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
};
|
|
250
|
+
ActionMenuService = __decorate([injectable(), __decorateMetadata("design:paramtypes", [
|
|
251
|
+
typeof (_ref = typeof ActionMenuRepository !== "undefined" && ActionMenuRepository) === "function" ? _ref : Object,
|
|
252
|
+
typeof (_ref2 = typeof AgentConfig !== "undefined" && AgentConfig) === "function" ? _ref2 : Object,
|
|
253
|
+
typeof (_ref3 = typeof EventEmitter !== "undefined" && EventEmitter) === "function" ? _ref3 : Object
|
|
254
|
+
])], ActionMenuService);
|
|
255
|
+
|
|
256
|
+
//#endregion
|
|
257
|
+
export { ActionMenuService };
|
|
258
|
+
//# sourceMappingURL=ActionMenuService.mjs.map
|