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

@accounts/graphql-api

Package Overview
Dependencies
Maintainers
5
Versions
102
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@accounts/graphql-api - npm Package Compare versions

Comparing version 0.30.0-alpha.1 to 0.30.0

src/modules/accounts/resolvers/user.ts

120

lib/models.d.ts
import { GraphQLResolveInfo } from 'graphql';
export declare type Maybe<T> = T | null;
export declare type Exact<T extends {
[key: string]: unknown;
[key: string]: any;
}> = {

@@ -21,6 +21,2 @@ [K in keyof T]: T[K];

};
export declare type AssociateParamsInput = {
_?: Maybe<Scalars['String']>;
};
export declare type AssociationResult = OtpAssociationResult;
export declare type AuthenticateParamsInput = {

@@ -34,11 +30,2 @@ access_token?: Maybe<Scalars['String']>;

};
export declare type AuthenticationResult = LoginResult | MultiFactorResult;
export declare type Authenticator = {
__typename?: 'Authenticator';
id?: Maybe<Scalars['ID']>;
type?: Maybe<Scalars['String']>;
active?: Maybe<Scalars['Boolean']>;
activatedAt?: Maybe<Scalars['String']>;
};
export declare type ChallengeResult = DefaultChallengeResult;
export declare type CreateUserInput = {

@@ -54,7 +41,2 @@ username?: Maybe<Scalars['String']>;

};
export declare type DefaultChallengeResult = {
__typename?: 'DefaultChallengeResult';
mfaToken?: Maybe<Scalars['String']>;
authenticatorId?: Maybe<Scalars['String']>;
};
export declare type EmailRecord = {

@@ -82,6 +64,2 @@ __typename?: 'EmailRecord';

};
export declare type MultiFactorResult = {
__typename?: 'MultiFactorResult';
mfaToken: Scalars['String'];
};
export declare type Mutation = {

@@ -98,9 +76,6 @@ __typename?: 'Mutation';

twoFactorUnset?: Maybe<Scalars['Boolean']>;
challenge?: Maybe<ChallengeResult>;
associate?: Maybe<AssociationResult>;
associateByMfaToken?: Maybe<AssociationResult>;
impersonate?: Maybe<ImpersonateReturn>;
refreshTokens?: Maybe<LoginResult>;
logout?: Maybe<Scalars['Boolean']>;
authenticate?: Maybe<AuthenticationResult>;
authenticate?: Maybe<LoginResult>;
verifyAuthentication?: Maybe<Scalars['Boolean']>;

@@ -138,15 +113,2 @@ };

};
export declare type MutationChallengeArgs = {
mfaToken: Scalars['String'];
authenticatorId: Scalars['String'];
};
export declare type MutationAssociateArgs = {
type: Scalars['String'];
params?: Maybe<AssociateParamsInput>;
};
export declare type MutationAssociateByMfaTokenArgs = {
mfaToken: Scalars['String'];
type: Scalars['String'];
params?: Maybe<AssociateParamsInput>;
};
export declare type MutationImpersonateArgs = {

@@ -168,17 +130,7 @@ accessToken: Scalars['String'];

};
export declare type OtpAssociationResult = {
__typename?: 'OTPAssociationResult';
mfaToken?: Maybe<Scalars['String']>;
authenticatorId?: Maybe<Scalars['String']>;
};
export declare type Query = {
__typename?: 'Query';
twoFactorSecret?: Maybe<TwoFactorSecretKey>;
authenticators?: Maybe<Array<Maybe<Authenticator>>>;
authenticatorsByMfaToken?: Maybe<Array<Maybe<Authenticator>>>;
getUser?: Maybe<User>;
};
export declare type QueryAuthenticatorsByMfaTokenArgs = {
mfaToken: Scalars['String'];
};
export declare type Tokens = {

@@ -249,7 +201,6 @@ __typename?: 'Tokens';

String: ResolverTypeWrapper<Scalars['String']>;
Authenticator: ResolverTypeWrapper<Authenticator>;
User: ResolverTypeWrapper<User>;
ID: ResolverTypeWrapper<Scalars['ID']>;
EmailRecord: ResolverTypeWrapper<EmailRecord>;
Boolean: ResolverTypeWrapper<Scalars['Boolean']>;
User: ResolverTypeWrapper<User>;
EmailRecord: ResolverTypeWrapper<EmailRecord>;
Mutation: ResolverTypeWrapper<{}>;

@@ -261,7 +212,2 @@ CreateUserInput: CreateUserInput;

TwoFactorSecretKeyInput: TwoFactorSecretKeyInput;
ChallengeResult: ResolversTypes['DefaultChallengeResult'];
DefaultChallengeResult: ResolverTypeWrapper<DefaultChallengeResult>;
AssociateParamsInput: AssociateParamsInput;
AssociationResult: ResolversTypes['OTPAssociationResult'];
OTPAssociationResult: ResolverTypeWrapper<OtpAssociationResult>;
ImpersonationUserIdentityInput: ImpersonationUserIdentityInput;

@@ -271,4 +217,2 @@ ImpersonateReturn: ResolverTypeWrapper<ImpersonateReturn>;

UserInput: UserInput;
AuthenticationResult: ResolversTypes['LoginResult'] | ResolversTypes['MultiFactorResult'];
MultiFactorResult: ResolverTypeWrapper<MultiFactorResult>;
};

@@ -280,7 +224,6 @@ /** Mapping between all available schema types and the resolvers parents */

String: Scalars['String'];
Authenticator: Authenticator;
User: User;
ID: Scalars['ID'];
EmailRecord: EmailRecord;
Boolean: Scalars['Boolean'];
User: User;
EmailRecord: EmailRecord;
Mutation: {};

@@ -292,7 +235,2 @@ CreateUserInput: CreateUserInput;

