@s2-dev/streamstore 0.19.5 → 0.21.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/LICENSE +21 -201
- package/README.md +60 -10
- package/dist/cjs/accessTokens.d.ts +27 -14
- package/dist/cjs/accessTokens.d.ts.map +1 -1
- package/dist/cjs/accessTokens.js +72 -8
- package/dist/cjs/accessTokens.js.map +1 -1
- package/dist/cjs/basins.d.ts +29 -19
- package/dist/cjs/basins.d.ts.map +1 -1
- package/dist/cjs/basins.js +119 -9
- package/dist/cjs/basins.js.map +1 -1
- package/dist/cjs/batch-transform.d.ts +12 -16
- package/dist/cjs/batch-transform.d.ts.map +1 -1
- package/dist/cjs/batch-transform.js +17 -21
- package/dist/cjs/batch-transform.js.map +1 -1
- package/dist/cjs/common.d.ts +31 -24
- package/dist/cjs/common.d.ts.map +1 -1
- package/dist/cjs/common.js +22 -0
- package/dist/cjs/common.js.map +1 -1
- package/dist/cjs/endpoints.d.ts +63 -0
- package/dist/cjs/endpoints.d.ts.map +1 -0
- package/dist/cjs/endpoints.js +120 -0
- package/dist/cjs/endpoints.js.map +1 -0
- package/dist/cjs/error.d.ts.map +1 -1
- package/dist/cjs/error.js +11 -0
- package/dist/cjs/error.js.map +1 -1
- package/dist/cjs/generated/types.gen.d.ts +11 -20
- package/dist/cjs/generated/types.gen.d.ts.map +1 -1
- package/dist/cjs/index.d.ts +30 -46
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +50 -26
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/internal/case-transform.d.ts +59 -0
- package/dist/cjs/internal/case-transform.d.ts.map +1 -0
- package/dist/cjs/internal/case-transform.js +80 -0
- package/dist/cjs/internal/case-transform.js.map +1 -0
- package/dist/cjs/internal/mappers.d.ts +51 -0
- package/dist/cjs/internal/mappers.d.ts.map +1 -0
- package/dist/cjs/internal/mappers.js +225 -0
- package/dist/cjs/internal/mappers.js.map +1 -0
- package/dist/cjs/internal/sdk-types.d.ts +127 -0
- package/dist/cjs/internal/sdk-types.d.ts.map +1 -0
- package/dist/cjs/internal/sdk-types.js +9 -0
- package/dist/cjs/internal/sdk-types.js.map +1 -0
- package/dist/cjs/lib/base64.d.ts +8 -0
- package/dist/cjs/lib/base64.d.ts.map +1 -1
- package/dist/cjs/lib/base64.js +32 -12
- package/dist/cjs/lib/base64.js.map +1 -1
- package/dist/cjs/lib/event-stream.d.ts.map +1 -1
- package/dist/cjs/lib/event-stream.js +2 -1
- package/dist/cjs/lib/event-stream.js.map +1 -1
- package/dist/cjs/lib/paginate.d.ts +57 -0
- package/dist/cjs/lib/paginate.d.ts.map +1 -0
- package/dist/cjs/lib/paginate.js +51 -0
- package/dist/cjs/lib/paginate.js.map +1 -0
- package/dist/cjs/lib/result.d.ts +1 -1
- package/dist/cjs/lib/result.d.ts.map +1 -1
- package/dist/cjs/lib/retry.d.ts +47 -31
- package/dist/cjs/lib/retry.d.ts.map +1 -1
- package/dist/cjs/lib/retry.js +302 -201
- package/dist/cjs/lib/retry.js.map +1 -1
- package/dist/cjs/lib/stream/runtime.d.ts +1 -1
- package/dist/cjs/lib/stream/transport/fetch/index.d.ts +7 -9
- package/dist/cjs/lib/stream/transport/fetch/index.d.ts.map +1 -1
- package/dist/cjs/lib/stream/transport/fetch/index.js +38 -39
- package/dist/cjs/lib/stream/transport/fetch/index.js.map +1 -1
- package/dist/cjs/lib/stream/transport/fetch/shared.d.ts +7 -2
- package/dist/cjs/lib/stream/transport/fetch/shared.d.ts.map +1 -1
- package/dist/cjs/lib/stream/transport/fetch/shared.js +56 -110
- package/dist/cjs/lib/stream/transport/fetch/shared.js.map +1 -1
- package/dist/cjs/lib/stream/transport/proto.d.ts +9 -0
- package/dist/cjs/lib/stream/transport/proto.d.ts.map +1 -0
- package/dist/cjs/lib/stream/transport/proto.js +118 -0
- package/dist/cjs/lib/stream/transport/proto.js.map +1 -0
- package/dist/cjs/lib/stream/transport/s2s/index.d.ts +3 -3
- package/dist/cjs/lib/stream/transport/s2s/index.d.ts.map +1 -1
- package/dist/cjs/lib/stream/transport/s2s/index.js +115 -82
- package/dist/cjs/lib/stream/transport/s2s/index.js.map +1 -1
- package/dist/cjs/lib/stream/types.d.ts +81 -36
- package/dist/cjs/lib/stream/types.d.ts.map +1 -1
- package/dist/cjs/lib/stream/types.js +18 -0
- package/dist/cjs/lib/stream/types.js.map +1 -1
- package/dist/cjs/metrics.d.ts +18 -17
- package/dist/cjs/metrics.d.ts.map +1 -1
- package/dist/cjs/metrics.js +67 -12
- package/dist/cjs/metrics.js.map +1 -1
- package/dist/cjs/producer.d.ts +82 -0
- package/dist/cjs/producer.d.ts.map +1 -0
- package/dist/cjs/producer.js +305 -0
- package/dist/cjs/producer.js.map +1 -0
- package/dist/cjs/s2.d.ts +1 -2
- package/dist/cjs/s2.d.ts.map +1 -1
- package/dist/cjs/s2.js +11 -15
- package/dist/cjs/s2.js.map +1 -1
- package/dist/cjs/stream.d.ts +26 -12
- package/dist/cjs/stream.d.ts.map +1 -1
- package/dist/cjs/stream.js +77 -13
- package/dist/cjs/stream.js.map +1 -1
- package/dist/cjs/streams.d.ts +29 -19
- package/dist/cjs/streams.d.ts.map +1 -1
- package/dist/cjs/streams.js +120 -9
- package/dist/cjs/streams.js.map +1 -1
- package/dist/cjs/types.d.ts +624 -0
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/cjs/types.js +129 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/utils.d.ts +1 -22
- package/dist/cjs/utils.d.ts.map +1 -1
- package/dist/cjs/utils.js +0 -42
- package/dist/cjs/utils.js.map +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/accessTokens.d.ts +27 -14
- package/dist/esm/accessTokens.d.ts.map +1 -1
- package/dist/esm/accessTokens.js +73 -9
- package/dist/esm/accessTokens.js.map +1 -1
- package/dist/esm/basins.d.ts +29 -19
- package/dist/esm/basins.d.ts.map +1 -1
- package/dist/esm/basins.js +119 -9
- package/dist/esm/basins.js.map +1 -1
- package/dist/esm/batch-transform.d.ts +12 -16
- package/dist/esm/batch-transform.d.ts.map +1 -1
- package/dist/esm/batch-transform.js +18 -22
- package/dist/esm/batch-transform.js.map +1 -1
- package/dist/esm/common.d.ts +31 -24
- package/dist/esm/common.d.ts.map +1 -1
- package/dist/esm/common.js +20 -1
- package/dist/esm/common.js.map +1 -1
- package/dist/esm/endpoints.d.ts +63 -0
- package/dist/esm/endpoints.d.ts.map +1 -0
- package/dist/esm/endpoints.js +115 -0
- package/dist/esm/endpoints.js.map +1 -0
- package/dist/esm/error.d.ts.map +1 -1
- package/dist/esm/error.js +11 -0
- package/dist/esm/error.js.map +1 -1
- package/dist/esm/generated/types.gen.d.ts +11 -20
- package/dist/esm/generated/types.gen.d.ts.map +1 -1
- package/dist/esm/index.d.ts +30 -46
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +33 -19
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/case-transform.d.ts +59 -0
- package/dist/esm/internal/case-transform.d.ts.map +1 -0
- package/dist/esm/internal/case-transform.js +76 -0
- package/dist/esm/internal/case-transform.js.map +1 -0
- package/dist/esm/internal/mappers.d.ts +51 -0
- package/dist/esm/internal/mappers.d.ts.map +1 -0
- package/dist/esm/internal/mappers.js +218 -0
- package/dist/esm/internal/mappers.js.map +1 -0
- package/dist/esm/internal/sdk-types.d.ts +127 -0
- package/dist/esm/internal/sdk-types.d.ts.map +1 -0
- package/dist/esm/internal/sdk-types.js +8 -0
- package/dist/esm/internal/sdk-types.js.map +1 -0
- package/dist/esm/lib/base64.d.ts +8 -0
- package/dist/esm/lib/base64.d.ts.map +1 -1
- package/dist/esm/lib/base64.js +30 -11
- package/dist/esm/lib/base64.js.map +1 -1
- package/dist/esm/lib/event-stream.d.ts.map +1 -1
- package/dist/esm/lib/event-stream.js +2 -1
- package/dist/esm/lib/event-stream.js.map +1 -1
- package/dist/esm/lib/paginate.d.ts +57 -0
- package/dist/esm/lib/paginate.d.ts.map +1 -0
- package/dist/esm/lib/paginate.js +48 -0
- package/dist/esm/lib/paginate.js.map +1 -0
- package/dist/esm/lib/result.d.ts +1 -1
- package/dist/esm/lib/result.d.ts.map +1 -1
- package/dist/esm/lib/retry.d.ts +47 -31
- package/dist/esm/lib/retry.d.ts.map +1 -1
- package/dist/esm/lib/retry.js +303 -201
- package/dist/esm/lib/retry.js.map +1 -1
- package/dist/esm/lib/stream/runtime.d.ts +1 -1
- package/dist/esm/lib/stream/transport/fetch/index.d.ts +7 -9
- package/dist/esm/lib/stream/transport/fetch/index.d.ts.map +1 -1
- package/dist/esm/lib/stream/transport/fetch/index.js +40 -41
- package/dist/esm/lib/stream/transport/fetch/index.js.map +1 -1
- package/dist/esm/lib/stream/transport/fetch/shared.d.ts +7 -2
- package/dist/esm/lib/stream/transport/fetch/shared.d.ts.map +1 -1
- package/dist/esm/lib/stream/transport/fetch/shared.js +58 -112
- package/dist/esm/lib/stream/transport/fetch/shared.js.map +1 -1
- package/dist/esm/lib/stream/transport/proto.d.ts +9 -0
- package/dist/esm/lib/stream/transport/proto.d.ts.map +1 -0
- package/dist/esm/lib/stream/transport/proto.js +110 -0
- package/dist/esm/lib/stream/transport/proto.js.map +1 -0
- package/dist/esm/lib/stream/transport/s2s/index.d.ts +3 -3
- package/dist/esm/lib/stream/transport/s2s/index.d.ts.map +1 -1
- package/dist/esm/lib/stream/transport/s2s/index.js +116 -82
- package/dist/esm/lib/stream/transport/s2s/index.js.map +1 -1
- package/dist/esm/lib/stream/types.d.ts +81 -36
- package/dist/esm/lib/stream/types.d.ts.map +1 -1
- package/dist/esm/lib/stream/types.js +17 -1
- package/dist/esm/lib/stream/types.js.map +1 -1
- package/dist/esm/metrics.d.ts +18 -17
- package/dist/esm/metrics.d.ts.map +1 -1
- package/dist/esm/metrics.js +66 -12
- package/dist/esm/metrics.js.map +1 -1
- package/dist/esm/producer.d.ts +82 -0
- package/dist/esm/producer.d.ts.map +1 -0
- package/dist/esm/producer.js +300 -0
- package/dist/esm/producer.js.map +1 -0
- package/dist/esm/s2.d.ts +1 -2
- package/dist/esm/s2.d.ts.map +1 -1
- package/dist/esm/s2.js +12 -16
- package/dist/esm/s2.js.map +1 -1
- package/dist/esm/stream.d.ts +26 -12
- package/dist/esm/stream.d.ts.map +1 -1
- package/dist/esm/stream.js +79 -15
- package/dist/esm/stream.js.map +1 -1
- package/dist/esm/streams.d.ts +29 -19
- package/dist/esm/streams.d.ts.map +1 -1
- package/dist/esm/streams.js +120 -9
- package/dist/esm/streams.js.map +1 -1
- package/dist/esm/types.d.ts +624 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +126 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/utils.d.ts +1 -22
- package/dist/esm/utils.d.ts.map +1 -1
- package/dist/esm/utils.js +0 -41
- package/dist/esm/utils.js.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/package.json +4 -3
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* S2 SDK Types
|
|
4
|
+
*
|
|
5
|
+
* All public SDK types are defined here. Types use camelCase field names
|
|
6
|
+
* for idiomatic JavaScript/TypeScript usage.
|
|
7
|
+
*
|
|
8
|
+
* Generated types (snake_case, matching API wire format) are available
|
|
9
|
+
* from "./generated/types.gen.js" as the `API` namespace.
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.AppendInput = exports.MAX_APPEND_BYTES = exports.MAX_APPEND_RECORDS = exports.AppendRecord = void 0;
|
|
13
|
+
const error_js_1 = require("./error.js");
|
|
14
|
+
const utils_js_1 = require("./utils.js");
|
|
15
|
+
const textEncoder = new TextEncoder();
|
|
16
|
+
/**
|
|
17
|
+
* Factory functions for creating AppendRecord instances.
|
|
18
|
+
*/
|
|
19
|
+
var AppendRecord;
|
|
20
|
+
(function (AppendRecord) {
|
|
21
|
+
/**
|
|
22
|
+
* Create a string-format append record with pre-calculated metered size.
|
|
23
|
+
*/
|
|
24
|
+
function string(params) {
|
|
25
|
+
// Create record with placeholder, then calculate actual size
|
|
26
|
+
const record = {
|
|
27
|
+
body: params.body,
|
|
28
|
+
headers: params.headers,
|
|
29
|
+
timestamp: params.timestamp,
|
|
30
|
+
meteredBytes: 0,
|
|
31
|
+
};
|
|
32
|
+
// Safe to cast: we're setting a readonly property during construction
|
|
33
|
+
record.meteredBytes =
|
|
34
|
+
(0, utils_js_1.meteredBytes)(record);
|
|
35
|
+
return record;
|
|
36
|
+
}
|
|
37
|
+
AppendRecord.string = string;
|
|
38
|
+
/**
|
|
39
|
+
* Create a bytes-format append record with pre-calculated metered size.
|
|
40
|
+
*/
|
|
41
|
+
function bytes(params) {
|
|
42
|
+
// Create record with placeholder, then calculate actual size
|
|
43
|
+
const record = {
|
|
44
|
+
body: params.body,
|
|
45
|
+
headers: params.headers,
|
|
46
|
+
timestamp: params.timestamp,
|
|
47
|
+
meteredBytes: 0,
|
|
48
|
+
};
|
|
49
|
+
// Safe to cast: we're setting a readonly property during construction
|
|
50
|
+
record.meteredBytes =
|
|
51
|
+
(0, utils_js_1.meteredBytes)(record);
|
|
52
|
+
return record;
|
|
53
|
+
}
|
|
54
|
+
AppendRecord.bytes = bytes;
|
|
55
|
+
/**
|
|
56
|
+
* Create a fence command record.
|
|
57
|
+
*/
|
|
58
|
+
function fence(fencingToken, timestamp) {
|
|
59
|
+
return string({
|
|
60
|
+
body: fencingToken,
|
|
61
|
+
headers: [["", "fence"]],
|
|
62
|
+
timestamp,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
AppendRecord.fence = fence;
|
|
66
|
+
/**
|
|
67
|
+
* Create a trim command record.
|
|
68
|
+
*/
|
|
69
|
+
function trim(seqNum, timestamp) {
|
|
70
|
+
const buffer = new Uint8Array(8);
|
|
71
|
+
const view = new DataView(buffer.buffer);
|
|
72
|
+
view.setBigUint64(0, BigInt(seqNum), false);
|
|
73
|
+
return bytes({
|
|
74
|
+
body: buffer,
|
|
75
|
+
headers: [[textEncoder.encode(""), textEncoder.encode("trim")]],
|
|
76
|
+
timestamp,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
AppendRecord.trim = trim;
|
|
80
|
+
})(AppendRecord || (exports.AppendRecord = AppendRecord = {}));
|
|
81
|
+
// =============================================================================
|
|
82
|
+
// Append Input
|
|
83
|
+
// =============================================================================
|
|
84
|
+
/** Maximum number of records in a single append batch. */
|
|
85
|
+
exports.MAX_APPEND_RECORDS = 1000;
|
|
86
|
+
/** Maximum total metered bytes for records in a single append batch (1 MiB). */
|
|
87
|
+
exports.MAX_APPEND_BYTES = 1024 * 1024;
|
|
88
|
+
/**
|
|
89
|
+
* Factory functions for creating AppendInput instances.
|
|
90
|
+
*/
|
|
91
|
+
var AppendInput;
|
|
92
|
+
(function (AppendInput) {
|
|
93
|
+
/**
|
|
94
|
+
* Create an AppendInput with validation.
|
|
95
|
+
*
|
|
96
|
+
* @throws {S2Error} If validation fails (empty, too many records, or too large)
|
|
97
|
+
*/
|
|
98
|
+
function create(records, options) {
|
|
99
|
+
if (records.length === 0) {
|
|
100
|
+
throw new error_js_1.S2Error({
|
|
101
|
+
message: "AppendInput must contain at least one record",
|
|
102
|
+
origin: "sdk",
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
if (records.length > exports.MAX_APPEND_RECORDS) {
|
|
106
|
+
throw new error_js_1.S2Error({
|
|
107
|
+
message: `AppendInput cannot contain more than ${exports.MAX_APPEND_RECORDS} records (got ${records.length})`,
|
|
108
|
+
origin: "sdk",
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
const totalBytes = records.reduce((sum, r) => sum + r.meteredBytes, 0);
|
|
112
|
+
if (totalBytes > exports.MAX_APPEND_BYTES) {
|
|
113
|
+
throw new error_js_1.S2Error({
|
|
114
|
+
message: `AppendInput exceeds maximum of ${exports.MAX_APPEND_BYTES} bytes (got ${totalBytes} bytes)`,
|
|
115
|
+
origin: "sdk",
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
return {
|
|
119
|
+
records,
|
|
120
|
+
matchSeqNum: options?.matchSeqNum === undefined
|
|
121
|
+
? undefined
|
|
122
|
+
: Math.floor(options.matchSeqNum),
|
|
123
|
+
fencingToken: options?.fencingToken,
|
|
124
|
+
meteredBytes: totalBytes,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
AppendInput.create = create;
|
|
128
|
+
})(AppendInput || (exports.AppendInput = AppendInput = {}));
|
|
129
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/utils.d.ts
CHANGED
|
@@ -1,24 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export type AppendRecord = AppendRecordType;
|
|
3
|
-
declare function appendRecordMake(body?: string, headers?: AppendHeaders<"string">, timestamp?: number): AppendRecord;
|
|
4
|
-
declare function appendRecordMake(body?: Uint8Array, headers?: AppendHeaders<"bytes">, timestamp?: number): AppendRecord;
|
|
5
|
-
declare function appendRecordCommand(command: string, body?: string, timestamp?: number): AppendRecord;
|
|
6
|
-
declare function appendRecordCommand(command: Uint8Array, body?: Uint8Array, timestamp?: number): AppendRecord;
|
|
7
|
-
/**
|
|
8
|
-
* Helpers to construct appendable records.
|
|
9
|
-
*
|
|
10
|
-
* These helpers mirror the OpenAPI record schema and add convenience builders for S2 command records:
|
|
11
|
-
* - `make` creates a normal record
|
|
12
|
-
* - `command` creates a command record with an empty-name header set to the command name
|
|
13
|
-
* - `fence` is a command record enforcing a fencing token
|
|
14
|
-
* - `trim` is a command record that encodes a sequence number for trimming
|
|
15
|
-
*/
|
|
16
|
-
export declare const AppendRecord: {
|
|
17
|
-
readonly make: typeof appendRecordMake;
|
|
18
|
-
readonly command: typeof appendRecordCommand;
|
|
19
|
-
readonly fence: (fencing_token: string, timestamp?: number) => AppendRecord;
|
|
20
|
-
readonly trim: (seqNum: number | bigint, timestamp?: number) => AppendRecord;
|
|
21
|
-
};
|
|
1
|
+
import type { AppendRecord, ReadRecord } from "./lib/stream/types.js";
|
|
22
2
|
/**
|
|
23
3
|
* Calculate the UTF-8 byte length of a string.
|
|
24
4
|
* Handles all Unicode characters including surrogate pairs correctly.
|
|
@@ -42,5 +22,4 @@ export declare function utf8ByteLength(str: string): number;
|
|
|
42
22
|
*/
|
|
43
23
|
export declare function meteredBytes<Format extends "string" | "bytes">(record: AppendRecord | ReadRecord<Format>): number;
|
|
44
24
|
export declare function computeAppendRecordFormat(record: AppendRecord): "string" | "bytes";
|
|
45
|
-
export {};
|
|
46
25
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/cjs/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEtE;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAiClD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,MAAM,SAAS,QAAQ,GAAG,OAAO,EAC7D,MAAM,EAAE,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,GACvC,MAAM,CAgCR;AAED,wBAAgB,yBAAyB,CACxC,MAAM,EAAE,YAAY,GAClB,QAAQ,GAAG,OAAO,CAiBpB"}
|
package/dist/cjs/utils.js
CHANGED
|
@@ -1,50 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AppendRecord = void 0;
|
|
4
3
|
exports.utf8ByteLength = utf8ByteLength;
|
|
5
4
|
exports.meteredBytes = meteredBytes;
|
|
6
5
|
exports.computeAppendRecordFormat = computeAppendRecordFormat;
|
|
7
|
-
function appendRecordMake(body, headers, timestamp) {
|
|
8
|
-
return {
|
|
9
|
-
body,
|
|
10
|
-
headers,
|
|
11
|
-
timestamp,
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
function appendRecordCommand(command, body, timestamp) {
|
|
15
|
-
const headers = (() => {
|
|
16
|
-
if (typeof command === "string") {
|
|
17
|
-
return [["", command]];
|
|
18
|
-
}
|
|
19
|
-
return [[new TextEncoder().encode(""), command]];
|
|
20
|
-
})();
|
|
21
|
-
// safety: we know the types are correct because of the overloads
|
|
22
|
-
return exports.AppendRecord.make(body, headers, timestamp);
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Helpers to construct appendable records.
|
|
26
|
-
*
|
|
27
|
-
* These helpers mirror the OpenAPI record schema and add convenience builders for S2 command records:
|
|
28
|
-
* - `make` creates a normal record
|
|
29
|
-
* - `command` creates a command record with an empty-name header set to the command name
|
|
30
|
-
* - `fence` is a command record enforcing a fencing token
|
|
31
|
-
* - `trim` is a command record that encodes a sequence number for trimming
|
|
32
|
-
*/
|
|
33
|
-
exports.AppendRecord = {
|
|
34
|
-
// overloads for only string or only bytes
|
|
35
|
-
make: appendRecordMake,
|
|
36
|
-
command: appendRecordCommand,
|
|
37
|
-
fence: (fencing_token, timestamp) => {
|
|
38
|
-
return exports.AppendRecord.command("fence", fencing_token, timestamp);
|
|
39
|
-
},
|
|
40
|
-
trim: (seqNum, timestamp) => {
|
|
41
|
-
// Encode sequence number as 8 big-endian bytes
|
|
42
|
-
const buffer = new Uint8Array(8);
|
|
43
|
-
const view = new DataView(buffer.buffer);
|
|
44
|
-
view.setBigUint64(0, BigInt(seqNum), false); // false = big-endian
|
|
45
|
-
return exports.AppendRecord.command(new TextEncoder().encode("trim"), buffer, timestamp);
|
|
46
|
-
},
|
|
47
|
-
};
|
|
48
6
|
/**
|
|
49
7
|
* Calculate the UTF-8 byte length of a string.
|
|
50
8
|
* Handles all Unicode characters including surrogate pairs correctly.
|
package/dist/cjs/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/version.d.ts
CHANGED
package/dist/cjs/version.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { RetryConfig, S2RequestOptions } from "./common.js";
|
|
2
2
|
import type { Client } from "./generated/client/types.gen.js";
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
}
|
|
3
|
+
import type * as Types from "./types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Account-scoped helper for listing, issuing, and revoking access tokens.
|
|
6
|
+
*
|
|
7
|
+
* Acquire via {@link S2.accessTokens}. Use {@link S2AccessTokens.listAll} for async iteration.
|
|
8
|
+
*/
|
|
10
9
|
export declare class S2AccessTokens {
|
|
11
10
|
readonly client: Client;
|
|
12
11
|
private readonly retryConfig?;
|
|
@@ -15,24 +14,38 @@ export declare class S2AccessTokens {
|
|
|
15
14
|
* List access tokens.
|
|
16
15
|
*
|
|
17
16
|
* @param args.prefix Filter to IDs beginning with this prefix
|
|
18
|
-
* @param args.
|
|
17
|
+
* @param args.startAfter Filter to IDs lexicographically after this value
|
|
19
18
|
* @param args.limit Max results (up to 1000)
|
|
20
19
|
*/
|
|
21
|
-
list(args?:
|
|
20
|
+
list(args?: Types.ListAccessTokensInput, options?: S2RequestOptions): Promise<Types.ListAccessTokensResponse>;
|
|
21
|
+
/**
|
|
22
|
+
* List all access tokens with automatic pagination.
|
|
23
|
+
* Returns a lazy async iterable that fetches pages as needed.
|
|
24
|
+
*
|
|
25
|
+
* @param args - Optional filtering options: `prefix` to filter by ID prefix, `limit` for max results per page
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```ts
|
|
29
|
+
* for await (const token of s2.accessTokens.listAll({ prefix: "service-" })) {
|
|
30
|
+
* console.log(token.id);
|
|
31
|
+
* }
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
listAll(args?: Types.ListAllAccessTokensInput, options?: S2RequestOptions): AsyncIterable<Types.AccessTokenInfo>;
|
|
22
35
|
/**
|
|
23
36
|
* Issue a new access token.
|
|
24
37
|
*
|
|
25
38
|
* @param args.id Unique token ID (1-96 bytes)
|
|
26
39
|
* @param args.scope Token scope (operations and resource sets)
|
|
27
|
-
* @param args.
|
|
28
|
-
* @param args.
|
|
40
|
+
* @param args.autoPrefixStreams Namespace stream names by configured prefix scope
|
|
41
|
+
* @param args.expiresAt Expiration time (Date or RFC 3339 string); defaults to requestor's token expiry
|
|
29
42
|
*/
|
|
30
|
-
issue(args:
|
|
43
|
+
issue(args: Types.IssueAccessTokenInput, options?: S2RequestOptions): Promise<Types.IssueAccessTokenResponse>;
|
|
31
44
|
/**
|
|
32
45
|
* Revoke an access token by ID.
|
|
33
46
|
*
|
|
34
47
|
* @param args.id Token ID to revoke
|
|
35
48
|
*/
|
|
36
|
-
revoke(args:
|
|
49
|
+
revoke(args: Types.RevokeAccessTokenInput, options?: S2RequestOptions): Promise<void>;
|
|
37
50
|
}
|
|
38
51
|
//# sourceMappingURL=accessTokens.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessTokens.d.ts","sourceRoot":"","sources":["../../src/accessTokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"accessTokens.d.ts","sourceRoot":"","sources":["../../src/accessTokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAS9D,OAAO,KAAK,KAAK,KAAK,MAAM,YAAY,CAAC;AA4BzC;;;;GAIG;AACH,qBAAa,cAAc;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAc;gBAE/B,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW;IAKrD;;;;;;OAMG;IACU,IAAI,CAChB,IAAI,CAAC,EAAE,KAAK,CAAC,qBAAqB,EAClC,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC;IAiB1C;;;;;;;;;;;;OAYG;IACI,OAAO,CACb,IAAI,CAAC,EAAE,KAAK,CAAC,wBAAwB,EACrC,OAAO,CAAC,EAAE,gBAAgB,GACxB,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC;IAYvC;;;;;;;OAOG;IACU,KAAK,CACjB,IAAI,EAAE,KAAK,CAAC,qBAAqB,EACjC,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC;IAkB1C;;;;OAIG;IACU,MAAM,CAClB,IAAI,EAAE,KAAK,CAAC,sBAAsB,EAClC,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,IAAI,CAAC;CAWhB"}
|
package/dist/esm/accessTokens.js
CHANGED
|
@@ -1,6 +1,40 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { withS2Data } from "./error.js";
|
|
2
2
|
import { issueAccessToken, listAccessTokens, revokeAccessToken, } from "./generated/index.js";
|
|
3
|
+
import { toCamelCase, toSnakeCase } from "./internal/case-transform.js";
|
|
4
|
+
import { paginate } from "./lib/paginate.js";
|
|
3
5
|
import { withRetries } from "./lib/retry.js";
|
|
6
|
+
/** Convert expiresAt input (Date, milliseconds, or string) to RFC 3339 string for API. */
|
|
7
|
+
function toISOString(value) {
|
|
8
|
+
if (value === null)
|
|
9
|
+
return null;
|
|
10
|
+
if (value === undefined)
|
|
11
|
+
return undefined;
|
|
12
|
+
if (value instanceof Date)
|
|
13
|
+
return value.toISOString();
|
|
14
|
+
if (typeof value === "number")
|
|
15
|
+
return new Date(value).toISOString();
|
|
16
|
+
return value;
|
|
17
|
+
}
|
|
18
|
+
/** Convert expiresAt from API (ISO string) to Date. */
|
|
19
|
+
function toDate(value) {
|
|
20
|
+
if (value === null)
|
|
21
|
+
return null;
|
|
22
|
+
if (value === undefined)
|
|
23
|
+
return undefined;
|
|
24
|
+
return new Date(value);
|
|
25
|
+
}
|
|
26
|
+
/** Transform AccessTokenInfo response: convert expiresAt to Date. */
|
|
27
|
+
function transformTokenInfo(token) {
|
|
28
|
+
return {
|
|
29
|
+
...token,
|
|
30
|
+
expiresAt: toDate(token.expiresAt),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Account-scoped helper for listing, issuing, and revoking access tokens.
|
|
35
|
+
*
|
|
36
|
+
* Acquire via {@link S2.accessTokens}. Use {@link S2AccessTokens.listAll} for async iteration.
|
|
37
|
+
*/
|
|
4
38
|
export class S2AccessTokens {
|
|
5
39
|
client;
|
|
6
40
|
retryConfig;
|
|
@@ -12,34 +46,64 @@ export class S2AccessTokens {
|
|
|
12
46
|
* List access tokens.
|
|
13
47
|
*
|
|
14
48
|
* @param args.prefix Filter to IDs beginning with this prefix
|
|
15
|
-
* @param args.
|
|
49
|
+
* @param args.startAfter Filter to IDs lexicographically after this value
|
|
16
50
|
* @param args.limit Max results (up to 1000)
|
|
17
51
|
*/
|
|
18
52
|
async list(args, options) {
|
|
19
|
-
|
|
53
|
+
const response = await withRetries(this.retryConfig, async () => {
|
|
20
54
|
return await withS2Data(() => listAccessTokens({
|
|
21
55
|
client: this.client,
|
|
22
|
-
query: args,
|
|
56
|
+
query: toSnakeCase(args),
|
|
23
57
|
...options,
|
|
24
58
|
}));
|
|
25
59
|
});
|
|
60
|
+
const camelCased = toCamelCase(response);
|
|
61
|
+
return {
|
|
62
|
+
...camelCased,
|
|
63
|
+
accessTokens: camelCased.accessTokens.map(transformTokenInfo),
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* List all access tokens with automatic pagination.
|
|
68
|
+
* Returns a lazy async iterable that fetches pages as needed.
|
|
69
|
+
*
|
|
70
|
+
* @param args - Optional filtering options: `prefix` to filter by ID prefix, `limit` for max results per page
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```ts
|
|
74
|
+
* for await (const token of s2.accessTokens.listAll({ prefix: "service-" })) {
|
|
75
|
+
* console.log(token.id);
|
|
76
|
+
* }
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
listAll(args, options) {
|
|
80
|
+
return paginate((a) => this.list(a, options).then((r) => ({
|
|
81
|
+
items: r.accessTokens,
|
|
82
|
+
hasMore: r.hasMore,
|
|
83
|
+
})), args ?? {}, (token) => token.id);
|
|
26
84
|
}
|
|
27
85
|
/**
|
|
28
86
|
* Issue a new access token.
|
|
29
87
|
*
|
|
30
88
|
* @param args.id Unique token ID (1-96 bytes)
|
|
31
89
|
* @param args.scope Token scope (operations and resource sets)
|
|
32
|
-
* @param args.
|
|
33
|
-
* @param args.
|
|
90
|
+
* @param args.autoPrefixStreams Namespace stream names by configured prefix scope
|
|
91
|
+
* @param args.expiresAt Expiration time (Date or RFC 3339 string); defaults to requestor's token expiry
|
|
34
92
|
*/
|
|
35
93
|
async issue(args, options) {
|
|
36
|
-
|
|
94
|
+
// Convert Date to ISO string for API
|
|
95
|
+
const apiArgs = {
|
|
96
|
+
...args,
|
|
97
|
+
expiresAt: toISOString(args.expiresAt),
|
|
98
|
+
};
|
|
99
|
+
const response = await withRetries(this.retryConfig, async () => {
|
|
37
100
|
return await withS2Data(() => issueAccessToken({
|
|
38
101
|
client: this.client,
|
|
39
|
-
body:
|
|
102
|
+
body: toSnakeCase(apiArgs),
|
|
40
103
|
...options,
|
|
41
104
|
}));
|
|
42
105
|
});
|
|
106
|
+
return toCamelCase(response);
|
|
43
107
|
}
|
|
44
108
|
/**
|
|
45
109
|
* Revoke an access token by ID.
|
|
@@ -47,7 +111,7 @@ export class S2AccessTokens {
|
|
|
47
111
|
* @param args.id Token ID to revoke
|
|
48
112
|
*/
|
|
49
113
|
async revoke(args, options) {
|
|
50
|
-
|
|
114
|
+
await withRetries(this.retryConfig, async () => {
|
|
51
115
|
return await withS2Data(() => revokeAccessToken({
|
|
52
116
|
client: this.client,
|
|
53
117
|
path: args,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessTokens.js","sourceRoot":"","sources":["../../src/accessTokens.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"accessTokens.js","sourceRoot":"","sources":["../../src/accessTokens.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/basins.d.ts
CHANGED
|
@@ -1,16 +1,11 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { RetryConfig, S2RequestOptions } from "./common.js";
|
|
2
2
|
import type { Client } from "./generated/client/types.gen.js";
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
export interface DeleteBasinArgs extends DataToObject<DeleteBasinData> {
|
|
11
|
-
}
|
|
12
|
-
export interface ReconfigureBasinArgs extends DataToObject<ReconfigureBasinData> {
|
|
13
|
-
}
|
|
3
|
+
import type * as Types from "./types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Account-scoped helper for listing, creating, deleting, and reconfiguring basins.
|
|
6
|
+
*
|
|
7
|
+
* Retrieve this via {@link S2.basins}. Each method retries according to the client-level retry config.
|
|
8
|
+
*/
|
|
14
9
|
export declare class S2Basins {
|
|
15
10
|
private readonly client;
|
|
16
11
|
private readonly retryConfig;
|
|
@@ -19,35 +14,50 @@ export declare class S2Basins {
|
|
|
19
14
|
* List basins.
|
|
20
15
|
*
|
|
21
16
|
* @param args.prefix Return basins whose names start with the given prefix
|
|
22
|
-
* @param args.
|
|
17
|
+
* @param args.startAfter Name to start after (for pagination)
|
|
23
18
|
* @param args.limit Max results (up to 1000)
|
|
24
19
|
*/
|
|
25
|
-
list(args?:
|
|
20
|
+
list(args?: Types.ListBasinsInput, options?: S2RequestOptions): Promise<Types.ListBasinsResponse>;
|
|
21
|
+
/**
|
|
22
|
+
* List all basins with automatic pagination.
|
|
23
|
+
* Returns a lazy async iterable that fetches pages as needed.
|
|
24
|
+
*
|
|
25
|
+
* @param includeDeleted - Include basins that are being deleted (default: false)
|
|
26
|
+
* @param args - Optional filtering options: `prefix` to filter by name prefix, `limit` for max results per page
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* for await (const basin of s2.basins.listAll(false, { prefix: "my-" })) {
|
|
31
|
+
* console.log(basin.name);
|
|
32
|
+
* }
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
listAll(includeDeleted?: boolean, args?: Types.ListAllBasinsInput, options?: S2RequestOptions): AsyncIterable<Types.BasinInfo>;
|
|
26
36
|
/**
|
|
27
37
|
* Create a basin.
|
|
28
38
|
*
|
|
29
39
|
* @param args.basin Globally unique basin name (8-48 chars, lowercase letters, numbers, hyphens; cannot begin or end with a hyphen)
|
|
30
|
-
* @param args.config Optional basin configuration (e.g.
|
|
40
|
+
* @param args.config Optional basin configuration (e.g. defaultStreamConfig)
|
|
31
41
|
* @param args.scope Basin scope
|
|
32
42
|
*/
|
|
33
|
-
create(args:
|
|
43
|
+
create(args: Types.CreateBasinInput, options?: S2RequestOptions): Promise<Types.CreateBasinResponse>;
|
|
34
44
|
/**
|
|
35
45
|
* Get basin configuration.
|
|
36
46
|
*
|
|
37
47
|
* @param args.basin Basin name
|
|
38
48
|
*/
|
|
39
|
-
getConfig(args:
|
|
49
|
+
getConfig(args: Types.GetBasinConfigInput, options?: S2RequestOptions): Promise<Types.BasinConfig>;
|
|
40
50
|
/**
|
|
41
51
|
* Delete a basin.
|
|
42
52
|
*
|
|
43
53
|
* @param args.basin Basin name
|
|
44
54
|
*/
|
|
45
|
-
delete(args:
|
|
55
|
+
delete(args: Types.DeleteBasinInput, options?: S2RequestOptions): Promise<void>;
|
|
46
56
|
/**
|
|
47
57
|
* Reconfigure a basin.
|
|
48
58
|
*
|
|
49
59
|
* @param args Configuration for the basin to reconfigure (including basin name and fields to change)
|
|
50
60
|
*/
|
|
51
|
-
reconfigure(args:
|
|
61
|
+
reconfigure(args: Types.ReconfigureBasinInput, options?: S2RequestOptions): Promise<Types.ReconfigureBasinResponse>;
|
|
52
62
|
}
|
|
53
63
|
//# sourceMappingURL=basins.d.ts.map
|
package/dist/esm/basins.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basins.d.ts","sourceRoot":"","sources":["../../src/basins.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"basins.d.ts","sourceRoot":"","sources":["../../src/basins.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAa9D,OAAO,KAAK,KAAK,KAAK,MAAM,YAAY,CAAC;AAsEzC;;;;GAIG;AACH,qBAAa,QAAQ;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;gBAE9B,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW;IAKpD;;;;;;OAMG;IACU,IAAI,CAChB,IAAI,CAAC,EAAE,KAAK,CAAC,eAAe,EAC5B,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC;IAapC;;;;;;;;;;;;;OAaG;IACI,OAAO,CACb,cAAc,UAAQ,EACtB,IAAI,CAAC,EAAE,KAAK,CAAC,kBAAkB,EAC/B,OAAO,CAAC,EAAE,gBAAgB,GACxB,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC;IAcjC;;;;;;OAMG;IACU,MAAM,CAClB,IAAI,EAAE,KAAK,CAAC,gBAAgB,EAC5B,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC;IAoBrC;;;;OAIG;IACU,SAAS,CACrB,IAAI,EAAE,KAAK,CAAC,mBAAmB,EAC/B,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC;IAc7B;;;;OAIG;IACU,MAAM,CAClB,IAAI,EAAE,KAAK,CAAC,gBAAgB,EAC5B,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,IAAI,CAAC;IAYhB;;;;OAIG;IACU,WAAW,CACvB,IAAI,EAAE,KAAK,CAAC,qBAAqB,EACjC,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC;CAmB1C"}
|