@aws-amplify/datastore 3.7.3 → 3.7.4-custom-pk.86
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/CHANGELOG.md +144 -17
- package/README.md +154 -0
- package/dist/aws-amplify-datastore.js +3740 -1599
- package/dist/aws-amplify-datastore.js.map +1 -1
- package/dist/aws-amplify-datastore.min.js +25 -95
- package/dist/aws-amplify-datastore.min.js.map +1 -1
- package/lib/authModeStrategies/multiAuthStrategy.d.ts +2 -2
- package/lib/authModeStrategies/multiAuthStrategy.js +32 -26
- package/lib/authModeStrategies/multiAuthStrategy.js.map +1 -1
- package/lib/datastore/datastore.d.ts +17 -16
- package/lib/datastore/datastore.js +291 -83
- package/lib/datastore/datastore.js.map +1 -1
- package/lib/index.d.ts +3 -19
- package/lib/predicates/index.d.ts +3 -2
- package/lib/predicates/index.js +12 -2
- package/lib/predicates/index.js.map +1 -1
- package/lib/storage/adapter/AsyncStorageAdapter.d.ts +6 -2
- package/lib/storage/adapter/AsyncStorageAdapter.js +361 -193
- package/lib/storage/adapter/AsyncStorageAdapter.js.map +1 -1
- package/lib/storage/adapter/AsyncStorageDatabase.d.ts +4 -4
- package/lib/storage/adapter/AsyncStorageDatabase.js +59 -28
- package/lib/storage/adapter/AsyncStorageDatabase.js.map +1 -1
- package/lib/storage/adapter/InMemoryStore.js +2 -2
- package/lib/storage/adapter/InMemoryStore.js.map +1 -1
- package/lib/storage/adapter/IndexedDBAdapter.d.ts +7 -2
- package/lib/storage/adapter/IndexedDBAdapter.js +454 -252
- package/lib/storage/adapter/IndexedDBAdapter.js.map +1 -1
- package/lib/storage/adapter/index.d.ts +1 -1
- package/lib/storage/storage.d.ts +3 -3
- package/lib/storage/storage.js +106 -28
- package/lib/storage/storage.js.map +1 -1
- package/lib/sync/index.d.ts +23 -7
- package/lib/sync/index.js +18 -17
- package/lib/sync/index.js.map +1 -1
- package/lib/sync/merger.d.ts +3 -3
- package/lib/sync/merger.js +8 -6
- package/lib/sync/merger.js.map +1 -1
- package/lib/sync/outbox.d.ts +2 -2
- package/lib/sync/outbox.js +12 -9
- package/lib/sync/outbox.js.map +1 -1
- package/lib/sync/processors/errorMaps.d.ts +17 -0
- package/lib/sync/processors/errorMaps.js +125 -0
- package/lib/sync/processors/errorMaps.js.map +1 -0
- package/lib/sync/processors/mutation.d.ts +22 -4
- package/lib/sync/processors/mutation.js +119 -51
- package/lib/sync/processors/mutation.js.map +1 -1
- package/lib/sync/processors/subscription.d.ts +4 -2
- package/lib/sync/processors/subscription.js +76 -41
- package/lib/sync/processors/subscription.js.map +1 -1
- package/lib/sync/processors/sync.d.ts +4 -2
- package/lib/sync/processors/sync.js +62 -27
- package/lib/sync/processors/sync.js.map +1 -1
- package/lib/sync/utils.d.ts +3 -2
- package/lib/sync/utils.js +58 -7
- package/lib/sync/utils.js.map +1 -1
- package/lib/types.d.ts +90 -34
- package/lib/types.js +31 -2
- package/lib/types.js.map +1 -1
- package/lib/util.d.ts +48 -33
- package/lib/util.js +219 -57
- package/lib/util.js.map +1 -1
- package/lib-esm/authModeStrategies/multiAuthStrategy.d.ts +2 -2
- package/lib-esm/authModeStrategies/multiAuthStrategy.js +32 -26
- package/lib-esm/authModeStrategies/multiAuthStrategy.js.map +1 -1
- package/lib-esm/datastore/datastore.d.ts +17 -16
- package/lib-esm/datastore/datastore.js +293 -85
- package/lib-esm/datastore/datastore.js.map +1 -1
- package/lib-esm/index.d.ts +3 -19
- package/lib-esm/predicates/index.d.ts +3 -2
- package/lib-esm/predicates/index.js +13 -3
- package/lib-esm/predicates/index.js.map +1 -1
- package/lib-esm/storage/adapter/AsyncStorageAdapter.d.ts +6 -2
- package/lib-esm/storage/adapter/AsyncStorageAdapter.js +361 -193
- package/lib-esm/storage/adapter/AsyncStorageAdapter.js.map +1 -1
- package/lib-esm/storage/adapter/AsyncStorageDatabase.d.ts +4 -4
- package/lib-esm/storage/adapter/AsyncStorageDatabase.js +60 -29
- package/lib-esm/storage/adapter/AsyncStorageDatabase.js.map +1 -1
- package/lib-esm/storage/adapter/InMemoryStore.js +2 -2
- package/lib-esm/storage/adapter/InMemoryStore.js.map +1 -1
- package/lib-esm/storage/adapter/IndexedDBAdapter.d.ts +7 -2
- package/lib-esm/storage/adapter/IndexedDBAdapter.js +454 -252
- package/lib-esm/storage/adapter/IndexedDBAdapter.js.map +1 -1
- package/lib-esm/storage/adapter/index.d.ts +1 -1
- package/lib-esm/storage/storage.d.ts +3 -3
- package/lib-esm/storage/storage.js +106 -28
- package/lib-esm/storage/storage.js.map +1 -1
- package/lib-esm/sync/index.d.ts +23 -7
- package/lib-esm/sync/index.js +20 -19
- package/lib-esm/sync/index.js.map +1 -1
- package/lib-esm/sync/merger.d.ts +3 -3
- package/lib-esm/sync/merger.js +8 -6
- package/lib-esm/sync/merger.js.map +1 -1
- package/lib-esm/sync/outbox.d.ts +2 -2
- package/lib-esm/sync/outbox.js +13 -10
- package/lib-esm/sync/outbox.js.map +1 -1
- package/lib-esm/sync/processors/errorMaps.d.ts +17 -0
- package/lib-esm/sync/processors/errorMaps.js +119 -0
- package/lib-esm/sync/processors/errorMaps.js.map +1 -0
- package/lib-esm/sync/processors/mutation.d.ts +22 -4
- package/lib-esm/sync/processors/mutation.js +122 -54
- package/lib-esm/sync/processors/mutation.js.map +1 -1
- package/lib-esm/sync/processors/subscription.d.ts +4 -2
- package/lib-esm/sync/processors/subscription.js +77 -42
- package/lib-esm/sync/processors/subscription.js.map +1 -1
- package/lib-esm/sync/processors/sync.d.ts +4 -2
- package/lib-esm/sync/processors/sync.js +62 -27
- package/lib-esm/sync/processors/sync.js.map +1 -1
- package/lib-esm/sync/utils.d.ts +3 -2
- package/lib-esm/sync/utils.js +58 -8
- package/lib-esm/sync/utils.js.map +1 -1
- package/lib-esm/types.d.ts +90 -34
- package/lib-esm/types.js +29 -3
- package/lib-esm/types.js.map +1 -1
- package/lib-esm/util.d.ts +48 -33
- package/lib-esm/util.js +207 -54
- package/lib-esm/util.js.map +1 -1
- package/package.json +10 -9
- package/src/authModeStrategies/multiAuthStrategy.ts +24 -21
- package/src/datastore/datastore.ts +448 -148
- package/src/predicates/index.ts +32 -10
- package/src/storage/adapter/AsyncStorageAdapter.ts +305 -78
- package/src/storage/adapter/AsyncStorageDatabase.ts +65 -26
- package/src/storage/adapter/InMemoryStore.ts +2 -2
- package/src/storage/adapter/IndexedDBAdapter.ts +344 -101
- package/src/storage/adapter/index.ts +1 -1
- package/src/storage/storage.ts +85 -24
- package/src/sync/index.ts +74 -58
- package/src/sync/merger.ts +16 -4
- package/src/sync/outbox.ts +22 -8
- package/src/sync/processors/errorMaps.ts +93 -0
- package/src/sync/processors/mutation.ts +143 -84
- package/src/sync/processors/subscription.ts +67 -36
- package/src/sync/processors/sync.ts +37 -12
- package/src/sync/utils.ts +67 -16
- package/src/types.ts +252 -50
- package/src/util.ts +256 -42
- package/ssr/package.json +1 -1
package/lib-esm/types.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { ModelInstanceCreator } from './datastore/datastore';
|
|
2
2
|
import { PredicateAll } from './predicates';
|
|
3
3
|
import { GRAPHQL_AUTH_MODE } from '@aws-amplify/api-graphql';
|
|
4
|
+
import { Auth } from '@aws-amplify/auth';
|
|
5
|
+
import { API } from '@aws-amplify/api';
|
|
6
|
+
import Cache from '@aws-amplify/cache';
|
|
4
7
|
import { Adapter } from './storage/adapter';
|
|
5
8
|
export declare type Schema = UserSchema & {
|
|
6
9
|
version: string;
|
|
@@ -43,17 +46,19 @@ declare type SchemaEnum = {
|
|
|
43
46
|
export declare type ModelAssociation = AssociatedWith | TargetNameAssociation;
|
|
44
47
|
declare type AssociatedWith = {
|
|
45
48
|
connectionType: 'HAS_MANY' | 'HAS_ONE';
|
|
46
|
-
associatedWith: string;
|
|
49
|
+
associatedWith: string | string[];
|
|
47
50
|
targetName?: string;
|
|
51
|
+
targetNames?: string[];
|
|
48
52
|
};
|
|
49
53
|
export declare function isAssociatedWith(obj: any): obj is AssociatedWith;
|
|
50
54
|
declare type TargetNameAssociation = {
|
|
51
55
|
connectionType: 'BELONGS_TO';
|
|
52
|
-
targetName
|
|
56
|
+
targetName?: string;
|
|
57
|
+
targetNames?: string[];
|
|
53
58
|
};
|
|
54
59
|
export declare function isTargetNameAssociation(obj: any): obj is TargetNameAssociation;
|
|
55
60
|
export declare type ModelAttributes = ModelAttribute[];
|
|
56
|
-
declare type ModelAttribute = {
|
|
61
|
+
export declare type ModelAttribute = {
|
|
57
62
|
type: string;
|
|
58
63
|
properties?: Record<string, any>;
|
|
59
64
|
};
|
|
@@ -84,6 +89,7 @@ declare type ModelAttributeKey = {
|
|
|
84
89
|
declare type ModelAttributePrimaryKey = {
|
|
85
90
|
type: 'key';
|
|
86
91
|
properties: {
|
|
92
|
+
name: never;
|
|
87
93
|
fields: string[];
|
|
88
94
|
};
|
|
89
95
|
};
|
|
@@ -176,44 +182,74 @@ export declare type ModelField = {
|
|
|
176
182
|
export declare type NonModelTypeConstructor<T> = {
|
|
177
183
|
new (init: T): T;
|
|
178
184
|
};
|
|
179
|
-
export declare type PersistentModelConstructor<T extends PersistentModel
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
export declare type
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
}
|
|
192
|
-
export declare type
|
|
193
|
-
|
|
194
|
-
|
|
185
|
+
export declare type PersistentModelConstructor<T extends PersistentModel> = {
|
|
186
|
+
new (init: ModelInit<T, PersistentModelMetaData<T>>): T;
|
|
187
|
+
copyOf(src: T, mutator: (draft: MutableModel<T, PersistentModelMetaData<T>>) => void): T;
|
|
188
|
+
};
|
|
189
|
+
export declare type TypeConstructorMap = Record<string, PersistentModelConstructor<any> | NonModelTypeConstructor<unknown>>;
|
|
190
|
+
export declare const __identifierBrand__: unique symbol;
|
|
191
|
+
export declare type IdentifierBrand<T, K> = T & {
|
|
192
|
+
[__identifierBrand__]: K;
|
|
193
|
+
};
|
|
194
|
+
export declare type ManagedIdentifier<T, F extends keyof T> = IdentifierBrand<{
|
|
195
|
+
field: F extends string ? F : never;
|
|
196
|
+
type: T;
|
|
197
|
+
}, 'ManagedIdentifier'>;
|
|
198
|
+
export declare type OptionallyManagedIdentifier<T, F extends keyof T> = IdentifierBrand<{
|
|
199
|
+
field: F extends string ? F : never;
|
|
200
|
+
type: T;
|
|
201
|
+
}, 'OptionallyManagedIdentifier'>;
|
|
202
|
+
export declare type CompositeIdentifier<T, K extends Array<keyof T>> = IdentifierBrand<{
|
|
203
|
+
fields: K;
|
|
204
|
+
type: T;
|
|
205
|
+
}, 'CompositeIdentifier'>;
|
|
206
|
+
export declare type CustomIdentifier<T, K extends keyof T> = CompositeIdentifier<T, [K]>;
|
|
207
|
+
export declare type Identifier<T> = ManagedIdentifier<T, any> | OptionallyManagedIdentifier<T, any> | CompositeIdentifier<T, any> | CustomIdentifier<T, any>;
|
|
208
|
+
export declare type IdentifierFields<T extends PersistentModel, M extends PersistentModelMetaData<T> = never> = (MetadataOrDefault<T, M>['identifier'] extends ManagedIdentifier<any, any> | OptionallyManagedIdentifier<any, any> ? MetadataOrDefault<T, M>['identifier']['field'] : MetadataOrDefault<T, M>['identifier'] extends CompositeIdentifier<T, infer B> ? B[number] : MetadataOrDefault<T, M>['identifier']['field']) & string;
|
|
209
|
+
export declare type IdentifierFieldsForInit<T extends PersistentModel, M extends PersistentModelMetaData<T>> = MetadataOrDefault<T, M>['identifier'] extends DefaultPersistentModelMetaData | ManagedIdentifier<T, any> ? never : MetadataOrDefault<T, M>['identifier'] extends OptionallyManagedIdentifier<T, any> ? IdentifierFields<T, M> : MetadataOrDefault<T, M>['identifier'] extends CompositeIdentifier<T, any> ? IdentifierFields<T, M> : never;
|
|
210
|
+
export declare const __modelMeta__: unique symbol;
|
|
211
|
+
export declare type PersistentModelMetaData<T> = {
|
|
212
|
+
identifier?: Identifier<T>;
|
|
213
|
+
readOnlyFields?: string;
|
|
214
|
+
};
|
|
215
|
+
export declare type DefaultPersistentModelMetaData = {
|
|
216
|
+
identifier: ManagedIdentifier<{
|
|
217
|
+
id: string;
|
|
218
|
+
}, 'id'>;
|
|
219
|
+
readOnlyFields: never;
|
|
220
|
+
};
|
|
221
|
+
export declare type MetadataOrDefault<T extends PersistentModel, _ extends PersistentModelMetaData<T> = never> = T extends {
|
|
222
|
+
[__modelMeta__]: PersistentModelMetaData<T>;
|
|
223
|
+
} ? T[typeof __modelMeta__] : DefaultPersistentModelMetaData;
|
|
224
|
+
export declare type PersistentModel = Readonly<Record<string, any>>;
|
|
225
|
+
export declare type MetadataReadOnlyFields<T extends PersistentModel, M extends PersistentModelMetaData<T>> = Extract<MetadataOrDefault<T, M>['readOnlyFields'] | M['readOnlyFields'], keyof T>;
|
|
226
|
+
export declare type ModelInit<T extends PersistentModel, M extends PersistentModelMetaData<T> = {}> = Omit<T, typeof __modelMeta__ | IdentifierFields<T, M> | MetadataReadOnlyFields<T, M>> & (MetadataOrDefault<T, M>['identifier'] extends OptionallyManagedIdentifier<T, any> ? Partial<Pick<T, IdentifierFieldsForInit<T, M>>> : Required<Pick<T, IdentifierFieldsForInit<T, M>>>);
|
|
195
227
|
declare type DeepWritable<T> = {
|
|
196
228
|
-readonly [P in keyof T]: T[P] extends TypeName<T[P]> ? T[P] : DeepWritable<T[P]>;
|
|
197
229
|
};
|
|
198
|
-
export declare type MutableModel<T extends
|
|
199
|
-
readOnlyFields: 'createdAt' | 'updatedAt';
|
|
200
|
-
}> = DeepWritable<Omit<T, 'id' | K['readOnlyFields']>> & Readonly<Pick<T, 'id' | K['readOnlyFields']>>;
|
|
230
|
+
export declare type MutableModel<T extends PersistentModel, M extends PersistentModelMetaData<T> = {}> = DeepWritable<Omit<T, IdentifierFields<T, M> | MetadataReadOnlyFields<T, M>>> & Readonly<Pick<T, IdentifierFields<T, M> | MetadataReadOnlyFields<T, M>>>;
|
|
201
231
|
export declare type ModelInstanceMetadata = {
|
|
202
|
-
id: string;
|
|
203
232
|
_version: number;
|
|
204
233
|
_lastChangedAt: number;
|
|
205
234
|
_deleted: boolean;
|
|
206
235
|
};
|
|
236
|
+
export declare type IdentifierFieldValue<T extends PersistentModel, M extends PersistentModelMetaData<T>> = MetadataOrDefault<T, M>['identifier'] extends CompositeIdentifier<T, any> ? MetadataOrDefault<T, M>['identifier']['fields'] extends [any] ? T[MetadataOrDefault<T, M>['identifier']['fields'][0]] : never : T[MetadataOrDefault<T, M>['identifier']['field']];
|
|
237
|
+
export declare type IdentifierFieldOrIdentifierObject<T extends PersistentModel, M extends PersistentModelMetaData<T>> = Pick<T, IdentifierFields<T, M>> | IdentifierFieldValue<T, M>;
|
|
238
|
+
export declare function isIdentifierFieldValue<T extends PersistentModel>(obj: any, modelDefinition: SchemaModel): obj is IdentifierFieldValue<T extends PersistentModel ? T : never, any>;
|
|
239
|
+
export declare function isIdentifierFieldOrObject<T extends PersistentModel>(obj: any, modelDefinition: SchemaModel): obj is IdentifierFieldOrIdentifierObject<T, any>;
|
|
240
|
+
export declare function isIdentifierObject<T extends PersistentModel>(obj: any, modelDefinition: SchemaModel): obj is IdentifierFields<T extends PersistentModel ? T : never, any>;
|
|
207
241
|
export declare enum OpType {
|
|
208
242
|
INSERT = "INSERT",
|
|
209
243
|
UPDATE = "UPDATE",
|
|
210
244
|
DELETE = "DELETE"
|
|
211
245
|
}
|
|
212
|
-
export declare type SubscriptionMessage<T extends PersistentModel> =
|
|
246
|
+
export declare type SubscriptionMessage<T extends PersistentModel> = Pick<InternalSubscriptionMessage<T>, 'opType' | 'element' | 'model' | 'condition'>;
|
|
247
|
+
export declare type InternalSubscriptionMessage<T extends PersistentModel> = {
|
|
213
248
|
opType: OpType;
|
|
214
249
|
element: T;
|
|
215
250
|
model: PersistentModelConstructor<T>;
|
|
216
251
|
condition: PredicatesGroup<T> | null;
|
|
252
|
+
savedElement?: T;
|
|
217
253
|
};
|
|
218
254
|
export declare type DataStoreSnapshot<T extends PersistentModel> = {
|
|
219
255
|
items: T[];
|
|
@@ -332,11 +368,16 @@ export declare type RelationType = {
|
|
|
332
368
|
modelName: string;
|
|
333
369
|
relationType: 'HAS_ONE' | 'HAS_MANY' | 'BELONGS_TO';
|
|
334
370
|
targetName?: string;
|
|
335
|
-
|
|
371
|
+
targetNames?: string[];
|
|
372
|
+
associatedWith?: string | string[];
|
|
336
373
|
};
|
|
374
|
+
declare type IndexOptions = {
|
|
375
|
+
unique?: boolean;
|
|
376
|
+
};
|
|
377
|
+
export declare type IndexesType = Array<[string, string[], IndexOptions?]>;
|
|
337
378
|
export declare type RelationshipType = {
|
|
338
379
|
[modelName: string]: {
|
|
339
|
-
indexes:
|
|
380
|
+
indexes: IndexesType;
|
|
340
381
|
relationTypes: RelationType[];
|
|
341
382
|
};
|
|
342
383
|
};
|
|
@@ -351,7 +392,7 @@ export declare type DataStoreConfig = {
|
|
|
351
392
|
DataStore?: {
|
|
352
393
|
authModeStrategyType?: AuthModeStrategyType;
|
|
353
394
|
conflictHandler?: ConflictHandler;
|
|
354
|
-
errorHandler?: (error: SyncError) => void;
|
|
395
|
+
errorHandler?: (error: SyncError<PersistentModel>) => void;
|
|
355
396
|
maxRecordsToSync?: number;
|
|
356
397
|
syncPageSize?: number;
|
|
357
398
|
fullSyncInterval?: number;
|
|
@@ -361,7 +402,7 @@ export declare type DataStoreConfig = {
|
|
|
361
402
|
};
|
|
362
403
|
authModeStrategyType?: AuthModeStrategyType;
|
|
363
404
|
conflictHandler?: ConflictHandler;
|
|
364
|
-
errorHandler?: (error: SyncError) => void;
|
|
405
|
+
errorHandler?: (error: SyncError<PersistentModel>) => void;
|
|
365
406
|
maxRecordsToSync?: number;
|
|
366
407
|
syncPageSize?: number;
|
|
367
408
|
fullSyncInterval?: number;
|
|
@@ -419,17 +460,27 @@ export declare type SyncConflict = {
|
|
|
419
460
|
operation: OpType;
|
|
420
461
|
attempts: number;
|
|
421
462
|
};
|
|
422
|
-
export declare type SyncError = {
|
|
463
|
+
export declare type SyncError<T extends PersistentModel> = {
|
|
423
464
|
message: string;
|
|
424
|
-
errorType:
|
|
425
|
-
errorInfo
|
|
426
|
-
|
|
427
|
-
|
|
465
|
+
errorType: ErrorType;
|
|
466
|
+
errorInfo?: string;
|
|
467
|
+
recoverySuggestion?: string;
|
|
468
|
+
model?: string;
|
|
469
|
+
localModel: T;
|
|
470
|
+
remoteModel: T;
|
|
471
|
+
process: ProcessName;
|
|
428
472
|
operation: string;
|
|
473
|
+
cause?: Error;
|
|
429
474
|
};
|
|
475
|
+
export declare type ErrorType = 'ConfigError' | 'BadModel' | 'BadRecord' | 'Unauthorized' | 'Transient' | 'Unknown';
|
|
476
|
+
export declare enum ProcessName {
|
|
477
|
+
'sync' = "sync",
|
|
478
|
+
'mutate' = "mutate",
|
|
479
|
+
'subscribe' = "subscribe"
|
|
480
|
+
}
|
|
430
481
|
export declare const DISCARD: unique symbol;
|
|
431
482
|
export declare type ConflictHandler = (conflict: SyncConflict) => Promise<PersistentModel | typeof DISCARD> | PersistentModel | typeof DISCARD;
|
|
432
|
-
export declare type ErrorHandler = (error: SyncError) => void;
|
|
483
|
+
export declare type ErrorHandler = (error: SyncError<PersistentModel>) => void;
|
|
433
484
|
export declare type DeferredCallbackResolverOptions = {
|
|
434
485
|
callback: () => void;
|
|
435
486
|
maxInterval?: number;
|
|
@@ -439,4 +490,9 @@ export declare enum LimitTimerRaceResolvedValues {
|
|
|
439
490
|
LIMIT = "LIMIT",
|
|
440
491
|
TIMER = "TIMER"
|
|
441
492
|
}
|
|
493
|
+
export declare type AmplifyContext = {
|
|
494
|
+
Auth: typeof Auth;
|
|
495
|
+
API: typeof API;
|
|
496
|
+
Cache: typeof Cache;
|
|
497
|
+
};
|
|
442
498
|
export {};
|
package/lib-esm/types.js
CHANGED
|
@@ -34,7 +34,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
34
34
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
|
-
import { exhaustiveCheck, isAWSDate, isAWSTime, isAWSDateTime, isAWSTimestamp, isAWSEmail, isAWSJSON, isAWSURL, isAWSPhone, isAWSIPAddress, } from './util';
|
|
37
|
+
import { exhaustiveCheck, isAWSDate, isAWSTime, isAWSDateTime, isAWSTimestamp, isAWSEmail, isAWSJSON, isAWSURL, isAWSPhone, isAWSIPAddress, extractPrimaryKeyFieldNames, } from './util';
|
|
38
38
|
export function isSchemaModel(obj) {
|
|
39
39
|
return obj && obj.pluralName !== undefined;
|
|
40
40
|
}
|
|
@@ -42,7 +42,7 @@ export function isAssociatedWith(obj) {
|
|
|
42
42
|
return obj && obj.associatedWith;
|
|
43
43
|
}
|
|
44
44
|
export function isTargetNameAssociation(obj) {
|
|
45
|
-
return obj
|
|
45
|
+
return (obj === null || obj === void 0 ? void 0 : obj.targetName) || (obj === null || obj === void 0 ? void 0 : obj.targetNames);
|
|
46
46
|
}
|
|
47
47
|
export function isModelAttributeAuth(attr) {
|
|
48
48
|
return (attr.type === 'auth' &&
|
|
@@ -170,6 +170,27 @@ export function isEnumFieldType(obj) {
|
|
|
170
170
|
return true;
|
|
171
171
|
return false;
|
|
172
172
|
}
|
|
173
|
+
export function isIdentifierFieldValue(obj, modelDefinition) {
|
|
174
|
+
var _a;
|
|
175
|
+
var keys = extractPrimaryKeyFieldNames(modelDefinition);
|
|
176
|
+
if (keys.length === 1) {
|
|
177
|
+
var type = ((_a = modelDefinition === null || modelDefinition === void 0 ? void 0 : modelDefinition.fields[keys[0]]) !== null && _a !== void 0 ? _a : {}).type;
|
|
178
|
+
if (isGraphQLScalarType(type)) {
|
|
179
|
+
var jsType = GraphQLScalarType.getJSType(type);
|
|
180
|
+
return typeof obj === jsType;
|
|
181
|
+
}
|
|
182
|
+
return false;
|
|
183
|
+
}
|
|
184
|
+
return false;
|
|
185
|
+
}
|
|
186
|
+
export function isIdentifierFieldOrObject(obj, modelDefinition) {
|
|
187
|
+
return (isIdentifierFieldValue(obj, modelDefinition) ||
|
|
188
|
+
isIdentifierObject(obj, modelDefinition));
|
|
189
|
+
}
|
|
190
|
+
export function isIdentifierObject(obj, modelDefinition) {
|
|
191
|
+
var keys = extractPrimaryKeyFieldNames(modelDefinition);
|
|
192
|
+
return (typeof obj === 'object' && obj && keys.every(function (k) { return obj[k] !== undefined; }));
|
|
193
|
+
}
|
|
173
194
|
//#endregion
|
|
174
195
|
//#region Subscription messages
|
|
175
196
|
export var OpType;
|
|
@@ -216,11 +237,16 @@ export function syncExpression(modelConstructor, conditionProducer) {
|
|
|
216
237
|
});
|
|
217
238
|
});
|
|
218
239
|
}
|
|
240
|
+
export var ProcessName;
|
|
241
|
+
(function (ProcessName) {
|
|
242
|
+
ProcessName["sync"] = "sync";
|
|
243
|
+
ProcessName["mutate"] = "mutate";
|
|
244
|
+
ProcessName["subscribe"] = "subscribe";
|
|
245
|
+
})(ProcessName || (ProcessName = {}));
|
|
219
246
|
export var DISCARD = Symbol('DISCARD');
|
|
220
247
|
export var LimitTimerRaceResolvedValues;
|
|
221
248
|
(function (LimitTimerRaceResolvedValues) {
|
|
222
249
|
LimitTimerRaceResolvedValues["LIMIT"] = "LIMIT";
|
|
223
250
|
LimitTimerRaceResolvedValues["TIMER"] = "TIMER";
|
|
224
251
|
})(LimitTimerRaceResolvedValues || (LimitTimerRaceResolvedValues = {}));
|
|
225
|
-
//#endregion
|
|
226
252
|
//# sourceMappingURL=types.js.map
|
package/lib-esm/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,EACN,eAAe,EACf,SAAS,EACT,SAAS,EACT,aAAa,EACb,cAAc,EACd,UAAU,EACV,SAAS,EACT,QAAQ,EACR,UAAU,EACV,cAAc,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/lib-esm/util.d.ts
CHANGED
|
@@ -1,37 +1,15 @@
|
|
|
1
1
|
import { ULID } from 'ulid';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
export declare const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export declare
|
|
9
|
-
export declare
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}>;
|
|
14
|
-
export declare function registerNonModelClass(clazz: NonModelTypeConstructor<any>): void;
|
|
15
|
-
export declare const isNonModelConstructor: (obj: any) => obj is NonModelTypeConstructor<any>;
|
|
16
|
-
export declare const processCompositeKeys: (attributes: ModelAttributes) => Set<string>[];
|
|
17
|
-
export declare const establishRelationAndKeys: (namespace: SchemaNamespace) => [RelationshipType, ModelKeys];
|
|
18
|
-
export declare const traverseModel: <T extends Readonly<{
|
|
19
|
-
id: string;
|
|
20
|
-
} & Record<string, any>>>(srcModelName: string, instance: T, namespace: SchemaNamespace, modelInstanceCreator: <T_1 extends Readonly<{
|
|
21
|
-
id: string;
|
|
22
|
-
} & Record<string, any>> = Readonly<{
|
|
23
|
-
id: string;
|
|
24
|
-
} & Record<string, any>>>(modelConstructor: PersistentModelConstructor<T_1, {
|
|
25
|
-
readOnlyFields: "createdAt" | "updatedAt";
|
|
26
|
-
}>, init: Pick<T_1, Exclude<keyof T_1, "id" | "createdAt" | "updatedAt">> & Partial<ModelInstanceMetadata>) => T_1, getModelConstructorByModelName: (namsespaceName: string, modelName: string) => PersistentModelConstructor<any, {
|
|
27
|
-
readOnlyFields: "createdAt" | "updatedAt";
|
|
28
|
-
}>) => {
|
|
29
|
-
modelName: string;
|
|
30
|
-
item: T;
|
|
31
|
-
instance: T;
|
|
32
|
-
}[];
|
|
33
|
-
export declare const getIndex: (rel: RelationType[], src: string) => string;
|
|
34
|
-
export declare const getIndexFromAssociation: (indexes: string[], src: string) => string;
|
|
2
|
+
import { Patch } from 'immer';
|
|
3
|
+
import { PersistentModel, PersistentModelConstructor, PredicateObject, PredicatesGroup, RelationshipType, RelationType, ModelKeys, ModelAttributes, SchemaNamespace, SortPredicatesGroup, NonModelTypeConstructor, DeferredCallbackResolverOptions, SchemaModel, ModelAttribute, IndexesType } from './types';
|
|
4
|
+
export declare const errorMessages: {
|
|
5
|
+
idEmptyString: string;
|
|
6
|
+
};
|
|
7
|
+
export declare function extractKeyIfExists(modelDefinition: SchemaModel): ModelAttribute | undefined;
|
|
8
|
+
export declare function extractPrimaryKeyFieldNames(modelDefinition: SchemaModel): string[];
|
|
9
|
+
export declare function extractPrimaryKeyValues<T extends PersistentModel>(model: T, keyFields: string[]): string[];
|
|
10
|
+
export declare function extractPrimaryKeysAndValues<T extends PersistentModel>(model: T, keyFields: string[]): any;
|
|
11
|
+
export declare function isIdManaged(modelDefinition: SchemaModel): boolean;
|
|
12
|
+
export declare function isIdOptionallyManaged(modelDefinition: SchemaModel): boolean;
|
|
35
13
|
export declare enum NAMESPACES {
|
|
36
14
|
DATASTORE = "datastore",
|
|
37
15
|
USER = "user",
|
|
@@ -43,6 +21,23 @@ declare const USER = NAMESPACES.USER;
|
|
|
43
21
|
declare const SYNC = NAMESPACES.SYNC;
|
|
44
22
|
declare const STORAGE = NAMESPACES.STORAGE;
|
|
45
23
|
export { USER, SYNC, STORAGE, DATASTORE };
|
|
24
|
+
export declare const USER_AGENT_SUFFIX_DATASTORE = "/DataStore";
|
|
25
|
+
export declare const exhaustiveCheck: (obj: never, throwOnError?: boolean) => void;
|
|
26
|
+
export declare const isNullOrUndefined: (val: any) => boolean;
|
|
27
|
+
export declare const validatePredicate: <T extends Readonly<Record<string, any>>>(model: T, groupType: "and" | "or" | "not", predicatesOrGroups: (PredicateObject<T> | PredicatesGroup<T>)[]) => any;
|
|
28
|
+
export declare const validatePredicateField: <T>(value: T, operator: "ne" | "eq" | "le" | "lt" | "ge" | "gt" | "between" | "beginsWith" | "contains" | "notContains", operand: T | [T, T]) => boolean;
|
|
29
|
+
export declare const isModelConstructor: <T extends Readonly<Record<string, any>>>(obj: any) => obj is PersistentModelConstructor<T>;
|
|
30
|
+
export declare function registerNonModelClass(clazz: NonModelTypeConstructor<any>): void;
|
|
31
|
+
export declare const isNonModelConstructor: (obj: any) => obj is NonModelTypeConstructor<any>;
|
|
32
|
+
export declare const processCompositeKeys: (attributes: ModelAttributes) => Set<string>[];
|
|
33
|
+
export declare const establishRelationAndKeys: (namespace: SchemaNamespace) => [RelationshipType, ModelKeys];
|
|
34
|
+
export declare const traverseModel: <T extends Readonly<Record<string, any>>>(srcModelName: string, instance: T, namespace: SchemaNamespace, modelInstanceCreator: <T_1 extends Readonly<Record<string, any>>>(modelConstructor: PersistentModelConstructor<T_1>, init: Partial<T_1>) => T_1, getModelConstructorByModelName: (namsespaceName: string, modelName: string) => PersistentModelConstructor<any>) => {
|
|
35
|
+
modelName: string;
|
|
36
|
+
item: T;
|
|
37
|
+
instance: T;
|
|
38
|
+
}[];
|
|
39
|
+
export declare const getIndex: (rel: RelationType[], src: any) => string;
|
|
40
|
+
export declare const getIndexFromAssociation: (indexes: IndexesType, src: string | string[]) => string;
|
|
46
41
|
export declare const isPrivateMode: () => Promise<unknown>;
|
|
47
42
|
export declare function monotonicUlidFactory(seed?: number): ULID;
|
|
48
43
|
/**
|
|
@@ -91,3 +86,23 @@ export declare class DeferredCallbackResolver {
|
|
|
91
86
|
clear(): void;
|
|
92
87
|
resolve(): void;
|
|
93
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* merge two sets of patches created by immer produce.
|
|
91
|
+
* newPatches take precedent over oldPatches for patches modifying the same path.
|
|
92
|
+
* In the case many consecutive pathces are merged the original model should
|
|
93
|
+
* always be the root model.
|
|
94
|
+
*
|
|
95
|
+
* Example:
|
|
96
|
+
* A -> B, patches1
|
|
97
|
+
* B -> C, patches2
|
|
98
|
+
*
|
|
99
|
+
* mergePatches(A, patches1, patches2) to get patches for A -> C
|
|
100
|
+
*
|
|
101
|
+
* @param originalSource the original Model the patches should be applied to
|
|
102
|
+
* @param oldPatches immer produce patch list
|
|
103
|
+
* @param newPatches immer produce patch list (will take precedence)
|
|
104
|
+
* @return merged patches
|
|
105
|
+
*/
|
|
106
|
+
export declare function mergePatches<T>(originalSource: T, oldPatches: Patch[], newPatches: Patch[]): Patch[];
|
|
107
|
+
export declare function extractTargetNamesFromSrc(src: any): string[] | undefined;
|
|
108
|
+
export declare function indexNameFromKeys(keys: string[]): string;
|