@memberjunction/core-entities 6.2.0-edge.2 → 6.2.0-edge.4
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/.tsbuildinfo +1 -1
- package/dist/custom/ConversationForkAccess.d.ts +15 -0
- package/dist/custom/ConversationForkAccess.d.ts.map +1 -0
- package/dist/custom/ConversationForkAccess.js +28 -0
- package/dist/custom/ConversationForkAccess.js.map +1 -0
- package/dist/custom/ConversationWriteAccess.d.ts +16 -0
- package/dist/custom/ConversationWriteAccess.d.ts.map +1 -0
- package/dist/custom/ConversationWriteAccess.js +34 -0
- package/dist/custom/ConversationWriteAccess.js.map +1 -0
- package/dist/custom/FormScope/FormContributionClaims.d.ts +20 -0
- package/dist/custom/FormScope/FormContributionClaims.d.ts.map +1 -0
- package/dist/custom/FormScope/FormContributionClaims.js +33 -0
- package/dist/custom/FormScope/FormContributionClaims.js.map +1 -0
- package/dist/custom/FormScope/FormContributionLifecycle.d.ts +43 -0
- package/dist/custom/FormScope/FormContributionLifecycle.d.ts.map +1 -0
- package/dist/custom/FormScope/FormContributionLifecycle.js +47 -0
- package/dist/custom/FormScope/FormContributionLifecycle.js.map +1 -0
- package/dist/custom/FormScope/FormContributionRow.d.ts +40 -0
- package/dist/custom/FormScope/FormContributionRow.d.ts.map +1 -0
- package/dist/custom/FormScope/FormContributionRow.js +84 -0
- package/dist/custom/FormScope/FormContributionRow.js.map +1 -0
- package/dist/custom/FormScope/FormPanelHides.d.ts +14 -0
- package/dist/custom/FormScope/FormPanelHides.d.ts.map +1 -0
- package/dist/custom/FormScope/FormPanelHides.js +32 -0
- package/dist/custom/FormScope/FormPanelHides.js.map +1 -0
- package/dist/custom/FormScope/FormScopeRules.d.ts +220 -0
- package/dist/custom/FormScope/FormScopeRules.d.ts.map +1 -0
- package/dist/custom/FormScope/FormScopeRules.js +295 -0
- package/dist/custom/FormScope/FormScopeRules.js.map +1 -0
- package/dist/custom/MJConversationBranchEntityExtended.d.ts +30 -0
- package/dist/custom/MJConversationBranchEntityExtended.d.ts.map +1 -0
- package/dist/custom/MJConversationBranchEntityExtended.js +120 -0
- package/dist/custom/MJConversationBranchEntityExtended.js.map +1 -0
- package/dist/custom/MJConversationDetailEntityExtended.d.ts.map +1 -1
- package/dist/custom/MJConversationDetailEntityExtended.js +15 -25
- package/dist/custom/MJConversationDetailEntityExtended.js.map +1 -1
- package/dist/custom/MJDashboardEntityExtended.d.ts.map +1 -1
- package/dist/custom/MJDashboardEntityExtended.js +3 -0
- package/dist/custom/MJDashboardEntityExtended.js.map +1 -1
- package/dist/custom/ResourcePermissions/ResourcePermissionEngine.d.ts.map +1 -1
- package/dist/custom/ResourcePermissions/ResourcePermissionEngine.js +14 -13
- package/dist/custom/ResourcePermissions/ResourcePermissionEngine.js.map +1 -1
- package/dist/engines/FileStorageEngine.d.ts +40 -0
- package/dist/engines/FileStorageEngine.d.ts.map +1 -1
- package/dist/engines/FileStorageEngine.js +49 -0
- package/dist/engines/FileStorageEngine.js.map +1 -1
- package/dist/engines/IdentityClaimEngine.d.ts +15 -2
- package/dist/engines/IdentityClaimEngine.d.ts.map +1 -1
- package/dist/engines/IdentityClaimEngine.js.map +1 -1
- package/dist/engines/QueryEngine.d.ts.map +1 -1
- package/dist/engines/QueryEngine.js +2 -1
- package/dist/engines/QueryEngine.js.map +1 -1
- package/dist/engines/UserInfoEngine.d.ts +16 -10
- package/dist/engines/UserInfoEngine.d.ts.map +1 -1
- package/dist/engines/UserInfoEngine.js +35 -25
- package/dist/engines/UserInfoEngine.js.map +1 -1
- package/dist/engines/artifacts.d.ts.map +1 -1
- package/dist/engines/artifacts.js +1 -0
- package/dist/engines/artifacts.js.map +1 -1
- package/dist/engines/component-metadata.d.ts +3 -1
- package/dist/engines/component-metadata.d.ts.map +1 -1
- package/dist/engines/component-metadata.js +12 -5
- package/dist/engines/component-metadata.js.map +1 -1
- package/dist/engines/conversations.d.ts +359 -34
- package/dist/engines/conversations.d.ts.map +1 -1
- package/dist/engines/conversations.js +611 -57
- package/dist/engines/conversations.js.map +1 -1
- package/dist/engines/interactive-forms.d.ts +128 -9
- package/dist/engines/interactive-forms.d.ts.map +1 -1
- package/dist/engines/interactive-forms.js +268 -14
- package/dist/engines/interactive-forms.js.map +1 -1
- package/dist/generated/entities/__mj.d.ts +6038 -393
- package/dist/generated/entities/__mj.d.ts.map +1 -1
- package/dist/generated/entities/__mj.js +26601 -20397
- package/dist/generated/entities/__mj.js.map +1 -1
- package/dist/generated/remote_operations.d.ts +262 -0
- package/dist/generated/remote_operations.d.ts.map +1 -1
- package/dist/generated/remote_operations.js +126 -0
- package/dist/generated/remote_operations.js.map +1 -1
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
- package/readme.md +1 -1
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { BaseEntity, BaseEntityResult, LogError, RunView } from '@memberjunction/core';
|
|
8
|
+
import { EscapeSQLString, RegisterClass } from '@memberjunction/global';
|
|
9
|
+
import { MJConversationBranchEntity } from '../generated/entity_subclasses.js';
|
|
10
|
+
import { UserMayWriteConversation } from './ConversationWriteAccess.js';
|
|
11
|
+
import { UserCanFork } from './ConversationForkAccess.js';
|
|
12
|
+
/** The refusal recorded when a person without the `Conversations: Fork` authorization creates a fork. */
|
|
13
|
+
const FORK_CREATE_REFUSED_MESSAGE = 'You do not have permission to fork conversations.';
|
|
14
|
+
/** The refusal recorded when a fork that still has messages or child forks is deleted. */
|
|
15
|
+
const FORK_DELETE_REFUSED_MESSAGE = 'A fork that has messages or forks under it cannot be deleted.';
|
|
16
|
+
/** The refusal recorded when the delete guard cannot read the fork's messages or child forks. */
|
|
17
|
+
const FORK_DELETE_CHECK_FAILED_MESSAGE = 'Unable to check whether the fork has messages or forks under it.';
|
|
18
|
+
/**
|
|
19
|
+
* Branch rows (forks) follow the message write rule: owner or Edit/Owner grant. Creating one on the
|
|
20
|
+
* server also needs the `Conversations: Fork` authorization; a save with no context user is trusted.
|
|
21
|
+
*
|
|
22
|
+
* Delete is refused while the fork still has its own `ConversationDetail` rows or child forks: the
|
|
23
|
+
* generated delete procedure clears `BranchID` on those rows and `ParentBranchID` on those children,
|
|
24
|
+
* which would move them into Main. Deleting a conversation does not use this class; its delete
|
|
25
|
+
* procedure removes the forks and rows in SQL.
|
|
26
|
+
*/
|
|
27
|
+
let MJConversationBranchEntityExtended = class MJConversationBranchEntityExtended extends MJConversationBranchEntity {
|
|
28
|
+
async Save(options) {
|
|
29
|
+
if (!this.IsSaved && !this.contextUserMayFork()) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
if (!(await this.currentUserMayWrite(this.IsSaved ? 'update' : 'create'))) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
return super.Save(options);
|
|
36
|
+
}
|
|
37
|
+
async Delete(options) {
|
|
38
|
+
if (!(await this.currentUserMayWrite('delete'))) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
if (!(await this.hasNoRowsOrChildBranches())) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
return super.Delete(options);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* True when this save may create a fork. On a database provider with a context user, that user must
|
|
48
|
+
* hold `Conversations: Fork`; records the refusal otherwise. Other providers leave the check to the
|
|
49
|
+
* server, and a save with no context user is trusted.
|
|
50
|
+
*/
|
|
51
|
+
contextUserMayFork() {
|
|
52
|
+
const provider = this.ProviderToUse;
|
|
53
|
+
const user = this.ContextCurrentUser;
|
|
54
|
+
if (provider?.ProviderType !== 'Database' || !user) {
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
if (UserCanFork(user, provider)) {
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
this.recordDenied(FORK_CREATE_REFUSED_MESSAGE, 'create');
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
async currentUserMayWrite(resultType) {
|
|
64
|
+
try {
|
|
65
|
+
const decision = await UserMayWriteConversation(this.ProviderToUse, this.ContextCurrentUser, this.ConversationID);
|
|
66
|
+
if (!decision.Allowed) {
|
|
67
|
+
this.recordDenied(decision.Reason ?? 'Permission denied.', resultType);
|
|
68
|
+
}
|
|
69
|
+
return decision.Allowed;
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
LogError(`MJConversationBranchEntityExtended: permission check failed for conversation ${this.ConversationID}: ${error instanceof Error ? error.message : String(error)}`);
|
|
73
|
+
this.recordDenied('Unable to verify conversation permissions.', resultType);
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* True when no `ConversationDetail` row is on this fork and no fork names it as its parent.
|
|
79
|
+
* Records the refusal and returns false otherwise, and when either count cannot be read.
|
|
80
|
+
*/
|
|
81
|
+
async hasNoRowsOrChildBranches() {
|
|
82
|
+
const id = EscapeSQLString(this.ID);
|
|
83
|
+
try {
|
|
84
|
+
const [rows, children] = await new RunView(this.RunViewProviderToUse).RunViews([
|
|
85
|
+
{ EntityName: 'MJ: Conversation Details', ExtraFilter: `BranchID='${id}'`, ResultType: 'count_only' },
|
|
86
|
+
{ EntityName: 'MJ: Conversation Branches', ExtraFilter: `ParentBranchID='${id}'`, ResultType: 'count_only' },
|
|
87
|
+
], this.ContextCurrentUser);
|
|
88
|
+
if (!rows?.Success || !children?.Success) {
|
|
89
|
+
LogError(`MJConversationBranchEntityExtended: delete check failed for fork ${this.ID}: ${rows?.ErrorMessage ?? ''} ${children?.ErrorMessage ?? ''}`.trim());
|
|
90
|
+
this.recordDenied(FORK_DELETE_CHECK_FAILED_MESSAGE, 'delete');
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
if (rows.TotalRowCount > 0 || children.TotalRowCount > 0) {
|
|
94
|
+
this.recordDenied(FORK_DELETE_REFUSED_MESSAGE, 'delete');
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
LogError(`MJConversationBranchEntityExtended: delete check failed for fork ${this.ID}: ${error instanceof Error ? error.message : String(error)}`);
|
|
101
|
+
this.recordDenied(FORK_DELETE_CHECK_FAILED_MESSAGE, 'delete');
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
recordDenied(message, resultType) {
|
|
106
|
+
const result = new BaseEntityResult();
|
|
107
|
+
result.Success = false;
|
|
108
|
+
result.Type = resultType;
|
|
109
|
+
result.Message = message;
|
|
110
|
+
result.StartedAt = new Date();
|
|
111
|
+
result.EndedAt = new Date();
|
|
112
|
+
this.RegisterResultHistoryEntry(result);
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
MJConversationBranchEntityExtended = __decorate([
|
|
116
|
+
RegisterClass(BaseEntity, 'MJ: Conversation Branches')
|
|
117
|
+
], MJConversationBranchEntityExtended);
|
|
118
|
+
export { MJConversationBranchEntityExtended };
|
|
119
|
+
export function LoadMJConversationBranchEntityExtended() { }
|
|
120
|
+
//# sourceMappingURL=MJConversationBranchEntityExtended.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MJConversationBranchEntityExtended.js","sourceRoot":"","sources":["../../src/custom/MJConversationBranchEntityExtended.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MJConversationDetailEntityExtended.d.ts","sourceRoot":"","sources":["../../src/custom/MJConversationDetailEntityExtended.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,mBAAmB,EACnB,iBAAiB,EAGpB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,
|
|
1
|
+
{"version":3,"file":"MJConversationDetailEntityExtended.d.ts","sourceRoot":"","sources":["../../src/custom/MJConversationDetailEntityExtended.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,mBAAmB,EACnB,iBAAiB,EAGpB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAW5E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBACa,kCAAmC,SAAQ,0BAA0B;IAC/D,IAAI,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IAOnD,MAAM,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;YAOxD,mBAAmB;IA2DjC;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAS7B;;;;;;;;OAQG;IACH,OAAO,CAAC,YAAY;CASvB;AAED,6FAA6F;AAC7F,wBAAgB,sCAAsC,IAAI,IAAI,CAE7D"}
|
|
@@ -5,11 +5,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
import { BaseEntity, BaseEntityResult, LogError } from '@memberjunction/core';
|
|
8
|
-
import { RegisterClass
|
|
8
|
+
import { RegisterClass } from '@memberjunction/global';
|
|
9
9
|
import { MJConversationDetailEntity } from '../generated/entity_subclasses.js';
|
|
10
|
-
import {
|
|
11
|
-
/** `MJ: Resource Types.ID` for Conversations — seeded in the resource type catalog. */
|
|
12
|
-
const CONVERSATIONS_RESOURCE_TYPE_ID = '81D4BC3D-9FEB-EF11-B01A-286B35C04427';
|
|
10
|
+
import { UserMayWriteConversation } from './ConversationWriteAccess.js';
|
|
13
11
|
/**
|
|
14
12
|
* Fields that represent the conversation owner's evaluation of an AI message.
|
|
15
13
|
* Storage is a single value per message (no per-user rating column), so only
|
|
@@ -65,15 +63,17 @@ let MJConversationDetailEntityExtended = class MJConversationDetailEntityExtende
|
|
|
65
63
|
// No user context on a server save = system operation; allow.
|
|
66
64
|
return true;
|
|
67
65
|
}
|
|
66
|
+
// A message created by the record-cloning engine, as part of copying a conversation into a
|
|
67
|
+
// new user's account. The engine has already authorized that copy (Owner-only, the clone
|
|
68
|
+
// authorization, and conversations are copyable only from a template user), and the
|
|
69
|
+
// conversation it lands in belongs to the new user, not to whoever runs the clone. Only
|
|
70
|
+
// creates qualify: updating or deleting an existing message keeps the checks below.
|
|
71
|
+
if (resultType === 'create' && this.CloneContext) {
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
68
74
|
try {
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
if (!loaded) {
|
|
72
|
-
// Parent conversation missing — let the FK/base save handle it.
|
|
73
|
-
return true;
|
|
74
|
-
}
|
|
75
|
-
const isOwner = !!conversation.UserID && UUIDsEqual(conversation.UserID, user.ID);
|
|
76
|
-
if (isOwner) {
|
|
75
|
+
const decision = await UserMayWriteConversation(provider, user, this.ConversationID);
|
|
76
|
+
if (decision.IsOwner) {
|
|
77
77
|
return true;
|
|
78
78
|
}
|
|
79
79
|
// Non-owners are *never* allowed to touch the rating fields, even
|
|
@@ -84,21 +84,11 @@ let MJConversationDetailEntityExtended = class MJConversationDetailEntityExtende
|
|
|
84
84
|
this.recordDenied('Only the conversation owner can set or change the rating and feedback on this message.', resultType);
|
|
85
85
|
return false;
|
|
86
86
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
const grant = engine
|
|
90
|
-
.GetUserAvailableResources(user, CONVERSATIONS_RESOURCE_TYPE_ID)
|
|
91
|
-
.find((p) => UUIDsEqual(p.ResourceRecordID, this.ConversationID));
|
|
92
|
-
if (!grant) {
|
|
93
|
-
this.recordDenied('You do not have access to this conversation.', resultType);
|
|
87
|
+
if (!decision.Allowed) {
|
|
88
|
+
this.recordDenied(decision.Reason ?? 'Permission denied.', resultType);
|
|
94
89
|
return false;
|
|
95
90
|
}
|
|
96
|
-
|
|
97
|
-
return true;
|
|
98
|
-
}
|
|
99
|
-
// Only View — block writes.
|
|
100
|
-
this.recordDenied('You have view-only access to this conversation.', resultType);
|
|
101
|
-
return false;
|
|
91
|
+
return true;
|
|
102
92
|
}
|
|
103
93
|
catch (error) {
|
|
104
94
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MJConversationDetailEntityExtended.js","sourceRoot":"","sources":["../../src/custom/MJConversationDetailEntityExtended.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EACH,UAAU,EACV,gBAAgB,EAIhB,QAAQ,EACX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"MJConversationDetailEntityExtended.js","sourceRoot":"","sources":["../../src/custom/MJConversationDetailEntityExtended.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MJDashboardEntityExtended.d.ts","sourceRoot":"","sources":["../../src/custom/MJDashboardEntityExtended.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,mBAAmB,EAA+B,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAkD,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1G,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AA+CnE,qBACa,yBAA0B,SAAQ,iBAAiB;IACrD,SAAS,IAAI,OAAO;
|
|
1
|
+
{"version":3,"file":"MJDashboardEntityExtended.d.ts","sourceRoot":"","sources":["../../src/custom/MJDashboardEntityExtended.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,mBAAmB,EAA+B,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAkD,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1G,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AA+CnE,qBACa,yBAA0B,SAAQ,iBAAiB;IACrD,SAAS,IAAI,OAAO;IA+B3B;;;;OAIG;IACa,QAAQ,IAAI,gBAAgB;IA8G5C;;;OAGG;IACmB,MAAM,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;CAiDhF"}
|
|
@@ -64,9 +64,12 @@ let MJDashboardEntityExtended = class MJDashboardEntityExtended extends MJDashbo
|
|
|
64
64
|
};
|
|
65
65
|
const configJSON = JSON.stringify(defaultConfigDetails);
|
|
66
66
|
this.Set("UIConfigDetails", configJSON);
|
|
67
|
+
// Re-arm the first set, so a later load sets both the value and the old value
|
|
68
|
+
this.GetFieldByName("UIConfigDetails")?.ResetNeverSetFlag();
|
|
67
69
|
const md = this.ProviderToUse;
|
|
68
70
|
if (md.CurrentUser) {
|
|
69
71
|
this.Set("UserID", md.CurrentUser.ID);
|
|
72
|
+
this.GetFieldByName("UserID")?.ResetNeverSetFlag();
|
|
70
73
|
}
|
|
71
74
|
return true;
|
|
72
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MJDashboardEntityExtended.js","sourceRoot":"","sources":["../../src/custom/MJDashboardEntityExtended.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAA0C,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,mBAAmB,EAAoB,MAAM,wBAAwB,CAAC;AAC1G,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,SAAS,eAAe,CAAC,MAAyB;IAC9C,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,kBAAkB,EAAE,CAAC;QACzC,mFAAmF;QACnF,iFAAiF;QACjF,qDAAqD;QACrD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,KAAK,EAAE,QAAQ,CAAC;IAClC,OAAO,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;AAC7F,CAAC;AAGM,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,iBAAiB;IACrD,SAAS;QACZ,IAAG,CAAC;YACA,KAAK,CAAC,SAAS,EAAE,CAAC;YAClB,MAAM,oBAAoB,GAAG;gBACzB,OAAO,EAAE,CAAC;gBACV,SAAS,EAAE,GAAG;gBACd,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,EAAE;aACZ,CAAA;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;YACxD,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"MJDashboardEntityExtended.js","sourceRoot":"","sources":["../../src/custom/MJDashboardEntityExtended.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResourcePermissionEngine.d.ts","sourceRoot":"","sources":["../../../src/custom/ResourcePermissions/ResourcePermissionEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA4B,iBAAiB,EAAoC,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE3I,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAErG;;GAEG;AACH,qBACa,wBAAyB,SAAQ,UAAU,CAAC,wBAAwB,CAAC;IAC9E;;OAEG;IACH,WAAkB,QAAQ,IAAI,wBAAwB,CAErD;IAED,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,cAAc,CAEpB;IAEW,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,iBAAiB;IAkBhG,IAAW,aAAa,IAAI,oBAAoB,EAAE,CAEjD;IAED,IAAW,WAAW,IAAI,0BAA0B,EAAE,CAErD;IAED;;;;;OAKG;IACI,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI;IAQ3E;;;;;;OAMG;IACI,sBAAsB,CAAC,cAAc,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,0BAA0B,EAAE;IAI7G;;;;;;;;;;;;;;;;;;OAkBG;IACI,8BAA8B,CACjC,cAAc,EAAE,MAAM,EACtB,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,QAAQ,GACf,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI;IAiCnC;;;;;;OAMG;IACI,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,0BAA0B,EAAE;
|
|
1
|
+
{"version":3,"file":"ResourcePermissionEngine.d.ts","sourceRoot":"","sources":["../../../src/custom/ResourcePermissions/ResourcePermissionEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA4B,iBAAiB,EAAoC,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE3I,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAErG;;GAEG;AACH,qBACa,wBAAyB,SAAQ,UAAU,CAAC,wBAAwB,CAAC;IAC9E;;OAEG;IACH,WAAkB,QAAQ,IAAI,wBAAwB,CAErD;IAED,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,cAAc,CAEpB;IAEW,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,iBAAiB;IAkBhG,IAAW,aAAa,IAAI,oBAAoB,EAAE,CAEjD;IAED,IAAW,WAAW,IAAI,0BAA0B,EAAE,CAErD;IAED;;;;;OAKG;IACI,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI;IAQ3E;;;;;;OAMG;IACI,sBAAsB,CAAC,cAAc,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,0BAA0B,EAAE;IAI7G;;;;;;;;;;;;;;;;;;OAkBG;IACI,8BAA8B,CACjC,cAAc,EAAE,MAAM,EACtB,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,QAAQ,GACf,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI;IAiCnC;;;;;;OAMG;IACI,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,0BAA0B,EAAE;IAwCvG;;;;OAIG;IACI,yBAAyB,CAAC,cAAc,EAAE,MAAM,GAAG;QAAC,gBAAgB,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,mBAAmB,EAAE,MAAM,CAAA;KAAC;CAoB3I"}
|
|
@@ -5,7 +5,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
import { BaseEngine, RegisterForStartup } from "@memberjunction/core";
|
|
8
|
-
import { UUIDsEqual } from "@memberjunction/global";
|
|
8
|
+
import { NormalizeUUID, UUIDsEqual } from "@memberjunction/global";
|
|
9
9
|
/**
|
|
10
10
|
* Resource Permission Engine is used for accessing metadata about permissions for resources and also determining if a user has access to a resource and at what level.
|
|
11
11
|
*/
|
|
@@ -128,15 +128,18 @@ let ResourcePermissionEngine = class ResourcePermissionEngine extends BaseEngine
|
|
|
128
128
|
permissions = permissions.concat(rolePermissions);
|
|
129
129
|
// now filter to ONLY approved permissions
|
|
130
130
|
permissions = permissions.filter((r) => r.Status === 'Approved');
|
|
131
|
-
// now, we reduce the array so that we only have the highest permission level for each resourcetypeid/resourcerecordid combination
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
131
|
+
// now, we reduce the array so that we only have the highest permission level for each resourcetypeid/resourcerecordid combination.
|
|
132
|
+
// Keyed by the normalized pair so this stays linear; a swap deletes and re-adds the key, which moves the
|
|
133
|
+
// winner to the end exactly as removing it from an array and pushing the new one did.
|
|
134
|
+
const reducedPermissions = new Map();
|
|
135
|
+
for (const p of permissions) {
|
|
136
|
+
const key = `${NormalizeUUID(p.ResourceTypeID)}|${NormalizeUUID(p.ResourceRecordID)}`;
|
|
137
|
+
const existing = reducedPermissions.get(key);
|
|
135
138
|
if (!existing) {
|
|
136
|
-
reducedPermissions.
|
|
139
|
+
reducedPermissions.set(key, p);
|
|
137
140
|
}
|
|
138
141
|
else {
|
|
139
|
-
// existing permission and see if this one is higher, if so, replace it
|
|
142
|
+
// existing permission and see if this one is higher, if so, replace it with the new one
|
|
140
143
|
let bSwap = false;
|
|
141
144
|
if (p.PermissionLevel === 'Owner' && existing.PermissionLevel !== 'Owner') {
|
|
142
145
|
bSwap = true;
|
|
@@ -145,14 +148,12 @@ let ResourcePermissionEngine = class ResourcePermissionEngine extends BaseEngine
|
|
|
145
148
|
bSwap = true;
|
|
146
149
|
}
|
|
147
150
|
if (bSwap) {
|
|
148
|
-
|
|
149
|
-
reducedPermissions
|
|
150
|
-
// add the new permission
|
|
151
|
-
reducedPermissions.push(p);
|
|
151
|
+
reducedPermissions.delete(key);
|
|
152
|
+
reducedPermissions.set(key, p);
|
|
152
153
|
}
|
|
153
154
|
}
|
|
154
|
-
}
|
|
155
|
-
return reducedPermissions;
|
|
155
|
+
}
|
|
156
|
+
return [...reducedPermissions.values()];
|
|
156
157
|
}
|
|
157
158
|
/**
|
|
158
159
|
* This method will use the MJ metadata to find the fields names for the fields that represent the OwnerID and the Name of the resource in the given resource type.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResourcePermissionEngine.js","sourceRoot":"","sources":["../../../src/custom/ResourcePermissions/ResourcePermissionEngine.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAA6D,kBAAkB,EAAY,MAAM,sBAAsB,CAAC;AAC3I,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"ResourcePermissionEngine.js","sourceRoot":"","sources":["../../../src/custom/ResourcePermissions/ResourcePermissionEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,18 @@ export interface StorageAccountWithProvider {
|
|
|
7
7
|
account: MJFileStorageAccountEntity;
|
|
8
8
|
provider: MJFileStorageProviderEntity;
|
|
9
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* Outcome of {@link FileStorageEngineBase.ResolveDefaultAccount}: which account the system-wide
|
|
12
|
+
* fallback chose, and whether the choice was ambiguous (so callers can warn in their own terms).
|
|
13
|
+
*/
|
|
14
|
+
export interface DefaultStorageAccountResolution {
|
|
15
|
+
/** The chosen account, or `null` when there were no candidates. */
|
|
16
|
+
Chosen: StorageAccountWithProvider | null;
|
|
17
|
+
/** Every candidate considered, ordered newest `__mj_UpdatedAt` first (ties by ID). */
|
|
18
|
+
Candidates: StorageAccountWithProvider[];
|
|
19
|
+
/** `true` when two or more candidates existed, so the choice fell to the tie-breaker. */
|
|
20
|
+
Ambiguous: boolean;
|
|
21
|
+
}
|
|
10
22
|
/**
|
|
11
23
|
* FileStorageEngineBase provides centralized, cached access to file storage accounts and providers.
|
|
12
24
|
* This engine eliminates redundant database calls by caching the data and making it available
|
|
@@ -53,6 +65,34 @@ export declare class FileStorageEngineBase extends BaseEngine<FileStorageEngineB
|
|
|
53
65
|
* Consumers should filter/sort as needed (e.g., by provider.IsActive).
|
|
54
66
|
*/
|
|
55
67
|
get AccountsWithProviders(): StorageAccountWithProvider[];
|
|
68
|
+
/**
|
|
69
|
+
* Gets storage accounts whose provider is active — the accounts files can actually be written to.
|
|
70
|
+
*/
|
|
71
|
+
get ActiveAccounts(): StorageAccountWithProvider[];
|
|
72
|
+
/**
|
|
73
|
+
* Picks the storage account to use when no caller-specific default is configured. This is the
|
|
74
|
+
* single golden path for "which account, if nobody said?" — agents, actions and UI should all use it
|
|
75
|
+
* so they agree.
|
|
76
|
+
*
|
|
77
|
+
* - No candidates → `Chosen` is `null`.
|
|
78
|
+
* - One candidate → that account.
|
|
79
|
+
* - Two or more → the account with the most recent `__mj_UpdatedAt`, exact ties broken by ID
|
|
80
|
+
* (case-insensitive) so the choice is stable across processes; `Ambiguous` is `true`.
|
|
81
|
+
*
|
|
82
|
+
* Works only on cached metadata (no database calls) and does not log — callers decide how to
|
|
83
|
+
* surface an ambiguous choice.
|
|
84
|
+
*
|
|
85
|
+
* @param candidates - Accounts to choose among; defaults to {@link ActiveAccounts}.
|
|
86
|
+
*/
|
|
87
|
+
ResolveDefaultAccount(candidates?: StorageAccountWithProvider[]): DefaultStorageAccountResolution;
|
|
88
|
+
/**
|
|
89
|
+
* Convenience form of {@link ResolveDefaultAccount} that returns just the chosen account's ID.
|
|
90
|
+
* @param candidates - Accounts to choose among; defaults to {@link ActiveAccounts}.
|
|
91
|
+
* @returns The chosen account ID, or `null` when there are no candidates.
|
|
92
|
+
*/
|
|
93
|
+
ResolveDefaultAccountID(candidates?: StorageAccountWithProvider[]): string | null;
|
|
94
|
+
/** Orders newest `__mj_UpdatedAt` first, breaking exact ties by ID (case-insensitive). */
|
|
95
|
+
private static compareNewestFirst;
|
|
56
96
|
/**
|
|
57
97
|
* Gets a file storage account by its ID
|
|
58
98
|
* @param accountId - The ID of the account to find
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileStorageEngine.d.ts","sourceRoot":"","sources":["../../src/engines/FileStorageEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA4B,iBAAiB,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEzG,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAEzG;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACvC,OAAO,EAAE,0BAA0B,CAAC;IACpC,QAAQ,EAAE,2BAA2B,CAAC;CACzC;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,qBAAsB,SAAQ,UAAU,CAAC,qBAAqB,CAAC;IACxE;;;;OAIG;IACH,WAAkB,QAAQ,IAAI,qBAAqB,CAElD;IAED,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,UAAU,CAAqC;IAEvD;;;;;OAKG;IACU,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBhH;;OAEG;IACH,IAAW,QAAQ,IAAI,0BAA0B,EAAE,CAElD;IAED;;;OAGG;IACH,IAAW,SAAS,IAAI,2BAA2B,EAAE,CAEpD;IAED;;;OAGG;IACH,IAAW,qBAAqB,IAAI,0BAA0B,EAAE,CAQ/D;IAMD;;;;OAIG;IACI,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,0BAA0B,GAAG,SAAS;IAIhF;;;;OAIG;IACI,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,2BAA2B,GAAG,SAAS;IAInF;;;;OAIG;IACI,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,0BAA0B,GAAG,SAAS;IAI7E;;;;OAIG;IACI,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,0BAA0B,EAAE;IAIhF;;;;OAIG;IACI,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,0BAA0B,GAAG,IAAI;CAOtF"}
|
|
1
|
+
{"version":3,"file":"FileStorageEngine.d.ts","sourceRoot":"","sources":["../../src/engines/FileStorageEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA4B,iBAAiB,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEzG,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAEzG;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACvC,OAAO,EAAE,0BAA0B,CAAC;IACpC,QAAQ,EAAE,2BAA2B,CAAC;CACzC;AAED;;;GAGG;AACH,MAAM,WAAW,+BAA+B;IAC5C,mEAAmE;IACnE,MAAM,EAAE,0BAA0B,GAAG,IAAI,CAAC;IAC1C,sFAAsF;IACtF,UAAU,EAAE,0BAA0B,EAAE,CAAC;IACzC,yFAAyF;IACzF,SAAS,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,qBAAsB,SAAQ,UAAU,CAAC,qBAAqB,CAAC;IACxE;;;;OAIG;IACH,WAAkB,QAAQ,IAAI,qBAAqB,CAElD;IAED,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,UAAU,CAAqC;IAEvD;;;;;OAKG;IACU,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBhH;;OAEG;IACH,IAAW,QAAQ,IAAI,0BAA0B,EAAE,CAElD;IAED;;;OAGG;IACH,IAAW,SAAS,IAAI,2BAA2B,EAAE,CAEpD;IAED;;;OAGG;IACH,IAAW,qBAAqB,IAAI,0BAA0B,EAAE,CAQ/D;IAED;;OAEG;IACH,IAAW,cAAc,IAAI,0BAA0B,EAAE,CAExD;IAMD;;;;;;;;;;;;;;OAcG;IACI,qBAAqB,CAAC,UAAU,GAAE,0BAA0B,EAAwB,GAAG,+BAA+B;IAS7H;;;;OAIG;IACI,uBAAuB,CAAC,UAAU,CAAC,EAAE,0BAA0B,EAAE,GAAG,MAAM,GAAG,IAAI;IAIxF,0FAA0F;IAC1F,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAYjC;;;;OAIG;IACI,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,0BAA0B,GAAG,SAAS;IAIhF;;;;OAIG;IACI,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,2BAA2B,GAAG,SAAS;IAInF;;;;OAIG;IACI,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,0BAA0B,GAAG,SAAS;IAI7E;;;;OAIG;IACI,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,0BAA0B,EAAE;IAIhF;;;;OAIG;IACI,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,0BAA0B,GAAG,IAAI;CAOtF"}
|
|
@@ -83,6 +83,55 @@ export class FileStorageEngineBase extends BaseEngine {
|
|
|
83
83
|
})
|
|
84
84
|
.filter((item) => item !== null);
|
|
85
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* Gets storage accounts whose provider is active — the accounts files can actually be written to.
|
|
88
|
+
*/
|
|
89
|
+
get ActiveAccounts() {
|
|
90
|
+
return this.AccountsWithProviders.filter(a => a.provider.IsActive);
|
|
91
|
+
}
|
|
92
|
+
// ========================================
|
|
93
|
+
// Default account resolution
|
|
94
|
+
// ========================================
|
|
95
|
+
/**
|
|
96
|
+
* Picks the storage account to use when no caller-specific default is configured. This is the
|
|
97
|
+
* single golden path for "which account, if nobody said?" — agents, actions and UI should all use it
|
|
98
|
+
* so they agree.
|
|
99
|
+
*
|
|
100
|
+
* - No candidates → `Chosen` is `null`.
|
|
101
|
+
* - One candidate → that account.
|
|
102
|
+
* - Two or more → the account with the most recent `__mj_UpdatedAt`, exact ties broken by ID
|
|
103
|
+
* (case-insensitive) so the choice is stable across processes; `Ambiguous` is `true`.
|
|
104
|
+
*
|
|
105
|
+
* Works only on cached metadata (no database calls) and does not log — callers decide how to
|
|
106
|
+
* surface an ambiguous choice.
|
|
107
|
+
*
|
|
108
|
+
* @param candidates - Accounts to choose among; defaults to {@link ActiveAccounts}.
|
|
109
|
+
*/
|
|
110
|
+
ResolveDefaultAccount(candidates = this.ActiveAccounts) {
|
|
111
|
+
const sorted = [...candidates].sort(FileStorageEngineBase.compareNewestFirst);
|
|
112
|
+
return {
|
|
113
|
+
Chosen: sorted[0] ?? null,
|
|
114
|
+
Candidates: sorted,
|
|
115
|
+
Ambiguous: sorted.length > 1,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Convenience form of {@link ResolveDefaultAccount} that returns just the chosen account's ID.
|
|
120
|
+
* @param candidates - Accounts to choose among; defaults to {@link ActiveAccounts}.
|
|
121
|
+
* @returns The chosen account ID, or `null` when there are no candidates.
|
|
122
|
+
*/
|
|
123
|
+
ResolveDefaultAccountID(candidates) {
|
|
124
|
+
return this.ResolveDefaultAccount(candidates).Chosen?.account.ID ?? null;
|
|
125
|
+
}
|
|
126
|
+
/** Orders newest `__mj_UpdatedAt` first, breaking exact ties by ID (case-insensitive). */
|
|
127
|
+
static compareNewestFirst(a, b) {
|
|
128
|
+
const byUpdated = new Date(b.account.__mj_UpdatedAt).getTime() - new Date(a.account.__mj_UpdatedAt).getTime();
|
|
129
|
+
if (byUpdated !== 0)
|
|
130
|
+
return byUpdated;
|
|
131
|
+
const aId = a.account.ID.toUpperCase();
|
|
132
|
+
const bId = b.account.ID.toUpperCase();
|
|
133
|
+
return aId < bId ? -1 : aId > bId ? 1 : 0;
|
|
134
|
+
}
|
|
86
135
|
// ========================================
|
|
87
136
|
// Lookup Methods
|
|
88
137
|
// ========================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileStorageEngine.js","sourceRoot":"","sources":["../../src/engines/FileStorageEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAyD,MAAM,sBAAsB,CAAC;AACzG,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"FileStorageEngine.js","sourceRoot":"","sources":["../../src/engines/FileStorageEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -90,8 +90,16 @@ export interface CreateClaimParams {
|
|
|
90
90
|
ClaimTypeName?: string;
|
|
91
91
|
/** ID of the IdentityClaimType (if Name is not provided) */
|
|
92
92
|
ClaimTypeID?: string;
|
|
93
|
-
/**
|
|
94
|
-
|
|
93
|
+
/**
|
|
94
|
+
* Email address of the intended recipient/claimant.
|
|
95
|
+
*
|
|
96
|
+
* Optional ONLY for claim types whose `Configuration` sets `RequireToken: true`. Such a claim
|
|
97
|
+
* is redeemed by its token alone, so it needs no recipient — for example, a link that hands
|
|
98
|
+
* an anonymous visitor's work to whoever signs in holding it. The claim is stored with an
|
|
99
|
+
* empty `NormalizedEmail`, which no account can match, so email-match redemption and
|
|
100
|
+
* auto-claim on login can never reach it. Every other claim type still requires an email.
|
|
101
|
+
*/
|
|
102
|
+
NormalizedEmail?: string;
|
|
95
103
|
/** Optional polymorphic target entity ID */
|
|
96
104
|
EntityID?: string | null;
|
|
97
105
|
/** Optional target record primary key ID */
|
|
@@ -100,6 +108,11 @@ export interface CreateClaimParams {
|
|
|
100
108
|
Payload?: Record<string, unknown> | null;
|
|
101
109
|
/** Lifespan in days before expiration (defaults to ClaimType.DefaultExpirationDays) */
|
|
102
110
|
ExpiresInDays?: number;
|
|
111
|
+
/**
|
|
112
|
+
* Exact expiry instant, for claims shorter than a day (whole days cannot express "ten
|
|
113
|
+
* minutes"). Takes precedence over `ExpiresInDays`. Must be a valid instant in the future.
|
|
114
|
+
*/
|
|
115
|
+
ExpiresAt?: Date;
|
|
103
116
|
/** Optional linked MagicLinkInvite ID for token verification */
|
|
104
117
|
MagicLinkInviteID?: string | null;
|
|
105
118
|
/** Optional tracking metadata */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IdentityClaimEngine.d.ts","sourceRoot":"","sources":["../../src/engines/IdentityClaimEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAA4B,iBAAiB,EAAE,QAAQ,EAAsB,MAAM,sBAAsB,CAAC;AAE7H,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAElG;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,qBAAqB,CAAC;IAC7B,IAAI,CAAC,EAAE,QAAQ,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACpD,IAAI,EAAE,QAAQ,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;;GAGG;AACH,8BAAsB,uBAAuB;IACzC;;OAEG;aACa,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAE9D;;;;;;OAMG;aACa,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC;IAE1E;;OAEG;aACa,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAE9D;;OAEG;aACa,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;CACjE;AAED;;;;GAIG;AACH,MAAM,WAAW,8BAA8B;IAC3C;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mFAAmF;IACnF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB
|
|
1
|
+
{"version":3,"file":"IdentityClaimEngine.d.ts","sourceRoot":"","sources":["../../src/engines/IdentityClaimEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IdentityClaimEngine.js","sourceRoot":"","sources":["../../src/engines/IdentityClaimEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;;;;;;;AAEH,OAAO,EAAE,UAAU,EAAyD,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC7H,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AA4BlD;;;GAGG;AACH,MAAM,OAAgB,uBAAuB;CAwB5C;
|
|
1
|
+
{"version":3,"file":"IdentityClaimEngine.js","sourceRoot":"","sources":["../../src/engines/IdentityClaimEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryEngine.d.ts","sourceRoot":"","sources":["../../src/engines/QueryEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA4B,iBAAiB,EAAsB,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE7H,OAAO,EACH,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,EACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE;;;;GAIG;AACH,qBACa,WAAY,SAAQ,UAAU,CAAC,WAAW,CAAC;IACpD;;;OAGG;IACH,WAAkB,QAAQ,IAAI,WAAW,CAExC;IAED,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,YAAY,CAA4B;IAEnC,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,iBAAiB;
|
|
1
|
+
{"version":3,"file":"QueryEngine.d.ts","sourceRoot":"","sources":["../../src/engines/QueryEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA4B,iBAAiB,EAAsB,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE7H,OAAO,EACH,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,EACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE;;;;GAIG;AACH,qBACa,WAAY,SAAQ,UAAU,CAAC,WAAW,CAAC;IACpD;;;OAGG;IACH,WAAkB,QAAQ,IAAI,WAAW,CAExC;IAED,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,YAAY,CAA4B;IAEnC,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,iBAAiB;IAkBhG,gCAAgC;IAChC,IAAW,OAAO,IAAI,qBAAqB,EAAE,CAE5C;IAED,2BAA2B;IAC3B,IAAW,UAAU,IAAI,qBAAqB,EAAE,CAE/C;IAED,2EAA2E;IAC3E,IAAW,eAAe,IAAI,qBAAqB,EAAE,CAEpD;IAED,kCAAkC;IAClC,IAAW,MAAM,IAAI,kBAAkB,EAAE,CAExC;IAED,uEAAuE;IACvE,IAAW,WAAW,IAAI,kBAAkB,EAAE,CAE7C;IAED,sCAAsC;IACtC,IAAW,UAAU,IAAI,sBAAsB,EAAE,CAEhD;IAED,2EAA2E;IAC3E,IAAW,eAAe,IAAI,sBAAsB,EAAE,CAErD;IAED,gDAAgD;IAChD,IAAW,aAAa,IAAI,mBAAmB,EAAE,CAEhD;IAED,mCAAmC;IACnC,IAAW,WAAW,IAAI,uBAAuB,EAAE,CAElD;IAED,4EAA4E;IAC5E,IAAW,gBAAgB,IAAI,uBAAuB,EAAE,CAEvD;IAED,4DAA4D;IAC5D,IAAW,YAAY,IAAI,uBAAuB,EAAE,CAEnD;IAED,6EAA6E;IAC7E,IAAW,iBAAiB,IAAI,uBAAuB,EAAE,CAExD;IAED,6CAA6C;IAC7C,IAAW,SAAS,IAAI,gBAAgB,EAAE,CAEzC;IAED,kCAAkC;IAClC,IAAW,WAAW,IAAI,kBAAkB,EAAE,CAE7C;IAID,sDAAsD;IACtD,IAAW,eAAe,IAAI,qBAAqB,EAAE,CAEpD;IAED,6BAA6B;IACtB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;IAMnE,4DAA4D;IACrD,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;IAW5F,qDAAqD;IAC9C,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAI5D,yDAAyD;IAClD,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,sBAAsB,EAAE;IAIpE,sDAAsD;IAC/C,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,uBAAuB,EAAE;IAItE,uDAAuD;IAChD,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,qBAAqB,EAAE;IAIxE,iDAAiD;IAC1C,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;CAKvE"}
|
|
@@ -33,7 +33,8 @@ let QueryEngine = class QueryEngine extends BaseEngine {
|
|
|
33
33
|
}
|
|
34
34
|
async Config(forceRefresh, contextUser, provider) {
|
|
35
35
|
const configs = [
|
|
36
|
-
|
|
36
|
+
// IncludeBinaryFields: the binary vector column is loaded server-side (QueryEngineServer reads it), skipped over the wire.
|
|
37
|
+
{ Type: 'entity', EntityName: 'MJ: Queries', PropertyName: '_queries', CacheLocal: true, IncludeBinaryFields: 'DatabaseProviderOnly' },
|
|
37
38
|
{ Type: 'entity', EntityName: 'MJ: Query Categories', PropertyName: '_categories', CacheLocal: true },
|
|
38
39
|
{ Type: 'entity', EntityName: 'MJ: Query Fields', PropertyName: '_fields', CacheLocal: true },
|
|
39
40
|
{ Type: 'entity', EntityName: 'MJ: Query Parameters', PropertyName: '_parameters', CacheLocal: true },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryEngine.js","sourceRoot":"","sources":["../../src/engines/QueryEngine.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAA+C,kBAAkB,EAAY,MAAM,sBAAsB,CAAC;AAC7H,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAapD;;;;GAIG;AAEI,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,UAAuB;IAAjD;;QASK,aAAQ,GAA4B,EAAE,CAAC;QACvC,gBAAW,GAA4B,EAAE,CAAC;QAC1C,YAAO,GAAyB,EAAE,CAAC;QACnC,gBAAW,GAA6B,EAAE,CAAC;QAC3C,mBAAc,GAA0B,EAAE,CAAC;QAC3C,iBAAY,GAA8B,EAAE,CAAC;QAC7C,kBAAa,GAA8B,EAAE,CAAC;QAC9C,eAAU,GAAuB,EAAE,CAAC;QACpC,iBAAY,GAAyB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"QueryEngine.js","sourceRoot":"","sources":["../../src/engines/QueryEngine.ts"],"names":[],"mappings":"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"}
|