@lsync/server 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -8,3 +8,49 @@ pnpm add @lsync/server @lsync/definitions
8
8
 
9
9
  The package exports the reusable Durable Object, worker handler, collection configuration helpers,
10
10
  and the `@lsync/server/client` subpath for server-side clients.
11
+
12
+ SQLite JSON collections use server-sequence last-write-wins conflict resolution. `previousValue`
13
+ is available to access rules and history consumers, but is not a compare-and-swap precondition.
14
+ Mutation IDs are recorded durably, so retrying the same update is idempotent; reusing an ID with a
15
+ different payload is rejected.
16
+
17
+ ## Safeguards
18
+
19
+ Each WebSocket may subscribe to at most 100 collection scopes by default. Override or disable the
20
+ cap when building the shard options:
21
+
22
+ ```ts
23
+ const options = CollectionShardDurableObject.from(collections)
24
+ .limits({ maxSubscriptionsPerWebSocket: 250 }) // or false
25
+ .build();
26
+ ```
27
+
28
+ Cloudflare's managed Rate Limiting binding can protect WebSocket message handling:
29
+
30
+ ```ts
31
+ import { cloudflareRateLimiter } from "@lsync/server";
32
+
33
+ const options = CollectionShardDurableObject.from(collections)
34
+ .rateLimit(
35
+ cloudflareRateLimiter({
36
+ key: ({ auth, clientId }) => String(auth.userId ?? clientId),
37
+ }),
38
+ )
39
+ .build();
40
+ ```
41
+
42
+ Configure the matching binding in `wrangler.toml` (the period must be 10 or 60 seconds):
43
+
44
+ ```toml
45
+ [[ratelimits]]
46
+ name = "RATE_LIMITER"
47
+ namespace_id = "1001"
48
+
49
+ [ratelimits.simple]
50
+ limit = 100
51
+ period = 60
52
+ ```
53
+
54
+ The managed limiter is intentionally permissive, eventually consistent, and local to a Cloudflare
55
+ location. Use it for abuse protection rather than billing or exact accounting. Prefer an
56
+ authenticated user or tenant key; `clientId` is only the fallback.
package/dist/client.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { A as CollectionSubscriptionInput, B as ReadOrderBy, C as CollectionApiDefinition, E as CollectionConfigs, H as ReadQuery, J as SyncChangesQuery, K as SequencedBatch, L as ReadCursor, M as OperationType, N as PushResult, R as ReadFilter, T as CollectionConfig, U as ReadResult, V as ReadPredicate, X as SyncChangesResult, Y as SyncChangesQueryInput, Z as Update, _ as ApiOutput, b as Batch, d as ApiCallInput, f as ApiContract, g as ApiInput, h as ApiHandlerContext, j as CollectionSubscriptionResult, k as CollectionSubscription, l as ApiCall, m as ApiHandlerArgs, n as Router, p as ApiHandler, q as SequencedUpdate, r as router, t as Context, u as ApiCallArgs, v as ApiPath, w as CollectionApiHandlers, x as Broadcast, y as ApiRoute, z as ReadFilterOperator } from "./router-D_wddPdy.mjs";
1
+ import { A as CollectionSubscriptionInput, B as ReadOrderBy, C as CollectionApiDefinition, E as CollectionConfigs, H as ReadQuery, J as SyncChangesQuery, K as SequencedBatch, L as ReadCursor, M as OperationType, N as PushResult, R as ReadFilter, T as CollectionConfig, U as ReadResult, V as ReadPredicate, X as SyncChangesResult, Y as SyncChangesQueryInput, Z as Update, _ as ApiOutput, b as Batch, d as ApiCallInput, f as ApiContract, g as ApiInput, h as ApiHandlerContext, j as CollectionSubscriptionResult, k as CollectionSubscription, l as ApiCall, m as ApiHandlerArgs, n as Router, p as ApiHandler, q as SequencedUpdate, r as router, t as Context, u as ApiCallArgs, v as ApiPath, w as CollectionApiHandlers, x as Broadcast, y as ApiRoute, z as ReadFilterOperator } from "./router-B9emOwKj.mjs";
2
2
  export { type ApiCall, type ApiCallArgs, type ApiCallInput, type ApiContract, type ApiHandler, type ApiHandlerArgs, type ApiHandlerContext, type ApiInput, type ApiOutput, type ApiPath, type ApiRoute, type Batch, type Broadcast, type CollectionApiDefinition, type CollectionApiHandlers, type CollectionConfig, type CollectionConfigs, type CollectionSubscription, type CollectionSubscriptionInput, type CollectionSubscriptionResult, type Context, type OperationType, type PushResult, type ReadCursor, type ReadFilter, type ReadFilterOperator, type ReadOrderBy, type ReadPredicate, type ReadQuery, type ReadResult, type Router, type SequencedBatch, type SequencedUpdate, type SyncChangesQuery, type SyncChangesQueryInput, type SyncChangesResult, type Update, router };
