@memberjunction/core-actions 2.132.0 → 3.0.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.
Files changed (41) hide show
  1. package/dist/custom/ai/generate-image.action.d.ts +111 -0
  2. package/dist/custom/ai/generate-image.action.d.ts.map +1 -0
  3. package/dist/custom/ai/generate-image.action.js +339 -0
  4. package/dist/custom/ai/generate-image.action.js.map +1 -0
  5. package/dist/custom/files/excel-writer.action.d.ts +24 -11
  6. package/dist/custom/files/excel-writer.action.d.ts.map +1 -1
  7. package/dist/custom/files/excel-writer.action.js +149 -139
  8. package/dist/custom/files/excel-writer.action.js.map +1 -1
  9. package/dist/custom/lists/add-records-to-list.action.d.ts +27 -0
  10. package/dist/custom/lists/add-records-to-list.action.d.ts.map +1 -0
  11. package/dist/custom/lists/add-records-to-list.action.js +200 -0
  12. package/dist/custom/lists/add-records-to-list.action.js.map +1 -0
  13. package/dist/custom/lists/create-list.action.d.ts +27 -0
  14. package/dist/custom/lists/create-list.action.d.ts.map +1 -0
  15. package/dist/custom/lists/create-list.action.js +180 -0
  16. package/dist/custom/lists/create-list.action.js.map +1 -0
  17. package/dist/custom/lists/get-list-records.action.d.ts +42 -0
  18. package/dist/custom/lists/get-list-records.action.d.ts.map +1 -0
  19. package/dist/custom/lists/get-list-records.action.js +240 -0
  20. package/dist/custom/lists/get-list-records.action.js.map +1 -0
  21. package/dist/custom/lists/get-record-list-membership.action.d.ts +24 -0
  22. package/dist/custom/lists/get-record-list-membership.action.d.ts.map +1 -0
  23. package/dist/custom/lists/get-record-list-membership.action.js +177 -0
  24. package/dist/custom/lists/get-record-list-membership.action.js.map +1 -0
  25. package/dist/custom/lists/index.d.ts +25 -0
  26. package/dist/custom/lists/index.d.ts.map +1 -0
  27. package/dist/custom/lists/index.js +56 -0
  28. package/dist/custom/lists/index.js.map +1 -0
  29. package/dist/custom/lists/remove-records-from-list.action.d.ts +44 -0
  30. package/dist/custom/lists/remove-records-from-list.action.d.ts.map +1 -0
  31. package/dist/custom/lists/remove-records-from-list.action.js +195 -0
  32. package/dist/custom/lists/remove-records-from-list.action.js.map +1 -0
  33. package/dist/custom/lists/update-list-item-status.action.d.ts +36 -0
  34. package/dist/custom/lists/update-list-item-status.action.d.ts.map +1 -0
  35. package/dist/custom/lists/update-list-item-status.action.js +201 -0
  36. package/dist/custom/lists/update-list-item-status.action.js.map +1 -0
  37. package/dist/index.d.ts +1 -0
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +5 -0
  40. package/dist/index.js.map +1 -1
  41. package/package.json +48 -23
