@siriux/auth 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,7 +1,9 @@
1
1
  export * from './types';
2
2
  export * from './middleware';
3
+ export * from './mock';
3
4
  export { AuthenticationError, AuthMiddleware, createAuthMiddleware } from './middleware/auth';
4
5
  export { UserRole, JwtPayload, AuthenticatedUser, AuthTokens, AuthConfig } from './types';
6
+ export { createMockAuthConfig, defaultMockAuthConfig, isMockMode, createSmartAuthConfig, MockAuthService, MockAuthMiddleware, createMockAuthMiddleware } from './mock';
5
7
  export declare const SIRIUX_AUTH_VERSION = "1.0.0";
6
8
  import { AuthConfig } from './types';
7
9
  export declare const createDefaultAuthConfig: (overrides: Partial<AuthConfig>) => AuthConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAG7B,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9F,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG1F,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAG3C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,eAAO,MAAM,uBAAuB,GAAI,WAAW,OAAO,CAAC,UAAU,CAAC,KAAG,UAWxE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AAGvB,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9F,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG1F,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,UAAU,EACV,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,QAAQ,CAAC;AAGhB,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAG3C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,eAAO,MAAM,uBAAuB,GAAI,WAAW,OAAO,CAAC,UAAU,CAAC,KAAG,UAWxE,CAAC"}
package/dist/index.js CHANGED
@@ -14,10 +14,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.createDefaultAuthConfig = exports.SIRIUX_AUTH_VERSION = exports.UserRole = exports.createAuthMiddleware = exports.AuthMiddleware = exports.AuthenticationError = void 0;
17
+ exports.createDefaultAuthConfig = exports.SIRIUX_AUTH_VERSION = exports.createMockAuthMiddleware = exports.MockAuthMiddleware = exports.MockAuthService = exports.createSmartAuthConfig = exports.isMockMode = exports.defaultMockAuthConfig = exports.createMockAuthConfig = exports.UserRole = exports.createAuthMiddleware = exports.AuthMiddleware = exports.AuthenticationError = void 0;
18
18
  // Core exports
19
19
  __exportStar(require("./types"), exports);
20
20
  __exportStar(require("./middleware"), exports);
21
+ __exportStar(require("./mock"), exports);
21
22
  // Re-export commonly used classes and functions
22
23
  var auth_1 = require("./middleware/auth");
23
24
  Object.defineProperty(exports, "AuthenticationError", { enumerable: true, get: function () { return auth_1.AuthenticationError; } });
