@memberjunction/core 2.90.0 → 2.91.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,193 @@
1
+ /**
2
+ * Common authentication types shared between frontend and backend authentication systems
3
+ * This file provides type definitions used by both JWT validation (backend) and OAuth flows (frontend)
4
+ */
5
+ /**
6
+ * Standard authentication provider types
7
+ */
8
+ export declare const AUTH_PROVIDER_TYPES: {
9
+ readonly MSAL: "msal";
10
+ readonly AUTH0: "auth0";
11
+ readonly OKTA: "okta";
12
+ readonly COGNITO: "cognito";
13
+ readonly GOOGLE: "google";
14
+ readonly CUSTOM: "custom";
15
+ };
16
+ /**
17
+ * Type for authentication provider identifiers
18
+ */
19
+ export type AuthProviderType = typeof AUTH_PROVIDER_TYPES[keyof typeof AUTH_PROVIDER_TYPES];
20
+ /**
21
+ * Base configuration for authentication providers
22
+ * Used by both backend (JWT validation) and frontend (OAuth flows)
23
+ */
24
+ export interface AuthProviderConfig {
25
+ /**
26
+ * Unique name identifier for this provider instance
27
+ */
28
+ name: string;
29
+ /**
30
+ * Type of authentication provider (e.g., 'msal', 'auth0', 'okta')
31
+ */
32
+ type: AuthProviderType | string;
33
+ /**
34
+ * OAuth client ID
35
+ */
36
+ clientId?: string;
37
+ /**
38
+ * OAuth client secret (backend only, never expose to frontend)
39
+ */
40
+ clientSecret?: string;
41
+ /**
42
+ * Provider domain (e.g., 'your-domain.auth0.com')
43
+ */
44
+ domain?: string;
45
+ /**
46
+ * Tenant ID for multi-tenant providers (e.g., Azure AD)
47
+ */
48
+ tenantId?: string;
49
+ /**
50
+ * Token issuer URL (must match 'iss' claim in JWT)
51
+ */
52
+ issuer?: string;
53
+ /**
54
+ * Expected audience for tokens
55
+ */
56
+ audience?: string;
57
+ /**
58
+ * JWKS endpoint URL for retrieving signing keys
59
+ */
60
+ jwksUri?: string;
61
+ /**
62
+ * OAuth redirect URI for callback after authentication
63
+ */
64
+ redirectUri?: string;
65
+ /**
66
+ * OAuth scopes to request
67
+ */
68
+ scopes?: string[];
69
+ /**
70
+ * Authority URL for providers that use it (e.g., MSAL)
71
+ */
72
+ authority?: string;
73
+ /**
74
+ * Allow provider-specific configuration fields
75
+ */
76
+ [key: string]: any;
77
+ }
78
+ /**
79
+ * User information extracted from authentication tokens or user profiles
80
+ */
81
+ export interface AuthUserInfo {
82
+ /**
83
+ * User's email address
84
+ */
85
+ email?: string;
86
+ /**
87
+ * User's first name
88
+ */
89
+ firstName?: string;
90
+ /**
91
+ * User's last name
92
+ */
93
+ lastName?: string;
94
+ /**
95
+ * User's full display name
96
+ */
97
+ fullName?: string;
98
+ /**
99
+ * Preferred username or handle
100
+ */
101
+ preferredUsername?: string;
102
+ /**
103
+ * Unique user identifier from the auth provider
104
+ */
105
+ userId?: string;
106
+ /**
107
+ * User's roles or groups
108
+ */
109
+ roles?: string[];
110
+ /**
111
+ * Additional provider-specific claims
112
+ */
113
+ [key: string]: any;
114
+ }
115
+ /**
116
+ * Token information structure
117
+ */
118
+ export interface AuthTokenInfo {
119
+ /**
120
+ * OAuth access token for API calls
121
+ */
122
+ accessToken?: string;
123
+ /**
124
+ * ID token containing user claims
125
+ */
126
+ idToken?: string;
127
+ /**
128
+ * Refresh token for obtaining new access tokens
129
+ */
130
+ refreshToken?: string;
131
+ /**
132
+ * Token expiration time
133
+ */
134
+ expiresAt?: Date;
135
+ /**
136
+ * Token type (usually 'Bearer')
137
+ */
138
+ tokenType?: string;
139
+ }
140
+ /**
141
+ * JWT payload structure based on standard OIDC claims
142
+ */
143
+ export interface AuthJwtPayload {
144
+ /**
145
+ * Subject - unique identifier for the user
146
+ */
147
+ sub?: string;
148
+ /**
149
+ * Email address
150
+ */
151
+ email?: string;
152
+ /**
153
+ * Given/first name
154
+ */
155
+ given_name?: string;
156
+ /**
157
+ * Family/last name
158
+ */
159
+ family_name?: string;
160
+ /**
161
+ * Full name
162
+ */
163
+ name?: string;
164
+ /**
165
+ * Preferred username
166
+ */
167
+ preferred_username?: string;
168
+ /**
169
+ * Token issuer
170
+ */
171
+ iss?: string;
172
+ /**
173
+ * Token audience
174
+ */
175
+ aud?: string | string[];
176
+ /**
177
+ * Expiration time (seconds since epoch)
178
+ */
179
+ exp?: number;
180
+ /**
181
+ * Issued at time (seconds since epoch)
182
+ */
183
+ iat?: number;
184
+ /**
185
+ * Not before time (seconds since epoch)
186
+ */
187
+ nbf?: number;
188
+ /**
189
+ * Additional claims
190
+ */
191
+ [key: string]: any;
192
+ }
193
+ //# sourceMappingURL=authTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authTypes.d.ts","sourceRoot":"","sources":["../../src/generic/authTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;CAOtB,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,mBAAmB,CAAC,MAAM,OAAO,mBAAmB,CAAC,CAAC;AAE5F;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAEjB;;OAEG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,SAAS,CAAC,EAAE,IAAI,CAAC;IAEjB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ /**
3
+ * Common authentication types shared between frontend and backend authentication systems
4
+ * This file provides type definitions used by both JWT validation (backend) and OAuth flows (frontend)
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.AUTH_PROVIDER_TYPES = void 0;
8
+ /**
9
+ * Standard authentication provider types
10
+ */
11
+ exports.AUTH_PROVIDER_TYPES = {
12
+ MSAL: 'msal',
13
+ AUTH0: 'auth0',
14
+ OKTA: 'okta',
15
+ COGNITO: 'cognito',
16
+ GOOGLE: 'google',
17
+ CUSTOM: 'custom'
18
+ };
19
+ //# sourceMappingURL=authTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authTypes.js","sourceRoot":"","sources":["../../src/generic/authTypes.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH;;GAEG;AACU,QAAA,mBAAmB,GAAG;IACjC,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;CACR,CAAC"}
package/dist/index.d.ts CHANGED
@@ -23,6 +23,7 @@ export * from "./generic/explorerNavigationItem";
23
23
  export * from "./generic/compositeKey";