TwoFactorSecretKeyInput: TwoFactorSecretKeyInput;
ChallengeResult: ResolversParentTypes['DefaultChallengeResult'];
DefaultChallengeResult: DefaultChallengeResult;
AssociateParamsInput: AssociateParamsInput;
AssociationResult: ResolversParentTypes['OTPAssociationResult'];
OTPAssociationResult: OtpAssociationResult;
ImpersonationUserIdentityInput: ImpersonationUserIdentityInput;

@@ -302,23 +240,5 @@ ImpersonateReturn: ImpersonateReturn;

UserInput: UserInput;
AuthenticationResult: ResolversParentTypes['LoginResult'] | ResolversParentTypes['MultiFactorResult'];
MultiFactorResult: MultiFactorResult;
};
export declare type AuthDirectiveArgs = {};
export declare type AuthDirectiveResolver<Result, Parent, ContextType = any, Args = AuthDirectiveArgs> = DirectiveResolverFn<Result, Parent, ContextType, Args>;
export declare type AssociationResultResolvers<ContextType = any, ParentType extends ResolversParentTypes['AssociationResult'] = ResolversParentTypes['AssociationResult']> = {
__resolveType: TypeResolveFn<'OTPAssociationResult', ParentType, ContextType>;
};
export declare type AuthenticationResultResolvers<ContextType = any, ParentType extends ResolversParentTypes['AuthenticationResult'] = ResolversParentTypes['AuthenticationResult']> = {
__resolveType: TypeResolveFn<'LoginResult' | 'MultiFactorResult', ParentType, ContextType>;
};
export declare type AuthenticatorResolvers<ContextType = any, ParentType extends ResolversParentTypes['Authenticator'] = ResolversParentTypes['Authenticator']> = {
id?: Resolver<Maybe<ResolversTypes['ID']>, ParentType, ContextType>;
type?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
active?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
activatedAt?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
__isTypeOf?: IsTypeOfResolverFn<ParentType>;
};
export declare type ChallengeResultResolvers<ContextType = any, ParentType extends ResolversParentTypes['ChallengeResult'] = ResolversParentTypes['ChallengeResult']> = {
__resolveType: TypeResolveFn<'DefaultChallengeResult', ParentType, ContextType>;
};
export declare type CreateUserResultResolvers<ContextType = any, ParentType extends ResolversParentTypes['CreateUserResult'] = ResolversParentTypes['CreateUserResult']> = {

@@ -329,7 +249,2 @@ userId?: Resolver<Maybe<ResolversTypes['ID']>, ParentType, ContextType>;

};
export declare type DefaultChallengeResultResolvers<ContextType = any, ParentType extends ResolversParentTypes['DefaultChallengeResult'] = ResolversParentTypes['DefaultChallengeResult']> = {
mfaToken?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
authenticatorId?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
__isTypeOf?: IsTypeOfResolverFn<ParentType>;
};
export declare type EmailRecordResolvers<ContextType = any, ParentType extends ResolversParentTypes['EmailRecord'] = ResolversParentTypes['EmailRecord']> = {

@@ -352,6 +267,2 @@ address?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;

};
export declare type MultiFactorResultResolvers<ContextType = any, ParentType extends ResolversParentTypes['MultiFactorResult'] = ResolversParentTypes['MultiFactorResult']> = {
mfaToken?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
__isTypeOf?: IsTypeOfResolverFn<ParentType>;
};
export declare type MutationResolvers<ContextType = any, ParentType extends ResolversParentTypes['Mutation'] = ResolversParentTypes['Mutation']> = {

@@ -367,20 +278,10 @@ createUser?: Resolver<Maybe<ResolversTypes['CreateUserResult']>, ParentType, ContextType, RequireFields<MutationCreateUserArgs, 'user'>>;

twoFactorUnset?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType, RequireFields<MutationTwoFactorUnsetArgs, 'code'>>;
challenge?: Resolver<Maybe<ResolversTypes['ChallengeResult']>, ParentType, ContextType, RequireFields<MutationChallengeArgs, 'mfaToken' | 'authenticatorId'>>;
associate?: Resolver<Maybe<ResolversTypes['AssociationResult']>, ParentType, ContextType, RequireFields<MutationAssociateArgs, 'type'>>;
associateByMfaToken?: Resolver<Maybe<ResolversTypes['AssociationResult']>, ParentType, ContextType, RequireFields<MutationAssociateByMfaTokenArgs, 'mfaToken' | 'type'>>;
impersonate?: Resolver<Maybe<ResolversTypes['ImpersonateReturn']>, ParentType, ContextType, RequireFields<MutationImpersonateArgs, 'accessToken' | 'impersonated'>>;
refreshTokens?: Resolver<Maybe<ResolversTypes['LoginResult']>, ParentType, ContextType, RequireFields<MutationRefreshTokensArgs, 'accessToken' | 'refreshToken'>>;
logout?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
authenticate?: Resolver<Maybe<ResolversTypes['AuthenticationResult']>, ParentType, ContextType, RequireFields<MutationAuthenticateArgs, 'serviceName' | 'params'>>;
authenticate?: Resolver<Maybe<ResolversTypes['LoginResult']>, ParentType, ContextType, RequireFields<MutationAuthenticateArgs, 'serviceName' | 'params'>>;
verifyAuthentication?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType, RequireFields<MutationVerifyAuthenticationArgs, 'serviceName' | 'params'>>;
};
export declare type OtpAssociationResultResolvers<ContextType = any, ParentType extends ResolversParentTypes['OTPAssociationResult'] = ResolversParentTypes['OTPAssociationResult']> = {
mfaToken?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
authenticatorId?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
__isTypeOf?: IsTypeOfResolverFn<ParentType>;
};
export declare type QueryResolvers<ContextType = any, ParentType extends ResolversParentTypes['Query'] = ResolversParentTypes['Query']> = {
twoFactorSecret?: Resolver<Maybe<ResolversTypes['TwoFactorSecretKey']>, ParentType, ContextType>;
authenticators?: Resolver<Maybe<Array<Maybe<ResolversTypes['Authenticator']>>>, ParentType, ContextType>;
authenticatorsByMfaToken?: Resolver<Maybe<Array<Maybe<ResolversTypes['Authenticator']>>>, ParentType, ContextType, RequireFields<QueryAuthenticatorsByMfaTokenArgs, 'mfaToken'>>;
getUser?: Resolver<Maybe<ResolversTypes['User']>, ParentType, ContextType>;

@@ -411,14 +312,7 @@ };

