New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@aws-amplify/amplify-api-next-alpha

Package Overview
Dependencies
Maintainers
10
Versions
25
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aws-amplify/amplify-api-next-alpha - npm Package Compare versions

Comparing version 0.3.2 to 0.4.0

30

lib-esm/index.d.ts

@@ -8,16 +8,16 @@ import { schema } from './src/ModelSchema';

declare const a: {
id: () => import("./src/ModelField").ModelField<string, never, undefined>;
string: () => import("./src/ModelField").ModelField<string, never, undefined>;
integer: () => import("./src/ModelField").ModelField<number, never, undefined>;
float: () => import("./src/ModelField").ModelField<number, never, undefined>;
boolean: () => import("./src/ModelField").ModelField<boolean, never, undefined>;
date: () => import("./src/ModelField").ModelField<Date, never, undefined>;
time: () => import("./src/ModelField").ModelField<Date, never, undefined>;
datetime: () => import("./src/ModelField").ModelField<Date, never, undefined>;
timestamp: () => import("./src/ModelField").ModelField<number, never, undefined>;
email: () => import("./src/ModelField").ModelField<string, never, undefined>;
id: () => import("./src/ModelField").ModelField<string | null, never, undefined>;
string: () => import("./src/ModelField").ModelField<string | null, never, undefined>;
integer: () => import("./src/ModelField").ModelField<number | null, never, undefined>;
float: () => import("./src/ModelField").ModelField<number | null, never, undefined>;
boolean: () => import("./src/ModelField").ModelField<boolean | null, never, undefined>;
date: () => import("./src/ModelField").ModelField<Date | null, never, undefined>;
time: () => import("./src/ModelField").ModelField<Date | null, never, undefined>;
datetime: () => import("./src/ModelField").ModelField<Date | null, never, undefined>;
timestamp: () => import("./src/ModelField").ModelField<number | null, never, undefined>;
email: () => import("./src/ModelField").ModelField<string | null, never, undefined>;
json: () => import("./src/ModelField").ModelField<any, never, undefined>;
phone: () => import("./src/ModelField").ModelField<string, never, undefined>;
url: () => import("./src/ModelField").ModelField<string, never, undefined>;
ipAddress: () => import("./src/ModelField").ModelField<string, never, undefined>;
phone: () => import("./src/ModelField").ModelField<string | null, never, undefined>;
url: () => import("./src/ModelField").ModelField<string | null, never, undefined>;
ipAddress: () => import("./src/ModelField").ModelField<string | null, never, undefined>;
schema: typeof schema;

@@ -39,3 +39,3 @@ model: typeof model;

to: <SELF extends import("./src/Authorization").Authorization<any, any>>(this: SELF, operations: ("create" | "update" | "delete" | "read" | "get" | "list" | "sync" | "listen" | "search")[]) => Omit<SELF, "to">;
inField: <SELF_1 extends import("./src/Authorization").Authorization<any, any>, Field extends string>(this: SELF_1, field: Field) => (Omit<SELF_1, "inField"> extends infer T extends {} ? { [K in keyof T as Omit<SELF_1, "inField">[K] extends (...args: any) => any ? K : never]: Omit<SELF_1, "inField">[K]; } : never) & import("./src/Authorization").Authorization<Field, SELF_1[typeof import("./src/Authorization").__data]["multiOwner"]>;
inField: <SELF_1 extends import("./src/Authorization").Authorization<any, any>, Field extends string>(this: SELF_1, field: Field) => (Omit<SELF_1, "inField"> extends infer T extends object ? { [K in keyof T as Omit<SELF_1, "inField">[K] extends (...args: any) => any ? K : never]: Omit<SELF_1, "inField">[K]; } : never) & import("./src/Authorization").Authorization<Field, SELF_1[typeof import("./src/Authorization").__data]["multiOwner"]>;
identityClaim: <SELF_2 extends import("./src/Authorization").Authorization<any, any>>(this: SELF_2, property: string) => Omit<SELF_2, "identityClaim">;

@@ -45,3 +45,3 @@ };

