@memberjunction/global 2.111.1 → 2.112.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.
- package/dist/Core.d.ts +29 -0
- package/dist/Core.d.ts.map +1 -0
- package/dist/Core.js +58 -0
- package/dist/Core.js.map +1 -0
- package/dist/generic/QueryCache.d.ts +85 -0
- package/dist/generic/QueryCache.d.ts.map +1 -0
- package/dist/generic/QueryCache.js +198 -0
- package/dist/generic/QueryCache.js.map +1 -0
- package/dist/generic/QueryCacheConfig.d.ts +72 -0
- package/dist/generic/QueryCacheConfig.d.ts.map +1 -0
- package/dist/generic/QueryCacheConfig.js +3 -0
- package/dist/generic/QueryCacheConfig.js.map +1 -0
- package/dist/generic/applicationInfo.d.ts +138 -0
- package/dist/generic/applicationInfo.d.ts.map +1 -0
- package/dist/generic/applicationInfo.js +177 -0
- package/dist/generic/applicationInfo.js.map +1 -0
- package/dist/generic/authEvaluator.d.ts +25 -0
- package/dist/generic/authEvaluator.d.ts.map +1 -0
- package/dist/generic/authEvaluator.js +49 -0
- package/dist/generic/authEvaluator.js.map +1 -0
- package/dist/generic/authTypes.d.ts +193 -0
- package/dist/generic/authTypes.d.ts.map +1 -0
- package/dist/generic/authTypes.js +19 -0
- package/dist/generic/authTypes.js.map +1 -0
- package/dist/generic/baseEngine.d.ts +260 -0
- package/dist/generic/baseEngine.d.ts.map +1 -0
- package/dist/generic/baseEngine.js +510 -0
- package/dist/generic/baseEngine.js.map +1 -0
- package/dist/generic/baseEntity.d.ts +691 -0
- package/dist/generic/baseEntity.d.ts.map +1 -0
- package/dist/generic/baseEntity.js +1688 -0
- package/dist/generic/baseEntity.js.map +1 -0
- package/dist/generic/baseInfo.d.ts +24 -0
- package/dist/generic/baseInfo.d.ts.map +1 -0
- package/dist/generic/baseInfo.js +53 -0
- package/dist/generic/baseInfo.js.map +1 -0
- package/dist/generic/compositeKey.d.ts +206 -0
- package/dist/generic/compositeKey.d.ts.map +1 -0
- package/dist/generic/compositeKey.js +412 -0
- package/dist/generic/compositeKey.js.map +1 -0
- package/dist/generic/databaseProviderBase.d.ts +46 -0
- package/dist/generic/databaseProviderBase.d.ts.map +1 -0
- package/dist/generic/databaseProviderBase.js +14 -0
- package/dist/generic/databaseProviderBase.js.map +1 -0
- package/dist/generic/entityInfo.d.ts +983 -0
- package/dist/generic/entityInfo.d.ts.map +1 -0
- package/dist/generic/entityInfo.js +1401 -0
- package/dist/generic/entityInfo.js.map +1 -0
- package/dist/generic/explorerNavigationItem.d.ts +20 -0
- package/dist/generic/explorerNavigationItem.d.ts.map +1 -0
- package/dist/generic/explorerNavigationItem.js +29 -0
- package/dist/generic/explorerNavigationItem.js.map +1 -0
- package/dist/generic/interfaces.d.ts +610 -0
- package/dist/generic/interfaces.d.ts.map +1 -0
- package/dist/generic/interfaces.js +211 -0
- package/dist/generic/interfaces.js.map +1 -0
- package/dist/generic/libraryInfo.d.ts +40 -0
- package/dist/generic/libraryInfo.d.ts.map +1 -0
- package/dist/generic/libraryInfo.js +56 -0
- package/dist/generic/libraryInfo.js.map +1 -0
- package/dist/generic/logging.d.ts +179 -0
- package/dist/generic/logging.d.ts.map +1 -0
- package/dist/generic/logging.js +382 -0
- package/dist/generic/logging.js.map +1 -0
- package/dist/generic/metadata.d.ts +305 -0
- package/dist/generic/metadata.d.ts.map +1 -0
- package/dist/generic/metadata.js +454 -0
- package/dist/generic/metadata.js.map +1 -0
- package/dist/generic/metadataUtil.d.ts +8 -0
- package/dist/generic/metadataUtil.d.ts.map +1 -0
- package/dist/generic/metadataUtil.js +36 -0
- package/dist/generic/metadataUtil.js.map +1 -0
- package/dist/generic/providerBase.d.ts +546 -0
- package/dist/generic/providerBase.d.ts.map +1 -0
- package/dist/generic/providerBase.js +999 -0
- package/dist/generic/providerBase.js.map +1 -0
- package/dist/generic/queryInfo.d.ts +460 -0
- package/dist/generic/queryInfo.d.ts.map +1 -0
- package/dist/generic/queryInfo.js +633 -0
- package/dist/generic/queryInfo.js.map +1 -0
- package/dist/generic/querySQLFilters.d.ts +54 -0
- package/dist/generic/querySQLFilters.d.ts.map +1 -0
- package/dist/generic/querySQLFilters.js +84 -0
- package/dist/generic/querySQLFilters.js.map +1 -0
- package/dist/generic/runQuery.d.ts +96 -0
- package/dist/generic/runQuery.d.ts.map +1 -0
- package/dist/generic/runQuery.js +66 -0
- package/dist/generic/runQuery.js.map +1 -0
- package/dist/generic/runQuerySQLFilterImplementations.d.ts +51 -0
- package/dist/generic/runQuerySQLFilterImplementations.d.ts.map +1 -0
- package/dist/generic/runQuerySQLFilterImplementations.js +238 -0
- package/dist/generic/runQuerySQLFilterImplementations.js.map +1 -0
- package/dist/generic/runReport.d.ts +25 -0
- package/dist/generic/runReport.d.ts.map +1 -0
- package/dist/generic/runReport.js +42 -0
- package/dist/generic/runReport.js.map +1 -0
- package/dist/generic/securityInfo.d.ts +355 -0
- package/dist/generic/securityInfo.d.ts.map +1 -0
- package/dist/generic/securityInfo.js +425 -0
- package/dist/generic/securityInfo.js.map +1 -0
- package/dist/generic/transactionGroup.d.ts +184 -0
- package/dist/generic/transactionGroup.d.ts.map +1 -0
- package/dist/generic/transactionGroup.js +357 -0
- package/dist/generic/transactionGroup.js.map +1 -0
- package/dist/generic/util.d.ts +81 -0
- package/dist/generic/util.d.ts.map +1 -0
- package/dist/generic/util.js +301 -0
- package/dist/generic/util.js.map +1 -0
- package/dist/views/runView.d.ts +150 -0
- package/dist/views/runView.d.ts.map +1 -0
- package/dist/views/runView.js +100 -0
- package/dist/views/runView.js.map +1 -0
- package/dist/views/viewInfo.d.ts +121 -0
- package/dist/views/viewInfo.d.ts.map +1 -0
- package/dist/views/viewInfo.js +182 -0
- package/dist/views/viewInfo.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApplicationInfo = exports.ApplicationEntityInfo = exports.ApplicationSettingInfo = void 0;
|
|
4
|
+
const baseInfo_1 = require("./baseInfo");
|
|
5
|
+
/**
|
|
6
|
+
* Stores configuration settings and preferences for applications, including key-value pairs for runtime parameters and user-specific customizations.
|
|
7
|
+
*/
|
|
8
|
+
class ApplicationSettingInfo extends baseInfo_1.BaseInfo {
|
|
9
|
+
constructor(initData = null) {
|
|
10
|
+
super();
|
|
11
|
+
/**
|
|
12
|
+
* Unique identifier for the application setting
|
|
13
|
+
*/
|
|
14
|
+
this.ID = null;
|
|
15
|
+
/**
|
|
16
|
+
* Name of the application this setting belongs to
|
|
17
|
+
*/
|
|
18
|
+
this.ApplicationName = null;
|
|
19
|
+
/**
|
|
20
|
+
* Name of the setting
|
|
21
|
+
*/
|
|
22
|
+
this.Name = null;
|
|
23
|
+
/**
|
|
24
|
+
* The setting value, can be simple text, numbers, booleans, or JSON for complex configuration objects
|
|
25
|
+
*/
|
|
26
|
+
this.Value = null;
|
|
27
|
+
/**
|
|
28
|
+
* Additional comments about the setting
|
|
29
|
+
*/
|
|
30
|
+
this.Comments = null;
|
|
31
|
+
/**
|
|
32
|
+
* Timestamp when the record was created
|
|
33
|
+
*/
|
|
34
|
+
this.__mj_CreatedAt = null;
|
|
35
|
+
/**
|
|
36
|
+
* Timestamp when the record was last updated
|
|
37
|
+
*/
|
|
38
|
+
this.__mj_UpdatedAt = null;
|
|
39
|
+
this.copyInitData(initData);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.ApplicationSettingInfo = ApplicationSettingInfo;
|
|
43
|
+
/**
|
|
44
|
+
* List of entities within each application. An application can have any number of entities and an entity can be part of any number of applications.
|
|
45
|
+
*/
|
|
46
|
+
class ApplicationEntityInfo extends baseInfo_1.BaseInfo {
|
|
47
|
+
/**
|
|
48
|
+
* Gets the full entity metadata for the entity linked to this application.
|
|
49
|
+
* @returns {EntityInfo} The entity information object
|
|
50
|
+
*/
|
|
51
|
+
get EntityInfo() {
|
|
52
|
+
return this._EntityInfo;
|
|
53
|
+
}
|
|
54
|
+
_setEntity(entity) {
|
|
55
|
+
this._EntityInfo = entity;
|
|
56
|
+
}
|
|
57
|
+
constructor(initData = null) {
|
|
58
|
+
super();
|
|
59
|
+
/**
|
|
60
|
+
* Unique identifier for the application entity relationship
|
|
61
|
+
*/
|
|
62
|
+
this.ID = null;
|
|
63
|
+
/**
|
|
64
|
+
* Name of the application
|
|
65
|
+
*/
|
|
66
|
+
this.ApplicationName = null;
|
|
67
|
+
/**
|
|
68
|
+
* ID of the entity linked to this application
|
|
69
|
+
*/
|
|
70
|
+
this.EntityID = null;
|
|
71
|
+
/**
|
|
72
|
+
* Display order of this entity within the application, lower numbers appear first in navigation and menus
|
|
73
|
+
*/
|
|
74
|
+
this.Sequence = null;
|
|
75
|
+
/**
|
|
76
|
+
* When set to true, the entity will be included by default for a new user when they first access the application in question
|
|
77
|
+
*/
|
|
78
|
+
this.DefaultForNewUser = null;
|
|
79
|
+
/**
|
|
80
|
+
* Application name (denormalized field)
|
|
81
|
+
*/
|
|
82
|
+
this.Application = null;
|
|
83
|
+
/**
|
|
84
|
+
* Entity name (denormalized field)
|
|
85
|
+
*/
|
|
86
|
+
this.Entity = null;
|
|
87
|
+
/**
|
|
88
|
+
* Base table name of the entity
|
|
89
|
+
*/
|
|
90
|
+
this.EntityBaseTable = null;
|
|
91
|
+
/**
|
|
92
|
+
* Code-friendly name of the entity
|
|
93
|
+
*/
|
|
94
|
+
this.EntityCodeName = null;
|
|
95
|
+
/**
|
|
96
|
+
* Class name of the entity
|
|
97
|
+
*/
|
|
98
|
+
this.EntityClassName = null;
|
|
99
|
+
/**
|
|
100
|
+
* Code-friendly name of the entity's base table
|
|
101
|
+
*/
|
|
102
|
+
this.EntityBaseTableCodeName = null;
|
|
103
|
+
this._EntityInfo = null;
|
|
104
|
+
this.copyInitData(initData);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
exports.ApplicationEntityInfo = ApplicationEntityInfo;
|
|
108
|
+
/**
|
|
109
|
+
* Applications are used to group entities in the user interface for ease of user access.
|
|
110
|
+
* Provides organizational structure for presenting entities to users.
|
|
111
|
+
*/
|
|
112
|
+
class ApplicationInfo extends baseInfo_1.BaseInfo {
|
|
113
|
+
/**
|
|
114
|
+
* Gets the list of entities that belong to this application with their display sequence.
|
|
115
|
+
* @returns {ApplicationEntityInfo[]} Array of application entity mappings
|
|
116
|
+
*/
|
|
117
|
+
get ApplicationEntities() {
|
|
118
|
+
return this._ApplicationEntities;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Gets the configuration settings for this application.
|
|
122
|
+
* @returns {ApplicationSettingInfo[]} Array of key-value settings
|
|
123
|
+
*/
|
|
124
|
+
get ApplicationSettings() {
|
|
125
|
+
return this._ApplicationSettings;
|
|
126
|
+
}
|
|
127
|
+
constructor(initData = null, md) {
|
|
128
|
+
super();
|
|
129
|
+
/**
|
|
130
|
+
* Unique identifier for the application
|
|
131
|
+
*/
|
|
132
|
+
this.ID = null;
|
|
133
|
+
/**
|
|
134
|
+
* Name of the application
|
|
135
|
+
*/
|
|
136
|
+
this.Name = null;
|
|
137
|
+
/**
|
|
138
|
+
* Description of the application
|
|
139
|
+
*/
|
|
140
|
+
this.Description = null;
|
|
141
|
+
/**
|
|
142
|
+
* CSS class information for the display icon for each application
|
|
143
|
+
*/
|
|
144
|
+
this.Icon = null;
|
|
145
|
+
/**
|
|
146
|
+
* If turned on, when a new user first uses the MJ Explorer app, the application records with this turned on will have this application included in their selected application list
|
|
147
|
+
*/
|
|
148
|
+
this.DefaultForNewUser = null;
|
|
149
|
+
/**
|
|
150
|
+
* Comma-delimited list of schema names where entities will be automatically added to the application when created in those schemas
|
|
151
|
+
*/
|
|
152
|
+
this.SchemaAutoAddNewEntities = null;
|
|
153
|
+
this._ApplicationEntities = [];
|
|
154
|
+
this._ApplicationSettings = [];
|
|
155
|
+
this.copyInitData(initData);
|
|
156
|
+
if (initData) {
|
|
157
|
+
let ae = initData.ApplicationEntities || initData._ApplicationEntities;
|
|
158
|
+
if (ae) {
|
|
159
|
+
const mdEntities = md.Entities;
|
|
160
|
+
this._ApplicationEntities = [];
|
|
161
|
+
for (let i = 0; i < ae.length; i++) {
|
|
162
|
+
//
|
|
163
|
+
const aei = new ApplicationEntityInfo(ae[i]);
|
|
164
|
+
this._ApplicationEntities.push(aei);
|
|
165
|
+
const match = mdEntities.find(e => e.ID == ae[i].EntityID);
|
|
166
|
+
if (match)
|
|
167
|
+
aei._setEntity(match);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
let as = initData.ApplicationSettings || initData._ApplicationSettings;
|
|
171
|
+
if (as)
|
|
172
|
+
this._ApplicationSettings = as.map(s => new ApplicationSettingInfo(s));
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
exports.ApplicationInfo = ApplicationInfo;
|
|
177
|
+
//# sourceMappingURL=applicationInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applicationInfo.js","sourceRoot":"","sources":["../../src/generic/applicationInfo.ts"],"names":[],"mappings":";;;AAAA,yCAAqC;AAIrC;;GAEG;AACH,MAAa,sBAAuB,SAAQ,mBAAQ;IAoChD,YAAa,WAAgB,IAAI;QAC7B,KAAK,EAAE,CAAA;QApCX;;WAEG;QACH,OAAE,GAAW,IAAI,CAAA;QAEjB;;WAEG;QACH,oBAAe,GAAW,IAAI,CAAA;QAE9B;;WAEG;QACH,SAAI,GAAW,IAAI,CAAA;QAEnB;;WAEG;QACH,UAAK,GAAW,IAAI,CAAA;QAEpB;;WAEG;QACH,aAAQ,GAAW,IAAI,CAAA;QAEvB;;WAEG;QACH,mBAAc,GAAS,IAAI,CAAA;QAE3B;;WAEG;QACH,mBAAc,GAAS,IAAI,CAAA;QAIvB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;IAC/B,CAAC;CACJ;AAxCD,wDAwCC;AAED;;GAEG;AACH,MAAa,qBAAsB,SAAQ,mBAAQ;IAyD/C;;;OAGG;IACH,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,WAAW,CAAA;IAC3B,CAAC;IAED,UAAU,CAAC,MAAkB;QACzB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAA;IAC7B,CAAC;IAED,YAAa,WAAgB,IAAI;QAC7B,KAAK,EAAE,CAAA;QArEX;;WAEG;QACH,OAAE,GAAW,IAAI,CAAA;QAEjB;;WAEG;QACH,oBAAe,GAAW,IAAI,CAAA;QAE9B;;WAEG;QACH,aAAQ,GAAW,IAAI,CAAA;QAEvB;;WAEG;QACH,aAAQ,GAAW,IAAI,CAAA;QAEvB;;WAEG;QACH,sBAAiB,GAAY,IAAI,CAAA;QAEjC;;WAEG;QACH,gBAAW,GAAW,IAAI,CAAA;QAE1B;;WAEG;QACH,WAAM,GAAW,IAAI,CAAA;QAErB;;WAEG;QACH,oBAAe,GAAW,IAAI,CAAA;QAE9B;;WAEG;QACH,mBAAc,GAAW,IAAI,CAAA;QAE7B;;WAEG;QACH,oBAAe,GAAW,IAAI,CAAA;QAE9B;;WAEG;QACH,4BAAuB,GAAW,IAAI,CAAA;QAE9B,gBAAW,GAAe,IAAI,CAAA;QAelC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;IAC/B,CAAC;CACJ;AAzED,sDAyEC;AAED;;;GAGG;AACH,MAAa,eAAgB,SAAQ,mBAAQ;IAgCzC;;;OAGG;IACH,IAAW,mBAAmB;QAC1B,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IAGD;;;OAGG;IACH,IAAW,mBAAmB;QAC1B,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IAED,YAAa,WAAgB,IAAI,EAAE,EAAqB;QACpD,KAAK,EAAE,CAAA;QAjDX;;WAEG;QACH,OAAE,GAAW,IAAI,CAAA;QAEjB;;WAEG;QACH,SAAI,GAAW,IAAI,CAAA;QAEnB;;WAEG;QACH,gBAAW,GAAW,IAAI,CAAA;QAE1B;;WAEG;QACH,SAAI,GAAW,IAAI,CAAA;QAEnB;;WAEG;QACH,sBAAiB,GAAY,IAAI,CAAA;QAEjC;;WAEG;QACH,6BAAwB,GAAW,IAAI,CAAA;QAE/B,yBAAoB,GAA4B,EAAE,CAAA;QASlD,yBAAoB,GAA6B,EAAE,CAAA;QAWvD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;QAC3B,IAAI,QAAQ,EAAE,CAAC;YACX,IAAI,EAAE,GAAG,QAAQ,CAAC,mBAAmB,IAAI,QAAQ,CAAC,oBAAoB,CAAC;YACvE,IAAI,EAAE,EAAE,CAAC;gBACL,MAAM,UAAU,GAAG,EAAE,CAAC,QAAQ,CAAC;gBAC/B,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;gBAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACjC,GAAG;oBACH,MAAM,GAAG,GAAG,IAAI,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC5C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;oBAEnC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;oBAC1D,IAAI,KAAK;wBACL,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;gBAC7B,CAAC;YACL,CAAC;YAED,IAAI,EAAE,GAAG,QAAQ,CAAC,mBAAmB,IAAI,QAAQ,CAAC,oBAAoB,CAAC;YACvE,IAAI,EAAE;gBACF,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,CAAC;IACL,CAAC;CAEJ;AA1ED,0CA0EC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { AuthorizationInfo, UserInfo } from "./securityInfo";
|
|
2
|
+
/**
|
|
3
|
+
* This class handles the execution of various types of authorization evaluations and contains utility methods as well.
|
|
4
|
+
*/
|
|
5
|
+
export declare class AuthorizationEvaluator {
|
|
6
|
+
/**
|
|
7
|
+
* Determines if the current user can execute actions under the provided authorization.
|
|
8
|
+
* @param auth
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
CurrentUserCanExecute(auth: AuthorizationInfo): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Determines if a given user can execute actions under the provided authorization.
|
|
14
|
+
*
|
|
15
|
+
* @param {AuthorizationInfo} auth - The authorization to check for execution rights.
|
|
16
|
+
* @param {UserInfo} user - The user to check for execution rights.
|
|
17
|
+
* @returns {boolean} True if the user can execute actions under the authorization, otherwise false.
|
|
18
|
+
*/
|
|
19
|
+
UserCanExecute(auth: AuthorizationInfo, user: UserInfo): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Returns an array of authorizations that a given user can execute based on their roles.
|
|
22
|
+
*/
|
|
23
|
+
GetUserAuthorizations(user: UserInfo): AuthorizationInfo[];
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=authEvaluator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authEvaluator.d.ts","sourceRoot":"","sources":["../../src/generic/authEvaluator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE7D;;GAEG;AACH,qBAAa,sBAAsB;IAC/B;;;;OAIG;IACI,qBAAqB,CAAC,IAAI,EAAE,iBAAiB;IAQpD;;;;;;OAMG;IACI,cAAc,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO;IAIvE;;OAEG;IACI,qBAAqB,CAAC,IAAI,EAAE,QAAQ,GAAG,iBAAiB,EAAE;CAcpE"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AuthorizationEvaluator = void 0;
|
|
4
|
+
const metadata_1 = require("./metadata");
|
|
5
|
+
/**
|
|
6
|
+
* This class handles the execution of various types of authorization evaluations and contains utility methods as well.
|
|
7
|
+
*/
|
|
8
|
+
class AuthorizationEvaluator {
|
|
9
|
+
/**
|
|
10
|
+
* Determines if the current user can execute actions under the provided authorization.
|
|
11
|
+
* @param auth
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
14
|
+
CurrentUserCanExecute(auth) {
|
|
15
|
+
const md = new metadata_1.Metadata();
|
|
16
|
+
if (!md.CurrentUser)
|
|
17
|
+
throw new Error('No current user is set for authorization evaluation');
|
|
18
|
+
return this.UserCanExecute(auth, md.CurrentUser);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Determines if a given user can execute actions under the provided authorization.
|
|
22
|
+
*
|
|
23
|
+
* @param {AuthorizationInfo} auth - The authorization to check for execution rights.
|
|
24
|
+
* @param {UserInfo} user - The user to check for execution rights.
|
|
25
|
+
* @returns {boolean} True if the user can execute actions under the authorization, otherwise false.
|
|
26
|
+
*/
|
|
27
|
+
UserCanExecute(auth, user) {
|
|
28
|
+
return auth.UserCanExecute(user);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Returns an array of authorizations that a given user can execute based on their roles.
|
|
32
|
+
*/
|
|
33
|
+
GetUserAuthorizations(user) {
|
|
34
|
+
const md = new metadata_1.Metadata();
|
|
35
|
+
const ret = [];
|
|
36
|
+
if (user && user.UserRoles) {
|
|
37
|
+
for (const a of md.Authorizations) {
|
|
38
|
+
// for each system authorization, check to see if any of our roles can execute it
|
|
39
|
+
if (a.UserCanExecute(user))
|
|
40
|
+
ret.push(a);
|
|
41
|
+
}
|
|
42
|
+
return ret;
|
|
43
|
+
}
|
|
44
|
+
else
|
|
45
|
+
throw new Error('User must be provided to evaluate authorizations');
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.AuthorizationEvaluator = AuthorizationEvaluator;
|
|
49
|
+
//# sourceMappingURL=authEvaluator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authEvaluator.js","sourceRoot":"","sources":["../../src/generic/authEvaluator.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;AAGtC;;GAEG;AACH,MAAa,sBAAsB;IAC/B;;;;OAIG;IACI,qBAAqB,CAAC,IAAuB;QAChD,MAAM,EAAE,GAAG,IAAI,mBAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC,EAAE,CAAC,WAAW;YACf,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;QAE1E,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,CAAA;IACpD,CAAC;IAED;;;;;;OAMG;IACI,cAAc,CAAC,IAAuB,EAAE,IAAc;QACzD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;IACpC,CAAC;IAED;;OAEG;IACI,qBAAqB,CAAC,IAAc;QACvC,MAAM,EAAE,GAAG,IAAI,mBAAQ,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAwB,EAAE,CAAA;QACnC,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACzB,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,cAAc,EAAE,CAAC;gBAChC,iFAAiF;gBACjF,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC;oBACtB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;YACD,OAAO,GAAG,CAAC;QACf,CAAC;;YAEG,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;IAC3E,CAAC;CACJ;AA1CD,wDA0CC"}
|
|
@@ -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"}
|