@mochabug/adapt-sdk 0.1.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/LICENSE +201 -0
- package/README.md +873 -0
- package/dist/api.d.ts +1605 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.spec.d.ts +2 -0
- package/dist/api.spec.d.ts.map +1 -0
- package/dist/cjs/api.cjs +2 -0
- package/dist/cjs/api.cjs.map +7 -0
- package/dist/cjs/frontend.cjs +2 -0
- package/dist/cjs/frontend.cjs.map +7 -0
- package/dist/cjs/mime.cjs +2 -0
- package/dist/cjs/mime.cjs.map +7 -0
- package/dist/cjs/router.cjs +2 -0
- package/dist/cjs/router.cjs.map +7 -0
- package/dist/cjs/types.cjs +2 -0
- package/dist/cjs/types.cjs.map +7 -0
- package/dist/esm/api.mjs +2 -0
- package/dist/esm/api.mjs.map +7 -0
- package/dist/esm/frontend.mjs +2 -0
- package/dist/esm/frontend.mjs.map +7 -0
- package/dist/esm/mime.mjs +2 -0
- package/dist/esm/mime.mjs.map +7 -0
- package/dist/esm/router.mjs +2 -0
- package/dist/esm/router.mjs.map +7 -0
- package/dist/esm/types.mjs +1 -0
- package/dist/esm/types.mjs.map +7 -0
- package/dist/frontend.d.ts +10 -0
- package/dist/frontend.d.ts.map +1 -0
- package/dist/genproto/buf/validate/validate_pb.d.ts +8491 -0
- package/dist/genproto/buf/validate/validate_pb.d.ts.map +1 -0
- package/dist/genproto/google/api/annotations_pb.d.ts +14 -0
- package/dist/genproto/google/api/annotations_pb.d.ts.map +1 -0
- package/dist/genproto/google/api/client_pb.d.ts +1432 -0
- package/dist/genproto/google/api/client_pb.d.ts.map +1 -0
- package/dist/genproto/google/api/http_pb.d.ts +843 -0
- package/dist/genproto/google/api/http_pb.d.ts.map +1 -0
- package/dist/genproto/google/api/launch_stage_pb.d.ts +94 -0
- package/dist/genproto/google/api/launch_stage_pb.d.ts.map +1 -0
- package/dist/genproto/mochabugapis/adapt/automations/v1/automations_pb.d.ts +1006 -0
- package/dist/genproto/mochabugapis/adapt/automations/v1/automations_pb.d.ts.map +1 -0
- package/dist/genproto/mochabugapis/adapt/graph/exchange_pb.d.ts +77 -0
- package/dist/genproto/mochabugapis/adapt/graph/exchange_pb.d.ts.map +1 -0
- package/dist/genproto/mochabugapis/adapt/graph/jtd_schema_pb.d.ts +401 -0
- package/dist/genproto/mochabugapis/adapt/graph/jtd_schema_pb.d.ts.map +1 -0
- package/dist/genproto/mochabugapis/adapt/graph/receiver_pb.d.ts +69 -0
- package/dist/genproto/mochabugapis/adapt/graph/receiver_pb.d.ts.map +1 -0
- package/dist/genproto/mochabugapis/adapt/graph/signal_binding_pb.d.ts +430 -0
- package/dist/genproto/mochabugapis/adapt/graph/signal_binding_pb.d.ts.map +1 -0
- package/dist/genproto/mochabugapis/adapt/graph/signal_data_pb.d.ts +198 -0
- package/dist/genproto/mochabugapis/adapt/graph/signal_data_pb.d.ts.map +1 -0
- package/dist/genproto/mochabugapis/adapt/graph/signal_descriptor_pb.d.ts +161 -0
- package/dist/genproto/mochabugapis/adapt/graph/signal_descriptor_pb.d.ts.map +1 -0
- package/dist/genproto/mochabugapis/adapt/graph/signal_format_pb.d.ts +305 -0
- package/dist/genproto/mochabugapis/adapt/graph/signal_format_pb.d.ts.map +1 -0
- package/dist/genproto/mochabugapis/adapt/graph/transceiver_pb.d.ts +77 -0
- package/dist/genproto/mochabugapis/adapt/graph/transceiver_pb.d.ts.map +1 -0
- package/dist/genproto/mochabugapis/adapt/graph/transmitter_pb.d.ts +120 -0
- package/dist/genproto/mochabugapis/adapt/graph/transmitter_pb.d.ts.map +1 -0
- package/dist/genproto/mochabugapis/adapt/graph/vertex_metadata_pb.d.ts +99 -0
- package/dist/genproto/mochabugapis/adapt/graph/vertex_metadata_pb.d.ts.map +1 -0
- package/dist/genproto/mochabugapis/adapt/plugins/v1/compound_services_pb.d.ts +347 -0
- package/dist/genproto/mochabugapis/adapt/plugins/v1/compound_services_pb.d.ts.map +1 -0
- package/dist/genproto/mochabugapis/adapt/plugins/v1/file_pb.d.ts +64 -0
- package/dist/genproto/mochabugapis/adapt/plugins/v1/file_pb.d.ts.map +1 -0
- package/dist/genproto/mochabugapis/adapt/plugins/v1/http_proxy_service_pb.d.ts +1282 -0
- package/dist/genproto/mochabugapis/adapt/plugins/v1/http_proxy_service_pb.d.ts.map +1 -0
- package/dist/genproto/mochabugapis/adapt/plugins/v1/manifest_pb.d.ts +388 -0
- package/dist/genproto/mochabugapis/adapt/plugins/v1/manifest_pb.d.ts.map +1 -0
- package/dist/genproto/mochabugapis/adapt/plugins/v1/oauth2_service_pb.d.ts +805 -0
- package/dist/genproto/mochabugapis/adapt/plugins/v1/oauth2_service_pb.d.ts.map +1 -0
- package/dist/genproto/mochabugapis/adapt/plugins/v1/plugins_pb.d.ts +238 -0
- package/dist/genproto/mochabugapis/adapt/plugins/v1/plugins_pb.d.ts.map +1 -0
- package/dist/genproto/mochabugapis/adapt/plugins/v1/service_definition_pb.d.ts +241 -0
- package/dist/genproto/mochabugapis/adapt/plugins/v1/service_definition_pb.d.ts.map +1 -0
- package/dist/genproto/mochabugapis/adapt/plugins/v1/service_settings_pb.d.ts +539 -0
- package/dist/genproto/mochabugapis/adapt/plugins/v1/service_settings_pb.d.ts.map +1 -0
- package/dist/genproto/mochabugapis/adapt/plugins/v1/variable_service_pb.d.ts +190 -0
- package/dist/genproto/mochabugapis/adapt/plugins/v1/variable_service_pb.d.ts.map +1 -0
- package/dist/genproto/mochabugapis/adapt/plugins/v1/vertex_pb.d.ts +269 -0
- package/dist/genproto/mochabugapis/adapt/plugins/v1/vertex_pb.d.ts.map +1 -0
- package/dist/genproto/mochabugapis/adapt/runtime/v1/incoming_pb.d.ts +339 -0
- package/dist/genproto/mochabugapis/adapt/runtime/v1/incoming_pb.d.ts.map +1 -0
- package/dist/genproto/mochabugapis/adapt/runtime/v1/runtime_pb.d.ts +2721 -0
- package/dist/genproto/mochabugapis/adapt/runtime/v1/runtime_pb.d.ts.map +1 -0
- package/dist/genproto/mochabugapis/adapt/runtime/v1/store_pb.d.ts +872 -0
- package/dist/genproto/mochabugapis/adapt/runtime/v1/store_pb.d.ts.map +1 -0
- package/dist/grpcweb.d.ts +8 -0
- package/dist/grpcweb.d.ts.map +1 -0
- package/dist/mime.d.ts +11 -0
- package/dist/mime.d.ts.map +1 -0
- package/dist/router.d.ts +503 -0
- package/dist/router.d.ts.map +1 -0
- package/dist/router.spec.d.ts +2 -0
- package/dist/router.spec.d.ts.map +1 -0
- package/dist/signal-api.spec.d.ts +17 -0
- package/dist/signal-api.spec.d.ts.map +1 -0
- package/dist/types.d.ts +149 -0
- package/dist/types.d.ts.map +1 -0
- package/package.json +80 -0
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global type definitions for the Mochabug Adapt Plugin system.
|
|
3
|
+
* These types define the runtime environment and APIs available to plugins.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Execution context providing lifecycle management for asynchronous operations.
|
|
7
|
+
*/
|
|
8
|
+
export interface ExecutionContext {
|
|
9
|
+
waitUntil(promise: Promise<any>): void;
|
|
10
|
+
passThroughOnException(): void;
|
|
11
|
+
abort(reason?: any): void;
|
|
12
|
+
}
|
|
13
|
+
export interface SocketInfo {
|
|
14
|
+
remoteAddress?: string;
|
|
15
|
+
localAddress?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface Socket {
|
|
18
|
+
get readable(): ReadableStream;
|
|
19
|
+
get writable(): WritableStream;
|
|
20
|
+
get closed(): Promise<void>;
|
|
21
|
+
get opened(): Promise<SocketInfo>;
|
|
22
|
+
get upgraded(): boolean;
|
|
23
|
+
get secureTransport(): 'on' | 'off' | 'starttls';
|
|
24
|
+
close(): Promise<void>;
|
|
25
|
+
startTls(options?: TlsOptions): Socket;
|
|
26
|
+
}
|
|
27
|
+
export interface TlsOptions {
|
|
28
|
+
expectedServerHostname?: string;
|
|
29
|
+
}
|
|
30
|
+
export interface SocketOptions {
|
|
31
|
+
secureTransport?: 'on' | 'off' | 'starttls';
|
|
32
|
+
allowHalfOpen: boolean;
|
|
33
|
+
highWaterMark?: number | bigint;
|
|
34
|
+
}
|
|
35
|
+
export interface SocketAddress {
|
|
36
|
+
hostname: string;
|
|
37
|
+
port: number;
|
|
38
|
+
}
|
|
39
|
+
export interface Fetcher {
|
|
40
|
+
fetch(input: string | URL | Request, init?: RequestInit): Promise<Response>;
|
|
41
|
+
connect(address: SocketAddress | string, options?: SocketOptions): Socket;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Environment represents an interface that holds
|
|
45
|
+
* all the common runtime functionality between a plugin - configurator / executor
|
|
46
|
+
*
|
|
47
|
+
* @interface
|
|
48
|
+
*/
|
|
49
|
+
export interface Environment {
|
|
50
|
+
/**
|
|
51
|
+
* assets is a Fetcher that wraps the Web Platform API fetch function.
|
|
52
|
+
* It provides access to files inside the assetsDir, as defined in the manifest.json file,
|
|
53
|
+
* without requiring authentication.
|
|
54
|
+
*
|
|
55
|
+
* Note: This is a simple interface to the directory content and is not suitable for serving
|
|
56
|
+
* a full-fledged website. For example, it does not attempt to guess the `Content-Type` header.
|
|
57
|
+
* You may want to wrap this Fetcher in a plugin that fills in the metadata as required.
|
|
58
|
+
*
|
|
59
|
+
* A GET request targeting a directory (instead of a file) returns a basic JSON directory
|
|
60
|
+
* listing, like:
|
|
61
|
+
*
|
|
62
|
+
* [
|
|
63
|
+
* {"name":"foo","type":"file"},
|
|
64
|
+
* {"name":"bar","type":"directory"}
|
|
65
|
+
* ]
|
|
66
|
+
*
|
|
67
|
+
* For file requests, the `Content-Type` will be `application/octet-stream`, while for
|
|
68
|
+
* directory listings, it will be `application/json`. Files will have a `Content-Length`
|
|
69
|
+
* header, while directories will not.
|
|
70
|
+
*
|
|
71
|
+
* HEAD requests are optimized to perform a stat() without actually opening the file.
|
|
72
|
+
*
|
|
73
|
+
* Example Request for fetching an index.html file:
|
|
74
|
+
* GET http://./index.html
|
|
75
|
+
*
|
|
76
|
+
* Example Response:
|
|
77
|
+
* HTTP/1.1 200 OK
|
|
78
|
+
* Content-Type: application/octet-stream
|
|
79
|
+
* Content-Length: 12345
|
|
80
|
+
*
|
|
81
|
+
* <html>
|
|
82
|
+
* ...
|
|
83
|
+
* </html>
|
|
84
|
+
*
|
|
85
|
+
* @type {Fetcher}
|
|
86
|
+
*/
|
|
87
|
+
assets: Fetcher;
|
|
88
|
+
/**
|
|
89
|
+
* HTTP Proxy fetcher for secure requests with TLS configuration and dynamic header injection.
|
|
90
|
+
* Requests are proxied through the runtime which handles certificate validation, mTLS, and
|
|
91
|
+
* template variable substitution.
|
|
92
|
+
*
|
|
93
|
+
* Service Types:
|
|
94
|
+
* - "plugin:name" - System-level services (shared across all vertices)
|
|
95
|
+
* - "user:name" - Vertex-level services (per-user configuration)
|
|
96
|
+
*
|
|
97
|
+
* Required Headers:
|
|
98
|
+
* - X-Mochabug-Adapt-Plugin-HttpProxy-Token: Bearer token
|
|
99
|
+
* - X-Mochabug-Adapt-Plugin-HttpProxy-Path: "plugin:name" or "user:name"
|
|
100
|
+
* - Host: Target host (auto-set by helper methods)
|
|
101
|
+
*
|
|
102
|
+
* TLS Modes (from service definition):
|
|
103
|
+
* - MODE_SERVER_ONLY: Validates server cert against CA bundle
|
|
104
|
+
* - MODE_MTLS: Mutual auth requiring client cert + private key
|
|
105
|
+
*
|
|
106
|
+
* Header Injection:
|
|
107
|
+
* - Template syntax: "Bearer %ACCESS_TOKEN%" (Envoy-style)
|
|
108
|
+
* - Variables resolved from runtime configuration
|
|
109
|
+
* - Injected headers override caller's headers
|
|
110
|
+
*
|
|
111
|
+
* Error Codes:
|
|
112
|
+
* - 400: Invalid header format
|
|
113
|
+
* - 401: Invalid token or no permission
|
|
114
|
+
* - 412: Service not configured or unavailable
|
|
115
|
+
*
|
|
116
|
+
* Usage (prefer helper methods):
|
|
117
|
+
* ```typescript
|
|
118
|
+
* const fetch = api.userHttpProxy("stripe_api");
|
|
119
|
+
* const res = await fetch("https://api.stripe.com/v1/charges");
|
|
120
|
+
* ```
|
|
121
|
+
*
|
|
122
|
+
* @type {Fetcher}
|
|
123
|
+
*/
|
|
124
|
+
httpproxy: Fetcher;
|
|
125
|
+
/**
|
|
126
|
+
* See the runtime.proto/PluginService for a complete reference
|
|
127
|
+
*/
|
|
128
|
+
plugin: Fetcher;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* The environment available to a executor of a plugin vertex
|
|
132
|
+
* See the runtime.proto/ExecutorService for a complete reference
|
|
133
|
+
*
|
|
134
|
+
* @interface ExecutorEnvironment
|
|
135
|
+
*/
|
|
136
|
+
export interface ExecutorEnvironment extends Environment {
|
|
137
|
+
executor: Fetcher;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* The environment available to a configurator of a plugin vertex
|
|
141
|
+
* See the runtime.proto/ConfiguratorService for a complete reference
|
|
142
|
+
*
|
|
143
|
+
* @interface ConfiguratorEnvironment
|
|
144
|
+
* @property {Fetcher} configurator - the configurator API
|
|
145
|
+
*/
|
|
146
|
+
export interface ConfiguratorEnvironment extends Environment {
|
|
147
|
+
configurator: Fetcher;
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACvC,sBAAsB,IAAI,IAAI,CAAC;IAC/B,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,QAAQ,IAAI,cAAc,CAAC;IAC/B,IAAI,QAAQ,IAAI,cAAc,CAAC;IAC/B,IAAI,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAClC,IAAI,QAAQ,IAAI,OAAO,CAAC;IACxB,IAAI,eAAe,IAAI,IAAI,GAAG,KAAK,GAAG,UAAU,CAAC;IACjD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;CACxC;AAED,MAAM,WAAW,UAAU;IACzB,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B,eAAe,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,UAAU,CAAC;IAC5C,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACtB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5E,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC;CAC3E;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,uBAAwB,SAAQ,WAAW;IAC1D,YAAY,EAAE,OAAO,CAAC;CACvB"}
|
package/package.json
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mochabug/adapt-sdk",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "The API toolkit to facilitate mochabug adapt plugin development",
|
|
5
|
+
"publishConfig": {
|
|
6
|
+
"access": "public"
|
|
7
|
+
},
|
|
8
|
+
"files": [
|
|
9
|
+
"dist"
|
|
10
|
+
],
|
|
11
|
+
"exports": {
|
|
12
|
+
"./api": {
|
|
13
|
+
"types": "./dist/api.d.ts",
|
|
14
|
+
"import": "./dist/esm/api.mjs",
|
|
15
|
+
"require": "./dist/cjs/api.cjs"
|
|
16
|
+
},
|
|
17
|
+
"./router": {
|
|
18
|
+
"types": "./dist/router.d.ts",
|
|
19
|
+
"import": "./dist/esm/router.mjs",
|
|
20
|
+
"require": "./dist/cjs/router.cjs"
|
|
21
|
+
},
|
|
22
|
+
"./mime": {
|
|
23
|
+
"types": "./dist/mime.d.ts",
|
|
24
|
+
"import": "./dist/esm/mime.mjs",
|
|
25
|
+
"require": "./dist/cjs/mime.cjs"
|
|
26
|
+
},
|
|
27
|
+
"./frontend": {
|
|
28
|
+
"types": "./dist/frontend.d.ts",
|
|
29
|
+
"import": "./dist/esm/frontend.mjs",
|
|
30
|
+
"require": "./dist/cjs/frontend.cjs"
|
|
31
|
+
},
|
|
32
|
+
"./types": {
|
|
33
|
+
"types": "./dist/types.d.ts",
|
|
34
|
+
"import": "./dist/esm/types.mjs",
|
|
35
|
+
"require": "./dist/cjs/types.cjs"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"scripts": {
|
|
39
|
+
"generate": "rm -rf src/genproto && buf generate --include-imports",
|
|
40
|
+
"build": "npm run generate && tsc --noEmit && npm run test && node build.mjs && tsc --emitDeclarationOnly",
|
|
41
|
+
"test": "jest"
|
|
42
|
+
},
|
|
43
|
+
"repository": {
|
|
44
|
+
"type": "git",
|
|
45
|
+
"url": "git+https://github.com/mochabug/adapt-plugin-toolkit.git"
|
|
46
|
+
},
|
|
47
|
+
"bugs": {
|
|
48
|
+
"url": "https://github.com/mochabug/adapt-plugin-toolkit/issues"
|
|
49
|
+
},
|
|
50
|
+
"homepage": "https://github.com/mochabug/adapt-plugin-toolkit#readme",
|
|
51
|
+
"author": "Mikael Hedberg",
|
|
52
|
+
"license": "Apache-2.0",
|
|
53
|
+
"keywords": [
|
|
54
|
+
"plugin",
|
|
55
|
+
"mochabug",
|
|
56
|
+
"adapt",
|
|
57
|
+
"intelligent automation",
|
|
58
|
+
"automation",
|
|
59
|
+
"artificial intelligence"
|
|
60
|
+
],
|
|
61
|
+
"devDependencies": {
|
|
62
|
+
"@babel/core": "^7.28.5",
|
|
63
|
+
"@babel/preset-env": "^7.28.5",
|
|
64
|
+
"@babel/preset-typescript": "^7.28.5",
|
|
65
|
+
"@jest/globals": "^30.2.0",
|
|
66
|
+
"@types/jest": "^30.0.0",
|
|
67
|
+
"@types/mime-types": "^3.0.1",
|
|
68
|
+
"babel-jest": "^30.2.0",
|
|
69
|
+
"esbuild": "^0.27.0",
|
|
70
|
+
"jest": "^30.2.0",
|
|
71
|
+
"mime-db": "^1.54.0",
|
|
72
|
+
"ts-node": "^10.9.2",
|
|
73
|
+
"typescript": "^5.9.3"
|
|
74
|
+
},
|
|
75
|
+
"dependencies": {
|
|
76
|
+
"path-to-regexp": "^8.3.0",
|
|
77
|
+
"@bufbuild/protobuf": "^2.10.1",
|
|
78
|
+
"@connectrpc/connect": "^2.1.1"
|
|
79
|
+
}
|
|
80
|
+
}
|