@syncular/core 0.1.3 → 0.2.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 +5 -19
- package/dist/blob-ref.d.ts +21 -0
- package/dist/blob-ref.js +97 -0
- package/dist/bytes.d.ts +45 -0
- package/dist/bytes.js +242 -0
- package/dist/canonical-json.d.ts +10 -0
- package/dist/canonical-json.js +18 -0
- package/dist/constants.d.ts +5 -0
- package/dist/constants.js +5 -0
- package/dist/crypto.d.ts +60 -0
- package/dist/crypto.js +251 -0
- package/dist/errors.d.ts +14 -0
- package/dist/errors.js +17 -0
- package/dist/frames.d.ts +24 -0
- package/dist/frames.js +42 -0
- package/dist/index.d.ts +18 -26
- package/dist/index.js +18 -43
- package/dist/message.d.ts +157 -0
- package/dist/message.js +786 -0
- package/dist/realtime.d.ts +92 -0
- package/dist/realtime.js +222 -0
- package/dist/render.d.ts +22 -0
- package/dist/render.js +273 -0
- package/dist/row-codec.d.ts +39 -0
- package/dist/row-codec.js +176 -0
- package/dist/segment.d.ts +18 -0
- package/dist/segment.js +105 -0
- package/dist/stream.d.ts +20 -0
- package/dist/stream.js +102 -0
- package/package.json +7 -59
- package/src/blob-ref.ts +135 -0
- package/src/bytes.ts +301 -0
- package/src/canonical-json.ts +20 -0
- package/src/constants.ts +7 -0
- package/src/crypto.ts +335 -0
- package/src/errors.ts +18 -0
- package/src/frames.ts +47 -0
- package/src/index.ts +18 -43
- package/src/message.ts +1024 -0
- package/src/realtime.ts +340 -0
- package/src/render.ts +325 -0
- package/src/row-codec.ts +265 -0
- package/src/segment.ts +150 -0
- package/src/stream.ts +128 -0
- package/dist/blobs.d.ts +0 -153
- package/dist/blobs.d.ts.map +0 -1
- package/dist/blobs.js +0 -47
- package/dist/blobs.js.map +0 -1
- package/dist/column-codecs.d.ts +0 -59
- package/dist/column-codecs.d.ts.map +0 -1
- package/dist/column-codecs.js +0 -159
- package/dist/column-codecs.js.map +0 -1
- package/dist/conflict.d.ts +0 -22
- package/dist/conflict.d.ts.map +0 -1
- package/dist/conflict.js +0 -81
- package/dist/conflict.js.map +0 -1
- package/dist/database.d.ts +0 -7
- package/dist/database.d.ts.map +0 -1
- package/dist/database.js +0 -14
- package/dist/database.js.map +0 -1
- package/dist/dialect.d.ts +0 -7
- package/dist/dialect.d.ts.map +0 -1
- package/dist/dialect.js +0 -2
- package/dist/dialect.js.map +0 -1
- package/dist/error-responses.d.ts +0 -393
- package/dist/error-responses.d.ts.map +0 -1
- package/dist/error-responses.js +0 -393
- package/dist/error-responses.js.map +0 -1
- package/dist/http/api-client.d.ts +0 -11
- package/dist/http/api-client.d.ts.map +0 -1
- package/dist/http/api-client.js +0 -30
- package/dist/http/api-client.js.map +0 -1
- package/dist/http/blob.d.ts +0 -6
- package/dist/http/blob.d.ts.map +0 -1
- package/dist/http/blob.js +0 -46
- package/dist/http/blob.js.map +0 -1
- package/dist/http/generated/api.d.ts +0 -5241
- package/dist/http/generated/api.d.ts.map +0 -1
- package/dist/http/generated/api.js +0 -6
- package/dist/http/generated/api.js.map +0 -1
- package/dist/http/index.d.ts +0 -18
- package/dist/http/index.d.ts.map +0 -1
- package/dist/http/index.js +0 -212
- package/dist/http/index.js.map +0 -1
- package/dist/http/shared.d.ts +0 -45
- package/dist/http/shared.d.ts.map +0 -1
- package/dist/http/shared.js +0 -122
- package/dist/http/shared.js.map +0 -1
- package/dist/http/transport-client.d.ts +0 -31
- package/dist/http/transport-client.d.ts.map +0 -1
- package/dist/http/transport-client.js +0 -193
- package/dist/http/transport-client.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/kysely-column-codecs.d.ts +0 -31
- package/dist/kysely-column-codecs.d.ts.map +0 -1
- package/dist/kysely-column-codecs.js +0 -452
- package/dist/kysely-column-codecs.js.map +0 -1
- package/dist/logger.d.ts +0 -29
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js +0 -26
- package/dist/logger.js.map +0 -1
- package/dist/proxy/index.d.ts +0 -54
- package/dist/proxy/index.d.ts.map +0 -1
- package/dist/proxy/index.js +0 -7
- package/dist/proxy/index.js.map +0 -1
- package/dist/schemas/blobs.d.ts +0 -82
- package/dist/schemas/blobs.d.ts.map +0 -1
- package/dist/schemas/blobs.js +0 -64
- package/dist/schemas/blobs.js.map +0 -1
- package/dist/schemas/common.d.ts +0 -100
- package/dist/schemas/common.d.ts.map +0 -1
- package/dist/schemas/common.js +0 -64
- package/dist/schemas/common.js.map +0 -1
- package/dist/schemas/index.d.ts +0 -7
- package/dist/schemas/index.d.ts.map +0 -1
- package/dist/schemas/index.js +0 -7
- package/dist/schemas/index.js.map +0 -1
- package/dist/schemas/sync.d.ts +0 -1065
- package/dist/schemas/sync.d.ts.map +0 -1
- package/dist/schemas/sync.js +0 -361
- package/dist/schemas/sync.js.map +0 -1
- package/dist/scopes/index.d.ts +0 -113
- package/dist/scopes/index.d.ts.map +0 -1
- package/dist/scopes/index.js +0 -103
- package/dist/scopes/index.js.map +0 -1
- package/dist/sentry.d.ts +0 -31
- package/dist/sentry.d.ts.map +0 -1
- package/dist/sentry.js +0 -147
- package/dist/sentry.js.map +0 -1
- package/dist/snapshot-chunks.d.ts +0 -110
- package/dist/snapshot-chunks.d.ts.map +0 -1
- package/dist/snapshot-chunks.js +0 -682
- package/dist/snapshot-chunks.js.map +0 -1
- package/dist/sync-packs.d.ts +0 -33
- package/dist/sync-packs.d.ts.map +0 -1
- package/dist/sync-packs.js +0 -821
- package/dist/sync-packs.js.map +0 -1
- package/dist/telemetry.d.ts +0 -114
- package/dist/telemetry.d.ts.map +0 -1
- package/dist/telemetry.js +0 -114
- package/dist/telemetry.js.map +0 -1
- package/dist/transforms.d.ts +0 -146
- package/dist/transforms.d.ts.map +0 -1
- package/dist/transforms.js +0 -155
- package/dist/transforms.js.map +0 -1
- package/dist/types.d.ts +0 -210
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -20
- package/dist/types.js.map +0 -1
- package/dist/utils/bytes.d.ts +0 -4
- package/dist/utils/bytes.d.ts.map +0 -1
- package/dist/utils/bytes.js +0 -66
- package/dist/utils/bytes.js.map +0 -1
- package/dist/utils/compression.d.ts +0 -22
- package/dist/utils/compression.d.ts.map +0 -1
- package/dist/utils/compression.js +0 -129
- package/dist/utils/compression.js.map +0 -1
- package/dist/utils/crypto.d.ts +0 -13
- package/dist/utils/crypto.d.ts.map +0 -1
- package/dist/utils/crypto.js +0 -107
- package/dist/utils/crypto.js.map +0 -1
- package/dist/utils/id.d.ts +0 -3
- package/dist/utils/id.d.ts.map +0 -1
- package/dist/utils/id.js +0 -25
- package/dist/utils/id.js.map +0 -1
- package/dist/utils/index.d.ts +0 -10
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -10
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/internal-runtime.d.ts +0 -16
- package/dist/utils/internal-runtime.d.ts.map +0 -1
- package/dist/utils/internal-runtime.js +0 -14
- package/dist/utils/internal-runtime.js.map +0 -1
- package/dist/utils/object.d.ts +0 -2
- package/dist/utils/object.d.ts.map +0 -1
- package/dist/utils/object.js +0 -4
- package/dist/utils/object.js.map +0 -1
- package/dist/utils/realtime-change-index.d.ts +0 -9
- package/dist/utils/realtime-change-index.d.ts.map +0 -1
- package/dist/utils/realtime-change-index.js +0 -36
- package/dist/utils/realtime-change-index.js.map +0 -1
- package/dist/utils/realtime-connection-registry.d.ts +0 -40
- package/dist/utils/realtime-connection-registry.d.ts.map +0 -1
- package/dist/utils/realtime-connection-registry.js +0 -237
- package/dist/utils/realtime-connection-registry.js.map +0 -1
- package/dist/utils/table-registry.d.ts +0 -10
- package/dist/utils/table-registry.d.ts.map +0 -1
- package/dist/utils/table-registry.js +0 -54
- package/dist/utils/table-registry.js.map +0 -1
- package/dist/utils/url.d.ts +0 -3
- package/dist/utils/url.d.ts.map +0 -1
- package/dist/utils/url.js +0 -20
- package/dist/utils/url.js.map +0 -1
- package/src/blobs.ts +0 -219
- package/src/column-codecs.ts +0 -262
- package/src/conflict.ts +0 -92
- package/src/database.ts +0 -21
- package/src/dialect.ts +0 -8
- package/src/error-responses.ts +0 -423
- package/src/http/api-client.ts +0 -39
- package/src/http/blob.ts +0 -95
- package/src/http/generated/api.ts +0 -5241
- package/src/http/index.ts +0 -365
- package/src/http/shared.ts +0 -220
- package/src/http/transport-client.ts +0 -314
- package/src/kysely-column-codecs.ts +0 -585
- package/src/logger.ts +0 -38
- package/src/proxy/index.ts +0 -57
- package/src/schemas/blobs.ts +0 -110
- package/src/schemas/common.ts +0 -89
- package/src/schemas/index.ts +0 -7
- package/src/schemas/sync.ts +0 -517
- package/src/scopes/index.ts +0 -237
- package/src/sentry.ts +0 -200
- package/src/snapshot-chunks.ts +0 -964
- package/src/sync-packs.ts +0 -1096
- package/src/telemetry.ts +0 -243
- package/src/transforms.ts +0 -256
- package/src/types.ts +0 -267
- package/src/utils/bytes.ts +0 -75
- package/src/utils/compression.ts +0 -187
- package/src/utils/crypto.ts +0 -146
- package/src/utils/id.ts +0 -34
- package/src/utils/index.ts +0 -9
- package/src/utils/internal-runtime.ts +0 -39
- package/src/utils/object.ts +0 -3
- package/src/utils/realtime-change-index.ts +0 -44
- package/src/utils/realtime-connection-registry.ts +0 -286
- package/src/utils/table-registry.ts +0 -67
- package/src/utils/url.ts +0 -29
package/dist/types.d.ts
DELETED
|
@@ -1,210 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @syncular/core - Shared types for sync infrastructure
|
|
3
|
-
*
|
|
4
|
-
* Non-protocol types: conflict detection, transport interfaces.
|
|
5
|
-
* Protocol types (SyncOp, SyncPushRequest, etc.) live in ./schemas/sync.ts
|
|
6
|
-
*/
|
|
7
|
-
import type { SyncCombinedRequest, SyncCombinedResponse } from './schemas/sync';
|
|
8
|
-
/**
|
|
9
|
-
* Result of a conflict check - no conflict
|
|
10
|
-
*/
|
|
11
|
-
interface ConflictCheckResultOk {
|
|
12
|
-
hasConflict: false;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Result of a conflict check - conflict detected
|
|
16
|
-
*/
|
|
17
|
-
interface ConflictCheckResultConflict {
|
|
18
|
-
hasConflict: true;
|
|
19
|
-
/** Fields with conflicting changes */
|
|
20
|
-
conflictingFields: string[];
|
|
21
|
-
/** Current server row state */
|
|
22
|
-
serverRow: Record<string, unknown>;
|
|
23
|
-
/** Current server version */
|
|
24
|
-
serverVersion: number;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Union type for conflict check results
|
|
28
|
-
*/
|
|
29
|
-
export type ConflictCheckResult = ConflictCheckResultOk | ConflictCheckResultConflict;
|
|
30
|
-
/**
|
|
31
|
-
* Result of a field-level merge - can merge
|
|
32
|
-
*/
|
|
33
|
-
export interface MergeResultOk {
|
|
34
|
-
canMerge: true;
|
|
35
|
-
/** Merged payload combining client and server changes */
|
|
36
|
-
mergedPayload: Record<string, unknown>;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Result of a field-level merge - cannot merge
|
|
40
|
-
*/
|
|
41
|
-
export interface MergeResultConflict {
|
|
42
|
-
canMerge: false;
|
|
43
|
-
/** Fields that cannot be auto-merged */
|
|
44
|
-
conflictingFields: string[];
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Union type for merge results
|
|
48
|
-
*/
|
|
49
|
-
export type MergeResult = MergeResultOk | MergeResultConflict;
|
|
50
|
-
/**
|
|
51
|
-
* Canonical identity base shape used across Syncular auth-bound APIs.
|
|
52
|
-
*/
|
|
53
|
-
export interface SyncIdentityBase {
|
|
54
|
-
actorId: string;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Options for transport operations.
|
|
58
|
-
* Provides hooks for auth errors and cancellation support.
|
|
59
|
-
*/
|
|
60
|
-
export type SyncAuthOperation = 'sync' | 'authLeaseIssue' | 'snapshotChunk' | 'snapshotChunkStream' | 'blobInitiateUpload' | 'blobCompleteUpload' | 'blobGetDownloadUrl';
|
|
61
|
-
export interface SyncAuthErrorContext {
|
|
62
|
-
operation: SyncAuthOperation;
|
|
63
|
-
status: 401 | 403;
|
|
64
|
-
}
|
|
65
|
-
export interface SyncAuthRetryContext extends SyncAuthErrorContext {
|
|
66
|
-
refreshResult: boolean;
|
|
67
|
-
}
|
|
68
|
-
export interface SyncAuthLifecycle {
|
|
69
|
-
/**
|
|
70
|
-
* Called when a request receives 401/403.
|
|
71
|
-
* Useful for marking auth/session as stale in app state.
|
|
72
|
-
*/
|
|
73
|
-
onAuthExpired?: (context: SyncAuthErrorContext) => Promise<void> | void;
|
|
74
|
-
/**
|
|
75
|
-
* Refresh credentials.
|
|
76
|
-
* Return true when refresh succeeded and a retry should be considered.
|
|
77
|
-
*/
|
|
78
|
-
refreshToken?: (context: SyncAuthErrorContext) => Promise<boolean> | boolean;
|
|
79
|
-
/**
|
|
80
|
-
* Final retry decision after refresh completes.
|
|
81
|
-
* Defaults to `refreshResult` when omitted.
|
|
82
|
-
*/
|
|
83
|
-
retryWithFreshToken?: (context: SyncAuthRetryContext) => Promise<boolean> | boolean;
|
|
84
|
-
}
|
|
85
|
-
export interface SyncTransportOptions {
|
|
86
|
-
/**
|
|
87
|
-
* First-class auth lifecycle callbacks.
|
|
88
|
-
* Use this to centralize auth refresh behavior.
|
|
89
|
-
*/
|
|
90
|
-
authLifecycle?: SyncAuthLifecycle;
|
|
91
|
-
/**
|
|
92
|
-
* Abort signal for cancellation support.
|
|
93
|
-
*/
|
|
94
|
-
signal?: AbortSignal;
|
|
95
|
-
}
|
|
96
|
-
export type SyncSnapshotChunkReadMode = 'stream' | 'bytes';
|
|
97
|
-
export type SyncGzipDecompressionMode = 'stream' | 'buffered';
|
|
98
|
-
export type SyncBootstrapApplyMode = 'single-transaction' | 'per-subscription';
|
|
99
|
-
/**
|
|
100
|
-
* Declares transport/runtime capabilities that affect how the client should
|
|
101
|
-
* fetch, decode, and apply bootstrap snapshots.
|
|
102
|
-
*/
|
|
103
|
-
export interface SyncTransportCapabilities {
|
|
104
|
-
/**
|
|
105
|
-
* Preferred snapshot chunk download mode for this runtime.
|
|
106
|
-
* - `stream`: consume the response body as a stream when available
|
|
107
|
-
* - `bytes`: buffer the whole response body before decode/apply
|
|
108
|
-
*/
|
|
109
|
-
snapshotChunkReadMode?: SyncSnapshotChunkReadMode;
|
|
110
|
-
/**
|
|
111
|
-
* Preferred gzip decode mode for this runtime.
|
|
112
|
-
* - `stream`: use `DecompressionStream`
|
|
113
|
-
* - `buffered`: gunzip a materialized byte buffer
|
|
114
|
-
*/
|
|
115
|
-
gzipDecompressionMode?: SyncGzipDecompressionMode;
|
|
116
|
-
/**
|
|
117
|
-
* Hint that chunked bootstrap snapshots should be materialized into rows
|
|
118
|
-
* before plugin/app consumption.
|
|
119
|
-
*/
|
|
120
|
-
preferMaterializedSnapshots?: boolean;
|
|
121
|
-
/**
|
|
122
|
-
* Preferred default transaction strategy for bootstrap apply.
|
|
123
|
-
*/
|
|
124
|
-
preferredBootstrapApplyMode?: SyncBootstrapApplyMode;
|
|
125
|
-
/**
|
|
126
|
-
* Preferred scheduler yield delay (ms) between bootstrap snapshot apply
|
|
127
|
-
* batches. `0` yields on the next macrotask, `false` disables yielding.
|
|
128
|
-
*/
|
|
129
|
-
preferredSnapshotApplyYieldMs?: number | false;
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Blob transport operations (optional extension to SyncTransport).
|
|
133
|
-
* When present, enables blob upload/download through the same transport.
|
|
134
|
-
*/
|
|
135
|
-
export interface SyncTransportBlobs {
|
|
136
|
-
/**
|
|
137
|
-
* Initiate a blob upload.
|
|
138
|
-
* Returns presigned URL info or indicates blob already exists (dedup).
|
|
139
|
-
*/
|
|
140
|
-
initiateUpload(args: {
|
|
141
|
-
hash: string;
|
|
142
|
-
size: number;
|
|
143
|
-
mimeType: string;
|
|
144
|
-
}): Promise<{
|
|
145
|
-
exists: boolean;
|
|
146
|
-
uploadUrl?: string;
|
|
147
|
-
uploadMethod?: 'PUT' | 'POST';
|
|
148
|
-
uploadHeaders?: Record<string, string>;
|
|
149
|
-
}>;
|
|
150
|
-
/**
|
|
151
|
-
* Complete a blob upload.
|
|
152
|
-
* Call this after uploading to the presigned URL.
|
|
153
|
-
*/
|
|
154
|
-
completeUpload(hash: string): Promise<{
|
|
155
|
-
ok: boolean;
|
|
156
|
-
error?: string;
|
|
157
|
-
}>;
|
|
158
|
-
/**
|
|
159
|
-
* Get a presigned download URL.
|
|
160
|
-
*/
|
|
161
|
-
getDownloadUrl(hash: string): Promise<{
|
|
162
|
-
url: string;
|
|
163
|
-
expiresAt: string;
|
|
164
|
-
}>;
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
167
|
-
* Transport interface for sync operations.
|
|
168
|
-
*/
|
|
169
|
-
export interface SyncTransport {
|
|
170
|
-
/**
|
|
171
|
-
* Optional runtime/transport capabilities.
|
|
172
|
-
*/
|
|
173
|
-
capabilities?: SyncTransportCapabilities;
|
|
174
|
-
/**
|
|
175
|
-
* Combined push+pull in a single round-trip.
|
|
176
|
-
*/
|
|
177
|
-
sync(request: SyncCombinedRequest, options?: SyncTransportOptions): Promise<SyncCombinedResponse>;
|
|
178
|
-
/**
|
|
179
|
-
* Download an encoded bootstrap snapshot chunk.
|
|
180
|
-
*/
|
|
181
|
-
fetchSnapshotChunk(request: {
|
|
182
|
-
chunkId: string;
|
|
183
|
-
scopeValues?: Record<string, string | string[]>;
|
|
184
|
-
}, options?: SyncTransportOptions): Promise<Uint8Array>;
|
|
185
|
-
/**
|
|
186
|
-
* Optional streaming snapshot chunk download.
|
|
187
|
-
*
|
|
188
|
-
* When implemented, clients can decode and apply large bootstrap chunks
|
|
189
|
-
* incrementally without materializing the entire chunk in memory.
|
|
190
|
-
*/
|
|
191
|
-
fetchSnapshotChunkStream?(request: {
|
|
192
|
-
chunkId: string;
|
|
193
|
-
scopeValues?: Record<string, string | string[]>;
|
|
194
|
-
}, options?: SyncTransportOptions): Promise<ReadableStream<Uint8Array>>;
|
|
195
|
-
/**
|
|
196
|
-
* Optional blob operations.
|
|
197
|
-
* When present, enables blob upload/download functionality.
|
|
198
|
-
*/
|
|
199
|
-
blobs?: SyncTransportBlobs;
|
|
200
|
-
}
|
|
201
|
-
/**
|
|
202
|
-
* Transport error with additional context
|
|
203
|
-
*/
|
|
204
|
-
export declare class SyncTransportError extends Error {
|
|
205
|
-
readonly status?: number | undefined;
|
|
206
|
-
readonly code?: string | undefined;
|
|
207
|
-
constructor(message: string, status?: number | undefined, code?: string | undefined);
|
|
208
|
-
}
|
|
209
|
-
export {};
|
|
210
|
-
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @syncular/core - Shared types for sync infrastructure
|
|
3
|
-
*
|
|
4
|
-
* Non-protocol types: conflict detection, transport interfaces.
|
|
5
|
-
* Protocol types (SyncOp, SyncPushRequest, etc.) live in ./schemas/sync.ts
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Transport error with additional context
|
|
9
|
-
*/
|
|
10
|
-
export class SyncTransportError extends Error {
|
|
11
|
-
status;
|
|
12
|
-
code;
|
|
13
|
-
constructor(message, status, code) {
|
|
14
|
-
super(message);
|
|
15
|
-
this.status = status;
|
|
16
|
-
this.code = code;
|
|
17
|
-
this.name = 'SyncTransportError';
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=types.js.map
|
package/dist/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAyPH;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAGzB,MAAM;IACN,IAAI;IAHtB,YACE,OAAe,EACC,MAAe,EACf,IAAa;QAE7B,KAAK,CAAC,OAAO,CAAC,CAAC;sBAHC,MAAM;oBACN,IAAI;QAGpB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF"}
|
package/dist/utils/bytes.d.ts
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export declare function bytesToReadableStream(bytes: Uint8Array): ReadableStream<Uint8Array>;
|
|
2
|
-
export declare function concatByteChunks(chunks: readonly Uint8Array[]): Uint8Array;
|
|
3
|
-
export declare function readAllBytesFromStream(stream: ReadableStream<Uint8Array>): Promise<Uint8Array>;
|
|
4
|
-
//# sourceMappingURL=bytes.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bytes.d.ts","sourceRoot":"","sources":["../../src/utils/bytes.ts"],"names":[],"mappings":"AAEA,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,UAAU,GAChB,cAAc,CAAC,UAAU,CAAC,CAO5B;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,UAAU,CAoB1E;AAED,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,GACjC,OAAO,CAAC,UAAU,CAAC,CAqCrB"}
|
package/dist/utils/bytes.js
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { getBunRuntime } from './internal-runtime.js';
|
|
2
|
-
export function bytesToReadableStream(bytes) {
|
|
3
|
-
return new ReadableStream({
|
|
4
|
-
start(controller) {
|
|
5
|
-
controller.enqueue(bytes);
|
|
6
|
-
controller.close();
|
|
7
|
-
},
|
|
8
|
-
});
|
|
9
|
-
}
|
|
10
|
-
export function concatByteChunks(chunks) {
|
|
11
|
-
if (chunks.length === 0) {
|
|
12
|
-
return new Uint8Array();
|
|
13
|
-
}
|
|
14
|
-
if (chunks.length === 1) {
|
|
15
|
-
return chunks[0] ?? new Uint8Array();
|
|
16
|
-
}
|
|
17
|
-
let total = 0;
|
|
18
|
-
for (const chunk of chunks) {
|
|
19
|
-
total += chunk.length;
|
|
20
|
-
}
|
|
21
|
-
const merged = new Uint8Array(total);
|
|
22
|
-
let offset = 0;
|
|
23
|
-
for (const chunk of chunks) {
|
|
24
|
-
merged.set(chunk, offset);
|
|
25
|
-
offset += chunk.length;
|
|
26
|
-
}
|
|
27
|
-
return merged;
|
|
28
|
-
}
|
|
29
|
-
export async function readAllBytesFromStream(stream) {
|
|
30
|
-
const bun = getBunRuntime();
|
|
31
|
-
if (bun?.readableStreamToBytes) {
|
|
32
|
-
const bytes = await bun.readableStreamToBytes(stream);
|
|
33
|
-
return bytes instanceof Uint8Array ? bytes : new Uint8Array(bytes);
|
|
34
|
-
}
|
|
35
|
-
const reader = stream.getReader();
|
|
36
|
-
const chunks = [];
|
|
37
|
-
let total = 0;
|
|
38
|
-
try {
|
|
39
|
-
while (true) {
|
|
40
|
-
const { done, value } = await reader.read();
|
|
41
|
-
if (done)
|
|
42
|
-
break;
|
|
43
|
-
if (!value)
|
|
44
|
-
continue;
|
|
45
|
-
chunks.push(value);
|
|
46
|
-
total += value.length;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
finally {
|
|
50
|
-
reader.releaseLock();
|
|
51
|
-
}
|
|
52
|
-
if (chunks.length === 0) {
|
|
53
|
-
return new Uint8Array();
|
|
54
|
-
}
|
|
55
|
-
if (chunks.length === 1) {
|
|
56
|
-
return chunks[0] ?? new Uint8Array();
|
|
57
|
-
}
|
|
58
|
-
const merged = new Uint8Array(total);
|
|
59
|
-
let offset = 0;
|
|
60
|
-
for (const chunk of chunks) {
|
|
61
|
-
merged.set(chunk, offset);
|
|
62
|
-
offset += chunk.length;
|
|
63
|
-
}
|
|
64
|
-
return merged;
|
|
65
|
-
}
|
|
66
|
-
//# sourceMappingURL=bytes.js.map
|
package/dist/utils/bytes.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../src/utils/bytes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,UAAU,qBAAqB,CACnC,KAAiB;IAEjB,OAAO,IAAI,cAAc,CAAa;QACpC,KAAK,CAAC,UAAU;YACd,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC1B,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAA6B;IAC5D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,UAAU,EAAE,CAAC;IAC1B,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC;IACvC,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC;IACxB,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;IACzB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAkC;IAElC,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,IAAI,GAAG,EAAE,qBAAqB,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACtD,OAAO,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAClC,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI;gBAAE,MAAM;YAChB,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC;QACxB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,UAAU,EAAE,CAAC;IAC1B,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC;IACvC,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;IACzB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export interface GzipBytesOptions {
|
|
2
|
-
level?: number;
|
|
3
|
-
}
|
|
4
|
-
/**
|
|
5
|
-
* Gzip-compress a byte array using the fastest native implementation available
|
|
6
|
-
* in the current runtime.
|
|
7
|
-
*/
|
|
8
|
-
export declare function gzipBytes(payload: Uint8Array, options?: GzipBytesOptions): Promise<Uint8Array>;
|
|
9
|
-
/**
|
|
10
|
-
* Gzip-decompress a byte array using the fastest implementation available in
|
|
11
|
-
* the current runtime, with a pure-JS fallback for runtimes like Expo/Hermes.
|
|
12
|
-
*/
|
|
13
|
-
export declare function gunzipBytes(payload: Uint8Array): Promise<Uint8Array>;
|
|
14
|
-
/**
|
|
15
|
-
* Gzip-compress bytes and return a stream. When streaming compression is not
|
|
16
|
-
* available, falls back to eager compression and includes byteLength metadata.
|
|
17
|
-
*/
|
|
18
|
-
export declare function gzipBytesToStream(payload: Uint8Array): Promise<{
|
|
19
|
-
stream: ReadableStream<Uint8Array>;
|
|
20
|
-
byteLength?: number;
|
|
21
|
-
}>;
|
|
22
|
-
//# sourceMappingURL=compression.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../../src/utils/compression.ts"],"names":[],"mappings":"AAwBA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAkDD;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,UAAU,EACnB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,UAAU,CAAC,CAkCrB;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAkC1E;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC;IACpE,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC,CAoBD"}
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
import { gunzipSync as gunzipSyncFflate } from 'fflate';
|
|
2
|
-
import { bytesToReadableStream, readAllBytesFromStream } from './bytes.js';
|
|
3
|
-
import { getBunRuntime, usesNodeRuntimeModules } from './internal-runtime.js';
|
|
4
|
-
let nodeZlibModulePromise = null;
|
|
5
|
-
function importNodeModule(specifier) {
|
|
6
|
-
return new Function('specifier', 'return import(specifier);')(specifier);
|
|
7
|
-
}
|
|
8
|
-
function tryImportNodeModule(specifier) {
|
|
9
|
-
try {
|
|
10
|
-
return importNodeModule(specifier);
|
|
11
|
-
}
|
|
12
|
-
catch {
|
|
13
|
-
return Promise.resolve(null);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
function isNodeZlibModule(module) {
|
|
17
|
-
if (!module) {
|
|
18
|
-
return false;
|
|
19
|
-
}
|
|
20
|
-
const candidate = module;
|
|
21
|
-
return (typeof candidate.gzip === 'function' &&
|
|
22
|
-
typeof candidate.gunzip === 'function');
|
|
23
|
-
}
|
|
24
|
-
function toUint8Array(value) {
|
|
25
|
-
if (value instanceof Uint8Array) {
|
|
26
|
-
return value;
|
|
27
|
-
}
|
|
28
|
-
if (value instanceof ArrayBuffer) {
|
|
29
|
-
return new Uint8Array(value);
|
|
30
|
-
}
|
|
31
|
-
return Uint8Array.from(value);
|
|
32
|
-
}
|
|
33
|
-
async function getNodeZlibModule() {
|
|
34
|
-
if (!usesNodeRuntimeModules()) {
|
|
35
|
-
return null;
|
|
36
|
-
}
|
|
37
|
-
if (!nodeZlibModulePromise) {
|
|
38
|
-
nodeZlibModulePromise = tryImportNodeModule('node:zlib')
|
|
39
|
-
.then((module) => (isNodeZlibModule(module) ? module : null))
|
|
40
|
-
.catch(() => null);
|
|
41
|
-
}
|
|
42
|
-
return nodeZlibModulePromise;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Gzip-compress a byte array using the fastest native implementation available
|
|
46
|
-
* in the current runtime.
|
|
47
|
-
*/
|
|
48
|
-
export async function gzipBytes(payload, options = {}) {
|
|
49
|
-
const bun = getBunRuntime();
|
|
50
|
-
if (bun?.gzipSync) {
|
|
51
|
-
return bun.gzipSync(payload, options);
|
|
52
|
-
}
|
|
53
|
-
const nodeZlib = await getNodeZlibModule();
|
|
54
|
-
if (nodeZlib?.gzip) {
|
|
55
|
-
return await new Promise((resolve, reject) => {
|
|
56
|
-
const callback = (error, compressed) => {
|
|
57
|
-
if (error) {
|
|
58
|
-
reject(error);
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
resolve(toUint8Array(compressed));
|
|
62
|
-
};
|
|
63
|
-
if (options.level !== undefined) {
|
|
64
|
-
nodeZlib.gzip(payload, { level: options.level }, callback);
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
nodeZlib.gzip(payload, callback);
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
if (typeof CompressionStream !== 'undefined') {
|
|
72
|
-
const stream = bytesToReadableStream(payload).pipeThrough(new CompressionStream('gzip'));
|
|
73
|
-
return readAllBytesFromStream(stream);
|
|
74
|
-
}
|
|
75
|
-
throw new Error('Failed to gzip bytes, no compression implementation available');
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Gzip-decompress a byte array using the fastest implementation available in
|
|
79
|
-
* the current runtime, with a pure-JS fallback for runtimes like Expo/Hermes.
|
|
80
|
-
*/
|
|
81
|
-
export async function gunzipBytes(payload) {
|
|
82
|
-
const bun = getBunRuntime();
|
|
83
|
-
if (bun?.gunzipSync) {
|
|
84
|
-
return bun.gunzipSync(payload);
|
|
85
|
-
}
|
|
86
|
-
const nodeZlib = await getNodeZlibModule();
|
|
87
|
-
if (nodeZlib?.gunzip) {
|
|
88
|
-
return await new Promise((resolve, reject) => {
|
|
89
|
-
nodeZlib.gunzip(payload, (error, decompressed) => {
|
|
90
|
-
if (error) {
|
|
91
|
-
reject(error);
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
resolve(toUint8Array(decompressed));
|
|
95
|
-
});
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
if (typeof DecompressionStream !== 'undefined') {
|
|
99
|
-
const stream = bytesToReadableStream(payload).pipeThrough(new DecompressionStream('gzip'));
|
|
100
|
-
return readAllBytesFromStream(stream);
|
|
101
|
-
}
|
|
102
|
-
try {
|
|
103
|
-
return gunzipSyncFflate(payload);
|
|
104
|
-
}
|
|
105
|
-
catch (error) {
|
|
106
|
-
throw new Error('Failed to gunzip bytes, no decompression implementation available', { cause: error });
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Gzip-compress bytes and return a stream. When streaming compression is not
|
|
111
|
-
* available, falls back to eager compression and includes byteLength metadata.
|
|
112
|
-
*/
|
|
113
|
-
export async function gzipBytesToStream(payload) {
|
|
114
|
-
const bun = getBunRuntime();
|
|
115
|
-
const nodeZlib = await getNodeZlibModule();
|
|
116
|
-
if (!bun?.gzipSync && !nodeZlib && typeof CompressionStream !== 'undefined') {
|
|
117
|
-
const source = bytesToReadableStream(payload);
|
|
118
|
-
const gzipStream = new CompressionStream('gzip');
|
|
119
|
-
return {
|
|
120
|
-
stream: source.pipeThrough(gzipStream),
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
const compressed = await gzipBytes(payload);
|
|
124
|
-
return {
|
|
125
|
-
stream: bytesToReadableStream(compressed),
|
|
126
|
-
byteLength: compressed.length,
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
//# sourceMappingURL=compression.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compression.js","sourceRoot":"","sources":["../../src/utils/compression.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/crypto.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export interface IncrementalSha256 {
|
|
2
|
-
update(chunk: Uint8Array): void;
|
|
3
|
-
digestHex(): Promise<string>;
|
|
4
|
-
}
|
|
5
|
-
export declare function createIncrementalSha256(): Promise<IncrementalSha256>;
|
|
6
|
-
/**
|
|
7
|
-
* Cross-runtime SHA-256 digest helper.
|
|
8
|
-
*
|
|
9
|
-
* Uses native Bun/Node implementations on server runtimes, with Web Crypto
|
|
10
|
-
* fallback for browser and worker environments.
|
|
11
|
-
*/
|
|
12
|
-
export declare function sha256Hex(input: string | Uint8Array): Promise<string>;
|
|
13
|
-
//# sourceMappingURL=crypto.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../src/utils/crypto.ts"],"names":[],"mappings":"AAqEA,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IAChC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9B;AAED,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAqC1E;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CA0B3E"}
|
package/dist/utils/crypto.js
DELETED
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { concatByteChunks } from './bytes.js';
|
|
2
|
-
import { getBunRuntime, usesNodeRuntimeModules } from './internal-runtime.js';
|
|
3
|
-
const textEncoder = new TextEncoder();
|
|
4
|
-
function toHex(bytes) {
|
|
5
|
-
return Array.from(bytes)
|
|
6
|
-
.map((byte) => byte.toString(16).padStart(2, '0'))
|
|
7
|
-
.join('');
|
|
8
|
-
}
|
|
9
|
-
function toDigestBufferSource(payload) {
|
|
10
|
-
if (payload.buffer instanceof ArrayBuffer) {
|
|
11
|
-
return new Uint8Array(payload.buffer, payload.byteOffset, payload.byteLength);
|
|
12
|
-
}
|
|
13
|
-
const owned = new Uint8Array(payload.byteLength);
|
|
14
|
-
owned.set(payload);
|
|
15
|
-
return owned;
|
|
16
|
-
}
|
|
17
|
-
let nodeCryptoModulePromise = null;
|
|
18
|
-
function importNodeModule(specifier) {
|
|
19
|
-
return new Function('specifier', 'return import(specifier);')(specifier);
|
|
20
|
-
}
|
|
21
|
-
function tryImportNodeModule(specifier) {
|
|
22
|
-
try {
|
|
23
|
-
return importNodeModule(specifier);
|
|
24
|
-
}
|
|
25
|
-
catch {
|
|
26
|
-
return Promise.resolve(null);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
function isNodeCryptoModule(module) {
|
|
30
|
-
if (!module) {
|
|
31
|
-
return false;
|
|
32
|
-
}
|
|
33
|
-
return typeof module.createHash === 'function';
|
|
34
|
-
}
|
|
35
|
-
async function getNodeCryptoModule() {
|
|
36
|
-
if (!usesNodeRuntimeModules()) {
|
|
37
|
-
return null;
|
|
38
|
-
}
|
|
39
|
-
if (!nodeCryptoModulePromise) {
|
|
40
|
-
nodeCryptoModulePromise = tryImportNodeModule('node:crypto')
|
|
41
|
-
.then((module) => (isNodeCryptoModule(module) ? module : null))
|
|
42
|
-
.catch(() => null);
|
|
43
|
-
}
|
|
44
|
-
return nodeCryptoModulePromise;
|
|
45
|
-
}
|
|
46
|
-
export async function createIncrementalSha256() {
|
|
47
|
-
const bun = getBunRuntime();
|
|
48
|
-
if (bun?.CryptoHasher) {
|
|
49
|
-
const hasher = new bun.CryptoHasher('sha256');
|
|
50
|
-
return {
|
|
51
|
-
update(chunk) {
|
|
52
|
-
hasher.update(chunk);
|
|
53
|
-
},
|
|
54
|
-
async digestHex() {
|
|
55
|
-
return hasher.digest('hex');
|
|
56
|
-
},
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
const nodeCrypto = await getNodeCryptoModule();
|
|
60
|
-
if (nodeCrypto?.createHash) {
|
|
61
|
-
const hasher = nodeCrypto.createHash('sha256');
|
|
62
|
-
return {
|
|
63
|
-
update(chunk) {
|
|
64
|
-
hasher.update(chunk);
|
|
65
|
-
},
|
|
66
|
-
async digestHex() {
|
|
67
|
-
return hasher.digest('hex');
|
|
68
|
-
},
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
const chunks = [];
|
|
72
|
-
return {
|
|
73
|
-
update(chunk) {
|
|
74
|
-
if (chunk.length === 0)
|
|
75
|
-
return;
|
|
76
|
-
chunks.push(chunk.slice());
|
|
77
|
-
},
|
|
78
|
-
async digestHex() {
|
|
79
|
-
return sha256Hex(concatByteChunks(chunks));
|
|
80
|
-
},
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Cross-runtime SHA-256 digest helper.
|
|
85
|
-
*
|
|
86
|
-
* Uses native Bun/Node implementations on server runtimes, with Web Crypto
|
|
87
|
-
* fallback for browser and worker environments.
|
|
88
|
-
*/
|
|
89
|
-
export async function sha256Hex(input) {
|
|
90
|
-
const payload = typeof input === 'string' ? textEncoder.encode(input) : input;
|
|
91
|
-
const bun = getBunRuntime();
|
|
92
|
-
if (bun?.CryptoHasher) {
|
|
93
|
-
const hasher = new bun.CryptoHasher('sha256');
|
|
94
|
-
hasher.update(payload);
|
|
95
|
-
return hasher.digest('hex');
|
|
96
|
-
}
|
|
97
|
-
const nodeCrypto = await getNodeCryptoModule();
|
|
98
|
-
if (nodeCrypto?.createHash) {
|
|
99
|
-
return nodeCrypto.createHash('sha256').update(payload).digest('hex');
|
|
100
|
-
}
|
|
101
|
-
if (typeof crypto !== 'undefined' && crypto.subtle) {
|
|
102
|
-
const digestBuffer = await crypto.subtle.digest('SHA-256', toDigestBufferSource(payload));
|
|
103
|
-
return toHex(new Uint8Array(digestBuffer));
|
|
104
|
-
}
|
|
105
|
-
throw new Error('Failed to create SHA-256 hash, no crypto implementation available');
|
|
106
|
-
}
|
|
107
|
-
//# sourceMappingURL=crypto.js.map
|
package/dist/utils/crypto.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/utils/crypto.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/id.d.ts
DELETED
package/dist/utils/id.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,IAAI,MAAM,CA6BnC;AAED,wBAAgB,QAAQ,IAAI,MAAM,CAEjC"}
|
package/dist/utils/id.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
export function generateId() {
|
|
2
|
-
const globalWithCrypto = globalThis;
|
|
3
|
-
const cryptoObj = typeof crypto !== 'undefined'
|
|
4
|
-
? crypto
|
|
5
|
-
: globalWithCrypto.crypto;
|
|
6
|
-
if (cryptoObj && typeof cryptoObj.randomUUID === 'function') {
|
|
7
|
-
return cryptoObj.randomUUID();
|
|
8
|
-
}
|
|
9
|
-
if (cryptoObj && typeof cryptoObj.getRandomValues === 'function') {
|
|
10
|
-
const bytes = new Uint8Array(16);
|
|
11
|
-
cryptoObj.getRandomValues(bytes);
|
|
12
|
-
// UUID v4 variant bits.
|
|
13
|
-
bytes[6] = (bytes[6] & 0x0f) | 0x40;
|
|
14
|
-
bytes[8] = (bytes[8] & 0x3f) | 0x80;
|
|
15
|
-
const hex = Array.from(bytes)
|
|
16
|
-
.map((byte) => byte.toString(16).padStart(2, '0'))
|
|
17
|
-
.join('');
|
|
18
|
-
return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20, 32)}`;
|
|
19
|
-
}
|
|
20
|
-
return `${Date.now()}-${Math.random().toString(16).slice(2)}`;
|
|
21
|
-
}
|
|
22
|
-
export function randomId() {
|
|
23
|
-
return generateId();
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=id.js.map
|
package/dist/utils/id.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU;IAKxB,MAAM,gBAAgB,GAAG,UAExB,CAAC;IACF,MAAM,SAAS,GACb,OAAO,MAAM,KAAK,WAAW;QAC3B,CAAC,CAAE,MAA+B;QAClC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC;IAC9B,IAAI,SAAS,IAAI,OAAO,SAAS,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QAC5D,OAAO,SAAS,CAAC,UAAU,EAAE,CAAC;IAChC,CAAC;IAED,IAAI,SAAS,IAAI,OAAO,SAAS,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;QACjE,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;QACjC,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACjC,wBAAwB;QACxB,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QACrC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QACrC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;aAC1B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;aACjD,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;IACjH,CAAC;IAED,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC"}
|