@memberjunction/core-actions 5.36.0 → 5.38.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/README.md +19 -1
- package/dist/custom/data/run-adhoc-query.action.d.ts +14 -1
- package/dist/custom/data/run-adhoc-query.action.d.ts.map +1 -1
- package/dist/custom/data/run-adhoc-query.action.js +27 -12
- package/dist/custom/data/run-adhoc-query.action.js.map +1 -1
- package/dist/custom/interactive-forms/_shared.d.ts +144 -0
- package/dist/custom/interactive-forms/_shared.d.ts.map +1 -0
- package/dist/custom/interactive-forms/_shared.js +300 -0
- package/dist/custom/interactive-forms/_shared.js.map +1 -0
- package/dist/custom/interactive-forms/activate-interactive-form-version.action.d.ts +31 -0
- package/dist/custom/interactive-forms/activate-interactive-form-version.action.d.ts.map +1 -0
- package/dist/custom/interactive-forms/activate-interactive-form-version.action.js +139 -0
- package/dist/custom/interactive-forms/activate-interactive-form-version.action.js.map +1 -0
- package/dist/custom/interactive-forms/create-interactive-form.action.d.ts +32 -0
- package/dist/custom/interactive-forms/create-interactive-form.action.d.ts.map +1 -0
- package/dist/custom/interactive-forms/create-interactive-form.action.js +162 -0
- package/dist/custom/interactive-forms/create-interactive-form.action.js.map +1 -0
- package/dist/custom/interactive-forms/get-active-form-for-entity.action.d.ts +46 -0
- package/dist/custom/interactive-forms/get-active-form-for-entity.action.d.ts.map +1 -0
- package/dist/custom/interactive-forms/get-active-form-for-entity.action.js +179 -0
- package/dist/custom/interactive-forms/get-active-form-for-entity.action.js.map +1 -0
- package/dist/custom/interactive-forms/get-default-form-scaffold.action.d.ts +32 -0
- package/dist/custom/interactive-forms/get-default-form-scaffold.action.d.ts.map +1 -0
- package/dist/custom/interactive-forms/get-default-form-scaffold.action.js +87 -0
- package/dist/custom/interactive-forms/get-default-form-scaffold.action.js.map +1 -0
- package/dist/custom/interactive-forms/get-entity-schema-for-form.action.d.ts +34 -0
- package/dist/custom/interactive-forms/get-entity-schema-for-form.action.d.ts.map +1 -0
- package/dist/custom/interactive-forms/get-entity-schema-for-form.action.js +103 -0
- package/dist/custom/interactive-forms/get-entity-schema-for-form.action.js.map +1 -0
- package/dist/custom/interactive-forms/index.d.ts +8 -0
- package/dist/custom/interactive-forms/index.d.ts.map +1 -0
- package/dist/custom/interactive-forms/index.js +8 -0
- package/dist/custom/interactive-forms/index.js.map +1 -0
- package/dist/custom/interactive-forms/modify-interactive-form.action.d.ts +54 -0
- package/dist/custom/interactive-forms/modify-interactive-form.action.d.ts.map +1 -0
- package/dist/custom/interactive-forms/modify-interactive-form.action.js +300 -0
- package/dist/custom/interactive-forms/modify-interactive-form.action.js.map +1 -0
- package/dist/custom/interactive-forms/revert-interactive-form.action.d.ts +39 -0
- package/dist/custom/interactive-forms/revert-interactive-form.action.d.ts.map +1 -0
- package/dist/custom/interactive-forms/revert-interactive-form.action.js +155 -0
- package/dist/custom/interactive-forms/revert-interactive-form.action.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +34 -32
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_shared.js","sourceRoot":"","sources":["../../../src/custom/interactive-forms/_shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
|
|
2
|
+
import { BaseAction } from "@memberjunction/actions";
|
|
3
|
+
/**
|
|
4
|
+
* Promote a Pending override to Active. Flips:
|
|
5
|
+
* - target Override: Status='Active'
|
|
6
|
+
* - target Override's Component: Status='Active'
|
|
7
|
+
* - prior Active sibling Override: Status='Inactive'
|
|
8
|
+
* - prior Active sibling Component: Status='Inactive'
|
|
9
|
+
*
|
|
10
|
+
* "Sibling" = same EntityID + (Scope, UserID, RoleID) tuple as the target
|
|
11
|
+
* Override. The target is the row identified by the input `OverrideID`; the
|
|
12
|
+
* priors are any rows currently Status='Active' at the same scope target.
|
|
13
|
+
*
|
|
14
|
+
* Idempotency. If the target Override is already Active, returns SUCCESS
|
|
15
|
+
* with a no-op message. If it's Inactive, that's a misuse — we surface
|
|
16
|
+
* NOT_PENDING so the agent / UI can ask the user what they really want.
|
|
17
|
+
*
|
|
18
|
+
* Inputs:
|
|
19
|
+
* - `OverrideID` (required, string) — the Pending override to activate
|
|
20
|
+
*
|
|
21
|
+
* Outputs:
|
|
22
|
+
* - `ComponentID` — the Component now Active
|
|
23
|
+
* - `OverrideID` — echoed for convenience
|
|
24
|
+
* - `PreviousActiveOverrideID` — the override that was demoted (or null)
|
|
25
|
+
*/
|
|
26
|
+
export declare class ActivateInteractiveFormVersionAction extends BaseAction {
|
|
27
|
+
protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
|
|
28
|
+
}
|
|
29
|
+
/** Tree-shaking guard. */
|
|
30
|
+
export declare function LoadActivateInteractiveFormVersionAction(): void;
|
|
31
|
+
//# sourceMappingURL=activate-interactive-form-version.action.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activate-interactive-form-version.action.d.ts","sourceRoot":"","sources":["../../../src/custom/interactive-forms/activate-interactive-form-version.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAOrD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBACa,oCAAqC,SAAQ,UAAU;cAEhD,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAkG1F;AAED,0BAA0B;AAC1B,wBAAgB,wCAAwC,IAAI,IAAI,CAI/D"}
|
|
@@ -0,0 +1,139 @@
|
|
|
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 { BaseAction } from "@memberjunction/actions";
|
|
8
|
+
import { Metadata, LogError, RunView } from "@memberjunction/core";
|
|
9
|
+
import { RegisterClass } from "@memberjunction/global";
|
|
10
|
+
import { addOutput, checkOverrideOwnership, failure, getStringParam, loadComponent, loadOverride, mapToComponentStatus, } from "./_shared.js";
|
|
11
|
+
/**
|
|
12
|
+
* Promote a Pending override to Active. Flips:
|
|
13
|
+
* - target Override: Status='Active'
|
|
14
|
+
* - target Override's Component: Status='Active'
|
|
15
|
+
* - prior Active sibling Override: Status='Inactive'
|
|
16
|
+
* - prior Active sibling Component: Status='Inactive'
|
|
17
|
+
*
|
|
18
|
+
* "Sibling" = same EntityID + (Scope, UserID, RoleID) tuple as the target
|
|
19
|
+
* Override. The target is the row identified by the input `OverrideID`; the
|
|
20
|
+
* priors are any rows currently Status='Active' at the same scope target.
|
|
21
|
+
*
|
|
22
|
+
* Idempotency. If the target Override is already Active, returns SUCCESS
|
|
23
|
+
* with a no-op message. If it's Inactive, that's a misuse — we surface
|
|
24
|
+
* NOT_PENDING so the agent / UI can ask the user what they really want.
|
|
25
|
+
*
|
|
26
|
+
* Inputs:
|
|
27
|
+
* - `OverrideID` (required, string) — the Pending override to activate
|
|
28
|
+
*
|
|
29
|
+
* Outputs:
|
|
30
|
+
* - `ComponentID` — the Component now Active
|
|
31
|
+
* - `OverrideID` — echoed for convenience
|
|
32
|
+
* - `PreviousActiveOverrideID` — the override that was demoted (or null)
|
|
33
|
+
*/
|
|
34
|
+
let ActivateInteractiveFormVersionAction = class ActivateInteractiveFormVersionAction extends BaseAction {
|
|
35
|
+
async InternalRunAction(params) {
|
|
36
|
+
try {
|
|
37
|
+
const overrideID = getStringParam(params, "OverrideID");
|
|
38
|
+
if (!overrideID) {
|
|
39
|
+
return failure("MISSING_PARAMETER", "Parameter 'OverrideID' is required.");
|
|
40
|
+
}
|
|
41
|
+
const provider = params.Provider ?? Metadata.Provider;
|
|
42
|
+
if (!provider)
|
|
43
|
+
return failure("NO_PROVIDER", "No metadata provider available.");
|
|
44
|
+
const user = params.ContextUser;
|
|
45
|
+
if (!user)
|
|
46
|
+
return failure("NO_USER", "Action requires a ContextUser.");
|
|
47
|
+
const target = await loadOverride(provider, user, overrideID);
|
|
48
|
+
if (!target) {
|
|
49
|
+
return failure("OVERRIDE_NOT_FOUND", `EntityFormOverride '${overrideID}' not found.`);
|
|
50
|
+
}
|
|
51
|
+
const ownershipFail = checkOverrideOwnership(target, user);
|
|
52
|
+
if (ownershipFail)
|
|
53
|
+
return ownershipFail;
|
|
54
|
+
if (target.Status === 'Active') {
|
|
55
|
+
addOutput(params, "ComponentID", target.ComponentID);
|
|
56
|
+
addOutput(params, "OverrideID", target.ID);
|
|
57
|
+
addOutput(params, "PreviousActiveOverrideID", null);
|
|
58
|
+
return { Success: true, ResultCode: "SUCCESS",
|
|
59
|
+
Message: JSON.stringify({ noop: true, OverrideID: target.ID, ComponentID: target.ComponentID }) };
|
|
60
|
+
}
|
|
61
|
+
if (target.Status === 'Inactive') {
|
|
62
|
+
return failure("NOT_PENDING", `Override ${overrideID} is Inactive. Use 'Revert Interactive Form' to restore an older version, not 'Activate'.`);
|
|
63
|
+
}
|
|
64
|
+
// Find sibling Active overrides at the same (entity, scope target).
|
|
65
|
+
const rv = RunView.FromMetadataProvider(provider);
|
|
66
|
+
const scopeClause = target.Scope === 'User'
|
|
67
|
+
? `Scope='User' AND UserID='${target.UserID}'`
|
|
68
|
+
: target.Scope === 'Role'
|
|
69
|
+
? `Scope='Role' AND RoleID='${target.RoleID}'`
|
|
70
|
+
: `Scope='Global' AND UserID IS NULL AND RoleID IS NULL`;
|
|
71
|
+
const priorResult = await rv.RunView({
|
|
72
|
+
EntityName: "MJ: Entity Form Overrides",
|
|
73
|
+
ExtraFilter: `EntityID='${target.EntityID}' AND ${scopeClause} AND Status='Active' AND ID <> '${target.ID}'`,
|
|
74
|
+
Fields: ['ID', 'ComponentID'],
|
|
75
|
+
ResultType: 'simple',
|
|
76
|
+
}, user);
|
|
77
|
+
if (!priorResult.Success) {
|
|
78
|
+
return failure("QUERY_FAILED", `Prior-active lookup failed: ${priorResult.ErrorMessage ?? 'unknown error'}`);
|
|
79
|
+
}
|
|
80
|
+
// Promote target's component.
|
|
81
|
+
const newComponent = await loadComponent(provider, user, target.ComponentID);
|
|
82
|
+
if (!newComponent) {
|
|
83
|
+
return failure("COMPONENT_NOT_FOUND", `Override ${overrideID} points at Component ${target.ComponentID} which no longer exists.`);
|
|
84
|
+
}
|
|
85
|
+
newComponent.Status = mapToComponentStatus('Active');
|
|
86
|
+
const ncSaved = await newComponent.Save();
|
|
87
|
+
if (!ncSaved) {
|
|
88
|
+
return failure("PERSIST_FAILED", `Could not flip Component to Active: ${newComponent.LatestResult?.CompleteMessage ?? 'unknown error'}`);
|
|
89
|
+
}
|
|
90
|
+
target.Status = 'Active';
|
|
91
|
+
const tSaved = await target.Save();
|
|
92
|
+
if (!tSaved) {
|
|
93
|
+
return failure("PERSIST_FAILED", `Could not flip Override to Active: ${target.LatestResult?.CompleteMessage ?? 'unknown error'}`);
|
|
94
|
+
}
|
|
95
|
+
// Demote priors. Component AND Override flipped in lock-step.
|
|
96
|
+
let firstPriorID = null;
|
|
97
|
+
for (const prior of priorResult.Results ?? []) {
|
|
98
|
+
if (!firstPriorID)
|
|
99
|
+
firstPriorID = prior.ID;
|
|
100
|
+
const priorO = await loadOverride(provider, user, prior.ID);
|
|
101
|
+
const priorC = await loadComponent(provider, user, prior.ComponentID);
|
|
102
|
+
if (priorO) {
|
|
103
|
+
priorO.Status = 'Inactive';
|
|
104
|
+
await priorO.Save();
|
|
105
|
+
}
|
|
106
|
+
if (priorC) {
|
|
107
|
+
priorC.Status = mapToComponentStatus('Inactive');
|
|
108
|
+
await priorC.Save();
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
addOutput(params, "ComponentID", target.ComponentID);
|
|
112
|
+
addOutput(params, "OverrideID", target.ID);
|
|
113
|
+
addOutput(params, "PreviousActiveOverrideID", firstPriorID);
|
|
114
|
+
return { Success: true, ResultCode: "SUCCESS",
|
|
115
|
+
Message: JSON.stringify({
|
|
116
|
+
OverrideID: target.ID,
|
|
117
|
+
ComponentID: target.ComponentID,
|
|
118
|
+
PreviousActiveOverrideID: firstPriorID,
|
|
119
|
+
DemotedCount: (priorResult.Results ?? []).length,
|
|
120
|
+
}) };
|
|
121
|
+
}
|
|
122
|
+
catch (err) {
|
|
123
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
124
|
+
LogError(`ActivateInteractiveFormVersionAction: ${message}`);
|
|
125
|
+
return failure("UNEXPECTED_ERROR", message);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
ActivateInteractiveFormVersionAction = __decorate([
|
|
130
|
+
RegisterClass(BaseAction, "__ActivateInteractiveFormVersion")
|
|
131
|
+
], ActivateInteractiveFormVersionAction);
|
|
132
|
+
export { ActivateInteractiveFormVersionAction };
|
|
133
|
+
/** Tree-shaking guard. */
|
|
134
|
+
export function LoadActivateInteractiveFormVersionAction() {
|
|
135
|
+
if (false) {
|
|
136
|
+
const _ = ActivateInteractiveFormVersionAction;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=activate-interactive-form-version.action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activate-interactive-form-version.action.js","sourceRoot":"","sources":["../../../src/custom/interactive-forms/activate-interactive-form-version.action.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
|
|
2
|
+
import { BaseAction } from "@memberjunction/actions";
|
|
3
|
+
/**
|
|
4
|
+
* Create a net-new interactive-form override for the requesting user.
|
|
5
|
+
*
|
|
6
|
+
* **Net-new path only.** Returns ALREADY_EXISTS if the user already has an
|
|
7
|
+
* Active override for the target entity — agents should call
|
|
8
|
+
* `Get Active Form For Entity` first and route to `Modify Interactive Form`
|
|
9
|
+
* in that case. (Pending sibling overrides do NOT block creation — those
|
|
10
|
+
* are an in-flight refinement and Modify will resolve them in-place.)
|
|
11
|
+
*
|
|
12
|
+
* **Security clamp — Scope.** This action *always* writes
|
|
13
|
+
* `Scope='User', UserID=ctx.user.ID, Status='Active', Priority=0`,
|
|
14
|
+
* regardless of any scope-related parameter the caller might supply.
|
|
15
|
+
* This is the load-bearing safety property of the AI authoring path:
|
|
16
|
+
* an agent cannot write Global or Role overrides that would affect
|
|
17
|
+
* other users. Scope promotion (User → Role → Global) is a separate,
|
|
18
|
+
* deliberate human action in Component Studio / Form Builder dashboard.
|
|
19
|
+
*
|
|
20
|
+
* **Atomicity.** If the override insert fails after the Component insert
|
|
21
|
+
* succeeds, we surface PERSIST_FAILED with the Component already in the
|
|
22
|
+
* table. Orphan Components are harmless — they don't render anywhere
|
|
23
|
+
* until something points an override at them. The caller can retry; a
|
|
24
|
+
* second run will create a fresh Component and a successful override.
|
|
25
|
+
*/
|
|
26
|
+
export declare class CreateInteractiveFormAction extends BaseAction {
|
|
27
|
+
protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
|
|
28
|
+
private extractInputs;
|
|
29
|
+
}
|
|
30
|
+
/** Tree-shaking guard. */
|
|
31
|
+
export declare function LoadCreateInteractiveFormAction(): void;
|
|
32
|
+
//# sourceMappingURL=create-interactive-form.action.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-interactive-form.action.d.ts","sourceRoot":"","sources":["../../../src/custom/interactive-forms/create-interactive-form.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AASrD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBACa,2BAA4B,SAAQ,UAAU;cAEvC,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoGvF,OAAO,CAAC,aAAa;CAyBxB;AAED,0BAA0B;AAC1B,wBAAgB,+BAA+B,IAAI,IAAI,CAItD"}
|
|
@@ -0,0 +1,162 @@
|
|
|
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 { BaseAction } from "@memberjunction/actions";
|
|
8
|
+
import { Metadata, LogError, RunView } from "@memberjunction/core";
|
|
9
|
+
import { RegisterClass } from "@memberjunction/global";
|
|
10
|
+
import { addOutput, failure, getStringParam, insertComponent, insertOverride, lintFormSpec, parseSpecParam, } from "./_shared.js";
|
|
11
|
+
/**
|
|
12
|
+
* Create a net-new interactive-form override for the requesting user.
|
|
13
|
+
*
|
|
14
|
+
* **Net-new path only.** Returns ALREADY_EXISTS if the user already has an
|
|
15
|
+
* Active override for the target entity — agents should call
|
|
16
|
+
* `Get Active Form For Entity` first and route to `Modify Interactive Form`
|
|
17
|
+
* in that case. (Pending sibling overrides do NOT block creation — those
|
|
18
|
+
* are an in-flight refinement and Modify will resolve them in-place.)
|
|
19
|
+
*
|
|
20
|
+
* **Security clamp — Scope.** This action *always* writes
|
|
21
|
+
* `Scope='User', UserID=ctx.user.ID, Status='Active', Priority=0`,
|
|
22
|
+
* regardless of any scope-related parameter the caller might supply.
|
|
23
|
+
* This is the load-bearing safety property of the AI authoring path:
|
|
24
|
+
* an agent cannot write Global or Role overrides that would affect
|
|
25
|
+
* other users. Scope promotion (User → Role → Global) is a separate,
|
|
26
|
+
* deliberate human action in Component Studio / Form Builder dashboard.
|
|
27
|
+
*
|
|
28
|
+
* **Atomicity.** If the override insert fails after the Component insert
|
|
29
|
+
* succeeds, we surface PERSIST_FAILED with the Component already in the
|
|
30
|
+
* table. Orphan Components are harmless — they don't render anywhere
|
|
31
|
+
* until something points an override at them. The caller can retry; a
|
|
32
|
+
* second run will create a fresh Component and a successful override.
|
|
33
|
+
*/
|
|
34
|
+
let CreateInteractiveFormAction = class CreateInteractiveFormAction extends BaseAction {
|
|
35
|
+
async InternalRunAction(params) {
|
|
36
|
+
try {
|
|
37
|
+
const inputs = this.extractInputs(params);
|
|
38
|
+
if ('error' in inputs)
|
|
39
|
+
return inputs.error;
|
|
40
|
+
const provider = params.Provider ?? Metadata.Provider;
|
|
41
|
+
if (!provider)
|
|
42
|
+
return failure("NO_PROVIDER", "No metadata provider available.");
|
|
43
|
+
const user = params.ContextUser;
|
|
44
|
+
if (!user)
|
|
45
|
+
return failure("NO_USER", "Action requires a ContextUser to clamp override scope.");
|
|
46
|
+
const entityInfo = provider.EntityByName(inputs.EntityName);
|
|
47
|
+
if (!entityInfo) {
|
|
48
|
+
return failure("ENTITY_NOT_FOUND", `Entity '${inputs.EntityName}' is not registered with the active metadata provider.`);
|
|
49
|
+
}
|
|
50
|
+
// Guard: don't silently create a duplicate override. We match
|
|
51
|
+
// BOTH Active and Pending sibling overrides — either is grounds
|
|
52
|
+
// to switch to Modify on that row instead of creating a second
|
|
53
|
+
// override. (Two overrides for the same entity/user would race
|
|
54
|
+
// each other at form-resolution time.)
|
|
55
|
+
const rv = RunView.FromMetadataProvider(provider);
|
|
56
|
+
const dupResult = await rv.RunView({
|
|
57
|
+
EntityName: "MJ: Entity Form Overrides",
|
|
58
|
+
ExtraFilter: `EntityID='${entityInfo.ID}' AND Scope='User' AND UserID='${user.ID}' AND Status IN ('Active', 'Pending')`,
|
|
59
|
+
Fields: ['ID', 'Status'],
|
|
60
|
+
ResultType: 'simple',
|
|
61
|
+
MaxRows: 1,
|
|
62
|
+
}, user);
|
|
63
|
+
if (dupResult.Success && (dupResult.Results ?? []).length > 0) {
|
|
64
|
+
const existing = dupResult.Results[0];
|
|
65
|
+
return failure("ALREADY_EXISTS", `A ${existing.Status} User-scope override already exists for entity '${inputs.EntityName}' (OverrideID=${existing.ID}). Use 'Modify Interactive Form' on this OverrideID to refine it (with a VersionBumpKind of 'patch' / 'minor' / 'major' to snapshot a new version, or 'in-place' against a Pending row to keep iterating on the same version). Use 'Revert Interactive Form' to switch to a different historical version.`);
|
|
66
|
+
}
|
|
67
|
+
// Lint before any persistence — fail-hard.
|
|
68
|
+
const lintFail = await lintFormSpec(inputs.Spec, user);
|
|
69
|
+
if (lintFail)
|
|
70
|
+
return lintFail;
|
|
71
|
+
// Create v1.0.0 as Pending (NOT Active). The cockpit / agent
|
|
72
|
+
// workflow is iterative — the user will refine via the chat
|
|
73
|
+
// before they're ready to flip the form live. Creating Active
|
|
74
|
+
// here would either (a) push an empty scaffold into production
|
|
75
|
+
// as the user's actual form, or (b) force the agent's first
|
|
76
|
+
// Modify to bump a new version, leaving behind a useless
|
|
77
|
+
// v1.0.0 placeholder. Pending means the agent's first Modify
|
|
78
|
+
// hits the in-place branch and overwrites this row — no
|
|
79
|
+
// wasted version, no premature publication. The user
|
|
80
|
+
// explicitly Activates from the Form Builder dashboard when
|
|
81
|
+
// they're happy with the result.
|
|
82
|
+
const componentInsert = await insertComponent({
|
|
83
|
+
provider, user,
|
|
84
|
+
spec: inputs.Spec,
|
|
85
|
+
fallbackName: inputs.Name,
|
|
86
|
+
description: inputs.Description,
|
|
87
|
+
version: "1.0.0",
|
|
88
|
+
versionSequence: 1,
|
|
89
|
+
componentStatus: 'Pending',
|
|
90
|
+
});
|
|
91
|
+
if ('error' in componentInsert)
|
|
92
|
+
return componentInsert.error;
|
|
93
|
+
const componentID = componentInsert.id;
|
|
94
|
+
const overrideInsert = await insertOverride({
|
|
95
|
+
provider, user,
|
|
96
|
+
entityID: entityInfo.ID,
|
|
97
|
+
componentID,
|
|
98
|
+
name: inputs.Name,
|
|
99
|
+
description: inputs.Description,
|
|
100
|
+
notes: inputs.Notes,
|
|
101
|
+
status: 'Pending',
|
|
102
|
+
priority: 0,
|
|
103
|
+
});
|
|
104
|
+
if ('error' in overrideInsert) {
|
|
105
|
+
return failure("PERSIST_FAILED", `${overrideInsert.error.Message} (Component ${componentID} was persisted but has no override yet.)`);
|
|
106
|
+
}
|
|
107
|
+
addOutput(params, "ComponentID", componentID);
|
|
108
|
+
addOutput(params, "OverrideID", overrideInsert.id);
|
|
109
|
+
addOutput(params, "Version", "1.0.0");
|
|
110
|
+
return {
|
|
111
|
+
Success: true,
|
|
112
|
+
ResultCode: "SUCCESS",
|
|
113
|
+
Message: JSON.stringify({
|
|
114
|
+
ComponentID: componentID,
|
|
115
|
+
OverrideID: overrideInsert.id,
|
|
116
|
+
EntityName: inputs.EntityName,
|
|
117
|
+
Scope: "User",
|
|
118
|
+
Status: "Pending",
|
|
119
|
+
Version: "1.0.0",
|
|
120
|
+
}),
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
catch (err) {
|
|
124
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
125
|
+
LogError(`CreateInteractiveFormAction: ${message}`);
|
|
126
|
+
return failure("UNEXPECTED_ERROR", message);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
extractInputs(params) {
|
|
130
|
+
const entityName = getStringParam(params, "EntityName");
|
|
131
|
+
if (!entityName)
|
|
132
|
+
return { error: failure("MISSING_PARAMETER", "Parameter 'EntityName' is required.") };
|
|
133
|
+
const name = getStringParam(params, "Name");
|
|
134
|
+
if (!name)
|
|
135
|
+
return { error: failure("MISSING_PARAMETER", "Parameter 'Name' is required.") };
|
|
136
|
+
const specRaw = params.Params.find(x => x.Name?.trim().toLowerCase() === "spec")?.Value;
|
|
137
|
+
if (specRaw == null)
|
|
138
|
+
return { error: failure("MISSING_PARAMETER", "Parameter 'Spec' is required.") };
|
|
139
|
+
const parsed = parseSpecParam(specRaw);
|
|
140
|
+
if ('error' in parsed) {
|
|
141
|
+
return { error: failure("LINT_FAILED", `Spec is not valid JSON: ${parsed.error}`) };
|
|
142
|
+
}
|
|
143
|
+
return {
|
|
144
|
+
EntityName: entityName,
|
|
145
|
+
Spec: parsed,
|
|
146
|
+
Name: name,
|
|
147
|
+
Description: getStringParam(params, "Description"),
|
|
148
|
+
Notes: getStringParam(params, "Notes"),
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
CreateInteractiveFormAction = __decorate([
|
|
153
|
+
RegisterClass(BaseAction, "__CreateInteractiveForm")
|
|
154
|
+
], CreateInteractiveFormAction);
|
|
155
|
+
export { CreateInteractiveFormAction };
|
|
156
|
+
/** Tree-shaking guard. */
|
|
157
|
+
export function LoadCreateInteractiveFormAction() {
|
|
158
|
+
if (false) {
|
|
159
|
+
const _ = CreateInteractiveFormAction;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=create-interactive-form.action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-interactive-form.action.js","sourceRoot":"","sources":["../../../src/custom/interactive-forms/create-interactive-form.action.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
|
|
2
|
+
import { BaseAction } from "@memberjunction/actions";
|
|
3
|
+
/**
|
|
4
|
+
* Read-only action that returns the currently-resolved interactive-form
|
|
5
|
+
* override (if any) for the (entity, user) pair plus the full list of
|
|
6
|
+
* applicable variants. Used by the Form Builder agent to decide between
|
|
7
|
+
* Create (no override exists) and Modify (an override already exists).
|
|
8
|
+
*
|
|
9
|
+
* Resolution mirrors {@link FormResolverService} on the client:
|
|
10
|
+
* - Scope precedence: User > Role > Global.
|
|
11
|
+
* - Within a tier: Priority DESC, then __mj_CreatedAt DESC.
|
|
12
|
+
* - Only Status='Active' rows are considered for the "active" pick. The
|
|
13
|
+
* full variants list includes 'Pending' rows so the agent can recognize
|
|
14
|
+
* an in-flight refinement loop and reuse the Pending row instead of
|
|
15
|
+
* spawning a new one.
|
|
16
|
+
*
|
|
17
|
+
* Output shape (JSON in `Message`, also surfaced as a `Result` output param):
|
|
18
|
+
* ```
|
|
19
|
+
* {
|
|
20
|
+
* "EntityName": "MJ: Applications",
|
|
21
|
+
* "Active": {
|
|
22
|
+
* "OverrideID": "...",
|
|
23
|
+
* "ComponentID": "...",
|
|
24
|
+
* "Scope": "User" | "Role" | "Global",
|
|
25
|
+
* "Priority": 0,
|
|
26
|
+
* "Status": "Active",
|
|
27
|
+
* "Spec": <ComponentSpec>,
|
|
28
|
+
* "ComponentName": "...",
|
|
29
|
+
* "ComponentVersion": "1.0.0",
|
|
30
|
+
* "VersionSequence": 1
|
|
31
|
+
* } | null,
|
|
32
|
+
* "Variants": [{ ...same shape... }, ...] // all applicable, all statuses
|
|
33
|
+
* }
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* If no overrides exist, `Active` is null and `Variants` is empty —
|
|
37
|
+
* the calling agent should then call `Get Default Form Scaffold For Entity`
|
|
38
|
+
* and `Create Interactive Form`.
|
|
39
|
+
*/
|
|
40
|
+
export declare class GetActiveFormForEntityAction extends BaseAction {
|
|
41
|
+
protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
|
|
42
|
+
private getStringParam;
|
|
43
|
+
}
|
|
44
|
+
/** Tree-shaking guard — called from src/index.ts. */
|
|
45
|
+
export declare function LoadGetActiveFormForEntityAction(): void;
|
|
46
|
+
//# sourceMappingURL=get-active-form-for-entity.action.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-active-form-for-entity.action.d.ts","sourceRoot":"","sources":["../../../src/custom/interactive-forms/get-active-form-for-entity.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAKrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBACa,4BAA6B,SAAQ,UAAU;cAExC,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAkKvF,OAAO,CAAC,cAAc;CAOzB;AAMD,qDAAqD;AACrD,wBAAgB,gCAAgC,IAAI,IAAI,CAIvD"}
|