package/dist/client.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import { t as router } from "./router-C4eYfMV7.mjs";
1
+ import { t as router } from "./router-CZnnFmXh.mjs";
2
2
  export { router };
package/dist/index.d.mts CHANGED
@@ -1,6 +1,5 @@
1
- import { A as CollectionSubscriptionInput, B as ReadOrderBy, C as CollectionApiDefinition, D as CollectionInvalidation, E as CollectionConfigs, F as ReadAccessHandler, G as SQLiteJsonStorageConfig, H as ReadQuery, I as ReadAccessResult, J as SyncChangesQuery, K as SequencedBatch$1, L as ReadCursor, M as OperationType, N as PushResult, O as CollectionStorageConfig, P as ReadAccessContext, Q as WebSocketAttachment, R as ReadFilter, S as CollectionAccessConfig, T as CollectionConfig, U as ReadResult, V as ReadPredicate, W as SQLiteJsonIndexConfig, X as SyncChangesResult, Y as SyncChangesQueryInput, Z as Update, _ as ApiOutput, a as AccessReference, b as Batch, c as ApiAccessHandler, d as ApiCallInput, f as ApiContract, g as ApiInput, h as ApiHandlerContext, i as AccessAuth, j as CollectionSubscriptionResult, k as CollectionSubscription, l as ApiCall, m as ApiHandlerArgs, n as Router, o as AccessReferenceResolver, p as ApiHandler, q as SequencedUpdate, r as router, s as ApiAccessContext, t as Context, u as ApiCallArgs, v as ApiPath, w as CollectionApiHandlers, x as Broadcast, y as ApiRoute, z as ReadFilterOperator } from "./router-D_wddPdy.mjs";
1
+ import { A as CollectionSubscriptionInput, B as ReadOrderBy, C as CollectionApiDefinition, D as CollectionInvalidation, E as CollectionConfigs, F as ReadAccessHandler, G as SQLiteJsonStorageConfig, H as ReadQuery, I as ReadAccessResult, J as SyncChangesQuery, K as SequencedBatch$1, L as ReadCursor, M as OperationType, N as PushResult, O as CollectionStorageConfig, P as ReadAccessContext, Q as WebSocketAttachment, R as ReadFilter, S as CollectionAccessConfig, T as CollectionConfig, U as ReadResult, V as ReadPredicate, W as SQLiteJsonIndexConfig, X as SyncChangesResult, Y as SyncChangesQueryInput, Z as Update, _ as ApiOutput, a as AccessReference, b as Batch, c as ApiAccessHandler, d as ApiCallInput, f as ApiContract, g as ApiInput, h as ApiHandlerContext, i as AccessAuth, j as CollectionSubscriptionResult, k as CollectionSubscription, l as ApiCall, m as ApiHandlerArgs, n as Router, o as AccessReferenceResolver, p as ApiHandler, q as SequencedUpdate, r as router, s as ApiAccessContext, t as Context, u as ApiCallArgs, v as ApiPath, w as CollectionApiHandlers, x as Broadcast, y as ApiRoute, z as ReadFilterOperator } from "./router-B9emOwKj.mjs";
2
2
  import { FuncExpression, ReadExpression, ReadExpressionField, ReadExpressionInput, ReadExpressionRow, ReadExpressionRow as ReadExpressionRow$1, RefExpression, ValExpression, and, compileReadExpression, eq, field, gt, gte, inArray, lt, lte, matchesReadPredicate, ne, not, or, readExpressionReferences, readExpressionRow, val } from "@lsync/transport";
3
- import { z } from "zod";
4
3
  import { CollectionAtPath, CollectionDefinitions, CollectionPath, CollectionSet } from "@lsync/definitions";
5
4
 
6
5
  //#region src/sqlite-json-read.d.ts
