electrodb 1.10.2 → 1.12.1
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 +97 -35
- package/index.d.ts +351 -100
- package/index.js +2 -1
- package/notes +45 -0
- package/output +106 -0
- package/package.json +8 -10
- package/src/clauses.js +20 -4
- package/src/client.js +2 -2
- package/src/entity.js +159 -9
- package/src/operations.js +7 -1
- package/src/schema.js +53 -14
- package/src/types.js +9 -0
- package/src/util.js +8 -0
- package/taskdata.json +1 -0
- package/typez.ts +1736 -0
- package/src/parse.js +0 -45
package/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
|
|
1
2
|
export type DocumentClientMethod = (parameters: any) => {promise: () => Promise<any>};
|
|
2
3
|
|
|
3
4
|
export type DocumentClient = {
|
|
@@ -79,6 +80,7 @@ export type CollectionWhereCallback<E extends {[name: string]: Entity<any, any,
|
|
|
79
80
|
|
|
80
81
|
export type CollectionWhereClause<E extends {[name: string]: Entity<any, any, any, any>}, A extends string, F extends string, C extends string, S extends Schema<A,F,C>, I extends Partial<AllEntityAttributes<E>>, T> = (where: CollectionWhereCallback<E, I>) => T;
|
|
81
82
|
|
|
83
|
+
|
|
82
84
|
export interface WhereRecordsActionOptions<E extends {[name: string]: Entity<any, any, any, any>}, A extends string, F extends string, C extends string, S extends Schema<A,F,C>, I extends Partial<AllEntityAttributes<E>>, Items, IndexCompositeAttributes> {
|
|
83
85
|
go: GoRecord<Items>;
|
|
84
86
|
params: ParamRecord;
|
|
@@ -349,6 +351,13 @@ export type CollectionItem<SERVICE extends Service<any>, COLLECTION extends keyo
|
|
|
349
351
|
: never>
|
|
350
352
|
: never
|
|
351
353
|
|
|
354
|
+
export interface QueryBranches<A extends string,
|
|
355
|
+
F extends string, C extends string, S extends Schema<A,F,C>, ResponseItem, IndexCompositeAttributes> {
|
|
356
|
+
go: GoQueryTerminal<A,F,C,S,ResponseItem>;
|
|
357
|
+
params: ParamTerminal<A,F,C,S,ResponseItem>;
|
|
358
|
+
page: PageQueryTerminal<A,F,C,S,ResponseItem,IndexCompositeAttributes>;
|
|
359
|
+
where: WhereClause<A,F,C,S,Item<A,F,C,S,S["attributes"]>,QueryBranches<A,F,C,S,ResponseItem,IndexCompositeAttributes>>
|
|
360
|
+
}
|
|
352
361
|
|
|
353
362
|
export interface RecordsActionOptions<A extends string,
|
|
354
363
|
F extends string, C extends string, S extends Schema<A,F,C>, Items, IndexCompositeAttributes> {
|
|
@@ -359,11 +368,16 @@ export interface RecordsActionOptions<A extends string,
|
|
|
359
368
|
}
|
|
360
369
|
|
|
361
370
|
export interface SingleRecordOperationOptions<A extends string, F extends string, C extends string, S extends Schema<A,F,C>, ResponseType> {
|
|
362
|
-
go:
|
|
363
|
-
params:
|
|
371
|
+
go: GoGetTerminal<A,F,C,S, ResponseType>;
|
|
372
|
+
params: ParamTerminal<A,F,C,S,ResponseType>;
|
|
364
373
|
where: WhereClause<A,F,C,S,Item<A,F,C,S,S["attributes"]>,SingleRecordOperationOptions<A,F,C,S,ResponseType>>;
|
|
365
374
|
}
|
|
366
375
|
|
|
376
|
+
export interface BatchGetRecordOperationOptions<A extends string, F extends string, C extends string, S extends Schema<A,F,C>, ResponseType> {
|
|
377
|
+
go: GoBatchGetTerminal<A,F,C,S,ResponseType>
|
|
378
|
+
params: ParamTerminal<A,F,C,S,ResponseType>;
|
|
379
|
+
}
|
|
380
|
+
|
|
367
381
|
export interface PutRecordOperationOptions<A extends string, F extends string, C extends string, S extends Schema<A,F,C>, ResponseType> {
|
|
368
382
|
go: GoRecord<ResponseType, PutQueryOptions>;
|
|
369
383
|
params: ParamRecord<PutQueryOptions>;
|
|
@@ -406,17 +420,17 @@ export type RemoveRecord<A extends string, F extends string, C extends string, S
|
|
|
406
420
|
export type DataUpdateMethodRecord<A extends string, F extends string, C extends string, S extends Schema<A,F,C>, SetAttr, IndexCompositeAttributes, TableItem> =
|
|
407
421
|
DataUpdateMethod<A,F,C,S, UpdateData<A,F,C,S>, SetRecordActionOptions<A,F,C,S, SetAttr, IndexCompositeAttributes, TableItem>>
|
|
408
422
|
|
|
409
|
-
interface QueryOperations<A extends string, F extends string, C extends string, S extends Schema<A,F,C>, CompositeAttributes,
|
|
410
|
-
between: (skCompositeAttributesStart: CompositeAttributes, skCompositeAttributesEnd: CompositeAttributes) =>
|
|
411
|
-
gt: (skCompositeAttributes: CompositeAttributes) =>
|
|
412
|
-
gte: (skCompositeAttributes: CompositeAttributes) =>
|
|
413
|
-
lt: (skCompositeAttributes: CompositeAttributes) =>
|
|
414
|
-
lte: (skCompositeAttributes: CompositeAttributes) =>
|
|
415
|
-
begins: (skCompositeAttributes: CompositeAttributes) =>
|
|
416
|
-
go:
|
|
417
|
-
params:
|
|
418
|
-
page:
|
|
419
|
-
where: WhereClause<A,F,C,S,Item<A,F,C,S,S["attributes"]>,
|
|
423
|
+
interface QueryOperations<A extends string, F extends string, C extends string, S extends Schema<A,F,C>, CompositeAttributes, ResponseItem, IndexCompositeAttributes> {
|
|
424
|
+
between: (skCompositeAttributesStart: CompositeAttributes, skCompositeAttributesEnd: CompositeAttributes) => QueryBranches<A,F,C,S, ResponseItem, IndexCompositeAttributes>;
|
|
425
|
+
gt: (skCompositeAttributes: CompositeAttributes) => QueryBranches<A,F,C,S, ResponseItem,IndexCompositeAttributes>;
|
|
426
|
+
gte: (skCompositeAttributes: CompositeAttributes) => QueryBranches<A,F,C,S, ResponseItem,IndexCompositeAttributes>;
|
|
427
|
+
lt: (skCompositeAttributes: CompositeAttributes) => QueryBranches<A,F,C,S, ResponseItem,IndexCompositeAttributes>;
|
|
428
|
+
lte: (skCompositeAttributes: CompositeAttributes) => QueryBranches<A,F,C,S, ResponseItem,IndexCompositeAttributes>;
|
|
429
|
+
begins: (skCompositeAttributes: CompositeAttributes) => QueryBranches<A,F,C,S, ResponseItem,IndexCompositeAttributes>;
|
|
430
|
+
go: GoQueryTerminal<A,F,C,S,ResponseItem>;
|
|
431
|
+
params: ParamTerminal<A,F,C,S,ResponseItem>;
|
|
432
|
+
page: PageQueryTerminal<A,F,C,S,ResponseItem,IndexCompositeAttributes>;
|
|
433
|
+
where: WhereClause<A,F,C,S,Item<A,F,C,S,S["attributes"]>,QueryBranches<A,F,C,S,ResponseItem,IndexCompositeAttributes>>
|
|
420
434
|
}
|
|
421
435
|
|
|
422
436
|
export type Queries<A extends string, F extends string, C extends string, S extends Schema<A,F,C>> = {
|
|
@@ -424,7 +438,7 @@ export type Queries<A extends string, F extends string, C extends string, S exte
|
|
|
424
438
|
IndexSKAttributes<A,F,C,S,I> extends infer SK
|
|
425
439
|
// If there is no SK, dont show query operations (when an empty array is provided)
|
|
426
440
|
? [keyof SK] extends [never]
|
|
427
|
-
?
|
|
441
|
+
? QueryBranches<A,F,C,S, ResponseItem<A,F,C,S>, AllTableIndexCompositeAttributes<A,F,C,S> & Required<CompositeAttributes>>
|
|
428
442
|
// If there is no SK, dont show query operations (When no PK is specified)
|
|
429
443
|
: S["indexes"][I] extends IndexWithSortKey
|
|
430
444
|
? QueryOperations<
|
|
@@ -434,7 +448,7 @@ export type Queries<A extends string, F extends string, C extends string, S exte
|
|
|
434
448
|
ResponseItem<A,F,C,S>,
|
|
435
449
|
AllTableIndexCompositeAttributes<A,F,C,S> & Required<CompositeAttributes> & SK
|
|
436
450
|
>
|
|
437
|
-
:
|
|
451
|
+
: QueryBranches<A,F,C,S, ResponseItem<A,F,C,S>, AllTableIndexCompositeAttributes<A,F,C,S> & Required<CompositeAttributes> & SK>
|
|
438
452
|
: never
|
|
439
453
|
}
|
|
440
454
|
|
|
@@ -464,7 +478,8 @@ export interface QueryOptions {
|
|
|
464
478
|
}
|
|
465
479
|
|
|
466
480
|
// subset of QueryOptions
|
|
467
|
-
export interface ParseOptions {
|
|
481
|
+
export interface ParseOptions<Attributes> {
|
|
482
|
+
attributes?: ReadonlyArray<Attributes>;
|
|
468
483
|
ignoreOwnership?: boolean;
|
|
469
484
|
}
|
|
470
485
|
|
|
@@ -510,6 +525,162 @@ export type OptionalDefaultEntityIdentifiers = {
|
|
|
510
525
|
__edb_v__?: string;
|
|
511
526
|
}
|
|
512
527
|
|
|
528
|
+
interface GoBatchGetTerminalOptions<Attributes> {
|
|
529
|
+
raw?: boolean;
|
|
530
|
+
table?: string;
|
|
531
|
+
limit?: number;
|
|
532
|
+
params?: object;
|
|
533
|
+
includeKeys?: boolean;
|
|
534
|
+
originalErr?: boolean;
|
|
535
|
+
ignoreOwnership?: boolean;
|
|
536
|
+
pages?: number;
|
|
537
|
+
attributes?: ReadonlyArray<Attributes>;
|
|
538
|
+
unprocessed?: "raw" | "item";
|
|
539
|
+
concurrency?: number;
|
|
540
|
+
preserveBatchOrder?: boolean;
|
|
541
|
+
listeners?: Array<ElectroEventListener>;
|
|
542
|
+
logger?: ElectroEventListener;
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
interface GoQueryTerminalOptions<Attributes> {
|
|
546
|
+
raw?: boolean;
|
|
547
|
+
table?: string;
|
|
548
|
+
limit?: number;
|
|
549
|
+
params?: object;
|
|
550
|
+
includeKeys?: boolean;
|
|
551
|
+
originalErr?: boolean;
|
|
552
|
+
ignoreOwnership?: boolean;
|
|
553
|
+
pages?: number;
|
|
554
|
+
attributes?: ReadonlyArray<Attributes>;
|
|
555
|
+
listeners?: Array<ElectroEventListener>;
|
|
556
|
+
logger?: ElectroEventListener;
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
interface PageQueryTerminalOptions<Attributes> extends GoQueryTerminalOptions<Attributes> {
|
|
560
|
+
pager?: "raw" | "item" | "named";
|
|
561
|
+
raw?: boolean;
|
|
562
|
+
table?: string;
|
|
563
|
+
limit?: number;
|
|
564
|
+
includeKeys?: boolean;
|
|
565
|
+
originalErr?: boolean;
|
|
566
|
+
ignoreOwnership?: boolean;
|
|
567
|
+
attributes?: ReadonlyArray<Attributes>;
|
|
568
|
+
listeners?: Array<ElectroEventListener>;
|
|
569
|
+
logger?: ElectroEventListener;
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
export interface ParamTerminalOptions<Attributes> {
|
|
573
|
+
table?: string;
|
|
574
|
+
limit?: number;
|
|
575
|
+
params?: object;
|
|
576
|
+
originalErr?: boolean;
|
|
577
|
+
attributes?: ReadonlyArray<Attributes>;
|
|
578
|
+
response?: "default" | "none" | 'all_old' | 'updated_old' | 'all_new' | 'updated_new';
|
|
579
|
+
}
|
|
580
|
+
|
|
581
|
+
type GoBatchGetTerminal<A extends string, F extends string, C extends string, S extends Schema<A,F,C>, ResponseItem> = <Options extends GoBatchGetTerminalOptions<keyof ResponseItem>>(options?: Options) =>
|
|
582
|
+
Options extends GoBatchGetTerminalOptions<infer Attr>
|
|
583
|
+
? 'preserveBatchOrder' extends keyof Options
|
|
584
|
+
? Options['preserveBatchOrder'] extends true
|
|
585
|
+
? Promise<[
|
|
586
|
+
Array<Resolve<{
|
|
587
|
+
[
|
|
588
|
+
Name in keyof ResponseItem as Name extends Attr
|
|
589
|
+
? Name
|
|
590
|
+
: never
|
|
591
|
+
]: ResponseItem[Name]
|
|
592
|
+
} | null>>, Array<Resolve<AllTableIndexCompositeAttributes<A,F,C,S>>>
|
|
593
|
+
]>
|
|
594
|
+
: Promise<[
|
|
595
|
+
Array<Resolve<{
|
|
596
|
+
[
|
|
597
|
+
Name in keyof ResponseItem as Name extends Attr
|
|
598
|
+
? Name
|
|
599
|
+
: never
|
|
600
|
+
]: ResponseItem[Name]
|
|
601
|
+
}>>, Array<Resolve<AllTableIndexCompositeAttributes<A,F,C,S>>>
|
|
602
|
+
]>
|
|
603
|
+
: Promise<[
|
|
604
|
+
Array<Resolve<{
|
|
605
|
+
[
|
|
606
|
+
Name in keyof ResponseItem as Name extends Attr
|
|
607
|
+
? Name
|
|
608
|
+
: never
|
|
609
|
+
]: ResponseItem[Name]
|
|
610
|
+
}>>, Array<Resolve<AllTableIndexCompositeAttributes<A,F,C,S>>>
|
|
611
|
+
]>
|
|
612
|
+
: 'preserveBatchOrder' extends keyof Options
|
|
613
|
+
? Options['preserveBatchOrder'] extends true
|
|
614
|
+
? [Array<Resolve<ResponseItem | null>>, Array<Resolve<AllTableIndexCompositeAttributes<A,F,C,S>>>]
|
|
615
|
+
: [Array<Resolve<ResponseItem>>, Array<Resolve<AllTableIndexCompositeAttributes<A,F,C,S>>>]
|
|
616
|
+
: [Array<Resolve<ResponseItem>>, Array<Resolve<AllTableIndexCompositeAttributes<A,F,C,S>>>]
|
|
617
|
+
|
|
618
|
+
type GoGetTerminal<A extends string, F extends string, C extends string, S extends Schema<A,F,C>, ResponseItem> = <Options extends GoQueryTerminalOptions<keyof ResponseItem>>(options?: Options) =>
|
|
619
|
+
Options extends GoQueryTerminalOptions<infer Attr>
|
|
620
|
+
? Promise<{
|
|
621
|
+
[
|
|
622
|
+
Name in keyof ResponseItem as Name extends Attr
|
|
623
|
+
? Name
|
|
624
|
+
: never
|
|
625
|
+
]: ResponseItem[Name]
|
|
626
|
+
} | null>
|
|
627
|
+
: Promise<ResponseItem | null>
|
|
628
|
+
|
|
629
|
+
export type GoQueryTerminal<A extends string, F extends string, C extends string, S extends Schema<A,F,C>, Item> = <Options extends GoQueryTerminalOptions<keyof Item>>(options?: Options) =>
|
|
630
|
+
Options extends GoQueryTerminalOptions<infer Attr>
|
|
631
|
+
? Promise<Array<{
|
|
632
|
+
[
|
|
633
|
+
Name in keyof Item as Name extends Attr
|
|
634
|
+
? Name
|
|
635
|
+
: never
|
|
636
|
+
]: Item[Name]
|
|
637
|
+
}>>
|
|
638
|
+
: Promise<Array<Item>>
|
|
639
|
+
|
|
640
|
+
export type EntityParseSingleItem<A extends string, F extends string, C extends string, S extends Schema<A,F,C>, ResponseItem> =
|
|
641
|
+
<Options extends ParseOptions<keyof ResponseItem>>(item: ParseSingleInput, options?: Options) =>
|
|
642
|
+
Options extends ParseOptions<infer Attr>
|
|
643
|
+
? {
|
|
644
|
+
[
|
|
645
|
+
Name in keyof ResponseItem as Name extends Attr
|
|
646
|
+
? Name
|
|
647
|
+
: never
|
|
648
|
+
]: ResponseItem[Name]
|
|
649
|
+
} | null
|
|
650
|
+
: ResponseItem | null
|
|
651
|
+
|
|
652
|
+
export type EntityParseMultipleItems<A extends string, F extends string, C extends string, S extends Schema<A,F,C>, ResponseItem> =
|
|
653
|
+
<Options extends ParseOptions<keyof ResponseItem>>(item: ParseMultiInput, options?: Options) =>
|
|
654
|
+
Options extends ParseOptions<infer Attr>
|
|
655
|
+
? Array<{
|
|
656
|
+
[
|
|
657
|
+
Name in keyof ResponseItem as Name extends Attr
|
|
658
|
+
? Name
|
|
659
|
+
: never
|
|
660
|
+
]: ResponseItem[Name]
|
|
661
|
+
}>
|
|
662
|
+
: Array<ResponseItem>
|
|
663
|
+
|
|
664
|
+
|
|
665
|
+
export type PageQueryTerminal<A extends string, F extends string, C extends string, S extends Schema<A,F,C>, Item, CompositeAttributes> = <Options extends PageQueryTerminalOptions<keyof Item>>(page?: (CompositeAttributes & OptionalDefaultEntityIdentifiers) | null, options?: Options) =>
|
|
666
|
+
Options extends GoQueryTerminalOptions<infer Attr>
|
|
667
|
+
? Promise<[
|
|
668
|
+
(CompositeAttributes & OptionalDefaultEntityIdentifiers) | null,
|
|
669
|
+
Array<{
|
|
670
|
+
[
|
|
671
|
+
Name in keyof Item as Name extends Attr
|
|
672
|
+
? Name
|
|
673
|
+
: never
|
|
674
|
+
]: Item[Name]
|
|
675
|
+
}>
|
|
676
|
+
]>
|
|
677
|
+
: Promise<[
|
|
678
|
+
(CompositeAttributes & OptionalDefaultEntityIdentifiers) | null,
|
|
679
|
+
Array<ResponseType>
|
|
680
|
+
]>;
|
|
681
|
+
|
|
682
|
+
export type ParamTerminal<A extends string, F extends string, C extends string, S extends Schema<A,F,C>, ResponseItem> = <P extends any = any, Options extends ParamTerminalOptions<keyof ResponseItem> = ParamTerminalOptions<keyof ResponseItem>>(options?: Options) => P;
|
|
683
|
+
|
|
513
684
|
export type GoRecord<ResponseType, Options = QueryOptions> = <T = ResponseType>(options?: Options) => Promise<T>;
|
|
514
685
|
|
|
515
686
|
export type BatchGoRecord<ResponseType, AlternateResponseType> = <O extends BulkOptions>(options?: O) =>
|
|
@@ -678,7 +849,6 @@ export interface NestedEnumAttribute {
|
|
|
678
849
|
readonly label?: string;
|
|
679
850
|
}
|
|
680
851
|
|
|
681
|
-
|
|
682
852
|
export interface EnumAttribute {
|
|
683
853
|
readonly type: ReadonlyArray<string>;
|
|
684
854
|
readonly required?: boolean;
|
|
@@ -862,6 +1032,60 @@ export interface NestedStringSetAttribute {
|
|
|
862
1032
|
readonly field?: string;
|
|
863
1033
|
}
|
|
864
1034
|
|
|
1035
|
+
export interface NestedEnumNumberSetAttribute {
|
|
1036
|
+
readonly type: "set";
|
|
1037
|
+
readonly items: ReadonlyArray<number>;
|
|
1038
|
+
readonly required?: boolean;
|
|
1039
|
+
readonly hidden?: boolean;
|
|
1040
|
+
readonly readOnly?: boolean;
|
|
1041
|
+
readonly get?: (val: Array<number>, item: any) => Array<number> | undefined | void;
|
|
1042
|
+
readonly set?: (val?: Array<number>, item?: any) => Array<number> | undefined | void;
|
|
1043
|
+
readonly default?: Array<number> | (() => Array<number>);
|
|
1044
|
+
readonly validate?: ((val: Array<number>) => boolean) | ((val: Array<number>) => void) | ((val: Array<number>) => string | void) | RegExp;
|
|
1045
|
+
readonly field?: string;
|
|
1046
|
+
}
|
|
1047
|
+
|
|
1048
|
+
export interface EnumNumberSetAttribute {
|
|
1049
|
+
readonly type: "set";
|
|
1050
|
+
readonly items: ReadonlyArray<number>;
|
|
1051
|
+
readonly required?: boolean;
|
|
1052
|
+
readonly hidden?: boolean;
|
|
1053
|
+
readonly readOnly?: boolean;
|
|
1054
|
+
readonly get?: (val: Array<number>, item: any) => Array<number> | undefined | void;
|
|
1055
|
+
readonly set?: (val?: Array<number>, item?: any) => Array<number> | undefined | void;
|
|
1056
|
+
readonly default?: Array<number> | (() => Array<number>);
|
|
1057
|
+
readonly validate?: ((val: Array<number>) => boolean) | ((val: Array<number>) => void) | ((val: Array<number>) => string | void) | RegExp;
|
|
1058
|
+
readonly field?: string;
|
|
1059
|
+
readonly watch?: ReadonlyArray<string> | "*";
|
|
1060
|
+
}
|
|
1061
|
+
|
|
1062
|
+
export interface NestedEnumStringSetAttribute {
|
|
1063
|
+
readonly type: "set";
|
|
1064
|
+
readonly items: ReadonlyArray<string>;
|
|
1065
|
+
readonly required?: boolean;
|
|
1066
|
+
readonly hidden?: boolean;
|
|
1067
|
+
readonly readOnly?: boolean;
|
|
1068
|
+
readonly get?: (val: Array<string>, item: any) => Array<string> | undefined | void;
|
|
1069
|
+
readonly set?: (val?: Array<string>, item?: any) => Array<string> | undefined | void;
|
|
1070
|
+
readonly default?: Array<string> | (() => Array<string>);
|
|
1071
|
+
readonly validate?: ((val: Array<string>) => boolean) | ((val: Array<string>) => void) | ((val: Array<string>) => string | void) | RegExp;
|
|
1072
|
+
readonly field?: string;
|
|
1073
|
+
}
|
|
1074
|
+
|
|
1075
|
+
export interface EnumStringSetAttribute {
|
|
1076
|
+
readonly type: "set";
|
|
1077
|
+
readonly items: ReadonlyArray<string>;
|
|
1078
|
+
readonly required?: boolean;
|
|
1079
|
+
readonly hidden?: boolean;
|
|
1080
|
+
readonly readOnly?: boolean;
|
|
1081
|
+
readonly get?: (val: Array<string>, item: any) => Array<string> | undefined | void;
|
|
1082
|
+
readonly set?: (val?: Array<string>, item?: any) => Array<string> | undefined | void;
|
|
1083
|
+
readonly default?: Array<string> | (() => Array<string>);
|
|
1084
|
+
readonly validate?: ((val: Array<string>) => boolean) | ((val: Array<string>) => void) | ((val: Array<string>) => string | void) | RegExp;
|
|
1085
|
+
readonly field?: string;
|
|
1086
|
+
readonly watch?: ReadonlyArray<string> | "*";
|
|
1087
|
+
}
|
|
1088
|
+
|
|
865
1089
|
export interface StringSetAttribute {
|
|
866
1090
|
readonly type: "set";
|
|
867
1091
|
readonly items: "string";
|
|
@@ -903,6 +1127,25 @@ export interface NumberSetAttribute {
|
|
|
903
1127
|
readonly watch?: ReadonlyArray<string> | "*";
|
|
904
1128
|
}
|
|
905
1129
|
|
|
1130
|
+
type StaticAttribute = {
|
|
1131
|
+
readonly type: "static";
|
|
1132
|
+
readonly hidden?: boolean;
|
|
1133
|
+
value: string | number | boolean;
|
|
1134
|
+
readonly field?: string;
|
|
1135
|
+
}
|
|
1136
|
+
|
|
1137
|
+
type CustomAttribute<T extends any = any> = {
|
|
1138
|
+
readonly type: "custom";
|
|
1139
|
+
readonly [CustomAttributeSymbol]: T;
|
|
1140
|
+
readonly hidden?: boolean;
|
|
1141
|
+
readonly get?: (val: T, item: any) => T | undefined | void;
|
|
1142
|
+
readonly set?: (val?: T, item?: any) => T | undefined | void;
|
|
1143
|
+
readonly default?: T | (() => T);
|
|
1144
|
+
readonly validate?: ((val: T) => boolean) | ((val: T) => void) | ((val: T) => string | void);
|
|
1145
|
+
readonly field?: string;
|
|
1146
|
+
readonly watch?: ReadonlyArray<string> | "*";
|
|
1147
|
+
};
|
|
1148
|
+
|
|
906
1149
|
export type Attribute =
|
|
907
1150
|
BooleanAttribute
|
|
908
1151
|
| NumberAttribute
|
|
@@ -914,7 +1157,11 @@ export type Attribute =
|
|
|
914
1157
|
| NumberSetAttribute
|
|
915
1158
|
| StringListAttribute
|
|
916
1159
|
| NumberListAttribute
|
|
917
|
-
| MapListAttribute
|
|
1160
|
+
| MapListAttribute
|
|
1161
|
+
| StaticAttribute
|
|
1162
|
+
| CustomAttribute
|
|
1163
|
+
| EnumNumberSetAttribute
|
|
1164
|
+
| EnumStringSetAttribute;
|
|
918
1165
|
|
|
919
1166
|
export type NestedAttributes =
|
|
920
1167
|
NestedBooleanAttribute
|
|
@@ -927,7 +1174,10 @@ export type NestedAttributes =
|
|
|
927
1174
|
| NestedMapListAttribute
|
|
928
1175
|
| NestedStringSetAttribute
|
|
929
1176
|
| NestedNumberSetAttribute
|
|
930
|
-
| NestedEnumAttribute
|
|
1177
|
+
| NestedEnumAttribute
|
|
1178
|
+
| NestedEnumAttribute
|
|
1179
|
+
| NestedEnumNumberSetAttribute
|
|
1180
|
+
| NestedEnumStringSetAttribute;
|
|
931
1181
|
|
|
932
1182
|
export interface IndexWithSortKey {
|
|
933
1183
|
readonly sk: {
|
|
@@ -1001,7 +1251,9 @@ type PartialDefinedKeys<T> = {
|
|
|
1001
1251
|
}
|
|
1002
1252
|
|
|
1003
1253
|
export type ItemAttribute<A extends Attribute> =
|
|
1004
|
-
A
|
|
1254
|
+
A extends CustomAttribute<infer T>
|
|
1255
|
+
? T
|
|
1256
|
+
: A["type"] extends infer R
|
|
1005
1257
|
? R extends "string" ? string
|
|
1006
1258
|
: R extends "number" ? number
|
|
1007
1259
|
: R extends "boolean" ? boolean
|
|
@@ -1030,28 +1282,20 @@ export type ItemAttribute<A extends Attribute> =
|
|
|
1030
1282
|
? A["items"] extends infer I
|
|
1031
1283
|
? I extends "string" ? string[]
|
|
1032
1284
|
: I extends "number" ? number[]
|
|
1033
|
-
:
|
|
1285
|
+
: I extends ReadonlyArray<infer ENUM> ? ENUM[]
|
|
1286
|
+
: never
|
|
1034
1287
|
: never
|
|
1035
1288
|
: never
|
|
1036
1289
|
: R extends "any" ? any
|
|
1037
1290
|
: never
|
|
1038
1291
|
: never
|
|
1039
1292
|
|
|
1040
|
-
type FormattedPutMapAttributes<A extends MapAttribute> = {
|
|
1041
|
-
[P in keyof A["properties"]]: A["properties"][P] extends infer M
|
|
1042
|
-
? M extends HiddenAttribute
|
|
1043
|
-
? false
|
|
1044
|
-
: M extends DefaultedAttribute
|
|
1045
|
-
? false
|
|
1046
|
-
: M extends RequiredAttribute
|
|
1047
|
-
? true
|
|
1048
|
-
: false
|
|
1049
|
-
: false
|
|
1050
|
-
}
|
|
1051
|
-
|
|
1052
1293
|
export type ReturnedAttribute<A extends Attribute> =
|
|
1053
|
-
A
|
|
1054
|
-
|
|
1294
|
+
A extends CustomAttribute<infer T>
|
|
1295
|
+
? T
|
|
1296
|
+
: A["type"] extends infer R
|
|
1297
|
+
? R extends "static" ? never
|
|
1298
|
+
: R extends "string" ? string
|
|
1055
1299
|
: R extends "number" ? number
|
|
1056
1300
|
: R extends "boolean" ? boolean
|
|
1057
1301
|
: R extends ReadonlyArray<infer E> ? E
|
|
@@ -1079,27 +1323,6 @@ export type ReturnedAttribute<A extends Attribute> =
|
|
|
1079
1323
|
: never
|
|
1080
1324
|
: never
|
|
1081
1325
|
}
|
|
1082
|
-
// SkipKeys<{
|
|
1083
|
-
// [P in keyof A["properties"]]: A["properties"][P] extends infer M
|
|
1084
|
-
// ? M extends Attribute
|
|
1085
|
-
// ? M extends HiddenAttribute
|
|
1086
|
-
// ? SkipValue
|
|
1087
|
-
// : M extends RequiredAttribute
|
|
1088
|
-
// ? ReturnedAttribute<M>
|
|
1089
|
-
// : SkipValue
|
|
1090
|
-
// : never
|
|
1091
|
-
// : never
|
|
1092
|
-
// }> & SkipKeys<{
|
|
1093
|
-
// [P in keyof A["properties"]]?: A["properties"][P] extends infer M
|
|
1094
|
-
// ? M extends Attribute
|
|
1095
|
-
// ? M extends HiddenAttribute
|
|
1096
|
-
// ? SkipValue
|
|
1097
|
-
// : M extends RequiredAttribute
|
|
1098
|
-
// ? SkipValue
|
|
1099
|
-
// : ReturnedAttribute<M> | undefined
|
|
1100
|
-
// : never
|
|
1101
|
-
// : never
|
|
1102
|
-
// }>
|
|
1103
1326
|
: never
|
|
1104
1327
|
: R extends "list"
|
|
1105
1328
|
? "items" extends keyof A
|
|
@@ -1114,7 +1337,8 @@ export type ReturnedAttribute<A extends Attribute> =
|
|
|
1114
1337
|
? A["items"] extends infer I
|
|
1115
1338
|
? I extends "string" ? string[]
|
|
1116
1339
|
: I extends "number" ? number[]
|
|
1117
|
-
:
|
|
1340
|
+
: I extends ReadonlyArray<infer ENUM> ? ENUM[]
|
|
1341
|
+
: never
|
|
1118
1342
|
: never
|
|
1119
1343
|
: never
|
|
1120
1344
|
: R extends "any" ? any
|
|
@@ -1122,8 +1346,11 @@ export type ReturnedAttribute<A extends Attribute> =
|
|
|
1122
1346
|
: never
|
|
1123
1347
|
|
|
1124
1348
|
export type CreatedAttribute<A extends Attribute> =
|
|
1125
|
-
A
|
|
1126
|
-
?
|
|
1349
|
+
A extends CustomAttribute<infer T>
|
|
1350
|
+
? T
|
|
1351
|
+
: A["type"] extends infer R
|
|
1352
|
+
? R extends "static" ? never
|
|
1353
|
+
: R extends "string" ? string
|
|
1127
1354
|
: R extends "number" ? number
|
|
1128
1355
|
: R extends "boolean" ? boolean
|
|
1129
1356
|
: R extends ReadonlyArray<infer E> ? E
|
|
@@ -1151,27 +1378,6 @@ export type CreatedAttribute<A extends Attribute> =
|
|
|
1151
1378
|
: never
|
|
1152
1379
|
: never
|
|
1153
1380
|
}
|
|
1154
|
-
// ? SkipKeys<{
|
|
1155
|
-
// [P in keyof A["properties"]]: A["properties"][P] extends infer M
|
|
1156
|
-
// ? M extends Attribute
|
|
1157
|
-
// ? M extends HiddenAttribute
|
|
1158
|
-
// ? SkipValue
|
|
1159
|
-
// : M extends DefaultedAttribute
|
|
1160
|
-
// ? SkipValue
|
|
1161
|
-
// : M extends RequiredAttribute
|
|
1162
|
-
// ? CreatedAttribute<M>
|
|
1163
|
-
// : SkipValue
|
|
1164
|
-
// : never
|
|
1165
|
-
// : never
|
|
1166
|
-
// }> & SkipKeys<{
|
|
1167
|
-
// [P in keyof A["properties"]]?: A["properties"][P] extends infer M
|
|
1168
|
-
// ? M extends Attribute
|
|
1169
|
-
// ? M extends HiddenAttribute
|
|
1170
|
-
// ? SkipValue
|
|
1171
|
-
// : CreatedAttribute<M> | undefined
|
|
1172
|
-
// : never
|
|
1173
|
-
// : never
|
|
1174
|
-
// }>
|
|
1175
1381
|
: never
|
|
1176
1382
|
: R extends "list"
|
|
1177
1383
|
? "items" extends keyof A
|
|
@@ -1186,7 +1392,8 @@ export type CreatedAttribute<A extends Attribute> =
|
|
|
1186
1392
|
? A["items"] extends infer I
|
|
1187
1393
|
? I extends "string" ? string[]
|
|
1188
1394
|
: I extends "number" ? number[]
|
|
1189
|
-
:
|
|
1395
|
+
: I extends ReadonlyArray<infer ENUM> ? ENUM[]
|
|
1396
|
+
: never
|
|
1190
1397
|
: never
|
|
1191
1398
|
: never
|
|
1192
1399
|
: R extends "any" ? any
|
|
@@ -1202,10 +1409,13 @@ export type CreatedItem<A extends string, F extends string, C extends string, S
|
|
|
1202
1409
|
}
|
|
1203
1410
|
|
|
1204
1411
|
export type EditableItemAttribute<A extends Attribute> =
|
|
1205
|
-
A extends
|
|
1412
|
+
A extends CustomAttribute<infer T>
|
|
1413
|
+
? T
|
|
1414
|
+
: A extends ReadOnlyAttribute
|
|
1206
1415
|
? never
|
|
1207
1416
|
: A["type"] extends infer R
|
|
1208
|
-
|
|
1417
|
+
? R extends "static" ? never
|
|
1418
|
+
: R extends "string" ? string
|
|
1209
1419
|
: R extends "number" ? number
|
|
1210
1420
|
: R extends "boolean" ? boolean
|
|
1211
1421
|
: R extends ReadonlyArray<infer E> ? E
|
|
@@ -1237,7 +1447,8 @@ export type EditableItemAttribute<A extends Attribute> =
|
|
|
1237
1447
|
? A["items"] extends infer I
|
|
1238
1448
|
? I extends "string" ? string[]
|
|
1239
1449
|
: I extends "number" ? number[]
|
|
1240
|
-
:
|
|
1450
|
+
: I extends ReadonlyArray<infer ENUM> ? ENUM[]
|
|
1451
|
+
: never
|
|
1241
1452
|
: never
|
|
1242
1453
|
: never
|
|
1243
1454
|
: R extends "any" ? any
|
|
@@ -1245,10 +1456,13 @@ export type EditableItemAttribute<A extends Attribute> =
|
|
|
1245
1456
|
: never
|
|
1246
1457
|
|
|
1247
1458
|
export type UpdatableItemAttribute<A extends Attribute> =
|
|
1248
|
-
A extends
|
|
1459
|
+
A extends CustomAttribute<infer T>
|
|
1460
|
+
? T
|
|
1461
|
+
: A extends ReadOnlyAttribute
|
|
1249
1462
|
? never
|
|
1250
1463
|
: A["type"] extends infer R
|
|
1251
|
-
|
|
1464
|
+
? R extends "static" ? never
|
|
1465
|
+
: R extends "string" ? string
|
|
1252
1466
|
: R extends "number" ? number
|
|
1253
1467
|
: R extends "boolean" ? boolean
|
|
1254
1468
|
: R extends ReadonlyArray<infer E> ? E
|
|
@@ -1295,7 +1509,8 @@ export type UpdatableItemAttribute<A extends Attribute> =
|
|
|
1295
1509
|
? A["items"] extends infer I
|
|
1296
1510
|
? I extends "string" ? string[]
|
|
1297
1511
|
: I extends "number" ? number[]
|
|
1298
|
-
:
|
|
1512
|
+
: I extends ReadonlyArray<infer ENUM> ? ENUM[]
|
|
1513
|
+
: never
|
|
1299
1514
|
: never
|
|
1300
1515
|
: never
|
|
1301
1516
|
: R extends "any" ? any
|
|
@@ -1303,10 +1518,13 @@ export type UpdatableItemAttribute<A extends Attribute> =
|
|
|
1303
1518
|
: never
|
|
1304
1519
|
|
|
1305
1520
|
export type RemovableItemAttribute<A extends Attribute> =
|
|
1306
|
-
A extends
|
|
1521
|
+
A extends CustomAttribute<infer T>
|
|
1522
|
+
? T
|
|
1523
|
+
: A extends ReadOnlyAttribute | RequiredAttribute
|
|
1307
1524
|
? never
|
|
1308
1525
|
: A["type"] extends infer R
|
|
1309
|
-
|
|
1526
|
+
? R extends "static" ? never
|
|
1527
|
+
: R extends "string" ? string
|
|
1310
1528
|
: R extends "number" ? number
|
|
1311
1529
|
: R extends "boolean" ? boolean
|
|
1312
1530
|
: R extends ReadonlyArray<infer E> ? E
|
|
@@ -1338,7 +1556,8 @@ export type RemovableItemAttribute<A extends Attribute> =
|
|
|
1338
1556
|
? A["items"] extends infer I
|
|
1339
1557
|
? I extends "string" ? string[]
|
|
1340
1558
|
: I extends "number" ? number[]
|
|
1341
|
-
:
|
|
1559
|
+
: I extends ReadonlyArray<infer ENUM> ? ENUM[]
|
|
1560
|
+
: never
|
|
1342
1561
|
: never
|
|
1343
1562
|
: never
|
|
1344
1563
|
: R extends "any" ? any
|
|
@@ -1483,7 +1702,7 @@ export type RemoveItem<A extends string, F extends string, C extends string, S e
|
|
|
1483
1702
|
export type AppendItem<A extends string, F extends string, C extends string, S extends Schema<A,F,C>> =
|
|
1484
1703
|
{
|
|
1485
1704
|
[
|
|
1486
|
-
P in keyof ItemTypeDescription<A,F,C,S> as ItemTypeDescription<A,F,C,S>[P] extends 'list' | 'any'
|
|
1705
|
+
P in keyof ItemTypeDescription<A,F,C,S> as ItemTypeDescription<A,F,C,S>[P] extends 'list' | 'any' | 'custom'
|
|
1487
1706
|
? P
|
|
1488
1707
|
: never
|
|
1489
1708
|
]?: P extends keyof SetItem<A,F,C,S>
|
|
@@ -1494,7 +1713,7 @@ export type AppendItem<A extends string, F extends string, C extends string, S e
|
|
|
1494
1713
|
export type AddItem<A extends string, F extends string, C extends string, S extends Schema<A,F,C>> =
|
|
1495
1714
|
{
|
|
1496
1715
|
[
|
|
1497
|
-
P in keyof ItemTypeDescription<A,F,C,S> as ItemTypeDescription<A,F,C,S>[P] extends
|
|
1716
|
+
P in keyof ItemTypeDescription<A,F,C,S> as ItemTypeDescription<A,F,C,S>[P] extends 'number' | 'any' | 'set' | 'custom'
|
|
1498
1717
|
? P
|
|
1499
1718
|
: never
|
|
1500
1719
|
]?: P extends keyof SetItem<A,F,C,S>
|
|
@@ -1505,7 +1724,7 @@ export type AddItem<A extends string, F extends string, C extends string, S exte
|
|
|
1505
1724
|
export type SubtractItem<A extends string, F extends string, C extends string, S extends Schema<A,F,C>> =
|
|
1506
1725
|
{
|
|
1507
1726
|
[
|
|
1508
|
-
P in keyof ItemTypeDescription<A,F,C,S> as ItemTypeDescription<A,F,C,S>[P] extends
|
|
1727
|
+
P in keyof ItemTypeDescription<A,F,C,S> as ItemTypeDescription<A,F,C,S>[P] extends 'number' | 'any' | 'custom'
|
|
1509
1728
|
? P
|
|
1510
1729
|
: never
|
|
1511
1730
|
]?: P extends keyof SetItem<A,F,C,S>
|
|
@@ -1516,7 +1735,7 @@ export type SubtractItem<A extends string, F extends string, C extends string, S
|
|
|
1516
1735
|
export type DeleteItem<A extends string, F extends string, C extends string, S extends Schema<A,F,C>> =
|
|
1517
1736
|
{
|
|
1518
1737
|
[
|
|
1519
|
-
P in keyof ItemTypeDescription<A,F,C,S> as ItemTypeDescription<A,F,C,S>[P] extends
|
|
1738
|
+
P in keyof ItemTypeDescription<A,F,C,S> as ItemTypeDescription<A,F,C,S>[P] extends 'any' | 'set' | 'custom'
|
|
1520
1739
|
? P
|
|
1521
1740
|
: never
|
|
1522
1741
|
]?: P extends keyof SetItem<A,F,C,S>
|
|
@@ -1526,6 +1745,7 @@ export type DeleteItem<A extends string, F extends string, C extends string, S e
|
|
|
1526
1745
|
|
|
1527
1746
|
export declare const WhereSymbol: unique symbol;
|
|
1528
1747
|
export declare const UpdateDataSymbol: unique symbol;
|
|
1748
|
+
export declare const CustomAttributeSymbol: unique symbol;
|
|
1529
1749
|
|
|
1530
1750
|
export type WhereAttributeSymbol<T extends any> =
|
|
1531
1751
|
{ [WhereSymbol]: void }
|
|
@@ -1632,9 +1852,8 @@ export class Entity<A extends string, F extends string, C extends string, S exte
|
|
|
1632
1852
|
private config?: EntityConfiguration;
|
|
1633
1853
|
constructor(schema: S, config?: EntityConfiguration);
|
|
1634
1854
|
|
|
1635
|
-
get(key: AllTableIndexCompositeAttributes<A,F,C,S>): SingleRecordOperationOptions<A,F,C,S, ResponseItem<A,F,C,S
|
|
1636
|
-
get(key: AllTableIndexCompositeAttributes<A,F,C,S>[]):
|
|
1637
|
-
|
|
1855
|
+
get(key: AllTableIndexCompositeAttributes<A,F,C,S>): SingleRecordOperationOptions<A,F,C,S, ResponseItem<A,F,C,S>>;
|
|
1856
|
+
get(key: AllTableIndexCompositeAttributes<A,F,C,S>[]): BatchGetRecordOperationOptions<A,F,C,S, ResponseItem<A,F,C,S>>;
|
|
1638
1857
|
delete(key: AllTableIndexCompositeAttributes<A,F,C,S>): DeleteRecordOperationOptions<A,F,C,S, ResponseItem<A,F,C,S>>;
|
|
1639
1858
|
delete(key: AllTableIndexCompositeAttributes<A,F,C,S>[]): BulkRecordOperationOptions<A,F,C,S, AllTableIndexCompositeAttributes<A,F,C,S>[], AllTableIndexCompositeAttributes<A,F,C,S>[]>;
|
|
1640
1859
|
|
|
@@ -1671,8 +1890,26 @@ export class Entity<A extends string, F extends string, C extends string, S exte
|
|
|
1671
1890
|
scan: RecordsActionOptions<A,F,C,S, ResponseItem<A,F,C,S>[], TableIndexCompositeAttributes<A,F,C,S>>;
|
|
1672
1891
|
query: Queries<A,F,C,S>;
|
|
1673
1892
|
|
|
1674
|
-
parse
|
|
1675
|
-
|
|
1893
|
+
parse<Options extends ParseOptions<keyof ResponseItem<A,F,C,S>>>(item: ParseSingleInput, options?: Options):
|
|
1894
|
+
Options extends ParseOptions<infer Attr>
|
|
1895
|
+
? {
|
|
1896
|
+
[
|
|
1897
|
+
Name in keyof ResponseItem<A,F,C,S> as Name extends Attr
|
|
1898
|
+
? Name
|
|
1899
|
+
: never
|
|
1900
|
+
]: ResponseItem<A,F,C,S>[Name]
|
|
1901
|
+
} | null
|
|
1902
|
+
: ResponseItem<A,F,C,S> | null
|
|
1903
|
+
parse<Options extends ParseOptions<keyof ResponseItem<A,F,C,S>>>(item: ParseMultiInput, options?: Options):
|
|
1904
|
+
Options extends ParseOptions<infer Attr>
|
|
1905
|
+
? Array<{
|
|
1906
|
+
[
|
|
1907
|
+
Name in keyof ResponseItem<A,F,C,S> as Name extends Attr
|
|
1908
|
+
? Name
|
|
1909
|
+
: never
|
|
1910
|
+
]: ResponseItem<A,F,C,S>[Name]
|
|
1911
|
+
}>
|
|
1912
|
+
: Array<ResponseItem<A,F,C,S>>
|
|
1676
1913
|
setIdentifier(type: "entity" | "version", value: string): void;
|
|
1677
1914
|
client: any;
|
|
1678
1915
|
}
|
|
@@ -1688,4 +1925,18 @@ export class Service<E extends {[name: string]: Entity<any, any, any, any>}> {
|
|
|
1688
1925
|
entities: E;
|
|
1689
1926
|
collections: CollectionQueries<E, CollectionAssociations<E>>
|
|
1690
1927
|
constructor(entities: E, config?: ServiceConfiguration);
|
|
1691
|
-
}
|
|
1928
|
+
}
|
|
1929
|
+
|
|
1930
|
+
type CustomAttributeDefinition<T> = {
|
|
1931
|
+
readonly required?: boolean;
|
|
1932
|
+
readonly hidden?: boolean;
|
|
1933
|
+
readonly readOnly?: boolean;
|
|
1934
|
+
readonly get?: (val: T, item: any) => T | undefined | void;
|
|
1935
|
+
readonly set?: (val?: T, item?: any) => T | undefined | void;
|
|
1936
|
+
readonly default?: T | (() => T);
|
|
1937
|
+
readonly validate?: ((val: T) => boolean) | ((val: T) => void) | ((val: T) => string | void);
|
|
1938
|
+
readonly field?: string;
|
|
1939
|
+
readonly watch?: ReadonlyArray<string> | "*";
|
|
1940
|
+
}
|
|
1941
|
+
|
|
1942
|
+
declare function createCustomAttribute<T>(definition?: CustomAttributeDefinition<T>): CustomAttribute<T>;
|