export declare type Resolvers<ContextType = any> = {
AssociationResult?: AssociationResultResolvers<ContextType>;
AuthenticationResult?: AuthenticationResultResolvers<ContextType>;
Authenticator?: AuthenticatorResolvers<ContextType>;
ChallengeResult?: ChallengeResultResolvers<ContextType>;
CreateUserResult?: CreateUserResultResolvers<ContextType>;
DefaultChallengeResult?: DefaultChallengeResultResolvers<ContextType>;
EmailRecord?: EmailRecordResolvers<ContextType>;
ImpersonateReturn?: ImpersonateReturnResolvers<ContextType>;
LoginResult?: LoginResultResolvers<ContextType>;
MultiFactorResult?: MultiFactorResultResolvers<ContextType>;
Mutation?: MutationResolvers<ContextType>;
OTPAssociationResult?: OtpAssociationResultResolvers<ContextType>;
Query?: QueryResolvers<ContextType>;

@@ -425,0 +319,0 @@ Tokens?: TokensResolvers<ContextType>;

@@ -16,4 +16,2 @@ import { GraphQLModule } from '@graphql-modules/core';

}
export declare const AccountsPasswordModule: GraphQLModule<AccountsPasswordModuleConfig, AccountsRequest, any, Partial<{
[key: string]: import("graphql").GraphQLScalarType | import("graphql-tools").IEnumResolver | import("graphql-tools").IResolverOptions<any, any, any> | (() => any) | Partial<import("graphql-tools").IResolverObject<any, any, any>>;
}>>;
export declare const AccountsPasswordModule: GraphQLModule<AccountsPasswordModuleConfig, AccountsRequest>;

@@ -151,8 +151,26 @@ "use strict";

return tslib_1.__awaiter(void 0, void 0, void 0, function () {
var accountsServer, accountsPassword, error_2;
return tslib_1.__generator(this, function (_c) {
switch (_c.label) {
case 0: return [4 /*yield*/, injector.get(password_1.AccountsPassword).sendResetPasswordEmail(email)];
case 0:
accountsServer = injector.get(server_1.AccountsServer);
accountsPassword = injector.get(password_1.AccountsPassword);
_c.label = 1;
case 1:
_c.trys.push([1, 3, , 4]);
return [4 /*yield*/, accountsPassword.sendResetPasswordEmail(email)];
case 2:
_c.sent();
return [2 /*return*/, null];
return [3 /*break*/, 4];
case 3:
error_2 = _c.sent();
// If ambiguousErrorMessages is true,
// to prevent user enumeration we fail silently in case there is no user attached to this email
if (accountsServer.options.ambiguousErrorMessages &&
error_2 instanceof server_1.AccountsJsError &&
error_2.code === password_1.SendResetPasswordEmailErrors.UserNotFound) {
return [2 /*return*/, null];
}
throw error_2;
case 4: return [2 /*return*/, null];
}

@@ -180,8 +198,26 @@ });

return tslib_1.__awaiter(void 0, void 0, void 0, function () {
var accountsServer, accountsPassword, error_3;
return tslib_1.__generator(this, function (_c) {
switch (_c.label) {
case 0: return [4 /*yield*/, injector.get(password_1.AccountsPassword).sendVerificationEmail(email)];
case 0:
accountsServer = injector.get(server_1.AccountsServer);
accountsPassword = injector.get(password_1.AccountsPassword);
_c.label = 1;
case 1:
_c.trys.push([1, 3, , 4]);
return [4 /*yield*/, accountsPassword.sendVerificationEmail(email)];
case 2:
_c.sent();
return [2 /*return*/, null];
return [3 /*break*/, 4];
case 3:
error_3 = _c.sent();
// If ambiguousErrorMessages is true,
// to prevent user enumeration we fail silently in case there is no user attached to this email
if (accountsServer.options.ambiguousErrorMessages &&
error_3 instanceof server_1.AccountsJsError &&
error_3.code === password_1.SendVerificationEmailErrors.UserNotFound) {
return [2 /*return*/, null];
}
throw error_3;
case 4: return [2 /*return*/, null];
}

@@ -188,0 +224,0 @@ });

@@ -14,5 +14,4 @@ "use strict";

var mutation_2 = require("./resolvers/mutation");
var resolvers_1 = require("./resolvers");
var user_1 = require("./resolvers/user");
var accounts_password_1 = require("../accounts-password");
var accounts_mfa_1 = require("../accounts-mfa");
var authenticated_directive_1 = require("../../utils/authenticated-directive");

@@ -37,3 +36,7 @@ var utils_1 = require("../../utils");

var config = _a.config;
return (tslib_1.__assign((_b = {}, _b[config.rootQueryName || 'Query'] = query_2.Query, _b[config.rootMutationName || 'Mutation'] = mutation_2.Mutation, _b), resolvers_1.resolvers));
return (_b = {},
_b[config.rootQueryName || 'Query'] = query_2.Query,
_b[config.rootMutationName || 'Mutation'] = mutation_2.Mutation,
_b.User = user_1.User,
_b);
},

@@ -47,10 +50,6 @@ // If necessary, import AccountsPasswordModule together with this module

})
], (config.accountsServer.getService('password')
], (config.accountsServer.getServices().password
? [
accounts_password_1.AccountsPasswordModule.forRoot(tslib_1.__assign({ accountsPassword: config.accountsServer.getService('password') }, config)),
accounts_password_1.AccountsPasswordModule.forRoot(tslib_1.__assign({ accountsPassword: config.accountsServer.getServices().password }, config)),
]
: []), (config.accountsServer.getService('mfa')
? [
accounts_mfa_1.AccountsMfaModule.forRoot(tslib_1.__assign({ accountsMfa: config.accountsServer.getService('mfa') }, config)),
]
: []));