@@ -0,0 +1,200 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.LoadAddRecordsToListAction = exports.AddRecordsToListAction = void 0;
10
+ const global_1 = require("@memberjunction/global");
11
+ const actions_1 = require("@memberjunction/actions");
12
+ const core_1 = require("@memberjunction/core");
13
+ /**
14
+ * Action to add one or more records to a list.
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * await runAction({
19
+ * ActionName: 'Add Records to List',
20
+ * Params: [
21
+ * { Name: 'ListID', Value: 'abc-123-def' },
22
+ * { Name: 'RecordIDs', Value: ['rec1', 'rec2', 'rec3'] },
23
+ * { Name: 'SkipDuplicates', Value: true },
24
+ * { Name: 'DefaultStatus', Value: 'Active' }
25
+ * ]
26
+ * });
27
+ * ```
28
+ */
29
+ let AddRecordsToListAction = class AddRecordsToListAction extends actions_1.BaseAction {
30
+ async InternalRunAction(params) {
31
+ try {
32
+ // Extract parameters
33
+ const listId = this.getStringParam(params, 'ListID');
34
+ const recordIds = this.getArrayParam(params, 'RecordIDs');
35
+ const skipDuplicates = this.getBooleanParam(params, 'SkipDuplicates', true);
36
+ const defaultStatus = this.getStringParam(params, 'DefaultStatus') || 'Active';
37
+ const additionalData = this.getStringParam(params, 'AdditionalData');
38
+ // Validate required parameters
39
+ if (!listId) {
40
+ return {
41
+ Success: false,
42
+ ResultCode: 'MISSING_PARAMETER',
43
+ Message: 'ListID is required'
44
+ };
45
+ }
46
+ if (!recordIds || recordIds.length === 0) {
47
+ return {
48
+ Success: false,
49
+ ResultCode: 'MISSING_PARAMETER',
50
+ Message: 'RecordIDs is required and must contain at least one record ID'
51
+ };
52
+ }
53
+ // Validate list exists
54
+ const md = new core_1.Metadata();
55
+ const rv = new core_1.RunView();
56
+ const listResult = await rv.RunView({
57
+ EntityName: 'Lists',
58
+ ExtraFilter: `ID = '${listId}'`,
59
+ ResultType: 'entity_object'
60
+ }, params.ContextUser);
61
+ if (!listResult.Success || !listResult.Results || listResult.Results.length === 0) {
62
+ return {
63
+ Success: false,
64
+ ResultCode: 'LIST_NOT_FOUND',
65
+ Message: `List with ID '${listId}' not found`
66
+ };
67
+ }
68
+ // Get existing memberships if skipping duplicates
69
+ let existingRecordIds = new Set();
70
+ if (skipDuplicates) {
71
+ const recordIdFilter = recordIds.map((id) => `'${id}'`).join(',');
72
+ const existingResult = await rv.RunView({
73
+ EntityName: 'List Details',
74
+ ExtraFilter: `ListID = '${listId}' AND RecordID IN (${recordIdFilter})`,
75
+ ResultType: 'entity_object'
76
+ }, params.ContextUser);
77
+ if (existingResult.Success && existingResult.Results) {
78
+ for (const detail of existingResult.Results) {
79
+ existingRecordIds.add(detail.RecordID);
80
+ }
81
+ }
82
+ }
83
+ // Add records to list
84
+ let addedCount = 0;
85
+ let skippedCount = 0;
86
+ let failedCount = 0;
87
+ const errors = [];
88
+ for (const recordId of recordIds) {
89
+ // Skip if already exists
90
+ if (skipDuplicates && existingRecordIds.has(recordId)) {
91
+ skippedCount++;
92
+ continue;
93
+ }
94
+ try {
95
+ const listDetail = await md.GetEntityObject('List Details', params.ContextUser);
96
+ listDetail.NewRecord();
97
+ listDetail.ListID = listId;
98
+ listDetail.RecordID = recordId;
99
+ listDetail.Sequence = 0;
100
+ listDetail.Status = defaultStatus;
101
+ if (additionalData) {
102
+ listDetail.AdditionalData = additionalData;
103
+ }
104
+ const saveResult = await listDetail.Save();
105
+ if (saveResult) {
106
+ addedCount++;
107
+ }
108
+ else {
109
+ failedCount++;
110
+ errors.push(`Failed to add record '${recordId}'`);
111
+ }
112
+ }
113
+ catch (error) {
114
+ failedCount++;
115
+ const errorMessage = error instanceof Error ? error.message : String(error);
116
+ errors.push(`Error adding record '${recordId}': ${errorMessage}`);
117
+ }
118
+ }
119
+ // Prepare result
120
+ const result = {
121
+ TotalRecords: recordIds.length,
122
+ Added: addedCount,
123
+ Skipped: skippedCount,
124
+ Failed: failedCount,
125
+ Errors: errors
126
+ };
127
+ // Add output parameters
128
+ this.addOutputParam(params, 'TotalRecords', result.TotalRecords);
129
+ this.addOutputParam(params, 'Added', result.Added);
130
+ this.addOutputParam(params, 'Skipped', result.Skipped);
131
+ this.addOutputParam(params, 'Failed', result.Failed);
132
+ this.addOutputParam(params, 'Errors', result.Errors);
133
+ const success = failedCount === 0;
134
+ return {
135
+ Success: success,
136
+ ResultCode: success ? 'SUCCESS' : 'PARTIAL_SUCCESS',
137
+ Message: success
138
+ ? `Successfully added ${addedCount} record(s) to list${skippedCount > 0 ? `, skipped ${skippedCount} duplicate(s)` : ''}`
139
+ : `Added ${addedCount}, failed ${failedCount}. Errors: ${errors.join('; ')}`
140
+ };
141
+ }
142
+ catch (error) {
143
+ const errorMessage = error instanceof Error ? error.message : String(error);
144
+ return {
145
+ Success: false,
146
+ ResultCode: 'UNEXPECTED_ERROR',
147
+ Message: `Failed to add records to list: ${errorMessage}`
148
+ };
149
+ }
150
+ }
151
+ getStringParam(params, name) {
152
+ const param = params.Params.find(p => p.Name.toLowerCase() === name.toLowerCase() && p.Type === 'Input');
153
+ return param?.Value != null ? String(param.Value) : undefined;
154
+ }
155
+ getArrayParam(params, name) {
156
+ const param = params.Params.find(p => p.Name.toLowerCase() === name.toLowerCase() && p.Type === 'Input');
157
+ if (!param?.Value)
158
+ return [];
159
+ if (Array.isArray(param.Value)) {
160
+ return param.Value.map(v => String(v));
161
+ }
162
+ if (typeof param.Value === 'string') {
163
+ try {
164
+ const parsed = JSON.parse(param.Value);
165
+ return Array.isArray(parsed) ? parsed.map(v => String(v)) : [param.Value];
166
+ }
167
+ catch {
168
+ return [param.Value];
169
+ }
170
+ }
171
+ return [String(param.Value)];
172
+ }
173
+ getBooleanParam(params, name, defaultValue) {
174
+ const param = params.Params.find(p => p.Name.toLowerCase() === name.toLowerCase() && p.Type === 'Input');
175
+ if (param?.Value != null) {
176
+ const val = String(param.Value).toLowerCase();
177
+ if (val === 'true' || val === '1' || val === 'yes')
178
+ return true;
179
+ if (val === 'false' || val === '0' || val === 'no')
180
+ return false;
181
+ }
182
+ return defaultValue;
183
+ }
184
+ addOutputParam(params, name, value) {
185
+ params.Params.push({
186
+ Name: name,
187
+ Type: 'Output',
188
+ Value: value
189
+ });
190
+ }
191
+ };
192
+ exports.AddRecordsToListAction = AddRecordsToListAction;
193
+ exports.AddRecordsToListAction = AddRecordsToListAction = __decorate([
194
+ (0, global_1.RegisterClass)(actions_1.BaseAction, "Add Records to List")
195
+ ], AddRecordsToListAction);
196
+ function LoadAddRecordsToListAction() {
197
+ // Prevents tree-shaking
198
+ }
199
+ exports.LoadAddRecordsToListAction = LoadAddRecordsToListAction;
200
+ //# sourceMappingURL=add-records-to-list.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-records-to-list.action.js","sourceRoot":"","sources":["../../../src/custom/lists/add-records-to-list.action.ts"],"names":[],"mappings":";;;;;;;;;AACA,mDAAuD;AACvD,qDAAqD;AACrD,+CAAyD;AAGzD;;;;;;;;;;;;;;;GAeG;AAEI,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,oBAAU;IAE1C,KAAK,CAAC,iBAAiB,CAAC,MAAuB;QACvD,IAAI,CAAC;YACH,qBAAqB;YACrB,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACrD,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAC1D,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;YAC5E,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,QAAQ,CAAC;YAC/E,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;YAErE,+BAA+B;YAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,mBAAmB;oBAC/B,OAAO,EAAE,oBAAoB;iBAC9B,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzC,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,mBAAmB;oBAC/B,OAAO,EAAE,+DAA+D;iBACzE,CAAC;YACJ,CAAC;YAED,uBAAuB;YACvB,MAAM,EAAE,GAAG,IAAI,eAAQ,EAAE,CAAC;YAC1B,MAAM,EAAE,GAAG,IAAI,cAAO,EAAE,CAAC;YAEzB,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,OAAO,CAAa;gBAC9C,UAAU,EAAE,OAAO;gBACnB,WAAW,EAAE,SAAS,MAAM,GAAG;gBAC/B,UAAU,EAAE,eAAe;aAC5B,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;YAEvB,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClF,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,gBAAgB;oBAC5B,OAAO,EAAE,iBAAiB,MAAM,aAAa;iBAC9C,CAAC;YACJ,CAAC;YAED,kDAAkD;YAClD,IAAI,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;YAC1C,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,cAAc,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1E,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,OAAO,CAAmB;oBACxD,UAAU,EAAE,cAAc;oBAC1B,WAAW,EAAE,aAAa,MAAM,sBAAsB,cAAc,GAAG;oBACvE,UAAU,EAAE,eAAe;iBAC5B,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;gBAEvB,IAAI,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;oBACrD,KAAK,MAAM,MAAM,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;wBAC5C,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBACzC,CAAC;gBACH,CAAC;YACH,CAAC;YAED,sBAAsB;YACtB,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,MAAM,MAAM,GAAa,EAAE,CAAC;YAE5B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,yBAAyB;gBACzB,IAAI,cAAc,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACtD,YAAY,EAAE,CAAC;oBACf,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,eAAe,CAAmB,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;oBAClG,UAAU,CAAC,SAAS,EAAE,CAAC;oBACvB,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;oBAC3B,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;oBAC/B,UAAU,CAAC,QAAQ,GAAG,CAAC,CAAC;oBACxB,UAAU,CAAC,MAAM,GAAG,aAAgG,CAAC;oBAErH,IAAI,cAAc,EAAE,CAAC;wBACnB,UAAU,CAAC,cAAc,GAAG,cAAc,CAAC;oBAC7C,CAAC;oBAED,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;oBAC3C,IAAI,UAAU,EAAE,CAAC;wBACf,UAAU,EAAE,CAAC;oBACf,CAAC;yBAAM,CAAC;wBACN,WAAW,EAAE,CAAC;wBACd,MAAM,CAAC,IAAI,CAAC,yBAAyB,QAAQ,GAAG,CAAC,CAAC;oBACpD,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,WAAW,EAAE,CAAC;oBACd,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC5E,MAAM,CAAC,IAAI,CAAC,wBAAwB,QAAQ,MAAM,YAAY,EAAE,CAAC,CAAC;gBACpE,CAAC;YACH,CAAC;YAED,iBAAiB;YACjB,MAAM,MAAM,GAAG;gBACb,YAAY,EAAE,SAAS,CAAC,MAAM;gBAC9B,KAAK,EAAE,UAAU;gBACjB,OAAO,EAAE,YAAY;gBACrB,MAAM,EAAE,WAAW;gBACnB,MAAM,EAAE,MAAM;aACf,CAAC;YAEF,wBAAwB;YACxB,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;YACjE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACnD,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YACvD,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACrD,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAErD,MAAM,OAAO,GAAG,WAAW,KAAK,CAAC,CAAC;YAClC,OAAO;gBACL,OAAO,EAAE,OAAO;gBAChB,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB;gBACnD,OAAO,EAAE,OAAO;oBACd,CAAC,CAAC,sBAAsB,UAAU,qBAAqB,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,YAAY,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE;oBACzH,CAAC,CAAC,SAAS,UAAU,YAAY,WAAW,aAAa,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aAC/E,CAAC;QAEJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,UAAU,EAAE,kBAAkB;gBAC9B,OAAO,EAAE,kCAAkC,YAAY,EAAE;aAC1D,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,MAAuB,EAAE,IAAY;QAC1D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACnC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAClE,CAAC;QACF,OAAO,KAAK,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChE,CAAC;IAEO,aAAa,CAAC,MAAuB,EAAE,IAAY;QACzD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACnC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAClE,CAAC;QACF,IAAI,CAAC,KAAK,EAAE,KAAK;YAAE,OAAO,EAAE,CAAC;QAE7B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACvC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC5E,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/B,CAAC;IAEO,eAAe,CAAC,MAAuB,EAAE,IAAY,EAAE,YAAqB;QAClF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACnC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAClE,CAAC;QACF,IAAI,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9C,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,KAAK;gBAAE,OAAO,IAAI,CAAC;YAChE,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAC;QACnE,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAEO,cAAc,CAAC,MAAuB,EAAE,IAAY,EAAE,KAAc;QAC1E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;YACjB,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAvLY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,sBAAa,EAAC,oBAAU,EAAE,qBAAqB,CAAC;GACpC,sBAAsB,CAuLlC;AAED,SAAgB,0BAA0B;IACxC,wBAAwB;AAC1B,CAAC;AAFD,gEAEC"}
@@ -0,0 +1,27 @@
1
+ import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
2
+ import { BaseAction } from "@memberjunction/actions";
3
+ /**
4
+ * Action to create a new list and optionally add initial records.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * await runAction({
9
+ * ActionName: 'Create List',
10
+ * Params: [
11
+ * { Name: 'Name', Value: 'My Priority Contacts' },
12
+ * { Name: 'Description', Value: 'High priority contacts for Q4' },
13
+ * { Name: 'EntityName', Value: 'Contacts' },
14
+ * { Name: 'CategoryID', Value: 'cat-123' },
15
+ * { Name: 'AddRecordIDs', Value: ['contact1', 'contact2'] }
16
+ * ]
17
+ * });
18
+ * ```
19
+ */
20
+ export declare class CreateListAction extends BaseAction {
21
+ protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
22
+ private getStringParam;
23
+ private getArrayParam;
24
+ private addOutputParam;
25
+ }
26
+ export declare function LoadCreateListAction(): void;
27
+ //# sourceMappingURL=create-list.action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-list.action.d.ts","sourceRoot":"","sources":["../../../src/custom/lists/create-list.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAIrD;;;;;;;;;;;;;;;;GAgBG;AACH,qBACa,gBAAiB,SAAQ,UAAU;cAE9B,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA6HvF,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,aAAa;IAoBrB,OAAO,CAAC,cAAc;CAOvB;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C"}
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.LoadCreateListAction = exports.CreateListAction = void 0;
10
+ const global_1 = require("@memberjunction/global");
11
+ const actions_1 = require("@memberjunction/actions");
12
+ const core_1 = require("@memberjunction/core");
13
+ /**
14
+ * Action to create a new list and optionally add initial records.
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * await runAction({
19
+ * ActionName: 'Create List',
20
+ * Params: [
21
+ * { Name: 'Name', Value: 'My Priority Contacts' },
22
+ * { Name: 'Description', Value: 'High priority contacts for Q4' },
23
+ * { Name: 'EntityName', Value: 'Contacts' },
24
+ * { Name: 'CategoryID', Value: 'cat-123' },
25
+ * { Name: 'AddRecordIDs', Value: ['contact1', 'contact2'] }
26
+ * ]
27
+ * });
28
+ * ```
29
+ */
30
+ let CreateListAction = class CreateListAction extends actions_1.BaseAction {
31
+ async InternalRunAction(params) {
32
+ try {
33
+ // Extract parameters
34
+ const name = this.getStringParam(params, 'Name');
35
+ const description = this.getStringParam(params, 'Description');
36
+ const entityName = this.getStringParam(params, 'EntityName');
37
+ const entityId = this.getStringParam(params, 'EntityID');
38
+ const categoryId = this.getStringParam(params, 'CategoryID');
39
+ const addRecordIds = this.getArrayParam(params, 'AddRecordIDs');
40
+ // Validate required parameters
41
+ if (!name) {
42
+ return {
43
+ Success: false,
44
+ ResultCode: 'MISSING_PARAMETER',
45
+ Message: 'Name is required'
46
+ };
47
+ }
48
+ if (!entityName && !entityId) {
49
+ return {
50
+ Success: false,
51
+ ResultCode: 'MISSING_PARAMETER',
52
+ Message: 'Either EntityName or EntityID is required'
53
+ };
54
+ }
55
+ const md = new core_1.Metadata();
56
+ const rv = new core_1.RunView();
57
+ // Resolve entity ID if name provided
58
+ let resolvedEntityId = entityId;
59
+ if (entityName && !entityId) {
60
+ const entityResult = await rv.RunView({
61
+ EntityName: 'Entities',
62
+ ExtraFilter: `Name = '${entityName}'`,
63
+ ResultType: 'entity_object'
64
+ }, params.ContextUser);
65
+ if (!entityResult.Success || !entityResult.Results || entityResult.Results.length === 0) {
66
+ return {
67
+ Success: false,
68
+ ResultCode: 'ENTITY_NOT_FOUND',
69
+ Message: `Entity '${entityName}' not found`
70
+ };
71
+ }
72
+ resolvedEntityId = entityResult.Results[0].ID;
73
+ }
74
+ // Create the list
75
+ const list = await md.GetEntityObject('Lists', params.ContextUser);
76
+ list.NewRecord();
77
+ list.Name = name;
78
+ list.Description = description || '';
79
+ list.EntityID = resolvedEntityId;
80
+ list.UserID = params.ContextUser.ID;
81
+ if (categoryId) {
82
+ list.CategoryID = categoryId;
83
+ }
84
+ const saveResult = await list.Save();
85
+ if (!saveResult) {
86
+ return {
87
+ Success: false,
88
+ ResultCode: 'SAVE_FAILED',
89
+ Message: 'Failed to create list'
90
+ };
91
+ }
92
+ // Add initial records if provided
93
+ let recordsAdded = 0;
94
+ const errors = [];
95
+ if (addRecordIds && addRecordIds.length > 0) {
96
+ for (const recordId of addRecordIds) {
97
+ try {
98
+ const listDetail = await md.GetEntityObject('List Details', params.ContextUser);
99
+ listDetail.NewRecord();
100
+ listDetail.ListID = list.ID;
101
+ listDetail.RecordID = recordId;
102
+ listDetail.Sequence = recordsAdded;
103
+ listDetail.Status = 'Active';
104
+ const detailSaveResult = await listDetail.Save();
105
+ if (detailSaveResult) {
106
+ recordsAdded++;
107
+ }
108
+ else {
109
+ errors.push(`Failed to add record '${recordId}'`);
110
+ }
111
+ }
112
+ catch (error) {
113
+ const errorMessage = error instanceof Error ? error.message : String(error);
114
+ errors.push(`Error adding record '${recordId}': ${errorMessage}`);
115
+ }
116
+ }
117
+ }
118
+ // Add output parameters
119
+ this.addOutputParam(params, 'ListID', list.ID);
120
+ this.addOutputParam(params, 'ListName', list.Name);
121
+ this.addOutputParam(params, 'RecordsAdded', recordsAdded);
122
+ const result = {
123
+ ListID: list.ID,
124
+ ListName: list.Name,
125
+ RecordsAdded: recordsAdded
126
+ };
127
+ return {
128
+ Success: true,
129
+ ResultCode: 'SUCCESS',
130
+ Message: `List '${name}' created successfully${recordsAdded > 0 ? ` with ${recordsAdded} initial record(s)` : ''}`
131
+ };
132
+ }
133
+ catch (error) {
134
+ const errorMessage = error instanceof Error ? error.message : String(error);
135
+ return {
136
+ Success: false,
137
+ ResultCode: 'UNEXPECTED_ERROR',
138
+ Message: `Failed to create list: ${errorMessage}`
139
+ };
140
+ }
141
+ }
142
+ getStringParam(params, name) {
143
+ const param = params.Params.find(p => p.Name.toLowerCase() === name.toLowerCase() && p.Type === 'Input');
144
+ return param?.Value != null ? String(param.Value) : undefined;
145
+ }
146
+ getArrayParam(params, name) {
147
+ const param = params.Params.find(p => p.Name.toLowerCase() === name.toLowerCase() && p.Type === 'Input');
148
+ if (!param?.Value)
149
+ return [];
150
+ if (Array.isArray(param.Value)) {
151
+ return param.Value.map(v => String(v));
152
+ }
153
+ if (typeof param.Value === 'string') {
154
+ try {
155
+ const parsed = JSON.parse(param.Value);
156
+ return Array.isArray(parsed) ? parsed.map(v => String(v)) : [param.Value];
157
+ }
158
+ catch {
159
+ return [param.Value];
160
+ }
161
+ }
162
+ return [String(param.Value)];
163
+ }
164
+ addOutputParam(params, name, value) {
165
+ params.Params.push({
166
+ Name: name,
167
+ Type: 'Output',
168
+ Value: value
169
+ });
170
+ }
171
+ };
172
+ exports.CreateListAction = CreateListAction;
173
+ exports.CreateListAction = CreateListAction = __decorate([
174
+ (0, global_1.RegisterClass)(actions_1.BaseAction, "Create List")
175
+ ], CreateListAction);
176
+ function LoadCreateListAction() {
177
+ // Prevents tree-shaking
178
+ }
179
+ exports.LoadCreateListAction = LoadCreateListAction;
180
+ //# sourceMappingURL=create-list.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-list.action.js","sourceRoot":"","sources":["../../../src/custom/lists/create-list.action.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
2
+ import { BaseAction } from "@memberjunction/actions";
3
+ /**
4
+ * Action to retrieve records from a list with optional filtering and pagination.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * // Get all records from a list
9
+ * await runAction({
10
+ * ActionName: 'Get List Records',
11
+ * Params: [
12
+ * { Name: 'ListID', Value: 'abc-123-def' }
13
+ * ]
14
+ * });
15
+ *
16
+ * // Get filtered records with pagination
17
+ * await runAction({
18
+ * ActionName: 'Get List Records',
19
+ * Params: [
20
+ * { Name: 'ListID', Value: 'abc-123-def' },
21
+ * { Name: 'FilterByStatus', Value: 'Active' },
22
+ * { Name: 'MaxRecords', Value: 100 },
23
+ * { Name: 'IncludeRecordDetails', Value: true }
24
+ * ]
25
+ * });
26
+ * ```
27
+ */
28
+ export declare class GetListRecordsAction extends BaseAction {
29
+ protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
30
+ private getStringParam;
31
+ private getNumericParam;
32
+ private getBooleanParam;
33
+ private addOutputParam;
34
+ /**
35
+ * Build the SQL filter to select records that match the given list details.
36
+ * For single PK entities, uses a simple IN clause with the raw RecordID values.
37
+ * For composite PK entities, uses an OR clause with concatenated key matching.
38
+ */
39
+ private buildRecordFilter;
40
+ }
41
+ export declare function LoadGetListRecordsAction(): void;
42
+ //# sourceMappingURL=get-list-records.action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-list-records.action.d.ts","sourceRoot":"","sources":["../../../src/custom/lists/get-list-records.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAIrD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBACa,oBAAqB,SAAQ,UAAU;cAElC,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAyJvF,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,cAAc;IAQtB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;CAmC1B;AAED,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C"}