to: <SELF extends import("./src/Authorization").Authorization<any, any>>(this: SELF, operations: ("create" | "update" | "delete" | "read" | "get" | "list" | "sync" | "listen" | "search")[]) => Omit<SELF, "to">;
inField: <SELF_1 extends import("./src/Authorization").Authorization<any, any>, Field extends string>(this: SELF_1, field: Field) => (Omit<SELF_1, "inField"> extends infer T_1 extends {} ? { [K in keyof T_1 as Omit<SELF_1, "inField">[K] extends (...args: any) => any ? K : never]: Omit<SELF_1, "inField">[K]; } : never) & import("./src/Authorization").Authorization<Field, SELF_1[typeof import("./src/Authorization").__data]["multiOwner"]>;
inField: <SELF_1 extends import("./src/Authorization").Authorization<any, any>, Field extends string>(this: SELF_1, field: Field) => (Omit<SELF_1, "inField"> extends infer T_1 extends object ? { [K in keyof T_1 as Omit<SELF_1, "inField">[K] extends (...args: any) => any ? K : never]: Omit<SELF_1, "inField">[K]; } : never) & import("./src/Authorization").Authorization<Field, SELF_1[typeof import("./src/Authorization").__data]["multiOwner"]>;
identityClaim: <SELF_2 extends import("./src/Authorization").Authorization<any, any>>(this: SELF_2, property: string) => Omit<SELF_2, "identityClaim">;

@@ -48,0 +48,0 @@ };

