@aws-amplify/data-schema 0.0.0-20240412222732
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/LICENSE +175 -0
- package/NOTICE +1 -0
- package/internals/package.json +6 -0
- package/lib-esm/index.d.ts +5 -0
- package/lib-esm/index.d.ts.map +1 -0
- package/lib-esm/index.js +28 -0
- package/lib-esm/src/Authorization.d.ts +287 -0
- package/lib-esm/src/Authorization.d.ts.map +1 -0
- package/lib-esm/src/Authorization.js +332 -0
- package/lib-esm/src/ClientSchema.d.ts +54 -0
- package/lib-esm/src/ClientSchema.d.ts.map +1 -0
- package/lib-esm/src/ClientSchema.js +2 -0
- package/lib-esm/src/CombineSchema.d.ts +19 -0
- package/lib-esm/src/CombineSchema.d.ts.map +1 -0
- package/lib-esm/src/CombineSchema.js +40 -0
- package/lib-esm/src/CustomOperation.d.ts +98 -0
- package/lib-esm/src/CustomOperation.d.ts.map +1 -0
- package/lib-esm/src/CustomOperation.js +67 -0
- package/lib-esm/src/CustomType.d.ts +36 -0
- package/lib-esm/src/CustomType.d.ts.map +1 -0
- package/lib-esm/src/CustomType.js +14 -0
- package/lib-esm/src/EnumType.d.ts +16 -0
- package/lib-esm/src/EnumType.d.ts.map +1 -0
- package/lib-esm/src/EnumType.js +17 -0
- package/lib-esm/src/Handler.d.ts +58 -0
- package/lib-esm/src/Handler.d.ts.map +1 -0
- package/lib-esm/src/Handler.js +48 -0
- package/lib-esm/src/MappedTypes/CustomOperations.d.ts +127 -0
- package/lib-esm/src/MappedTypes/CustomOperations.d.ts.map +1 -0
- package/lib-esm/src/MappedTypes/CustomOperations.js +2 -0
- package/lib-esm/src/MappedTypes/ExtractNonModelTypes.d.ts +74 -0
- package/lib-esm/src/MappedTypes/ExtractNonModelTypes.d.ts.map +1 -0
- package/lib-esm/src/MappedTypes/ExtractNonModelTypes.js +2 -0
- package/lib-esm/src/MappedTypes/ForeignKeys.d.ts +84 -0
- package/lib-esm/src/MappedTypes/ForeignKeys.d.ts.map +1 -0
- package/lib-esm/src/MappedTypes/ForeignKeys.js +2 -0
- package/lib-esm/src/MappedTypes/ImplicitFieldInjector.d.ts +38 -0
- package/lib-esm/src/MappedTypes/ImplicitFieldInjector.d.ts.map +1 -0
- package/lib-esm/src/MappedTypes/ImplicitFieldInjector.js +2 -0
- package/lib-esm/src/MappedTypes/MapSecondaryIndexes.d.ts +61 -0
- package/lib-esm/src/MappedTypes/MapSecondaryIndexes.d.ts.map +1 -0
- package/lib-esm/src/MappedTypes/MapSecondaryIndexes.js +2 -0
- package/lib-esm/src/MappedTypes/ModelMetadata.d.ts +26 -0
- package/lib-esm/src/MappedTypes/ModelMetadata.d.ts.map +1 -0
- package/lib-esm/src/MappedTypes/ModelMetadata.js +2 -0
- package/lib-esm/src/MappedTypes/ResolveFieldProperties.d.ts +70 -0
- package/lib-esm/src/MappedTypes/ResolveFieldProperties.d.ts.map +1 -0
- package/lib-esm/src/MappedTypes/ResolveFieldProperties.js +2 -0
- package/lib-esm/src/MappedTypes/ResolveSchema.d.ts +65 -0
- package/lib-esm/src/MappedTypes/ResolveSchema.d.ts.map +1 -0
- package/lib-esm/src/MappedTypes/ResolveSchema.js +2 -0
- package/lib-esm/src/ModelField.d.ts +162 -0
- package/lib-esm/src/ModelField.d.ts.map +1 -0
- package/lib-esm/src/ModelField.js +209 -0
- package/lib-esm/src/ModelIndex.d.ts +19 -0
- package/lib-esm/src/ModelIndex.d.ts.map +1 -0
- package/lib-esm/src/ModelIndex.js +33 -0
- package/lib-esm/src/ModelRelationalField.d.ts +119 -0
- package/lib-esm/src/ModelRelationalField.d.ts.map +1 -0
- package/lib-esm/src/ModelRelationalField.js +120 -0
- package/lib-esm/src/ModelSchema.d.ts +107 -0
- package/lib-esm/src/ModelSchema.d.ts.map +1 -0
- package/lib-esm/src/ModelSchema.js +162 -0
- package/lib-esm/src/ModelType.d.ts +85 -0
- package/lib-esm/src/ModelType.d.ts.map +1 -0
- package/lib-esm/src/ModelType.js +64 -0
- package/lib-esm/src/RefType.d.ts +59 -0
- package/lib-esm/src/RefType.d.ts.map +1 -0
- package/lib-esm/src/RefType.js +47 -0
- package/lib-esm/src/SchemaProcessor.d.ts +11 -0
- package/lib-esm/src/SchemaProcessor.d.ts.map +1 -0
- package/lib-esm/src/SchemaProcessor.js +1106 -0
- package/lib-esm/src/index.d.ts +13 -0
- package/lib-esm/src/index.d.ts.map +1 -0
- package/lib-esm/src/index.js +43 -0
- package/lib-esm/src/internals/index.d.ts +2 -0
- package/lib-esm/src/internals/index.d.ts.map +1 -0
- package/lib-esm/src/internals/index.js +5 -0
- package/lib-esm/src/util/Brand.d.ts +36 -0
- package/lib-esm/src/util/Brand.d.ts.map +1 -0
- package/lib-esm/src/util/Brand.js +32 -0
- package/lib-esm/src/util/IndexLimit.d.ts +8 -0
- package/lib-esm/src/util/IndexLimit.d.ts.map +1 -0
- package/lib-esm/src/util/IndexLimit.js +2 -0
- package/lib-esm/src/util/SpreadTuple.d.ts +7 -0
- package/lib-esm/src/util/SpreadTuple.d.ts.map +1 -0
- package/lib-esm/src/util/SpreadTuple.js +2 -0
- package/lib-esm/src/util/index.d.ts +4 -0
- package/lib-esm/src/util/index.d.ts.map +1 -0
- package/lib-esm/src/util/index.js +6 -0
- package/lib-esm/tsconfig.tsbuildinfo +1 -0
- package/package.json +62 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { IsEmptyStringOrNever } from '@aws-amplify/data-schema-types';
|
|
2
|
+
import { ModelIndexType } from '../ModelIndex';
|
|
3
|
+
type ModelIndexTypeShape = ModelIndexType<any, any, any, any, any>;
|
|
4
|
+
/**
|
|
5
|
+
* Maps array of ModelIndexType to SecondaryIndexIrShape (defined in in data-schema-types)
|
|
6
|
+
* */
|
|
7
|
+
export type SecondaryIndexToIR<Idxs extends ReadonlyArray<ModelIndexTypeShape>, ResolvedFields, Result extends readonly any[] = readonly []> = Idxs extends readonly [
|
|
8
|
+
infer First extends ModelIndexTypeShape,
|
|
9
|
+
...infer Rest extends ReadonlyArray<ModelIndexTypeShape>
|
|
10
|
+
] ? SecondaryIndexToIR<Rest, ResolvedFields, [
|
|
11
|
+
...Result,
|
|
12
|
+
SingleIndexIrFromType<First, ResolvedFields>
|
|
13
|
+
]> : Result;
|
|
14
|
+
/**
|
|
15
|
+
* @typeParam Idx - accepts a single ModelIndexType
|
|
16
|
+
* @typeParam ResolvedFields - resolved model fields
|
|
17
|
+
*
|
|
18
|
+
* @returns an IR with the following shape:
|
|
19
|
+
* {
|
|
20
|
+
* queryField: string;
|
|
21
|
+
* pk: { [fieldName: string]: string | number }
|
|
22
|
+
* sk: { [fieldName: string]: string | number } | never
|
|
23
|
+
* }
|
|
24
|
+
*
|
|
25
|
+
* @remarks - the IR type alias is defined as SecondaryIndexIrShape in data-schema-types
|
|
26
|
+
*/
|
|
27
|
+
type SingleIndexIrFromType<Idx extends ModelIndexTypeShape, ResolvedFields> = Idx extends ModelIndexType<any, infer PK extends string, infer SK, infer QueryField extends string | never, any> ? {
|
|
28
|
+
queryField: IsEmptyStringOrNever<QueryField> extends true ? `listBy${QueryFieldLabelFromTuple<SK, Capitalize<PK>>}` : QueryField;
|
|
29
|
+
pk: PK extends keyof ResolvedFields ? {
|
|
30
|
+
[Key in PK]: Exclude<ResolvedFields[PK], null>;
|
|
31
|
+
} : never;
|
|
32
|
+
sk: unknown extends SK ? never : ResolvedSortKeyFields<SK, ResolvedFields>;
|
|
33
|
+
} : never;
|
|
34
|
+
/**
|
|
35
|
+
* @typeParam SK - tuple of SortKey field names, e.g. ['viewCount', 'createdAt']
|
|
36
|
+
* @typeParam StrStart - initial string value; expects capitalized Partition Key field name
|
|
37
|
+
*
|
|
38
|
+
* @returns Query field name: concatenated PascalCase string with an `And` separator
|
|
39
|
+
* @example
|
|
40
|
+
* QueryFieldLabelFromTuple<['viewCount', 'createdAt'], 'Title'> => 'TitleAndViewCountAndCreatedAt'
|
|
41
|
+
*/
|
|
42
|
+
type QueryFieldLabelFromTuple<SK, StrStart extends string = ''> = SK extends readonly [infer A extends string, ...infer B extends string[]] ? QueryFieldLabelFromTuple<B, `${StrStart}And${Capitalize<A>}`> : StrStart;
|
|
43
|
+
/**
|
|
44
|
+
* @typeParam SK - tuple of SortKey field names, e.g. ['viewCount', 'createdAt']
|
|
45
|
+
* @typeParam ResolvedFields - resolved model fields
|
|
46
|
+
*
|
|
47
|
+
* @returns object type where the key is the sort key field name and the value is the resolved model field type
|
|
48
|
+
* @example
|
|
49
|
+
* {
|
|
50
|
+
* viewCount: number;
|
|
51
|
+
* createdAt: string;
|
|
52
|
+
* }
|
|
53
|
+
*/
|
|
54
|
+
type ResolvedSortKeyFields<SK, ResolvedFields> = SK extends readonly [
|
|
55
|
+
infer A extends string,
|
|
56
|
+
...infer B extends string[]
|
|
57
|
+
] ? A extends keyof ResolvedFields ? {
|
|
58
|
+
[Key in A]: Exclude<ResolvedFields[A], null>;
|
|
59
|
+
} & (B extends readonly never[] ? unknown : ResolvedSortKeyFields<B, ResolvedFields>) : never : never;
|
|
60
|
+
export {};
|
|
61
|
+
//# sourceMappingURL=MapSecondaryIndexes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MapSecondaryIndexes.d.ts","sourceRoot":"","sources":["../../../src/MappedTypes/MapSecondaryIndexes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,KAAK,mBAAmB,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEnE;;KAEK;AACL,MAAM,MAAM,kBAAkB,CAC5B,IAAI,SAAS,aAAa,CAAC,mBAAmB,CAAC,EAC/C,cAAc,EACd,MAAM,SAAS,SAAS,GAAG,EAAE,GAAG,SAAS,EAAE,IACzC,IAAI,SAAS,SAAS;IACxB,MAAM,KAAK,SAAS,mBAAmB;IACvC,GAAG,MAAM,IAAI,SAAS,aAAa,CAAC,mBAAmB,CAAC;CACzD,GACG,kBAAkB,CAChB,IAAI,EACJ,cAAc,EACd;IAAC,GAAG,MAAM;IAAE,qBAAqB,CAAC,KAAK,EAAE,cAAc,CAAC;CAAC,CAC1D,GACD,MAAM,CAAC;AAEX;;;;;;;;;;;;GAYG;AACH,KAAK,qBAAqB,CACxB,GAAG,SAAS,mBAAmB,EAC/B,cAAc,IACZ,GAAG,SAAS,cAAc,CAC5B,GAAG,EACH,MAAM,EAAE,SAAS,MAAM,EACvB,MAAM,EAAE,EACR,MAAM,UAAU,SAAS,MAAM,GAAG,KAAK,EACvC,GAAG,CACJ,GACG;IACE,UAAU,EAAE,oBAAoB,CAAC,UAAU,CAAC,SAAS,IAAI,GACrD,SAAS,wBAAwB,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,GACvD,UAAU,CAAC;IACf,EAAE,EAAE,EAAE,SAAS,MAAM,cAAc,GAC/B;SACG,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;KAC/C,GACD,KAAK,CAAC;IAEV,EAAE,EAAE,OAAO,SAAS,EAAE,GAClB,KAAK,GACL,qBAAqB,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;CAC/C,GACD,KAAK,CAAC;AAEV;;;;;;;GAOG;AACH,KAAK,wBAAwB,CAC3B,EAAE,EACF,QAAQ,SAAS,MAAM,GAAG,EAAE,IAC1B,EAAE,SAAS,SAAS,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,MAAM,EAAE,CAAC,GACzE,wBAAwB,CAAC,CAAC,EAAE,GAAG,QAAQ,MAAM,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAC7D,QAAQ,CAAC;AAEb;;;;;;;;;;GAUG;AACH,KAAK,qBAAqB,CAAC,EAAE,EAAE,cAAc,IAAI,EAAE,SAAS,SAAS;IACnE,MAAM,CAAC,SAAS,MAAM;IACtB,GAAG,MAAM,CAAC,SAAS,MAAM,EAAE;CAC5B,GACG,CAAC,SAAS,MAAM,cAAc,GAC5B;KACG,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;CAC7C,GAAG,CAAC,CAAC,SAAS,SAAS,KAAK,EAAE,GAC3B,OAAO,GACP,qBAAqB,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,GAC7C,KAAK,GACP,KAAK,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type UnionToIntersection, type ExcludeEmpty } from '@aws-amplify/data-schema-types';
|
|
2
|
+
import type { ModelType } from '../ModelType';
|
|
3
|
+
import type { ModelRelationalFieldParamShape } from '../ModelRelationalField';
|
|
4
|
+
export type ModelIdentifier<T> = {
|
|
5
|
+
[Property in keyof T]: T[Property] extends ModelType<infer R, any> ? R['identifier'] extends any[] ? {
|
|
6
|
+
identifier: R['identifier'][number];
|
|
7
|
+
} : never : never;
|
|
8
|
+
};
|
|
9
|
+
export type ModelSecondaryIndexes<T> = {
|
|
10
|
+
[Property in keyof T]: T[Property] extends ModelType<infer R, any> ? R['secondaryIndexes'] extends any[] ? {
|
|
11
|
+
secondaryIndexes: R['secondaryIndexes'];
|
|
12
|
+
} : never : never;
|
|
13
|
+
};
|
|
14
|
+
export type RelationalMetadata<ResolvedSchema, ResolvedFields extends Record<string, unknown>, IdentifierMeta extends Record<string, any>> = UnionToIntersection<ExcludeEmpty<{
|
|
15
|
+
[ModelName in keyof ResolvedSchema]: {
|
|
16
|
+
[Field in keyof ResolvedSchema[ModelName] as ResolvedSchema[ModelName][Field] extends ModelRelationalFieldParamShape ? ResolvedSchema[ModelName][Field]['relationshipType'] extends 'hasOne' | 'belongsTo' ? ModelName : ResolvedSchema[ModelName][Field]['relationshipType'] extends 'manyToMany' ? ResolvedSchema[ModelName][Field]['relationName'] extends string ? ResolvedSchema[ModelName][Field]['relationName'] : never : never : never]: ResolvedSchema[ModelName][Field] extends ModelRelationalFieldParamShape ? ResolvedSchema[ModelName][Field] extends ModelRelationalFieldParamShape ? ResolvedSchema[ModelName][Field]['relationshipType'] extends 'manyToMany' | 'hasMany' ? {
|
|
17
|
+
relationalInputFields: Partial<Record<`${Uncapitalize<ModelName & string>}`, NormalizeInputFields<ResolvedFields[ModelName & string], ExtractModelIdentifier<ModelName, IdentifierMeta>>>>;
|
|
18
|
+
} : {
|
|
19
|
+
relationalInputFields: Partial<Record<Field, NormalizeInputFields<ResolvedFields[ResolvedSchema[ModelName][Field]['relatedModel']], ExtractModelIdentifier<`${Capitalize<Field & string>}`, IdentifierMeta>>>>;
|
|
20
|
+
} : never : never;
|
|
21
|
+
};
|
|
22
|
+
}[keyof ResolvedSchema]>>;
|
|
23
|
+
type ExtractModelIdentifier<ModelName, IdentifierMeta> = ModelName extends keyof IdentifierMeta ? IdentifierMeta[ModelName] : never;
|
|
24
|
+
type NormalizeInputFields<ModelFields, IdentifierMeta extends Record<string, any>> = Partial<Omit<ModelFields, IdentifierMeta['identifier']>> & Required<Pick<ModelFields, IdentifierMeta['identifier']>>;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=ModelMetadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelMetadata.d.ts","sourceRoot":"","sources":["../../../src/MappedTypes/ModelMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,YAAY,EAElB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAC;AAE9E,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;KAC9B,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAE9D,CAAC,CAAC,YAAY,CAAC,SAAS,GAAG,EAAE,GAC3B;QAAE,UAAU,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;KAAE,GACvC,KAAK,GACP,KAAK;CACV,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI;KACpC,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAE9D,CAAC,CAAC,kBAAkB,CAAC,SAAS,GAAG,EAAE,GACjC;QAAE,gBAAgB,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAA;KAAE,GAC3C,KAAK,GACP,KAAK;CACV,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAC5B,cAAc,EACd,cAAc,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9C,cAAc,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IACxC,mBAAmB,CACrB,YAAY,CACV;KACG,SAAS,IAAI,MAAM,cAAc,GAAG;SAClC,KAAK,IAAI,MAAM,cAAc,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,SAAS,8BAA8B,GAChH,cAAc,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,kBAAkB,CAAC,SAChD,QAAQ,GACR,WAAW,GAGb,SAAS,GACT,cAAc,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,kBAAkB,CAAC,SAAS,YAAY,GACvE,cAAc,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,SAAS,MAAM,GAC7D,cAAc,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,GAChD,KAAK,GACP,KAAK,GACT,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,SAAS,8BAA8B,GAC/E,cAAc,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,SAAS,8BAA8B,GACrE,cAAc,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,kBAAkB,CAAC,SAChD,YAAY,GACZ,SAAS,GACX;YACE,qBAAqB,EAAE,OAAO,CAC5B,MAAM,CAEJ,GAAG,YAAY,CAAC,SAAS,GAAG,MAAM,CAAC,EAAE,EACrC,oBAAoB,CAClB,cAAc,CAAC,SAAS,GAAG,MAAM,CAAC,EAClC,sBAAsB,CAAC,SAAS,EAAE,cAAc,CAAC,CAClD,CACF,CACF,CAAC;SACH,GACD;YACE,qBAAqB,EAAE,OAAO,CAC5B,MAAM,CAEJ,KAAK,EACL,oBAAoB,CAClB,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,CAAC,EAChE,sBAAsB,CACpB,GAAG,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,EAAE,EAC/B,cAAc,CACf,CACF,CACF,CACF,CAAC;SACH,GACH,KAAK,GACP,KAAK;KACV;CACF,CAAC,MAAM,cAAc,CAAC,CACxB,CACF,CAAC;AAEF,KAAK,sBAAsB,CAAC,SAAS,EAAE,cAAc,IACnD,SAAS,SAAS,MAAM,cAAc,GAAG,cAAc,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;AAE7E,KAAK,oBAAoB,CACvB,WAAW,EACX,cAAc,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IACxC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,GAC1D,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { UnionToIntersection, LazyLoader, ExcludeEmpty } from '@aws-amplify/data-schema-types';
|
|
2
|
+
import type { Authorization, ImpliedAuthFields } from '../Authorization';
|
|
3
|
+
import type { ModelField } from '../ModelField';
|
|
4
|
+
import type { ModelType, ModelTypeParamShape } from '../ModelType';
|
|
5
|
+
import type { GenericModelSchema } from '../ModelSchema';
|
|
6
|
+
import type { ModelRelationalField, ModelRelationalFieldParamShape, ModelRelationalTypeArgFactory, ModelRelationshipTypes } from '../ModelRelationalField';
|
|
7
|
+
import type { AllImpliedFKs } from './ForeignKeys';
|
|
8
|
+
import type { ResolveSchema, SchemaTypes } from './ResolveSchema';
|
|
9
|
+
import type { InjectImplicitModelFields } from './ImplicitFieldInjector';
|
|
10
|
+
import type { ModelIdentifier } from './ModelMetadata';
|
|
11
|
+
import type { RefType, RefTypeParamShape } from '../RefType';
|
|
12
|
+
import type { NonModelTypesShape } from './ExtractNonModelTypes';
|
|
13
|
+
import type { CustomType, CustomTypeParamShape } from '../CustomType';
|
|
14
|
+
import type { EnumType, EnumTypeParamShape } from '../EnumType';
|
|
15
|
+
import type { CustomOperation, CustomOperationParamShape } from '../CustomOperation';
|
|
16
|
+
export type ResolveFieldProperties<Schema extends GenericModelSchema<any>, NonModelTypes extends NonModelTypesShape, ImplicitModelsSchema, ResolvedSchema = ResolveSchema<Schema>, IdentifierMeta extends Record<string, {
|
|
17
|
+
identifier: string;
|
|
18
|
+
}> = ModelIdentifier<SchemaTypes<Schema>>, FieldsWithInjectedImplicitFields = InjectImplicitModelFields<ResolvedSchema & ImplicitModelsSchema, IdentifierMeta>, FieldsWithRelationships = ResolveRelationships<FieldsWithInjectedImplicitFields, NonModelTypes>> = Intersection<FilterFieldTypes<MarkModelsNonNullableFieldsRequired<FieldsWithRelationships>>, FilterFieldTypes<MarkModelsNullableFieldsOptional<FieldsWithRelationships>>, FilterFieldTypes<ModelImpliedAuthFields<Schema>>, AllImpliedFKs<ResolvedSchema, IdentifierMeta>>;
|
|
19
|
+
export type ResolveStaticFieldProperties<Schema extends GenericModelSchema<any>, NonModelTypes extends NonModelTypesShape, ImplicitModelsSchema, ResolvedSchema = ResolveSchema<Schema>, FieldsWithInjectedImplicitFields = InjectImplicitModelFields<ResolvedSchema & ImplicitModelsSchema, object>, FieldsWithRelationships = ResolveRelationships<FieldsWithInjectedImplicitFields, NonModelTypes>> = Intersection<FilterFieldTypes<MarkModelsNonNullableFieldsRequired<FieldsWithRelationships>>, FilterFieldTypes<MarkModelsNullableFieldsOptional<FieldsWithRelationships>>>;
|
|
20
|
+
export type CreateImplicitModelsFromRelations<Schema> = UnionToIntersection<ExcludeEmpty<{
|
|
21
|
+
[ModelProp in keyof Schema]: {
|
|
22
|
+
[FieldProp in keyof Schema[ModelProp] as Schema[ModelProp][FieldProp] extends ModelRelationalFieldParamShape ? Schema[ModelProp][FieldProp]['relationName'] extends string ? Schema[ModelProp][FieldProp]['relationName'] extends keyof Schema ? never : Schema[ModelProp][FieldProp]['relationName'] : never : never]: Record<`${Lowercase<ModelProp & string>}`, ModelRelationalTypeArgFactory<ModelProp & string, ModelRelationshipTypes.hasMany, false>>;
|
|
23
|
+
};
|
|
24
|
+
}[keyof Schema]>>;
|
|
25
|
+
type GetRelationshipRef<T, RM extends keyof T, TypeArg extends ModelRelationalFieldParamShape, Flat extends boolean, ResolvedModel = ResolveRelationalFieldsForModel<T, RM, Flat>, Model = TypeArg['valueRequired'] extends true ? ResolvedModel : ResolvedModel | null | undefined> = LazyLoader<Model, TypeArg['array']>;
|
|
26
|
+
type ResolveRelationalFieldsForModel<Schema, ModelName extends keyof Schema, Flat extends boolean> = {
|
|
27
|
+
[FieldName in keyof Schema[ModelName]]: Schema[ModelName][FieldName] extends ModelRelationalFieldParamShape ? Schema[ModelName][FieldName]['relatedModel'] extends keyof Schema ? GetRelationshipRef<Schema, Schema[ModelName][FieldName]['relatedModel'], Schema[ModelName][FieldName], Flat> : never : Schema[ModelName][FieldName];
|
|
28
|
+
};
|
|
29
|
+
export type ResolveRef<NonModelTypes extends NonModelTypesShape, Ref extends RefTypeParamShape, Link extends string = Ref['link'], RefValue = Link extends keyof NonModelTypes['enums'] ? NonModelTypes['enums'][Link] : Link extends keyof NonModelTypes['customTypes'] ? ResolveRefsOfCustomType<NonModelTypes, NonModelTypes['customTypes'][Link]> : never, Value = Ref['valueRequired'] extends true ? RefValue : RefValue | null> = ResolveRefValueArrayTraits<Ref, Value>;
|
|
30
|
+
/**
|
|
31
|
+
* Converts the resolved RefType Value type into Array<> according to the
|
|
32
|
+
* `array` and `arrayRequired` properties of the RefType
|
|
33
|
+
*/
|
|
34
|
+
export type ResolveRefValueArrayTraits<Ref extends RefTypeParamShape, Value> = Ref['array'] extends false ? Value : Ref['arrayRequired'] extends true ? Array<Value> : Array<Value> | null;
|
|
35
|
+
export type ResolveRefsOfCustomType<NonModelTypes extends NonModelTypesShape, T> = {
|
|
36
|
+
[Prop in keyof T]: T[Prop] extends RefType<infer R extends RefTypeParamShape, any, any> | null ? ResolveRef<NonModelTypes, R> : T[Prop];
|
|
37
|
+
} extends infer Resolved ? ResolveCustomTypeFieldsRequirements<Resolved> : never;
|
|
38
|
+
export type ResolveCustomTypeFieldsRequirements<Resolved> = Intersection<ExtractNullableFieldsToOptionalFields<Resolved>, ExtractNonNullableFieldsToRequiredFields<Resolved>>;
|
|
39
|
+
type ResolveRelationships<Schema, NonModelTypes extends NonModelTypesShape, Flat extends boolean = false> = {
|
|
40
|
+
[ModelProp in keyof Schema]: {
|
|
41
|
+
[FieldProp in keyof Schema[ModelProp]]: Schema[ModelProp][FieldProp] extends RefType<infer R extends RefTypeParamShape, any, any> | null ? ResolveRef<NonModelTypes, R> : Schema[ModelProp][FieldProp] extends ModelRelationalFieldParamShape ? Schema[ModelProp][FieldProp]['relatedModel'] extends keyof Schema ? Schema[ModelProp][FieldProp]['relationshipType'] extends 'manyToMany' ? Schema[ModelProp][FieldProp]['relationName'] extends keyof Schema ? GetRelationshipRef<Schema, Schema[ModelProp][FieldProp]['relationName'], Schema[ModelProp][FieldProp], Flat> : never : GetRelationshipRef<Schema, Schema[ModelProp][FieldProp]['relatedModel'], Schema[ModelProp][FieldProp], Flat> : never : Schema[ModelProp][FieldProp];
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
type FilterFieldTypes<Schema> = {
|
|
45
|
+
[ModelProp in keyof Schema]: {
|
|
46
|
+
[FieldProp in keyof Schema[ModelProp] as Schema[ModelProp][FieldProp] extends undefined ? never : FieldProp]: Schema[ModelProp][FieldProp];
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
type ExtractNullableFieldsToOptionalFields<Fields> = Partial<{
|
|
50
|
+
[FieldProp in keyof Fields as null extends Fields[FieldProp] ? FieldProp : never]: null extends Fields[FieldProp] ? Fields[FieldProp] : never;
|
|
51
|
+
}>;
|
|
52
|
+
type MarkModelsNullableFieldsOptional<Schema> = {
|
|
53
|
+
[ModelProp in keyof Schema]: ExtractNullableFieldsToOptionalFields<Schema[ModelProp]>;
|
|
54
|
+
};
|
|
55
|
+
type ExtractNonNullableFieldsToRequiredFields<Fields> = {
|
|
56
|
+
[FieldProp in keyof Fields as null extends Fields[FieldProp] ? never : FieldProp]: null extends Fields[FieldProp] ? never : Fields[FieldProp];
|
|
57
|
+
};
|
|
58
|
+
type MarkModelsNonNullableFieldsRequired<Schema> = {
|
|
59
|
+
[ModelProp in keyof Schema]: ExtractNonNullableFieldsToRequiredFields<Schema[ModelProp]>;
|
|
60
|
+
};
|
|
61
|
+
type Intersection<A = Record<never, never>, B = Record<never, never>, C = Record<never, never>, D = Record<never, never>> = A & B & C & D extends infer U ? {
|
|
62
|
+
[P in keyof U]: U[P];
|
|
63
|
+
} : never;
|
|
64
|
+
export type ModelImpliedAuthFields<Schema extends GenericModelSchema<any>> = {
|
|
65
|
+
[ModelKey in keyof Schema['data']['types'] as Schema['data']['types'][ModelKey] extends EnumType<EnumTypeParamShape> ? never : Schema['data']['types'][ModelKey] extends CustomType<CustomTypeParamShape> ? never : Schema['data']['types'][ModelKey] extends CustomOperation<CustomOperationParamShape, any> ? never : ModelKey]: Schema['data']['types'][ModelKey] extends ModelType<infer Model, any> ? AllAuthFieldsForModel<Schema, Model> : object;
|
|
66
|
+
};
|
|
67
|
+
type AllAuthFieldsForModel<Schema extends GenericModelSchema<any>, Model extends Schema['data']['types'][keyof Schema['data']['types']]> = (Model['authorization'][number] extends never ? Schema['data']['authorization'][number] extends never ? object : ImpliedAuthFields<Schema['data']['authorization'][number]> : ImpliedAuthFields<Model['authorization'][number]>) & ImpliedAuthFieldsFromFields<Model>;
|
|
68
|
+
type ImpliedAuthFieldsFromFields<T> = UnionToIntersection<T extends ModelTypeParamShape ? T['fields'][keyof T['fields']] extends ModelField<any, any, infer Auth> | ModelRelationalField<any, any, any, infer Auth> | RefType<any, any, infer Auth> ? Auth extends Authorization<any, any, any> ? ImpliedAuthFields<Auth> : object : object : object>;
|
|
69
|
+
export {};
|
|
70
|
+
//# sourceMappingURL=ResolveFieldProperties.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResolveFieldProperties.d.ts","sourceRoot":"","sources":["../../../src/MappedTypes/ResolveFieldProperties.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { ModelType } from '../ModelType';
|
|
2
|
+
import type { GenericModelSchema } from '../ModelSchema';
|
|
3
|
+
import type { ModelRelationalField, ModelRelationshipTypes, RelationTypeFunctionOmitMapping } from '../ModelRelationalField';
|
|
4
|
+
import type { ModelField } from '../ModelField';
|
|
5
|
+
import type { CustomType, CustomTypeParamShape } from '../CustomType';
|
|
6
|
+
import type { EnumType, EnumTypeParamShape } from '../EnumType';
|
|
7
|
+
import type { RefType, RefTypeParamShape } from '../RefType';
|
|
8
|
+
import type { CustomOperation, CustomOperationParamShape } from '../CustomOperation';
|
|
9
|
+
export type ResolveSchema<Schema> = FieldTypes<ModelTypes<SchemaTypes<Schema>>>;
|
|
10
|
+
export type SchemaTypes<T> = T extends GenericModelSchema<any> ? T['data']['types'] : never;
|
|
11
|
+
/**
|
|
12
|
+
* Resolves model types
|
|
13
|
+
*
|
|
14
|
+
* Removes CustomTypes and Enums from resolved schema.
|
|
15
|
+
* They are extracted separately in ExtractNonModelTypes.ts and
|
|
16
|
+
* added to ModelMeta in ClientSchema.ts
|
|
17
|
+
*/
|
|
18
|
+
export type ModelTypes<Schema> = {
|
|
19
|
+
[Model in keyof Schema as Schema[Model] extends EnumType<EnumTypeParamShape> | CustomType<CustomTypeParamShape> | CustomOperation<CustomOperationParamShape, any> ? never : Model]: Schema[Model] extends ModelType<infer R, any> ? R['fields'] : never;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Gets the collection of all ModelTypes and CustomTypes which are explicitly
|
|
23
|
+
* defined in the schema.
|
|
24
|
+
*/
|
|
25
|
+
export type ModelAndCustomTypes<Schema> = {
|
|
26
|
+
[Model in keyof Schema as Schema[Model] extends EnumType<EnumTypeParamShape> | CustomOperation<CustomOperationParamShape, any> ? never : Model]: Schema[Model] extends ModelType<any, any> ? Schema[Model] : Schema[Model] extends CustomType<CustomTypeParamShape> ? Schema[Model] : never;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Resolves field types
|
|
30
|
+
*
|
|
31
|
+
* Non-model types are replaced with Refs. Refs remain and are resolved in ResolveFieldProperties.ts
|
|
32
|
+
*/
|
|
33
|
+
export type FieldTypes<T> = {
|
|
34
|
+
[ModelProp in keyof T]: {
|
|
35
|
+
[FieldProp in keyof T[ModelProp]]: T[ModelProp][FieldProp] extends ModelField<infer R, any, any> ? R : T[ModelProp][FieldProp] extends RefType<infer R extends RefTypeParamShape, any, any> ? R['valueRequired'] extends true ? T[ModelProp][FieldProp] : T[ModelProp][FieldProp] | null : T[ModelProp][FieldProp] extends EnumType<EnumTypeParamShape> | CustomType<CustomTypeParamShape> ? RefType<{
|
|
36
|
+
link: `${Capitalize<ModelProp & string>}${Capitalize<FieldProp & string>}`;
|
|
37
|
+
type: 'ref';
|
|
38
|
+
valueRequired: false;
|
|
39
|
+
array: false;
|
|
40
|
+
arrayRequired: false;
|
|
41
|
+
authorization: [];
|
|
42
|
+
}> | null : T[ModelProp][FieldProp] extends ModelRelationalField<infer R, string, RelationTypeFunctionOmitMapping<ModelRelationshipTypes>, any> ? R : never;
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Resolves field types for a CustomType.
|
|
47
|
+
*
|
|
48
|
+
* This utility type is needed in addition to the `FieldTypes` utility type as
|
|
49
|
+
* without checking `ModelRelationalField` can improve ~5% on resolving performance.
|
|
50
|
+
*
|
|
51
|
+
* Non-model types are replaced with Refs. Refs remain and are resolved in ResolveFieldProperties.ts
|
|
52
|
+
*/
|
|
53
|
+
export type FieldTypesOfCustomType<T> = {
|
|
54
|
+
[CustomTypeName in keyof T]: {
|
|
55
|
+
[FieldProp in keyof T[CustomTypeName]]: T[CustomTypeName][FieldProp] extends ModelField<infer R, any, any> ? R : T[CustomTypeName][FieldProp] extends RefType<infer R extends RefTypeParamShape, any, any> ? R['valueRequired'] extends true ? T[CustomTypeName][FieldProp] : T[CustomTypeName][FieldProp] | null : T[CustomTypeName][FieldProp] extends EnumType<EnumTypeParamShape> | CustomType<CustomTypeParamShape> ? RefType<{
|
|
56
|
+
link: `${Capitalize<CustomTypeName & string>}${Capitalize<FieldProp & string>}`;
|
|
57
|
+
type: 'ref';
|
|
58
|
+
valueRequired: false;
|
|
59
|
+
array: false;
|
|
60
|
+
arrayRequired: false;
|
|
61
|
+
authorization: [];
|
|
62
|
+
}> | null : never;
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=ResolveSchema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResolveSchema.d.ts","sourceRoot":"","sources":["../../../src/MappedTypes/ResolveSchema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { Brand } from './util';
|
|
2
|
+
import { Authorization } from './Authorization';
|
|
3
|
+
/**
|
|
4
|
+
* Used to "attach" auth types to ModelField without exposing them on the builder.
|
|
5
|
+
*/
|
|
6
|
+
export declare const __auth: unique symbol;
|
|
7
|
+
declare const brandName = "modelField";
|
|
8
|
+
export declare enum ModelFieldType {
|
|
9
|
+
Id = "ID",
|
|
10
|
+
String = "String",
|
|
11
|
+
Integer = "Int",
|
|
12
|
+
Float = "Float",
|
|
13
|
+
Boolean = "Boolean",
|
|
14
|
+
Date = "AWSDate",
|
|
15
|
+
Time = "AWSTime",
|
|
16
|
+
DateTime = "AWSDateTime",
|
|
17
|
+
Timestamp = "AWSTimestamp",
|
|
18
|
+
Email = "AWSEmail",
|
|
19
|
+
JSON = "AWSJSON",
|
|
20
|
+
Phone = "AWSPhone",
|
|
21
|
+
Url = "AWSURL",
|
|
22
|
+
IPAddress = "AWSIPAddress"
|
|
23
|
+
}
|
|
24
|
+
export declare enum ModelFieldDataType {
|
|
25
|
+
String = "string",
|
|
26
|
+
Number = "number",
|
|
27
|
+
Boolean = "boolean",
|
|
28
|
+
Date = "Date",
|
|
29
|
+
JSON = "any"
|
|
30
|
+
}
|
|
31
|
+
type FieldData = {
|
|
32
|
+
fieldType: ModelFieldType;
|
|
33
|
+
required: boolean;
|
|
34
|
+
array: boolean;
|
|
35
|
+
arrayRequired: boolean;
|
|
36
|
+
default: undefined | ModelFieldTypeParamOuter;
|
|
37
|
+
authorization: Authorization<any, any, any>[];
|
|
38
|
+
};
|
|
39
|
+
type ModelFieldTypeParamInner = string | number | boolean | Date | Json | null;
|
|
40
|
+
export type Json = null | string | number | boolean | object | any[];
|
|
41
|
+
export type ModelFieldTypeParamOuter = ModelFieldTypeParamInner | Array<ModelFieldTypeParamInner> | null;
|
|
42
|
+
/**
|
|
43
|
+
* Field type arg mutators
|
|
44
|
+
*/
|
|
45
|
+
export type Nullable<T> = T | null;
|
|
46
|
+
export type Required<T> = Exclude<T, null>;
|
|
47
|
+
export type ArrayField<T> = [T] extends [ModelFieldTypeParamInner] ? Array<T> | null : never;
|
|
48
|
+
/**
|
|
49
|
+
* Public API for the chainable builder methods exposed by Model Field.
|
|
50
|
+
* The type is narrowing e.g., after calling .array() it will be omitted from intellisense suggestions
|
|
51
|
+
*
|
|
52
|
+
* @typeParam T - holds the JS data type of the field
|
|
53
|
+
* @typeParam K - union of strings representing already-invoked method names. Used to improve Intellisense
|
|
54
|
+
*/
|
|
55
|
+
export type ModelField<T extends ModelFieldTypeParamOuter, K extends keyof ModelField<T> = never, Auth = undefined> = Omit<{
|
|
56
|
+
/**
|
|
57
|
+
* Marks a field as required.
|
|
58
|
+
*/
|
|
59
|
+
required(): ModelField<Required<T>, K | 'required'>;
|
|
60
|
+
/**
|
|
61
|
+
* Converts a field type definition to an array of the field type.
|
|
62
|
+
*/
|
|
63
|
+
array(): ModelField<ArrayField<T>, Exclude<K, 'required'> | 'array'>;
|
|
64
|
+
/**
|
|
65
|
+
* Sets a default value for the scalar type.
|
|
66
|
+
* @param value the default value
|
|
67
|
+
*/
|
|
68
|
+
default(value: ModelFieldTypeParamOuter): ModelField<T, K | 'default'>;
|
|
69
|
+
/**
|
|
70
|
+
* Configures field-level authorization rules. Pass in an array of authorizations `(a.allow.____)` to mix and match
|
|
71
|
+
* multiple authorization rules for this field.
|
|
72
|
+
*/
|
|
73
|
+
authorization<AuthRuleType extends Authorization<any, any, any>>(rules: AuthRuleType[]): ModelField<T, K | 'authorization', AuthRuleType>;
|
|
74
|
+
}, K> & {
|
|
75
|
+
[__auth]?: Auth;
|
|
76
|
+
} & Brand<typeof brandName>;
|
|
77
|
+
/**
|
|
78
|
+
* Internal representation of Model Field that exposes the `data` property.
|
|
79
|
+
* Used at buildtime.
|
|
80
|
+
*/
|
|
81
|
+
export type InternalField = ModelField<ModelFieldTypeParamOuter, never> & {
|
|
82
|
+
data: FieldData;
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* A unique identifier scalar type. This scalar is serialized like a String but isn't meant to be human-readable.
|
|
86
|
+
* If not specified on create operations, a ULID will be auto-generated service-side.
|
|
87
|
+
* @returns ID field definition
|
|
88
|
+
*/
|
|
89
|
+
export declare function id(): ModelField<Nullable<string>>;
|
|
90
|
+
/**
|
|
91
|
+
* A string scalar type that is represented server-side as a UTF-8 character sequence.
|
|
92
|
+
* @returns string field definition
|
|
93
|
+
*/
|
|
94
|
+
export declare function string(): ModelField<Nullable<string>>;
|
|
95
|
+
/**
|
|
96
|
+
* An integer scalar type with a supported value range between -(2^31) and 2^31-1.
|
|
97
|
+
* @returns integer field definition
|
|
98
|
+
*/
|
|
99
|
+
export declare function integer(): ModelField<Nullable<number>>;
|
|
100
|
+
/**
|
|
101
|
+
* A float scalar type following represented server-side as an IEEE 754 floating point value.
|
|
102
|
+
* @returns float field definition
|
|
103
|
+
*/
|
|
104
|
+
export declare function float(): ModelField<Nullable<number>>;
|
|
105
|
+
/**
|
|
106
|
+
* A boolean scalar type that can be either true or false.
|
|
107
|
+
* @returns boolean field definition
|
|
108
|
+
*/
|
|
109
|
+
export declare function boolean(): ModelField<Nullable<boolean>>;
|
|
110
|
+
/**
|
|
111
|
+
* A date scalar type that is represented server-side as an extended ISO 8601 date string in the format `YYYY-MM-DD`.
|
|
112
|
+
* @returns date field definition
|
|
113
|
+
*/
|
|
114
|
+
export declare function date(): ModelField<Nullable<string>>;
|
|
115
|
+
/**
|
|
116
|
+
* A time scalar type that is represented server-side as an extended ISO 8601 time string in the format `hh:mm:ss.sss`.
|
|
117
|
+
* @returns time field definition
|
|
118
|
+
*/
|
|
119
|
+
export declare function time(): ModelField<Nullable<string>>;
|
|
120
|
+
/**
|
|
121
|
+
* A date time scalar type that is represented server-side as an extended ISO 8601 date and time string in the format `YYYY-MM-DDThh:mm:ss.sssZ`.
|
|
122
|
+
* @returns datetime field definition
|
|
123
|
+
*/
|
|
124
|
+
export declare function datetime(): ModelField<Nullable<string>>;
|
|
125
|
+
/**
|
|
126
|
+
* A timestamp scalar type that is represented by an integer value of the number of seconds before or after `1970-01-01-T00:00Z`.
|
|
127
|
+
* @returns timestamp field definition
|
|
128
|
+
*/
|
|
129
|
+
export declare function timestamp(): ModelField<Nullable<number>>;
|
|
130
|
+
/**
|
|
131
|
+
* An email scalar type that is represented server-side in the format `local-part@domain-part` as defined by RFC 822.
|
|
132
|
+
* @returns email field definition
|
|
133
|
+
*/
|
|
134
|
+
export declare function email(): ModelField<Nullable<string>>;
|
|
135
|
+
/**
|
|
136
|
+
* A JSON scalar type that is automatically parsed and loaded server-side as maps, lists, or scalar values
|
|
137
|
+
* rather than as the literal input strings.
|
|
138
|
+
* @returns JSON field definition
|
|
139
|
+
*/
|
|
140
|
+
export declare function json(): ModelField<Nullable<Json>>;
|
|
141
|
+
/**
|
|
142
|
+
* A phone number scalar type thas is stored as a string server-side. Phone numbers can contain either spaces
|
|
143
|
+
* or hyphens to separate digit groups. Phone numbers without a country code are assumed to be US/North American numbers adhering
|
|
144
|
+
* to the North American Numbering Plan.
|
|
145
|
+
* @returns phone number field definition
|
|
146
|
+
*/
|
|
147
|
+
export declare function phone(): ModelField<Nullable<string>>;
|
|
148
|
+
/**
|
|
149
|
+
* A URL scalar type as defined by RFC 1738. For example, https://www.amazon.com/dp/B000NZW3KC/ or mailto:example@example.com.
|
|
150
|
+
* URLs must contain a schema (http, mailto) and can't contain two forward slashes (//) in the path part.
|
|
151
|
+
* @returns URL field definition
|
|
152
|
+
*/
|
|
153
|
+
export declare function url(): ModelField<Nullable<string>>;
|
|
154
|
+
/**
|
|
155
|
+
* A valid IPv4 or IPv6 address scalar type. IPv4 addresses are expected in quad-dotted notation (123.12.34.56). IPv6 addresses
|
|
156
|
+
* are expected in non-bracketed, colon-separated format (1a2b:3c4b:🔢4567). You can include an optional CIDR suffix (123.45.67.89/16)
|
|
157
|
+
* to indicate subnet mask.
|
|
158
|
+
* @returns IP address field definition
|
|
159
|
+
*/
|
|
160
|
+
export declare function ipAddress(): ModelField<Nullable<string>>;
|
|
161
|
+
export {};
|
|
162
|
+
//# sourceMappingURL=ModelField.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelField.d.ts","sourceRoot":"","sources":["../../src/ModelField.ts"],"names":[],"mappings":"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"}
|