@@ -24,6 +23,7 @@ declare function ensureSQLiteJsonTables(sql: SqlStorageLike, collections?: Colle
24
23
  declare function applySQLiteJsonBatch(sql: SqlStorageLike, batch: Batch, collections?: CollectionConfigs): void;
25
24
  //#endregion
26
25
  //#region src/history.d.ts
26
+ declare const SQLITE_JSON_CONFLICT_POLICY: "server-sequence-last-write-wins";
27
27
  interface HistoryOptions {
28
28
  maxChanges?: number;
29
29
  }
@@ -35,6 +35,15 @@ declare function persistSQLiteJsonBatchWithHistory(sql: SqlStorageLike, batch: B
35
35
  declare function readSQLiteJsonChanges(sql: SqlStorageLike, query: SyncChangesQuery, collections?: CollectionConfigs): SyncChangesResult;
36
36
  //#endregion
37
37
  //#region src/durable-object-types.d.ts
38
+ interface RateLimitContext {
39
+ auth: AccessAuth;
40
+ clientId: string;
41
+ env: Env;
42
+ }
43
+ type RateLimitHandler = (context: RateLimitContext) => boolean | Promise<boolean>;
44
+ interface CollectionShardLimits {
45
+ maxSubscriptionsPerWebSocket?: number | false;
46
+ }
38
47
  interface Env {
39
48
  SYNC_SHARDS: DurableObjectNamespace;
40
49
  }
@@ -45,6 +54,8 @@ interface CollectionShardOptions {
45
54
  request: Request;
46
55
  }) => AccessAuth | Promise<AccessAuth>;
47
56
  history?: HistoryOptions;
57
+ limits?: CollectionShardLimits;
58
+ rateLimit?: RateLimitHandler;
48
59
  }
49
60
  //#endregion
50
61
  //#region src/definition-builder.d.ts
@@ -52,7 +63,10 @@ declare function collectionShardOptionsFrom<TCollections extends CollectionDefin
52
63
  declare class CollectionShardDefinitionBuilder<TCollections extends CollectionDefinitions> {
53
64
  private readonly definitions;
54
65
  private readonly overrides;
55
- constructor(definitions: TCollections, overrides: Record<string, ServerCollectionOverride>);
66
+ private readonly options;
67
+ constructor(definitions: TCollections, overrides: Record<string, ServerCollectionOverride>, options: Omit<CollectionShardOptions, "collections">);
68
+ limits(limits: CollectionShardLimits): CollectionShardDefinitionBuilder<TCollections>;
69
+ rateLimit(rateLimit: RateLimitHandler): CollectionShardDefinitionBuilder<TCollections>;
56
70
  collection<TPath extends CollectionPath<TCollections>>(path: TPath, configure: (collection: ServerCollectionBuilder<CollectionAtPath<TCollections, TPath>>) => ServerCollectionBuilder<CollectionAtPath<TCollections, TPath>>): CollectionShardDefinitionBuilder<TCollections>;
57
71
  build(): CollectionShardOptions;
58
72
  }
@@ -98,61 +112,10 @@ declare class CollectionShardDurableObject implements DurableObject {
98
112
  private clientId;
99
113
  private updateSubscriptions;
100
114
  private subscribedUpdates;
101
- private subscribedInvalidations;
102
115
  private accessStore;
103
116
  private shardId;
104
117
  }
105
118
  //#endregion