@@ -56,4 +56,4 @@ import { UnionToIntersection } from './util';

};
export type OwnerField = {};
type BuilderMethods<T extends {}> = {
export type OwnerField = object;
type BuilderMethods<T extends object> = {
[K in keyof T as T[K] extends (...args: any) => any ? K : never]: T[K];

@@ -136,3 +136,3 @@ };

[K in Field]?: string;
} : {} : {};
} : object : object;
/**

@@ -139,0 +139,0 @@ * Turns the type from a list of `Authorization` rules like this:

@@ -48,5 +48,5 @@ import type { Authorization, ImpliedAuthFields } from './Authorization';

type ModelImpliedAuthFields<Schema extends ModelSchema<any>> = {
[ModelKey in keyof Schema['data']['models']]: Schema['data']['models'][ModelKey] extends ModelType<infer Model, any> ? ImpliedAuthFields<Model['authorization'][number]> & ImpliedAuthFieldsFromFields<Model> : {};
[ModelKey in keyof Schema['data']['models']]: Schema['data']['models'][ModelKey] extends ModelType<infer Model, any> ? ImpliedAuthFields<Model['authorization'][number]> & ImpliedAuthFieldsFromFields<Model> : object;
};
type ImpliedAuthFieldsFromFields<T> = UnionToIntersection<T extends ModelTypeParamShape ? T['fields'][keyof T['fields']] extends ModelField<any, any, infer Auth> | ModelRelationalField<any, any, any, infer Auth> ? Auth extends Authorization<any, any> ? ImpliedAuthFields<Auth> : {} : {} : {}>;
type ImpliedAuthFieldsFromFields<T> = UnionToIntersection<T extends ModelTypeParamShape ? T['fields'][keyof T['fields']] extends ModelField<any, any, infer Auth> | ModelRelationalField<any, any, any, infer Auth> ? Auth extends Authorization<any, any> ? ImpliedAuthFields<Auth> : object : object : object>;
/**

@@ -63,3 +63,3 @@ * infer and massage field types

type InjectImplicitModels<Schema> = Prettify<Schema & ExtractImplicitModelNames<Schema>>;
type GetRelationshipRef<T, RM extends keyof T, TypeArg extends ModelRelationalFieldParamShape, Flat extends boolean, ResolvedModel = ResolveRelationalFieldsForModel<T, RM, Flat>, Model = TypeArg['valueOptional'] extends true ? ResolvedModel | null | undefined : ResolvedModel, Value = TypeArg['array'] extends true ? TypeArg['arrayOptional'] extends true ? Array<Model> | null | undefined : Array<Model> : Model> = Flat extends true ? Value : () => Promise<Prettify<Value>>;
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, Value = TypeArg['array'] extends true ? TypeArg['arrayRequired'] extends true ? Array<Model> : Array<Model> | null | undefined : Model> = Flat extends true ? Value : () => Promise<Prettify<Value>>;
type ResolveRelationalFieldsForModel<Schema, ModelName extends keyof Schema, Flat extends boolean> = {

@@ -66,0 +66,0 @@ [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];

@@ -31,5 +31,5 @@ import { Authorization } from './Authorization';

fieldType: ModelFieldType;
optional: boolean;
required: boolean;
array: boolean;
arrayOptional: boolean;
arrayRequired: boolean;
default: undefined | ModelFieldTypeParamOuter;

@@ -40,4 +40,9 @@ authorization: Authorization<any, any>[];

type ModelFieldTypeParamOuter = ModelFieldTypeParamInner | Array<ModelFieldTypeParamInner> | null;
type ToArray<T> = [T] extends [ModelFieldTypeParamInner] ? Array<T> : never;
/**
* Field type arg mutators
*/
type ToOptional<T> = T | null;
type ToRequired<T> = Exclude<T, null>;
type ToArray<T> = [T] extends [ModelFieldTypeParamInner] ? Array<T> | null : never;
/**
* Public API for the chainable builder methods exposed by Model Field.

@@ -50,4 +55,4 @@ * The type is narrowing e.g., after calling .array() it will be omitted from intellisense suggestions

export type ModelField<T extends ModelFieldTypeParamOuter, K extends keyof ModelField<T> = never, Auth = undefined> = Omit<{
optional(): ModelField<T | null, K | 'optional'>;
array(): ModelField<ToArray<T>, Exclude<K, 'optional'> | 'array'>;
required(): ModelField<ToRequired<T>, K | 'required'>;
array(): ModelField<ToArray<T>, Exclude<K, 'required'> | 'array'>;
default(val: ModelFieldTypeParamOuter): ModelField<T, K | 'default'>;

@@ -65,16 +70,16 @@ authorization<AuthRuleType extends Authorization<any, any>>(rules: AuthRuleType[]): ModelField<T, K | 'authorization', AuthRuleType>;

};
declare function id(): ModelField<string>;
declare function string(): ModelField<string>;
declare function integer(): ModelField<number>;
declare function float(): ModelField<number>;
declare function boolean(): ModelField<boolean>;
declare function date(): ModelField<Date>;
declare function time(): ModelField<Date>;
declare function datetime(): ModelField<Date>;
declare function timestamp(): ModelField<number>;
declare function email(): ModelField<string>;
declare function json(): ModelField<any>;
declare function phone(): ModelField<string>;
declare function url(): ModelField<string>;
declare function ipAddress(): ModelField<string>;
declare function id(): ModelField<ToOptional<string>>;
declare function string(): ModelField<ToOptional<string>>;
declare function integer(): ModelField<ToOptional<number>>;
declare function float(): ModelField<ToOptional<number>>;
declare function boolean(): ModelField<ToOptional<boolean>>;
declare function date(): ModelField<ToOptional<Date>>;
declare function time(): ModelField<ToOptional<Date>>;
declare function datetime(): ModelField<ToOptional<Date>>;
declare function timestamp(): ModelField<ToOptional<number>>;
declare function email(): ModelField<ToOptional<string>>;
declare function json(): ModelField<ToOptional<any>>;
declare function phone(): ModelField<ToOptional<string>>;
declare function url(): ModelField<ToOptional<string>>;
declare function ipAddress(): ModelField<ToOptional<string>>;
export declare const fields: {

@@ -81,0 +86,0 @@ id: typeof id;

@@ -38,6 +38,6 @@ "use strict";

* @example
* string() => T = string
* string().array() => T = string[]
* string().array().optional() => T = string[] | null
* string().optional().array().optional() => T = (string | null)[] | null
* string() => T = string | null
* string().array() => T = Array<string | null> | null
* string().array().required() => T = Array<string | null>
* string().required().array().required() => T = Array<string>
*

@@ -52,5 +52,5 @@ * @param fieldType - stores the GraphQL data type of the field

fieldType,
optional: false,
required: false,
array: false,
arrayOptional: false,
arrayRequired: false,
default: undefined,

@@ -60,10 +60,10 @@ authorization: [],

const builder = {
optional() {
required() {
if (_meta.lastInvokedMethod === 'array') {
data.arrayOptional = true;
data.arrayRequired = true;
}
else {
data.optional = true;
data.required = true;
}
_meta.lastInvokedMethod = 'optional';
_meta.lastInvokedMethod = 'required';
return this;

@@ -70,0 +70,0 @@ },

@@ -1,2 +0,2 @@

type RelationalMethods = "hasOne" | "hasMany" | "belongsTo" | "manyToMany";
type RelationalMethods = 'hasOne' | 'hasMany' | 'belongsTo' | 'manyToMany';
type ModelRefTypeParamShape = {

@@ -14,12 +14,12 @@ model: string;

hasOne(): ModelRef<T & {
relationshipType: "hasOne";
relationshipType: 'hasOne';
}, K | RelationalMethods>;
hasMany(): ModelRef<T & {
relationshipType: "hasMany";
relationshipType: 'hasMany';
}, K | RelationalMethods>;
belongsTo(): ModelRef<T & {
relationshipType: "belongsTo";
relationshipType: 'belongsTo';
}, K | RelationalMethods>;
manyToMany(): ModelRef<T & {
relationshipType: "manyToMany";
relationshipType: 'manyToMany';
}, K | RelationalMethods>;

@@ -26,0 +26,0 @@ }, K>;

@@ -12,15 +12,15 @@ "use strict";

hasOne() {
data.relationshipType = "hasOne";
data.relationshipType = 'hasOne';
return this;
},
hasMany() {
data.relationshipType = "hasMany";
data.relationshipType = 'hasMany';
return this;
},
belongsTo() {
data.relationshipType = "belongsTo";
data.relationshipType = 'belongsTo';
return this;
},
manyToMany() {
data.relationshipType = "manyToMany";
data.relationshipType = 'manyToMany';
return this;

@@ -27,0 +27,0 @@ },

@@ -19,4 +19,4 @@ import { SetTypeSubArg } from './util';

array: boolean;
valueOptional: boolean;
arrayOptional: boolean;
valueRequired: boolean;
arrayRequired: boolean;
connectionName?: string;

@@ -29,10 +29,10 @@ authorization: Authorization<any, any>[];

relatedModel: string;
valueOptional: boolean;
array: boolean;
arrayOptional: boolean;
valueRequired: boolean;
arrayRequired: boolean;
connectionName?: string;
};
export type ModelRelationalField<T extends ModelRelationalFieldParamShape, RM extends string | symbol, K extends keyof ModelRelationalField<T, RM> = never, Auth = undefined> = Omit<{
valueOptional(): ModelRelationalField<SetTypeSubArg<T, 'valueOptional', true>, K | 'valueOptional'>;
arrayOptional(): ModelRelationalField<SetTypeSubArg<T, 'arrayOptional', true>, K | 'arrayOptional'>;
valueRequired(): ModelRelationalField<SetTypeSubArg<T, 'valueRequired', true>, K | 'valueRequired'>;
arrayRequired(): ModelRelationalField<SetTypeSubArg<T, 'arrayRequired', true>, K | 'arrayRequired'>;
authorization<AuthRuleType extends Authorization<any, any>>(rules: AuthRuleType[]): ModelRelationalField<T, K | 'authorization', K, AuthRuleType>;

@@ -54,4 +54,4 @@ }, K> & {

array: IsArray;
valueOptional: false;
arrayOptional: false;
valueRequired: false;
arrayRequired: false;
connectionName: ConnectionName;

@@ -58,0 +58,0 @@ };

@@ -22,4 +22,4 @@ "use strict";

array: false,
valueOptional: false,
arrayOptional: false,
valueRequired: false,
arrayRequired: false,
connectionName,

@@ -32,8 +32,8 @@ authorization: [],

const builder = {
valueOptional() {
data.valueOptional = true;
valueRequired() {
data.valueRequired = true;
return this;
},
arrayOptional() {
data.arrayOptional = true;
arrayRequired() {
data.arrayRequired = true;
return this;

@@ -40,0 +40,0 @@ },

@@ -25,3 +25,3 @@ "use strict";

function scalarFieldToGql(fieldDef, identifier) {
const { fieldType, optional, array, arrayOptional, default: _default, } = fieldDef;
const { fieldType, required, array, arrayRequired, default: _default, } = fieldDef;
let field = fieldType;

@@ -39,3 +39,3 @@ if (identifier !== undefined) {

}
if (optional === false) {
if (required === true) {
field += '!';

@@ -45,3 +45,3 @@ }

field = `[${field}]`;
if (arrayOptional === false) {
if (arrayRequired === true) {
field += '!';

@@ -56,8 +56,8 @@ }

function modelFieldToGql(fieldDef) {
const { type, relatedModel, array, valueOptional, arrayOptional, connectionName, } = fieldDef;
const { type, relatedModel, array, connectionName, valueRequired, arrayRequired, } = fieldDef;
let field = relatedModel;
// TODO: once we flip default to nullable, uncomment
// if (valueOptional === false) {
// field += "!";
// }
if (valueRequired === true) {
field += '!';
}
if (array) {

@@ -67,5 +67,5 @@ field = `[${field}]`;

// TODO: once we flip default to nullable, uncomment
// if (arrayOptional === false) {
// field += "!";
// }
if (arrayRequired === true) {
field += '!';
}
field += ` @${type}`;

@@ -112,6 +112,6 @@ // TODO: accept other relationship options e.g. `fields`

if (rule.multiOwner) {
authFields[rule.groupOrOwnerField] = ModelField_1.fields.string().array().optional();
authFields[rule.groupOrOwnerField] = ModelField_1.fields.string().array();
}
else {
authFields[rule.groupOrOwnerField] = ModelField_1.fields.string().optional();
authFields[rule.groupOrOwnerField] = ModelField_1.fields.string();
}

@@ -118,0 +118,0 @@ }

@@ -15,3 +15,3 @@ /**

};
export type Prettify<T> = T extends () => {} ? () => ReturnType<T> : T extends object ? {
export type Prettify<T> = T extends () => any ? () => ReturnType<T> : T extends object ? {
[P in keyof T]: Prettify<T[P]>;

@@ -38,3 +38,3 @@ } : T;

*/
export type ExcludeEmpty<U> = U extends U ? ({} extends U ? never : U) : never;
export type ExcludeEmpty<U> = U extends U ? object extends U ? never : U : never;
export type Expect<T extends true> = T;

