zone4code-sdk 1.0.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 +141 -0
- package/dist/index.cjs +476 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +248 -0
- package/dist/index.d.ts +248 -0
- package/dist/index.js +443 -0
- package/dist/index.js.map +1 -0
- package/package.json +44 -0
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
interface StorageAdapter {
|
|
2
|
+
getItem(key: string): string | null | Promise<string | null>;
|
|
3
|
+
setItem(key: string, value: string): void | Promise<void>;
|
|
4
|
+
removeItem(key: string): void | Promise<void>;
|
|
5
|
+
}
|
|
6
|
+
interface Zone4CodeConfig {
|
|
7
|
+
/**
|
|
8
|
+
* The base URL of the API Gateway (e.g., 'http://localhost:8080' or 'https://api.yourdomain.com')
|
|
9
|
+
*/
|
|
10
|
+
gatewayUrl: string;
|
|
11
|
+
/**
|
|
12
|
+
* Default tenant identifier (workspace ID)
|
|
13
|
+
*/
|
|
14
|
+
tenantId: string;
|
|
15
|
+
/**
|
|
16
|
+
* Optional initial JWT authorization token
|
|
17
|
+
*/
|
|
18
|
+
token?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Optional custom storage adapter for token persistence (defaults to localStorage in browser or MemoryStorage in Node)
|
|
21
|
+
*/
|
|
22
|
+
storage?: StorageAdapter;
|
|
23
|
+
/**
|
|
24
|
+
* Optional custom fetch implementation (useful for tests or custom proxies)
|
|
25
|
+
*/
|
|
26
|
+
fetch?: typeof fetch;
|
|
27
|
+
}
|
|
28
|
+
interface AuthUser {
|
|
29
|
+
id: string;
|
|
30
|
+
email?: string;
|
|
31
|
+
username?: string;
|
|
32
|
+
name?: string;
|
|
33
|
+
firstName?: string;
|
|
34
|
+
lastName?: string;
|
|
35
|
+
roles?: string[];
|
|
36
|
+
attributes?: Record<string, any>;
|
|
37
|
+
}
|
|
38
|
+
interface AuthResponse {
|
|
39
|
+
token: string;
|
|
40
|
+
refreshToken?: string;
|
|
41
|
+
user?: AuthUser;
|
|
42
|
+
}
|
|
43
|
+
interface EntityRecord<T = Record<string, any>> {
|
|
44
|
+
id: string;
|
|
45
|
+
entity_type_id?: string;
|
|
46
|
+
created_at: string;
|
|
47
|
+
updated_at?: string;
|
|
48
|
+
deleted_at?: string | null;
|
|
49
|
+
data: T;
|
|
50
|
+
}
|
|
51
|
+
interface EntityListResponse<T = Record<string, any>> {
|
|
52
|
+
data: Array<EntityRecord<T> | (T & {
|
|
53
|
+
id: string;
|
|
54
|
+
})>;
|
|
55
|
+
total: number;
|
|
56
|
+
page?: number;
|
|
57
|
+
limit?: number;
|
|
58
|
+
cursor?: string;
|
|
59
|
+
}
|
|
60
|
+
interface SchemaProperty {
|
|
61
|
+
type: 'string' | 'number' | 'integer' | 'boolean' | 'object' | 'array';
|
|
62
|
+
description?: string;
|
|
63
|
+
format?: string;
|
|
64
|
+
enum?: any[];
|
|
65
|
+
items?: SchemaProperty;
|
|
66
|
+
properties?: Record<string, SchemaProperty>;
|
|
67
|
+
required?: string[];
|
|
68
|
+
}
|
|
69
|
+
interface EntitySchemaDefinition {
|
|
70
|
+
typeName: string;
|
|
71
|
+
schema: {
|
|
72
|
+
type: 'object';
|
|
73
|
+
required?: string[];
|
|
74
|
+
properties: Record<string, SchemaProperty>;
|
|
75
|
+
additionalProperties?: boolean;
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
type FilterOperator = 'eq' | 'ne' | 'gt' | 'gte' | 'lt' | 'lte' | 'like' | 'in' | 'null';
|
|
79
|
+
|
|
80
|
+
declare class MemoryStorage implements StorageAdapter {
|
|
81
|
+
private store;
|
|
82
|
+
getItem(key: string): string | null;
|
|
83
|
+
setItem(key: string, value: string): void;
|
|
84
|
+
removeItem(key: string): void;
|
|
85
|
+
}
|
|
86
|
+
declare function getDefaultStorage(): StorageAdapter;
|
|
87
|
+
|
|
88
|
+
declare class AuthClient {
|
|
89
|
+
private gatewayUrl;
|
|
90
|
+
private tenantId;
|
|
91
|
+
private storage;
|
|
92
|
+
private token;
|
|
93
|
+
private fetchFn;
|
|
94
|
+
private static TOKEN_KEY_PREFIX;
|
|
95
|
+
constructor(options: {
|
|
96
|
+
gatewayUrl: string;
|
|
97
|
+
tenantId: string;
|
|
98
|
+
storage: StorageAdapter;
|
|
99
|
+
initialToken?: string;
|
|
100
|
+
fetchFn?: typeof fetch;
|
|
101
|
+
});
|
|
102
|
+
getToken(): string | null;
|
|
103
|
+
setToken(token: string | null): void;
|
|
104
|
+
isAuthenticated(): boolean;
|
|
105
|
+
/**
|
|
106
|
+
* Register a new user in the tenant realm
|
|
107
|
+
*/
|
|
108
|
+
register(data: {
|
|
109
|
+
email: string;
|
|
110
|
+
password: string;
|
|
111
|
+
name?: string;
|
|
112
|
+
username?: string;
|
|
113
|
+
attributes?: Record<string, any>;
|
|
114
|
+
}): Promise<AuthResponse>;
|
|
115
|
+
/**
|
|
116
|
+
* Log in an existing user and store their JWT token
|
|
117
|
+
*/
|
|
118
|
+
login(credentials: {
|
|
119
|
+
email?: string;
|
|
120
|
+
username?: string;
|
|
121
|
+
password: string;
|
|
122
|
+
}): Promise<AuthResponse>;
|
|
123
|
+
/**
|
|
124
|
+
* Fetch current authenticated user profile
|
|
125
|
+
*/
|
|
126
|
+
getProfile(): Promise<AuthUser>;
|
|
127
|
+
/**
|
|
128
|
+
* Log out and clear saved token
|
|
129
|
+
*/
|
|
130
|
+
logout(): void;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
declare class SchemaClient {
|
|
134
|
+
private gatewayUrl;
|
|
135
|
+
private tenantId;
|
|
136
|
+
private getToken;
|
|
137
|
+
private fetchFn;
|
|
138
|
+
constructor(options: {
|
|
139
|
+
gatewayUrl: string;
|
|
140
|
+
tenantId: string;
|
|
141
|
+
getToken: () => string | null;
|
|
142
|
+
fetchFn?: typeof fetch;
|
|
143
|
+
});
|
|
144
|
+
private getHeaders;
|
|
145
|
+
/**
|
|
146
|
+
* Define a new JSON Schema or alter an existing schema for an entity type in real-time
|
|
147
|
+
*/
|
|
148
|
+
define(definition: EntitySchemaDefinition): Promise<{
|
|
149
|
+
success: boolean;
|
|
150
|
+
version?: number;
|
|
151
|
+
}>;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
declare class EntityQueryBuilder<T = Record<string, any>> {
|
|
155
|
+
private gatewayUrl;
|
|
156
|
+
private tenantId;
|
|
157
|
+
private typeName;
|
|
158
|
+
private getToken;
|
|
159
|
+
private fetchFn;
|
|
160
|
+
private queryParams;
|
|
161
|
+
constructor(options: {
|
|
162
|
+
gatewayUrl: string;
|
|
163
|
+
tenantId: string;
|
|
164
|
+
typeName: string;
|
|
165
|
+
getToken: () => string | null;
|
|
166
|
+
fetchFn?: typeof fetch;
|
|
167
|
+
});
|
|
168
|
+
private getHeaders;
|
|
169
|
+
eq(field: string, value: string | number | boolean): this;
|
|
170
|
+
ne(field: string, value: string | number | boolean): this;
|
|
171
|
+
gt(field: string, value: number): this;
|
|
172
|
+
gte(field: string, value: number): this;
|
|
173
|
+
lt(field: string, value: number): this;
|
|
174
|
+
lte(field: string, value: number): this;
|
|
175
|
+
/**
|
|
176
|
+
* Case-insensitive substring search (ILIKE %substring%)
|
|
177
|
+
*/
|
|
178
|
+
like(field: string, substring: string): this;
|
|
179
|
+
/**
|
|
180
|
+
* Set membership: matches if field value is in the array
|
|
181
|
+
*/
|
|
182
|
+
in(field: string, values: Array<string | number>): this;
|
|
183
|
+
isNull(field: string): this;
|
|
184
|
+
isNotNull(field: string): this;
|
|
185
|
+
/**
|
|
186
|
+
* Filter entities connected by graph relationship
|
|
187
|
+
*/
|
|
188
|
+
related(relationName: string, entityIds: string | string[]): this;
|
|
189
|
+
orderBy(field: string, direction?: 'asc' | 'desc'): this;
|
|
190
|
+
limit(limit: number): this;
|
|
191
|
+
page(page: number, limit?: number): this;
|
|
192
|
+
offset(offset: number): this;
|
|
193
|
+
cursor(token: string): this;
|
|
194
|
+
flat(enabled?: boolean): this;
|
|
195
|
+
/**
|
|
196
|
+
* Execute query and list matching records with pagination metadata
|
|
197
|
+
*/
|
|
198
|
+
list(): Promise<EntityListResponse<T>>;
|
|
199
|
+
/**
|
|
200
|
+
* Fetch a single entity by ID
|
|
201
|
+
*/
|
|
202
|
+
get(id: string): Promise<EntityRecord<T>>;
|
|
203
|
+
/**
|
|
204
|
+
* Create a new entity record matching schema
|
|
205
|
+
*/
|
|
206
|
+
create(data: T): Promise<EntityRecord<T>>;
|
|
207
|
+
/**
|
|
208
|
+
* Update an existing entity record
|
|
209
|
+
*/
|
|
210
|
+
update(id: string, partialData: Partial<T>): Promise<EntityRecord<T>>;
|
|
211
|
+
/**
|
|
212
|
+
* Soft-delete an entity record
|
|
213
|
+
*/
|
|
214
|
+
delete(id: string): Promise<{
|
|
215
|
+
success: boolean;
|
|
216
|
+
}>;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
declare class Zone4CodeClient {
|
|
220
|
+
readonly gatewayUrl: string;
|
|
221
|
+
readonly tenantId: string;
|
|
222
|
+
readonly auth: AuthClient;
|
|
223
|
+
readonly schema: SchemaClient;
|
|
224
|
+
private storage;
|
|
225
|
+
private fetchFn;
|
|
226
|
+
constructor(config: Zone4CodeConfig);
|
|
227
|
+
/**
|
|
228
|
+
* Access an entity collection with chainable query builder (like Supabase .from('orders'))
|
|
229
|
+
*/
|
|
230
|
+
from<T = Record<string, any>>(typeName: string): EntityQueryBuilder<T>;
|
|
231
|
+
/**
|
|
232
|
+
* Alias for .from(typeName)
|
|
233
|
+
*/
|
|
234
|
+
entities<T = Record<string, any>>(typeName: string): EntityQueryBuilder<T>;
|
|
235
|
+
/**
|
|
236
|
+
* Check gateway connectivity & health
|
|
237
|
+
*/
|
|
238
|
+
health(): Promise<{
|
|
239
|
+
status: string;
|
|
240
|
+
licenseTier?: string;
|
|
241
|
+
}>;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Factory function to instantiate a new Zone4Code client
|
|
245
|
+
*/
|
|
246
|
+
declare function createClient(config: Zone4CodeConfig): Zone4CodeClient;
|
|
247
|
+
|
|
248
|
+
export { AuthClient, type AuthResponse, type AuthUser, type EntityListResponse, EntityQueryBuilder, type EntityRecord, type EntitySchemaDefinition, type FilterOperator, MemoryStorage, SchemaClient, type SchemaProperty, type StorageAdapter, Zone4CodeClient, type Zone4CodeConfig, createClient, createClient as default, getDefaultStorage };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
interface StorageAdapter {
|
|
2
|
+
getItem(key: string): string | null | Promise<string | null>;
|
|
3
|
+
setItem(key: string, value: string): void | Promise<void>;
|
|
4
|
+
removeItem(key: string): void | Promise<void>;
|
|
5
|
+
}
|
|
6
|
+
interface Zone4CodeConfig {
|
|
7
|
+
/**
|
|
8
|
+
* The base URL of the API Gateway (e.g., 'http://localhost:8080' or 'https://api.yourdomain.com')
|
|
9
|
+
*/
|
|
10
|
+
gatewayUrl: string;
|
|
11
|
+
/**
|
|
12
|
+
* Default tenant identifier (workspace ID)
|
|
13
|
+
*/
|
|
14
|
+
tenantId: string;
|
|
15
|
+
/**
|
|
16
|
+
* Optional initial JWT authorization token
|
|
17
|
+
*/
|
|
18
|
+
token?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Optional custom storage adapter for token persistence (defaults to localStorage in browser or MemoryStorage in Node)
|
|
21
|
+
*/
|
|
22
|
+
storage?: StorageAdapter;
|
|
23
|
+
/**
|
|
24
|
+
* Optional custom fetch implementation (useful for tests or custom proxies)
|
|
25
|
+
*/
|
|
26
|
+
fetch?: typeof fetch;
|
|
27
|
+
}
|
|
28
|
+
interface AuthUser {
|
|
29
|
+
id: string;
|
|
30
|
+
email?: string;
|
|
31
|
+
username?: string;
|
|
32
|
+
name?: string;
|
|
33
|
+
firstName?: string;
|
|
34
|
+
lastName?: string;
|
|
35
|
+
roles?: string[];
|
|
36
|
+
attributes?: Record<string, any>;
|
|
37
|
+
}
|
|
38
|
+
interface AuthResponse {
|
|
39
|
+
token: string;
|
|
40
|
+
refreshToken?: string;
|
|
41
|
+
user?: AuthUser;
|
|
42
|
+
}
|
|
43
|
+
interface EntityRecord<T = Record<string, any>> {
|
|
44
|
+
id: string;
|
|
45
|
+
entity_type_id?: string;
|
|
46
|
+
created_at: string;
|
|
47
|
+
updated_at?: string;
|
|
48
|
+
deleted_at?: string | null;
|
|
49
|
+
data: T;
|
|
50
|
+
}
|
|
51
|
+
interface EntityListResponse<T = Record<string, any>> {
|
|
52
|
+
data: Array<EntityRecord<T> | (T & {
|
|
53
|
+
id: string;
|
|
54
|
+
})>;
|
|
55
|
+
total: number;
|
|
56
|
+
page?: number;
|
|
57
|
+
limit?: number;
|
|
58
|
+
cursor?: string;
|
|
59
|
+
}
|
|
60
|
+
interface SchemaProperty {
|
|
61
|
+
type: 'string' | 'number' | 'integer' | 'boolean' | 'object' | 'array';
|
|
62
|
+
description?: string;
|
|
63
|
+
format?: string;
|
|
64
|
+
enum?: any[];
|
|
65
|
+
items?: SchemaProperty;
|
|
66
|
+
properties?: Record<string, SchemaProperty>;
|
|
67
|
+
required?: string[];
|
|
68
|
+
}
|
|
69
|
+
interface EntitySchemaDefinition {
|
|
70
|
+
typeName: string;
|
|
71
|
+
schema: {
|
|
72
|
+
type: 'object';
|
|
73
|
+
required?: string[];
|
|
74
|
+
properties: Record<string, SchemaProperty>;
|
|
75
|
+
additionalProperties?: boolean;
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
type FilterOperator = 'eq' | 'ne' | 'gt' | 'gte' | 'lt' | 'lte' | 'like' | 'in' | 'null';
|
|
79
|
+
|
|
80
|
+
declare class MemoryStorage implements StorageAdapter {
|
|
81
|
+
private store;
|
|
82
|
+
getItem(key: string): string | null;
|
|
83
|
+
setItem(key: string, value: string): void;
|
|
84
|
+
removeItem(key: string): void;
|
|
85
|
+
}
|
|
86
|
+
declare function getDefaultStorage(): StorageAdapter;
|
|
87
|
+
|
|
88
|
+
declare class AuthClient {
|
|
89
|
+
private gatewayUrl;
|
|
90
|
+
private tenantId;
|
|
91
|
+
private storage;
|
|
92
|
+
private token;
|
|
93
|
+
private fetchFn;
|
|
94
|
+
private static TOKEN_KEY_PREFIX;
|
|
95
|
+
constructor(options: {
|
|
96
|
+
gatewayUrl: string;
|
|
97
|
+
tenantId: string;
|
|
98
|
+
storage: StorageAdapter;
|
|
99
|
+
initialToken?: string;
|
|
100
|
+
fetchFn?: typeof fetch;
|
|
101
|
+
});
|
|
102
|
+
getToken(): string | null;
|
|
103
|
+
setToken(token: string | null): void;
|
|
104
|
+
isAuthenticated(): boolean;
|
|
105
|
+
/**
|
|
106
|
+
* Register a new user in the tenant realm
|
|
107
|
+
*/
|
|
108
|
+
register(data: {
|
|
109
|
+
email: string;
|
|
110
|
+
password: string;
|
|
111
|
+
name?: string;
|
|
112
|
+
username?: string;
|
|
113
|
+
attributes?: Record<string, any>;
|
|
114
|
+
}): Promise<AuthResponse>;
|
|
115
|
+
/**
|
|
116
|
+
* Log in an existing user and store their JWT token
|
|
117
|
+
*/
|
|
118
|
+
login(credentials: {
|
|
119
|
+
email?: string;
|
|
120
|
+
username?: string;
|
|
121
|
+
password: string;
|
|
122
|
+
}): Promise<AuthResponse>;
|
|
123
|
+
/**
|
|
124
|
+
* Fetch current authenticated user profile
|
|
125
|
+
*/
|
|
126
|
+
getProfile(): Promise<AuthUser>;
|
|
127
|
+
/**
|
|
128
|
+
* Log out and clear saved token
|
|
129
|
+
*/
|
|
130
|
+
logout(): void;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
declare class SchemaClient {
|
|
134
|
+
private gatewayUrl;
|
|
135
|
+
private tenantId;
|
|
136
|
+
private getToken;
|
|
137
|
+
private fetchFn;
|
|
138
|
+
constructor(options: {
|
|
139
|
+
gatewayUrl: string;
|
|
140
|
+
tenantId: string;
|
|
141
|
+
getToken: () => string | null;
|
|
142
|
+
fetchFn?: typeof fetch;
|
|
143
|
+
});
|
|
144
|
+
private getHeaders;
|
|
145
|
+
/**
|
|
146
|
+
* Define a new JSON Schema or alter an existing schema for an entity type in real-time
|
|
147
|
+
*/
|
|
148
|
+
define(definition: EntitySchemaDefinition): Promise<{
|
|
149
|
+
success: boolean;
|
|
150
|
+
version?: number;
|
|
151
|
+
}>;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
declare class EntityQueryBuilder<T = Record<string, any>> {
|
|
155
|
+
private gatewayUrl;
|
|
156
|
+
private tenantId;
|
|
157
|
+
private typeName;
|
|
158
|
+
private getToken;
|
|
159
|
+
private fetchFn;
|
|
160
|
+
private queryParams;
|
|
161
|
+
constructor(options: {
|
|
162
|
+
gatewayUrl: string;
|
|
163
|
+
tenantId: string;
|
|
164
|
+
typeName: string;
|
|
165
|
+
getToken: () => string | null;
|
|
166
|
+
fetchFn?: typeof fetch;
|
|
167
|
+
});
|
|
168
|
+
private getHeaders;
|
|
169
|
+
eq(field: string, value: string | number | boolean): this;
|
|
170
|
+
ne(field: string, value: string | number | boolean): this;
|
|
171
|
+
gt(field: string, value: number): this;
|
|
172
|
+
gte(field: string, value: number): this;
|
|
173
|
+
lt(field: string, value: number): this;
|
|
174
|
+
lte(field: string, value: number): this;
|
|
175
|
+
/**
|
|
176
|
+
* Case-insensitive substring search (ILIKE %substring%)
|
|
177
|
+
*/
|
|
178
|
+
like(field: string, substring: string): this;
|
|
179
|
+
/**
|
|
180
|
+
* Set membership: matches if field value is in the array
|
|
181
|
+
*/
|
|
182
|
+
in(field: string, values: Array<string | number>): this;
|
|
183
|
+
isNull(field: string): this;
|
|
184
|
+
isNotNull(field: string): this;
|
|
185
|
+
/**
|
|
186
|
+
* Filter entities connected by graph relationship
|
|
187
|
+
*/
|
|
188
|
+
related(relationName: string, entityIds: string | string[]): this;
|
|
189
|
+
orderBy(field: string, direction?: 'asc' | 'desc'): this;
|
|
190
|
+
limit(limit: number): this;
|
|
191
|
+
page(page: number, limit?: number): this;
|
|
192
|
+
offset(offset: number): this;
|
|
193
|
+
cursor(token: string): this;
|
|
194
|
+
flat(enabled?: boolean): this;
|
|
195
|
+
/**
|
|
196
|
+
* Execute query and list matching records with pagination metadata
|
|
197
|
+
*/
|
|
198
|
+
list(): Promise<EntityListResponse<T>>;
|
|
199
|
+
/**
|
|
200
|
+
* Fetch a single entity by ID
|
|
201
|
+
*/
|
|
202
|
+
get(id: string): Promise<EntityRecord<T>>;
|
|
203
|
+
/**
|
|
204
|
+
* Create a new entity record matching schema
|
|
205
|
+
*/
|
|
206
|
+
create(data: T): Promise<EntityRecord<T>>;
|
|
207
|
+
/**
|
|
208
|
+
* Update an existing entity record
|
|
209
|
+
*/
|
|
210
|
+
update(id: string, partialData: Partial<T>): Promise<EntityRecord<T>>;
|
|
211
|
+
/**
|
|
212
|
+
* Soft-delete an entity record
|
|
213
|
+
*/
|
|
214
|
+
delete(id: string): Promise<{
|
|
215
|
+
success: boolean;
|
|
216
|
+
}>;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
declare class Zone4CodeClient {
|
|
220
|
+
readonly gatewayUrl: string;
|
|
221
|
+
readonly tenantId: string;
|
|
222
|
+
readonly auth: AuthClient;
|
|
223
|
+
readonly schema: SchemaClient;
|
|
224
|
+
private storage;
|
|
225
|
+
private fetchFn;
|
|
226
|
+
constructor(config: Zone4CodeConfig);
|
|
227
|
+
/**
|
|
228
|
+
* Access an entity collection with chainable query builder (like Supabase .from('orders'))
|
|
229
|
+
*/
|
|
230
|
+
from<T = Record<string, any>>(typeName: string): EntityQueryBuilder<T>;
|
|
231
|
+
/**
|
|
232
|
+
* Alias for .from(typeName)
|
|
233
|
+
*/
|
|
234
|
+
entities<T = Record<string, any>>(typeName: string): EntityQueryBuilder<T>;
|
|
235
|
+
/**
|
|
236
|
+
* Check gateway connectivity & health
|
|
237
|
+
*/
|
|
238
|
+
health(): Promise<{
|
|
239
|
+
status: string;
|
|
240
|
+
licenseTier?: string;
|
|
241
|
+
}>;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Factory function to instantiate a new Zone4Code client
|
|
245
|
+
*/
|
|
246
|
+
declare function createClient(config: Zone4CodeConfig): Zone4CodeClient;
|
|
247
|
+
|
|
248
|
+
export { AuthClient, type AuthResponse, type AuthUser, type EntityListResponse, EntityQueryBuilder, type EntityRecord, type EntitySchemaDefinition, type FilterOperator, MemoryStorage, SchemaClient, type SchemaProperty, type StorageAdapter, Zone4CodeClient, type Zone4CodeConfig, createClient, createClient as default, getDefaultStorage };
|