106
- //#region src/collection-builder.d.ts
107
- type BuilderState = {
108
- path?: string;
109
- schema?: z.ZodTypeAny;
110
- access?: CollectionAccessConfig<any>;
111
- storage?: CollectionStorageConfig;
112
- indexes?: Array<SQLiteJsonIndexConfig>;
113
- initialData?: Array<Record<string, unknown>>;
114
- api?: CollectionApiHandlers;
115
- children?: Record<string, CollectionBuilder<any>>;
116
- };
117
- type InitialCollectionBuilder = Pick<CollectionBuilder<Record<string, unknown>>, "name" | "path">;
118
- type ConfiguredCollectionBuilder<T extends object> = Omit<CollectionBuilder<T>, "name" | "path" | "schema">;
119
- type IndexField<T extends object> = string extends keyof T ? string : Extract<keyof T, string>;
120
- type BuilderIndexConfig<T extends object> = Omit<SQLiteJsonIndexConfig, "fields"> & {
121
- fields: Array<IndexField<T>>;
122
- };
123
- declare function collectionConfigsBuilder(): CollectionConfigsBuilder;
124
- declare function collectionBuilder(): InitialCollectionBuilder;
125
- declare const Collections: {
126
- builder: typeof collectionConfigsBuilder;
127
- collection: typeof collectionBuilder;
128
- };
129
- declare class CollectionConfigsBuilder {
130
- private readonly collections;
131
- constructor(collections: CollectionConfigs);
132
- collection<TBuilder extends CollectionBuilder<any>>(name: string, configure: (builder: Pick<CollectionBuilder<Record<string, unknown>>, "schema" | "path">) => TBuilder): CollectionConfigsBuilder;
133
- path<TBuilder extends CollectionBuilder<any>>(path: string, configure: (builder: Pick<CollectionBuilder<Record<string, unknown>>, "schema">) => TBuilder): CollectionConfigsBuilder;
134
- build(): CollectionConfigs;
135
- }
136
- declare class CollectionBuilder<T extends object = Record<string, unknown>> {
137
- private readonly state;
138
- constructor(state: BuilderState);
139
- name(name: string): Pick<CollectionBuilder<T>, "schema" | "path">;
140
- path(path: string): Pick<CollectionBuilder<T>, "schema">;
141
- schema<TSchema extends z.ZodTypeAny>(schema: TSchema): ConfiguredCollectionBuilder<z.output<TSchema> & object>;
142
- access(access: CollectionAccessConfig<T>): CollectionBuilder<T>;
143
- storage(storage: CollectionStorageConfig): CollectionBuilder<T>;
144
- index(field: IndexField<T>, ...fields: Array<IndexField<T>>): CollectionBuilder<T>;
145
- index(fields: Array<IndexField<T>> | BuilderIndexConfig<T>): CollectionBuilder<T>;
146
- initialData<TData extends T>(...initialData: Array<TData>): CollectionBuilder<T>;
147
- api<TName extends string, TSchema extends z.ZodTypeAny, TResult = unknown>(name: TName, input: TSchema, handler: ApiHandler<TResult, z.output<TSchema>>): CollectionBuilder<T>;
148
- child<TBuilder extends CollectionBuilder<any>>(name: string, configure: (builder: Pick<CollectionBuilder<Record<string, unknown>>, "schema" | "path">) => TBuilder): CollectionBuilder<T>;
149
- buildConfig(): CollectionConfig<T>;
150
- build(): CollectionConfigs;
151
- entries(): CollectionConfigs;
152
- private next;
153
- private requirePath;
154
- }
155
- //#endregion
156
119
  //#region src/worker.d.ts
