@syncular/core 0.0.6-96 → 0.1.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/dist/blobs.d.ts +14 -7
- package/dist/blobs.d.ts.map +1 -1
- package/dist/blobs.js.map +1 -1
- package/dist/column-codecs.d.ts +3 -0
- package/dist/column-codecs.d.ts.map +1 -1
- package/dist/column-codecs.js +32 -4
- package/dist/column-codecs.js.map +1 -1
- package/dist/conflict.js.map +1 -1
- package/dist/database.js +1 -1
- package/dist/database.js.map +1 -1
- package/dist/error-responses.d.ts +393 -0
- package/dist/error-responses.d.ts.map +1 -0
- package/dist/error-responses.js +393 -0
- package/dist/error-responses.js.map +1 -0
- package/dist/http/api-client.d.ts +11 -0
- package/dist/http/api-client.d.ts.map +1 -0
- package/dist/http/api-client.js +30 -0
- package/dist/http/api-client.js.map +1 -0
- package/dist/http/blob.d.ts +6 -0
- package/dist/http/blob.d.ts.map +1 -0
- package/dist/http/blob.js +46 -0
- package/dist/http/blob.js.map +1 -0
- package/dist/http/generated/api.d.ts +5241 -0
- package/dist/http/generated/api.d.ts.map +1 -0
- package/dist/http/generated/api.js +6 -0
- package/dist/http/generated/api.js.map +1 -0
- package/dist/http/index.d.ts +18 -0
- package/dist/http/index.d.ts.map +1 -0
- package/dist/http/index.js +212 -0
- package/dist/http/index.js.map +1 -0
- package/dist/http/shared.d.ts +45 -0
- package/dist/http/shared.d.ts.map +1 -0
- package/dist/http/shared.js +122 -0
- package/dist/http/shared.js.map +1 -0
- package/dist/http/transport-client.d.ts +31 -0
- package/dist/http/transport-client.d.ts.map +1 -0
- package/dist/http/transport-client.js +193 -0
- package/dist/http/transport-client.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -15
- package/dist/index.js.map +1 -1
- package/dist/kysely-column-codecs.d.ts +17 -1
- package/dist/kysely-column-codecs.d.ts.map +1 -1
- package/dist/kysely-column-codecs.js +56 -70
- package/dist/kysely-column-codecs.js.map +1 -1
- package/dist/logger.js +1 -1
- package/dist/logger.js.map +1 -1
- package/dist/schemas/blobs.d.ts +7 -1
- package/dist/schemas/blobs.d.ts.map +1 -1
- package/dist/schemas/blobs.js +1 -0
- package/dist/schemas/blobs.js.map +1 -1
- package/dist/schemas/common.d.ts +73 -1
- package/dist/schemas/common.d.ts.map +1 -1
- package/dist/schemas/common.js +38 -0
- package/dist/schemas/common.js.map +1 -1
- package/dist/schemas/index.js +3 -3
- package/dist/schemas/sync.d.ts +712 -38
- package/dist/schemas/sync.d.ts.map +1 -1
- package/dist/schemas/sync.js +209 -5
- package/dist/schemas/sync.js.map +1 -1
- package/dist/scopes/index.d.ts +5 -0
- package/dist/scopes/index.d.ts.map +1 -1
- package/dist/scopes/index.js +27 -0
- package/dist/scopes/index.js.map +1 -1
- package/dist/sentry.d.ts +31 -0
- package/dist/sentry.d.ts.map +1 -0
- package/dist/sentry.js +147 -0
- package/dist/sentry.js.map +1 -0
- package/dist/snapshot-chunks.d.ts +104 -20
- package/dist/snapshot-chunks.d.ts.map +1 -1
- package/dist/snapshot-chunks.js +665 -72
- package/dist/snapshot-chunks.js.map +1 -1
- package/dist/sync-packs.d.ts +33 -0
- package/dist/sync-packs.d.ts.map +1 -0
- package/dist/sync-packs.js +821 -0
- package/dist/sync-packs.js.map +1 -0
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +3 -2
- package/dist/telemetry.js.map +1 -1
- package/dist/transforms.js.map +1 -1
- package/dist/types.d.ts +48 -7
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/bytes.d.ts +4 -0
- package/dist/utils/bytes.d.ts.map +1 -0
- package/dist/utils/bytes.js +66 -0
- package/dist/utils/bytes.js.map +1 -0
- package/dist/utils/compression.d.ts +11 -3
- package/dist/utils/compression.d.ts.map +1 -1
- package/dist/utils/compression.js +102 -50
- package/dist/utils/compression.js.map +1 -1
- package/dist/utils/crypto.d.ts +7 -1
- package/dist/utils/crypto.d.ts.map +1 -1
- package/dist/utils/crypto.js +89 -7
- package/dist/utils/crypto.js.map +1 -1
- package/dist/utils/id.d.ts.map +1 -1
- package/dist/utils/id.js +4 -1
- package/dist/utils/id.js.map +1 -1
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +9 -4
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/internal-runtime.d.ts +16 -0
- package/dist/utils/internal-runtime.d.ts.map +1 -0
- package/dist/utils/internal-runtime.js +14 -0
- package/dist/utils/internal-runtime.js.map +1 -0
- package/dist/utils/object.js.map +1 -1
- package/dist/utils/realtime-change-index.d.ts +9 -0
- package/dist/utils/realtime-change-index.d.ts.map +1 -0
- package/dist/utils/realtime-change-index.js +36 -0
- package/dist/utils/realtime-change-index.js.map +1 -0
- package/dist/utils/realtime-connection-registry.d.ts +40 -0
- package/dist/utils/realtime-connection-registry.d.ts.map +1 -0
- package/dist/utils/realtime-connection-registry.js +237 -0
- package/dist/utils/realtime-connection-registry.js.map +1 -0
- package/dist/utils/table-registry.d.ts +10 -0
- package/dist/utils/table-registry.d.ts.map +1 -0
- package/dist/utils/table-registry.js +54 -0
- package/dist/utils/table-registry.js.map +1 -0
- package/dist/utils/url.d.ts +3 -0
- package/dist/utils/url.d.ts.map +1 -0
- package/dist/utils/url.js +20 -0
- package/dist/utils/url.js.map +1 -0
- package/package.json +52 -7
- package/src/blobs.ts +24 -7
- package/src/column-codecs.ts +36 -8
- package/src/error-responses.ts +423 -0
- package/src/http/api-client.ts +39 -0
- package/src/http/blob.ts +95 -0
- package/src/http/generated/api.ts +5241 -0
- package/src/http/index.ts +365 -0
- package/src/http/shared.ts +220 -0
- package/src/http/transport-client.ts +314 -0
- package/src/index.ts +4 -0
- package/src/kysely-column-codecs.ts +81 -86
- package/src/schemas/blobs.ts +10 -1
- package/src/schemas/common.ts +44 -0
- package/src/schemas/sync.ts +298 -7
- package/src/scopes/index.ts +42 -0
- package/src/sentry.ts +200 -0
- package/src/snapshot-chunks.ts +921 -69
- package/src/sync-packs.ts +1096 -0
- package/src/telemetry.ts +7 -2
- package/src/types.ts +63 -8
- package/src/utils/bytes.ts +75 -0
- package/src/utils/compression.ts +147 -51
- package/src/utils/crypto.ts +120 -7
- package/src/utils/id.ts +11 -1
- package/src/utils/index.ts +5 -0
- package/src/utils/internal-runtime.ts +39 -0
- package/src/utils/realtime-change-index.ts +44 -0
- package/src/utils/realtime-connection-registry.ts +286 -0
- package/src/utils/table-registry.ts +67 -0
- package/src/utils/url.ts +29 -0
- package/src/__tests__/compression.test.ts +0 -54
- package/src/__tests__/conflict.test.ts +0 -325
- package/src/__tests__/telemetry.test.ts +0 -170
- package/src/__tests__/utils.test.ts +0 -27
package/dist/blobs.d.ts
CHANGED
|
@@ -46,6 +46,8 @@ export interface BlobTransport {
|
|
|
46
46
|
export interface BlobSignUploadOptions {
|
|
47
47
|
/** SHA-256 hash (for naming and checksum validation) */
|
|
48
48
|
hash: string;
|
|
49
|
+
/** Optional tenant/partition namespace for storage lookups */
|
|
50
|
+
partitionId?: string;
|
|
49
51
|
/** Content size in bytes */
|
|
50
52
|
size: number;
|
|
51
53
|
/** MIME type */
|
|
@@ -70,9 +72,14 @@ export interface BlobSignedUpload {
|
|
|
70
72
|
export interface BlobSignDownloadOptions {
|
|
71
73
|
/** SHA-256 hash */
|
|
72
74
|
hash: string;
|
|
75
|
+
/** Optional tenant/partition namespace for storage lookups */
|
|
76
|
+
partitionId?: string;
|
|
73
77
|
/** URL expiration in seconds */
|
|
74
78
|
expiresIn: number;
|
|
75
79
|
}
|
|
80
|
+
export interface BlobStoragePartitionOptions {
|
|
81
|
+
partitionId?: string;
|
|
82
|
+
}
|
|
76
83
|
/**
|
|
77
84
|
* Adapter for blob storage backends (S3, R2, custom).
|
|
78
85
|
* Implementations handle actual storage; the sync server orchestrates.
|
|
@@ -92,16 +99,16 @@ export interface BlobStorageAdapter {
|
|
|
92
99
|
/**
|
|
93
100
|
* Check if a blob exists in storage.
|
|
94
101
|
*/
|
|
95
|
-
exists(hash: string): Promise<boolean>;
|
|
102
|
+
exists(hash: string, options?: BlobStoragePartitionOptions): Promise<boolean>;
|
|
96
103
|
/**
|
|
97
104
|
* Delete a blob (for garbage collection).
|
|
98
105
|
*/
|
|
99
|
-
delete(hash: string): Promise<void>;
|
|
106
|
+
delete(hash: string, options?: BlobStoragePartitionOptions): Promise<void>;
|
|
100
107
|
/**
|
|
101
108
|
* Get blob metadata from storage (optional).
|
|
102
109
|
* Used to verify uploads completed successfully.
|
|
103
110
|
*/
|
|
104
|
-
getMetadata?(hash: string): Promise<{
|
|
111
|
+
getMetadata?(hash: string, options?: BlobStoragePartitionOptions): Promise<{
|
|
105
112
|
size: number;
|
|
106
113
|
mimeType?: string;
|
|
107
114
|
} | null>;
|
|
@@ -109,20 +116,20 @@ export interface BlobStorageAdapter {
|
|
|
109
116
|
* Store blob data directly (for adapters that support direct storage).
|
|
110
117
|
* Used for snapshot chunks and other internal data.
|
|
111
118
|
*/
|
|
112
|
-
put?(hash: string, data: Uint8Array, metadata?: Record<string, unknown
|
|
119
|
+
put?(hash: string, data: Uint8Array, metadata?: Record<string, unknown>, options?: BlobStoragePartitionOptions): Promise<void>;
|
|
113
120
|
/**
|
|
114
121
|
* Store blob data directly from a stream.
|
|
115
122
|
* Preferred for large payloads to avoid full buffering in memory.
|
|
116
123
|
*/
|
|
117
|
-
putStream?(hash: string, stream: ReadableStream<Uint8Array>, metadata?: Record<string, unknown
|
|
124
|
+
putStream?(hash: string, stream: ReadableStream<Uint8Array>, metadata?: Record<string, unknown>, options?: BlobStoragePartitionOptions): Promise<void>;
|
|
118
125
|
/**
|
|
119
126
|
* Get blob data directly (for adapters that support direct retrieval).
|
|
120
127
|
*/
|
|
121
|
-
get?(hash: string): Promise<Uint8Array | null>;
|
|
128
|
+
get?(hash: string, options?: BlobStoragePartitionOptions): Promise<Uint8Array | null>;
|
|
122
129
|
/**
|
|
123
130
|
* Get blob data directly as a stream (for adapters that support stream retrieval).
|
|
124
131
|
*/
|
|
125
|
-
getStream?(hash: string): Promise<ReadableStream<Uint8Array> | null>;
|
|
132
|
+
getStream?(hash: string, options?: BlobStoragePartitionOptions): Promise<ReadableStream<Uint8Array> | null>;
|
|
126
133
|
}
|
|
127
134
|
/**
|
|
128
135
|
* Create a BlobRef from upload metadata.
|
package/dist/blobs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blobs.d.ts","sourceRoot":"","sources":["../src/blobs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAM/C;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC;QACV,MAAM,EAAE,OAAO,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;QAC9B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACxC,CAAC,CAAC;IAEH;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEvE;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QACpC,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;CACJ;AAMD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2BAA2B;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,kBAAkB;IAClB,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,yCAAyC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEtE;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEhE;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"blobs.d.ts","sourceRoot":"","sources":["../src/blobs.ts"],"names":[],"mappings":"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"}
|
package/dist/blobs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blobs.js","sourceRoot":"","sources":["../src/blobs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"blobs.js","sourceRoot":"","sources":["../src/blobs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAwKH,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAM7B;IACC,MAAM,GAAG,GAAY;QACnB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC;IACF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;QACrB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,OAAO,UAAU,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;AAC3C,CAAC"}
|
package/dist/column-codecs.d.ts
CHANGED
|
@@ -33,6 +33,9 @@ export declare function toTableColumnCodecs(table: string, codecSource: ColumnCo
|
|
|
33
33
|
dialect?: ColumnCodecDialect;
|
|
34
34
|
sqlTypes?: Record<string, string | undefined>;
|
|
35
35
|
}): TableColumnCodecs;
|
|
36
|
+
export declare function createTableColumnCodecsResolver(codecSource: ColumnCodecSource | undefined, options?: {
|
|
37
|
+
dialect?: ColumnCodecDialect;
|
|
38
|
+
}): (table: string, row: Record<string, unknown>) => TableColumnCodecs;
|
|
36
39
|
export declare function applyCodecToDbValue(codec: AnyColumnCodec, value: unknown, dialect?: ColumnCodecDialect): unknown;
|
|
37
40
|
export declare function applyCodecFromDbValue(codec: AnyColumnCodec, value: unknown, dialect?: ColumnCodecDialect): unknown;
|
|
38
41
|
export declare function applyCodecsToDbRow(row: Record<string, unknown>, tableCodecs: TableColumnCodecs, dialect?: ColumnCodecDialect): Record<string, unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column-codecs.d.ts","sourceRoot":"","sources":["../src/column-codecs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,MAAM,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAE3C,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,eAAe,GACvB,MAAM,GACN;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,qBAAqB,CAAA;CAAE,CAAC;AAErD,MAAM,WAAW,WAAW,CAAC,GAAG,EAAE,EAAE;IAClC,EAAE,EAAE,eAAe,CAAC;IACpB,IAAI,CAAC,KAAK,EAAE,GAAG,GAAG,EAAE,CAAC;IACrB,MAAM,CAAC,KAAK,EAAE,EAAE,GAAG,GAAG,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAChB,MAAM,CACJ,kBAAkB,EAClB;QACE,IAAI,CAAC,CAAC,KAAK,EAAE,GAAG,GAAG,EAAE,CAAC;QACtB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,GAAG,CAAC;KACzB,CACF,CACF,CAAC;CACH;AAED,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAE3D,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAE/D,MAAM,MAAM,iBAAiB,GAAG,CAC9B,MAAM,EAAE,iBAAiB,KACtB,cAAc,GAAG,SAAS,CAAC;AAoBhC,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,iBAAiB,GAAG,SAAS,EAC1C,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,EACzB,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC1C,GACL,iBAAiB,CAgBnB;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,kBAA6B,GACrC,OAAO,CAIT;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,kBAA6B,GACrC,OAAO,CAIT;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,WAAW,EAAE,iBAAiB,EAC9B,OAAO,GAAE,kBAA6B,GACrC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAazB;AAED,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,WAAW,EAAE,iBAAiB,EAC9B,OAAO,GAAE,kBAA6B,GACrC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"column-codecs.d.ts","sourceRoot":"","sources":["../src/column-codecs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,MAAM,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAE3C,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,eAAe,GACvB,MAAM,GACN;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,qBAAqB,CAAA;CAAE,CAAC;AAErD,MAAM,WAAW,WAAW,CAAC,GAAG,EAAE,EAAE;IAClC,EAAE,EAAE,eAAe,CAAC;IACpB,IAAI,CAAC,KAAK,EAAE,GAAG,GAAG,EAAE,CAAC;IACrB,MAAM,CAAC,KAAK,EAAE,EAAE,GAAG,GAAG,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAChB,MAAM,CACJ,kBAAkB,EAClB;QACE,IAAI,CAAC,CAAC,KAAK,EAAE,GAAG,GAAG,EAAE,CAAC;QACtB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,GAAG,CAAC;KACzB,CACF,CACF,CAAC;CACH;AAED,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAE3D,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAE/D,MAAM,MAAM,iBAAiB,GAAG,CAC9B,MAAM,EAAE,iBAAiB,KACtB,cAAc,GAAG,SAAS,CAAC;AAoBhC,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,iBAAiB,GAAG,SAAS,EAC1C,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,EACzB,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC1C,GACL,iBAAiB,CAgBnB;AAED,wBAAgB,+BAA+B,CAC7C,WAAW,EAAE,iBAAiB,GAAG,SAAS,EAC1C,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,kBAAkB,CAAA;CAAO,GAC7C,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,iBAAiB,CAwBpE;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,kBAA6B,GACrC,OAAO,CAIT;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,kBAA6B,GACrC,OAAO,CAIT;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,WAAW,EAAE,iBAAiB,EAC9B,OAAO,GAAE,kBAA6B,GACrC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAazB;AAED,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,WAAW,EAAE,iBAAiB,EAC9B,OAAO,GAAE,kBAA6B,GACrC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAYzB;AAgBD,wBAAgB,aAAa,IAAI,WAAW,CAC1C,OAAO,EACP,MAAM,GAAG,OAAO,GAAG,MAAM,CAC1B,CAYA;AAED,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACvC,EAAE,CAAC,EAAE,eAAe,CAAC;IACrB,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC;IACjC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,CAAC;CAC9B;AAED,wBAAgB,UAAU,CAAC,CAAC,GAAG,OAAO,EACpC,OAAO,GAAE,sBAAsB,CAAC,CAAC,CAAM,GACtC,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAoB5B;AAED,wBAAgB,aAAa,IAAI,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,CAOhE;AAED,wBAAgB,UAAU,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAO/D;AAED,eAAO,MAAM,MAAM;;;;;CAKlB,CAAC"}
|
package/dist/column-codecs.js
CHANGED
|
@@ -25,6 +25,30 @@ export function toTableColumnCodecs(table, codecSource, columns, options = {}) {
|
|
|
25
25
|
}
|
|
26
26
|
return out;
|
|
27
27
|
}
|
|
28
|
+
export function createTableColumnCodecsResolver(codecSource, options = {}) {
|
|
29
|
+
const tableCaches = new Map();
|
|
30
|
+
return (table, row) => {
|
|
31
|
+
if (!codecSource)
|
|
32
|
+
return {};
|
|
33
|
+
const columns = Object.keys(row);
|
|
34
|
+
if (columns.length === 0)
|
|
35
|
+
return {};
|
|
36
|
+
const cacheKey = columns.slice().sort().join('\u0000');
|
|
37
|
+
let perTableCache = tableCaches.get(table);
|
|
38
|
+
if (!perTableCache) {
|
|
39
|
+
perTableCache = new Map();
|
|
40
|
+
tableCaches.set(table, perTableCache);
|
|
41
|
+
}
|
|
42
|
+
const cached = perTableCache.get(cacheKey);
|
|
43
|
+
if (cached)
|
|
44
|
+
return cached;
|
|
45
|
+
const resolved = toTableColumnCodecs(table, codecSource, columns, {
|
|
46
|
+
dialect: options.dialect,
|
|
47
|
+
});
|
|
48
|
+
perTableCache.set(cacheKey, resolved);
|
|
49
|
+
return resolved;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
28
52
|
export function applyCodecToDbValue(codec, value, dialect = 'sqlite') {
|
|
29
53
|
if (value === null || value === undefined)
|
|
30
54
|
return value;
|
|
@@ -51,13 +75,17 @@ export function applyCodecsToDbRow(row, tableCodecs, dialect = 'sqlite') {
|
|
|
51
75
|
export function applyCodecsFromDbRow(row, tableCodecs, dialect = 'sqlite') {
|
|
52
76
|
if (!hasCodecs(tableCodecs))
|
|
53
77
|
return { ...row };
|
|
54
|
-
|
|
78
|
+
let transformed = null;
|
|
55
79
|
for (const [column, codec] of Object.entries(tableCodecs)) {
|
|
56
|
-
if (!(column in
|
|
80
|
+
if (!(column in row))
|
|
57
81
|
continue;
|
|
58
|
-
|
|
82
|
+
const value = row[column];
|
|
83
|
+
if (value === null || value === undefined)
|
|
84
|
+
continue;
|
|
85
|
+
transformed ??= { ...row };
|
|
86
|
+
transformed[column] = applyCodecFromDbValue(codec, value, dialect);
|
|
59
87
|
}
|
|
60
|
-
return transformed;
|
|
88
|
+
return transformed ?? row;
|
|
61
89
|
}
|
|
62
90
|
function parseBooleanValue(value) {
|
|
63
91
|
if (typeof value === 'boolean')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column-codecs.js","sourceRoot":"","sources":["../src/column-codecs.ts"],"names":[],"mappings":"AA8CA,SAAS,SAAS,CAAC,WAA8B
|
|
1
|
+
{"version":3,"file":"column-codecs.js","sourceRoot":"","sources":["../src/column-codecs.ts"],"names":[],"mappings":"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"}
|
package/dist/conflict.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conflict.js","sourceRoot":"","sources":["../src/conflict.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAAuC,EACvC,SAAkC,EAClC,aAAsC
|
|
1
|
+
{"version":3,"file":"conflict.js","sourceRoot":"","sources":["../src/conflict.ts"],"names":[],"mappings":"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"}
|
package/dist/database.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Kysely } from 'kysely';
|
|
2
|
-
import { createColumnCodecsPlugin } from './kysely-column-codecs
|
|
2
|
+
import { createColumnCodecsPlugin } from './kysely-column-codecs';
|
|
3
3
|
export function createDatabase(options) {
|
|
4
4
|
const db = new Kysely({
|
|
5
5
|
dialect: options.dialect,
|
package/dist/database.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,UAAU,cAAc,CAC5B,OAEC
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,UAAU,cAAc,CAC5B,OAEC;IAED,MAAM,EAAE,GAAG,IAAI,MAAM,CAAI;QACvB,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;IACH,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAC/B,OAAO,EAAE,CAAC,UAAU,CAClB,wBAAwB,CAAC;QACvB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,OAAO,CAAC,MAAM;KACxB,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,393 @@
|
|
|
1
|
+
import type { ErrorResponse, SyncularErrorCategory, SyncularErrorRecommendedAction } from './schemas/common';
|
|
2
|
+
export declare const SYNCULAR_ERROR_DEFINITIONS: {
|
|
3
|
+
readonly 'sync.auth_required': {
|
|
4
|
+
readonly category: 'auth-required';
|
|
5
|
+
readonly retryable: true;
|
|
6
|
+
readonly recommendedAction: 'refreshAuth';
|
|
7
|
+
readonly message: 'Authentication is required.';
|
|
8
|
+
};
|
|
9
|
+
readonly 'sync.auth_lease_missing': {
|
|
10
|
+
readonly category: 'auth-required';
|
|
11
|
+
readonly retryable: true;
|
|
12
|
+
readonly recommendedAction: 'refreshAuth';
|
|
13
|
+
readonly message: 'The queued commit is missing required auth lease provenance.';
|
|
14
|
+
};
|
|
15
|
+
readonly 'sync.auth_lease_invalid': {
|
|
16
|
+
readonly category: 'auth-required';
|
|
17
|
+
readonly retryable: true;
|
|
18
|
+
readonly recommendedAction: 'refreshAuth';
|
|
19
|
+
readonly message: 'The queued commit auth lease provenance is invalid.';
|
|
20
|
+
};
|
|
21
|
+
readonly 'sync.auth_lease_expired': {
|
|
22
|
+
readonly category: 'auth-required';
|
|
23
|
+
readonly retryable: true;
|
|
24
|
+
readonly recommendedAction: 'refreshAuth';
|
|
25
|
+
readonly message: 'The queued commit auth lease expired before replay.';
|
|
26
|
+
};
|
|
27
|
+
readonly 'sync.auth_lease_schema_mismatch': {
|
|
28
|
+
readonly category: 'schema-mismatch';
|
|
29
|
+
readonly retryable: false;
|
|
30
|
+
readonly recommendedAction: 'regenerateClient';
|
|
31
|
+
readonly message: 'The queued commit auth lease was issued for an incompatible schema.';
|
|
32
|
+
};
|
|
33
|
+
readonly 'sync.auth_lease_scope_mismatch': {
|
|
34
|
+
readonly category: 'forbidden';
|
|
35
|
+
readonly retryable: false;
|
|
36
|
+
readonly recommendedAction: 'checkPermissions';
|
|
37
|
+
readonly message: 'The queued commit auth lease does not cover the pushed scopes.';
|
|
38
|
+
};
|
|
39
|
+
readonly 'sync.auth_lease_scope_revoked': {
|
|
40
|
+
readonly category: 'scope-revoked';
|
|
41
|
+
readonly retryable: false;
|
|
42
|
+
readonly recommendedAction: 'checkPermissions';
|
|
43
|
+
readonly message: 'The queued commit auth lease scope was revoked.';
|
|
44
|
+
};
|
|
45
|
+
readonly 'sync.auth_lease_business_rejected': {
|
|
46
|
+
readonly category: 'conflict';
|
|
47
|
+
readonly retryable: false;
|
|
48
|
+
readonly recommendedAction: 'resolveConflict';
|
|
49
|
+
readonly message: 'The queued commit auth lease was rejected by application policy.';
|
|
50
|
+
};
|
|
51
|
+
readonly 'sync.forbidden': {
|
|
52
|
+
readonly category: 'forbidden';
|
|
53
|
+
readonly retryable: false;
|
|
54
|
+
readonly recommendedAction: 'checkPermissions';
|
|
55
|
+
readonly message: 'The authenticated actor is not allowed to access this resource.';
|
|
56
|
+
};
|
|
57
|
+
readonly 'sync.invalid_request': {
|
|
58
|
+
readonly category: 'invalid-request';
|
|
59
|
+
readonly retryable: false;
|
|
60
|
+
readonly recommendedAction: 'fixRequest';
|
|
61
|
+
readonly message: 'The sync request is invalid.';
|
|
62
|
+
};
|
|
63
|
+
readonly 'sync.invalid_client_id': {
|
|
64
|
+
readonly category: 'invalid-request';
|
|
65
|
+
readonly retryable: false;
|
|
66
|
+
readonly recommendedAction: 'resetClientId';
|
|
67
|
+
readonly message: 'The client id cannot be used for this actor.';
|
|
68
|
+
};
|
|
69
|
+
readonly 'sync.invalid_subscription': {
|
|
70
|
+
readonly category: 'invalid-request';
|
|
71
|
+
readonly retryable: false;
|
|
72
|
+
readonly recommendedAction: 'fixRequest';
|
|
73
|
+
readonly message: 'The subscription is invalid.';
|
|
74
|
+
};
|
|
75
|
+
readonly 'sync.empty_commit': {
|
|
76
|
+
readonly category: 'invalid-request';
|
|
77
|
+
readonly retryable: false;
|
|
78
|
+
readonly recommendedAction: 'fixRequest';
|
|
79
|
+
readonly message: 'The pushed commit has no operations.';
|
|
80
|
+
};
|
|
81
|
+
readonly 'sync.unknown_table': {
|
|
82
|
+
readonly category: 'schema-mismatch';
|
|
83
|
+
readonly retryable: false;
|
|
84
|
+
readonly recommendedAction: 'regenerateClient';
|
|
85
|
+
readonly message: 'The operation targets a table unknown to this server.';
|
|
86
|
+
};
|
|
87
|
+
readonly 'sync.unsupported_operation': {
|
|
88
|
+
readonly category: 'invalid-request';
|
|
89
|
+
readonly retryable: false;
|
|
90
|
+
readonly recommendedAction: 'fixRequest';
|
|
91
|
+
readonly message: 'The operation type is not supported for this table.';
|
|
92
|
+
};
|
|
93
|
+
readonly 'sync.row_missing': {
|
|
94
|
+
readonly category: 'not-found';
|
|
95
|
+
readonly retryable: false;
|
|
96
|
+
readonly recommendedAction: 'forceResync';
|
|
97
|
+
readonly message: 'The operation base row is missing on the server.';
|
|
98
|
+
};
|
|
99
|
+
readonly 'sync.version_conflict': {
|
|
100
|
+
readonly category: 'conflict';
|
|
101
|
+
readonly retryable: false;
|
|
102
|
+
readonly recommendedAction: 'resolveConflict';
|
|
103
|
+
readonly message: 'The operation conflicts with a newer server row version.';
|
|
104
|
+
};
|
|
105
|
+
readonly 'sync.constraint_violation': {
|
|
106
|
+
readonly category: 'invalid-request';
|
|
107
|
+
readonly retryable: false;
|
|
108
|
+
readonly recommendedAction: 'fixRequest';
|
|
109
|
+
readonly message: 'The operation violates a server-side data constraint.';
|
|
110
|
+
};
|
|
111
|
+
readonly 'sync.missing_scopes': {
|
|
112
|
+
readonly category: 'internal';
|
|
113
|
+
readonly retryable: false;
|
|
114
|
+
readonly recommendedAction: 'inspectServer';
|
|
115
|
+
readonly message: 'The server handler emitted a change without scope metadata.';
|
|
116
|
+
};
|
|
117
|
+
readonly 'sync.idempotency_cache_miss': {
|
|
118
|
+
readonly category: 'internal';
|
|
119
|
+
readonly retryable: true;
|
|
120
|
+
readonly recommendedAction: 'retryLater';
|
|
121
|
+
readonly message: 'The server could not read the cached idempotent push result.';
|
|
122
|
+
};
|
|
123
|
+
readonly 'sync.too_many_operations': {
|
|
124
|
+
readonly category: 'invalid-request';
|
|
125
|
+
readonly retryable: false;
|
|
126
|
+
readonly recommendedAction: 'splitBatch';
|
|
127
|
+
readonly message: 'The push contains too many operations.';
|
|
128
|
+
};
|
|
129
|
+
readonly 'sync.not_found': {
|
|
130
|
+
readonly category: 'not-found';
|
|
131
|
+
readonly retryable: false;
|
|
132
|
+
readonly recommendedAction: 'forceResync';
|
|
133
|
+
readonly message: 'The requested sync resource was not found.';
|
|
134
|
+
};
|
|
135
|
+
readonly 'sync.rate_limited': {
|
|
136
|
+
readonly category: 'rate-limited';
|
|
137
|
+
readonly retryable: true;
|
|
138
|
+
readonly recommendedAction: 'retryLater';
|
|
139
|
+
readonly message: 'The request was rate limited.';
|
|
140
|
+
};
|
|
141
|
+
readonly 'sync.schema_mismatch': {
|
|
142
|
+
readonly category: 'schema-mismatch';
|
|
143
|
+
readonly retryable: false;
|
|
144
|
+
readonly recommendedAction: 'regenerateClient';
|
|
145
|
+
readonly message: 'The generated client schema is not compatible with this server.';
|
|
146
|
+
};
|
|
147
|
+
readonly 'sync.client_schema_unsupported': {
|
|
148
|
+
readonly category: 'schema-mismatch';
|
|
149
|
+
readonly retryable: false;
|
|
150
|
+
readonly recommendedAction: 'upgradeClient';
|
|
151
|
+
readonly message: 'The client schema version is no longer supported by this server.';
|
|
152
|
+
};
|
|
153
|
+
readonly 'sync.integrity_rejected': {
|
|
154
|
+
readonly category: 'integrity-rejected';
|
|
155
|
+
readonly retryable: false;
|
|
156
|
+
readonly recommendedAction: 'forceResync';
|
|
157
|
+
readonly message: 'Sync data failed integrity verification.';
|
|
158
|
+
};
|
|
159
|
+
readonly 'sync.scope_revoked': {
|
|
160
|
+
readonly category: 'scope-revoked';
|
|
161
|
+
readonly retryable: false;
|
|
162
|
+
readonly recommendedAction: 'checkPermissions';
|
|
163
|
+
readonly message: 'A synced subscription scope was revoked.';
|
|
164
|
+
};
|
|
165
|
+
readonly 'sync.offline': {
|
|
166
|
+
readonly category: 'offline';
|
|
167
|
+
readonly retryable: true;
|
|
168
|
+
readonly recommendedAction: 'retryLater';
|
|
169
|
+
readonly message: 'The client is offline.';
|
|
170
|
+
};
|
|
171
|
+
readonly 'sync.websocket_not_configured': {
|
|
172
|
+
readonly category: 'server';
|
|
173
|
+
readonly retryable: false;
|
|
174
|
+
readonly recommendedAction: 'inspectServer';
|
|
175
|
+
readonly message: 'The realtime websocket route is not configured.';
|
|
176
|
+
};
|
|
177
|
+
readonly 'sync.websocket_connection_limit': {
|
|
178
|
+
readonly category: 'rate-limited';
|
|
179
|
+
readonly retryable: true;
|
|
180
|
+
readonly recommendedAction: 'retryLater';
|
|
181
|
+
readonly message: 'The realtime websocket connection limit was reached.';
|
|
182
|
+
};
|
|
183
|
+
readonly 'sync.transport_failed': {
|
|
184
|
+
readonly category: 'transport';
|
|
185
|
+
readonly retryable: true;
|
|
186
|
+
readonly recommendedAction: 'retryLater';
|
|
187
|
+
readonly message: 'The sync transport failed.';
|
|
188
|
+
};
|
|
189
|
+
readonly 'runtime.busy': {
|
|
190
|
+
readonly category: 'rate-limited';
|
|
191
|
+
readonly retryable: true;
|
|
192
|
+
readonly recommendedAction: 'retryLater';
|
|
193
|
+
readonly message: 'The Syncular runtime is busy.';
|
|
194
|
+
};
|
|
195
|
+
readonly 'runtime.limit_exceeded': {
|
|
196
|
+
readonly category: 'limit-exceeded';
|
|
197
|
+
readonly retryable: false;
|
|
198
|
+
readonly recommendedAction: 'reduceInput';
|
|
199
|
+
readonly message: 'A Syncular runtime limit was exceeded.';
|
|
200
|
+
};
|
|
201
|
+
readonly 'runtime.config_invalid': {
|
|
202
|
+
readonly category: 'invalid-request';
|
|
203
|
+
readonly retryable: false;
|
|
204
|
+
readonly recommendedAction: 'fixRequest';
|
|
205
|
+
readonly message: 'The Syncular runtime configuration is invalid.';
|
|
206
|
+
};
|
|
207
|
+
readonly 'runtime.codegen_mismatch': {
|
|
208
|
+
readonly category: 'schema-mismatch';
|
|
209
|
+
readonly retryable: false;
|
|
210
|
+
readonly recommendedAction: 'regenerateClient';
|
|
211
|
+
readonly message: 'The generated client code is not compatible with the runtime.';
|
|
212
|
+
};
|
|
213
|
+
readonly 'runtime.internal': {
|
|
214
|
+
readonly category: 'internal';
|
|
215
|
+
readonly retryable: false;
|
|
216
|
+
readonly recommendedAction: 'inspectServer';
|
|
217
|
+
readonly message: 'The Syncular runtime failed internally.';
|
|
218
|
+
};
|
|
219
|
+
readonly 'storage.failed': {
|
|
220
|
+
readonly category: 'storage';
|
|
221
|
+
readonly retryable: false;
|
|
222
|
+
readonly recommendedAction: 'inspectStorage';
|
|
223
|
+
readonly message: 'The local Syncular storage operation failed.';
|
|
224
|
+
};
|
|
225
|
+
readonly 'worker.closed': {
|
|
226
|
+
readonly category: 'invalid-request';
|
|
227
|
+
readonly retryable: false;
|
|
228
|
+
readonly recommendedAction: 'fixRequest';
|
|
229
|
+
readonly message: 'The Syncular browser worker client is closed.';
|
|
230
|
+
};
|
|
231
|
+
readonly 'worker.not_open': {
|
|
232
|
+
readonly category: 'invalid-request';
|
|
233
|
+
readonly retryable: false;
|
|
234
|
+
readonly recommendedAction: 'fixRequest';
|
|
235
|
+
readonly message: 'The Syncular browser worker is not open.';
|
|
236
|
+
};
|
|
237
|
+
readonly 'worker.protocol_mismatch': {
|
|
238
|
+
readonly category: 'schema-mismatch';
|
|
239
|
+
readonly retryable: false;
|
|
240
|
+
readonly recommendedAction: 'regenerateClient';
|
|
241
|
+
readonly message: 'The Syncular browser worker protocol is incompatible.';
|
|
242
|
+
};
|
|
243
|
+
readonly 'worker.request_timeout': {
|
|
244
|
+
readonly category: 'rate-limited';
|
|
245
|
+
readonly retryable: true;
|
|
246
|
+
readonly recommendedAction: 'retryLater';
|
|
247
|
+
readonly message: 'The Syncular browser worker request timed out.';
|
|
248
|
+
};
|
|
249
|
+
readonly 'worker.failed': {
|
|
250
|
+
readonly category: 'internal';
|
|
251
|
+
readonly retryable: false;
|
|
252
|
+
readonly recommendedAction: 'recreateClient';
|
|
253
|
+
readonly message: 'The Syncular browser worker failed.';
|
|
254
|
+
};
|
|
255
|
+
readonly 'worker.message_unreadable': {
|
|
256
|
+
readonly category: 'internal';
|
|
257
|
+
readonly retryable: false;
|
|
258
|
+
readonly recommendedAction: 'recreateClient';
|
|
259
|
+
readonly message: 'The Syncular browser worker sent an unreadable message.';
|
|
260
|
+
};
|
|
261
|
+
readonly 'console.auth_required': {
|
|
262
|
+
readonly category: 'auth-required';
|
|
263
|
+
readonly retryable: true;
|
|
264
|
+
readonly recommendedAction: 'refreshAuth';
|
|
265
|
+
readonly message: 'Console authentication is required.';
|
|
266
|
+
};
|
|
267
|
+
readonly 'console.forbidden_origin': {
|
|
268
|
+
readonly category: 'forbidden';
|
|
269
|
+
readonly retryable: false;
|
|
270
|
+
readonly recommendedAction: 'checkPermissions';
|
|
271
|
+
readonly message: 'The console websocket origin is not allowed.';
|
|
272
|
+
};
|
|
273
|
+
readonly 'console.invalid_request': {
|
|
274
|
+
readonly category: 'invalid-request';
|
|
275
|
+
readonly retryable: false;
|
|
276
|
+
readonly recommendedAction: 'fixRequest';
|
|
277
|
+
readonly message: 'The console request is invalid.';
|
|
278
|
+
};
|
|
279
|
+
readonly 'console.schema_unavailable': {
|
|
280
|
+
readonly category: 'server';
|
|
281
|
+
readonly retryable: true;
|
|
282
|
+
readonly recommendedAction: 'retryLater';
|
|
283
|
+
readonly message: 'The console schema is not available.';
|
|
284
|
+
};
|
|
285
|
+
readonly 'console.not_found': {
|
|
286
|
+
readonly category: 'not-found';
|
|
287
|
+
readonly retryable: false;
|
|
288
|
+
readonly recommendedAction: 'inspectServer';
|
|
289
|
+
readonly message: 'The requested console resource was not found.';
|
|
290
|
+
};
|
|
291
|
+
readonly 'console.downstream_unavailable': {
|
|
292
|
+
readonly category: 'server';
|
|
293
|
+
readonly retryable: true;
|
|
294
|
+
readonly recommendedAction: 'retryLater';
|
|
295
|
+
readonly message: 'A console downstream instance is unavailable.';
|
|
296
|
+
};
|
|
297
|
+
readonly 'console.downstream_invalid_response': {
|
|
298
|
+
readonly category: 'server';
|
|
299
|
+
readonly retryable: false;
|
|
300
|
+
readonly recommendedAction: 'inspectServer';
|
|
301
|
+
readonly message: 'A console downstream instance returned an invalid response.';
|
|
302
|
+
};
|
|
303
|
+
readonly 'console.internal': {
|
|
304
|
+
readonly category: 'internal';
|
|
305
|
+
readonly retryable: false;
|
|
306
|
+
readonly recommendedAction: 'inspectServer';
|
|
307
|
+
readonly message: 'The console route failed internally.';
|
|
308
|
+
};
|
|
309
|
+
readonly 'proxy.auth_required': {
|
|
310
|
+
readonly category: 'auth-required';
|
|
311
|
+
readonly retryable: true;
|
|
312
|
+
readonly recommendedAction: 'refreshAuth';
|
|
313
|
+
readonly message: 'Proxy authentication is required.';
|
|
314
|
+
};
|
|
315
|
+
readonly 'proxy.forbidden_origin': {
|
|
316
|
+
readonly category: 'forbidden';
|
|
317
|
+
readonly retryable: false;
|
|
318
|
+
readonly recommendedAction: 'checkPermissions';
|
|
319
|
+
readonly message: 'The proxy websocket origin is not allowed.';
|
|
320
|
+
};
|
|
321
|
+
readonly 'proxy.connection_limit': {
|
|
322
|
+
readonly category: 'rate-limited';
|
|
323
|
+
readonly retryable: true;
|
|
324
|
+
readonly recommendedAction: 'retryLater';
|
|
325
|
+
readonly message: 'The proxy websocket connection limit was reached.';
|
|
326
|
+
};
|
|
327
|
+
readonly 'blob.invalid_request': {
|
|
328
|
+
readonly category: 'blob';
|
|
329
|
+
readonly retryable: false;
|
|
330
|
+
readonly recommendedAction: 'fixRequest';
|
|
331
|
+
readonly message: 'The blob request is invalid.';
|
|
332
|
+
};
|
|
333
|
+
readonly 'blob.storage_not_configured': {
|
|
334
|
+
readonly category: 'blob';
|
|
335
|
+
readonly retryable: false;
|
|
336
|
+
readonly recommendedAction: 'inspectServer';
|
|
337
|
+
readonly message: 'Blob storage is not configured.';
|
|
338
|
+
};
|
|
339
|
+
readonly 'blob.too_large': {
|
|
340
|
+
readonly category: 'blob';
|
|
341
|
+
readonly retryable: false;
|
|
342
|
+
readonly recommendedAction: 'fixRequest';
|
|
343
|
+
readonly message: 'The blob is too large.';
|
|
344
|
+
};
|
|
345
|
+
readonly 'blob.not_found': {
|
|
346
|
+
readonly category: 'blob';
|
|
347
|
+
readonly retryable: false;
|
|
348
|
+
readonly recommendedAction: 'fixRequest';
|
|
349
|
+
readonly message: 'The blob was not found.';
|
|
350
|
+
};
|
|
351
|
+
readonly 'blob.forbidden': {
|
|
352
|
+
readonly category: 'forbidden';
|
|
353
|
+
readonly retryable: false;
|
|
354
|
+
readonly recommendedAction: 'checkPermissions';
|
|
355
|
+
readonly message: 'The authenticated actor is not allowed to access this blob.';
|
|
356
|
+
};
|
|
357
|
+
readonly 'blob.invalid_token': {
|
|
358
|
+
readonly category: 'auth-required';
|
|
359
|
+
readonly retryable: true;
|
|
360
|
+
readonly recommendedAction: 'refreshAuth';
|
|
361
|
+
readonly message: 'The blob token is invalid or expired.';
|
|
362
|
+
};
|
|
363
|
+
readonly 'blob.upload_failed': {
|
|
364
|
+
readonly category: 'blob';
|
|
365
|
+
readonly retryable: true;
|
|
366
|
+
readonly recommendedAction: 'retryLater';
|
|
367
|
+
readonly message: 'The blob upload failed.';
|
|
368
|
+
};
|
|
369
|
+
readonly 'blob.hash_mismatch': {
|
|
370
|
+
readonly category: 'integrity-rejected';
|
|
371
|
+
readonly retryable: false;
|
|
372
|
+
readonly recommendedAction: 'fixRequest';
|
|
373
|
+
readonly message: 'The blob content hash does not match.';
|
|
374
|
+
};
|
|
375
|
+
readonly 'blob.size_mismatch': {
|
|
376
|
+
readonly category: 'blob';
|
|
377
|
+
readonly retryable: false;
|
|
378
|
+
readonly recommendedAction: 'fixRequest';
|
|
379
|
+
readonly message: 'The blob size does not match.';
|
|
380
|
+
};
|
|
381
|
+
};
|
|
382
|
+
export type SyncularErrorCode = keyof typeof SYNCULAR_ERROR_DEFINITIONS;
|
|
383
|
+
export interface CreateSyncularErrorResponseOptions {
|
|
384
|
+
message?: string;
|
|
385
|
+
details?: Record<string, unknown>;
|
|
386
|
+
}
|
|
387
|
+
export declare function createSyncularErrorResponse(code: SyncularErrorCode, options?: CreateSyncularErrorResponseOptions): ErrorResponse & {
|
|
388
|
+
code: SyncularErrorCode;
|
|
389
|
+
category: SyncularErrorCategory;
|
|
390
|
+
retryable: boolean;
|
|
391
|
+
recommendedAction: SyncularErrorRecommendedAction;
|
|
392
|
+
};
|
|
393
|
+
//# sourceMappingURL=error-responses.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-responses.d.ts","sourceRoot":"","sources":["../src/error-responses.ts"],"names":[],"mappings":"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"}
|