@memberjunction/core-actions 6.2.0-edge.0 → 6.2.0-edge.1

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.
Files changed (88) hide show
  1. package/dist/config.d.ts +6 -0
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js +16 -4
  4. package/dist/config.js.map +1 -1
  5. package/dist/custom/ai/base-find-actions.action.js +6 -6
  6. package/dist/custom/ai/base-find-agents.action.js +6 -6
  7. package/dist/custom/ai/find-candidate-agents.action.js +2 -2
  8. package/dist/custom/ai/semantic-entity-search.helper.d.ts +6 -0
  9. package/dist/custom/ai/semantic-entity-search.helper.d.ts.map +1 -1
  10. package/dist/custom/ai/semantic-entity-search.helper.js +16 -4
  11. package/dist/custom/ai/semantic-entity-search.helper.js.map +1 -1
  12. package/dist/custom/data/search-query-catalog.action.js +2 -2
  13. package/dist/custom/integration/api-rate-limiter.action.d.ts +4 -0
  14. package/dist/custom/integration/api-rate-limiter.action.d.ts.map +1 -1
  15. package/dist/custom/integration/api-rate-limiter.action.js +10 -2
  16. package/dist/custom/integration/api-rate-limiter.action.js.map +1 -1
  17. package/dist/custom/integration/gamma-generate-presentation.action.js +2 -2
  18. package/dist/custom/integration/integration-action-executor.d.ts +22 -22
  19. package/dist/custom/integration/integration-action-executor.js +83 -83
  20. package/dist/custom/interactive-forms/_shared.d.ts +69 -0
  21. package/dist/custom/interactive-forms/_shared.d.ts.map +1 -1
  22. package/dist/custom/interactive-forms/_shared.js +118 -38
  23. package/dist/custom/interactive-forms/_shared.js.map +1 -1
  24. package/dist/custom/interactive-forms/activate-interactive-form-version.action.js +25 -25
  25. package/dist/custom/interactive-forms/create-interactive-form.action.js +22 -22
  26. package/dist/custom/interactive-forms/modify-interactive-form.action.js +35 -35
  27. package/dist/custom/interactive-forms/revert-interactive-form.action.js +32 -32
  28. package/dist/custom/lists/_action-helpers.d.ts +10 -0
  29. package/dist/custom/lists/_action-helpers.d.ts.map +1 -1
  30. package/dist/custom/lists/_action-helpers.js +26 -6
  31. package/dist/custom/lists/_action-helpers.js.map +1 -1
  32. package/dist/custom/lists/add-view-results-to-list.action.js +8 -8
  33. package/dist/custom/lists/bulk-update-list-item-status.action.js +8 -8
  34. package/dist/custom/lists/compose-lists.action.js +14 -14
  35. package/dist/custom/lists/invite-to-list.action.js +10 -10
  36. package/dist/custom/lists/materialize-list-from-view.action.js +13 -13
  37. package/dist/custom/lists/move-list-members.action.js +12 -12
  38. package/dist/custom/lists/refresh-list-from-source.action.js +8 -8
  39. package/dist/custom/lists/resolve-audience.action.js +7 -7
  40. package/dist/custom/lists/revoke-list-invitation.action.js +3 -3
  41. package/dist/custom/lists/share-list.action.js +8 -8
  42. package/dist/custom/lists/unshare-list.action.js +3 -3
  43. package/dist/custom/utilities/address-services.action.js +2 -2
  44. package/dist/custom/utilities/artifact-builder-service.d.ts +16 -16
  45. package/dist/custom/utilities/artifact-builder-service.js +39 -39
  46. package/dist/custom/utilities/artifact-builder-service.js.map +1 -1
  47. package/dist/custom/utilities/docx-renderer.d.ts +17 -11
  48. package/dist/custom/utilities/docx-renderer.d.ts.map +1 -1
  49. package/dist/custom/utilities/docx-renderer.js +60 -48
  50. package/dist/custom/utilities/docx-renderer.js.map +1 -1
  51. package/dist/custom/utilities/json-param-helper.d.ts +6 -0
  52. package/dist/custom/utilities/json-param-helper.d.ts.map +1 -1
  53. package/dist/custom/utilities/json-param-helper.js +16 -4
  54. package/dist/custom/utilities/json-param-helper.js.map +1 -1
  55. package/dist/custom/utilities/pdf-renderer.d.ts +13 -7
  56. package/dist/custom/utilities/pdf-renderer.d.ts.map +1 -1
  57. package/dist/custom/utilities/pdf-renderer.js +27 -15
  58. package/dist/custom/utilities/pdf-renderer.js.map +1 -1
  59. package/dist/custom/utilities/xlsx-renderer.d.ts +19 -11
  60. package/dist/custom/utilities/xlsx-renderer.d.ts.map +1 -1
  61. package/dist/custom/utilities/xlsx-renderer.js +55 -39
  62. package/dist/custom/utilities/xlsx-renderer.js.map +1 -1
  63. package/dist/custom/visualization/create-svg-chart.action.js +23 -23
  64. package/dist/custom/visualization/create-svg-diagram.action.js +10 -10
  65. package/dist/custom/visualization/create-svg-infographic.action.js +4 -4
  66. package/dist/custom/visualization/create-svg-network.action.js +12 -12
  67. package/dist/custom/visualization/create-svg-sketch-diagram.action.js +10 -10
  68. package/dist/custom/visualization/create-svg-word-cloud.action.js +11 -11
  69. package/dist/custom/visualization/shared/svg-theming.d.ts +17 -0
  70. package/dist/custom/visualization/shared/svg-theming.d.ts.map +1 -1
  71. package/dist/custom/visualization/shared/svg-theming.js +34 -10
  72. package/dist/custom/visualization/shared/svg-theming.js.map +1 -1
  73. package/dist/custom/visualization/shared/svg-utils.d.ts +39 -0
  74. package/dist/custom/visualization/shared/svg-utils.d.ts.map +1 -1
  75. package/dist/custom/visualization/shared/svg-utils.js +81 -17
  76. package/dist/custom/visualization/shared/svg-utils.js.map +1 -1
  77. package/dist/custom/web/duckduckgo-rate-limiter.d.ts +17 -1
  78. package/dist/custom/web/duckduckgo-rate-limiter.d.ts.map +1 -1
  79. package/dist/custom/web/duckduckgo-rate-limiter.js +26 -6
  80. package/dist/custom/web/duckduckgo-rate-limiter.js.map +1 -1
  81. package/dist/custom/web/google-custom-search.action.js +2 -2
  82. package/dist/custom/web/rss-feed-parsing.d.ts +19 -0
  83. package/dist/custom/web/rss-feed-parsing.d.ts.map +1 -1
  84. package/dist/custom/web/rss-feed-parsing.js +45 -13
  85. package/dist/custom/web/rss-feed-parsing.js.map +1 -1
  86. package/dist/custom/web/rss-feed-read.action.js +5 -5
  87. package/dist/custom/web/tavily-search.action.js +2 -2
  88. package/package.json +40 -40