@@ -57,0 +56,0 @@ },

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

var graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
exports.default = (function (config) { return graphql_tag_1.default(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["\n ", " type ", " {\n impersonate(accessToken: String!, impersonated: ImpersonationUserIdentityInput!): ImpersonateReturn\n refreshTokens(accessToken: String!, refreshToken: String!): LoginResult\n logout: Boolean\n\n # Example: Login with password\n # authenticate(serviceName: \"password\", params: {password: \"<pw>\", user: {email: \"<email>\"}})\n authenticate(serviceName: String!, params: AuthenticateParamsInput!): AuthenticationResult\n verifyAuthentication(serviceName: String!, params: AuthenticateParamsInput!): Boolean\n }\n"], ["\n ", " type ", " {\n impersonate(accessToken: String!, impersonated: ImpersonationUserIdentityInput!): ImpersonateReturn\n refreshTokens(accessToken: String!, refreshToken: String!): LoginResult\n logout: Boolean\n\n # Example: Login with password\n # authenticate(serviceName: \"password\", params: {password: \"<pw>\", user: {email: \"<email>\"}})\n authenticate(serviceName: String!, params: AuthenticateParamsInput!): AuthenticationResult\n verifyAuthentication(serviceName: String!, params: AuthenticateParamsInput!): Boolean\n }\n"])), config.extendTypeDefs ? 'extend' : '', config.rootMutationName || 'Mutation'); });
exports.default = (function (config) { return graphql_tag_1.default(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["\n ", " type ", " {\n impersonate(accessToken: String!, impersonated: ImpersonationUserIdentityInput!): ImpersonateReturn\n refreshTokens(accessToken: String!, refreshToken: String!): LoginResult\n logout: Boolean\n\n # Example: Login with password\n # authenticate(serviceName: \"password\", params: {password: \"<pw>\", user: {email: \"<email>\"}})\n authenticate(serviceName: String!, params: AuthenticateParamsInput!): LoginResult\n verifyAuthentication(serviceName: String!, params: AuthenticateParamsInput!): Boolean\n }\n"], ["\n ", " type ", " {\n impersonate(accessToken: String!, impersonated: ImpersonationUserIdentityInput!): ImpersonateReturn\n refreshTokens(accessToken: String!, refreshToken: String!): LoginResult\n logout: Boolean\n\n # Example: Login with password\n # authenticate(serviceName: \"password\", params: {password: \"<pw>\", user: {email: \"<email>\"}})\n authenticate(serviceName: String!, params: AuthenticateParamsInput!): LoginResult\n verifyAuthentication(serviceName: String!, params: AuthenticateParamsInput!): Boolean\n }\n"])), config.extendTypeDefs ? 'extend' : '', config.rootMutationName || 'Mutation'); });
var templateObject_1;
//# sourceMappingURL=mutation.js.map

@@ -5,4 +5,2 @@ import { GraphQLModule } from '@graphql-modules/core';

}
export declare const CoreAccountsModule: GraphQLModule<CoreAccountsModuleConfig, any, any, Partial<{
[key: string]: import("graphql").GraphQLScalarType | import("graphql-tools").IEnumResolver | import("graphql-tools").IResolverOptions<any, any, any> | (() => any) | Partial<import("graphql-tools").IResolverObject<any, any, any>>;
}>>;
export declare const CoreAccountsModule: GraphQLModule<CoreAccountsModuleConfig>;

@@ -7,5 +7,5 @@ "use strict";

var userAsInterface = _a.userAsInterface;
return graphql_tag_1.default(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["\n ", " User {\n id: ID!\n emails: [EmailRecord!]\n username: String\n }\n\n type EmailRecord {\n address: String\n verified: Boolean\n }\n \n type Tokens {\n refreshToken: String\n accessToken: String\n }\n\n type LoginResult {\n sessionId: String\n tokens: Tokens\n user: User\n }\n\n type MultiFactorResult {\n mfaToken: String!\n }\n\n union AuthenticationResult = LoginResult | MultiFactorResult\n"], ["\n ", " User {\n id: ID!\n emails: [EmailRecord!]\n username: String\n }\n\n type EmailRecord {\n address: String\n verified: Boolean\n }\n \n type Tokens {\n refreshToken: String\n accessToken: String\n }\n\n type LoginResult {\n sessionId: String\n tokens: Tokens\n user: User\n }\n\n type MultiFactorResult {\n mfaToken: String!\n }\n\n union AuthenticationResult = LoginResult | MultiFactorResult\n"])), userAsInterface ? 'interface' : 'type');
return graphql_tag_1.default(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["\n ", " User {\n id: ID!\n emails: [EmailRecord!]\n username: String\n }\n\n type EmailRecord {\n address: String\n verified: Boolean\n }\n \n type Tokens {\n refreshToken: String\n accessToken: String\n }\n\n type LoginResult {\n sessionId: String\n tokens: Tokens\n user: User\n }\n"], ["\n ", " User {\n id: ID!\n emails: [EmailRecord!]\n username: String\n }\n\n type EmailRecord {\n address: String\n verified: Boolean\n }\n \n type Tokens {\n refreshToken: String\n accessToken: String\n }\n\n type LoginResult {\n sessionId: String\n tokens: Tokens\n user: User\n }\n"])), userAsInterface ? 'interface' : 'type');
});
var templateObject_1;
//# sourceMappingURL=schema.js.map
export * from './accounts';
export * from './accounts-password';
export * from './accounts-mfa';

@@ -6,3 +6,2 @@ "use strict";

