@s2-dev/streamstore 0.3.17 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +53 -1
- package/bin/mcp-server.js +43469 -0
- package/bin/mcp-server.js.map +358 -0
- package/funcs/accountCreateBasin.d.ts +2 -1
- package/funcs/accountCreateBasin.d.ts.map +1 -1
- package/funcs/accountCreateBasin.js +11 -6
- package/funcs/accountCreateBasin.js.map +1 -1
- package/funcs/accountDeleteBasin.d.ts +2 -1
- package/funcs/accountDeleteBasin.d.ts.map +1 -1
- package/funcs/accountDeleteBasin.js +11 -6
- package/funcs/accountDeleteBasin.js.map +1 -1
- package/funcs/accountGetBasinConfig.d.ts +2 -1
- package/funcs/accountGetBasinConfig.d.ts.map +1 -1
- package/funcs/accountGetBasinConfig.js +11 -6
- package/funcs/accountGetBasinConfig.js.map +1 -1
- package/funcs/accountListBasins.d.ts +2 -1
- package/funcs/accountListBasins.d.ts.map +1 -1
- package/funcs/accountListBasins.js +22 -12
- package/funcs/accountListBasins.js.map +1 -1
- package/funcs/accountReconfigureBasin.d.ts +2 -1
- package/funcs/accountReconfigureBasin.d.ts.map +1 -1
- package/funcs/accountReconfigureBasin.js +11 -6
- package/funcs/accountReconfigureBasin.js.map +1 -1
- package/funcs/basinCreateStream.d.ts +2 -1
- package/funcs/basinCreateStream.d.ts.map +1 -1
- package/funcs/basinCreateStream.js +11 -6
- package/funcs/basinCreateStream.js.map +1 -1
- package/funcs/basinDeleteStream.d.ts +2 -1
- package/funcs/basinDeleteStream.d.ts.map +1 -1
- package/funcs/basinDeleteStream.js +11 -6
- package/funcs/basinDeleteStream.js.map +1 -1
- package/funcs/basinGetStreamConfig.d.ts +2 -1
- package/funcs/basinGetStreamConfig.d.ts.map +1 -1
- package/funcs/basinGetStreamConfig.js +11 -6
- package/funcs/basinGetStreamConfig.js.map +1 -1
- package/funcs/basinListStreams.d.ts +2 -1
- package/funcs/basinListStreams.d.ts.map +1 -1
- package/funcs/basinListStreams.js +22 -12
- package/funcs/basinListStreams.js.map +1 -1
- package/funcs/basinReconfigureStream.d.ts +2 -1
- package/funcs/basinReconfigureStream.d.ts.map +1 -1
- package/funcs/basinReconfigureStream.js +11 -6
- package/funcs/basinReconfigureStream.js.map +1 -1
- package/funcs/streamAppend.d.ts +2 -1
- package/funcs/streamAppend.d.ts.map +1 -1
- package/funcs/streamAppend.js +11 -6
- package/funcs/streamAppend.js.map +1 -1
- package/funcs/streamCheckTail.d.ts +2 -1
- package/funcs/streamCheckTail.d.ts.map +1 -1
- package/funcs/streamCheckTail.js +11 -6
- package/funcs/streamCheckTail.js.map +1 -1
- package/funcs/streamRead.d.ts +2 -1
- package/funcs/streamRead.d.ts.map +1 -1
- package/funcs/streamRead.js +11 -6
- package/funcs/streamRead.js.map +1 -1
- package/hooks/types.d.ts +1 -0
- package/hooks/types.d.ts.map +1 -1
- package/jsr.json +1 -1
- package/lib/config.d.ts +6 -6
- package/lib/config.d.ts.map +1 -1
- package/lib/config.js +3 -3
- package/lib/config.js.map +1 -1
- package/lib/files.js.map +1 -1
- package/lib/primitives.d.ts +3 -0
- package/lib/primitives.d.ts.map +1 -1
- package/lib/primitives.js +7 -0
- package/lib/primitives.js.map +1 -1
- package/lib/sdks.d.ts +1 -1
- package/lib/sdks.d.ts.map +1 -1
- package/lib/security.d.ts.map +1 -1
- package/lib/security.js.map +1 -1
- package/mcp-server/build.d.mts.map +1 -0
- package/mcp-server/build.mjs +14 -0
- package/mcp-server/build.mjs.map +1 -0
- package/mcp-server/cli/start/command.d.ts +2 -0
- package/mcp-server/cli/start/command.d.ts.map +1 -0
- package/mcp-server/cli/start/command.js +129 -0
- package/mcp-server/cli/start/command.js.map +1 -0
- package/mcp-server/cli/start/impl.d.ts +17 -0
- package/mcp-server/cli/start/impl.d.ts.map +1 -0
- package/mcp-server/cli/start/impl.js +102 -0
- package/mcp-server/cli/start/impl.js.map +1 -0
- package/mcp-server/cli.d.ts +6 -0
- package/mcp-server/cli.d.ts.map +1 -0
- package/mcp-server/cli.js +10 -0
- package/mcp-server/cli.js.map +1 -0
- package/mcp-server/console-logger.d.ts +7 -0
- package/mcp-server/console-logger.d.ts.map +1 -0
- package/mcp-server/console-logger.js +59 -0
- package/mcp-server/console-logger.js.map +1 -0
- package/mcp-server/mcp-server.d.ts +2 -0
- package/mcp-server/mcp-server.d.ts.map +1 -0
- package/mcp-server/mcp-server.js +29 -0
- package/mcp-server/mcp-server.js.map +1 -0
- package/mcp-server/resources.d.ts +27 -0
- package/mcp-server/resources.d.ts.map +1 -0
- package/mcp-server/resources.js +51 -0
- package/mcp-server/resources.js.map +1 -0
- package/mcp-server/scopes.d.ts +3 -0
- package/mcp-server/scopes.d.ts.map +1 -0
- package/mcp-server/scopes.js +11 -0
- package/mcp-server/scopes.js.map +1 -0
- package/mcp-server/server.d.ts +12 -0
- package/mcp-server/server.d.ts.map +1 -0
- package/mcp-server/server.js +51 -0
- package/mcp-server/server.js.map +1 -0
- package/mcp-server/shared.d.ts +7 -0
- package/mcp-server/shared.d.ts.map +1 -0
- package/mcp-server/shared.js +98 -0
- package/mcp-server/shared.js.map +1 -0
- package/mcp-server/tools/accountCreateBasin.d.ts +8 -0
- package/mcp-server/tools/accountCreateBasin.d.ts.map +1 -0
- package/mcp-server/tools/accountCreateBasin.js +63 -0
- package/mcp-server/tools/accountCreateBasin.js.map +1 -0
- package/mcp-server/tools/accountDeleteBasin.d.ts +8 -0
- package/mcp-server/tools/accountDeleteBasin.d.ts.map +1 -0
- package/mcp-server/tools/accountDeleteBasin.js +62 -0
- package/mcp-server/tools/accountDeleteBasin.js.map +1 -0
- package/mcp-server/tools/accountGetBasinConfig.d.ts +8 -0
- package/mcp-server/tools/accountGetBasinConfig.d.ts.map +1 -0
- package/mcp-server/tools/accountGetBasinConfig.js +63 -0
- package/mcp-server/tools/accountGetBasinConfig.js.map +1 -0
- package/mcp-server/tools/accountListBasins.d.ts +8 -0
- package/mcp-server/tools/accountListBasins.d.ts.map +1 -0
- package/mcp-server/tools/accountListBasins.js +63 -0
- package/mcp-server/tools/accountListBasins.js.map +1 -0
- package/mcp-server/tools/accountReconfigureBasin.d.ts +8 -0
- package/mcp-server/tools/accountReconfigureBasin.d.ts.map +1 -0
- package/mcp-server/tools/accountReconfigureBasin.js +63 -0
- package/mcp-server/tools/accountReconfigureBasin.js.map +1 -0
- package/mcp-server/tools/basinCreateStream.d.ts +8 -0
- package/mcp-server/tools/basinCreateStream.d.ts.map +1 -0
- package/mcp-server/tools/basinCreateStream.js +63 -0
- package/mcp-server/tools/basinCreateStream.js.map +1 -0
- package/mcp-server/tools/basinDeleteStream.d.ts +8 -0
- package/mcp-server/tools/basinDeleteStream.d.ts.map +1 -0
- package/mcp-server/tools/basinDeleteStream.js +62 -0
- package/mcp-server/tools/basinDeleteStream.js.map +1 -0
- package/mcp-server/tools/basinGetStreamConfig.d.ts +8 -0
- package/mcp-server/tools/basinGetStreamConfig.d.ts.map +1 -0
- package/mcp-server/tools/basinGetStreamConfig.js +63 -0
- package/mcp-server/tools/basinGetStreamConfig.js.map +1 -0
- package/mcp-server/tools/basinListStreams.d.ts +8 -0
- package/mcp-server/tools/basinListStreams.d.ts.map +1 -0
- package/mcp-server/tools/basinListStreams.js +63 -0
- package/mcp-server/tools/basinListStreams.js.map +1 -0
- package/mcp-server/tools/basinReconfigureStream.d.ts +8 -0
- package/mcp-server/tools/basinReconfigureStream.d.ts.map +1 -0
- package/mcp-server/tools/basinReconfigureStream.js +63 -0
- package/mcp-server/tools/basinReconfigureStream.js.map +1 -0
- package/mcp-server/tools/streamAppend.d.ts +8 -0
- package/mcp-server/tools/streamAppend.d.ts.map +1 -0
- package/mcp-server/tools/streamAppend.js +65 -0
- package/mcp-server/tools/streamAppend.js.map +1 -0
- package/mcp-server/tools/streamCheckTail.d.ts +8 -0
- package/mcp-server/tools/streamCheckTail.d.ts.map +1 -0
- package/mcp-server/tools/streamCheckTail.js +65 -0
- package/mcp-server/tools/streamCheckTail.js.map +1 -0
- package/mcp-server/tools/streamRead.d.ts +8 -0
- package/mcp-server/tools/streamRead.d.ts.map +1 -0
- package/mcp-server/tools/streamRead.js +65 -0
- package/mcp-server/tools/streamRead.js.map +1 -0
- package/mcp-server/tools.d.ts +25 -0
- package/mcp-server/tools.d.ts.map +1 -0
- package/mcp-server/tools.js +74 -0
- package/mcp-server/tools.js.map +1 -0
- package/models/components/endpoints.d.ts +67 -0
- package/models/components/endpoints.d.ts.map +1 -0
- package/models/components/endpoints.js +126 -0
- package/models/components/endpoints.js.map +1 -0
- package/package.json +17 -4
- package/src/funcs/accountCreateBasin.ts +38 -7
- package/src/funcs/accountDeleteBasin.ts +39 -7
- package/src/funcs/accountGetBasinConfig.ts +38 -7
- package/src/funcs/accountListBasins.ts +53 -10
- package/src/funcs/accountReconfigureBasin.ts +38 -7
- package/src/funcs/basinCreateStream.ts +38 -7
- package/src/funcs/basinDeleteStream.ts +39 -7
- package/src/funcs/basinGetStreamConfig.ts +38 -7
- package/src/funcs/basinListStreams.ts +53 -10
- package/src/funcs/basinReconfigureStream.ts +38 -7
- package/src/funcs/streamAppend.ts +38 -7
- package/src/funcs/streamCheckTail.ts +38 -7
- package/src/funcs/streamRead.ts +38 -7
- package/src/hooks/types.ts +1 -0
- package/src/lib/config.ts +6 -7
- package/src/lib/files.ts +1 -1
- package/src/lib/primitives.ts +14 -0
- package/src/lib/sdks.ts +1 -1
- package/src/lib/security.ts +0 -1
- package/src/mcp-server/cli/start/command.ts +98 -0
- package/src/mcp-server/cli/start/impl.ts +131 -0
- package/src/mcp-server/cli.ts +13 -0
- package/src/mcp-server/console-logger.ts +71 -0
- package/src/mcp-server/mcp-server.ts +26 -0
- package/src/mcp-server/resources.ts +96 -0
- package/src/mcp-server/scopes.ts +10 -0
- package/src/mcp-server/server.ts +60 -0
- package/src/mcp-server/shared.ts +75 -0
- package/src/mcp-server/tools/accountCreateBasin.ts +36 -0
- package/src/mcp-server/tools/accountDeleteBasin.ts +34 -0
- package/src/mcp-server/tools/accountGetBasinConfig.ts +36 -0
- package/src/mcp-server/tools/accountListBasins.ts +36 -0
- package/src/mcp-server/tools/accountReconfigureBasin.ts +36 -0
- package/src/mcp-server/tools/basinCreateStream.ts +36 -0
- package/src/mcp-server/tools/basinDeleteStream.ts +34 -0
- package/src/mcp-server/tools/basinGetStreamConfig.ts +36 -0
- package/src/mcp-server/tools/basinListStreams.ts +36 -0
- package/src/mcp-server/tools/basinReconfigureStream.ts +36 -0
- package/src/mcp-server/tools/streamAppend.ts +38 -0
- package/src/mcp-server/tools/streamCheckTail.ts +38 -0
- package/src/mcp-server/tools/streamRead.ts +38 -0
- package/src/mcp-server/tools.ts +116 -0
- package/src/models/components/endpoints.ts +159 -0
- package/src/types/async.ts +68 -0
- package/types/async.d.ts +23 -0
- package/types/async.d.ts.map +1 -0
- package/types/async.js +44 -0
- package/types/async.js.map +1 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ClientKind = exports.S2Endpoints = exports.BasinEndpointKind = exports.S2Cloud = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* S2 cloud environment to connect with.
|
|
6
|
+
*/
|
|
7
|
+
var S2Cloud;
|
|
8
|
+
(function (S2Cloud) {
|
|
9
|
+
/** S2 running on AWS */
|
|
10
|
+
S2Cloud["Aws"] = "aws";
|
|
11
|
+
})(S2Cloud || (exports.S2Cloud = S2Cloud = {}));
|
|
12
|
+
/**
|
|
13
|
+
* Endpoint for connecting to an S2 basin.
|
|
14
|
+
*/
|
|
15
|
+
var BasinEndpointKind;
|
|
16
|
+
(function (BasinEndpointKind) {
|
|
17
|
+
BasinEndpointKind["ParentZone"] = "ParentZone";
|
|
18
|
+
BasinEndpointKind["Direct"] = "Direct";
|
|
19
|
+
})(BasinEndpointKind || (exports.BasinEndpointKind = BasinEndpointKind = {}));
|
|
20
|
+
class S2EndpointError extends Error {
|
|
21
|
+
constructor(message) {
|
|
22
|
+
super(message);
|
|
23
|
+
this.name = 'S2EndpointError';
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Endpoints for the S2 environment.
|
|
28
|
+
*
|
|
29
|
+
* You can find the S2 endpoints in our [documentation](https://s2.dev/docs/interface/endpoints)
|
|
30
|
+
*/
|
|
31
|
+
class S2Endpoints {
|
|
32
|
+
constructor(account, basin) {
|
|
33
|
+
this.account = account;
|
|
34
|
+
this.basin = basin;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Get S2 endpoints for the specified cloud.
|
|
38
|
+
*/
|
|
39
|
+
static forCloud(cloud) {
|
|
40
|
+
const authority = `${cloud}.s2.dev`;
|
|
41
|
+
return new S2Endpoints(authority, {
|
|
42
|
+
kind: BasinEndpointKind.ParentZone,
|
|
43
|
+
authority: `b.${cloud}.s2.dev`
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Get S2 endpoints for the specified cell.
|
|
48
|
+
*/
|
|
49
|
+
static forCell(cloud, cellId) {
|
|
50
|
+
const cellEndpoint = `${cellId}.o.${cloud}.s2.dev`;
|
|
51
|
+
return new S2Endpoints(cellEndpoint, {
|
|
52
|
+
kind: BasinEndpointKind.Direct,
|
|
53
|
+
authority: cellEndpoint
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Get S2 endpoints from environment variables.
|
|
58
|
+
*
|
|
59
|
+
* The following environment variables are used:
|
|
60
|
+
* - `S2_CLOUD`: Valid S2 cloud name. Defaults to AWS.
|
|
61
|
+
* - `S2_ACCOUNT_ENDPOINT`: Overrides the account endpoint.
|
|
62
|
+
* - `S2_BASIN_ENDPOINT`: Overrides the basin endpoint. The prefix `"{basin}."` indicates the
|
|
63
|
+
* basin endpoint is `ParentZone` else `Direct`.
|
|
64
|
+
*/
|
|
65
|
+
static fromEnv() {
|
|
66
|
+
let cloud;
|
|
67
|
+
try {
|
|
68
|
+
const cloudEnv = process.env['S2_CLOUD'] || S2Cloud.Aws;
|
|
69
|
+
if (Object.values(S2Cloud).includes(cloudEnv)) {
|
|
70
|
+
cloud = cloudEnv;
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
throw new S2EndpointError(`Invalid S2_CLOUD: ${cloudEnv}`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
const error = err;
|
|
78
|
+
throw new S2EndpointError(`Invalid S2_CLOUD: ${error.message}`);
|
|
79
|
+
}
|
|
80
|
+
const endpoints = S2Endpoints.forCloud(cloud);
|
|
81
|
+
const accountEndpoint = process.env['S2_ACCOUNT_ENDPOINT'];
|
|
82
|
+
if (accountEndpoint !== undefined) {
|
|
83
|
+
if (typeof accountEndpoint !== 'string') {
|
|
84
|
+
throw new S2EndpointError('Invalid S2_ACCOUNT_ENDPOINT: not string');
|
|
85
|
+
}
|
|
86
|
+
endpoints.account = accountEndpoint;
|
|
87
|
+
}
|
|
88
|
+
const basinEndpoint = process.env['S2_BASIN_ENDPOINT'];
|
|
89
|
+
if (basinEndpoint !== undefined) {
|
|
90
|
+
if (typeof basinEndpoint !== 'string') {
|
|
91
|
+
throw new S2EndpointError('Invalid S2_BASIN_ENDPOINT: not string');
|
|
92
|
+
}
|
|
93
|
+
if (basinEndpoint.startsWith('{basin}.')) {
|
|
94
|
+
const parentZone = basinEndpoint.substring(7);
|
|
95
|
+
endpoints.basin = {
|
|
96
|
+
kind: BasinEndpointKind.ParentZone,
|
|
97
|
+
authority: parentZone
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
endpoints.basin = {
|
|
102
|
+
kind: BasinEndpointKind.Direct,
|
|
103
|
+
authority: basinEndpoint
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return endpoints;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
exports.S2Endpoints = S2Endpoints;
|
|
111
|
+
exports.ClientKind = {
|
|
112
|
+
toAuthority(kind, endpoints) {
|
|
113
|
+
switch (kind.kind) {
|
|
114
|
+
case 'Account':
|
|
115
|
+
return endpoints.account;
|
|
116
|
+
case 'Basin':
|
|
117
|
+
switch (endpoints.basin.kind) {
|
|
118
|
+
case BasinEndpointKind.ParentZone:
|
|
119
|
+
return `${kind.basin}.${endpoints.basin.authority}`;
|
|
120
|
+
case BasinEndpointKind.Direct:
|
|
121
|
+
return endpoints.basin.authority;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
//# sourceMappingURL=endpoints.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../../src/models/components/endpoints.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@s2-dev/streamstore",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"author": "Speakeasy",
|
|
5
|
+
"bin": {
|
|
6
|
+
"mcp": "bin/mcp-server.js"
|
|
7
|
+
},
|
|
5
8
|
"main": "./index.js",
|
|
6
9
|
"sideEffects": false,
|
|
7
10
|
"repository": {
|
|
@@ -10,25 +13,35 @@
|
|
|
10
13
|
},
|
|
11
14
|
"scripts": {
|
|
12
15
|
"lint": "eslint --cache --max-warnings=0 src",
|
|
13
|
-
"build": "
|
|
16
|
+
"build:mcp": "bun src/mcp-server/build.mts",
|
|
17
|
+
"build": "npm run build:mcp && tsc",
|
|
14
18
|
"prepublishOnly": "npm run build"
|
|
15
19
|
},
|
|
16
20
|
"peerDependencies": {
|
|
21
|
+
"@modelcontextprotocol/sdk": "^1.5.0",
|
|
17
22
|
"zod": ">= 3"
|
|
18
23
|
},
|
|
24
|
+
"peerDependenciesMeta": {
|
|
25
|
+
"@modelcontextprotocol/sdk": {"optional":true}
|
|
26
|
+
},
|
|
19
27
|
"devDependencies": {
|
|
20
28
|
"@eslint/js": "^9.19.0",
|
|
21
|
-
"@
|
|
29
|
+
"@modelcontextprotocol/sdk": "^1.5.0",
|
|
30
|
+
"@stricli/core": "^1.1.1",
|
|
31
|
+
"@types/express": "^4.17.21",
|
|
22
32
|
"@types/node": "^22.13.1",
|
|
23
33
|
"@types/uuid": "^9.0.8",
|
|
34
|
+
"bun": "^1.2.2",
|
|
35
|
+
"bun-types": "^1.2.2",
|
|
24
36
|
"eslint": "^9.19.0",
|
|
37
|
+
"express": "^4.21.2",
|
|
25
38
|
"globals": "^15.14.0",
|
|
26
39
|
"typescript": "^5.4.5",
|
|
27
40
|
"typescript-eslint": "^8.22.0",
|
|
28
41
|
"zod": "^3.23.4"
|
|
29
42
|
},
|
|
30
43
|
"dependencies": {
|
|
31
|
-
"jsonpath": "
|
|
44
|
+
"jsonpath-rfc9535": "1.1.0",
|
|
32
45
|
"uuid": "^9.0.1"
|
|
33
46
|
}
|
|
34
47
|
}
|
|
@@ -22,16 +22,17 @@ import {
|
|
|
22
22
|
import * as errors from "../models/errors/index.js";
|
|
23
23
|
import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
|
|
24
24
|
import * as operations from "../models/operations/index.js";
|
|
25
|
+
import { APICall, APIPromise } from "../types/async.js";
|
|
25
26
|
import { Result } from "../types/fp.js";
|
|
26
27
|
|
|
27
28
|
/**
|
|
28
29
|
* Create a new basin.
|
|
29
30
|
*/
|
|
30
|
-
export
|
|
31
|
+
export function accountCreateBasin(
|
|
31
32
|
client: S2Core,
|
|
32
33
|
request: operations.CreateBasinRequest,
|
|
33
34
|
options?: RequestOptions,
|
|
34
|
-
):
|
|
35
|
+
): APIPromise<
|
|
35
36
|
Result<
|
|
36
37
|
components.BasinInfo,
|
|
37
38
|
| errors.ErrorResponse
|
|
@@ -45,6 +46,35 @@ export async function accountCreateBasin(
|
|
|
45
46
|
| RequestTimeoutError
|
|
46
47
|
| ConnectionError
|
|
47
48
|
>
|
|
49
|
+
> {
|
|
50
|
+
return new APIPromise($do(
|
|
51
|
+
client,
|
|
52
|
+
request,
|
|
53
|
+
options,
|
|
54
|
+
));
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
async function $do(
|
|
58
|
+
client: S2Core,
|
|
59
|
+
request: operations.CreateBasinRequest,
|
|
60
|
+
options?: RequestOptions,
|
|
61
|
+
): Promise<
|
|
62
|
+
[
|
|
63
|
+
Result<
|
|
64
|
+
components.BasinInfo,
|
|
65
|
+
| errors.ErrorResponse
|
|
66
|
+
| errors.RetryableError
|
|
67
|
+
| errors.RetryableError
|
|
68
|
+
| APIError
|
|
69
|
+
| SDKValidationError
|
|
70
|
+
| UnexpectedClientError
|
|
71
|
+
| InvalidRequestError
|
|
72
|
+
| RequestAbortedError
|
|
73
|
+
| RequestTimeoutError
|
|
74
|
+
| ConnectionError
|
|
75
|
+
>,
|
|
76
|
+
APICall,
|
|
77
|
+
]
|
|
48
78
|
> {
|
|
49
79
|
const parsed = safeParse(
|
|
50
80
|
request,
|
|
@@ -52,7 +82,7 @@ export async function accountCreateBasin(
|
|
|
52
82
|
"Input validation failed",
|
|
53
83
|
);
|
|
54
84
|
if (!parsed.ok) {
|
|
55
|
-
return parsed;
|
|
85
|
+
return [parsed, { status: "invalid" }];
|
|
56
86
|
}
|
|
57
87
|
const payload = parsed.value;
|
|
58
88
|
const body = encodeJSON("body", payload.CreateBasinRequest, {
|
|
@@ -83,6 +113,7 @@ export async function accountCreateBasin(
|
|
|
83
113
|
const requestSecurity = resolveGlobalSecurity(securityInput);
|
|
84
114
|
|
|
85
115
|
const context = {
|
|
116
|
+
baseURL: options?.serverURL ?? client._baseURL ?? "",
|
|
86
117
|
operationID: "create_basin",
|
|
87
118
|
oAuth2Scopes: [],
|
|
88
119
|
|
|
@@ -105,7 +136,7 @@ export async function accountCreateBasin(
|
|
|
105
136
|
timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
|
|
106
137
|
}, options);
|
|
107
138
|
if (!requestRes.ok) {
|
|
108
|
-
return requestRes;
|
|
139
|
+
return [requestRes, { status: "invalid" }];
|
|
109
140
|
}
|
|
110
141
|
const req = requestRes.value;
|
|
111
142
|
|
|
@@ -116,7 +147,7 @@ export async function accountCreateBasin(
|
|
|
116
147
|
retryCodes: context.retryCodes,
|
|
117
148
|
});
|
|
118
149
|
if (!doResult.ok) {
|
|
119
|
-
return doResult;
|
|
150
|
+
return [doResult, { status: "request-error", request: req }];
|
|
120
151
|
}
|
|
121
152
|
const response = doResult.value;
|
|
122
153
|
|
|
@@ -145,8 +176,8 @@ export async function accountCreateBasin(
|
|
|
145
176
|
M.fail("5XX"),
|
|
146
177
|
)(response, { extraFields: responseFields });
|
|
147
178
|
if (!result.ok) {
|
|
148
|
-
return result;
|
|
179
|
+
return [result, { status: "complete", request: req, response }];
|
|
149
180
|
}
|
|
150
181
|
|
|
151
|
-
return result;
|
|
182
|
+
return [result, { status: "complete", request: req, response }];
|
|
152
183
|
}
|
|
@@ -22,16 +22,17 @@ import {
|
|
|
22
22
|
import * as errors from "../models/errors/index.js";
|
|
23
23
|
import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
|
|
24
24
|
import * as operations from "../models/operations/index.js";
|
|
25
|
+
import { APICall, APIPromise } from "../types/async.js";
|
|
25
26
|
import { Result } from "../types/fp.js";
|
|
26
27
|
|
|
27
28
|
/**
|
|
28
29
|
* Delete a basin.
|
|
29
30
|
*/
|
|
30
|
-
export
|
|
31
|
+
export function accountDeleteBasin(
|
|
31
32
|
client: S2Core,
|
|
32
33
|
request: operations.DeleteBasinRequest,
|
|
33
34
|
options?: RequestOptions,
|
|
34
|
-
):
|
|
35
|
+
): APIPromise<
|
|
35
36
|
Result<
|
|
36
37
|
void,
|
|
37
38
|
| errors.ErrorResponse
|
|
@@ -46,6 +47,36 @@ export async function accountDeleteBasin(
|
|
|
46
47
|
| RequestTimeoutError
|
|
47
48
|
| ConnectionError
|
|
48
49
|
>
|
|
50
|
+
> {
|
|
51
|
+
return new APIPromise($do(
|
|
52
|
+
client,
|
|
53
|
+
request,
|
|
54
|
+
options,
|
|
55
|
+
));
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
async function $do(
|
|
59
|
+
client: S2Core,
|
|
60
|
+
request: operations.DeleteBasinRequest,
|
|
61
|
+
options?: RequestOptions,
|
|
62
|
+
): Promise<
|
|
63
|
+
[
|
|
64
|
+
Result<
|
|
65
|
+
void,
|
|
66
|
+
| errors.ErrorResponse
|
|
67
|
+
| errors.NotFoundError
|
|
68
|
+
| errors.RetryableError
|
|
69
|
+
| errors.RetryableError
|
|
70
|
+
| APIError
|
|
71
|
+
| SDKValidationError
|
|
72
|
+
| UnexpectedClientError
|
|
73
|
+
| InvalidRequestError
|
|
74
|
+
| RequestAbortedError
|
|
75
|
+
| RequestTimeoutError
|
|
76
|
+
| ConnectionError
|
|
77
|
+
>,
|
|
78
|
+
APICall,
|
|
79
|
+
]
|
|
49
80
|
> {
|
|
50
81
|
const parsed = safeParse(
|
|
51
82
|
request,
|
|
@@ -53,7 +84,7 @@ export async function accountDeleteBasin(
|
|
|
53
84
|
"Input validation failed",
|
|
54
85
|
);
|
|
55
86
|
if (!parsed.ok) {
|
|
56
|
-
return parsed;
|
|
87
|
+
return [parsed, { status: "invalid" }];
|
|
57
88
|
}
|
|
58
89
|
const payload = parsed.value;
|
|
59
90
|
const body = null;
|
|
@@ -76,6 +107,7 @@ export async function accountDeleteBasin(
|
|
|
76
107
|
const requestSecurity = resolveGlobalSecurity(securityInput);
|
|
77
108
|
|
|
78
109
|
const context = {
|
|
110
|
+
baseURL: options?.serverURL ?? client._baseURL ?? "",
|
|
79
111
|
operationID: "delete_basin",
|
|
80
112
|
oAuth2Scopes: [],
|
|
81
113
|
|
|
@@ -98,7 +130,7 @@ export async function accountDeleteBasin(
|
|
|
98
130
|
timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
|
|
99
131
|
}, options);
|
|
100
132
|
if (!requestRes.ok) {
|
|
101
|
-
return requestRes;
|
|
133
|
+
return [requestRes, { status: "invalid" }];
|
|
102
134
|
}
|
|
103
135
|
const req = requestRes.value;
|
|
104
136
|
|
|
@@ -109,7 +141,7 @@ export async function accountDeleteBasin(
|
|
|
109
141
|
retryCodes: context.retryCodes,
|
|
110
142
|
});
|
|
111
143
|
if (!doResult.ok) {
|
|
112
|
-
return doResult;
|
|
144
|
+
return [doResult, { status: "request-error", request: req }];
|
|
113
145
|
}
|
|
114
146
|
const response = doResult.value;
|
|
115
147
|
|
|
@@ -140,8 +172,8 @@ export async function accountDeleteBasin(
|
|
|
140
172
|
M.fail("5XX"),
|
|
141
173
|
)(response, { extraFields: responseFields });
|
|
142
174
|
if (!result.ok) {
|
|
143
|
-
return result;
|
|
175
|
+
return [result, { status: "complete", request: req, response }];
|
|
144
176
|
}
|
|
145
177
|
|
|
146
|
-
return result;
|
|
178
|
+
return [result, { status: "complete", request: req, response }];
|
|
147
179
|
}
|
|
@@ -22,16 +22,17 @@ import {
|
|
|
22
22
|
import * as errors from "../models/errors/index.js";
|
|
23
23
|
import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
|
|
24
24
|
import * as operations from "../models/operations/index.js";
|
|
25
|
+
import { APICall, APIPromise } from "../types/async.js";
|
|
25
26
|
import { Result } from "../types/fp.js";
|
|
26
27
|
|
|
27
28
|
/**
|
|
28
29
|
* Get basin configuration.
|
|
29
30
|
*/
|
|
30
|
-
export
|
|
31
|
+
export function accountGetBasinConfig(
|
|
31
32
|
client: S2Core,
|
|
32
33
|
request: operations.GetBasinConfigRequest,
|
|
33
34
|
options?: RequestOptions,
|
|
34
|
-
):
|
|
35
|
+
): APIPromise<
|
|
35
36
|
Result<
|
|
36
37
|
components.BasinConfig,
|
|
37
38
|
| errors.ErrorResponse
|
|
@@ -45,6 +46,35 @@ export async function accountGetBasinConfig(
|
|
|
45
46
|
| RequestTimeoutError
|
|
46
47
|
| ConnectionError
|
|
47
48
|
>
|
|
49
|
+
> {
|
|
50
|
+
return new APIPromise($do(
|
|
51
|
+
client,
|
|
52
|
+
request,
|
|
53
|
+
options,
|
|
54
|
+
));
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
async function $do(
|
|
58
|
+
client: S2Core,
|
|
59
|
+
request: operations.GetBasinConfigRequest,
|
|
60
|
+
options?: RequestOptions,
|
|
61
|
+
): Promise<
|
|
62
|
+
[
|
|
63
|
+
Result<
|
|
64
|
+
components.BasinConfig,
|
|
65
|
+
| errors.ErrorResponse
|
|
66
|
+
| errors.RetryableError
|
|
67
|
+
| errors.RetryableError
|
|
68
|
+
| APIError
|
|
69
|
+
| SDKValidationError
|
|
70
|
+
| UnexpectedClientError
|
|
71
|
+
| InvalidRequestError
|
|
72
|
+
| RequestAbortedError
|
|
73
|
+
| RequestTimeoutError
|
|
74
|
+
| ConnectionError
|
|
75
|
+
>,
|
|
76
|
+
APICall,
|
|
77
|
+
]
|
|
48
78
|
> {
|
|
49
79
|
const parsed = safeParse(
|
|
50
80
|
request,
|
|
@@ -52,7 +82,7 @@ export async function accountGetBasinConfig(
|
|
|
52
82
|
"Input validation failed",
|
|
53
83
|
);
|
|
54
84
|
if (!parsed.ok) {
|
|
55
|
-
return parsed;
|
|
85
|
+
return [parsed, { status: "invalid" }];
|
|
56
86
|
}
|
|
57
87
|
const payload = parsed.value;
|
|
58
88
|
const body = null;
|
|
@@ -75,6 +105,7 @@ export async function accountGetBasinConfig(
|
|
|
75
105
|
const requestSecurity = resolveGlobalSecurity(securityInput);
|
|
76
106
|
|
|
77
107
|
const context = {
|
|
108
|
+
baseURL: options?.serverURL ?? client._baseURL ?? "",
|
|
78
109
|
operationID: "get_basin_config",
|
|
79
110
|
oAuth2Scopes: [],
|
|
80
111
|
|
|
@@ -97,7 +128,7 @@ export async function accountGetBasinConfig(
|
|
|
97
128
|
timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
|
|
98
129
|
}, options);
|
|
99
130
|
if (!requestRes.ok) {
|
|
100
|
-
return requestRes;
|
|
131
|
+
return [requestRes, { status: "invalid" }];
|
|
101
132
|
}
|
|
102
133
|
const req = requestRes.value;
|
|
103
134
|
|
|
@@ -108,7 +139,7 @@ export async function accountGetBasinConfig(
|
|
|
108
139
|
retryCodes: context.retryCodes,
|
|
109
140
|
});
|
|
110
141
|
if (!doResult.ok) {
|
|
111
|
-
return doResult;
|
|
142
|
+
return [doResult, { status: "request-error", request: req }];
|
|
112
143
|
}
|
|
113
144
|
const response = doResult.value;
|
|
114
145
|
|
|
@@ -137,8 +168,8 @@ export async function accountGetBasinConfig(
|
|
|
137
168
|
M.fail("5XX"),
|
|
138
169
|
)(response, { extraFields: responseFields });
|
|
139
170
|
if (!result.ok) {
|
|
140
|
-
return result;
|
|
171
|
+
return [result, { status: "complete", request: req, response }];
|
|
141
172
|
}
|
|
142
173
|
|
|
143
|
-
return result;
|
|
174
|
+
return [result, { status: "complete", request: req, response }];
|
|
144
175
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
import
|
|
5
|
+
import { JsonValue, query as jpQuery } from "jsonpath-rfc9535";
|
|
6
6
|
import { S2Core } from "../core.js";
|
|
7
7
|
import { encodeFormQuery } from "../lib/encodings.js";
|
|
8
8
|
import * as M from "../lib/matchers.js";
|
|
@@ -22,6 +22,7 @@ import {
|
|
|
22
22
|
import * as errors from "../models/errors/index.js";
|
|
23
23
|
import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
|
|
24
24
|
import * as operations from "../models/operations/index.js";
|
|
25
|
+
import { APICall, APIPromise } from "../types/async.js";
|
|
25
26
|
import { Result } from "../types/fp.js";
|
|
26
27
|
import {
|
|
27
28
|
createPageIterator,
|
|
@@ -33,11 +34,11 @@ import {
|
|
|
33
34
|
/**
|
|
34
35
|
* List basins.
|
|
35
36
|
*/
|
|
36
|
-
export
|
|
37
|
+
export function accountListBasins(
|
|
37
38
|
client: S2Core,
|
|
38
39
|
request: operations.ListBasinsRequest,
|
|
39
40
|
options?: RequestOptions,
|
|
40
|
-
):
|
|
41
|
+
): APIPromise<
|
|
41
42
|
PageIterator<
|
|
42
43
|
Result<
|
|
43
44
|
operations.ListBasinsResponse,
|
|
@@ -54,6 +55,38 @@ export async function accountListBasins(
|
|
|
54
55
|
>,
|
|
55
56
|
{ cursor: string }
|
|
56
57
|
>
|
|
58
|
+
> {
|
|
59
|
+
return new APIPromise($do(
|
|
60
|
+
client,
|
|
61
|
+
request,
|
|
62
|
+
options,
|
|
63
|
+
));
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
async function $do(
|
|
67
|
+
client: S2Core,
|
|
68
|
+
request: operations.ListBasinsRequest,
|
|
69
|
+
options?: RequestOptions,
|
|
70
|
+
): Promise<
|
|
71
|
+
[
|
|
72
|
+
PageIterator<
|
|
73
|
+
Result<
|
|
74
|
+
operations.ListBasinsResponse,
|
|
75
|
+
| errors.ErrorResponse
|
|
76
|
+
| errors.RetryableError
|
|
77
|
+
| errors.RetryableError
|
|
78
|
+
| APIError
|
|
79
|
+
| SDKValidationError
|
|
80
|
+
| UnexpectedClientError
|
|
81
|
+
| InvalidRequestError
|
|
82
|
+
| RequestAbortedError
|
|
83
|
+
| RequestTimeoutError
|
|
84
|
+
| ConnectionError
|
|
85
|
+
>,
|
|
86
|
+
{ cursor: string }
|
|
87
|
+
>,
|
|
88
|
+
APICall,
|
|
89
|
+
]
|
|
57
90
|
> {
|
|
58
91
|
const parsed = safeParse(
|
|
59
92
|
request,
|
|
@@ -61,7 +94,7 @@ export async function accountListBasins(
|
|
|
61
94
|
"Input validation failed",
|
|
62
95
|
);
|
|
63
96
|
if (!parsed.ok) {
|
|
64
|
-
return haltIterator(parsed);
|
|
97
|
+
return [haltIterator(parsed), { status: "invalid" }];
|
|
65
98
|
}
|
|
66
99
|
const payload = parsed.value;
|
|
67
100
|
const body = null;
|
|
@@ -83,6 +116,7 @@ export async function accountListBasins(
|
|
|
83
116
|
const requestSecurity = resolveGlobalSecurity(securityInput);
|
|
84
117
|
|
|
85
118
|
const context = {
|
|
119
|
+
baseURL: options?.serverURL ?? client._baseURL ?? "",
|
|
86
120
|
operationID: "list_basins",
|
|
87
121
|
oAuth2Scopes: [],
|
|
88
122
|
|
|
@@ -106,7 +140,7 @@ export async function accountListBasins(
|
|
|
106
140
|
timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
|
|
107
141
|
}, options);
|
|
108
142
|
if (!requestRes.ok) {
|
|
109
|
-
return haltIterator(requestRes);
|
|
143
|
+
return [haltIterator(requestRes), { status: "invalid" }];
|
|
110
144
|
}
|
|
111
145
|
const req = requestRes.value;
|
|
112
146
|
|
|
@@ -117,7 +151,7 @@ export async function accountListBasins(
|
|
|
117
151
|
retryCodes: context.retryCodes,
|
|
118
152
|
});
|
|
119
153
|
if (!doResult.ok) {
|
|
120
|
-
return haltIterator(doResult);
|
|
154
|
+
return [haltIterator(doResult), { status: "request-error", request: req }];
|
|
121
155
|
}
|
|
122
156
|
const response = doResult.value;
|
|
123
157
|
|
|
@@ -146,7 +180,11 @@ export async function accountListBasins(
|
|
|
146
180
|
M.fail("5XX"),
|
|
147
181
|
)(response, { extraFields: responseFields });
|
|
148
182
|
if (!result.ok) {
|
|
149
|
-
return haltIterator(result)
|
|
183
|
+
return [haltIterator(result), {
|
|
184
|
+
status: "complete",
|
|
185
|
+
request: req,
|
|
186
|
+
response,
|
|
187
|
+
}];
|
|
150
188
|
}
|
|
151
189
|
|
|
152
190
|
const nextFunc = (
|
|
@@ -169,8 +207,9 @@ export async function accountListBasins(
|
|
|
169
207
|
>;
|
|
170
208
|
"~next"?: { cursor: string };
|
|
171
209
|
} => {
|
|
172
|
-
const nextCursor =
|
|
173
|
-
|
|
210
|
+
const nextCursor =
|
|
211
|
+
jpQuery(responseData as JsonValue, "$.basins[-1].name")[0];
|
|
212
|
+
if (typeof nextCursor !== "string") {
|
|
174
213
|
return { next: () => null };
|
|
175
214
|
}
|
|
176
215
|
|
|
@@ -188,5 +227,9 @@ export async function accountListBasins(
|
|
|
188
227
|
};
|
|
189
228
|
|
|
190
229
|
const page = { ...result, ...nextFunc(raw) };
|
|
191
|
-
return { ...page, ...createPageIterator(page, (v) => !v.ok) }
|
|
230
|
+
return [{ ...page, ...createPageIterator(page, (v) => !v.ok) }, {
|
|
231
|
+
status: "complete",
|
|
232
|
+
request: req,
|
|
233
|
+
response,
|
|
234
|
+
}];
|
|
192
235
|
}
|