@s2-dev/streamstore 0.15.1 → 0.15.3
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 +16 -16
- package/bin/mcp-server.js +493 -683
- package/bin/mcp-server.js.map +55 -55
- package/dist/commonjs/funcs/basinsGetBasinConfig.d.ts +1 -1
- package/dist/commonjs/funcs/basinsGetBasinConfig.js +1 -1
- package/dist/commonjs/funcs/metricsAccountMetrics.d.ts +1 -1
- package/dist/commonjs/funcs/metricsAccountMetrics.js +1 -1
- package/dist/commonjs/funcs/metricsBasinMetrics.d.ts +1 -1
- package/dist/commonjs/funcs/metricsBasinMetrics.js +1 -1
- package/dist/commonjs/funcs/metricsStreamMetrics.d.ts +1 -1
- package/dist/commonjs/funcs/metricsStreamMetrics.js +1 -1
- package/dist/commonjs/funcs/recordsAppend.d.ts +0 -3
- package/dist/commonjs/funcs/recordsAppend.d.ts.map +1 -1
- package/dist/commonjs/funcs/recordsAppend.js +0 -3
- package/dist/commonjs/funcs/recordsAppend.js.map +1 -1
- package/dist/commonjs/funcs/recordsCheckTail.d.ts +0 -3
- package/dist/commonjs/funcs/recordsCheckTail.d.ts.map +1 -1
- package/dist/commonjs/funcs/recordsCheckTail.js +0 -3
- package/dist/commonjs/funcs/recordsCheckTail.js.map +1 -1
- package/dist/commonjs/funcs/recordsRead.d.ts +1 -4
- package/dist/commonjs/funcs/recordsRead.d.ts.map +1 -1
- package/dist/commonjs/funcs/recordsRead.js +2 -7
- package/dist/commonjs/funcs/recordsRead.js.map +1 -1
- package/dist/commonjs/lib/config.d.ts +3 -3
- package/dist/commonjs/lib/config.js +3 -3
- package/dist/commonjs/lib/event-streams.d.ts +4 -10
- package/dist/commonjs/lib/event-streams.d.ts.map +1 -1
- package/dist/commonjs/lib/event-streams.js +110 -194
- package/dist/commonjs/lib/event-streams.js.map +1 -1
- package/dist/commonjs/lib/files.d.ts +5 -0
- package/dist/commonjs/lib/files.d.ts.map +1 -1
- package/dist/commonjs/lib/files.js +41 -0
- package/dist/commonjs/lib/files.js.map +1 -1
- package/dist/commonjs/lib/matchers.d.ts.map +1 -1
- package/dist/commonjs/lib/matchers.js +1 -4
- package/dist/commonjs/lib/matchers.js.map +1 -1
- package/dist/commonjs/lib/security.d.ts +2 -2
- package/dist/commonjs/lib/security.d.ts.map +1 -1
- package/dist/commonjs/mcp-server/cli/start/command.d.ts.map +1 -1
- package/dist/commonjs/mcp-server/cli/start/command.js +7 -11
- package/dist/commonjs/mcp-server/cli/start/command.js.map +1 -1
- package/dist/commonjs/mcp-server/mcp-server.js +1 -1
- package/dist/commonjs/mcp-server/server.js +1 -1
- package/dist/commonjs/mcp-server/tools/basinsGetBasinConfig.js +1 -1
- package/dist/commonjs/mcp-server/tools/basinsGetBasinConfig.js.map +1 -1
- package/dist/commonjs/mcp-server/tools/metricsAccountMetrics.js +1 -1
- package/dist/commonjs/mcp-server/tools/metricsAccountMetrics.js.map +1 -1
- package/dist/commonjs/mcp-server/tools/metricsBasinMetrics.js +1 -1
- package/dist/commonjs/mcp-server/tools/metricsBasinMetrics.js.map +1 -1
- package/dist/commonjs/mcp-server/tools/metricsStreamMetrics.js +1 -1
- package/dist/commonjs/mcp-server/tools/metricsStreamMetrics.js.map +1 -1
- package/dist/commonjs/mcp-server/tools/recordsAppend.d.ts.map +1 -1
- package/dist/commonjs/mcp-server/tools/recordsAppend.js +1 -3
- package/dist/commonjs/mcp-server/tools/recordsAppend.js.map +1 -1
- package/dist/commonjs/mcp-server/tools/recordsCheckTail.d.ts.map +1 -1
- package/dist/commonjs/mcp-server/tools/recordsCheckTail.js +1 -3
- package/dist/commonjs/mcp-server/tools/recordsCheckTail.js.map +1 -1
- package/dist/commonjs/mcp-server/tools/recordsRead.d.ts.map +1 -1
- package/dist/commonjs/mcp-server/tools/recordsRead.js +1 -3
- package/dist/commonjs/mcp-server/tools/recordsRead.js.map +1 -1
- package/dist/commonjs/models/components/accesstokeninfo.d.ts +1 -2
- package/dist/commonjs/models/components/accesstokeninfo.d.ts.map +1 -1
- package/dist/commonjs/models/components/accesstokeninfo.js.map +1 -1
- package/dist/commonjs/models/components/accountmetricset.d.ts +6 -6
- package/dist/commonjs/models/components/accountmetricset.js +2 -2
- package/dist/commonjs/models/components/accumulation.d.ts +2 -6
- package/dist/commonjs/models/components/accumulation.d.ts.map +1 -1
- package/dist/commonjs/models/components/accumulation.js.map +1 -1
- package/dist/commonjs/models/components/appendack.d.ts +1 -1
- package/dist/commonjs/models/components/appendinput.d.ts +4 -4
- package/dist/commonjs/models/components/basinconfig.d.ts +2 -8
- package/dist/commonjs/models/components/basinconfig.d.ts.map +1 -1
- package/dist/commonjs/models/components/basinconfig.js.map +1 -1
- package/dist/commonjs/models/components/basinmetricset.d.ts +15 -15
- package/dist/commonjs/models/components/basinmetricset.js +5 -5
- package/dist/commonjs/models/components/createbasinrequest.d.ts +1 -2
- package/dist/commonjs/models/components/createbasinrequest.d.ts.map +1 -1
- package/dist/commonjs/models/components/createbasinrequest.js.map +1 -1
- package/dist/commonjs/models/components/gauge.d.ts +2 -5
- package/dist/commonjs/models/components/gauge.d.ts.map +1 -1
- package/dist/commonjs/models/components/gauge.js.map +1 -1
- package/dist/commonjs/models/components/listaccesstokensresponse.d.ts +2 -2
- package/dist/commonjs/models/components/listbasinsresponse.d.ts +1 -1
- package/dist/commonjs/models/components/liststreamsresponse.d.ts +1 -1
- package/dist/commonjs/models/components/metric.d.ts +4 -4
- package/dist/commonjs/models/components/readbatch.d.ts +2 -2
- package/dist/commonjs/models/components/readevent.d.ts +17 -67
- package/dist/commonjs/models/components/readevent.d.ts.map +1 -1
- package/dist/commonjs/models/components/readevent.js +27 -88
- package/dist/commonjs/models/components/readevent.js.map +1 -1
- package/dist/commonjs/models/components/retentionpolicy.d.ts +12 -0
- package/dist/commonjs/models/components/retentionpolicy.d.ts.map +1 -1
- package/dist/commonjs/models/components/retentionpolicy.js.map +1 -1
- package/dist/commonjs/models/components/streamposition.d.ts +1 -1
- package/dist/commonjs/models/components/timestampingconfig.d.ts +1 -1
- package/dist/commonjs/models/errors/apierror.d.ts.map +1 -1
- package/dist/commonjs/models/errors/apierror.js +8 -2
- package/dist/commonjs/models/errors/apierror.js.map +1 -1
- package/dist/commonjs/models/errors/appendconditionfailed.d.ts +1 -1
- package/dist/commonjs/models/errors/errorresponse.d.ts.map +1 -1
- package/dist/commonjs/models/errors/errorresponse.js +1 -3
- package/dist/commonjs/models/errors/errorresponse.js.map +1 -1
- package/dist/commonjs/models/operations/accountmetrics.d.ts +4 -4
- package/dist/commonjs/models/operations/append.d.ts +3 -2
- package/dist/commonjs/models/operations/append.d.ts.map +1 -1
- package/dist/commonjs/models/operations/append.js.map +1 -1
- package/dist/commonjs/models/operations/basinmetrics.d.ts +4 -4
- package/dist/commonjs/models/operations/createorreconfigurebasin.d.ts +1 -1
- package/dist/commonjs/models/operations/createorreconfigurestream.d.ts +1 -1
- package/dist/commonjs/models/operations/listaccesstokens.d.ts +2 -2
- package/dist/commonjs/models/operations/listbasins.d.ts +3 -4
- package/dist/commonjs/models/operations/listbasins.d.ts.map +1 -1
- package/dist/commonjs/models/operations/listbasins.js.map +1 -1
- package/dist/commonjs/models/operations/liststreams.d.ts +3 -4
- package/dist/commonjs/models/operations/liststreams.d.ts.map +1 -1
- package/dist/commonjs/models/operations/liststreams.js.map +1 -1
- package/dist/commonjs/models/operations/read.d.ts +4 -3
- package/dist/commonjs/models/operations/read.d.ts.map +1 -1
- package/dist/commonjs/models/operations/read.js +4 -6
- package/dist/commonjs/models/operations/read.js.map +1 -1
- package/dist/commonjs/sdk/basins.d.ts +1 -1
- package/dist/commonjs/sdk/basins.js +1 -1
- package/dist/commonjs/sdk/metrics.d.ts +3 -3
- package/dist/commonjs/sdk/metrics.js +3 -3
- package/dist/commonjs/sdk/records.d.ts +1 -10
- package/dist/commonjs/sdk/records.d.ts.map +1 -1
- package/dist/commonjs/sdk/records.js +1 -10
- package/dist/commonjs/sdk/records.js.map +1 -1
- package/dist/commonjs/types/constdatetime.js +1 -1
- package/dist/esm/funcs/basinsGetBasinConfig.d.ts +1 -1
- package/dist/esm/funcs/basinsGetBasinConfig.js +1 -1
- package/dist/esm/funcs/metricsAccountMetrics.d.ts +1 -1
- package/dist/esm/funcs/metricsAccountMetrics.js +1 -1
- package/dist/esm/funcs/metricsBasinMetrics.d.ts +1 -1
- package/dist/esm/funcs/metricsBasinMetrics.js +1 -1
- package/dist/esm/funcs/metricsStreamMetrics.d.ts +1 -1
- package/dist/esm/funcs/metricsStreamMetrics.js +1 -1
- package/dist/esm/funcs/recordsAppend.d.ts +0 -3
- package/dist/esm/funcs/recordsAppend.d.ts.map +1 -1
- package/dist/esm/funcs/recordsAppend.js +0 -3
- package/dist/esm/funcs/recordsAppend.js.map +1 -1
- package/dist/esm/funcs/recordsCheckTail.d.ts +0 -3
- package/dist/esm/funcs/recordsCheckTail.d.ts.map +1 -1
- package/dist/esm/funcs/recordsCheckTail.js +0 -3
- package/dist/esm/funcs/recordsCheckTail.js.map +1 -1
- package/dist/esm/funcs/recordsRead.d.ts +1 -4
- package/dist/esm/funcs/recordsRead.d.ts.map +1 -1
- package/dist/esm/funcs/recordsRead.js +2 -7
- package/dist/esm/funcs/recordsRead.js.map +1 -1
- package/dist/esm/lib/config.d.ts +3 -3
- package/dist/esm/lib/config.js +3 -3
- package/dist/esm/lib/event-streams.d.ts +4 -10
- package/dist/esm/lib/event-streams.d.ts.map +1 -1
- package/dist/esm/lib/event-streams.js +110 -193
- package/dist/esm/lib/event-streams.js.map +1 -1
- package/dist/esm/lib/files.d.ts +5 -0
- package/dist/esm/lib/files.d.ts.map +1 -1
- package/dist/esm/lib/files.js +40 -0
- package/dist/esm/lib/files.js.map +1 -1
- package/dist/esm/lib/matchers.d.ts.map +1 -1
- package/dist/esm/lib/matchers.js +1 -4
- package/dist/esm/lib/matchers.js.map +1 -1
- package/dist/esm/lib/security.d.ts +2 -2
- package/dist/esm/lib/security.d.ts.map +1 -1
- package/dist/esm/mcp-server/cli/start/command.d.ts.map +1 -1
- package/dist/esm/mcp-server/cli/start/command.js +7 -11
- package/dist/esm/mcp-server/cli/start/command.js.map +1 -1
- package/dist/esm/mcp-server/mcp-server.js +1 -1
- package/dist/esm/mcp-server/server.js +1 -1
- package/dist/esm/mcp-server/tools/basinsGetBasinConfig.js +1 -1
- package/dist/esm/mcp-server/tools/basinsGetBasinConfig.js.map +1 -1
- package/dist/esm/mcp-server/tools/metricsAccountMetrics.js +1 -1
- package/dist/esm/mcp-server/tools/metricsAccountMetrics.js.map +1 -1
- package/dist/esm/mcp-server/tools/metricsBasinMetrics.js +1 -1
- package/dist/esm/mcp-server/tools/metricsBasinMetrics.js.map +1 -1
- package/dist/esm/mcp-server/tools/metricsStreamMetrics.js +1 -1
- package/dist/esm/mcp-server/tools/metricsStreamMetrics.js.map +1 -1
- package/dist/esm/mcp-server/tools/recordsAppend.d.ts.map +1 -1
- package/dist/esm/mcp-server/tools/recordsAppend.js +1 -3
- package/dist/esm/mcp-server/tools/recordsAppend.js.map +1 -1
- package/dist/esm/mcp-server/tools/recordsCheckTail.d.ts.map +1 -1
- package/dist/esm/mcp-server/tools/recordsCheckTail.js +1 -3
- package/dist/esm/mcp-server/tools/recordsCheckTail.js.map +1 -1
- package/dist/esm/mcp-server/tools/recordsRead.d.ts.map +1 -1
- package/dist/esm/mcp-server/tools/recordsRead.js +1 -3
- package/dist/esm/mcp-server/tools/recordsRead.js.map +1 -1
- package/dist/esm/models/components/accesstokeninfo.d.ts +1 -2
- package/dist/esm/models/components/accesstokeninfo.d.ts.map +1 -1
- package/dist/esm/models/components/accesstokeninfo.js.map +1 -1
- package/dist/esm/models/components/accountmetricset.d.ts +6 -6
- package/dist/esm/models/components/accountmetricset.js +2 -2
- package/dist/esm/models/components/accumulation.d.ts +2 -6
- package/dist/esm/models/components/accumulation.d.ts.map +1 -1
- package/dist/esm/models/components/accumulation.js.map +1 -1
- package/dist/esm/models/components/appendack.d.ts +1 -1
- package/dist/esm/models/components/appendinput.d.ts +4 -4
- package/dist/esm/models/components/basinconfig.d.ts +2 -8
- package/dist/esm/models/components/basinconfig.d.ts.map +1 -1
- package/dist/esm/models/components/basinconfig.js.map +1 -1
- package/dist/esm/models/components/basinmetricset.d.ts +15 -15
- package/dist/esm/models/components/basinmetricset.js +5 -5
- package/dist/esm/models/components/createbasinrequest.d.ts +1 -2
- package/dist/esm/models/components/createbasinrequest.d.ts.map +1 -1
- package/dist/esm/models/components/createbasinrequest.js.map +1 -1
- package/dist/esm/models/components/gauge.d.ts +2 -5
- package/dist/esm/models/components/gauge.d.ts.map +1 -1
- package/dist/esm/models/components/gauge.js.map +1 -1
- package/dist/esm/models/components/listaccesstokensresponse.d.ts +2 -2
- package/dist/esm/models/components/listbasinsresponse.d.ts +1 -1
- package/dist/esm/models/components/liststreamsresponse.d.ts +1 -1
- package/dist/esm/models/components/metric.d.ts +4 -4
- package/dist/esm/models/components/readbatch.d.ts +2 -2
- package/dist/esm/models/components/readevent.d.ts +17 -67
- package/dist/esm/models/components/readevent.d.ts.map +1 -1
- package/dist/esm/models/components/readevent.js +26 -85
- package/dist/esm/models/components/readevent.js.map +1 -1
- package/dist/esm/models/components/retentionpolicy.d.ts +12 -0
- package/dist/esm/models/components/retentionpolicy.d.ts.map +1 -1
- package/dist/esm/models/components/retentionpolicy.js.map +1 -1
- package/dist/esm/models/components/streamposition.d.ts +1 -1
- package/dist/esm/models/components/timestampingconfig.d.ts +1 -1
- package/dist/esm/models/errors/apierror.d.ts.map +1 -1
- package/dist/esm/models/errors/apierror.js +8 -2
- package/dist/esm/models/errors/apierror.js.map +1 -1
- package/dist/esm/models/errors/appendconditionfailed.d.ts +1 -1
- package/dist/esm/models/errors/errorresponse.d.ts.map +1 -1
- package/dist/esm/models/errors/errorresponse.js +1 -3
- package/dist/esm/models/errors/errorresponse.js.map +1 -1
- package/dist/esm/models/operations/accountmetrics.d.ts +4 -4
- package/dist/esm/models/operations/append.d.ts +3 -2
- package/dist/esm/models/operations/append.d.ts.map +1 -1
- package/dist/esm/models/operations/append.js.map +1 -1
- package/dist/esm/models/operations/basinmetrics.d.ts +4 -4
- package/dist/esm/models/operations/createorreconfigurebasin.d.ts +1 -1
- package/dist/esm/models/operations/createorreconfigurestream.d.ts +1 -1
- package/dist/esm/models/operations/listaccesstokens.d.ts +2 -2
- package/dist/esm/models/operations/listbasins.d.ts +3 -4
- package/dist/esm/models/operations/listbasins.d.ts.map +1 -1
- package/dist/esm/models/operations/listbasins.js.map +1 -1
- package/dist/esm/models/operations/liststreams.d.ts +3 -4
- package/dist/esm/models/operations/liststreams.d.ts.map +1 -1
- package/dist/esm/models/operations/liststreams.js.map +1 -1
- package/dist/esm/models/operations/read.d.ts +4 -3
- package/dist/esm/models/operations/read.d.ts.map +1 -1
- package/dist/esm/models/operations/read.js +4 -6
- package/dist/esm/models/operations/read.js.map +1 -1
- package/dist/esm/sdk/basins.d.ts +1 -1
- package/dist/esm/sdk/basins.js +1 -1
- package/dist/esm/sdk/metrics.d.ts +3 -3
- package/dist/esm/sdk/metrics.js +3 -3
- package/dist/esm/sdk/records.d.ts +1 -10
- package/dist/esm/sdk/records.d.ts.map +1 -1
- package/dist/esm/sdk/records.js +1 -10
- package/dist/esm/sdk/records.js.map +1 -1
- package/dist/esm/types/constdatetime.js +1 -1
- package/docs/sdks/basins/README.md +2 -2
- package/docs/sdks/metrics/README.md +8 -8
- package/docs/sdks/records/README.md +4 -4
- package/jsr.json +1 -1
- package/package.json +3 -3
- package/src/funcs/basinsGetBasinConfig.ts +1 -1
- package/src/funcs/metricsAccountMetrics.ts +1 -1
- package/src/funcs/metricsBasinMetrics.ts +1 -1
- package/src/funcs/metricsStreamMetrics.ts +1 -1
- package/src/funcs/recordsAppend.ts +0 -3
- package/src/funcs/recordsCheckTail.ts +0 -3
- package/src/funcs/recordsRead.ts +2 -7
- package/src/lib/config.ts +3 -3
- package/src/lib/event-streams.ts +114 -231
- package/src/lib/files.ts +42 -0
- package/src/lib/matchers.ts +1 -4
- package/src/lib/security.ts +2 -2
- package/src/mcp-server/cli/start/command.ts +7 -12
- package/src/mcp-server/mcp-server.ts +1 -1
- package/src/mcp-server/server.ts +1 -1
- package/src/mcp-server/tools/basinsGetBasinConfig.ts +1 -1
- package/src/mcp-server/tools/metricsAccountMetrics.ts +1 -1
- package/src/mcp-server/tools/metricsBasinMetrics.ts +1 -1
- package/src/mcp-server/tools/metricsStreamMetrics.ts +1 -1
- package/src/mcp-server/tools/recordsAppend.ts +1 -3
- package/src/mcp-server/tools/recordsCheckTail.ts +1 -3
- package/src/mcp-server/tools/recordsRead.ts +1 -3
- package/src/models/components/accesstokeninfo.ts +1 -2
- package/src/models/components/accountmetricset.ts +2 -2
- package/src/models/components/accumulation.ts +2 -6
- package/src/models/components/appendack.ts +1 -1
- package/src/models/components/appendinput.ts +4 -4
- package/src/models/components/basinconfig.ts +2 -8
- package/src/models/components/basinmetricset.ts +5 -5
- package/src/models/components/createbasinrequest.ts +1 -2
- package/src/models/components/gauge.ts +2 -5
- package/src/models/components/listaccesstokensresponse.ts +2 -2
- package/src/models/components/listbasinsresponse.ts +1 -1
- package/src/models/components/liststreamsresponse.ts +1 -1
- package/src/models/components/metric.ts +4 -4
- package/src/models/components/readbatch.ts +2 -2
- package/src/models/components/readevent.ts +36 -139
- package/src/models/components/retentionpolicy.ts +12 -0
- package/src/models/components/streamposition.ts +1 -1
- package/src/models/components/timestampingconfig.ts +1 -1
- package/src/models/errors/apierror.ts +8 -2
- package/src/models/errors/appendconditionfailed.ts +1 -1
- package/src/models/errors/errorresponse.ts +1 -3
- package/src/models/operations/accountmetrics.ts +4 -4
- package/src/models/operations/append.ts +3 -2
- package/src/models/operations/basinmetrics.ts +4 -4
- package/src/models/operations/createorreconfigurebasin.ts +1 -1
- package/src/models/operations/createorreconfigurestream.ts +1 -1
- package/src/models/operations/listaccesstokens.ts +2 -2
- package/src/models/operations/listbasins.ts +3 -4
- package/src/models/operations/liststreams.ts +3 -4
- package/src/models/operations/read.ts +7 -9
- package/src/sdk/basins.ts +1 -1
- package/src/sdk/metrics.ts +3 -3
- package/src/sdk/records.ts +1 -10
- package/src/types/constdatetime.ts +1 -1
package/src/lib/config.ts
CHANGED
|
@@ -58,8 +58,8 @@ export function serverURLFromOptions(options: SDKOptions): URL | null {
|
|
|
58
58
|
export const SDK_METADATA = {
|
|
59
59
|
language: "typescript",
|
|
60
60
|
openapiDocVersion: "1.0.0",
|
|
61
|
-
sdkVersion: "0.15.
|
|
62
|
-
genVersion: "2.
|
|
61
|
+
sdkVersion: "0.15.3",
|
|
62
|
+
genVersion: "2.651.2",
|
|
63
63
|
userAgent:
|
|
64
|
-
"speakeasy-sdk/typescript 0.15.
|
|
64
|
+
"speakeasy-sdk/typescript 0.15.3 2.651.2 1.0.0 @s2-dev/streamstore",
|
|
65
65
|
} as const;
|
package/src/lib/event-streams.ts
CHANGED
|
@@ -5,260 +5,143 @@
|
|
|
5
5
|
export type ServerEvent<T> = {
|
|
6
6
|
data?: T | undefined;
|
|
7
7
|
event?: string | undefined;
|
|
8
|
-
retry?: number | undefined;
|
|
9
8
|
id?: string | undefined;
|
|
9
|
+
retry?: number | undefined;
|
|
10
10
|
};
|
|
11
|
-
const LF = 0x0a;
|
|
12
|
-
const CR = 0x0d;
|
|
13
|
-
const NEWLINE_CHARS = new Set([LF, CR]);
|
|
14
|
-
const MESSAGE_BOUNDARIES = [
|
|
15
|
-
new Uint8Array([CR, LF, CR, LF]),
|
|
16
|
-
new Uint8Array([CR, CR]),
|
|
17
|
-
new Uint8Array([LF, LF]),
|
|
18
|
-
];
|
|
19
|
-
|
|
20
|
-
export class EventStream<Event extends ServerEvent<unknown>> {
|
|
21
|
-
private readonly stream: ReadableStream<Uint8Array>;
|
|
22
|
-
private readonly decoder: (rawEvent: ServerEvent<string>) => Event;
|
|
23
|
-
|
|
24
|
-
constructor(init: {
|
|
25
|
-
stream: ReadableStream<Uint8Array>;
|
|
26
|
-
decoder: (rawEvent: ServerEvent<string>) => Event;
|
|
27
|
-
}) {
|
|
28
|
-
this.stream = init.stream;
|
|
29
|
-
this.decoder = init.decoder;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
async *[Symbol.asyncIterator](): AsyncGenerator<Event, void, unknown> {
|
|
33
|
-
const reader = this.stream.getReader();
|
|
34
|
-
let buffer = new Uint8Array([]);
|
|
35
|
-
let position = 0;
|
|
36
|
-
|
|
37
|
-
try {
|
|
38
|
-
while (true) {
|
|
39
|
-
const { done, value } = await reader.read();
|
|
40
|
-
if (done) {
|
|
41
|
-
break;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
const newBuffer = new Uint8Array(buffer.length + value.length);
|
|
45
|
-
newBuffer.set(buffer);
|
|
46
|
-
newBuffer.set(value, buffer.length);
|
|
47
|
-
buffer = newBuffer;
|
|
48
|
-
|
|
49
|
-
for (let i = position; i < buffer.length; i++) {
|
|
50
|
-
const boundary = findBoundary(buffer, i);
|
|
51
|
-
if (boundary == null) {
|
|
52
|
-
continue;
|
|
53
|
-
}
|
|
54
11
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
12
|
+
export class EventStream<T extends ServerEvent<unknown>>
|
|
13
|
+
extends ReadableStream<T>
|
|
14
|
+
{
|
|
15
|
+
constructor(
|
|
16
|
+
stream: ReadableStream<Uint8Array>,
|
|
17
|
+
parse: (x: ServerEvent<string>) => IteratorResult<T, undefined>,
|
|
18
|
+
) {
|
|
19
|
+
const reader = stream.getReader();
|
|
20
|
+
let buffer: Uint8Array = new Uint8Array();
|
|
21
|
+
super({
|
|
22
|
+
async pull(controller) {
|
|
23
|
+
try {
|
|
24
|
+
const r = await reader.read();
|
|
25
|
+
if (r.done) return controller.close();
|
|
26
|
+
buffer = concatBuffer(buffer, r.value);
|
|
27
|
+
for (const { chunk, remainder } of chunks(buffer)) {
|
|
28
|
+
buffer = remainder;
|
|
29
|
+
const item = parseChunk(chunk, parse);
|
|
30
|
+
if (item?.value) controller.enqueue(item.value);
|
|
31
|
+
if (item?.done) {
|
|
32
|
+
await reader.cancel("done");
|
|
33
|
+
return controller.close();
|
|
34
|
+
}
|
|
60
35
|
}
|
|
36
|
+
} catch (e) {
|
|
37
|
+
await reader.cancel(e);
|
|
38
|
+
controller.error(e);
|
|
61
39
|
}
|
|
40
|
+
},
|
|
41
|
+
cancel: reason => reader.cancel(reason),
|
|
42
|
+
});
|
|
43
|
+
}
|
|
62
44
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
const
|
|
71
|
-
if (
|
|
72
|
-
|
|
45
|
+
// Polyfill for older browsers
|
|
46
|
+
[Symbol.asyncIterator](): AsyncIterableIterator<T, void, unknown> {
|
|
47
|
+
const fn = (ReadableStream.prototype as any)[Symbol.asyncIterator];
|
|
48
|
+
if (typeof fn === "function") return fn.call(this);
|
|
49
|
+
const reader = this.getReader();
|
|
50
|
+
return {
|
|
51
|
+
next: async () => {
|
|
52
|
+
const r = await reader.read();
|
|
53
|
+
if (r.done) {
|
|
54
|
+
reader.releaseLock();
|
|
55
|
+
return { done: true, value: undefined };
|
|
73
56
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
57
|
+
return { done: false, value: r.value };
|
|
58
|
+
},
|
|
59
|
+
throw: async (e) => {
|
|
60
|
+
await reader.cancel(e);
|
|
61
|
+
reader.releaseLock();
|
|
62
|
+
return { done: true, value: undefined };
|
|
63
|
+
},
|
|
64
|
+
return: async () => {
|
|
65
|
+
await reader.cancel("done");
|
|
66
|
+
reader.releaseLock();
|
|
67
|
+
return { done: true, value: undefined };
|
|
68
|
+
},
|
|
69
|
+
[Symbol.asyncIterator]() {
|
|
70
|
+
return this;
|
|
71
|
+
},
|
|
72
|
+
};
|
|
84
73
|
}
|
|
85
74
|
}
|
|
86
75
|
|
|
87
|
-
function
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
if (
|
|
94
|
-
char1 == null
|
|
95
|
-
|| char2 == null
|
|
96
|
-
|| !NEWLINE_CHARS.has(char1)
|
|
97
|
-
|| !NEWLINE_CHARS.has(char2)
|
|
98
|
-
) {
|
|
99
|
-
return null;
|
|
100
|
-
}
|
|
76
|
+
function concatBuffer(a: Uint8Array, b: Uint8Array): Uint8Array {
|
|
77
|
+
const c = new Uint8Array(a.length + b.length);
|
|
78
|
+
c.set(a, 0);
|
|
79
|
+
c.set(b, a.length);
|
|
80
|
+
return c;
|
|
81
|
+
}
|
|
101
82
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
83
|
+
/** Finds the first (CR,LF,CR,LF) or (CR,CR) or (LF,LF) */
|
|
84
|
+
function findBoundary(
|
|
85
|
+
buf: Uint8Array,
|
|
86
|
+
): { index: number; length: number } | null {
|
|
87
|
+
const len = buf.length;
|
|
88
|
+
for (let i = 0; i < len; i++) {
|
|
89
|
+
if (
|
|
90
|
+
i <= len - 4
|
|
91
|
+
&& buf[i] === 13 && buf[i + 1] === 10 && buf[i + 2] === 13
|
|
92
|
+
&& buf[i + 3] === 10
|
|
93
|
+
) {
|
|
94
|
+
return { index: i, length: 4 };
|
|
95
|
+
}
|
|
96
|
+
if (i <= len - 2 && buf[i] === 13 && buf[i + 1] === 13) {
|
|
97
|
+
return { index: i, length: 2 };
|
|
98
|
+
}
|
|
99
|
+
if (i <= len - 2 && buf[i] === 10 && buf[i + 1] === 10) {
|
|
100
|
+
return { index: i, length: 2 };
|
|
106
101
|
}
|
|
107
102
|
}
|
|
108
|
-
|
|
109
103
|
return null;
|
|
110
104
|
}
|
|
111
105
|
|
|
112
|
-
function
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
for (let i = 0; i < sequence.length; i++) {
|
|
122
|
-
if (buffer[position + i] !== sequence[i]) {
|
|
123
|
-
return null;
|
|
106
|
+
function* chunks(
|
|
107
|
+
remainder: Uint8Array,
|
|
108
|
+
): Generator<{ chunk: Uint8Array; remainder: Uint8Array }> {
|
|
109
|
+
while (true) {
|
|
110
|
+
const match = findBoundary(remainder);
|
|
111
|
+
if (!match) {
|
|
112
|
+
yield { chunk: new Uint8Array(), remainder };
|
|
113
|
+
return;
|
|
124
114
|
}
|
|
115
|
+
const chunk = remainder.slice(0, match.index);
|
|
116
|
+
remainder = remainder.slice(match.index + match.length);
|
|
117
|
+
yield { chunk, remainder };
|
|
125
118
|
}
|
|
126
|
-
|
|
127
|
-
return sequence;
|
|
128
119
|
}
|
|
129
120
|
|
|
130
|
-
function
|
|
121
|
+
function parseChunk<T extends ServerEvent<unknown>>(
|
|
131
122
|
chunk: Uint8Array,
|
|
132
|
-
|
|
123
|
+
parse: (x: ServerEvent<string>) => IteratorResult<T, undefined>,
|
|
133
124
|
) {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
const raw = td.decode(chunk);
|
|
140
|
-
const lines = raw.split(/\r?\n|\r/g);
|
|
141
|
-
let publish = false;
|
|
142
|
-
const rawEvent: ServerEvent<string> = {};
|
|
143
|
-
|
|
125
|
+
const text = new TextDecoder().decode(chunk);
|
|
126
|
+
const lines = text.split(/\r\n|\r|\n/);
|
|
127
|
+
const dataLines: string[] = [];
|
|
128
|
+
const ret: ServerEvent<string> = {};
|
|
129
|
+
let ignore = true;
|
|
144
130
|
for (const line of lines) {
|
|
145
|
-
if (!line)
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
const
|
|
150
|
-
|
|
151
|
-
if (
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
let value = delim > 0 ? line.substring(delim + 1) : "";
|
|
157
|
-
if (value.charAt(0) === " ") {
|
|
158
|
-
value = value.substring(1);
|
|
131
|
+
if (!line || line.startsWith(":")) continue;
|
|
132
|
+
ignore = false;
|
|
133
|
+
const i = line.indexOf(":");
|
|
134
|
+
const field = line.slice(0, i);
|
|
135
|
+
const value = line[i + 1] === " " ? line.slice(i + 2) : line.slice(i + 1);
|
|
136
|
+
if (field === "data") dataLines.push(value);
|
|
137
|
+
else if (field === "event") ret.event = value;
|
|
138
|
+
else if (field === "id") ret.id = value;
|
|
139
|
+
else if (field === "retry") {
|
|
140
|
+
const n = Number(value);
|
|
141
|
+
if (!isNaN(n)) ret.retry = n;
|
|
159
142
|
}
|
|
160
|
-
|
|
161
|
-
switch (field) {
|
|
162
|
-
case "event": {
|
|
163
|
-
publish = true;
|
|
164
|
-
rawEvent.event = value;
|
|
165
|
-
break;
|
|
166
|
-
}
|
|
167
|
-
case "data": {
|
|
168
|
-
publish = true;
|
|
169
|
-
rawEvent.data ??= "";
|
|
170
|
-
rawEvent.data += value + "\n";
|
|
171
|
-
break;
|
|
172
|
-
}
|
|
173
|
-
case "id": {
|
|
174
|
-
publish = true;
|
|
175
|
-
rawEvent.id = value;
|
|
176
|
-
break;
|
|
177
|
-
}
|
|
178
|
-
case "retry": {
|
|
179
|
-
const r = parseInt(value, 10);
|
|
180
|
-
if (!Number.isNaN(r)) {
|
|
181
|
-
publish = true;
|
|
182
|
-
rawEvent.retry = r;
|
|
183
|
-
}
|
|
184
|
-
break;
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
if (!publish) {
|
|
190
|
-
return null;
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
if (rawEvent.data != null) {
|
|
194
|
-
rawEvent.data = rawEvent.data.slice(0, -1);
|
|
195
143
|
}
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
export function discardSentinel(
|
|
201
|
-
stream: ReadableStream<Uint8Array>,
|
|
202
|
-
sentinel: string,
|
|
203
|
-
): ReadableStream<Uint8Array> {
|
|
204
|
-
return new ReadableStream<Uint8Array>({
|
|
205
|
-
async start(controller) {
|
|
206
|
-
let buffer = new Uint8Array([]);
|
|
207
|
-
let position = 0;
|
|
208
|
-
let done = false;
|
|
209
|
-
let discard = false;
|
|
210
|
-
const rdr = stream.getReader();
|
|
211
|
-
try {
|
|
212
|
-
while (!done) {
|
|
213
|
-
const result = await rdr.read();
|
|
214
|
-
const value = result.value;
|
|
215
|
-
done = done || result.done;
|
|
216
|
-
// We keep consuming from the source to its completion so it can
|
|
217
|
-
// flush all its contents and release resources.
|
|
218
|
-
if (discard) {
|
|
219
|
-
continue;
|
|
220
|
-
}
|
|
221
|
-
if (typeof value === "undefined") {
|
|
222
|
-
continue;
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
const newBuffer = new Uint8Array(buffer.length + value.length);
|
|
226
|
-
newBuffer.set(buffer);
|
|
227
|
-
newBuffer.set(value, buffer.length);
|
|
228
|
-
buffer = newBuffer;
|
|
229
|
-
|
|
230
|
-
for (let i = position; i < buffer.length; i++) {
|
|
231
|
-
const boundary = findBoundary(buffer, i);
|
|
232
|
-
if (boundary == null) {
|
|
233
|
-
continue;
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
const start = position;
|
|
237
|
-
const chunk = buffer.slice(start, i);
|
|
238
|
-
position = i + boundary.length;
|
|
239
|
-
const event = parseEvent(chunk, id);
|
|
240
|
-
if (event?.data === sentinel) {
|
|
241
|
-
controller.enqueue(buffer.slice(0, start));
|
|
242
|
-
discard = true;
|
|
243
|
-
} else {
|
|
244
|
-
controller.enqueue(buffer.slice(0, position));
|
|
245
|
-
buffer = buffer.slice(position);
|
|
246
|
-
position = 0;
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
} catch (e) {
|
|
251
|
-
controller.error(e);
|
|
252
|
-
} finally {
|
|
253
|
-
// If the source stream terminates, flush its contents and terminate.
|
|
254
|
-
// If the sentinel event was found, flush everything up to its start.
|
|
255
|
-
controller.close();
|
|
256
|
-
rdr.releaseLock();
|
|
257
|
-
}
|
|
258
|
-
},
|
|
259
|
-
});
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
function id<T>(v: T): T {
|
|
263
|
-
return v;
|
|
144
|
+
if (ignore) return;
|
|
145
|
+
if (dataLines.length) ret.data = dataLines.join("\n");
|
|
146
|
+
return parse(ret);
|
|
264
147
|
}
|
package/src/lib/files.ts
CHANGED
|
@@ -38,3 +38,45 @@ export async function readableStreamToArrayBuffer(
|
|
|
38
38
|
|
|
39
39
|
return concatenatedChunks.buffer as ArrayBuffer;
|
|
40
40
|
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Determines the MIME content type based on a file's extension.
|
|
44
|
+
* Returns null if the extension is not recognized.
|
|
45
|
+
*/
|
|
46
|
+
export function getContentTypeFromFileName(fileName: string): string | null {
|
|
47
|
+
if (!fileName) return null;
|
|
48
|
+
|
|
49
|
+
const ext = fileName.toLowerCase().split(".").pop();
|
|
50
|
+
if (!ext) return null;
|
|
51
|
+
|
|
52
|
+
const mimeTypes: Record<string, string> = {
|
|
53
|
+
json: "application/json",
|
|
54
|
+
xml: "application/xml",
|
|
55
|
+
html: "text/html",
|
|
56
|
+
htm: "text/html",
|
|
57
|
+
txt: "text/plain",
|
|
58
|
+
csv: "text/csv",
|
|
59
|
+
pdf: "application/pdf",
|
|
60
|
+
png: "image/png",
|
|
61
|
+
jpg: "image/jpeg",
|
|
62
|
+
jpeg: "image/jpeg",
|
|
63
|
+
gif: "image/gif",
|
|
64
|
+
svg: "image/svg+xml",
|
|
65
|
+
js: "application/javascript",
|
|
66
|
+
css: "text/css",
|
|
67
|
+
zip: "application/zip",
|
|
68
|
+
tar: "application/x-tar",
|
|
69
|
+
gz: "application/gzip",
|
|
70
|
+
mp4: "video/mp4",
|
|
71
|
+
mp3: "audio/mpeg",
|
|
72
|
+
wav: "audio/wav",
|
|
73
|
+
webp: "image/webp",
|
|
74
|
+
ico: "image/x-icon",
|
|
75
|
+
woff: "font/woff",
|
|
76
|
+
woff2: "font/woff2",
|
|
77
|
+
ttf: "font/ttf",
|
|
78
|
+
otf: "font/otf",
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
return mimeTypes[ext] || null;
|
|
82
|
+
}
|
package/src/lib/matchers.ts
CHANGED
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
import { APIError } from "../models/errors/apierror.js";
|
|
6
6
|
import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
|
|
7
7
|
import { ERR, OK, Result } from "../types/fp.js";
|
|
8
|
-
import { discardSentinel } from "./event-streams.js";
|
|
9
8
|
import { matchResponse, matchStatusCode, StatusCodePredicate } from "./http.js";
|
|
10
9
|
import { isPlainObject } from "./is-plain-object.js";
|
|
11
10
|
|
|
@@ -238,9 +237,7 @@ export function match<T, E>(
|
|
|
238
237
|
raw = body;
|
|
239
238
|
break;
|
|
240
239
|
case "sse":
|
|
241
|
-
raw = response.body
|
|
242
|
-
? discardSentinel(response.body, matcher.sseSentinel)
|
|
243
|
-
: response.body;
|
|
240
|
+
raw = response.body;
|
|
244
241
|
break;
|
|
245
242
|
case "nil":
|
|
246
243
|
body = await response.text();
|
package/src/lib/security.ts
CHANGED
|
@@ -37,18 +37,13 @@ export const startCommand = buildCommand({
|
|
|
37
37
|
return z.string().parse(value);
|
|
38
38
|
},
|
|
39
39
|
},
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
variadic: true,
|
|
48
|
-
optional: true,
|
|
49
|
-
},
|
|
50
|
-
}
|
|
51
|
-
: {}),
|
|
40
|
+
scope: {
|
|
41
|
+
kind: "enum",
|
|
42
|
+
brief: "Mount tools/resources that match given scope (repeatable flag)",
|
|
43
|
+
values: mcpScopes,
|
|
44
|
+
variadic: true,
|
|
45
|
+
optional: true,
|
|
46
|
+
},
|
|
52
47
|
"access-token": {
|
|
53
48
|
kind: "parsed",
|
|
54
49
|
brief: "Sets the accessToken auth field for the API",
|
package/src/mcp-server/server.ts
CHANGED
|
@@ -12,7 +12,7 @@ const args = {
|
|
|
12
12
|
|
|
13
13
|
export const tool$basinsGetBasinConfig: ToolDefinition<typeof args> = {
|
|
14
14
|
name: "basins-get-basin-config",
|
|
15
|
-
description: `Get basin
|
|
15
|
+
description: `Get basin configuration.`,
|
|
16
16
|
scopes: ["read", "read", "read"],
|
|
17
17
|
args,
|
|
18
18
|
tool: async (client, args, ctx) => {
|
|
@@ -12,7 +12,7 @@ const args = {
|
|
|
12
12
|
|
|
13
13
|
export const tool$metricsAccountMetrics: ToolDefinition<typeof args> = {
|
|
14
14
|
name: "metrics-account-metrics",
|
|
15
|
-
description: `
|
|
15
|
+
description: `Account-level metrics.`,
|
|
16
16
|
scopes: ["read", "read", "read"],
|
|
17
17
|
args,
|
|
18
18
|
tool: async (client, args, ctx) => {
|
|
@@ -12,7 +12,7 @@ const args = {
|
|
|
12
12
|
|
|
13
13
|
export const tool$metricsBasinMetrics: ToolDefinition<typeof args> = {
|
|
14
14
|
name: "metrics-basin-metrics",
|
|
15
|
-
description: `
|
|
15
|
+
description: `Basin-level metrics.`,
|
|
16
16
|
scopes: ["read", "read", "read"],
|
|
17
17
|
args,
|
|
18
18
|
tool: async (client, args, ctx) => {
|
|
@@ -12,7 +12,7 @@ const args = {
|
|
|
12
12
|
|
|
13
13
|
export const tool$metricsStreamMetrics: ToolDefinition<typeof args> = {
|
|
14
14
|
name: "metrics-stream-metrics",
|
|
15
|
-
description: `
|
|
15
|
+
description: `Stream-level metrics.`,
|
|
16
16
|
scopes: ["read", "read", "read"],
|
|
17
17
|
args,
|
|
18
18
|
tool: async (client, args, ctx) => {
|
|
@@ -12,9 +12,7 @@ const args = {
|
|
|
12
12
|
|
|
13
13
|
export const tool$recordsAppend: ToolDefinition<typeof args> = {
|
|
14
14
|
name: "records-append",
|
|
15
|
-
description: `Append records
|
|
16
|
-
|
|
17
|
-
Append a batch of records to a stream.`,
|
|
15
|
+
description: `Append records.`,
|
|
18
16
|
scopes: ["write", "write", "write"],
|
|
19
17
|
args,
|
|
20
18
|
tool: async (client, args, ctx) => {
|
|
@@ -12,9 +12,7 @@ const args = {
|
|
|
12
12
|
|
|
13
13
|
export const tool$recordsCheckTail: ToolDefinition<typeof args> = {
|
|
14
14
|
name: "records-check-tail",
|
|
15
|
-
description: `Check the tail
|
|
16
|
-
|
|
17
|
-
Check the tail of a stream.`,
|
|
15
|
+
description: `Check the tail.`,
|
|
18
16
|
scopes: ["read", "read", "read"],
|
|
19
17
|
args,
|
|
20
18
|
tool: async (client, args, ctx) => {
|
|
@@ -12,9 +12,7 @@ const args = {
|
|
|
12
12
|
|
|
13
13
|
export const tool$recordsRead: ToolDefinition<typeof args> = {
|
|
14
14
|
name: "records-read",
|
|
15
|
-
description: `
|
|
16
|
-
|
|
17
|
-
Retrieve a batch of records, or set \`Accept: text/event-stream\` to stream using server-sent events.`,
|
|
15
|
+
description: `Read records.`,
|
|
18
16
|
scopes: ["read", "read", "read"],
|
|
19
17
|
args,
|
|
20
18
|
tool: async (client, args, ctx) => {
|
|
@@ -19,8 +19,7 @@ export type AccessTokenInfo = {
|
|
|
19
19
|
* Namespace streams based on the configured stream-level scope, which must be a prefix.
|
|
20
20
|
*
|
|
21
21
|
* @remarks
|
|
22
|
-
* Stream name arguments will be automatically prefixed, and the prefix will be stripped
|
|
23
|
-
* when listing streams.
|
|
22
|
+
* Stream name arguments will be automatically prefixed, and the prefix will be stripped when listing streams.
|
|
24
23
|
*/
|
|
25
24
|
autoPrefixStreams?: boolean | undefined;
|
|
26
25
|
/**
|
|
@@ -6,8 +6,8 @@ import * as z from "zod";
|
|
|
6
6
|
import { ClosedEnum } from "../../types/enums.js";
|
|
7
7
|
|
|
8
8
|
export const AccountMetricSet = {
|
|
9
|
-
ActiveBasins: "
|
|
10
|
-
AccountOps: "
|
|
9
|
+
ActiveBasins: "active-basins",
|
|
10
|
+
AccountOps: "account-ops",
|
|
11
11
|
} as const;
|
|
12
12
|
export type AccountMetricSet = ClosedEnum<typeof AccountMetricSet>;
|
|
13
13
|
|
|
@@ -31,12 +31,8 @@ export type Accumulation = {
|
|
|
31
31
|
* Timeseries values.
|
|
32
32
|
*
|
|
33
33
|
* @remarks
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
* point.
|
|
37
|
-
*
|
|
38
|
-
* The data point represented the accumulated value for a bucket of time, starting
|
|
39
|
-
* at the provided epoch, lasting for the duration of the `bucket_length` parameter above.
|
|
34
|
+
* Each element is a tuple of a timestamp in Unix epoch seconds and a data point.
|
|
35
|
+
* The data point represents the accumulated value for a bucket of time starting at the provided timestamp, lasting for the duration of the `bucket_length` parameter.
|
|
40
36
|
*/
|
|
41
37
|
values: Array<Array<number | number>>;
|
|
42
38
|
};
|
|
@@ -15,19 +15,19 @@ import {
|
|
|
15
15
|
} from "./appendrecord.js";
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
|
-
* Payload of an
|
|
18
|
+
* Payload of an `append` request.
|
|
19
19
|
*/
|
|
20
20
|
export type AppendInput = {
|
|
21
21
|
/**
|
|
22
|
-
* Enforce a fencing token which
|
|
22
|
+
* Enforce a fencing token, which starts out as an empty string that can be overridden by a `fence` command record.
|
|
23
23
|
*/
|
|
24
24
|
fencingToken?: string | null | undefined;
|
|
25
25
|
matchSeqNum?: number | null | undefined;
|
|
26
26
|
/**
|
|
27
|
-
* Batch of records to append atomically, which must contain at least one record, and no more
|
|
27
|
+
* Batch of records to append atomically, which must contain at least one record, and no more than 1000.
|
|
28
28
|
*
|
|
29
29
|
* @remarks
|
|
30
|
-
*
|
|
30
|
+
* The total size of a batch of records may not exceed 1 MiB of metered bytes.
|
|
31
31
|
*/
|
|
32
32
|
records: Array<AppendRecord>;
|
|
33
33
|
};
|