tslib_1.__exportStar(require("./accounts-password"), exports);
tslib_1.__exportStar(require("./accounts-mfa"), exports);
//# sourceMappingURL=index.js.map

@@ -6,5 +6,7 @@ "use strict";

accountsServer: {
getService: function () { return ({}); },
getServices: function () { return ({
password: {},
}); },
},
}).typeDefs;
//# sourceMappingURL=schema.js.map

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

import { SchemaDirectiveVisitor } from 'graphql-tools';
import { SchemaDirectiveVisitor } from '@graphql-tools/utils';
export declare class AuthenticatedDirective extends SchemaDirectiveVisitor {

@@ -3,0 +3,0 @@ visitFieldDefinition(field: any): void;

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

var authenticated_resolver_1 = require("./authenticated-resolver");
var graphql_tools_1 = require("graphql-tools");
var utils_1 = require("@graphql-tools/utils");
var AuthenticatedDirective = /** @class */ (function (_super) {

@@ -26,4 +26,4 @@ tslib_1.__extends(AuthenticatedDirective, _super);

return AuthenticatedDirective;
}(graphql_tools_1.SchemaDirectiveVisitor));
}(utils_1.SchemaDirectiveVisitor));
exports.AuthenticatedDirective = AuthenticatedDirective;
//# sourceMappingURL=authenticated-directive.js.map
{
"name": "@accounts/graphql-api",
"version": "0.30.0-alpha.1",
"version": "0.30.0",
"description": "Server side GraphQL transport for accounts",

@@ -36,38 +36,35 @@ "main": "lib/index.js",

"peerDependencies": {
"@accounts/mfa": "^0.29.0",
"@accounts/password": "^0.29.0",
"@accounts/server": "^0.29.0",
"@accounts/types": "^0.29.0",
"@accounts/password": "^0.28.0",
"@accounts/server": "^0.28.0",
"@accounts/types": "^0.28.0",
"@graphql-modules/core": "0.7.17",
"graphql-tag": "^2.10.0",
"graphql-tools": "^5.0.0"
"graphql-tag": "^2.10.0"
},
"dependencies": {
"@graphql-tools/merge": "6.0.16",
"@graphql-tools/merge": "6.2.5",
"@graphql-tools/utils": "7.0.2",
"request-ip": "2.1.3",
"tslib": "2.0.1"
"tslib": "2.0.0"
},
"devDependencies": {
"@accounts/mfa": "^0.30.0-alpha.1",
"@accounts/password": "^0.30.0-alpha.1",
"@accounts/server": "^0.30.0-alpha.1",
"@accounts/types": "^0.30.0-alpha.1",
"@graphql-codegen/add": "1.17.7",
"@graphql-codegen/cli": "1.17.7",
"@graphql-codegen/introspection": "1.17.7",
"@graphql-codegen/typescript": "1.17.7",
"@graphql-codegen/typescript-operations": "1.17.7",
"@graphql-codegen/typescript-resolvers": "1.17.7",
"@graphql-codegen/typescript-type-graphql": "1.17.7",
"@accounts/password": "^0.30.0",
"@accounts/server": "^0.30.0",
"@accounts/types": "^0.30.0",
"@graphql-codegen/add": "1.17.4",
"@graphql-codegen/cli": "1.17.4",
"@graphql-codegen/introspection": "1.17.4",
"@graphql-codegen/typescript": "1.17.4",
"@graphql-codegen/typescript-operations": "1.17.4",
"@graphql-codegen/typescript-resolvers": "1.17.4",
"@graphql-codegen/typescript-type-graphql": "1.17.4",
"@graphql-modules/core": "0.7.17",
"@types/jest": "26.0.9",
"@types/jest": "25.2.3",
"@types/request-ip": "0.0.35",
"concurrently": "5.3.0",
"graphql": "14.7.0",
"graphql-tools": "5.0.0",
"jest": "26.3.0",
"lodash": "4.17.20",
"ts-node": "8.10.2"
"concurrently": "5.2.0",
"graphql": "14.6.0",
"jest": "26.6.3",
"ts-jest": "26.4.4",
"ts-node": "8.10.1"
},
"gitHead": "eb9750193707aecb771b63d29540a8b6c316ebe0"
"gitHead": "a883d3b90c481e9c73a7655ef2aadac092fc6b0e"
}

@@ -62,3 +62,3 @@ # @accounts/graphql-api