24
24
  export * from "./generic/authEvaluator";
25
25
  export * from "./generic/metadataUtil";
26
+ export * from "./generic/authTypes";
26
27
  export * from "./generic/databaseProviderBase";
27
28
  export declare function SetProvider(provider: any): void;
28
29
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,gCAAgC,CAAC;AAE/C,wBAAgB,WAAW,CAAC,QAAQ,KAAA,QAMnC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,gCAAgC,CAAC;AAE/C,wBAAgB,WAAW,CAAC,QAAQ,KAAA,QAMnC"}
package/dist/index.js CHANGED
@@ -45,6 +45,7 @@ __exportStar(require("./generic/explorerNavigationItem"), exports);
45
45
  __exportStar(require("./generic/compositeKey"), exports);
46
46
  __exportStar(require("./generic/authEvaluator"), exports);
47
47
  __exportStar(require("./generic/metadataUtil"), exports);
48
+ __exportStar(require("./generic/authTypes"), exports);
48
49
  __exportStar(require("./generic/databaseProviderBase"), exports);
49
50
  function SetProvider(provider) {
50
51
  metadata_1.Metadata.Provider = provider;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qDAAkD;AAClD,iDAA8C;AAC9C,iDAA8C;AAC9C,mDAAgD;AAChD,6CAA0C;AAE1C,qDAAmC;AACnC,qDAAmC;AACnC,uDAAqC;AACrC,kDAAgC;AAChC,sDAAoC;AACpC,qDAAmC;AACnC,uDAAqC;AACrC,uDAAqC;AACrC,4DAA0C;AAC1C,yDAAuC;AACvC,uDAAqC;AACrC,yDAAuC;AACvC,6DAA2C;AAC3C,iDAA+B;AAC/B,oDAAkC;AAClC,sDAAoC;AACpC,4DAA0C;AAC1C,6EAA2D;AAC3D,wDAAsC;AACtC,6DAA2C;AAC3C,uDAAqC;AACrC,mEAAiD;AACjD,yDAAuC;AACvC,0DAAwC;AACxC,yDAAuC;AAEvC,iEAA+C;AAE/C,SAAgB,WAAW,CAAC,QAAQ;IAChC,mBAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,uBAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC/B,iBAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC5B,qBAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC9B,mBAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACjC,CAAC;AAND,kCAMC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qDAAkD;AAClD,iDAA8C;AAC9C,iDAA8C;AAC9C,mDAAgD;AAChD,6CAA0C;AAE1C,qDAAmC;AACnC,qDAAmC;AACnC,uDAAqC;AACrC,kDAAgC;AAChC,sDAAoC;AACpC,qDAAmC;AACnC,uDAAqC;AACrC,uDAAqC;AACrC,4DAA0C;AAC1C,yDAAuC;AACvC,uDAAqC;AACrC,yDAAuC;AACvC,6DAA2C;AAC3C,iDAA+B;AAC/B,oDAAkC;AAClC,sDAAoC;AACpC,4DAA0C;AAC1C,6EAA2D;AAC3D,wDAAsC;AACtC,6DAA2C;AAC3C,uDAAqC;AACrC,mEAAiD;AACjD,yDAAuC;AACvC,0DAAwC;AACxC,yDAAuC;AACvC,sDAAoC;AAEpC,iEAA+C;AAE/C,SAAgB,WAAW,CAAC,QAAQ;IAChC,mBAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,uBAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC/B,iBAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC5B,qBAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC9B,mBAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACjC,CAAC;AAND,kCAMC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/core",
3
- "version": "2.90.0",
3
+ "version": "2.91.0",
4
4
  "description": "MemberJunction: Core Library including Metadata, Application, Entity Retrieval and Manipulation, and Utilities",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -20,7 +20,7 @@
20
20
  "@types/debug": "^4.1.12"
21
21
  },
22
22
  "dependencies": {
23
- "@memberjunction/global": "2.90.0",
23
+ "@memberjunction/global": "2.91.0",
24
24
  "rxjs": "^7.8.1",
25
25
  "zod": "^3.23.8",
26
26
  "debug": "^4.4.0"