@@ -29,13 +29,13 @@ let IntegrationActionExecutor = class IntegrationActionExecutor extends BaseActi
29
29
  async InternalRunAction(params) {
30
30
  try {
31
31
  // 1. Parse config
32
- const config = this.ParseConfig(params);
32
+ const config = this.parseConfig(params);
33
33
  // 2. Resolve connector
34
- const connector = await this.ResolveConnector(config.IntegrationName, params);
34
+ const connector = await this.resolveConnector(config.IntegrationName, params);
35
35
  // 3. Resolve CompanyIntegration
36
- const companyIntegration = await this.ResolveCompanyIntegration(config.IntegrationName, params);
36
+ const companyIntegration = await this.resolveCompanyIntegration(config.IntegrationName, params);
37
37
  // 4. Dispatch to verb handler
38
- const result = await this.DispatchVerb(config, connector, companyIntegration, params);
38
+ const result = await this.dispatchVerb(config, connector, companyIntegration, params);
39
39
  return result;
40
40
  }
41
41
  catch (error) {
@@ -60,15 +60,15 @@ let IntegrationActionExecutor = class IntegrationActionExecutor extends BaseActi
60
60
  * three values are read (case-insensitive) from the ActionParams. This lets a
61
61
  * single generic action do CRUD on ANY object without pre-generation.
62
62
  */
63
- ParseConfig(params) {
63
+ parseConfig(params) {
64
64
  const configJson = params.Action?.Config_;
65
65
  if (configJson && configJson.trim().length > 0) {
66
- return this.ParseConfigFromJson(configJson);
66
+ return this.parseConfigFromJson(configJson);
67
67
  }
68
- return this.ParseConfigFromParams(params);
68
+ return this.parseConfigFromParams(params);
69
69
  }
70
70
  /** Parse + validate the JSON stored in Action.Config_ (pre-generated actions). */
71
- ParseConfigFromJson(configJson) {
71
+ parseConfigFromJson(configJson) {
72
72
  const parsed = JSON.parse(configJson);
73
73
  const integrationName = parsed['IntegrationName'];
74
74
  const objectName = parsed['ObjectName'];
@@ -85,10 +85,10 @@ let IntegrationActionExecutor = class IntegrationActionExecutor extends BaseActi
85
85
  * still references Action.Config_ so existing pre-generated callers get a
86
86
  * familiar diagnostic when nothing at all was provided.
87
87
  */
88
- ParseConfigFromParams(params) {
89
- const integrationName = this.GetParamValue(params.Params, 'IntegrationName');
90
- const objectName = this.GetParamValue(params.Params, 'ObjectName');
91
- const verb = this.GetParamValue(params.Params, 'Verb');
88
+ parseConfigFromParams(params) {
89
+ const integrationName = this.getParamValue(params.Params, 'IntegrationName');
90
+ const objectName = this.getParamValue(params.Params, 'ObjectName');
91
+ const verb = this.getParamValue(params.Params, 'Verb');
92
92
  if (!integrationName || !objectName || !verb) {
93
93
  throw new Error('Action.Config_ is required for IntegrationActionExecutor, or pass ' +
94
94
  'IntegrationName, ObjectName and Verb as ActionParams for generic invocation');
@@ -96,11 +96,11 @@ let IntegrationActionExecutor = class IntegrationActionExecutor extends BaseActi
96
96
  return { IntegrationName: integrationName, ObjectName: objectName, Verb: verb };
97
97
  }
98
98
  // ─── Connector Resolution ────────────────────────────────────────
99
- async ResolveConnector(integrationName, params) {
100
- const integration = await this.LoadIntegrationEntity(integrationName, params);
99
+ async resolveConnector(integrationName, params) {
100
+ const integration = await this.loadIntegrationEntity(integrationName, params);
101
101
  return ConnectorFactory.Resolve(integration);
102
102
  }
103
- async LoadIntegrationEntity(integrationName, params) {
103
+ async loadIntegrationEntity(integrationName, params) {
104
104
  const rv = new RunView();
105
105
  const result = await rv.RunView({
106
106
  EntityName: 'MJ: Integrations',
@@ -114,11 +114,11 @@ let IntegrationActionExecutor = class IntegrationActionExecutor extends BaseActi
114
114
  return result.Results[0];
115
115
  }
116
116
  // ─── CompanyIntegration Resolution ───────────────────────────────
117
- async ResolveCompanyIntegration(integrationName, params) {
117
+ async resolveCompanyIntegration(integrationName, params) {
118
118
  // Check if CompanyIntegrationID was passed as an ActionParam
119
- const ciIdParam = this.GetParamValue(params.Params, 'CompanyIntegrationID');
119
+ const ciIdParam = this.getParamValue(params.Params, 'CompanyIntegrationID');
120
120
  if (ciIdParam) {
121
- return this.LoadCompanyIntegrationByID(ciIdParam, params);
121
+ return this.loadCompanyIntegrationByID(ciIdParam, params);
122
122
  }
123
123
  // Otherwise look up the first active CompanyIntegration for this integration name
124
124
  const rv = new RunView();
@@ -134,7 +134,7 @@ let IntegrationActionExecutor = class IntegrationActionExecutor extends BaseActi
134
134
  }
135
135
  return result.Results[0];
136
136
  }
137
- async LoadCompanyIntegrationByID(id, params) {
137
+ async loadCompanyIntegrationByID(id, params) {
138
138
  const md = params.Provider ?? new Metadata();
139
139
  const entity = await md.GetEntityObject('MJ: Company Integrations', params.ContextUser);
140
140
  const loaded = await entity.Load(id);
@@ -144,29 +144,29 @@ let IntegrationActionExecutor = class IntegrationActionExecutor extends BaseActi
144
144
  return entity;
145
145
  }
146
146
  // ─── Verb Dispatch ───────────────────────────────────────────────
147
- async DispatchVerb(config, connector, companyIntegration, params) {
147
+ async dispatchVerb(config, connector, companyIntegration, params) {
148
148
  switch (config.Verb) {
149
149
  case 'Get':
150
- return this.HandleGet(config, connector, companyIntegration, params);
150
+ return this.handleGet(config, connector, companyIntegration, params);
151
151
  case 'Create':
152
- return this.HandleCreate(config, connector, companyIntegration, params);
152
+ return this.handleCreate(config, connector, companyIntegration, params);
153
153
  case 'Update':
154
- return this.HandleUpdate(config, connector, companyIntegration, params);
154
+ return this.handleUpdate(config, connector, companyIntegration, params);
155
155
  case 'Upsert':
156
- return this.HandleUpsert(config, connector, companyIntegration, params);
156
+ return this.handleUpsert(config, connector, companyIntegration, params);
157
157
  case 'Delete':
158
- return this.HandleDelete(config, connector, companyIntegration, params);
158
+ return this.handleDelete(config, connector, companyIntegration, params);
159
159
  case 'Search':
160
- return this.HandleSearch(config, connector, companyIntegration, params);
160
+ return this.handleSearch(config, connector, companyIntegration, params);
161
161
  case 'List':
162
- return this.HandleList(config, connector, companyIntegration, params);
162
+ return this.handleList(config, connector, companyIntegration, params);
163
163
  default:
164
164
  throw new Error(`Unsupported verb: ${config.Verb}`);
165
165
  }
166
166
  }
167
167
  // ─── Get ─────────────────────────────────────────────────────────
168
- async HandleGet(config, connector, companyIntegration, params) {
169
- const externalID = this.GetRequiredParam(params.Params, 'ExternalID');
168
+ async handleGet(config, connector, companyIntegration, params) {
169
+ const externalID = this.getRequiredParam(params.Params, 'ExternalID');
170
170
  const ctx = {
171
171
  CompanyIntegration: companyIntegration,
172
172
  ObjectName: config.ObjectName,
@@ -175,18 +175,18 @@ let IntegrationActionExecutor = class IntegrationActionExecutor extends BaseActi
175
175
  };
176
176
  const record = await connector.GetRecord(ctx);
177
177
  if (!record) {
178
- return this.BuildResult(false, 'NOT_FOUND', `Record ${externalID} not found`, params.Params);
178
+ return this.buildResult(false, 'NOT_FOUND', `Record ${externalID} not found`, params.Params);
179
179
  }
180
- this.SetOutputParam(params.Params, 'Record', record.Fields);
181
- this.SetOutputParam(params.Params, 'ExternalID', record.ExternalID);
182
- return this.BuildResult(true, 'SUCCESS', `Retrieved ${config.ObjectName} ${externalID}`, params.Params);
180
+ this.setOutputParam(params.Params, 'Record', record.Fields);
181
+ this.setOutputParam(params.Params, 'ExternalID', record.ExternalID);
182
+ return this.buildResult(true, 'SUCCESS', `Retrieved ${config.ObjectName} ${externalID}`, params.Params);
183
183
  }
184
184
  // ─── Create ──────────────────────────────────────────────────────
185
- async HandleCreate(config, connector, companyIntegration, params) {
185
+ async handleCreate(config, connector, companyIntegration, params) {
186
186
  if (!connector.SupportsCreate) {
187
- return this.BuildResult(false, 'NOT_SUPPORTED', `Create not supported for ${config.IntegrationName}`, params.Params);
187
+ return this.buildResult(false, 'NOT_SUPPORTED', `Create not supported for ${config.IntegrationName}`, params.Params);
188
188
  }
189
- const attributes = this.CollectInputAttributes(params.Params);
189
+ const attributes = this.collectInputAttributes(params.Params);
190
190
  const ctx = {
191
191
  CompanyIntegration: companyIntegration,
192
192
  ObjectName: config.ObjectName,
@@ -194,15 +194,15 @@ let IntegrationActionExecutor = class IntegrationActionExecutor extends BaseActi
194
194
  Attributes: attributes,
195
195
  };
196
196
  const result = await connector.CreateRecord(ctx);
197
- return this.CRUDResultToActionResult(result, 'Create', config.ObjectName, params.Params);
197
+ return this.cRUDResultToActionResult(result, 'Create', config.ObjectName, params.Params);
198
198
  }
199
199
  // ─── Update ──────────────────────────────────────────────────────
200
- async HandleUpdate(config, connector, companyIntegration, params) {
200
+ async handleUpdate(config, connector, companyIntegration, params) {
201
201
  if (!connector.SupportsUpdate) {
202
- return this.BuildResult(false, 'NOT_SUPPORTED', `Update not supported for ${config.IntegrationName}`, params.Params);
202
+ return this.buildResult(false, 'NOT_SUPPORTED', `Update not supported for ${config.IntegrationName}`, params.Params);
203
203
  }
204
- const externalID = this.GetRequiredParam(params.Params, 'ExternalID');
205
- const attributes = this.CollectInputAttributes(params.Params);
204
+ const externalID = this.getRequiredParam(params.Params, 'ExternalID');
205
+ const attributes = this.collectInputAttributes(params.Params);
206
206
  const ctx = {
207
207
  CompanyIntegration: companyIntegration,
208
208
  ObjectName: config.ObjectName,
@@ -211,15 +211,15 @@ let IntegrationActionExecutor = class IntegrationActionExecutor extends BaseActi
211
211
  Attributes: attributes,
212
212
  };
213
213
  const result = await connector.UpdateRecord(ctx);
214
- return this.CRUDResultToActionResult(result, 'Update', config.ObjectName, params.Params);
214
+ return this.cRUDResultToActionResult(result, 'Update', config.ObjectName, params.Params);
215
215
  }
216
216
  // ─── Upsert ──────────────────────────────────────────────────────
217
- async HandleUpsert(config, connector, companyIntegration, params) {
217
+ async handleUpsert(config, connector, companyIntegration, params) {
218
218
  if (!connector.SupportsUpsert) {
219
- return this.BuildResult(false, 'NOT_SUPPORTED', `Upsert not supported for ${config.IntegrationName}`, params.Params);
219
+ return this.buildResult(false, 'NOT_SUPPORTED', `Upsert not supported for ${config.IntegrationName}`, params.Params);
220
220
  }
221
- const attributes = this.CollectInputAttributes(params.Params);
222
- const idProperty = this.GetParamValue(params.Params, 'IDProperty');
221
+ const attributes = this.collectInputAttributes(params.Params);
222
+ const idProperty = this.getParamValue(params.Params, 'IDProperty');
223
223
  const ctx = {
224
224
  CompanyIntegration: companyIntegration,
225
225
  ObjectName: config.ObjectName,
@@ -228,14 +228,14 @@ let IntegrationActionExecutor = class IntegrationActionExecutor extends BaseActi
228
228
  IDProperty: idProperty ?? undefined,
229
229
  };
230
230
  const result = await connector.Upsert(ctx);
231
- return this.CRUDResultToActionResult(result, 'Upsert', config.ObjectName, params.Params);
231
+ return this.cRUDResultToActionResult(result, 'Upsert', config.ObjectName, params.Params);
232
232
  }
233
233
  // ─── Delete ──────────────────────────────────────────────────────
234
- async HandleDelete(config, connector, companyIntegration, params) {
234
+ async handleDelete(config, connector, companyIntegration, params) {
235
235
  if (!connector.SupportsDelete) {
236
- return this.BuildResult(false, 'NOT_SUPPORTED', `Delete not supported for ${config.IntegrationName}`, params.Params);
236
+ return this.buildResult(false, 'NOT_SUPPORTED', `Delete not supported for ${config.IntegrationName}`, params.Params);
237
237
  }
238
- const externalID = this.GetRequiredParam(params.Params, 'ExternalID');
238
+ const externalID = this.getRequiredParam(params.Params, 'ExternalID');
239
239
  const ctx = {
240
240
  CompanyIntegration: companyIntegration,
241
241
  ObjectName: config.ObjectName,
@@ -243,17 +243,17 @@ let IntegrationActionExecutor = class IntegrationActionExecutor extends BaseActi
243
243
  ExternalID: externalID,
244
244
  };
245
245
  const result = await connector.DeleteRecord(ctx);
246
- return this.CRUDResultToActionResult(result, 'Delete', config.ObjectName, params.Params);
246
+ return this.cRUDResultToActionResult(result, 'Delete', config.ObjectName, params.Params);
247
247
  }
248
248
  // ─── Search ──────────────────────────────────────────────────────
249
- async HandleSearch(config, connector, companyIntegration, params) {
249
+ async handleSearch(config, connector, companyIntegration, params) {
250
250
  if (!connector.SupportsSearch) {
251
- return this.BuildResult(false, 'NOT_SUPPORTED', `Search not supported for ${config.IntegrationName}`, params.Params);
251
+ return this.buildResult(false, 'NOT_SUPPORTED', `Search not supported for ${config.IntegrationName}`, params.Params);
252
252
  }
253
- const filters = this.CollectInputAttributes(params.Params);
254
- const pageSize = this.GetOptionalNumericParam(params.Params, 'PageSize');
255
- const page = this.GetOptionalNumericParam(params.Params, 'Page');
256
- const sort = this.GetParamValue(params.Params, 'Sort');
253
+ const filters = this.collectInputAttributes(params.Params);
254
+ const pageSize = this.getOptionalNumericParam(params.Params, 'PageSize');
255
+ const page = this.getOptionalNumericParam(params.Params, 'Page');
256
+ const sort = this.getParamValue(params.Params, 'Sort');
257
257
  const ctx = {
258
258
  CompanyIntegration: companyIntegration,
259
259
  ObjectName: config.ObjectName,
@@ -264,19 +264,19 @@ let IntegrationActionExecutor = class IntegrationActionExecutor extends BaseActi
264
264
  Sort: sort ?? undefined,
265
265
  };
266
266
  const result = await connector.SearchRecords(ctx);
267
- this.SetOutputParam(params.Params, 'Records', result.Records.map(r => r.Fields));
268
- this.SetOutputParam(params.Params, 'TotalCount', result.TotalCount);
269
- this.SetOutputParam(params.Params, 'HasMore', result.HasMore);
270
- return this.BuildResult(true, 'SUCCESS', `Found ${result.TotalCount} ${config.ObjectName} record(s)`, params.Params);
267
+ this.setOutputParam(params.Params, 'Records', result.Records.map(r => r.Fields));
268
+ this.setOutputParam(params.Params, 'TotalCount', result.TotalCount);
269
+ this.setOutputParam(params.Params, 'HasMore', result.HasMore);
270
+ return this.buildResult(true, 'SUCCESS', `Found ${result.TotalCount} ${config.ObjectName} record(s)`, params.Params);
271
271
  }
272
272
  // ─── List ────────────────────────────────────────────────────────
273
- async HandleList(config, connector, companyIntegration, params) {
273
+ async handleList(config, connector, companyIntegration, params) {
274
274
  if (!connector.SupportsListing) {
275
- return this.BuildResult(false, 'NOT_SUPPORTED', `List not supported for ${config.IntegrationName}`, params.Params);
275
+ return this.buildResult(false, 'NOT_SUPPORTED', `List not supported for ${config.IntegrationName}`, params.Params);
276
276
  }
277
- const pageSize = this.GetOptionalNumericParam(params.Params, 'PageSize');
278
- const cursor = this.GetParamValue(params.Params, 'Cursor');
279
- const sort = this.GetParamValue(params.Params, 'Sort');
277
+ const pageSize = this.getOptionalNumericParam(params.Params, 'PageSize');
278
+ const cursor = this.getParamValue(params.Params, 'Cursor');
279
+ const sort = this.getParamValue(params.Params, 'Sort');
280
280
  const ctx = {
281
281
  CompanyIntegration: companyIntegration,
282
282
  ObjectName: config.ObjectName,
@@ -286,33 +286,33 @@ let IntegrationActionExecutor = class IntegrationActionExecutor extends BaseActi
286
286
  Sort: sort ?? undefined,
287
287
  };
288
288
  const result = await connector.ListRecords(ctx);
289
- this.SetOutputParam(params.Params, 'Records', result.Records.map(r => r.Fields));
290
- this.SetOutputParam(params.Params, 'HasMore', result.HasMore);
291
- this.SetOutputParam(params.Params, 'NextCursor', result.NextCursor);
289
+ this.setOutputParam(params.Params, 'Records', result.Records.map(r => r.Fields));
290
+ this.setOutputParam(params.Params, 'HasMore', result.HasMore);
291
+ this.setOutputParam(params.Params, 'NextCursor', result.NextCursor);
292
292
  if (result.TotalCount != null) {
293
- this.SetOutputParam(params.Params, 'TotalCount', result.TotalCount);
293
+ this.setOutputParam(params.Params, 'TotalCount', result.TotalCount);
294
294
  }
295
- return this.BuildResult(true, 'SUCCESS', `Listed ${result.Records.length} ${config.ObjectName} record(s)`, params.Params);
295
+ return this.buildResult(true, 'SUCCESS', `Listed ${result.Records.length} ${config.ObjectName} record(s)`, params.Params);
296
296
  }
297
297
  // ─── Parameter Helpers ───────────────────────────────────────────
298
298
  /** Gets a parameter value by name (case-insensitive). Returns null if not found. */
299
- GetParamValue(actionParams, name) {
299
+ getParamValue(actionParams, name) {
300
300
  const param = actionParams.find(p => p.Name.trim().toLowerCase() === name.toLowerCase() && p.Type !== 'Output');
301
301
  if (!param || param.Value == null)
302
302
  return null;
303
303
  return String(param.Value);
304
304
  }
305
305
  /** Gets a required parameter, throwing if not found. */
306
- GetRequiredParam(actionParams, name) {
307
- const value = this.GetParamValue(actionParams, name);
306
+ getRequiredParam(actionParams, name) {
307
+ const value = this.getParamValue(actionParams, name);
308
308
  if (!value) {
309
309
  throw new Error(`Required parameter "${name}" is missing`);
310
310
  }
311
311
  return value;
312
312
  }
313
313
  /** Gets an optional numeric parameter. */
314
- GetOptionalNumericParam(actionParams, name) {
315
- const value = this.GetParamValue(actionParams, name);
314
+ getOptionalNumericParam(actionParams, name) {
315
+ const value = this.getParamValue(actionParams, name);
316
316
  if (!value)
317
317
  return undefined;
318
318
  const parsed = Number(value);
@@ -322,7 +322,7 @@ let IntegrationActionExecutor = class IntegrationActionExecutor extends BaseActi
322
322
  * Collects all Input parameters (excluding system params like ExternalID, CompanyIntegrationID,
323
323
  * PageSize, Page, Cursor, Sort, IDProperty) into a key-value object suitable for CRUD Attributes.
324
324
  */
325
- CollectInputAttributes(actionParams) {
325
+ collectInputAttributes(actionParams) {
326
326
  const systemParams = new Set([
327
327
  'externalid', 'companyintegrationid', 'pagesize', 'page', 'cursor', 'sort', 'idproperty',
328
328
  // Generic catch-all routing params — never treated as record attributes.
@@ -342,7 +342,7 @@ let IntegrationActionExecutor = class IntegrationActionExecutor extends BaseActi
342
342
  return attributes;
343
343
  }
344
344
  /** Sets (or creates) an output parameter. */
345
- SetOutputParam(actionParams, name, value) {
345
+ setOutputParam(actionParams, name, value) {
346
346
  const existing = actionParams.find(p => p.Name.trim().toLowerCase() === name.toLowerCase() && p.Type === 'Output');
347
347
  if (existing) {
348
348
  existing.Value = value;
@@ -352,7 +352,7 @@ let IntegrationActionExecutor = class IntegrationActionExecutor extends BaseActi
352
352
  }
353
353
  }
354
354
  // ─── Result Builders ─────────────────────────────────────────────
355
- BuildResult(success, resultCode, message, actionParams) {
355
+ buildResult(success, resultCode, message, actionParams) {
356
356
  return {
357
357
  Success: success,
358
358
  ResultCode: resultCode,
@@ -360,14 +360,14 @@ let IntegrationActionExecutor = class IntegrationActionExecutor extends BaseActi
360
360
  Params: actionParams,
361
361
  };
362
362
  }
363
- CRUDResultToActionResult(result, operation, objectName, actionParams) {
363
+ cRUDResultToActionResult(result, operation, objectName, actionParams) {
364
364
  if (result.Success) {
365
365
  if (result.ExternalID) {
366
- this.SetOutputParam(actionParams, 'ExternalID', result.ExternalID);
366
+ this.setOutputParam(actionParams, 'ExternalID', result.ExternalID);
367
367
  }
368
- return this.BuildResult(true, 'SUCCESS', `${operation} ${objectName} succeeded${result.ExternalID ? ` (ID: ${result.ExternalID})` : ''}`, actionParams);
368
+ return this.buildResult(true, 'SUCCESS', `${operation} ${objectName} succeeded${result.ExternalID ? ` (ID: ${result.ExternalID})` : ''}`, actionParams);
369
369
  }
370
- return this.BuildResult(false, `${operation.toUpperCase()}_FAILED`, result.ErrorMessage ?? `${operation} ${objectName} failed (HTTP ${result.StatusCode})`, actionParams);
370
+ return this.buildResult(false, `${operation.toUpperCase()}_FAILED`, result.ErrorMessage ?? `${operation} ${objectName} failed (HTTP ${result.StatusCode})`, actionParams);
371
371
  }
372
372
  };
373
373
  IntegrationActionExecutor = __decorate([
@@ -8,13 +8,29 @@ import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-bas
8
8
  import { IMetadataProvider, UserInfo } from "@memberjunction/core";
9
9
  import { MJComponentEntity, MJEntityFormOverrideEntity } from "@memberjunction/core-entities";
10
10
  import type { ComponentSpec } from "@memberjunction/interactive-component-types";
11
+ export declare function GetParam(params: RunActionParams, name: string): unknown;
12
+ /** @deprecated Use {@link GetParam}. */
11
13
  export declare function getParam(params: RunActionParams, name: string): unknown;
14
+ export declare function GetStringParam(params: RunActionParams, name: string): string | null;
15
+ /** @deprecated Use {@link GetStringParam}. */
12
16
  export declare function getStringParam(params: RunActionParams, name: string): string | null;
17
+ export declare function GetNumberParam(params: RunActionParams, name: string): number | null;
18
+ /** @deprecated Use {@link GetNumberParam}. */
13
19
  export declare function getNumberParam(params: RunActionParams, name: string): number | null;
20
+ export declare function AddOutput(params: RunActionParams, name: string, value: unknown): void;
21
+ /** @deprecated Use {@link AddOutput}. */
14
22
  export declare function addOutput(params: RunActionParams, name: string, value: unknown): void;
23
+ export declare function Failure(resultCode: string, message: string): ActionResultSimple;
24
+ /** @deprecated Use {@link Failure}. */
15
25
  export declare function failure(resultCode: string, message: string): ActionResultSimple;
26
+ export declare function Success(message: string): ActionResultSimple;
27
+ /** @deprecated Use {@link Success}. */
16
28
  export declare function success(message: string): ActionResultSimple;
17
29
  /** Parse a Spec param that may arrive as object or stringified JSON. */
30
+ export declare function ParseSpecParam(raw: unknown): ComponentSpec | {
31
+ error: string;
32
+ };
33
+ /** @deprecated Use {@link ParseSpecParam}. */
18
34
  export declare function parseSpecParam(raw: unknown): ComponentSpec | {
19
35
  error: string;
20
36
  };
@@ -25,10 +41,16 @@ export declare function parseSpecParam(raw: unknown): ComponentSpec | {
25
41
  * lint comments in the original create-interactive-form action for the
26
42
  * rationale.
27
43
  */
44
+ export declare function LintFormSpec(spec: ComponentSpec, contextUser: UserInfo): Promise<ActionResultSimple | null>;
45
+ /** @deprecated Use {@link LintFormSpec}. */
28
46
  export declare function lintFormSpec(spec: ComponentSpec, contextUser: UserInfo): Promise<ActionResultSimple | null>;
29
47
  /** Load a Component entity object by primary key. */
48
+ export declare function LoadComponent(provider: IMetadataProvider, user: UserInfo, componentID: string): Promise<MJComponentEntity | null>;
49
+ /** @deprecated Use {@link LoadComponent}. */
30
50
  export declare function loadComponent(provider: IMetadataProvider, user: UserInfo, componentID: string): Promise<MJComponentEntity | null>;
31
51
  /** Load an Override entity object by primary key. */
52
+ export declare function LoadOverride(provider: IMetadataProvider, user: UserInfo, overrideID: string): Promise<MJEntityFormOverrideEntity | null>;
53
+ /** @deprecated Use {@link LoadOverride}. */
32
54
  export declare function loadOverride(provider: IMetadataProvider, user: UserInfo, overrideID: string): Promise<MJEntityFormOverrideEntity | null>;
33
55
  /**
34
56
  * Defense-in-depth ownership check for the override-mutation actions
@@ -47,6 +69,8 @@ export declare function loadOverride(provider: IMetadataProvider, user: UserInfo
47
69
  *
48
70
  * Returns `null` on success; a `FORBIDDEN` failure result on rejection.
49
71
  */
72
+ export declare function CheckOverrideOwnership(override: Pick<MJEntityFormOverrideEntity, 'ID' | 'Scope' | 'UserID' | 'RoleID'>, user: UserInfo): ActionResultSimple | null;
73
+ /** @deprecated Use {@link CheckOverrideOwnership}. */
50
74
  export declare function checkOverrideOwnership(override: Pick<MJEntityFormOverrideEntity, 'ID' | 'Scope' | 'UserID' | 'RoleID'>, user: UserInfo): ActionResultSimple | null;
51
75
  /**
52
76
  * Lifecycle mapping. EntityFormOverride.Status uses
@@ -58,7 +82,11 @@ export declare function checkOverrideOwnership(override: Pick<MJEntityFormOverri
58
82
  * (Draft), or an archived version (Deprecated).
59
83
  */
60
84
  export type FormLifecycle = 'Active' | 'Pending' | 'Inactive';
85
+ export declare function MapToComponentStatus(lifecycle: FormLifecycle): 'Published' | 'Draft' | 'Deprecated';
86
+ /** @deprecated Use {@link MapToComponentStatus}. */
61
87
  export declare function mapToComponentStatus(lifecycle: FormLifecycle): 'Published' | 'Draft' | 'Deprecated';
88
+ export declare function MapFromComponentStatus(status: string | null | undefined): FormLifecycle;
89
+ /** @deprecated Use {@link MapFromComponentStatus}. */
62
90
  export declare function mapFromComponentStatus(status: string | null | undefined): FormLifecycle;
63
91
  /**
64
92
  * Insert a new Component row carrying the supplied spec. Used by both
@@ -71,6 +99,21 @@ export declare function mapFromComponentStatus(status: string | null | undefined
71
99
  * ('Active' or 'Pending') — translated to the Component table's union via
72
100
  * {@link mapToComponentStatus}.
73
101
  */
102
+ export declare function InsertComponent(opts: {
103
+ provider: IMetadataProvider;
104
+ user: UserInfo;
105
+ spec: ComponentSpec;
106
+ fallbackName: string;
107
+ description: string | null;
108
+ version: string;
109
+ versionSequence: number;
110
+ componentStatus: FormLifecycle;
111
+ }): Promise<{
112
+ id: string;
113
+ } | {
114
+ error: ActionResultSimple;
115
+ }>;
116
+ /** @deprecated Use {@link InsertComponent}. */
74
117
  export declare function insertComponent(opts: {
75
118
  provider: IMetadataProvider;
76
119
  user: UserInfo;
@@ -90,6 +133,22 @@ export declare function insertComponent(opts: {
90
133
  * unless `allowGlobalOrRole` is explicitly true — which is reserved for the
91
134
  * future "promote variant" UI path, not the agent.
92
135
  */
136
+ export declare function InsertOverride(opts: {
137
+ provider: IMetadataProvider;
138
+ user: UserInfo;
139
+ entityID: string;
140
+ componentID: string;
141
+ name: string;
142
+ description: string | null;
143
+ notes?: string | null;
144
+ status: 'Active' | 'Pending';
145
+ priority?: number;
146
+ }): Promise<{
147
+ id: string;
148
+ } | {
149
+ error: ActionResultSimple;
150
+ }>;
151
+ /** @deprecated Use {@link InsertOverride}. */
93
152
  export declare function insertOverride(opts: {
94
153
  provider: IMetadataProvider;
95
154
  user: UserInfo;
@@ -116,23 +175,31 @@ export type VersionBumpKind = 'in-place' | 'patch' | 'minor' | 'major';
116
175
  * "1.0.0" → "1.0.1", "1.7.3" → "1.7.4". Used for small/defect-style edits
117
176
  * that deserve a rollback checkpoint but aren't a meaningful UX change.
118
177
  */
178
+ export declare function BumpPatchVersion(current: string | null | undefined): string;
179
+ /** @deprecated Use {@link BumpPatchVersion}. */
119
180
  export declare function bumpPatchVersion(current: string | null | undefined): string;
120
181
  /**
121
182
  * Compute the next semver-minor bump for an existing version string.
122
183
  * "1.0.0" → "1.1.0", "1.7.3" → "1.8.0". Used for feature additions —
123
184
  * new fields, sections, charts, tabs.
124
185
  */
186
+ export declare function BumpMinorVersion(current: string | null | undefined): string;
187
+ /** @deprecated Use {@link BumpMinorVersion}. */
125
188
  export declare function bumpMinorVersion(current: string | null | undefined): string;
126
189
  /**
127
190
  * "1.7.3" → "2.0.0", "3.4.5" → "4.0.0". Used for radical redesigns or
128
191
  * when the user explicitly asks for a new major version.
129
192
  */
193
+ export declare function BumpMajorVersion(current: string | null | undefined): string;
194
+ /** @deprecated Use {@link BumpMajorVersion}. */
130
195
  export declare function bumpMajorVersion(current: string | null | undefined): string;
131
196
  /**
132
197
  * Dispatch a version bump based on the caller's stated intent.
133
198
  * `'in-place'` returns the same version unchanged — caller should branch
134
199
  * separately (no new Component row is written).
135
200
  */
201
+ export declare function BumpVersion(current: string | null | undefined, kind: VersionBumpKind): string;
202
+ /** @deprecated Use {@link BumpVersion}. */
136
203
  export declare function bumpVersion(current: string | null | undefined, kind: VersionBumpKind): string;
137
204
  /**
138
205
  * Parse and normalize a VersionBumpKind value from a string. Accepts the
@@ -140,5 +207,7 @@ export declare function bumpVersion(current: string | null | undefined, kind: Ve
140
207
  * the input doesn't map to a known kind, so callers can decide whether
141
208
  * to default or reject.
142
209
  */
210
+ export declare function ParseVersionBumpKind(raw: unknown): VersionBumpKind | null;
211
+ /** @deprecated Use {@link ParseVersionBumpKind}. */
143
212
  export declare function parseVersionBumpKind(raw: unknown): VersionBumpKind | null;
144
213
  //# sourceMappingURL=_shared.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"_shared.d.ts","sourceRoot":"","sources":["../../../src/custom/interactive-forms/_shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_shared.d.ts","sourceRoot":"","sources":["../../../src/custom/interactive-forms/_shared.ts"],"names":[],"mappings":"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"}