```js
import { makeExecutableSchema } from 'graphql-tools';
import { makeExecutableSchema } from '@graphql-tools/schema';
import { mergeGraphQLSchemas, mergeResolvers } from '@graphql-tools/epoxy';

@@ -131,3 +131,3 @@

Mutation: {
updateUserProfile: authenticated(AccountsServer, (rootValue, args, context) => {
updateUserProfile: authenticated((rootValue, args, context) => {
// Write your resolver here

@@ -134,0 +134,0 @@ // context.user - the current authenticated user!

/* eslint-disable */
import { GraphQLResolveInfo } from 'graphql';
export type Maybe<T> = T | null;
export type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] };
export type Exact<T extends { [key: string]: any }> = { [K in keyof T]: T[K] };
export type RequireFields<T, K extends keyof T> = { [X in Exclude<keyof T, K>]?: T[X] } & { [P in K]-?: NonNullable<T[P]> };

@@ -17,8 +17,2 @@

export type AssociateParamsInput = {
_?: Maybe<Scalars['String']>;
};
export type AssociationResult = OtpAssociationResult;
export type AuthenticateParamsInput = {

@@ -33,14 +27,2 @@ access_token?: Maybe<Scalars['String']>;

export type AuthenticationResult = LoginResult | MultiFactorResult;
export type Authenticator = {
__typename?: 'Authenticator';
id?: Maybe<Scalars['ID']>;
type?: Maybe<Scalars['String']>;
active?: Maybe<Scalars['Boolean']>;
activatedAt?: Maybe<Scalars['String']>;
};
export type ChallengeResult = DefaultChallengeResult;
export type CreateUserInput = {

@@ -58,8 +40,2 @@ username?: Maybe<Scalars['String']>;

export type DefaultChallengeResult = {
__typename?: 'DefaultChallengeResult';
mfaToken?: Maybe<Scalars['String']>;
authenticatorId?: Maybe<Scalars['String']>;
};
export type EmailRecord = {

@@ -91,7 +67,2 @@ __typename?: 'EmailRecord';

export type MultiFactorResult = {
__typename?: 'MultiFactorResult';
mfaToken: Scalars['String'];
};
export type Mutation = {

@@ -108,9 +79,6 @@ __typename?: 'Mutation';

twoFactorUnset?: Maybe<Scalars['Boolean']>;
challenge?: Maybe<ChallengeResult>;
associate?: Maybe<AssociationResult>;
associateByMfaToken?: Maybe<AssociationResult>;
impersonate?: Maybe<ImpersonateReturn>;
refreshTokens?: Maybe<LoginResult>;
logout?: Maybe<Scalars['Boolean']>;
authenticate?: Maybe<AuthenticationResult>;
authenticate?: Maybe<LoginResult>;
verifyAuthentication?: Maybe<Scalars['Boolean']>;

@@ -168,21 +136,2 @@ };

export type MutationChallengeArgs = {
mfaToken: Scalars['String'];
authenticatorId: Scalars['String'];
};
export type MutationAssociateArgs = {
type: Scalars['String'];
params?: Maybe<AssociateParamsInput>;
};
export type MutationAssociateByMfaTokenArgs = {
mfaToken: Scalars['String'];
type: Scalars['String'];
params?: Maybe<AssociateParamsInput>;
};
export type MutationImpersonateArgs = {

@@ -211,21 +160,8 @@ accessToken: Scalars['String'];

export type OtpAssociationResult = {
__typename?: 'OTPAssociationResult';
mfaToken?: Maybe<Scalars['String']>;
authenticatorId?: Maybe<Scalars['String']>;
};
export type Query = {
__typename?: 'Query';
twoFactorSecret?: Maybe<TwoFactorSecretKey>;
authenticators?: Maybe<Array<Maybe<Authenticator>>>;
authenticatorsByMfaToken?: Maybe<Array<Maybe<Authenticator>>>;
getUser?: Maybe<User>;
};
export type QueryAuthenticatorsByMfaTokenArgs = {
mfaToken: Scalars['String'];
};
export type Tokens = {

@@ -341,7 +277,6 @@ __typename?: 'Tokens';

String: ResolverTypeWrapper<Scalars['String']>;
Authenticator: ResolverTypeWrapper<Authenticator>;
User: ResolverTypeWrapper<User>;
ID: ResolverTypeWrapper<Scalars['ID']>;
EmailRecord: ResolverTypeWrapper<EmailRecord>;
Boolean: ResolverTypeWrapper<Scalars['Boolean']>;
User: ResolverTypeWrapper<User>;
EmailRecord: ResolverTypeWrapper<EmailRecord>;
Mutation: ResolverTypeWrapper<{}>;

@@ -353,7 +288,2 @@ CreateUserInput: CreateUserInput;

TwoFactorSecretKeyInput: TwoFactorSecretKeyInput;
ChallengeResult: ResolversTypes['DefaultChallengeResult'];
DefaultChallengeResult: ResolverTypeWrapper<DefaultChallengeResult>;
AssociateParamsInput: AssociateParamsInput;
AssociationResult: ResolversTypes['OTPAssociationResult'];
OTPAssociationResult: ResolverTypeWrapper<OtpAssociationResult>;
ImpersonationUserIdentityInput: ImpersonationUserIdentityInput;

@@ -363,4 +293,2 @@ ImpersonateReturn: ResolverTypeWrapper<ImpersonateReturn>;

UserInput: UserInput;
AuthenticationResult: ResolversTypes['LoginResult'] | ResolversTypes['MultiFactorResult'];
MultiFactorResult: ResolverTypeWrapper<MultiFactorResult>;
};

@@ -373,7 +301,6 @@

String: Scalars['String'];
Authenticator: Authenticator;
User: User;
ID: Scalars['ID'];
EmailRecord: EmailRecord;
Boolean: Scalars['Boolean'];
User: User;
EmailRecord: EmailRecord;
Mutation: {};

@@ -385,7 +312,2 @@ CreateUserInput: CreateUserInput;

TwoFactorSecretKeyInput: TwoFactorSecretKeyInput;
ChallengeResult: ResolversParentTypes['DefaultChallengeResult'];
DefaultChallengeResult: DefaultChallengeResult;
AssociateParamsInput: AssociateParamsInput;
AssociationResult: ResolversParentTypes['OTPAssociationResult'];
OTPAssociationResult: OtpAssociationResult;
ImpersonationUserIdentityInput: ImpersonationUserIdentityInput;

@@ -395,4 +317,2 @@ ImpersonateReturn: ImpersonateReturn;

UserInput: UserInput;
AuthenticationResult: ResolversParentTypes['LoginResult'] | ResolversParentTypes['MultiFactorResult'];
MultiFactorResult: MultiFactorResult;
};

@@ -404,22 +324,2 @@

export type AssociationResultResolvers<ContextType = any, ParentType extends ResolversParentTypes['AssociationResult'] = ResolversParentTypes['AssociationResult']> = {
__resolveType: TypeResolveFn<'OTPAssociationResult', ParentType, ContextType>;
};
export type AuthenticationResultResolvers<ContextType = any, ParentType extends ResolversParentTypes['AuthenticationResult'] = ResolversParentTypes['AuthenticationResult']> = {
__resolveType: TypeResolveFn<'LoginResult' | 'MultiFactorResult', ParentType, ContextType>;
};
export type AuthenticatorResolvers<ContextType = any, ParentType extends ResolversParentTypes['Authenticator'] = ResolversParentTypes['Authenticator']> = {
id?: Resolver<Maybe<ResolversTypes['ID']>, ParentType, ContextType>;
type?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
active?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
activatedAt?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
__isTypeOf?: IsTypeOfResolverFn<ParentType>;
};
export type ChallengeResultResolvers<ContextType = any, ParentType extends ResolversParentTypes['ChallengeResult'] = ResolversParentTypes['ChallengeResult']> = {
__resolveType: TypeResolveFn<'DefaultChallengeResult', ParentType, ContextType>;
};
export type CreateUserResultResolvers<ContextType = any, ParentType extends ResolversParentTypes['CreateUserResult'] = ResolversParentTypes['CreateUserResult']> = {

@@ -431,8 +331,2 @@ userId?: Resolver<Maybe<ResolversTypes['ID']>, ParentType, ContextType>;

export type DefaultChallengeResultResolvers<ContextType = any, ParentType extends ResolversParentTypes['DefaultChallengeResult'] = ResolversParentTypes['DefaultChallengeResult']> = {
mfaToken?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
authenticatorId?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
__isTypeOf?: IsTypeOfResolverFn<ParentType>;
};
export type EmailRecordResolvers<ContextType = any, ParentType extends ResolversParentTypes['EmailRecord'] = ResolversParentTypes['EmailRecord']> = {

@@ -458,7 +352,2 @@ address?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;

export type MultiFactorResultResolvers<ContextType = any, ParentType extends ResolversParentTypes['MultiFactorResult'] = ResolversParentTypes['MultiFactorResult']> = {
mfaToken?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
__isTypeOf?: IsTypeOfResolverFn<ParentType>;
};
export type MutationResolvers<ContextType = any, ParentType extends ResolversParentTypes['Mutation'] = ResolversParentTypes['Mutation']> = {

@@ -474,22 +363,11 @@ createUser?: Resolver<Maybe<ResolversTypes['CreateUserResult']>, ParentType, ContextType, RequireFields<MutationCreateUserArgs, 'user'>>;

twoFactorUnset?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType, RequireFields<MutationTwoFactorUnsetArgs, 'code'>>;
challenge?: Resolver<Maybe<ResolversTypes['ChallengeResult']>, ParentType, ContextType, RequireFields<MutationChallengeArgs, 'mfaToken' | 'authenticatorId'>>;
associate?: Resolver<Maybe<ResolversTypes['AssociationResult']>, ParentType, ContextType, RequireFields<MutationAssociateArgs, 'type'>>;
associateByMfaToken?: Resolver<Maybe<ResolversTypes['AssociationResult']>, ParentType, ContextType, RequireFields<MutationAssociateByMfaTokenArgs, 'mfaToken' | 'type'>>;
impersonate?: Resolver<Maybe<ResolversTypes['ImpersonateReturn']>, ParentType, ContextType, RequireFields<MutationImpersonateArgs, 'accessToken' | 'impersonated'>>;
refreshTokens?: Resolver<Maybe<ResolversTypes['LoginResult']>, ParentType, ContextType, RequireFields<MutationRefreshTokensArgs, 'accessToken' | 'refreshToken'>>;
logout?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType>;
authenticate?: Resolver<Maybe<ResolversTypes['AuthenticationResult']>, ParentType, ContextType, RequireFields<MutationAuthenticateArgs, 'serviceName' | 'params'>>;
authenticate?: Resolver<Maybe<ResolversTypes['LoginResult']>, ParentType, ContextType, RequireFields<MutationAuthenticateArgs, 'serviceName' | 'params'>>;
verifyAuthentication?: Resolver<Maybe<ResolversTypes['Boolean']>, ParentType, ContextType, RequireFields<MutationVerifyAuthenticationArgs, 'serviceName' | 'params'>>;
};
export type OtpAssociationResultResolvers<ContextType = any, ParentType extends ResolversParentTypes['OTPAssociationResult'] = ResolversParentTypes['OTPAssociationResult']> = {
mfaToken?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
authenticatorId?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
__isTypeOf?: IsTypeOfResolverFn<ParentType>;
};
export type QueryResolvers<ContextType = any, ParentType extends ResolversParentTypes['Query'] = ResolversParentTypes['Query']> = {
twoFactorSecret?: Resolver<Maybe<ResolversTypes['TwoFactorSecretKey']>, ParentType, ContextType>;
authenticators?: Resolver<Maybe<Array<Maybe<ResolversTypes['Authenticator']>>>, ParentType, ContextType>;
authenticatorsByMfaToken?: Resolver<Maybe<Array<Maybe<ResolversTypes['Authenticator']>>>, ParentType, ContextType, RequireFields<QueryAuthenticatorsByMfaTokenArgs, 'mfaToken'>>;
getUser?: Resolver<Maybe<ResolversTypes['User']>, ParentType, ContextType>;

@@ -524,14 +402,7 @@ };

export type Resolvers<ContextType = any> = {
AssociationResult?: AssociationResultResolvers<ContextType>;
AuthenticationResult?: AuthenticationResultResolvers<ContextType>;
Authenticator?: AuthenticatorResolvers<ContextType>;
ChallengeResult?: ChallengeResultResolvers<ContextType>;
CreateUserResult?: CreateUserResultResolvers<ContextType>;
DefaultChallengeResult?: DefaultChallengeResultResolvers<ContextType>;
EmailRecord?: EmailRecordResolvers<ContextType>;
ImpersonateReturn?: ImpersonateReturnResolvers<ContextType>;
LoginResult?: LoginResultResolvers<ContextType>;
MultiFactorResult?: MultiFactorResultResolvers<ContextType>;
Mutation?: MutationResolvers<ContextType>;
OTPAssociationResult?: OtpAssociationResultResolvers<ContextType>;
Query?: QueryResolvers<ContextType>;

@@ -538,0 +409,0 @@ Tokens?: TokensResolvers<ContextType>;

@@ -25,6 +25,6 @@ import { GraphQLModule } from '@graphql-modules/core';

export const AccountsPasswordModule = new GraphQLModule<
export const AccountsPasswordModule: GraphQLModule<
AccountsPasswordModuleConfig,
AccountsRequest
>({
> = new GraphQLModule<AccountsPasswordModuleConfig, AccountsRequest>({
name: 'accounts-password',

@@ -31,0 +31,0 @@ typeDefs: ({ config }) => [TypesTypeDefs, getQueryTypeDefs(config), getMutationTypeDefs(config)],

import { ModuleContext } from '@graphql-modules/core';
import { CreateUserServicePassword } from '@accounts/types';
import { AccountsPassword, CreateUserErrors } from '@accounts/password';
import {
AccountsPassword,
CreateUserErrors,
SendResetPasswordEmailErrors,
SendVerificationEmailErrors,
} from '@accounts/password';
import { AccountsServer, AccountsJsError } from '@accounts/server';

@@ -96,3 +101,20 @@ import { AccountsModuleContext } from '../../accounts';

sendResetPasswordEmail: async (_, { email }, { injector }) => {
await injector.get(AccountsPassword).sendResetPasswordEmail(email);
const accountsServer = injector.get(AccountsServer);
const accountsPassword = injector.get(AccountsPassword);
try {
await accountsPassword.sendResetPasswordEmail(email);
} catch (error) {
// If ambiguousErrorMessages is true,
// to prevent user enumeration we fail silently in case there is no user attached to this email
if (
accountsServer.options.ambiguousErrorMessages &&
error instanceof AccountsJsError &&
error.code === SendResetPasswordEmailErrors.UserNotFound
) {
return null;
}
throw error;
}
return null;

@@ -105,5 +127,21 @@ },

sendVerificationEmail: async (_, { email }, { injector }) => {
await injector.get(AccountsPassword).sendVerificationEmail(email);
const accountsServer = injector.get(AccountsServer);
const accountsPassword = injector.get(AccountsPassword);
try {
await accountsPassword.sendVerificationEmail(email);
} catch (error) {
// If ambiguousErrorMessages is true,
// to prevent user enumeration we fail silently in case there is no user attached to this email
if (
accountsServer.options.ambiguousErrorMessages &&
error instanceof AccountsJsError &&
error.code === SendVerificationEmailErrors.UserNotFound
) {
return null;
}
throw error;
}
return null;
},
};

@@ -5,4 +5,3 @@ import { GraphQLModule } from '@graphql-modules/core';

import { AccountsServer } from '@accounts/server';
import { AccountsPassword } from '@accounts/password';
import { AccountsMfa } from '@accounts/mfa';
import AccountsPassword from '@accounts/password';
import { IncomingMessage } from 'http';

@@ -15,5 +14,4 @@ import TypesTypeDefs from './schema/types';

import { Mutation } from './resolvers/mutation';
import { resolvers as CustomResolvers } from './resolvers';
import { User as UserResolvers } from './resolvers/user';
import { AccountsPasswordModule } from '../accounts-password';
import { AccountsMfaModule } from '../accounts-mfa';
import { AuthenticatedDirective } from '../../utils/authenticated-directive';

@@ -71,3 +69,3 @@ import { context } from '../../utils';

[config.rootMutationName || 'Mutation']: Mutation,
...CustomResolvers,
User: UserResolvers,
} as any),

@@ -79,6 +77,6 @@ // If necessary, import AccountsPasswordModule together with this module

}),
...(config.accountsServer.getService('password')
...(config.accountsServer.getServices().password
? [
AccountsPasswordModule.forRoot({
accountsPassword: config.accountsServer.getService('password') as AccountsPassword,
accountsPassword: config.accountsServer.getServices().password as AccountsPassword,
...config,

@@ -88,10 +86,2 @@ }),

: []),
...(config.accountsServer.getService('mfa')
? [
AccountsMfaModule.forRoot({
accountsMfa: config.accountsServer.getService('mfa') as AccountsMfa,
...config,
}),
]
: []),
],

@@ -98,0 +88,0 @@ providers: ({ config }) => [

@@ -12,5 +12,5 @@ import gql from 'graphql-tag';

# authenticate(serviceName: "password", params: {password: "<pw>", user: {email: "<email>"}})
authenticate(serviceName: String!, params: AuthenticateParamsInput!): AuthenticationResult
authenticate(serviceName: String!, params: AuthenticateParamsInput!): LoginResult
verifyAuthentication(serviceName: String!, params: AuthenticateParamsInput!): Boolean
}
`;