157
120
  interface WorkerOptions {
158
121
  binding?: keyof Env;
@@ -162,6 +125,14 @@ declare function createWorkerHandler(options?: WorkerOptions): {
162
125
  fetch(request: Request, env: Env): Promise<Response> | Response;
163
126
  };
164
127
  //#endregion
128
+ //#region src/safeguards.d.ts
129
+ declare const DEFAULT_MAX_SUBSCRIPTIONS_PER_WEBSOCKET = 100;
130
+ interface CloudflareRateLimiterOptions {
131
+ binding?: string;
132
+ key?: (context: RateLimitContext) => string;
133
+ }
134
+ declare function cloudflareRateLimiter(options?: CloudflareRateLimiterOptions): RateLimitHandler;
135
+ //#endregion
165
136
  //#region src/collections.d.ts
166
137
  interface ResolvedCollection {
167
138
  name: string;
@@ -201,5 +172,5 @@ declare function readAccessDecision(collection: string, collections: CollectionC
201
172
  //#region src/validation.d.ts
202
173
  declare function validateBatch(batch: Batch, collections?: CollectionConfigs): void;
203
174
  //#endregion
204
- export { type AccessAuth, type AccessReference, type AccessReferenceResolver, type AccessStore, type ApiAccessContext, type ApiAccessHandler, type ApiCall, type ApiCallArgs, type ApiCallInput, type ApiContract, type ApiHandler, type ApiHandlerArgs, type ApiHandlerContext, type ApiInput, type ApiOutput, type ApiPath, type ApiRoute, type Batch, type Broadcast, type CollectionAccessConfig, type CollectionApiDefinition, type CollectionApiHandlers, CollectionBuilder, type CollectionConfig, type CollectionConfigs, CollectionConfigsBuilder, type CollectionInvalidation, CollectionShardDefinitionBuilder, CollectionShardDurableObject, type CollectionShardOptions, type CollectionStorageConfig, type CollectionSubscription, type CollectionSubscriptionInput, type CollectionSubscriptionResult, Collections, type Context, type Env, type FuncExpression, type HistoryOptions, type OperationType, type PushResult, type ReadAccessContext, type ReadAccessDecision, type ReadAccessHandler, type ReadAccessResult, type ReadCursor, type ReadExpression, type ReadExpressionField, type ReadExpressionInput, type ReadExpressionRow, type ReadFilter, type ReadFilterOperator, type ReadOrderBy, type ReadPredicate, type ReadQuery, type ReadResult, type RefExpression, type ResolvedCollection, type Router, type SQLiteJsonIndexConfig, type SQLiteJsonStorageConfig, type SQLiteJsonTableOptions, type SequencedBatch, type SequencedUpdate, ServerCollectionBuilder, type SqlStorageCursorLike, type SqlStorageLike, type SqlStorageValue, type SyncChangesQuery, type SyncChangesQueryInput, type SyncChangesResult, type Update, type ValExpression, type WebSocketAttachment, type WorkerOptions, and, applySQLiteJsonBatch, authorizeApiCall, authorizeReadQuery, authorizeWriteBatch, collectionApiHandlers, collectionBuilder, collectionConfigsBuilder, collectionScope, compileReadExpression, createWorkerHandler, defaultCollectionApiPath, ensureSQLiteJsonTables, eq, field, gt, gte, inArray, isCollectionPattern, lt, lte, matchesReadPredicate, ne, not, or, persistSQLiteJsonBatchWithHistory, readAccessDecision, readExpressionReferences, readExpressionRow, readSQLiteJsonChanges, readSQLiteJsonRow, readSQLiteJsonRows, resolveCollection, router, sqliteJsonTable, val, validateBatch, visibleUpdateForAuth };
175
+ export { type AccessAuth, type AccessReference, type AccessReferenceResolver, type AccessStore, type ApiAccessContext, type ApiAccessHandler, type ApiCall, type ApiCallArgs, type ApiCallInput, type ApiContract, type ApiHandler, type ApiHandlerArgs, type ApiHandlerContext, type ApiInput, type ApiOutput, type ApiPath, type ApiRoute, type Batch, type Broadcast, type CloudflareRateLimiterOptions, type CollectionAccessConfig, type CollectionApiDefinition, type CollectionApiHandlers, type CollectionConfig, type CollectionConfigs, type CollectionInvalidation, CollectionShardDurableObject, type CollectionShardLimits, type CollectionShardOptions, type CollectionStorageConfig, type CollectionSubscription, type CollectionSubscriptionInput, type CollectionSubscriptionResult, type Context, DEFAULT_MAX_SUBSCRIPTIONS_PER_WEBSOCKET, type Env, type FuncExpression, type HistoryOptions, type OperationType, type PushResult, type RateLimitContext, type RateLimitHandler, type ReadAccessContext, type ReadAccessDecision, type ReadAccessHandler, type ReadAccessResult, type ReadCursor, type ReadExpression, type ReadExpressionField, type ReadExpressionInput, type ReadExpressionRow, type ReadFilter, type ReadFilterOperator, type ReadOrderBy, type ReadPredicate, type ReadQuery, type ReadResult, type RefExpression, type ResolvedCollection, type Router, SQLITE_JSON_CONFLICT_POLICY, type SQLiteJsonIndexConfig, type SQLiteJsonStorageConfig, type SQLiteJsonTableOptions, type SequencedBatch, type SequencedUpdate, type SqlStorageCursorLike, type SqlStorageLike, type SqlStorageValue, type SyncChangesQuery, type SyncChangesQueryInput, type SyncChangesResult, type Update, type ValExpression, type WebSocketAttachment, type WorkerOptions, and, applySQLiteJsonBatch, authorizeApiCall, authorizeReadQuery, authorizeWriteBatch, cloudflareRateLimiter, collectionApiHandlers, collectionScope, collectionShardOptionsFrom, compileReadExpression, createWorkerHandler, defaultCollectionApiPath, ensureSQLiteJsonTables, eq, field, gt, gte, inArray, isCollectionPattern, lt, lte, matchesReadPredicate, ne, not, or, persistSQLiteJsonBatchWithHistory, readAccessDecision, readExpressionReferences, readExpressionRow, readSQLiteJsonChanges, readSQLiteJsonRow, readSQLiteJsonRows, resolveCollection, router, sqliteJsonTable, val, validateBatch, visibleUpdateForAuth };
205
176
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/sqlite-json-read.ts","../src/storage.ts","../src/history.ts","../src/durable-object-types.ts","../src/definition-builder.ts","../src/durable-object.ts","../src/collection-builder.ts","../src/worker.ts","../src/collections.ts","../src/access-expression.ts","../src/access.ts","../src/validation.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/sqlite-json-read.ts","../src/storage.ts","../src/history.ts","../src/durable-object-types.ts","../src/definition-builder.ts","../src/durable-object.ts","../src/worker.ts","../src/safeguards.ts","../src/collections.ts","../src/access-expression.ts","../src/access.ts","../src/validation.ts"],"mappings":"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"}