@@ -25,6 +26,15 @@ Object.defineProperty(exports, "AuthMiddleware", { enumerable: true, get: functi
25
26
  Object.defineProperty(exports, "createAuthMiddleware", { enumerable: true, get: function () { return auth_1.createAuthMiddleware; } });
26
27
  var types_1 = require("./types");
27
28
  Object.defineProperty(exports, "UserRole", { enumerable: true, get: function () { return types_1.UserRole; } });
29
+ // Mock exports for development
30
+ var mock_1 = require("./mock");
31
+ Object.defineProperty(exports, "createMockAuthConfig", { enumerable: true, get: function () { return mock_1.createMockAuthConfig; } });
32
+ Object.defineProperty(exports, "defaultMockAuthConfig", { enumerable: true, get: function () { return mock_1.defaultMockAuthConfig; } });
33
+ Object.defineProperty(exports, "isMockMode", { enumerable: true, get: function () { return mock_1.isMockMode; } });
34
+ Object.defineProperty(exports, "createSmartAuthConfig", { enumerable: true, get: function () { return mock_1.createSmartAuthConfig; } });
35
+ Object.defineProperty(exports, "MockAuthService", { enumerable: true, get: function () { return mock_1.MockAuthService; } });
36
+ Object.defineProperty(exports, "MockAuthMiddleware", { enumerable: true, get: function () { return mock_1.MockAuthMiddleware; } });
37
+ Object.defineProperty(exports, "createMockAuthMiddleware", { enumerable: true, get: function () { return mock_1.createMockAuthMiddleware; } });
28
38
  // Version information
29
39
  exports.SIRIUX_AUTH_VERSION = '1.0.0';
30
40
  const createDefaultAuthConfig = (overrides) => {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,eAAe;AACf,0CAAwB;AACxB,+CAA6B;AAE7B,gDAAgD;AAChD,0CAA8F;AAArF,2GAAA,mBAAmB,OAAA;AAAE,sGAAA,cAAc,OAAA;AAAE,4GAAA,oBAAoB,OAAA;AAClE,iCAA0F;AAAjF,iGAAA,QAAQ,OAAA;AAEjB,sBAAsB;AACT,QAAA,mBAAmB,GAAG,OAAO,CAAC;AAKpC,MAAM,uBAAuB,GAAG,CAAC,SAA8B,EAAc,EAAE;IACpF,MAAM,aAAa,GAAe;QAChC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,2BAA2B;QAChE,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,+BAA+B;QACnF,WAAW,EAAE,KAAK;QAClB,aAAa,EAAE,IAAI;QACnB,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,cAAc;KACzB,CAAC;IAEF,OAAO,EAAE,GAAG,aAAa,EAAE,GAAG,SAAS,EAAE,CAAC;AAC5C,CAAC,CAAC;AAXW,QAAA,uBAAuB,2BAWlC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,eAAe;AACf,0CAAwB;AACxB,+CAA6B;AAC7B,yCAAuB;AAEvB,gDAAgD;AAChD,0CAA8F;AAArF,2GAAA,mBAAmB,OAAA;AAAE,sGAAA,cAAc,OAAA;AAAE,4GAAA,oBAAoB,OAAA;AAClE,iCAA0F;AAAjF,iGAAA,QAAQ,OAAA;AAEjB,+BAA+B;AAC/B,+BAQgB;AAPd,4GAAA,oBAAoB,OAAA;AACpB,6GAAA,qBAAqB,OAAA;AACrB,kGAAA,UAAU,OAAA;AACV,6GAAA,qBAAqB,OAAA;AACrB,uGAAA,eAAe,OAAA;AACf,0GAAA,kBAAkB,OAAA;AAClB,gHAAA,wBAAwB,OAAA;AAG1B,sBAAsB;AACT,QAAA,mBAAmB,GAAG,OAAO,CAAC;AAKpC,MAAM,uBAAuB,GAAG,CAAC,SAA8B,EAAc,EAAE;IACpF,MAAM,aAAa,GAAe;QAChC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,2BAA2B;QAChE,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,+BAA+B;QACnF,WAAW,EAAE,KAAK;QAClB,aAAa,EAAE,IAAI;QACnB,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,cAAc;KACzB,CAAC;IAEF,OAAO,EAAE,GAAG,aAAa,EAAE,GAAG,SAAS,EAAE,CAAC;AAC5C,CAAC,CAAC;AAXW,QAAA,uBAAuB,2BAWlC"}
@@ -1,7 +1,7 @@
1
1
  import { Request, Response, NextFunction } from 'express';
2
2
  import { JwtPayload } from 'jsonwebtoken';
3
3
  import { UserRole, AuthenticatedUser, AuthConfig } from '../types';
4
- export interface AuthenticatedRequest extends Request {
4
+ export interface AuthenticatedRequest extends Omit<Request, 'user'> {
5
5
  user?: JwtPayload;
6
6
  authenticatedUser?: AuthenticatedUser;
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/middleware/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEnE,MAAM,WAAW,oBAAqB,SAAQ,OAAO;IACnD,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IACR,IAAI,EAAE,MAAM;gBAApC,OAAO,EAAE,MAAM,EAAS,IAAI,EAAE,MAAM;CAIjD;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAa;gBAEf,MAAM,EAAE,UAAU;IAQ9B;;OAEG;IACI,SAAS,GAAI,KAAK,oBAAoB,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,KAAG,IAAI,GAAG,QAAQ,CAuDhG;IAEF;;OAEG;IACI,SAAS,GAAI,KAAK,oBAAoB,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,KAAG,IAAI,GAAG,QAAQ,CAShG;IAEF;;OAEG;IACI,QAAQ,GAAI,cAAc,QAAQ,MAC/B,KAAK,oBAAoB,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,KAAG,IAAI,GAAG,QAAQ,CAUtF;IAEF;;OAEG;IACI,YAAY,GAAI,KAAK,oBAAoB,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,UAcjF;IAEF;;OAEG;IACI,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,GAAG,KAAK,CAAC,GAAG,MAAM;IAQ5E;;OAEG;IACI,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAQnD;;OAEG;IACI,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAI1E;;OAEG;IACI,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,GAAG;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE;CAYjG;AAGD,eAAO,MAAM,oBAAoB,GAAI,QAAQ,UAAU,KAAG,cAEzD,CAAC"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/middleware/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEnE,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;IACjE,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IACR,IAAI,EAAE,MAAM;gBAApC,OAAO,EAAE,MAAM,EAAS,IAAI,EAAE,MAAM;CAIjD;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAa;gBAEf,MAAM,EAAE,UAAU;IAQ9B;;OAEG;IACI,SAAS,GAAI,KAAK,oBAAoB,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,KAAG,IAAI,GAAG,QAAQ,CAuDhG;IAEF;;OAEG;IACI,SAAS,GAAI,KAAK,oBAAoB,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,KAAG,IAAI,GAAG,QAAQ,CAShG;IAEF;;OAEG;IACI,QAAQ,GAAI,cAAc,QAAQ,MAC/B,KAAK,oBAAoB,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,KAAG,IAAI,GAAG,QAAQ,CAUtF;IAEF;;OAEG;IACI,YAAY,GAAI,KAAK,oBAAoB,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,UAcjF;IAEF;;OAEG;IACI,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,GAAG,KAAK,CAAC,GAAG,MAAM;IAQ5E;;OAEG;IACI,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAQnD;;OAEG;IACI,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAI1E;;OAEG;IACI,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,GAAG;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE;CAYjG;AAGD,eAAO,MAAM,oBAAoB,GAAI,QAAQ,UAAU,KAAG,cAEzD,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from './mockAuthConfig';
2
+ export * from './mockAuthService';
3
+ export * from './mockAuthMiddleware';
4
+ export { createMockAuthConfig, defaultMockAuthConfig, isMockMode, createSmartAuthConfig } from './mockAuthConfig';
5
+ export { MockAuthService } from './mockAuthService';
6
+ export { MockAuthMiddleware, createMockAuthMiddleware } from './mockAuthMiddleware';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mock/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AAGrC,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAClH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.createMockAuthMiddleware = exports.MockAuthMiddleware = exports.MockAuthService = exports.createSmartAuthConfig = exports.isMockMode = exports.defaultMockAuthConfig = exports.createMockAuthConfig = void 0;
18
+ // Mock authentication system for development and testing
19
+ __exportStar(require("./mockAuthConfig"), exports);
20
+ __exportStar(require("./mockAuthService"), exports);
21
+ __exportStar(require("./mockAuthMiddleware"), exports);
22
+ // Quick setup helpers
23
+ var mockAuthConfig_1 = require("./mockAuthConfig");
24
+ Object.defineProperty(exports, "createMockAuthConfig", { enumerable: true, get: function () { return mockAuthConfig_1.createMockAuthConfig; } });
25
+ Object.defineProperty(exports, "defaultMockAuthConfig", { enumerable: true, get: function () { return mockAuthConfig_1.defaultMockAuthConfig; } });
26
+ Object.defineProperty(exports, "isMockMode", { enumerable: true, get: function () { return mockAuthConfig_1.isMockMode; } });
27
+ Object.defineProperty(exports, "createSmartAuthConfig", { enumerable: true, get: function () { return mockAuthConfig_1.createSmartAuthConfig; } });
28
+ var mockAuthService_1 = require("./mockAuthService");
29
+ Object.defineProperty(exports, "MockAuthService", { enumerable: true, get: function () { return mockAuthService_1.MockAuthService; } });
30
+ var mockAuthMiddleware_1 = require("./mockAuthMiddleware");
31
+ Object.defineProperty(exports, "MockAuthMiddleware", { enumerable: true, get: function () { return mockAuthMiddleware_1.MockAuthMiddleware; } });
32
+ Object.defineProperty(exports, "createMockAuthMiddleware", { enumerable: true, get: function () { return mockAuthMiddleware_1.createMockAuthMiddleware; } });
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mock/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yDAAyD;AACzD,mDAAiC;AACjC,oDAAkC;AAClC,uDAAqC;AAErC,sBAAsB;AACtB,mDAAkH;AAAzG,sHAAA,oBAAoB,OAAA;AAAE,uHAAA,qBAAqB,OAAA;AAAE,4GAAA,UAAU,OAAA;AAAE,uHAAA,qBAAqB,OAAA;AACvF,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,2DAAoF;AAA3E,wHAAA,kBAAkB,OAAA;AAAE,8HAAA,wBAAwB,OAAA"}
@@ -0,0 +1,19 @@
1
+ import { AuthConfig } from '../types';
2
+ interface MockDatabase {
3
+ initialize(): Promise<void>;
4
+ getUserByEmail(email: string): Promise<any>;
5
+ createSession(data: any): Promise<any>;
6
+ getSessionByToken(token: string): Promise<any>;
7
+ deleteSession(token: string): Promise<void>;
8
+ }
9
+ export interface MockAuthConfig extends AuthConfig {
10
+ mockMode: boolean;
11
+ mockDatabase?: MockDatabase;
12
+ autoInitialize?: boolean;
13
+ }
14
+ export declare const createMockAuthConfig: (overrides?: Partial<MockAuthConfig>) => MockAuthConfig;
15
+ export declare const defaultMockAuthConfig: MockAuthConfig;
16
+ export declare const isMockMode: () => boolean;
17
+ export declare const createSmartAuthConfig: (userConfig?: Partial<AuthConfig>) => AuthConfig;
18
+ export {};
19
+ //# sourceMappingURL=mockAuthConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockAuthConfig.d.ts","sourceRoot":"","sources":["../../src/mock/mockAuthConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGtC,UAAU,YAAY;IACpB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5C,aAAa,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACvC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/C,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,oBAAoB,GAAI,YAAW,OAAO,CAAC,cAAc,CAAM,KAAG,cAyB9E,CAAC;AAGF,eAAO,MAAM,qBAAqB,gBAAyB,CAAC;AAG5D,eAAO,MAAM,UAAU,QAAO,OAQ7B,CAAC;AAGF,eAAO,MAAM,qBAAqB,GAAI,aAAY,OAAO,CAAC,UAAU,CAAM,KAAG,UAc5E,CAAC"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSmartAuthConfig = exports.isMockMode = exports.defaultMockAuthConfig = exports.createMockAuthConfig = void 0;
4
+ const createMockAuthConfig = (overrides = {}) => {
5
+ const config = {
6
+ // Basic auth config
7
+ jwtSecret: 'mock-jwt-secret-change-in-production',
8
+ jwtRefreshSecret: 'mock-refresh-secret-change-in-production',
9
+ tokenExpiry: '24h',
10
+ refreshExpiry: '7d',
11
+ // Mock-specific config
12
+ mockMode: true,
13
+ mockDatabase: undefined, // Will be set later
14
+ autoInitialize: true,
15
+ // Override with provided options
16
+ ...overrides
17
+ };
18
+ // Auto-initialize mock database if enabled
19
+ if (config.autoInitialize && config.mockDatabase) {
20
+ config.mockDatabase.initialize().catch((error) => {
21
+ console.error('Failed to initialize mock database:', error);
22
+ });
23
+ }
24
+ return config;
25
+ };
26
+ exports.createMockAuthConfig = createMockAuthConfig;
27
+ // Default mock config
28
+ exports.defaultMockAuthConfig = (0, exports.createMockAuthConfig)();
29
+ // Environment detection
30
+ const isMockMode = () => {
31
+ return (process.env.NODE_ENV === 'development' ||
32
+ process.env.SIRIUX_MOCK_MODE === 'true' ||
33
+ (typeof globalThis !== 'undefined' &&
34
+ 'location' in globalThis &&
35
+ globalThis.location.pathname.includes('/demo')));
36
+ };
37
+ exports.isMockMode = isMockMode;
38
+ // Smart config creation
39
+ const createSmartAuthConfig = (userConfig = {}) => {
40
+ if ((0, exports.isMockMode)()) {
41
+ console.log('🎭 Using mock authentication mode');
42
+ return (0, exports.createMockAuthConfig)(userConfig);
43
+ }
44
+ console.log('🔐 Using production authentication mode');
45
+ return {
46
+ jwtSecret: process.env.JWT_SECRET || 'change-me-in-production',
47
+ jwtRefreshSecret: process.env.JWT_REFRESH_SECRET || 'change-me-in-production',
48
+ tokenExpiry: process.env.JWT_EXPIRY || '24h',
49
+ refreshExpiry: process.env.JWT_REFRESH_EXPIRY || '7d',
50
+ ...userConfig
51
+ };
52
+ };
53
+ exports.createSmartAuthConfig = createSmartAuthConfig;
54
+ //# sourceMappingURL=mockAuthConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockAuthConfig.js","sourceRoot":"","sources":["../../src/mock/mockAuthConfig.ts"],"names":[],"mappings":";;;AAiBO,MAAM,oBAAoB,GAAG,CAAC,YAAqC,EAAE,EAAkB,EAAE;IAC9F,MAAM,MAAM,GAAmB;QAC7B,oBAAoB;QACpB,SAAS,EAAE,sCAAsC;QACjD,gBAAgB,EAAE,0CAA0C;QAC5D,WAAW,EAAE,KAAK;QAClB,aAAa,EAAE,IAAI;QAEnB,uBAAuB;QACvB,QAAQ,EAAE,IAAI;QACd,YAAY,EAAE,SAAS,EAAE,oBAAoB;QAC7C,cAAc,EAAE,IAAI;QAEpB,iCAAiC;QACjC,GAAG,SAAS;KACb,CAAC;IAEF,2CAA2C;IAC3C,IAAI,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACjD,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,KAAU,EAAE,EAAE;YACpD,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAzBW,QAAA,oBAAoB,wBAyB/B;AAEF,sBAAsB;AACT,QAAA,qBAAqB,GAAG,IAAA,4BAAoB,GAAE,CAAC;AAE5D,wBAAwB;AACjB,MAAM,UAAU,GAAG,GAAY,EAAE;IACtC,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa;QACtC,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,MAAM;QACvC,CAAC,OAAO,UAAU,KAAK,WAAW;YACjC,UAAU,IAAI,UAAU;YACvB,UAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAC1D,CAAC;AACJ,CAAC,CAAC;AARW,QAAA,UAAU,cAQrB;AAEF,wBAAwB;AACjB,MAAM,qBAAqB,GAAG,CAAC,aAAkC,EAAE,EAAc,EAAE;IACxF,IAAI,IAAA,kBAAU,GAAE,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACjD,OAAO,IAAA,4BAAoB,EAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACvD,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,yBAAyB;QAC9D,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,yBAAyB;QAC7E,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,KAAK;QAC5C,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,IAAI;QACrD,GAAG,UAAU;KACd,CAAC;AACJ,CAAC,CAAC;AAdW,QAAA,qBAAqB,yBAchC"}
@@ -0,0 +1,49 @@
1
+ import { Request, Response, NextFunction } from 'express';
2
+ import { MockAuthService } from './mockAuthService';
3
+ interface MockDatabase {
4
+ initialize(): Promise<void>;
5
+ getUserByEmail(email: string): Promise<any>;
6
+ getUserById(id: string): Promise<any>;
7
+ createUser(userData: any): Promise<any>;
8
+ createSession(data: any): Promise<any>;
9
+ getSessionByToken(token: string): Promise<any>;
10
+ deleteSession(token: string): Promise<void>;
11
+ logAudit(entry: any): Promise<void>;
12
+ getStats(): Promise<any>;
13
+ getAuditLogs(userId?: string): Promise<any[]>;
14
+ reset(): Promise<void>;
15
+ }
16
+ declare global {
17
+ namespace Express {
18
+ interface Request {
19
+ user?: {
20
+ id: string;
21
+ email: string;
22
+ role: string;
23
+ };
24
+ }
25
+ }
26
+ }
27
+ export declare class MockAuthMiddleware {
28
+ private authService;
29
+ constructor(database?: MockDatabase);
30
+ tokenAuth: (req: Request, res: Response, next: NextFunction) => Promise<void>;
31
+ roleAuth: (allowedRoles: string[]) => (req: Request, res: Response, next: NextFunction) => Promise<void>;
32
+ adminAuth: (req: Request, res: Response, next: NextFunction) => Promise<void>;
33
+ userAuth: (req: Request, res: Response, next: NextFunction) => Promise<void>;
34
+ managerAuth: (req: Request, res: Response, next: NextFunction) => Promise<void>;
35
+ getAuthService(): MockAuthService;
36
+ getMockRoutes(): {
37
+ 'POST /api/auth/login': (req: Request, res: Response) => Promise<void>;
38
+ 'POST /api/auth/register': (req: Request, res: Response) => Promise<void>;
39
+ 'POST /api/auth/refresh': (req: Request, res: Response) => Promise<void>;
40
+ 'POST /api/auth/logout': (req: Request, res: Response) => Promise<void>;
41
+ 'GET /api/auth/profile': (req: Request, res: Response) => Promise<void>;
42
+ 'GET /api/auth/stats': (req: Request, res: Response) => Promise<void>;
43
+ 'GET /api/auth/audit-logs': (req: Request, res: Response) => Promise<void>;
44
+ };
45
+ applyMockRoutes(app: any): void;
46
+ }
47
+ export declare const createMockAuthMiddleware: (database?: MockDatabase) => MockAuthMiddleware;
48
+ export {};
49
+ //# sourceMappingURL=mockAuthMiddleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockAuthMiddleware.d.ts","sourceRoot":"","sources":["../../src/mock/mockAuthMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,UAAU,YAAY;IACpB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5C,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,UAAU,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,aAAa,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACvC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/C,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IACzB,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAqID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,OAAO,CAAC;QAChB,UAAU,OAAO;YACf,IAAI,CAAC,EAAE;gBACL,EAAE,EAAE,MAAM,CAAC;gBACX,KAAK,EAAE,MAAM,CAAC;gBACd,IAAI,EAAE,MAAM,CAAC;aACd,CAAC;SACH;KACF;CACF;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,WAAW,CAAkB;gBAEzB,QAAQ,CAAC,EAAE,YAAY;IAOnC,SAAS,GAAU,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,KAAG,OAAO,CAAC,IAAI,CAAC,CAiChF;IAGF,QAAQ,GAAI,cAAc,MAAM,EAAE,MAClB,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,KAAG,OAAO,CAAC,IAAI,CAAC,CAoB7E;IAGF,SAAS,QAvBY,OAAO,OAAO,QAAQ,QAAQ,YAAY,KAAG,OAAO,CAAC,IAAI,CAAC,CAuB1C;IAGrC,QAAQ,QA1Ba,OAAO,OAAO,QAAQ,QAAQ,YAAY,KAAG,OAAO,CAAC,IAAI,CAAC,CA0BnC;IAG5C,WAAW,QA7BU,OAAO,OAAO,QAAQ,QAAQ,YAAY,KAAG,OAAO,CAAC,IAAI,CAAC,CA6B7B;IAGlD,cAAc,IAAI,eAAe;IAKjC,aAAa;sCAK2B,OAAO,OAAO,QAAQ;yCAgBnB,OAAO,OAAO,QAAQ;wCAgBvB,OAAO,OAAO,QAAQ;uCAgBvB,OAAO,OAAO,QAAQ;uCAgBtB,OAAO,OAAO,QAAQ;qCAoBxB,OAAO,OAAO,QAAQ;0CAejB,OAAO,OAAO,QAAQ;;IAkBlE,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;CAwBhC;AAGD,eAAO,MAAM,wBAAwB,GAAI,WAAW,YAAY,uBAE/D,CAAC"}
@@ -0,0 +1,336 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createMockAuthMiddleware = exports.MockAuthMiddleware = void 0;
4
+ const mockAuthService_1 = require("./mockAuthService");
5
+ // Simple in-memory database implementation
6
+ class SimpleMockDatabase {
7
+ constructor() {
8
+ this.users = new Map();
9
+ this.sessions = new Map();
10
+ this.auditLogs = [];
11
+ this.initialized = false;
12
+ }
13
+ async initialize() {
14
+ if (this.initialized)
15
+ return;
16
+ // Seed demo users
17
+ this.users.set('admin@siriux.dev', {
18
+ id: '1',
19
+ email: 'admin@siriux.dev',
20
+ password: 'admin123',
21
+ firstName: 'Admin',
22
+ lastName: 'User',
23
+ role: 'admin',
24
+ createdAt: new Date().toISOString(),
25
+ updatedAt: new Date().toISOString()
26
+ });
27
+ this.users.set('user@siriux.dev', {
28
+ id: '2',
29
+ email: 'user@siriux.dev',
30
+ password: 'user123',
31
+ firstName: 'Demo',
32
+ lastName: 'User',
33
+ role: 'user',
34
+ createdAt: new Date().toISOString(),
35
+ updatedAt: new Date().toISOString()
36
+ });
37
+ this.users.set('manager@siriux.dev', {
38
+ id: '3',
39
+ email: 'manager@siriux.dev',
40
+ password: 'manager123',
41
+ firstName: 'Manager',
42
+ lastName: 'User',
43
+ role: 'manager',
44
+ createdAt: new Date().toISOString(),
45
+ updatedAt: new Date().toISOString()
46
+ });
47
+ this.initialized = true;
48
+ }
49
+ async getUserByEmail(email) {
50
+ await this.initialize();
51
+ return this.users.get(email) || null;
52
+ }
53
+ async getUserById(id) {
54
+ await this.initialize();
55
+ for (const user of this.users.values()) {
56
+ if (user.id === id)
57
+ return user;
58
+ }
59
+ return null;
60
+ }
61
+ async createUser(userData) {
62
+ await this.initialize();
63
+ const user = {
64
+ id: Date.now().toString(),
65
+ ...userData,
66
+ createdAt: new Date().toISOString(),
67
+ updatedAt: new Date().toISOString()
68
+ };
69
+ this.users.set(user.email, user);
70
+ return user;
71
+ }
72
+ async createSession(data) {
73
+ await this.initialize();
74
+ const session = { id: Date.now().toString(), ...data };
75
+ this.sessions.set(data.accessToken, session);
76
+ return session;
77
+ }
78
+ async getSessionByToken(token) {
79
+ await this.initialize();
80
+ return this.sessions.get(token) || null;
81
+ }
82
+ async deleteSession(token) {
83
+ await this.initialize();
84
+ this.sessions.delete(token);
85
+ }
86
+ async logAudit(entry) {
87
+ await this.initialize();
88
+ this.auditLogs.push({
89
+ id: Date.now().toString(),
90
+ timestamp: new Date().toISOString(),
91
+ ...entry
92
+ });
93
+ }
94
+ async getStats() {
95
+ await this.initialize();
96
+ const usersByRole = {};
97
+ for (const user of this.users.values()) {
98
+ usersByRole[user.role] = (usersByRole[user.role] || 0) + 1;
99
+ }
100
+ return {
101
+ totalUsers: this.users.size,
102
+ totalSessions: this.sessions.size,
103
+ totalAuditLogs: this.auditLogs.length,
104
+ usersByRole
105
+ };
106
+ }
107
+ async getAuditLogs(userId) {
108
+ await this.initialize();
109
+ let logs = this.auditLogs;
110
+ if (userId) {
111
+ logs = logs.filter(log => log.userId === userId);
112
+ }
113
+ return logs.slice(-50).reverse(); // Last 50 logs, newest first
114
+ }
115
+ async reset() {
116
+ this.users.clear();
117
+ this.sessions.clear();
118
+ this.auditLogs = [];
119
+ this.initialized = false;
120
+ await this.initialize();
121
+ }
122
+ }
123
+ class MockAuthMiddleware {
124
+ constructor(database) {
125
+ // Express middleware for token authentication
126
+ this.tokenAuth = async (req, res, next) => {
127
+ try {
128
+ const authHeader = req.headers.authorization;
129
+ if (!authHeader || !authHeader.startsWith('Bearer ')) {
130
+ res.status(401).json({ error: 'No token provided' });
131
+ return;
132
+ }
133
+ const token = authHeader.substring(7); // Remove 'Bearer ' prefix
134
+ // Validate token
135
+ const validation = await this.authService.validateToken(token);
136
+ if (!validation.valid) {
137
+ res.status(401).json({ error: validation.error || 'Invalid token' });
138
+ return;
139
+ }
140
+ // Attach user to request
141
+ if (validation.user) {
142
+ req.user = {
143
+ id: validation.user.id,
144
+ email: validation.user.email,
145
+ role: validation.user.role
146
+ };
147
+ }
148
+ next();
149
+ }
150
+ catch (error) {
151
+ console.error('Auth middleware error:', error);
152
+ res.status(500).json({ error: 'Authentication failed' });
153
+ }
154
+ };
155
+ // Role-based access control middleware
156
+ this.roleAuth = (allowedRoles) => {
157
+ return async (req, res, next) => {
158
+ try {
159
+ // First check if user is authenticated
160
+ if (!req.user) {
161
+ res.status(401).json({ error: 'Authentication required' });
162
+ return;
163
+ }
164
+ // Check if user has required role
165
+ if (!allowedRoles.includes(req.user.role)) {
166
+ res.status(403).json({ error: 'Insufficient permissions' });
167
+ return;
168
+ }
169
+ next();
170
+ }
171
+ catch (error) {
172
+ console.error('Role auth middleware error:', error);
173
+ res.status(500).json({ error: 'Authorization failed' });
174
+ }
175
+ };
176
+ };
177
+ // Admin-only middleware
178
+ this.adminAuth = this.roleAuth(['admin']);
179
+ // User or admin middleware
180
+ this.userAuth = this.roleAuth(['user', 'admin']);
181
+ // Manager or admin middleware
182
+ this.managerAuth = this.roleAuth(['manager', 'admin']);
183
+ // Use provided database or create a new one
184
+ const db = database || new SimpleMockDatabase();
185
+ this.authService = new mockAuthService_1.MockAuthService(db);
186
+ }
187
+ // Get auth service instance
188
+ getAuthService() {
189
+ return this.authService;
190
+ }
191
+ // Mock API routes (for development/demo)
192
+ getMockRoutes() {
193
+ const authService = this.authService;
194
+ return {
195
+ // Login endpoint
196
+ 'POST /api/auth/login': async (req, res) => {
197
+ try {
198
+ const { email, password } = req.body;
199
+ const result = await authService.login({ email, password });
200
+ if (result.success) {
201
+ res.json(result);
202
+ }
203
+ else {
204
+ res.status(401).json(result);
205
+ }
206
+ }
207
+ catch (error) {
208
+ res.status(500).json({ error: 'Login failed' });
209
+ }
210
+ },
211
+ // Register endpoint
212
+ 'POST /api/auth/register': async (req, res) => {
213
+ try {
214
+ const { email, password, firstName, lastName } = req.body;
215
+ const result = await authService.register({ email, password, firstName, lastName });
216
+ if (result.success) {
217
+ res.status(201).json(result);
218
+ }
219
+ else {
220
+ res.status(400).json(result);
221
+ }
222
+ }
223
+ catch (error) {
224
+ res.status(500).json({ error: 'Registration failed' });
225
+ }
226
+ },
227
+ // Refresh token endpoint
228
+ 'POST /api/auth/refresh': async (req, res) => {
229
+ try {
230
+ const { refreshToken } = req.body;
231
+ const result = await authService.refreshToken(refreshToken);
232
+ if (result.success) {
233
+ res.json(result);
234
+ }
235
+ else {
236
+ res.status(401).json(result);
237
+ }
238
+ }
239
+ catch (error) {
240
+ res.status(500).json({ error: 'Token refresh failed' });
241
+ }
242
+ },
243
+ // Logout endpoint
244
+ 'POST /api/auth/logout': async (req, res) => {
245
+ try {
246
+ const authHeader = req.headers.authorization;
247
+ const token = authHeader?.substring(7);
248
+ if (token) {
249
+ await authService.logout(token);
250
+ }
251
+ res.json({ success: true });
252
+ }
253
+ catch (error) {
254
+ res.status(500).json({ error: 'Logout failed' });
255
+ }
256
+ },
257
+ // Get profile endpoint
258
+ 'GET /api/auth/profile': async (req, res) => {
259
+ try {
260
+ if (!req.user) {
261
+ res.status(401).json({ error: 'Authentication required' });
262
+ return;
263
+ }
264
+ const result = await authService.getUserProfile(req.user.id);
265
+ if (result.success) {
266
+ res.json(result);
267
+ }
268
+ else {
269
+ res.status(404).json(result);
270
+ }
271
+ }
272
+ catch (error) {
273
+ res.status(500).json({ error: 'Failed to get profile' });
274
+ }
275
+ },
276
+ // Get stats endpoint (admin only)
277
+ 'GET /api/auth/stats': async (req, res) => {
278
+ try {
279
+ if (!req.user || req.user.role !== 'admin') {
280
+ res.status(403).json({ error: 'Admin access required' });
281
+ return;
282
+ }
283
+ const stats = await authService.getStats();
284
+ res.json(stats);
285
+ }
286
+ catch (error) {
287
+ res.status(500).json({ error: 'Failed to get stats' });
288
+ }
289
+ },
290
+ // Get audit logs endpoint (admin only)
291
+ 'GET /api/auth/audit-logs': async (req, res) => {
292
+ try {
293
+ if (!req.user || req.user.role !== 'admin') {
294
+ res.status(403).json({ error: 'Admin access required' });
295
+ return;
296
+ }
297
+ const userId = req.query.userId;
298
+ const logs = await authService.getAuditLogs(userId);
299
+ res.json(logs);
300
+ }
301
+ catch (error) {
302
+ res.status(500).json({ error: 'Failed to get audit logs' });
303
+ }
304
+ }
305
+ };
306
+ }
307
+ // Apply mock routes to Express app
308
+ applyMockRoutes(app) {
309
+ const routes = this.getMockRoutes();
310
+ Object.entries(routes).forEach(([route, handler]) => {
311
+ const [method, path] = route.split(' ');
312
+ switch (method) {
313
+ case 'GET':
314
+ app.get(path, handler);
315
+ break;
316
+ case 'POST':
317
+ app.post(path, handler);
318
+ break;
319
+ case 'PUT':
320
+ app.put(path, handler);
321
+ break;
322
+ case 'DELETE':
323
+ app.delete(path, handler);
324
+ break;
325
+ }
326
+ });
327
+ console.log('🎭 Mock auth routes applied');
328
+ }
329
+ }
330
+ exports.MockAuthMiddleware = MockAuthMiddleware;
331
+ // Factory function
332
+ const createMockAuthMiddleware = (database) => {
333
+ return new MockAuthMiddleware(database);
334
+ };
335
+ exports.createMockAuthMiddleware = createMockAuthMiddleware;
336
+ //# sourceMappingURL=mockAuthMiddleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockAuthMiddleware.js","sourceRoot":"","sources":["../../src/mock/mockAuthMiddleware.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import { AuthResponse, LoginCredentials, RegisterData, AuthenticatedUser } from '../types';
2
+ interface MockUser {
3
+ id: string;
4
+ email: string;
5
+ password: string;
6
+ firstName: string;
7
+ lastName: string;
8
+ role: 'user' | 'admin' | 'manager';
9
+ createdAt: string;
10
+ updatedAt: string;
11
+ }
12
+ interface MockSession {
13
+ id: string;
14
+ userId: string;
15
+ accessToken: string;
16
+ refreshToken: string;
17
+ expiresAt: string;
18
+ createdAt: string;
19
+ }
20
+ interface MockDatabase {
21
+ initialize(): Promise<void>;
22
+ getUserByEmail(email: string): Promise<MockUser | null>;
23
+ getUserById(id: string): Promise<MockUser | null>;
24
+ createUser(userData: any): Promise<MockUser>;
25
+ createSession(data: any): Promise<MockSession>;
26
+ getSessionByToken(token: string): Promise<MockSession | null>;
27
+ deleteSession(token: string): Promise<void>;
28
+ logAudit(entry: any): Promise<void>;
29
+ getStats(): Promise<any>;
30
+ getAuditLogs(userId?: string): Promise<any[]>;
31
+ reset(): Promise<void>;
32
+ }
33
+ export declare class MockAuthService {
34
+ private database;
35
+ private jwtSecret;
36
+ constructor(database: MockDatabase, jwtSecret?: string);
37
+ private generateToken;
38
+ private decodeToken;
39
+ private mapMockUserToAuthUser;
40
+ login(credentials: LoginCredentials): Promise<AuthResponse>;
41
+ register(data: RegisterData): Promise<AuthResponse>;
42
+ refreshToken(refreshToken: string): Promise<AuthResponse>;
43
+ logout(accessToken: string): Promise<{
44
+ success: boolean;
45
+ error?: string;
46
+ }>;
47
+ validateToken(accessToken: string): Promise<{
48
+ valid: boolean;
49
+ user?: AuthenticatedUser;
50
+ error?: string;
51
+ }>;
52
+ getUserProfile(userId: string): Promise<{
53
+ success: boolean;
54
+ user?: AuthenticatedUser;
55
+ error?: string;
56
+ }>;
57
+ getStats(): Promise<any>;
58
+ getAuditLogs(userId?: string): Promise<any[]>;
59
+ reset(): Promise<void>;
60
+ }
61
+ export {};
62
+ //# sourceMappingURL=mockAuthService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockAuthService.d.ts","sourceRoot":"","sources":["../../src/mock/mockAuthService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,344 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MockAuthService = void 0;
4
+ class MockAuthService {
5
+ constructor(database, jwtSecret = 'mock-secret') {
6
+ this.database = database;
7
+ this.jwtSecret = jwtSecret;
8
+ }
9
+ // Mock JWT token generation (simplified)
10
+ generateToken(payload, expiresIn = '24h') {
11
+ const header = btoa(JSON.stringify({ alg: 'HS256', typ: 'JWT' }));
12
+ const now = Math.floor(Date.now() / 1000);
13
+ const exp = now + (expiresIn === '24h' ? 86400 : expiresIn === '7d' ? 604800 : 3600);
14
+ const tokenPayload = {
15
+ ...payload,
16
+ iat: now,
17
+ exp
18
+ };
19
+ const payloadEncoded = btoa(JSON.stringify(tokenPayload));
20
+ const signature = btoa(`${header}.${payloadEncoded}.${this.jwtSecret}`);
21
+ return `${header}.${payloadEncoded}.${signature}`;
22
+ }
23
+ decodeToken(token) {
24
+ try {
25
+ const parts = token.split('.');
26
+ if (parts.length !== 3)
27
+ return null;
28
+ const payload = JSON.parse(atob(parts[1]));
29
+ // Check expiration
30
+ if (payload.exp && payload.exp < Math.floor(Date.now() / 1000)) {
31
+ return null;
32
+ }
33
+ return payload;
34
+ }
35
+ catch {
36
+ return null;
37
+ }
38
+ }
39
+ mapMockUserToAuthUser(mockUser) {
40
+ return {
41
+ id: mockUser.id,
42
+ email: mockUser.email,
43
+ role: mockUser.role,
44
+ createdAt: new Date(mockUser.createdAt),
45
+ updatedAt: new Date(mockUser.updatedAt)
46
+ };
47
+ }
48
+ async login(credentials) {
49
+ try {
50
+ await this.database.initialize();
51
+ // Find user by email
52
+ const mockUser = await this.database.getUserByEmail(credentials.email);
53
+ if (!mockUser) {
54
+ return {
55
+ success: false,
56
+ error: 'Invalid credentials'
57
+ };
58
+ }
59
+ // Check password (plain text comparison for demo)
60
+ if (mockUser.password !== credentials.password) {
61
+ await this.database.logAudit({
62
+ userId: mockUser.id,
63
+ action: 'LOGIN_FAILED',
64
+ resource: 'auth',
65
+ metadata: JSON.stringify({ reason: 'invalid_password' })
66
+ });
67
+ return {
68
+ success: false,
69
+ error: 'Invalid credentials'
70
+ };
71
+ }
72
+ // Generate tokens
73
+ const tokenPayload = {
74
+ userId: mockUser.id,
75
+ email: mockUser.email,
76
+ role: mockUser.role
77
+ };
78
+ const accessToken = this.generateToken(tokenPayload, '24h');
79
+ const refreshToken = this.generateToken(tokenPayload, '7d');
80
+ // Create session
81
+ const expiresAt = new Date();
82
+ expiresAt.setDate(expiresAt.getDate() + 7); // 7 days from now
83
+ await this.database.createSession({
84
+ userId: mockUser.id,
85
+ accessToken,
86
+ refreshToken,
87
+ expiresAt: expiresAt.toISOString()
88
+ });
89
+ // Log successful login
90
+ await this.database.logAudit({
91
+ userId: mockUser.id,
92
+ action: 'LOGIN_SUCCESS',
93
+ resource: 'auth'
94
+ });
95
+ const user = this.mapMockUserToAuthUser(mockUser);
96
+ return {
97
+ success: true,
98
+ user,
99
+ tokens: {
100
+ accessToken,
101
+ refreshToken
102
+ }
103
+ };
104
+ }
105
+ catch (error) {
106
+ console.error('Login error:', error);
107
+ return {
108
+ success: false,
109
+ error: 'Login failed'
110
+ };
111
+ }
112
+ }
113
+ async register(data) {
114
+ try {
115
+ await this.database.initialize();
116
+ // Check if user already exists
117
+ const existingUser = await this.database.getUserByEmail(data.email);
118
+ if (existingUser) {
119
+ return {
120
+ success: false,
121
+ error: 'User already exists'
122
+ };
123
+ }
124
+ // Create new user
125
+ const mockUser = await this.database.createUser({
126
+ email: data.email,
127
+ password: data.password, // Plain text for demo
128
+ firstName: data.firstName || 'User',
129
+ lastName: data.lastName || 'Name',
130
+ role: 'user'
131
+ });
132
+ // Generate tokens
133
+ const tokenPayload = {
134
+ userId: mockUser.id,
135
+ email: mockUser.email,
136
+ role: mockUser.role
137
+ };
138
+ const accessToken = this.generateToken(tokenPayload, '24h');
139
+ const refreshToken = this.generateToken(tokenPayload, '7d');
140
+ // Create session
141
+ const expiresAt = new Date();
142
+ expiresAt.setDate(expiresAt.getDate() + 7);
143
+ await this.database.createSession({
144
+ userId: mockUser.id,
145
+ accessToken,
146
+ refreshToken,
147
+ expiresAt: expiresAt.toISOString()
148
+ });
149
+ // Log registration
150
+ await this.database.logAudit({
151
+ userId: mockUser.id,
152
+ action: 'REGISTER',
153
+ resource: 'auth'
154
+ });
155
+ const user = this.mapMockUserToAuthUser(mockUser);
156
+ return {
157
+ success: true,
158
+ user,
159
+ tokens: {
160
+ accessToken,
161
+ refreshToken
162
+ }
163
+ };
164
+ }
165
+ catch (error) {
166
+ console.error('Registration error:', error);
167
+ return {
168
+ success: false,
169
+ error: 'Registration failed'
170
+ };
171
+ }
172
+ }
173
+ async refreshToken(refreshToken) {
174
+ try {
175
+ await this.database.initialize();
176
+ // Decode refresh token
177
+ const payload = this.decodeToken(refreshToken);
178
+ if (!payload) {
179
+ return {
180
+ success: false,
181
+ error: 'Invalid refresh token'
182
+ };
183
+ }
184
+ // Find session
185
+ const session = await this.database.getSessionByToken(refreshToken);
186
+ if (!session) {
187
+ return {
188
+ success: false,
189
+ error: 'Session not found'
190
+ };
191
+ }
192
+ // Get user
193
+ const user = await this.database.getUserById(payload.userId);
194
+ if (!user) {
195
+ return {
196
+ success: false,
197
+ error: 'User not found'
198
+ };
199
+ }
200
+ // Generate new tokens
201
+ const tokenPayload = {
202
+ userId: user.id,
203
+ email: user.email,
204
+ role: user.role
205
+ };
206
+ const newAccessToken = this.generateToken(tokenPayload, '24h');
207
+ const newRefreshToken = this.generateToken(tokenPayload, '7d');
208
+ // Update session
209
+ await this.database.deleteSession(refreshToken);
210
+ const expiresAt = new Date();
211
+ expiresAt.setDate(expiresAt.getDate() + 7);
212
+ await this.database.createSession({
213
+ userId: user.id,
214
+ accessToken: newAccessToken,
215
+ refreshToken: newRefreshToken,
216
+ expiresAt: expiresAt.toISOString()
217
+ });
218
+ // Log token refresh
219
+ await this.database.logAudit({
220
+ userId: user.id,
221
+ action: 'TOKEN_REFRESH',
222
+ resource: 'auth'
223
+ });
224
+ const authUser = this.mapMockUserToAuthUser(user);
225
+ return {
226
+ success: true,
227
+ user: authUser,
228
+ tokens: {
229
+ accessToken: newAccessToken,
230
+ refreshToken: newRefreshToken
231
+ }
232
+ };
233
+ }
234
+ catch (error) {
235
+ console.error('Token refresh error:', error);
236
+ return {
237
+ success: false,
238
+ error: 'Token refresh failed'
239
+ };
240
+ }
241
+ }
242
+ async logout(accessToken) {
243
+ try {
244
+ await this.database.initialize();
245
+ // Decode token to get user info
246
+ const payload = this.decodeToken(accessToken);
247
+ // Delete session
248
+ await this.database.deleteSession(accessToken);
249
+ // Log logout
250
+ if (payload) {
251
+ await this.database.logAudit({
252
+ userId: payload.userId,
253
+ action: 'LOGOUT',
254
+ resource: 'auth'
255
+ });
256
+ }
257
+ return { success: true };
258
+ }
259
+ catch (error) {
260
+ console.error('Logout error:', error);
261
+ return {
262
+ success: false,
263
+ error: 'Logout failed'
264
+ };
265
+ }
266
+ }
267
+ async validateToken(accessToken) {
268
+ try {
269
+ await this.database.initialize();
270
+ // Decode token
271
+ const payload = this.decodeToken(accessToken);
272
+ if (!payload) {
273
+ return {
274
+ valid: false,
275
+ error: 'Invalid token'
276
+ };
277
+ }
278
+ // Check session exists
279
+ const session = await this.database.getSessionByToken(accessToken);
280
+ if (!session) {
281
+ return {
282
+ valid: false,
283
+ error: 'Session not found or expired'
284
+ };
285
+ }
286
+ // Get user
287
+ const user = await this.database.getUserById(payload.userId);
288
+ if (!user) {
289
+ return {
290
+ valid: false,
291
+ error: 'User not found'
292
+ };
293
+ }
294
+ return {
295
+ valid: true,
296
+ user: this.mapMockUserToAuthUser(user)
297
+ };
298
+ }
299
+ catch (error) {
300
+ console.error('Token validation error:', error);
301
+ return {
302
+ valid: false,
303
+ error: 'Token validation failed'
304
+ };
305
+ }
306
+ }
307
+ async getUserProfile(userId) {
308
+ try {
309
+ await this.database.initialize();
310
+ const mockUser = await this.database.getUserById(userId);
311
+ if (!mockUser) {
312
+ return {
313
+ success: false,
314
+ error: 'User not found'
315
+ };
316
+ }
317
+ return {
318
+ success: true,
319
+ user: this.mapMockUserToAuthUser(mockUser)
320
+ };
321
+ }
322
+ catch (error) {
323
+ console.error('Get profile error:', error);
324
+ return {
325
+ success: false,
326
+ error: 'Failed to get user profile'
327
+ };
328
+ }
329
+ }
330
+ // Utility methods
331
+ async getStats() {
332
+ await this.database.initialize();
333
+ return await this.database.getStats();
334
+ }
335
+ async getAuditLogs(userId) {
336
+ await this.database.initialize();
337
+ return await this.database.getAuditLogs(userId);
338
+ }
339
+ async reset() {
340
+ await this.database.reset();
341
+ }
342
+ }
343
+ exports.MockAuthService = MockAuthService;
344
+ //# sourceMappingURL=mockAuthService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockAuthService.js","sourceRoot":"","sources":["../../src/mock/mockAuthService.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@siriux/auth",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Siriux Authentication - JWT authentication and session management",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -23,30 +23,31 @@
23
23
  "author": "jawwad@alsirius.co.uk",
24
24
  "license": "MIT",
25
25
  "dependencies": {
26
- "express": "^4.18.2",
27
- "jsonwebtoken": "^9.0.2",
28
26
  "bcryptjs": "^2.4.3",
29
- "joi": "^17.11.0",
30
27
  "cors": "^2.8.5",
31
28
  "dotenv": "^16.3.1",
29
+ "express": "^4.18.2",
30
+ "joi": "^17.11.0",
31
+ "jsonwebtoken": "^9.0.2",
32
32
  "uuid": "^9.0.1",
33
33
  "winston": "^3.11.0"
34
34
  },
35
35
  "devDependencies": {
36
- "@types/node": "^20.10.5",
37
- "@types/express": "^4.17.21",
38
- "@types/jsonwebtoken": "^9.0.5",
39
36
  "@types/bcryptjs": "^2.4.6",
40
37
  "@types/cors": "^2.8.17",
38
+ "@types/express": "^4.17.21",
39
+ "@types/jest": "^29.5.8",
40
+ "@types/jsonwebtoken": "^9.0.5",
41
+ "@types/node": "^20.10.5",
41
42
  "@types/uuid": "^9.0.7",
42
- "typescript": "^5.3.3",
43
43
  "jest": "^29.7.0",
44
- "@types/jest": "^29.5.8"
44
+ "typescript": "^5.3.3"
45
45
  },
46
46
  "files": [
47
47
  "dist/**/*"
48
48
  ],
49
49
  "publishConfig": {
50
50
  "access": "public"
51
- }
51
+ },
52
+ "gitHead": "7a9592f8e9ed3f1301046046e1e05811cecc24be"
52
53
  }