@@ -52,3 +52,3 @@ export type ExpectTrue<T extends true> = T;

};
export type ObjectIsNonEmpty<T extends {}> = keyof T extends never ? false : true;
export type ObjectIsNonEmpty<T extends object> = keyof T extends never ? false : true;
export {};
{
"name": "@aws-amplify/amplify-api-next-alpha",
"version": "0.3.2",
"version": "0.4.0",
"license": "Apache-2.0",

@@ -14,4 +14,4 @@ "repository": {

"clean": "rimraf lib-esm tsconfig.tsbuildinfo",
"test": "jest __tests__",
"lint": "eslint \"**/*.ts*\""
"test": "jest",
"lint": "eslint ."
},

@@ -18,0 +18,0 @@ "dependencies": {

@@ -10,3 +10,3 @@ ## amplify-api-next

defineData,
} from "@aws-amplify/amplify-api-next-alpha";
} from '@aws-amplify/amplify-api-next-alpha';

@@ -17,3 +17,3 @@ const schema = a.schema({

title: a.string(),
comments: a.hasMany("Comment"),
comments: a.hasMany('Comment'),
}),

@@ -23,3 +23,3 @@ Comment: a.model({

content: a.string(),
post: a.belongsTo("Post"),
post: a.belongsTo('Post'),
}),

@@ -26,0 +26,0 @@ });

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc