@quatrain/auth 1.0.0

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.
@@ -0,0 +1,18 @@
1
+ import { AuthParameters, AuthParametersKeys } from './Auth';
2
+ import { User } from '@quatrain/core';
3
+ import { AuthInterface } from './types/AuthInterface';
4
+ export declare abstract class AbstractAuthAdapter implements AuthInterface {
5
+ protected _alias: string;
6
+ protected _params: AuthParameters;
7
+ constructor(params?: AuthParameters);
8
+ setParam(key: AuthParametersKeys, value: any): void;
9
+ getParam(key: AuthParametersKeys): any;
10
+ set alias(alias: string);
11
+ get alias(): string;
12
+ abstract register(user: User): Promise<any>;
13
+ abstract signup(login: string, password: string): Promise<any>;
14
+ abstract signout(user: User): Promise<any>;
15
+ abstract update(user: User, updatable: any): Promise<any>;
16
+ abstract delete(user: User): Promise<any>;
17
+ abstract getAuthToken(token: string): any;
18
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AbstractAuthAdapter = void 0;
4
+ class AbstractAuthAdapter {
5
+ constructor(params = {}) {
6
+ this._alias = '';
7
+ this._params = {};
8
+ this._alias = params.alias || '';
9
+ }
10
+ setParam(key, value) {
11
+ this._params[key] = value;
12
+ }
13
+ getParam(key) {
14
+ return this._params[key];
15
+ }
16
+ set alias(alias) {
17
+ this._alias = alias;
18
+ }
19
+ get alias() {
20
+ return this._alias;
21
+ }
22
+ }
23
+ exports.AbstractAuthAdapter = AbstractAuthAdapter;
package/lib/Auth.d.ts ADDED
@@ -0,0 +1,35 @@
1
+ import { Core } from '@quatrain/core';
2
+ import { AbstractAuthAdapter } from './AbstractAuthAdapter';
3
+ import Middleware from './middlewares/AuthMiddleware';
4
+ export declare enum AuthAction {
5
+ SIGNIN = "signin",
6
+ SIGNUP = "signup",
7
+ SIGNOUT = "signout"
8
+ }
9
+ /**
10
+ * Authentication Parameters acceptable keys
11
+ */
12
+ export type AuthParametersKeys = 'host' | 'alias' | 'middlewares' | 'config' | 'fixtures' | 'debug';
13
+ /**
14
+ * Backend parameters interface
15
+ */
16
+ export interface AuthParameters {
17
+ host?: string;
18
+ alias?: string;
19
+ middlewares?: Middleware[];
20
+ config?: any;
21
+ fixtures?: any;
22
+ debug?: boolean;
23
+ }
24
+ export interface AuthAdapter extends AbstractAuthAdapter {
25
+ }
26
+ export type AuthRegistry<T extends AbstractAuthAdapter> = {
27
+ [x: string]: T;
28
+ };
29
+ export declare class Auth extends Core {
30
+ static defaultProvider: string;
31
+ protected static _providers: AuthRegistry<any>;
32
+ static addProvider(provider: AbstractAuthAdapter, alias: string, setDefault?: boolean): void;
33
+ static getProvider<T extends AbstractAuthAdapter>(alias?: string): T;
34
+ static log(message: any, src?: string): void;
35
+ }
package/lib/Auth.js ADDED
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Auth = exports.AuthAction = void 0;
4
+ const core_1 = require("@quatrain/core");
5
+ var AuthAction;
6
+ (function (AuthAction) {
7
+ AuthAction["SIGNIN"] = "signin";
8
+ AuthAction["SIGNUP"] = "signup";
9
+ AuthAction["SIGNOUT"] = "signout";
10
+ })(AuthAction || (exports.AuthAction = AuthAction = {}));
11
+ class Auth extends core_1.Core {
12
+ static addProvider(provider, alias, setDefault = false) {
13
+ this._providers[alias] = provider;
14
+ if (setDefault) {
15
+ this.defaultProvider = alias;
16
+ }
17
+ }
18
+ static getProvider(alias = this.defaultProvider) {
19
+ if (this._providers[alias]) {
20
+ return this._providers[alias];
21
+ }
22
+ else {
23
+ throw new Error(`Unknown provider alias: '${alias}'`);
24
+ }
25
+ }
26
+ static log(message, src = 'Auth') {
27
+ super.log(message, src);
28
+ }
29
+ }
30
+ exports.Auth = Auth;
31
+ Auth.defaultProvider = '@default';
32
+ Auth._providers = {};
@@ -0,0 +1,2 @@
1
+ export declare class AuthenticationError extends Error {
2
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AuthenticationError = void 0;
4
+ class AuthenticationError extends Error {
5
+ }
6
+ exports.AuthenticationError = AuthenticationError;
package/lib/index.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ import { AbstractAuthAdapter } from './AbstractAuthAdapter';
2
+ import { AuthInterface } from './types/AuthInterface';
3
+ import { AuthenticationError } from './AuthenticationError';
4
+ export { AuthInterface, AbstractAuthAdapter, AuthenticationError };
package/lib/index.js ADDED
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AuthenticationError = exports.AbstractAuthAdapter = void 0;
4
+ const AbstractAuthAdapter_1 = require("./AbstractAuthAdapter");
5
+ Object.defineProperty(exports, "AbstractAuthAdapter", { enumerable: true, get: function () { return AbstractAuthAdapter_1.AbstractAuthAdapter; } });
6
+ const AuthenticationError_1 = require("./AuthenticationError");
7
+ Object.defineProperty(exports, "AuthenticationError", { enumerable: true, get: function () { return AuthenticationError_1.AuthenticationError; } });
File without changes
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1,5 @@
1
+ import { AuthAction } from '../Auth';
2
+ import { User } from '@quatrain/core';
3
+ export default interface AuthMiddleware {
4
+ execute: (user: User, action: AuthAction) => void;
5
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,9 @@
1
+ import { User } from '@quatrain/core';
2
+ export interface AuthInterface {
3
+ register(user: User): Promise<any>;
4
+ signup(login: string, password: string): Promise<any>;
5
+ signout(user: User): Promise<any>;
6
+ update(user: User, updatable: any): Promise<any>;
7
+ delete(user: User): Promise<any>;
8
+ getAuthToken(token: string): any;
9
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/package.json ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "@quatrain/auth",
3
+ "version": "1.0.0",
4
+ "license": "MIT",
5
+ "description": "Auth adapters commons",
6
+ "main": "lib/index.js",
7
+ "types": "lib/index.d.ts",
8
+ "files": [
9
+ "lib/",
10
+ "README.md"
11
+ ],
12
+ "author": "Quatrain Développement SAS <developers@quatrain.com>",
13
+ "peerDependencies": {
14
+ "@quatrain/core": "^1.0.0-beta2"
15
+ },
16
+ "devDependencies": {
17
+ "@faker-js/faker": "^7.6.0",
18
+ "@firebase/rules-unit-testing": "^2.0.7",
19
+ "@tsconfig/recommended": "^1.0.1",
20
+ "@types/jest": "^27.0.3",
21
+ "jest": "^27.4.7",
22
+ "jest-node-exports-resolver": "^1.1.6",
23
+ "jest-serial-runner": "^1.2.1",
24
+ "trace-unhandled": "^2.0.1",
25
+ "ts-jest": "^27.1.2",
26
+ "ts-node": "^10.9.1",
27
+ "typescript": "^5.1.5"
28
+ },
29
+ "scripts": {
30
+ "pretest": "tsc",
31
+ "test": "clear && firebase emulators:exec 'jest -i --verbose --silent=false'",
32
+ "test-ci": "jest --runInBand",
33
+ "build": "tsc --watch",
34
+ "prepush": "tsc",
35
+ "push": "yarn publish --access public"
36
+ }
37
+ }