@optimizely-opal/opal-tools-sdk 0.1.5-dev → 0.1.6-dev
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/.prettierignore +5 -0
- package/.prettierrc +1 -0
- package/README.md +227 -202
- package/dist/auth.d.ts +5 -5
- package/dist/auth.js +2 -2
- package/dist/block.d.ts +4760 -0
- package/dist/block.js +104 -0
- package/dist/decorators.d.ts +8 -8
- package/dist/decorators.js +3 -43
- package/dist/index.d.ts +9 -5
- package/dist/index.js +10 -5
- package/dist/models.d.ts +115 -115
- package/dist/models.js +77 -76
- package/dist/registerTool.d.ts +68 -0
- package/dist/registerTool.js +57 -0
- package/dist/registry.d.ts +1 -1
- package/dist/registry.js +1 -1
- package/dist/service.d.ts +10 -8
- package/dist/service.js +50 -22
- package/eslint.config.js +20 -0
- package/package.json +20 -10
- package/scripts/generate-block.ts +167 -0
- package/scripts/lint.sh +7 -0
- package/src/auth.ts +21 -16
- package/src/block.ts +11761 -0
- package/src/decorators.ts +28 -67
- package/src/index.ts +9 -5
- package/src/models.ts +106 -103
- package/src/registerTool.ts +181 -0
- package/src/registry.ts +2 -2
- package/src/service.ts +80 -37
- package/tests/block.test.ts +115 -0
- package/tests/integration.test.ts +318 -0
- package/tsconfig.build.json +5 -0
- package/tsconfig.json +3 -3
- package/vitest.config.ts +7 -0
package/dist/block.js
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Generated by json-schema-to-typescript
|
|
4
|
+
* DO NOT MODIFY - This file is auto-generated from block-document-spec.json
|
|
5
|
+
* Run 'npm run generate:block' to regenerate
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.Block = void 0;
|
|
9
|
+
exports.isBlockResponse = isBlockResponse;
|
|
10
|
+
/**
|
|
11
|
+
* Builder namespace for Adaptive Block Document components.
|
|
12
|
+
*
|
|
13
|
+
* Usage:
|
|
14
|
+
* Block.Document({ children: [...] })
|
|
15
|
+
* Block.Heading({ children: "Title", level: "2" })
|
|
16
|
+
* Block.Input({ name: "field_name", placeholder: "Enter..." })
|
|
17
|
+
*/
|
|
18
|
+
exports.Block = {
|
|
19
|
+
Action: (props) => ({
|
|
20
|
+
$type: "Block.Action",
|
|
21
|
+
...props,
|
|
22
|
+
}),
|
|
23
|
+
Alert: (props) => ({
|
|
24
|
+
$type: "Block.Alert",
|
|
25
|
+
...props,
|
|
26
|
+
}),
|
|
27
|
+
Badge: (props) => ({
|
|
28
|
+
$type: "Block.Badge",
|
|
29
|
+
...props,
|
|
30
|
+
}),
|
|
31
|
+
Box: (props) => ({
|
|
32
|
+
$type: "Block.Box",
|
|
33
|
+
...props,
|
|
34
|
+
}),
|
|
35
|
+
CancelAction: (props) => ({ $type: "Block.CancelAction", ...props }),
|
|
36
|
+
Checkbox: (props) => ({
|
|
37
|
+
$type: "Block.Checkbox",
|
|
38
|
+
...props,
|
|
39
|
+
}),
|
|
40
|
+
Code: (props) => ({
|
|
41
|
+
$type: "Block.Code",
|
|
42
|
+
...props,
|
|
43
|
+
}),
|
|
44
|
+
Document: (props) => ({
|
|
45
|
+
$type: "Block.Document",
|
|
46
|
+
...props,
|
|
47
|
+
}),
|
|
48
|
+
Field: (props) => ({
|
|
49
|
+
$type: "Block.Field",
|
|
50
|
+
...props,
|
|
51
|
+
}),
|
|
52
|
+
Group: (props) => ({
|
|
53
|
+
$type: "Block.Group",
|
|
54
|
+
...props,
|
|
55
|
+
}),
|
|
56
|
+
Heading: (props) => ({
|
|
57
|
+
$type: "Block.Heading",
|
|
58
|
+
...props,
|
|
59
|
+
}),
|
|
60
|
+
Input: (props) => ({
|
|
61
|
+
$type: "Block.Input",
|
|
62
|
+
...props,
|
|
63
|
+
}),
|
|
64
|
+
Link: (props) => ({
|
|
65
|
+
$type: "Block.Link",
|
|
66
|
+
...props,
|
|
67
|
+
}),
|
|
68
|
+
Range: (props) => ({
|
|
69
|
+
$type: "Block.Range",
|
|
70
|
+
...props,
|
|
71
|
+
}),
|
|
72
|
+
Select: (props) => ({
|
|
73
|
+
$type: "Block.Select",
|
|
74
|
+
...props,
|
|
75
|
+
}),
|
|
76
|
+
Separator: (props) => ({
|
|
77
|
+
$type: "Block.Separator",
|
|
78
|
+
...props,
|
|
79
|
+
}),
|
|
80
|
+
Switch: (props) => ({
|
|
81
|
+
$type: "Block.Switch",
|
|
82
|
+
...props,
|
|
83
|
+
}),
|
|
84
|
+
Text: (props) => ({
|
|
85
|
+
$type: "Block.Text",
|
|
86
|
+
...props,
|
|
87
|
+
}),
|
|
88
|
+
Textarea: (props) => ({
|
|
89
|
+
$type: "Block.Textarea",
|
|
90
|
+
...props,
|
|
91
|
+
}),
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Type guard to check if a value is a BlockResponse.
|
|
95
|
+
*/
|
|
96
|
+
function isBlockResponse(value) {
|
|
97
|
+
return (typeof value === "object" &&
|
|
98
|
+
value !== null &&
|
|
99
|
+
("content" in value ||
|
|
100
|
+
"data" in value ||
|
|
101
|
+
"artifact" in value ||
|
|
102
|
+
"rollback" in value ||
|
|
103
|
+
"error" in value));
|
|
104
|
+
}
|
package/dist/decorators.d.ts
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { ParameterType } from
|
|
1
|
+
import "reflect-metadata";
|
|
2
|
+
import { ParameterType } from "./models";
|
|
3
3
|
interface ParameterDefinition {
|
|
4
|
-
name: string;
|
|
5
|
-
type: ParameterType;
|
|
6
4
|
description: string;
|
|
5
|
+
name: string;
|
|
7
6
|
required: boolean;
|
|
7
|
+
type: ParameterType;
|
|
8
8
|
}
|
|
9
9
|
interface ToolOptions {
|
|
10
|
-
name: string;
|
|
11
|
-
description: string;
|
|
12
|
-
parameters?: ParameterDefinition[];
|
|
13
10
|
authRequirements?: {
|
|
14
11
|
provider: string;
|
|
15
|
-
scopeBundle: string;
|
|
16
12
|
required?: boolean;
|
|
13
|
+
scopeBundle: string;
|
|
17
14
|
};
|
|
15
|
+
description: string;
|
|
16
|
+
name: string;
|
|
17
|
+
parameters?: ParameterDefinition[];
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
20
|
* Decorator to register a function as an Opal tool
|
package/dist/decorators.js
CHANGED
|
@@ -1,50 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.tool = tool;
|
|
4
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
4
5
|
require("reflect-metadata");
|
|
5
6
|
const models_1 = require("./models");
|
|
6
7
|
const registry_1 = require("./registry");
|
|
7
|
-
/**
|
|
8
|
-
* Map a TypeScript type to a ParameterType
|
|
9
|
-
* @param type TypeScript type
|
|
10
|
-
*/
|
|
11
|
-
function mapTypeToParameterType(type) {
|
|
12
|
-
if (type === String || type.name === 'String') {
|
|
13
|
-
return models_1.ParameterType.String;
|
|
14
|
-
}
|
|
15
|
-
else if (type === Number || type.name === 'Number') {
|
|
16
|
-
return models_1.ParameterType.Number;
|
|
17
|
-
}
|
|
18
|
-
else if (type === Boolean || type.name === 'Boolean') {
|
|
19
|
-
return models_1.ParameterType.Boolean;
|
|
20
|
-
}
|
|
21
|
-
else if (type === Array || type.name === 'Array') {
|
|
22
|
-
return models_1.ParameterType.List;
|
|
23
|
-
}
|
|
24
|
-
else if (type === Object || type.name === 'Object') {
|
|
25
|
-
return models_1.ParameterType.Dictionary;
|
|
26
|
-
}
|
|
27
|
-
// Default to string
|
|
28
|
-
return models_1.ParameterType.String;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Extract parameters from a TypeScript interface
|
|
32
|
-
* @param paramType Parameter type object
|
|
33
|
-
*/
|
|
34
|
-
function extractParameters(paramType) {
|
|
35
|
-
const parameters = [];
|
|
36
|
-
// This is very basic and doesn't handle complex types
|
|
37
|
-
// For production use, this would need to be more sophisticated
|
|
38
|
-
for (const key in paramType) {
|
|
39
|
-
if (paramType.hasOwnProperty(key)) {
|
|
40
|
-
const type = typeof paramType[key] === 'undefined' ? String : paramType[key].constructor;
|
|
41
|
-
const required = true; // In a real implementation, we'd detect optional parameters
|
|
42
|
-
parameters.push(new models_1.Parameter(key, mapTypeToParameterType(type), '', // Description - in a real impl we'd use TypeDoc or similar
|
|
43
|
-
required));
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
return parameters;
|
|
47
|
-
}
|
|
48
8
|
/**
|
|
49
9
|
* Decorator to register a function as an Opal tool
|
|
50
10
|
* @param options Tool options including:
|
|
@@ -66,7 +26,7 @@ function tool(options) {
|
|
|
66
26
|
const isMethod = propertyKey && descriptor;
|
|
67
27
|
const handler = isMethod ? descriptor.value : target;
|
|
68
28
|
// Generate endpoint from name - ensure hyphens instead of underscores
|
|
69
|
-
const endpoint = `/tools/${options.name.replace(/_/g,
|
|
29
|
+
const endpoint = `/tools/${options.name.replace(/_/g, "-")}`;
|
|
70
30
|
// Convert parameter definitions to Parameter objects
|
|
71
31
|
const parameters = [];
|
|
72
32
|
if (options.parameters && options.parameters.length > 0) {
|
|
@@ -79,7 +39,7 @@ function tool(options) {
|
|
|
79
39
|
let authRequirements;
|
|
80
40
|
if (options.authRequirements) {
|
|
81
41
|
authRequirements = [
|
|
82
|
-
new models_1.AuthRequirement(options.authRequirements.provider, options.authRequirements.scopeBundle, options.authRequirements.required ?? true)
|
|
42
|
+
new models_1.AuthRequirement(options.authRequirements.provider, options.authRequirements.scopeBundle, options.authRequirements.required ?? true),
|
|
83
43
|
];
|
|
84
44
|
}
|
|
85
45
|
// Register the tool with all services
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
-
export
|
|
5
|
-
export
|
|
1
|
+
import "reflect-metadata";
|
|
2
|
+
export { requiresAuth } from "./auth";
|
|
3
|
+
export { Block, isBlockResponse } from "./block";
|
|
4
|
+
export type * from "./block";
|
|
5
|
+
export { tool } from "./decorators";
|
|
6
|
+
export * from "./models";
|
|
7
|
+
export { registerTool } from "./registerTool";
|
|
8
|
+
export type { RequestHandlerExtra } from "./registerTool";
|
|
9
|
+
export { ToolsService } from "./service";
|
package/dist/index.js
CHANGED
|
@@ -14,12 +14,17 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.
|
|
17
|
+
exports.ToolsService = exports.registerTool = exports.tool = exports.isBlockResponse = exports.Block = exports.requiresAuth = void 0;
|
|
18
18
|
require("reflect-metadata");
|
|
19
|
-
var service_1 = require("./service");
|
|
20
|
-
Object.defineProperty(exports, "ToolsService", { enumerable: true, get: function () { return service_1.ToolsService; } });
|
|
21
|
-
var decorators_1 = require("./decorators");
|
|
22
|
-
Object.defineProperty(exports, "tool", { enumerable: true, get: function () { return decorators_1.tool; } });
|
|
23
19
|
var auth_1 = require("./auth");
|
|
24
20
|
Object.defineProperty(exports, "requiresAuth", { enumerable: true, get: function () { return auth_1.requiresAuth; } });
|
|
21
|
+
var block_1 = require("./block");
|
|
22
|
+
Object.defineProperty(exports, "Block", { enumerable: true, get: function () { return block_1.Block; } });
|
|
23
|
+
Object.defineProperty(exports, "isBlockResponse", { enumerable: true, get: function () { return block_1.isBlockResponse; } });
|
|
24
|
+
var decorators_1 = require("./decorators");
|
|
25
|
+
Object.defineProperty(exports, "tool", { enumerable: true, get: function () { return decorators_1.tool; } });
|
|
25
26
|
__exportStar(require("./models"), exports);
|
|
27
|
+
var registerTool_1 = require("./registerTool");
|
|
28
|
+
Object.defineProperty(exports, "registerTool", { enumerable: true, get: function () { return registerTool_1.registerTool; } });
|
|
29
|
+
var service_1 = require("./service");
|
|
30
|
+
Object.defineProperty(exports, "ToolsService", { enumerable: true, get: function () { return service_1.ToolsService; } });
|
package/dist/models.d.ts
CHANGED
|
@@ -2,39 +2,36 @@
|
|
|
2
2
|
* Types of parameters supported by Opal tools
|
|
3
3
|
*/
|
|
4
4
|
export declare enum ParameterType {
|
|
5
|
-
String = "string",
|
|
6
|
-
Integer = "integer",
|
|
7
|
-
Number = "number",
|
|
8
5
|
Boolean = "boolean",
|
|
6
|
+
Dictionary = "object",
|
|
7
|
+
Integer = "integer",
|
|
9
8
|
List = "array",
|
|
10
|
-
|
|
9
|
+
Number = "number",
|
|
10
|
+
String = "string"
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
13
|
+
* Authentication data for an Opal tool
|
|
14
14
|
*/
|
|
15
|
-
export
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
required: boolean;
|
|
36
|
-
};
|
|
37
|
-
}
|
|
15
|
+
export type AuthData = {
|
|
16
|
+
credentials: Credentials;
|
|
17
|
+
provider: string;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Authentication credentials structure
|
|
21
|
+
*/
|
|
22
|
+
export type Credentials = {
|
|
23
|
+
access_token: string;
|
|
24
|
+
customer_id: string;
|
|
25
|
+
instance_id: string;
|
|
26
|
+
org_sso_id?: string;
|
|
27
|
+
product_sku: string;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Execution environment for an Opal tool
|
|
31
|
+
*/
|
|
32
|
+
export type Environment = {
|
|
33
|
+
execution_mode: "headless" | "interactive";
|
|
34
|
+
};
|
|
38
35
|
/**
|
|
39
36
|
* Authentication requirements for an Opal tool
|
|
40
37
|
*/
|
|
@@ -54,8 +51,8 @@ export declare class AuthRequirement {
|
|
|
54
51
|
*/
|
|
55
52
|
toJSON(): {
|
|
56
53
|
provider: string;
|
|
57
|
-
scope_bundle: string;
|
|
58
54
|
required: boolean;
|
|
55
|
+
scope_bundle: string;
|
|
59
56
|
};
|
|
60
57
|
}
|
|
61
58
|
/**
|
|
@@ -86,35 +83,41 @@ export declare class Function {
|
|
|
86
83
|
toJSON(): any;
|
|
87
84
|
}
|
|
88
85
|
/**
|
|
89
|
-
*
|
|
90
|
-
*/
|
|
91
|
-
export type Credentials = {
|
|
92
|
-
access_token: string;
|
|
93
|
-
org_sso_id?: string;
|
|
94
|
-
customer_id: string;
|
|
95
|
-
instance_id: string;
|
|
96
|
-
product_sku: string;
|
|
97
|
-
};
|
|
98
|
-
/**
|
|
99
|
-
* Authentication data for an Opal tool
|
|
100
|
-
*/
|
|
101
|
-
export type AuthData = {
|
|
102
|
-
provider: string;
|
|
103
|
-
credentials: Credentials;
|
|
104
|
-
};
|
|
105
|
-
/**
|
|
106
|
-
* Execution environment for an Opal tool
|
|
86
|
+
* Island action definition for interactive UI components
|
|
107
87
|
*/
|
|
108
|
-
export
|
|
109
|
-
|
|
110
|
-
|
|
88
|
+
export declare class IslandAction {
|
|
89
|
+
name: string;
|
|
90
|
+
label: string;
|
|
91
|
+
type: string;
|
|
92
|
+
endpoint: string;
|
|
93
|
+
operation: string;
|
|
94
|
+
/**
|
|
95
|
+
* Create a new island action
|
|
96
|
+
* @param name Programmatic action identifier
|
|
97
|
+
* @param label Human-readable button label
|
|
98
|
+
* @param type UI element type
|
|
99
|
+
* @param endpoint API endpoint to call
|
|
100
|
+
* @param operation Operation type
|
|
101
|
+
*/
|
|
102
|
+
constructor(name: string, label: string, type: string, endpoint: string, operation?: string);
|
|
103
|
+
/**
|
|
104
|
+
* Convert to JSON for the discovery endpoint
|
|
105
|
+
*/
|
|
106
|
+
toJSON(): {
|
|
107
|
+
endpoint: string;
|
|
108
|
+
label: string;
|
|
109
|
+
name: string;
|
|
110
|
+
operation: string;
|
|
111
|
+
type: string;
|
|
112
|
+
};
|
|
113
|
+
}
|
|
111
114
|
/**
|
|
112
115
|
* Island field definition for interactive UI components
|
|
113
116
|
*/
|
|
114
117
|
export declare class IslandField {
|
|
115
118
|
name: string;
|
|
116
119
|
label: string;
|
|
117
|
-
type: "
|
|
120
|
+
type: "boolean" | "json" | "string";
|
|
118
121
|
value: string;
|
|
119
122
|
hidden: boolean;
|
|
120
123
|
options: string[];
|
|
@@ -127,46 +130,17 @@ export declare class IslandField {
|
|
|
127
130
|
* @param hidden Whether to hide from user
|
|
128
131
|
* @param options Available options for selection
|
|
129
132
|
*/
|
|
130
|
-
constructor(name: string, label: string, type: "
|
|
133
|
+
constructor(name: string, label: string, type: "boolean" | "json" | "string", value?: string, hidden?: boolean, options?: string[]);
|
|
131
134
|
/**
|
|
132
135
|
* Convert to JSON for the discovery endpoint
|
|
133
136
|
*/
|
|
134
137
|
toJSON(): {
|
|
135
|
-
|
|
138
|
+
hidden: boolean;
|
|
136
139
|
label: string;
|
|
140
|
+
name: string;
|
|
141
|
+
options: string[];
|
|
137
142
|
type: "string" | "boolean" | "json";
|
|
138
143
|
value: string;
|
|
139
|
-
hidden: boolean;
|
|
140
|
-
options: string[];
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Island action definition for interactive UI components
|
|
145
|
-
*/
|
|
146
|
-
export declare class IslandAction {
|
|
147
|
-
name: string;
|
|
148
|
-
label: string;
|
|
149
|
-
type: string;
|
|
150
|
-
endpoint: string;
|
|
151
|
-
operation: string;
|
|
152
|
-
/**
|
|
153
|
-
* Create a new island action
|
|
154
|
-
* @param name Programmatic action identifier
|
|
155
|
-
* @param label Human-readable button label
|
|
156
|
-
* @param type UI element type
|
|
157
|
-
* @param endpoint API endpoint to call
|
|
158
|
-
* @param operation Operation type
|
|
159
|
-
*/
|
|
160
|
-
constructor(name: string, label: string, type: string, endpoint: string, operation?: string);
|
|
161
|
-
/**
|
|
162
|
-
* Convert to JSON for the discovery endpoint
|
|
163
|
-
*/
|
|
164
|
-
toJSON(): {
|
|
165
|
-
name: string;
|
|
166
|
-
label: string;
|
|
167
|
-
type: string;
|
|
168
|
-
endpoint: string;
|
|
169
|
-
operation: string;
|
|
170
144
|
};
|
|
171
145
|
}
|
|
172
146
|
/**
|
|
@@ -177,8 +151,8 @@ export declare class IslandConfig {
|
|
|
177
151
|
actions: IslandAction[];
|
|
178
152
|
type?: string | undefined;
|
|
179
153
|
icon?: string | undefined;
|
|
180
|
-
static Field: typeof IslandField;
|
|
181
154
|
static Action: typeof IslandAction;
|
|
155
|
+
static Field: typeof IslandField;
|
|
182
156
|
/**
|
|
183
157
|
* Create a new island configuration
|
|
184
158
|
* @param fields List of island fields
|
|
@@ -191,20 +165,20 @@ export declare class IslandConfig {
|
|
|
191
165
|
* Convert to JSON for the discovery endpoint
|
|
192
166
|
*/
|
|
193
167
|
toJSON(): {
|
|
194
|
-
|
|
168
|
+
actions: {
|
|
169
|
+
endpoint: string;
|
|
170
|
+
label: string;
|
|
195
171
|
name: string;
|
|
172
|
+
operation: string;
|
|
173
|
+
type: string;
|
|
174
|
+
}[];
|
|
175
|
+
fields: {
|
|
176
|
+
hidden: boolean;
|
|
196
177
|
label: string;
|
|
178
|
+
name: string;
|
|
179
|
+
options: string[];
|
|
197
180
|
type: "string" | "boolean" | "json";
|
|
198
181
|
value: string;
|
|
199
|
-
hidden: boolean;
|
|
200
|
-
options: string[];
|
|
201
|
-
}[];
|
|
202
|
-
actions: {
|
|
203
|
-
name: string;
|
|
204
|
-
label: string;
|
|
205
|
-
type: string;
|
|
206
|
-
endpoint: string;
|
|
207
|
-
operation: string;
|
|
208
182
|
}[];
|
|
209
183
|
};
|
|
210
184
|
}
|
|
@@ -223,20 +197,20 @@ export declare class IslandResponseConfig {
|
|
|
223
197
|
*/
|
|
224
198
|
toJSON(): {
|
|
225
199
|
islands: {
|
|
226
|
-
|
|
200
|
+
actions: {
|
|
201
|
+
endpoint: string;
|
|
202
|
+
label: string;
|
|
227
203
|
name: string;
|
|
204
|
+
operation: string;
|
|
205
|
+
type: string;
|
|
206
|
+
}[];
|
|
207
|
+
fields: {
|
|
208
|
+
hidden: boolean;
|
|
228
209
|
label: string;
|
|
210
|
+
name: string;
|
|
211
|
+
options: string[];
|
|
229
212
|
type: "string" | "boolean" | "json";
|
|
230
213
|
value: string;
|
|
231
|
-
hidden: boolean;
|
|
232
|
-
options: string[];
|
|
233
|
-
}[];
|
|
234
|
-
actions: {
|
|
235
|
-
name: string;
|
|
236
|
-
label: string;
|
|
237
|
-
type: string;
|
|
238
|
-
endpoint: string;
|
|
239
|
-
operation: string;
|
|
240
214
|
}[];
|
|
241
215
|
}[];
|
|
242
216
|
};
|
|
@@ -268,22 +242,48 @@ export declare class IslandResponse {
|
|
|
268
242
|
toJSON(): {
|
|
269
243
|
config: {
|
|
270
244
|
islands: {
|
|
271
|
-
|
|
245
|
+
actions: {
|
|
246
|
+
endpoint: string;
|
|
247
|
+
label: string;
|
|
272
248
|
name: string;
|
|
249
|
+
operation: string;
|
|
250
|
+
type: string;
|
|
251
|
+
}[];
|
|
252
|
+
fields: {
|
|
253
|
+
hidden: boolean;
|
|
273
254
|
label: string;
|
|
255
|
+
name: string;
|
|
256
|
+
options: string[];
|
|
274
257
|
type: "string" | "boolean" | "json";
|
|
275
258
|
value: string;
|
|
276
|
-
hidden: boolean;
|
|
277
|
-
options: string[];
|
|
278
|
-
}[];
|
|
279
|
-
actions: {
|
|
280
|
-
name: string;
|
|
281
|
-
label: string;
|
|
282
|
-
type: string;
|
|
283
|
-
endpoint: string;
|
|
284
|
-
operation: string;
|
|
285
259
|
}[];
|
|
286
260
|
}[];
|
|
287
261
|
};
|
|
288
262
|
};
|
|
289
263
|
}
|
|
264
|
+
/**
|
|
265
|
+
* Parameter definition for an Opal tool
|
|
266
|
+
*/
|
|
267
|
+
export declare class Parameter {
|
|
268
|
+
name: string;
|
|
269
|
+
type: ParameterType;
|
|
270
|
+
description: string;
|
|
271
|
+
required: boolean;
|
|
272
|
+
/**
|
|
273
|
+
* Create a new parameter definition
|
|
274
|
+
* @param name Parameter name
|
|
275
|
+
* @param type Parameter type
|
|
276
|
+
* @param description Parameter description
|
|
277
|
+
* @param required Whether the parameter is required
|
|
278
|
+
*/
|
|
279
|
+
constructor(name: string, type: ParameterType, description: string, required: boolean);
|
|
280
|
+
/**
|
|
281
|
+
* Convert to JSON for the discovery endpoint
|
|
282
|
+
*/
|
|
283
|
+
toJSON(): {
|
|
284
|
+
description: string;
|
|
285
|
+
name: string;
|
|
286
|
+
required: boolean;
|
|
287
|
+
type: ParameterType;
|
|
288
|
+
};
|
|
289
|
+
}
|