@spooky-sync/client-solid 0.0.1-canary.7 → 0.0.1-canary.71
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/AGENTS.md +66 -0
- package/dist/index.cjs +141 -65
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +37 -21
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +37 -21
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +141 -66
- package/dist/index.js.map +1 -1
- package/package.json +6 -5
- package/skills/sp00ky-solid/SKILL.md +264 -0
- package/skills/sp00ky-solid/references/file-hooks.md +112 -0
- package/src/cache/index.ts +1 -1
- package/src/cache/surrealdb-wasm-factory.ts +4 -1
- package/src/index.ts +83 -55
- package/src/lib/{SpookyProvider.ts → Sp00kyProvider.ts} +9 -7
- package/src/lib/context.ts +3 -3
- package/src/lib/models.ts +1 -1
- package/src/lib/use-crdt-field.ts +68 -0
- package/src/lib/use-download-file.ts +2 -2
- package/src/lib/use-file-upload.ts +2 -1
- package/src/lib/use-query.ts +130 -28
- package/src/types/index.ts +3 -4
package/dist/index.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { RecordId, RecordId as RecordId$1, Surreal, Uuid } from "surrealdb";
|
|
2
2
|
import { GenericModel, GenericSchema, SchemaStructure } from "@spooky/query-builder";
|
|
3
|
-
import { AuthService, BucketHandle, RunOptions,
|
|
3
|
+
import { AuthService, BucketHandle, CrdtField, RunOptions, Sp00kyClient, Sp00kyConfig, Sp00kyQueryResultPromise, UpdateOptions } from "@spooky-sync/core";
|
|
4
4
|
import { BackendNames, BackendRoutes, BucketDefinitionSchema, BucketNames, ColumnSchema, FinalQuery, GetCardinality, GetRelationship, GetTable, GetTable as GetTable$1, InferRelatedModelFromMetadata, InnerQuery, QueryBuilder, QueryInfo, QueryModifier, QueryModifierBuilder, QueryResult, QueryResult as QueryResult$1, RelatedFieldMapEntry, RelatedFieldsMap, RelationshipDefinition, RelationshipFieldsFromSchema, RelationshipsMetadata, RoutePayload, SchemaStructure as SchemaStructure$1, TableModel, TableModel as TableModel$1, TableNames, TableNames as TableNames$1 } from "@spooky-sync/query-builder";
|
|
5
5
|
import { Accessor, JSX } from "solid-js";
|
|
6
6
|
|
|
@@ -37,14 +37,22 @@ type InferRelationshipsFromConst<S extends SchemaStructure$1, Schema extends Gen
|
|
|
37
37
|
cardinality: Rel['cardinality'];
|
|
38
38
|
} } };
|
|
39
39
|
type Prettify<T> = { [K in keyof T]: T[K] } & {};
|
|
40
|
-
type SyncedDbConfig<S extends SchemaStructure$1> = Prettify<
|
|
40
|
+
type SyncedDbConfig<S extends SchemaStructure$1> = Prettify<Sp00kyConfig<S>>;
|
|
41
41
|
//#endregion
|
|
42
42
|
//#region src/lib/use-query.d.ts
|
|
43
43
|
type QueryArg<S extends SchemaStructure$1, TableName extends TableNames$1<S>, T extends {
|
|
44
44
|
columns: Record<string, ColumnSchema>;
|
|
45
|
-
}, RelatedFields extends Record<string, any>, IsOne extends boolean> = FinalQuery<S, TableName, T, RelatedFields, IsOne,
|
|
45
|
+
}, RelatedFields extends Record<string, any>, IsOne extends boolean> = FinalQuery<S, TableName, T, RelatedFields, IsOne, Sp00kyQueryResultPromise> | (() => FinalQuery<S, TableName, T, RelatedFields, IsOne, Sp00kyQueryResultPromise> | null | undefined);
|
|
46
46
|
type QueryOptions = {
|
|
47
47
|
enabled?: () => boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Tear down the query (remote `_00_query` view + local WASM view) when this
|
|
50
|
+
* hook is disposed and no other subscriber remains, instead of keeping it
|
|
51
|
+
* resident for cheap re-subscription. Use for viewport-windowed lists that
|
|
52
|
+
* mount/unmount a query per scroll window and want off-screen windows
|
|
53
|
+
* cancelled. Trade-off: scrolling back to a torn-down window re-registers it.
|
|
54
|
+
*/
|
|
55
|
+
deregisterOnCleanup?: boolean;
|
|
48
56
|
};
|
|
49
57
|
declare function useQuery<S extends SchemaStructure$1, TableName extends TableNames$1<S>, T extends {
|
|
50
58
|
columns: Record<string, ColumnSchema>;
|
|
@@ -52,6 +60,7 @@ declare function useQuery<S extends SchemaStructure$1, TableName extends TableNa
|
|
|
52
60
|
data: () => TData | undefined;
|
|
53
61
|
error: () => Error | undefined;
|
|
54
62
|
isLoading: () => boolean;
|
|
63
|
+
isFetching: () => boolean;
|
|
55
64
|
};
|
|
56
65
|
declare function useQuery<S extends SchemaStructure$1, TableName extends TableNames$1<S>, T extends {
|
|
57
66
|
columns: Record<string, ColumnSchema>;
|
|
@@ -59,8 +68,13 @@ declare function useQuery<S extends SchemaStructure$1, TableName extends TableNa
|
|
|
59
68
|
data: () => TData | undefined;
|
|
60
69
|
error: () => Error | undefined;
|
|
61
70
|
isLoading: () => boolean;
|
|
71
|
+
isFetching: () => boolean;
|
|
62
72
|
};
|
|
63
73
|
//#endregion
|
|
74
|
+
//#region src/lib/use-crdt-field.d.ts
|
|
75
|
+
declare function useCrdtField(table: string, recordId: () => string | undefined, field: string, fallbackText?: () => string | undefined): Accessor<CrdtField | null>;
|
|
76
|
+
//# sourceMappingURL=use-crdt-field.d.ts.map
|
|
77
|
+
//#endregion
|
|
64
78
|
//#region src/lib/use-file-upload.d.ts
|
|
65
79
|
interface FileUploadResult {
|
|
66
80
|
isUploading: () => boolean;
|
|
@@ -89,16 +103,16 @@ declare function useDownloadFile<S extends SchemaStructure$1>(bucketName: Bucket
|
|
|
89
103
|
declare function useDownloadFile<S extends SchemaStructure$1>(db: SyncedDb<S>, bucketName: BucketNames<S>, path: Accessor<string | null | undefined>, options?: UseDownloadFileOptions): UseDownloadFileResult;
|
|
90
104
|
//# sourceMappingURL=use-download-file.d.ts.map
|
|
91
105
|
//#endregion
|
|
92
|
-
//#region src/lib/
|
|
93
|
-
interface
|
|
106
|
+
//#region src/lib/Sp00kyProvider.d.ts
|
|
107
|
+
interface Sp00kyProviderProps<S extends SchemaStructure> {
|
|
94
108
|
config: SyncedDbConfig<S>;
|
|
95
109
|
fallback?: JSX.Element;
|
|
96
110
|
onError?: (error: Error) => void;
|
|
97
111
|
onReady?: (db: SyncedDb<S>) => void;
|
|
98
112
|
children: JSX.Element;
|
|
99
113
|
}
|
|
100
|
-
declare function
|
|
101
|
-
//# sourceMappingURL=
|
|
114
|
+
declare function Sp00kyProvider<S extends SchemaStructure>(props: Sp00kyProviderProps<S>): JSX.Element;
|
|
115
|
+
//# sourceMappingURL=Sp00kyProvider.d.ts.map
|
|
102
116
|
//#endregion
|
|
103
117
|
//#region src/lib/context.d.ts
|
|
104
118
|
declare function useDb<S extends SchemaStructure>(): SyncedDb<S>;
|
|
@@ -106,13 +120,13 @@ declare function useDb<S extends SchemaStructure>(): SyncedDb<S>;
|
|
|
106
120
|
|
|
107
121
|
//#endregion
|
|
108
122
|
//#region src/index.d.ts
|
|
109
|
-
type RelationshipField<Schema extends SchemaStructure$1, TableName extends TableNames
|
|
110
|
-
type RelatedFieldsTableScoped<Schema extends SchemaStructure$1, TableName extends TableNames
|
|
123
|
+
type RelationshipField<Schema extends SchemaStructure$1, TableName extends TableNames<Schema>, Field extends RelationshipFieldsFromSchema<Schema, TableName>> = GetRelationship<Schema, TableName, Field>;
|
|
124
|
+
type RelatedFieldsTableScoped<Schema extends SchemaStructure$1, TableName extends TableNames<Schema>, RelatedFields extends RelationshipFieldsFromSchema<Schema, TableName> = RelationshipFieldsFromSchema<Schema, TableName>> = { [K in RelatedFields]: {
|
|
111
125
|
to: RelationshipField<Schema, TableName, K>['to'];
|
|
112
126
|
relatedFields: RelatedFieldsMap;
|
|
113
127
|
cardinality: RelationshipField<Schema, TableName, K>['cardinality'];
|
|
114
128
|
} };
|
|
115
|
-
type InferModel<Schema extends SchemaStructure$1, TableName extends TableNames
|
|
129
|
+
type InferModel<Schema extends SchemaStructure$1, TableName extends TableNames<Schema>, RelatedFields extends RelatedFieldsTableScoped<Schema, TableName>> = QueryResult<Schema, TableName, RelatedFields, true>;
|
|
116
130
|
type WithRelated<Field extends string, RelatedFields extends RelatedFieldsMap = {}> = { [K in Field]: Omit<RelatedFieldMapEntry, 'relatedFields'> & {
|
|
117
131
|
relatedFields: RelatedFields;
|
|
118
132
|
} };
|
|
@@ -122,17 +136,17 @@ type WithRelatedMany<Field extends string, RelatedFields extends RelatedFieldsMa
|
|
|
122
136
|
cardinality: 'many';
|
|
123
137
|
} };
|
|
124
138
|
/**
|
|
125
|
-
* SyncedDb - A thin wrapper around
|
|
126
|
-
* Delegates all logic to the underlying
|
|
139
|
+
* SyncedDb - A thin wrapper around sp00ky-ts for Solid.js integration
|
|
140
|
+
* Delegates all logic to the underlying sp00ky-ts instance
|
|
127
141
|
*/
|
|
128
142
|
declare class SyncedDb<S extends SchemaStructure$1> {
|
|
129
143
|
private config;
|
|
130
|
-
private
|
|
144
|
+
private sp00ky;
|
|
131
145
|
private _initialized;
|
|
132
146
|
constructor(config: SyncedDbConfig<S>);
|
|
133
|
-
|
|
147
|
+
getSp00ky(): Sp00kyClient<S>;
|
|
134
148
|
/**
|
|
135
|
-
* Initialize the
|
|
149
|
+
* Initialize the sp00ky-ts instance
|
|
136
150
|
*/
|
|
137
151
|
init(): Promise<void>;
|
|
138
152
|
/**
|
|
@@ -142,15 +156,15 @@ declare class SyncedDb<S extends SchemaStructure$1> {
|
|
|
142
156
|
/**
|
|
143
157
|
* Update an existing record in the database
|
|
144
158
|
*/
|
|
145
|
-
update<TName extends TableNames
|
|
159
|
+
update<TName extends TableNames<S>>(tableName: TName, recordId: string, payload: Partial<TableModel<GetTable<S, TName>>>, options?: UpdateOptions): Promise<void>;
|
|
146
160
|
/**
|
|
147
161
|
* Delete an existing record in the database
|
|
148
162
|
*/
|
|
149
|
-
delete<TName extends TableNames
|
|
163
|
+
delete<TName extends TableNames<S>>(tableName: TName, selector: string | RecordId | InnerQuery<GetTable<S, TName>, boolean>): Promise<void>;
|
|
150
164
|
/**
|
|
151
165
|
* Query data from the database
|
|
152
166
|
*/
|
|
153
|
-
query<TName extends TableNames
|
|
167
|
+
query<TName extends TableNames<S>>(table: TName): QueryBuilder<S, TName, Sp00kyQueryResultPromise, {}, false>;
|
|
154
168
|
/**
|
|
155
169
|
* Run a backend operation
|
|
156
170
|
*/
|
|
@@ -175,20 +189,22 @@ declare class SyncedDb<S extends SchemaStructure$1> {
|
|
|
175
189
|
/**
|
|
176
190
|
* Access the remote database service directly
|
|
177
191
|
*/
|
|
178
|
-
get remote():
|
|
192
|
+
get remote(): Sp00kyClient<S>['remoteClient'];
|
|
179
193
|
/**
|
|
180
194
|
* Access the local database service directly
|
|
181
195
|
*/
|
|
182
|
-
get local():
|
|
196
|
+
get local(): Sp00kyClient<S>['localClient'];
|
|
183
197
|
/**
|
|
184
198
|
* Access the auth service
|
|
185
199
|
*/
|
|
186
200
|
get auth(): AuthService<S>;
|
|
187
201
|
get pendingMutationCount(): number;
|
|
202
|
+
/** Diagnostic — see `Sp00kyClient.liveRetryCount`. */
|
|
203
|
+
get liveRetryCount(): number;
|
|
188
204
|
subscribeToPendingMutations(cb: (count: number) => void): () => void;
|
|
189
205
|
bucket<B extends BucketNames<S>>(name: B): BucketHandle;
|
|
190
206
|
getBucketConfig(name: string): BucketDefinitionSchema | undefined;
|
|
191
207
|
}
|
|
192
208
|
//#endregion
|
|
193
|
-
export { CacheStrategy, type FileUploadResult, type GenericModel, type GenericSchema, type GetCardinality, type GetTable, InferModel, type InferRelatedModelFromMetadata, InferRelationshipsFromConst, InferSchemaFromConst, type Model, type ModelPayload, ProvisionOptions, type QueryInfo, type QueryModifier, type QueryModifierBuilder, type QueryResult, RecordId, RelatedFieldsTableScoped, type RelationshipDefinition, RelationshipField, type RelationshipsMetadata,
|
|
209
|
+
export { CacheStrategy, type FileUploadResult, type GenericModel, type GenericSchema, type GetCardinality, type GetTable, InferModel, type InferRelatedModelFromMetadata, InferRelationshipsFromConst, InferSchemaFromConst, type Model, type ModelPayload, ProvisionOptions, type QueryInfo, type QueryModifier, type QueryModifierBuilder, type QueryResult, RecordId, RelatedFieldsTableScoped, type RelationshipDefinition, RelationshipField, type RelationshipsMetadata, Sp00kyProvider, type Sp00kyProviderProps, SyncedDb, SyncedDbConfig, type TableModel, type TableNames, type UseDownloadFileOptions, type UseDownloadFileResult, Uuid, WithRelated, WithRelatedMany, useCrdtField, useDb, useDownloadFile, useFileUpload, useQuery };
|
|
194
210
|
//# sourceMappingURL=index.d.cts.map
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../../../src/lib/models.ts","../../../src/types/index.ts","../../../src/lib/use-query.ts","../../../src/lib/use-file-upload.ts","../../../src/lib/use-download-file.ts","../../../src/lib/
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../../../src/lib/models.ts","../../../src/types/index.ts","../../../src/lib/use-query.ts","../../../src/lib/use-crdt-field.ts","../../../src/lib/use-file-upload.ts","../../../src/lib/use-download-file.ts","../../../src/lib/Sp00kyProvider.ts","../../../src/lib/context.ts","../../../src/index.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AuthService, BucketHandle, RunOptions,
|
|
1
|
+
import { AuthService, BucketHandle, CrdtField, RunOptions, Sp00kyClient, Sp00kyConfig, Sp00kyQueryResultPromise, UpdateOptions } from "@spooky-sync/core";
|
|
2
2
|
import { RecordId, RecordId as RecordId$1, Surreal, Uuid } from "surrealdb";
|
|
3
3
|
import { Accessor, JSX } from "solid-js";
|
|
4
4
|
import { GenericModel, GenericSchema, SchemaStructure } from "@spooky/query-builder";
|
|
@@ -37,14 +37,22 @@ type InferRelationshipsFromConst<S extends SchemaStructure$1, Schema extends Gen
|
|
|
37
37
|
cardinality: Rel['cardinality'];
|
|
38
38
|
} } };
|
|
39
39
|
type Prettify<T> = { [K in keyof T]: T[K] } & {};
|
|
40
|
-
type SyncedDbConfig<S extends SchemaStructure$1> = Prettify<
|
|
40
|
+
type SyncedDbConfig<S extends SchemaStructure$1> = Prettify<Sp00kyConfig<S>>;
|
|
41
41
|
//#endregion
|
|
42
42
|
//#region src/lib/use-query.d.ts
|
|
43
43
|
type QueryArg<S extends SchemaStructure$1, TableName extends TableNames$1<S>, T extends {
|
|
44
44
|
columns: Record<string, ColumnSchema>;
|
|
45
|
-
}, RelatedFields extends Record<string, any>, IsOne extends boolean> = FinalQuery<S, TableName, T, RelatedFields, IsOne,
|
|
45
|
+
}, RelatedFields extends Record<string, any>, IsOne extends boolean> = FinalQuery<S, TableName, T, RelatedFields, IsOne, Sp00kyQueryResultPromise> | (() => FinalQuery<S, TableName, T, RelatedFields, IsOne, Sp00kyQueryResultPromise> | null | undefined);
|
|
46
46
|
type QueryOptions = {
|
|
47
47
|
enabled?: () => boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Tear down the query (remote `_00_query` view + local WASM view) when this
|
|
50
|
+
* hook is disposed and no other subscriber remains, instead of keeping it
|
|
51
|
+
* resident for cheap re-subscription. Use for viewport-windowed lists that
|
|
52
|
+
* mount/unmount a query per scroll window and want off-screen windows
|
|
53
|
+
* cancelled. Trade-off: scrolling back to a torn-down window re-registers it.
|
|
54
|
+
*/
|
|
55
|
+
deregisterOnCleanup?: boolean;
|
|
48
56
|
};
|
|
49
57
|
declare function useQuery<S extends SchemaStructure$1, TableName extends TableNames$1<S>, T extends {
|
|
50
58
|
columns: Record<string, ColumnSchema>;
|
|
@@ -52,6 +60,7 @@ declare function useQuery<S extends SchemaStructure$1, TableName extends TableNa
|
|
|
52
60
|
data: () => TData | undefined;
|
|
53
61
|
error: () => Error | undefined;
|
|
54
62
|
isLoading: () => boolean;
|
|
63
|
+
isFetching: () => boolean;
|
|
55
64
|
};
|
|
56
65
|
declare function useQuery<S extends SchemaStructure$1, TableName extends TableNames$1<S>, T extends {
|
|
57
66
|
columns: Record<string, ColumnSchema>;
|
|
@@ -59,8 +68,13 @@ declare function useQuery<S extends SchemaStructure$1, TableName extends TableNa
|
|
|
59
68
|
data: () => TData | undefined;
|
|
60
69
|
error: () => Error | undefined;
|
|
61
70
|
isLoading: () => boolean;
|
|
71
|
+
isFetching: () => boolean;
|
|
62
72
|
};
|
|
63
73
|
//#endregion
|
|
74
|
+
//#region src/lib/use-crdt-field.d.ts
|
|
75
|
+
declare function useCrdtField(table: string, recordId: () => string | undefined, field: string, fallbackText?: () => string | undefined): Accessor<CrdtField | null>;
|
|
76
|
+
//# sourceMappingURL=use-crdt-field.d.ts.map
|
|
77
|
+
//#endregion
|
|
64
78
|
//#region src/lib/use-file-upload.d.ts
|
|
65
79
|
interface FileUploadResult {
|
|
66
80
|
isUploading: () => boolean;
|
|
@@ -89,16 +103,16 @@ declare function useDownloadFile<S extends SchemaStructure$1>(bucketName: Bucket
|
|
|
89
103
|
declare function useDownloadFile<S extends SchemaStructure$1>(db: SyncedDb<S>, bucketName: BucketNames<S>, path: Accessor<string | null | undefined>, options?: UseDownloadFileOptions): UseDownloadFileResult;
|
|
90
104
|
//# sourceMappingURL=use-download-file.d.ts.map
|
|
91
105
|
//#endregion
|
|
92
|
-
//#region src/lib/
|
|
93
|
-
interface
|
|
106
|
+
//#region src/lib/Sp00kyProvider.d.ts
|
|
107
|
+
interface Sp00kyProviderProps<S extends SchemaStructure> {
|
|
94
108
|
config: SyncedDbConfig<S>;
|
|
95
109
|
fallback?: JSX.Element;
|
|
96
110
|
onError?: (error: Error) => void;
|
|
97
111
|
onReady?: (db: SyncedDb<S>) => void;
|
|
98
112
|
children: JSX.Element;
|
|
99
113
|
}
|
|
100
|
-
declare function
|
|
101
|
-
//# sourceMappingURL=
|
|
114
|
+
declare function Sp00kyProvider<S extends SchemaStructure>(props: Sp00kyProviderProps<S>): JSX.Element;
|
|
115
|
+
//# sourceMappingURL=Sp00kyProvider.d.ts.map
|
|
102
116
|
//#endregion
|
|
103
117
|
//#region src/lib/context.d.ts
|
|
104
118
|
declare function useDb<S extends SchemaStructure>(): SyncedDb<S>;
|
|
@@ -106,13 +120,13 @@ declare function useDb<S extends SchemaStructure>(): SyncedDb<S>;
|
|
|
106
120
|
|
|
107
121
|
//#endregion
|
|
108
122
|
//#region src/index.d.ts
|
|
109
|
-
type RelationshipField<Schema extends SchemaStructure$1, TableName extends TableNames
|
|
110
|
-
type RelatedFieldsTableScoped<Schema extends SchemaStructure$1, TableName extends TableNames
|
|
123
|
+
type RelationshipField<Schema extends SchemaStructure$1, TableName extends TableNames<Schema>, Field extends RelationshipFieldsFromSchema<Schema, TableName>> = GetRelationship<Schema, TableName, Field>;
|
|
124
|
+
type RelatedFieldsTableScoped<Schema extends SchemaStructure$1, TableName extends TableNames<Schema>, RelatedFields extends RelationshipFieldsFromSchema<Schema, TableName> = RelationshipFieldsFromSchema<Schema, TableName>> = { [K in RelatedFields]: {
|
|
111
125
|
to: RelationshipField<Schema, TableName, K>['to'];
|
|
112
126
|
relatedFields: RelatedFieldsMap;
|
|
113
127
|
cardinality: RelationshipField<Schema, TableName, K>['cardinality'];
|
|
114
128
|
} };
|
|
115
|
-
type InferModel<Schema extends SchemaStructure$1, TableName extends TableNames
|
|
129
|
+
type InferModel<Schema extends SchemaStructure$1, TableName extends TableNames<Schema>, RelatedFields extends RelatedFieldsTableScoped<Schema, TableName>> = QueryResult<Schema, TableName, RelatedFields, true>;
|
|
116
130
|
type WithRelated<Field extends string, RelatedFields extends RelatedFieldsMap = {}> = { [K in Field]: Omit<RelatedFieldMapEntry, 'relatedFields'> & {
|
|
117
131
|
relatedFields: RelatedFields;
|
|
118
132
|
} };
|
|
@@ -122,17 +136,17 @@ type WithRelatedMany<Field extends string, RelatedFields extends RelatedFieldsMa
|
|
|
122
136
|
cardinality: 'many';
|
|
123
137
|
} };
|
|
124
138
|
/**
|
|
125
|
-
* SyncedDb - A thin wrapper around
|
|
126
|
-
* Delegates all logic to the underlying
|
|
139
|
+
* SyncedDb - A thin wrapper around sp00ky-ts for Solid.js integration
|
|
140
|
+
* Delegates all logic to the underlying sp00ky-ts instance
|
|
127
141
|
*/
|
|
128
142
|
declare class SyncedDb<S extends SchemaStructure$1> {
|
|
129
143
|
private config;
|
|
130
|
-
private
|
|
144
|
+
private sp00ky;
|
|
131
145
|
private _initialized;
|
|
132
146
|
constructor(config: SyncedDbConfig<S>);
|
|
133
|
-
|
|
147
|
+
getSp00ky(): Sp00kyClient<S>;
|
|
134
148
|
/**
|
|
135
|
-
* Initialize the
|
|
149
|
+
* Initialize the sp00ky-ts instance
|
|
136
150
|
*/
|
|
137
151
|
init(): Promise<void>;
|
|
138
152
|
/**
|
|
@@ -142,15 +156,15 @@ declare class SyncedDb<S extends SchemaStructure$1> {
|
|
|
142
156
|
/**
|
|
143
157
|
* Update an existing record in the database
|
|
144
158
|
*/
|
|
145
|
-
update<TName extends TableNames
|
|
159
|
+
update<TName extends TableNames<S>>(tableName: TName, recordId: string, payload: Partial<TableModel<GetTable<S, TName>>>, options?: UpdateOptions): Promise<void>;
|
|
146
160
|
/**
|
|
147
161
|
* Delete an existing record in the database
|
|
148
162
|
*/
|
|
149
|
-
delete<TName extends TableNames
|
|
163
|
+
delete<TName extends TableNames<S>>(tableName: TName, selector: string | RecordId | InnerQuery<GetTable<S, TName>, boolean>): Promise<void>;
|
|
150
164
|
/**
|
|
151
165
|
* Query data from the database
|
|
152
166
|
*/
|
|
153
|
-
query<TName extends TableNames
|
|
167
|
+
query<TName extends TableNames<S>>(table: TName): QueryBuilder<S, TName, Sp00kyQueryResultPromise, {}, false>;
|
|
154
168
|
/**
|
|
155
169
|
* Run a backend operation
|
|
156
170
|
*/
|
|
@@ -175,20 +189,22 @@ declare class SyncedDb<S extends SchemaStructure$1> {
|
|
|
175
189
|
/**
|
|
176
190
|
* Access the remote database service directly
|
|
177
191
|
*/
|
|
178
|
-
get remote():
|
|
192
|
+
get remote(): Sp00kyClient<S>['remoteClient'];
|
|
179
193
|
/**
|
|
180
194
|
* Access the local database service directly
|
|
181
195
|
*/
|
|
182
|
-
get local():
|
|
196
|
+
get local(): Sp00kyClient<S>['localClient'];
|
|
183
197
|
/**
|
|
184
198
|
* Access the auth service
|
|
185
199
|
*/
|
|
186
200
|
get auth(): AuthService<S>;
|
|
187
201
|
get pendingMutationCount(): number;
|
|
202
|
+
/** Diagnostic — see `Sp00kyClient.liveRetryCount`. */
|
|
203
|
+
get liveRetryCount(): number;
|
|
188
204
|
subscribeToPendingMutations(cb: (count: number) => void): () => void;
|
|
189
205
|
bucket<B extends BucketNames<S>>(name: B): BucketHandle;
|
|
190
206
|
getBucketConfig(name: string): BucketDefinitionSchema | undefined;
|
|
191
207
|
}
|
|
192
208
|
//#endregion
|
|
193
|
-
export { CacheStrategy, type FileUploadResult, type GenericModel, type GenericSchema, type GetCardinality, type GetTable, InferModel, type InferRelatedModelFromMetadata, InferRelationshipsFromConst, InferSchemaFromConst, type Model, type ModelPayload, ProvisionOptions, type QueryInfo, type QueryModifier, type QueryModifierBuilder, type QueryResult, RecordId, RelatedFieldsTableScoped, type RelationshipDefinition, RelationshipField, type RelationshipsMetadata,
|
|
209
|
+
export { CacheStrategy, type FileUploadResult, type GenericModel, type GenericSchema, type GetCardinality, type GetTable, InferModel, type InferRelatedModelFromMetadata, InferRelationshipsFromConst, InferSchemaFromConst, type Model, type ModelPayload, ProvisionOptions, type QueryInfo, type QueryModifier, type QueryModifierBuilder, type QueryResult, RecordId, RelatedFieldsTableScoped, type RelationshipDefinition, RelationshipField, type RelationshipsMetadata, Sp00kyProvider, type Sp00kyProviderProps, SyncedDb, SyncedDbConfig, type TableModel, type TableNames, type UseDownloadFileOptions, type UseDownloadFileResult, Uuid, WithRelated, WithRelatedMany, useCrdtField, useDb, useDownloadFile, useFileUpload, useQuery };
|
|
194
210
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/lib/models.ts","../../../src/types/index.ts","../../../src/lib/use-query.ts","../../../src/lib/use-file-upload.ts","../../../src/lib/use-download-file.ts","../../../src/lib/
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/lib/models.ts","../../../src/types/index.ts","../../../src/lib/use-query.ts","../../../src/lib/use-crdt-field.ts","../../../src/lib/use-file-upload.ts","../../../src/lib/use-download-file.ts","../../../src/lib/Sp00kyProvider.ts","../../../src/lib/context.ts","../../../src/index.ts"],"sourcesContent":[],"mappings":"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"}
|