@memberjunction/core-actions 6.2.0-edge.1 → 6.2.0-edge.3
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/custom/ai/base-find-agents.action.d.ts.map +1 -1
- package/dist/custom/ai/base-find-agents.action.js +2 -7
- package/dist/custom/ai/base-find-agents.action.js.map +1 -1
- package/dist/custom/ai/execute-agent.action.d.ts +10 -0
- package/dist/custom/ai/execute-agent.action.d.ts.map +1 -1
- package/dist/custom/ai/execute-agent.action.js +24 -1
- package/dist/custom/ai/execute-agent.action.js.map +1 -1
- package/dist/custom/ai/execute-ai-prompt.action.d.ts.map +1 -1
- package/dist/custom/ai/execute-ai-prompt.action.js +3 -0
- package/dist/custom/ai/execute-ai-prompt.action.js.map +1 -1
- package/dist/custom/ai/find-candidate-agents.action.d.ts.map +1 -1
- package/dist/custom/ai/find-candidate-agents.action.js +2 -1
- package/dist/custom/ai/find-candidate-agents.action.js.map +1 -1
- package/dist/custom/ai/generate-image.action.d.ts +67 -6
- package/dist/custom/ai/generate-image.action.d.ts.map +1 -1
- package/dist/custom/ai/generate-image.action.js +208 -141
- package/dist/custom/ai/generate-image.action.js.map +1 -1
- package/dist/custom/ai/run-decision.action.d.ts +45 -0
- package/dist/custom/ai/run-decision.action.d.ts.map +1 -0
- package/dist/custom/ai/run-decision.action.js +169 -0
- package/dist/custom/ai/run-decision.action.js.map +1 -0
- package/dist/custom/ai/summarize-content.action.d.ts.map +1 -1
- package/dist/custom/ai/summarize-content.action.js +3 -0
- package/dist/custom/ai/summarize-content.action.js.map +1 -1
- package/dist/custom/data/run-adhoc-query.action.d.ts.map +1 -1
- package/dist/custom/data/run-adhoc-query.action.js +3 -0
- package/dist/custom/data/run-adhoc-query.action.js.map +1 -1
- package/dist/custom/interactive-forms/_shared.d.ts +113 -31
- package/dist/custom/interactive-forms/_shared.d.ts.map +1 -1
- package/dist/custom/interactive-forms/_shared.js +198 -74
- package/dist/custom/interactive-forms/_shared.js.map +1 -1
- package/dist/custom/interactive-forms/activate-form-contribution-version.action.d.ts +23 -0
- package/dist/custom/interactive-forms/activate-form-contribution-version.action.d.ts.map +1 -0
- package/dist/custom/interactive-forms/activate-form-contribution-version.action.js +151 -0
- package/dist/custom/interactive-forms/activate-form-contribution-version.action.js.map +1 -0
- package/dist/custom/interactive-forms/activate-interactive-form-version.action.d.ts +23 -7
- package/dist/custom/interactive-forms/activate-interactive-form-version.action.d.ts.map +1 -1
- package/dist/custom/interactive-forms/activate-interactive-form-version.action.js +114 -58
- package/dist/custom/interactive-forms/activate-interactive-form-version.action.js.map +1 -1
- package/dist/custom/interactive-forms/create-form-contribution.action.d.ts +35 -0
- package/dist/custom/interactive-forms/create-form-contribution.action.d.ts.map +1 -0
- package/dist/custom/interactive-forms/create-form-contribution.action.js +149 -0
- package/dist/custom/interactive-forms/create-form-contribution.action.js.map +1 -0
- package/dist/custom/interactive-forms/get-active-form-for-entity.action.d.ts +3 -0
- package/dist/custom/interactive-forms/get-active-form-for-entity.action.d.ts.map +1 -1
- package/dist/custom/interactive-forms/get-active-form-for-entity.action.js +5 -1
- package/dist/custom/interactive-forms/get-active-form-for-entity.action.js.map +1 -1
- package/dist/custom/interactive-forms/get-form-composition-for-entity.action.d.ts +59 -0
- package/dist/custom/interactive-forms/get-form-composition-for-entity.action.d.ts.map +1 -0
- package/dist/custom/interactive-forms/get-form-composition-for-entity.action.js +313 -0
- package/dist/custom/interactive-forms/get-form-composition-for-entity.action.js.map +1 -0
- package/dist/custom/interactive-forms/get-form-contributions-for-entity.action.d.ts +47 -0
- package/dist/custom/interactive-forms/get-form-contributions-for-entity.action.d.ts.map +1 -0
- package/dist/custom/interactive-forms/get-form-contributions-for-entity.action.js +115 -0
- package/dist/custom/interactive-forms/get-form-contributions-for-entity.action.js.map +1 -0
- package/dist/custom/interactive-forms/index.d.ts +5 -0
- package/dist/custom/interactive-forms/index.d.ts.map +1 -1
- package/dist/custom/interactive-forms/index.js +5 -0
- package/dist/custom/interactive-forms/index.js.map +1 -1
- package/dist/custom/interactive-forms/modify-form-contribution.action.d.ts +36 -0
- package/dist/custom/interactive-forms/modify-form-contribution.action.d.ts.map +1 -0
- package/dist/custom/interactive-forms/modify-form-contribution.action.js +181 -0
- package/dist/custom/interactive-forms/modify-form-contribution.action.js.map +1 -0
- package/dist/custom/interactive-forms/modify-interactive-form.action.d.ts +13 -11
- package/dist/custom/interactive-forms/modify-interactive-form.action.d.ts.map +1 -1
- package/dist/custom/interactive-forms/modify-interactive-form.action.js +65 -64
- package/dist/custom/interactive-forms/modify-interactive-form.action.js.map +1 -1
- package/dist/custom/interactive-forms/revert-interactive-form.action.d.ts +12 -0
- package/dist/custom/interactive-forms/revert-interactive-form.action.d.ts.map +1 -1
- package/dist/custom/interactive-forms/revert-interactive-form.action.js +29 -4
- package/dist/custom/interactive-forms/revert-interactive-form.action.js.map +1 -1
- package/dist/custom/record-cloning/clone-record.action.d.ts +15 -0
- package/dist/custom/record-cloning/clone-record.action.d.ts.map +1 -0
- package/dist/custom/record-cloning/clone-record.action.js +125 -0
- package/dist/custom/record-cloning/clone-record.action.js.map +1 -0
- package/dist/custom/record-cloning/clone-records.action.d.ts +15 -0
- package/dist/custom/record-cloning/clone-records.action.d.ts.map +1 -0
- package/dist/custom/record-cloning/clone-records.action.js +175 -0
- package/dist/custom/record-cloning/clone-records.action.js.map +1 -0
- package/dist/custom/utilities/vectorize-entity.action.js +1 -1
- package/dist/custom/utilities/vectorize-entity.action.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/package.json +42 -40
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { LogError, RunInEntityTransaction } from "@memberjunction/core";
|
|
2
|
+
import { EscapeSQLString } from "@memberjunction/global";
|
|
3
|
+
import { ApplyContributionSpecToRow, ContributionClaimRefusal, ContributionSpecColumns, FormLifecycleComponentStatus, FormScopeWriteRefusal, InstanceConfigEngine, InteractiveFormsEngine, } from "@memberjunction/core-entities";
|
|
4
|
+
import { CONTRIBUTION_KEY_PATTERN, GetDeclaredFormContribution, IsFormPanelRole, isFormRole, IsPanelContributionKey, ResolveContributionWriteKey, } from "@memberjunction/interactive-component-types/forms";
|
|
3
5
|
import { ComponentLinter } from "@memberjunction/react-linter";
|
|
4
6
|
// ── parameter helpers ────────────────────────────────────────────────────
|
|
5
7
|
export function GetParam(params, name) {
|
|
@@ -28,6 +30,11 @@ export function GetNumberParam(params, name) {
|
|
|
28
30
|
const n = typeof v === 'number' ? v : Number(String(v));
|
|
29
31
|
return Number.isFinite(n) ? n : null;
|
|
30
32
|
}
|
|
33
|
+
/** The `Precedence` input as a whole number of zero or more, or null when absent or not one. */
|
|
34
|
+
export function GetPrecedenceParam(params) {
|
|
35
|
+
const precedence = GetNumberParam(params, "Precedence");
|
|
36
|
+
return precedence != null && precedence >= 0 ? Math.floor(precedence) : null;
|
|
37
|
+
}
|
|
31
38
|
/** @deprecated Use {@link GetNumberParam}. */
|
|
32
39
|
export function getNumberParam(params, name) {
|
|
33
40
|
return GetNumberParam(params, name);
|
|
@@ -72,15 +79,24 @@ export function parseSpecParam(raw) {
|
|
|
72
79
|
return ParseSpecParam(raw);
|
|
73
80
|
}
|
|
74
81
|
/**
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
* rationale.
|
|
82
|
+
* Rules suppressed for both form roles. The form host (mj-react-component) creates
|
|
83
|
+
* `callbacks` / `utilities` / `components` / `styles` once per instance (stable refs),
|
|
84
|
+
* so depending on them in useEffect does not loop here; the prop and callback shape
|
|
85
|
+
* rules only know the generic component surface, not the host-provided one.
|
|
80
86
|
*/
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
87
|
+
const ROLE_SUPPRESSED_RULES = new Set([
|
|
88
|
+
"component-props-validation",
|
|
89
|
+
"callback-event-validation",
|
|
90
|
+
"useeffect-unstable-dependencies",
|
|
91
|
+
]);
|
|
92
|
+
/**
|
|
93
|
+
* Lint body shared by both roles. `roleCheck` decides which role the spec must
|
|
94
|
+
* declare; `roleLabel` names it in the failure message. Returns null on success,
|
|
95
|
+
* a fail-fast ActionResultSimple on failure.
|
|
96
|
+
*/
|
|
97
|
+
async function lintRoleSpec(spec, contextUser, roleCheck, roleLabel) {
|
|
98
|
+
if (!roleCheck(spec)) {
|
|
99
|
+
return Failure("LINT_FAILED", `Spec must declare componentRole='${roleLabel}'. Got '${spec.componentRole ?? "(unset)"}'. The InteractiveForm runtime refuses to mount any other role.`);
|
|
84
100
|
}
|
|
85
101
|
if (!spec.name || spec.name.trim().length === 0) {
|
|
86
102
|
return Failure("LINT_FAILED", "Spec.name is required.");
|
|
@@ -91,22 +107,13 @@ export async function LintFormSpec(spec, contextUser) {
|
|
|
91
107
|
if (!spec.location) {
|
|
92
108
|
return Failure("LINT_FAILED", "Spec.location is required (use 'embedded' for inline JSX or 'registry' to reference a published component).");
|
|
93
109
|
}
|
|
94
|
-
const FORM_ROLE_SUPPRESSED_RULES = new Set([
|
|
95
|
-
"component-props-validation",
|
|
96
|
-
"callback-event-validation",
|
|
97
|
-
// The form host (mj-react-component) creates `callbacks`/`utilities`/`components`/
|
|
98
|
-
// `styles` once per instance (stable refs), so depending on them in useEffect does
|
|
99
|
-
// not loop here. This rule only flags those host-provided prop names, making it a
|
|
100
|
-
// false positive on the form-role surface.
|
|
101
|
-
"useeffect-unstable-dependencies",
|
|
102
|
-
]);
|
|
103
110
|
try {
|
|
104
111
|
const result = await ComponentLinter.lintComponent(spec.code, spec.name, spec, true, contextUser);
|
|
105
112
|
const blocking = (result.violations ?? []).filter(v => {
|
|
106
113
|
const isBlocking = v.severity === "critical" || v.severity === "high";
|
|
107
114
|
if (!isBlocking)
|
|
108
115
|
return false;
|
|
109
|
-
if (v.rule &&
|
|
116
|
+
if (v.rule && ROLE_SUPPRESSED_RULES.has(v.rule))
|
|
110
117
|
return false;
|
|
111
118
|
return true;
|
|
112
119
|
});
|
|
@@ -123,6 +130,14 @@ export async function LintFormSpec(spec, contextUser) {
|
|
|
123
130
|
}
|
|
124
131
|
return null;
|
|
125
132
|
}
|
|
133
|
+
/** Lint a whole-form spec — `componentRole: 'form'`. */
|
|
134
|
+
export async function LintFormSpec(spec, contextUser) {
|
|
135
|
+
return lintRoleSpec(spec, contextUser, isFormRole, 'form');
|
|
136
|
+
}
|
|
137
|
+
/** Lint a form-panel spec — `componentRole: 'form-panel'`. Same rules as {@link LintFormSpec}. */
|
|
138
|
+
export async function LintFormPanelSpec(spec, contextUser) {
|
|
139
|
+
return lintRoleSpec(spec, contextUser, IsFormPanelRole, 'form-panel');
|
|
140
|
+
}
|
|
126
141
|
/** @deprecated Use {@link LintFormSpec}. */
|
|
127
142
|
export async function lintFormSpec(spec, contextUser) {
|
|
128
143
|
return LintFormSpec(spec, contextUser);
|
|
@@ -148,65 +163,105 @@ export async function LoadOverride(provider, user, overrideID) {
|
|
|
148
163
|
export async function loadOverride(provider, user, overrideID) {
|
|
149
164
|
return LoadOverride(provider, user, overrideID);
|
|
150
165
|
}
|
|
166
|
+
/** Load a Contribution entity object by primary key. */
|
|
167
|
+
export async function LoadContribution(provider, user, contributionID) {
|
|
168
|
+
const c = await provider.GetEntityObject("MJ: Entity Form Contributions", user);
|
|
169
|
+
const loaded = await c.Load(contributionID);
|
|
170
|
+
return loaded ? c : null;
|
|
171
|
+
}
|
|
151
172
|
/**
|
|
152
|
-
*
|
|
153
|
-
*
|
|
173
|
+
* Filter for the `MJ: Entity Form Contributions` rows a caller may see: their own
|
|
174
|
+
* User-scope rows, their roles' rows, and Global rows.
|
|
154
175
|
*
|
|
155
|
-
*
|
|
156
|
-
*
|
|
157
|
-
*
|
|
158
|
-
|
|
159
|
-
|
|
176
|
+
* Shared so every reader applies the same visibility. Two readers that disagree would
|
|
177
|
+
* show a contribution in one place and hide it in another, and the apply flow's
|
|
178
|
+
* duplicate check would miss a row the form is already rendering.
|
|
179
|
+
*/
|
|
180
|
+
export function ContributionScopeFilter(entityID, user) {
|
|
181
|
+
const roleIDs = (user.UserRoles ?? [])
|
|
182
|
+
.map(r => r.RoleID).filter((x) => !!x);
|
|
183
|
+
const roleClause = roleIDs.length > 0
|
|
184
|
+
? `(Scope='Role' AND RoleID IN (${roleIDs.map(id => `'${EscapeSQLString(id)}'`).join(',')}))`
|
|
185
|
+
: `(1=0)`;
|
|
186
|
+
return `EntityID='${EscapeSQLString(entityID)}' AND ((Scope='User' AND UserID='${EscapeSQLString(user.ID)}') OR ${roleClause} OR Scope='Global')`;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Whether metadata contributions are on for a server answer.
|
|
160
190
|
*
|
|
161
|
-
*
|
|
162
|
-
*
|
|
163
|
-
*
|
|
164
|
-
*
|
|
191
|
+
* Off when the Node switch is off (`MJ_FORMS_METADATA_CONTRIBUTIONS=false`, read into
|
|
192
|
+
* `InteractiveFormsEngine.MetadataContributionsEnabled`), or when the instance configuration
|
|
193
|
+
* Explorer reads (`Forms.MetadataContributions.Enabled`) is `false`. The instance configuration
|
|
194
|
+
* comes from the cached `InstanceConfigEngine`, which is refreshed after a save in the same
|
|
195
|
+
* process or by cross-server cache invalidation, so setting it back to `true` turns the answer
|
|
196
|
+
* back on once the cache has the new value. When Instance Config cannot load, only the Node
|
|
197
|
+
* switch counts.
|
|
198
|
+
*/
|
|
199
|
+
export async function MetadataContributionsOn(provider, user) {
|
|
200
|
+
if (!InteractiveFormsEngine.MetadataContributionsEnabled)
|
|
201
|
+
return false;
|
|
202
|
+
try {
|
|
203
|
+
const config = InstanceConfigEngine.Instance;
|
|
204
|
+
await config.Config(false, user, provider);
|
|
205
|
+
return config.GetBoolean(InteractiveFormsEngine.MetadataContributionsConfigKey, true);
|
|
206
|
+
}
|
|
207
|
+
catch (err) {
|
|
208
|
+
LogError(`Instance Config did not load, so form contributions stay on: ${err instanceof Error ? err.message : String(err)}`);
|
|
209
|
+
return true;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Why an action may not change this form or panel, as a `FORBIDDEN` result, or null.
|
|
165
214
|
*
|
|
166
|
-
*
|
|
215
|
+
* Actions change the caller's own personal forms and panels only. A row whose Scope is not
|
|
216
|
+
* `User` is refused for every caller, a Manage Form Defaults holder included: shared forms and
|
|
217
|
+
* panels are managed by people, from Form Builder or the form's Manage drawer. A `User` row is
|
|
218
|
+
* then checked with `FormScopeWriteRefusal`, the rule the server entity applies on save, which
|
|
219
|
+
* refuses a row that belongs to someone else.
|
|
167
220
|
*/
|
|
168
|
-
export function
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
// generated entity field). Owners can manage Global overrides;
|
|
189
|
-
// everyone else is rejected.
|
|
190
|
-
const isOwner = (user.Type ?? '').toLowerCase() === 'owner';
|
|
191
|
-
if (!isOwner) {
|
|
192
|
-
return Failure("FORBIDDEN", `Override ${ID} is Global. Only Owner-type users can mutate Global overrides; promote / demote them via Component Studio with appropriate privileges.`);
|
|
193
|
-
}
|
|
194
|
-
return null;
|
|
195
|
-
}
|
|
196
|
-
default:
|
|
197
|
-
return Failure("FORBIDDEN", `Override ${ID} has an unrecognized Scope ('${override.Scope}').`);
|
|
221
|
+
export function CheckPersonalWrite(row, user) {
|
|
222
|
+
if (row.Scope !== 'User') {
|
|
223
|
+
return Failure("FORBIDDEN", `${row.ID} is shared (Scope '${row.Scope}'). Actions change only your own personal forms and panels; ` +
|
|
224
|
+
`shared ones are managed from Form Builder or the form's Manage drawer.`);
|
|
225
|
+
}
|
|
226
|
+
const refusal = FormScopeWriteRefusal({
|
|
227
|
+
Operation: 'update',
|
|
228
|
+
PriorScope: row.Scope, PriorUserID: row.UserID,
|
|
229
|
+
NextScope: row.Scope, NextUserID: row.UserID,
|
|
230
|
+
CallerID: user.ID,
|
|
231
|
+
// A User row needs no grant, so only the ownership half of the rule can refuse it.
|
|
232
|
+
CallerHoldsGrant: false,
|
|
233
|
+
});
|
|
234
|
+
return refusal ? Failure("FORBIDDEN", refusal) : null;
|
|
235
|
+
}
|
|
236
|
+
/** Carries a failed write step out of the transaction, so the transaction rolls back. */
|
|
237
|
+
class RolledBackWrite extends Error {
|
|
238
|
+
constructor(Outcome) {
|
|
239
|
+
super(Outcome.error.Message);
|
|
240
|
+
this.Outcome = Outcome;
|
|
198
241
|
}
|
|
199
242
|
}
|
|
200
|
-
/**
|
|
201
|
-
|
|
202
|
-
|
|
243
|
+
/**
|
|
244
|
+
* Runs `work` in one entity transaction. When `work` returns an `{ error }` result, every write
|
|
245
|
+
* it made is rolled back and that result is returned; anything `work` throws also rolls back and
|
|
246
|
+
* is rethrown. A provider without entity transactions runs `work` without one.
|
|
247
|
+
*/
|
|
248
|
+
export async function WriteAtomically(provider, work) {
|
|
249
|
+
try {
|
|
250
|
+
return await RunInEntityTransaction(provider, async () => {
|
|
251
|
+
const outcome = await work();
|
|
252
|
+
if ('error' in outcome)
|
|
253
|
+
throw new RolledBackWrite(outcome);
|
|
254
|
+
return outcome;
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
catch (err) {
|
|
258
|
+
if (err instanceof RolledBackWrite)
|
|
259
|
+
return err.Outcome;
|
|
260
|
+
throw err;
|
|
261
|
+
}
|
|
203
262
|
}
|
|
204
263
|
export function MapToComponentStatus(lifecycle) {
|
|
205
|
-
|
|
206
|
-
case 'Active': return 'Published';
|
|
207
|
-
case 'Pending': return 'Draft';
|
|
208
|
-
case 'Inactive': return 'Deprecated';
|
|
209
|
-
}
|
|
264
|
+
return FormLifecycleComponentStatus(lifecycle);
|
|
210
265
|
}
|
|
211
266
|
/** @deprecated Use {@link MapToComponentStatus}. */
|
|
212
267
|
export function mapToComponentStatus(lifecycle) {
|
|
@@ -242,7 +297,7 @@ export async function InsertComponent(opts) {
|
|
|
242
297
|
component.Name = spec.name ?? fallbackName;
|
|
243
298
|
component.Title = spec.title ?? fallbackName;
|
|
244
299
|
component.Description = description ?? spec.description ?? null;
|
|
245
|
-
component.Type = "Form";
|
|
300
|
+
component.Type = opts.componentType ?? "Form";
|
|
246
301
|
component.Status = MapToComponentStatus(componentStatus);
|
|
247
302
|
component.Version = version;
|
|
248
303
|
component.VersionSequence = versionSequence;
|
|
@@ -259,9 +314,9 @@ export async function insertComponent(opts) {
|
|
|
259
314
|
return InsertComponent(opts);
|
|
260
315
|
}
|
|
261
316
|
/**
|
|
262
|
-
* Insert a new EntityFormOverride row
|
|
263
|
-
*
|
|
264
|
-
*
|
|
317
|
+
* Insert a new EntityFormOverride row, always User-scoped to the caller. Actions
|
|
318
|
+
* write personal forms only; sharing a form with a role or everyone is done from
|
|
319
|
+
* Form Builder or the form's Manage drawer.
|
|
265
320
|
*/
|
|
266
321
|
export async function InsertOverride(opts) {
|
|
267
322
|
const { provider, user, entityID, componentID, name, description, notes, status, priority } = opts;
|
|
@@ -382,4 +437,73 @@ export function ParseVersionBumpKind(raw) {
|
|
|
382
437
|
export function parseVersionBumpKind(raw) {
|
|
383
438
|
return ParseVersionBumpKind(raw);
|
|
384
439
|
}
|
|
440
|
+
/**
|
|
441
|
+
* Reads the `formContribution` block of a linted form-panel spec, resolves the related entity it
|
|
442
|
+
* claims to its registered name and ID, and derives the row's key with
|
|
443
|
+
* `ResolveContributionWriteKey`, seeding a panel key from `spec.name`.
|
|
444
|
+
*
|
|
445
|
+
* Fails with `LINT_FAILED` when the block cannot be read, `RELATED_ENTITY_NOT_FOUND` when the
|
|
446
|
+
* related entity is not registered, `INVALID_CLAIM` when the row the spec maps to breaks a claim
|
|
447
|
+
* rule the database enforces (`ContributionClaimRefusal`), and `INVALID_CONTRIBUTION_KEY` when the
|
|
448
|
+
* key does not match `CONTRIBUTION_KEY_PATTERN`. Callers run it before any write.
|
|
449
|
+
*
|
|
450
|
+
* @param currentKey The key of the row being modified; omit for a new row. When the spec names
|
|
451
|
+
* no key and claims no grid, a panel key here is kept, so renaming the component does not change
|
|
452
|
+
* the contribution's identity.
|
|
453
|
+
*/
|
|
454
|
+
export function ResolveContributionRegistration(provider, spec, currentKey = null) {
|
|
455
|
+
const contribution = GetDeclaredFormContribution(spec);
|
|
456
|
+
if (!contribution)
|
|
457
|
+
return { error: Failure("LINT_FAILED", "Spec.formContribution could not be read.") };
|
|
458
|
+
let relatedEntityID = null;
|
|
459
|
+
if (contribution.relatedEntity) {
|
|
460
|
+
const related = provider.EntityByName(contribution.relatedEntity);
|
|
461
|
+
if (!related) {
|
|
462
|
+
return { error: Failure("RELATED_ENTITY_NOT_FOUND", `Related entity '${contribution.relatedEntity}' is not registered.`) };
|
|
463
|
+
}
|
|
464
|
+
relatedEntityID = related.ID;
|
|
465
|
+
// The registered casing keeps the derived key stable.
|
|
466
|
+
contribution.relatedEntity = related.Name;
|
|
467
|
+
}
|
|
468
|
+
const relatedEntityName = contribution.relatedEntity ?? null;
|
|
469
|
+
if (!contribution.contributionKey && !relatedEntityName && IsPanelContributionKey(currentKey)) {
|
|
470
|
+
contribution.contributionKey = currentKey;
|
|
471
|
+
}
|
|
472
|
+
const componentName = spec.name?.trim() || null;
|
|
473
|
+
const rowOptions = { relatedEntityID, relatedEntityName, componentName };
|
|
474
|
+
const claimRefusal = ContributionClaimRefusal(ContributionSpecColumns(contribution, rowOptions));
|
|
475
|
+
if (claimRefusal)
|
|
476
|
+
return { error: Failure("INVALID_CLAIM", claimRefusal) };
|
|
477
|
+
const writeKey = ResolveContributionWriteKey(contribution, relatedEntityName, componentName);
|
|
478
|
+
if (writeKey && !CONTRIBUTION_KEY_PATTERN.test(writeKey)) {
|
|
479
|
+
return { error: Failure("INVALID_CONTRIBUTION_KEY", `Contribution key '${writeKey}' must match ${CONTRIBUTION_KEY_PATTERN.source}.`) };
|
|
480
|
+
}
|
|
481
|
+
return { Contribution: contribution, RowOptions: rowOptions, WriteKey: writeKey };
|
|
482
|
+
}
|
|
483
|
+
/**
|
|
484
|
+
* Insert a new EntityFormContribution row. Always User-scoped — promotion to Role or
|
|
485
|
+
* Global is a deliberate human act, not something an agent write path can reach.
|
|
486
|
+
*/
|
|
487
|
+
export async function InsertContribution(opts) {
|
|
488
|
+
const { provider, user, entityID, componentID, name, description, notes, registration, status, precedence } = opts;
|
|
489
|
+
const row = await provider.GetEntityObject("MJ: Entity Form Contributions", user);
|
|
490
|
+
row.NewRecord();
|
|
491
|
+
row.EntityID = entityID;
|
|
492
|
+
row.ComponentID = componentID;
|
|
493
|
+
row.Name = name;
|
|
494
|
+
row.Description = description;
|
|
495
|
+
row.Notes = notes ?? null;
|
|
496
|
+
ApplyContributionSpecToRow(row, registration.Contribution, registration.RowOptions);
|
|
497
|
+
// Security clamp: agents write User scope only. Promotion is a human act.
|
|
498
|
+
row.Scope = "User";
|
|
499
|
+
row.UserID = user.ID;
|
|
500
|
+
row.RoleID = null;
|
|
501
|
+
row.Precedence = precedence;
|
|
502
|
+
row.Status = status;
|
|
503
|
+
const saved = await row.Save();
|
|
504
|
+
if (!saved) {
|
|
505
|
+
return { error: Failure("PERSIST_FAILED", `Contribution insert failed: ${row.LatestResult?.CompleteMessage ?? "unknown error"}`) };
|
|
506
|
+
}
|
|
507
|
+
return { id: row.ID };
|
|
508
|
+
}
|
|
385
509
|
//# sourceMappingURL=_shared.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_shared.js","sourceRoot":"","sources":["../../../src/custom/interactive-forms/_shared.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"_shared.js","sourceRoot":"","sources":["../../../src/custom/interactive-forms/_shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
|
|
2
|
+
import { BaseAction } from "@memberjunction/actions";
|
|
3
|
+
/**
|
|
4
|
+
* Promote one of the caller's own Pending contributions to Active and demote the caller's Active
|
|
5
|
+
* row that shares its EntityID and ContributionKey.
|
|
6
|
+
*
|
|
7
|
+
* Only the caller's own User-scope rows can be activated; a Role or Global row, or another user's
|
|
8
|
+
* row, returns `FORBIDDEN` (shared panels are managed from the form's Manage drawer or Form
|
|
9
|
+
* Builder). A row with no ContributionKey is unique by construction and has no sibling to demote.
|
|
10
|
+
* Activating a row that is already Active is a no-op success, so the apply flow can retry
|
|
11
|
+
* safely. An Inactive row returns `NOT_PENDING` — branch a new Pending version from it
|
|
12
|
+
* with `Modify Form Contribution` first.
|
|
13
|
+
*/
|
|
14
|
+
export declare class ActivateFormContributionVersionAction extends BaseAction {
|
|
15
|
+
protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
|
|
16
|
+
/**
|
|
17
|
+
* The Active rows sharing the target's key and audience, which `ActiveContributionSiblings`
|
|
18
|
+
* decides, as the Manage drawer does. Empty for a keyless row.
|
|
19
|
+
*/
|
|
20
|
+
private findPriorActive;
|
|
21
|
+
}
|
|
22
|
+
export declare function LoadActivateFormContributionVersionAction(): void;
|
|
23
|
+
//# sourceMappingURL=activate-form-contribution-version.action.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activate-form-contribution-version.action.d.ts","sourceRoot":"","sources":["../../../src/custom/interactive-forms/activate-form-contribution-version.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAqBrD;;;;;;;;;;GAUG;AACH,qBACa,qCAAsC,SAAQ,UAAU;cAEjD,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA4FvF;;;OAGG;YACW,eAAe;CAyBhC;AAED,wBAAgB,yCAAyC,IAAI,IAAI,CAEhE"}
|
|
@@ -0,0 +1,151 @@
|
|
|
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, RunInEntityTransaction } from "@memberjunction/core";
|
|
9
|
+
import { EscapeSQLString, RegisterClass } from "@memberjunction/global";
|
|
10
|
+
import { ActiveContributionSiblings } from "@memberjunction/core-entities";
|
|
11
|
+
import { CONTRIBUTION_KEY_PATTERN } from "@memberjunction/interactive-component-types/forms";
|
|
12
|
+
import { AddOutput, CheckPersonalWrite, Failure, GetStringParam, LoadComponent, LoadContribution, MapToComponentStatus, } from "./_shared.js";
|
|
13
|
+
/**
|
|
14
|
+
* Promote one of the caller's own Pending contributions to Active and demote the caller's Active
|
|
15
|
+
* row that shares its EntityID and ContributionKey.
|
|
16
|
+
*
|
|
17
|
+
* Only the caller's own User-scope rows can be activated; a Role or Global row, or another user's
|
|
18
|
+
* row, returns `FORBIDDEN` (shared panels are managed from the form's Manage drawer or Form
|
|
19
|
+
* Builder). A row with no ContributionKey is unique by construction and has no sibling to demote.
|
|
20
|
+
* Activating a row that is already Active is a no-op success, so the apply flow can retry
|
|
21
|
+
* safely. An Inactive row returns `NOT_PENDING` — branch a new Pending version from it
|
|
22
|
+
* with `Modify Form Contribution` first.
|
|
23
|
+
*/
|
|
24
|
+
let ActivateFormContributionVersionAction = class ActivateFormContributionVersionAction extends BaseAction {
|
|
25
|
+
async InternalRunAction(params) {
|
|
26
|
+
try {
|
|
27
|
+
const contributionID = GetStringParam(params, "ContributionID");
|
|
28
|
+
if (!contributionID)
|
|
29
|
+
return Failure("MISSING_PARAMETER", "Parameter 'ContributionID' is required.");
|
|
30
|
+
const provider = params.Provider ?? Metadata.Provider;
|
|
31
|
+
if (!provider)
|
|
32
|
+
return Failure("NO_PROVIDER", "No metadata provider available.");
|
|
33
|
+
const user = params.ContextUser;
|
|
34
|
+
if (!user)
|
|
35
|
+
return Failure("NO_USER", "Action requires a ContextUser.");
|
|
36
|
+
const target = await LoadContribution(provider, user, contributionID);
|
|
37
|
+
if (!target)
|
|
38
|
+
return Failure("CONTRIBUTION_NOT_FOUND", `Contribution '${contributionID}' not found.`);
|
|
39
|
+
const forbidden = CheckPersonalWrite(target, user);
|
|
40
|
+
if (forbidden)
|
|
41
|
+
return forbidden;
|
|
42
|
+
if (target.Status === 'Active') {
|
|
43
|
+
AddOutput(params, "ContributionID", target.ID);
|
|
44
|
+
AddOutput(params, "ComponentID", target.ComponentID);
|
|
45
|
+
AddOutput(params, "PreviousActiveContributionID", null);
|
|
46
|
+
return {
|
|
47
|
+
Success: true, ResultCode: "SUCCESS",
|
|
48
|
+
Message: JSON.stringify({ noop: true, ContributionID: target.ID, ComponentID: target.ComponentID }),
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
if (target.Status === 'Inactive') {
|
|
52
|
+
return Failure("NOT_PENDING", `Contribution ${contributionID} is Inactive. Modify it with a version bump to branch a new Pending version first.`);
|
|
53
|
+
}
|
|
54
|
+
const priors = await this.findPriorActive(params, target);
|
|
55
|
+
if ('error' in priors)
|
|
56
|
+
return priors.error;
|
|
57
|
+
const component = await LoadComponent(provider, user, target.ComponentID);
|
|
58
|
+
if (!component) {
|
|
59
|
+
return Failure("COMPONENT_NOT_FOUND", `Contribution ${contributionID} points at Component ${target.ComponentID} which no longer exists.`);
|
|
60
|
+
}
|
|
61
|
+
// Demote BEFORE promoting. `UQ_EntityFormContribution_Key` is unique over
|
|
62
|
+
// (EntityID, ContributionKey, Scope, UserID, RoleID) filtered to Status='Active',
|
|
63
|
+
// so promoting first means two Active rows share the key for one statement and the
|
|
64
|
+
// index refuses the write. Both steps run in one transaction where the provider
|
|
65
|
+
// supports it, so a failure mid-way cannot leave the form with no Active row.
|
|
66
|
+
let firstPriorID = null;
|
|
67
|
+
try {
|
|
68
|
+
await RunInEntityTransaction(provider, async () => {
|
|
69
|
+
for (const prior of priors.rows) {
|
|
70
|
+
firstPriorID ??= prior.ID;
|
|
71
|
+
const priorRow = await LoadContribution(provider, user, prior.ID);
|
|
72
|
+
const priorComponent = await LoadComponent(provider, user, prior.ComponentID);
|
|
73
|
+
if (priorRow) {
|
|
74
|
+
priorRow.Status = 'Inactive';
|
|
75
|
+
if (!(await priorRow.Save())) {
|
|
76
|
+
throw new Error(`Could not demote prior contribution ${prior.ID}: ${priorRow.LatestResult?.CompleteMessage ?? 'unknown error'}`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
if (priorComponent) {
|
|
80
|
+
priorComponent.Status = MapToComponentStatus('Inactive');
|
|
81
|
+
if (!(await priorComponent.Save())) {
|
|
82
|
+
throw new Error(`Could not deprecate prior component ${prior.ComponentID}: ${priorComponent.LatestResult?.CompleteMessage ?? 'unknown error'}`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
component.Status = MapToComponentStatus('Active');
|
|
87
|
+
if (!(await component.Save())) {
|
|
88
|
+
throw new Error(`Could not flip Component to Published: ${component.LatestResult?.CompleteMessage ?? 'unknown error'}`);
|
|
89
|
+
}
|
|
90
|
+
target.Status = 'Active';
|
|
91
|
+
if (!(await target.Save())) {
|
|
92
|
+
throw new Error(`Could not flip Contribution to Active: ${target.LatestResult?.CompleteMessage ?? 'unknown error'}`);
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
catch (err) {
|
|
97
|
+
return Failure("PERSIST_FAILED", err instanceof Error ? err.message : String(err));
|
|
98
|
+
}
|
|
99
|
+
AddOutput(params, "ContributionID", target.ID);
|
|
100
|
+
AddOutput(params, "ComponentID", target.ComponentID);
|
|
101
|
+
AddOutput(params, "PreviousActiveContributionID", firstPriorID);
|
|
102
|
+
return {
|
|
103
|
+
Success: true, ResultCode: "SUCCESS",
|
|
104
|
+
Message: JSON.stringify({
|
|
105
|
+
ContributionID: target.ID, ComponentID: target.ComponentID,
|
|
106
|
+
PreviousActiveContributionID: firstPriorID, DemotedCount: priors.rows.length,
|
|
107
|
+
}),
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
catch (err) {
|
|
111
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
112
|
+
LogError(`ActivateFormContributionVersionAction: ${message}`);
|
|
113
|
+
return Failure("UNEXPECTED_ERROR", message);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* The Active rows sharing the target's key and audience, which `ActiveContributionSiblings`
|
|
118
|
+
* decides, as the Manage drawer does. Empty for a keyless row.
|
|
119
|
+
*/
|
|
120
|
+
async findPriorActive(params, target) {
|
|
121
|
+
if (!target.ContributionKey)
|
|
122
|
+
return { rows: [] };
|
|
123
|
+
// Keys are constrained on write (CONTRIBUTION_KEY_PATTERN), so a stored key cannot
|
|
124
|
+
// contain a quote. Re-assert it rather than trusting the write path alone: a row that
|
|
125
|
+
// predates the constraint should fail loudly, not build a filter.
|
|
126
|
+
if (!CONTRIBUTION_KEY_PATTERN.test(target.ContributionKey)) {
|
|
127
|
+
return { error: Failure("INVALID_CONTRIBUTION_KEY", `Stored contribution key '${target.ContributionKey}' is not a legal key.`) };
|
|
128
|
+
}
|
|
129
|
+
const rv = RunView.FromMetadataProvider(params.Provider ?? Metadata.Provider);
|
|
130
|
+
const result = await rv.RunView({
|
|
131
|
+
EntityName: "MJ: Entity Form Contributions",
|
|
132
|
+
ExtraFilter: `EntityID='${EscapeSQLString(target.EntityID)}' AND ContributionKey='${EscapeSQLString(target.ContributionKey)}' AND Status='Active'`,
|
|
133
|
+
Fields: ['ID', 'EntityID', 'Status', 'Scope', 'UserID', 'RoleID', 'ContributionKey', 'ComponentID'],
|
|
134
|
+
ResultType: 'simple',
|
|
135
|
+
}, params.ContextUser);
|
|
136
|
+
if (!result.Success) {
|
|
137
|
+
return { error: Failure("QUERY_FAILED", `Prior-active lookup failed: ${result.ErrorMessage ?? 'unknown error'}`) };
|
|
138
|
+
}
|
|
139
|
+
return { rows: ActiveContributionSiblings(result.Results ?? [], target) };
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
ActivateFormContributionVersionAction = __decorate([
|
|
143
|
+
RegisterClass(BaseAction, "__ActivateFormContributionVersion")
|
|
144
|
+
], ActivateFormContributionVersionAction);
|
|
145
|
+
export { ActivateFormContributionVersionAction };
|
|
146
|
+
export function LoadActivateFormContributionVersionAction() {
|
|
147
|
+
if (false) {
|
|
148
|
+
const _ = ActivateFormContributionVersionAction;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=activate-form-contribution-version.action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activate-form-contribution-version.action.js","sourceRoot":"","sources":["../../../src/custom/interactive-forms/activate-form-contribution-version.action.ts"],"names":[],"mappings":"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"}
|