@@ -8,6 +8,8 @@ import { GraphQLModule } from '@graphql-modules/core';

export const CoreAccountsModule = new GraphQLModule<CoreAccountsModuleConfig>({
typeDefs: ({ config }) => makeSchema(config),
resolvers: {},
imports: [],
});
export const CoreAccountsModule: GraphQLModule<CoreAccountsModuleConfig> = new GraphQLModule<CoreAccountsModuleConfig>(
{
typeDefs: ({ config }) => makeSchema(config),
resolvers: {},
imports: [],
}
);

@@ -26,8 +26,2 @@ import gql from 'graphql-tag';

}
type MultiFactorResult {
mfaToken: String!
}
union AuthenticationResult = LoginResult | MultiFactorResult
`;
export * from './accounts';
export * from './accounts-password';
export * from './accounts-mfa';

@@ -5,4 +5,6 @@ import { AccountsModule } from './modules';

accountsServer: {
getService: () => ({}),
getServices: () => ({
password: {},
}),
} as any,
}).typeDefs;
import { authenticated } from './authenticated-resolver';
import { SchemaDirectiveVisitor } from 'graphql-tools';
import { SchemaDirectiveVisitor } from '@graphql-tools/utils';
export class AuthenticatedDirective extends SchemaDirectiveVisitor {

@@ -4,0 +5,0 @@ public visitFieldDefinition(field: any) {

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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