@mj-biz-apps/common-server 5.36.0 → 5.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/custom/log-activity.action.d.ts +19 -0
- package/dist/custom/log-activity.action.d.ts.map +1 -0
- package/dist/custom/log-activity.action.js +87 -0
- package/dist/custom/log-activity.action.js.map +1 -0
- package/dist/custom/sync-activities.action.d.ts +14 -0
- package/dist/custom/sync-activities.action.d.ts.map +1 -0
- package/dist/custom/sync-activities.action.js +67 -0
- package/dist/custom/sync-activities.action.js.map +1 -0
- package/dist/generated/generated.d.ts +3 -1055
- package/dist/generated/generated.d.ts.map +1 -1
- package/dist/generated/generated.js +3 -5839
- package/dist/generated/generated.js.map +1 -1
- package/dist/generated/graphql-schemas/__mj_BizAppsCommon.d.ts +1510 -0
- package/dist/generated/graphql-schemas/__mj_BizAppsCommon.d.ts.map +1 -0
- package/dist/generated/graphql-schemas/__mj_BizAppsCommon.js +7907 -0
- package/dist/generated/graphql-schemas/__mj_BizAppsCommon.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/package.json +7 -4
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `Common.LogActivity` — the declarative entry point to the unified timeline.
|
|
3
|
+
*
|
|
4
|
+
* The keystone of the Entity Action adoption plan (plans/mj-entity-action-workflow-adoption.md
|
|
5
|
+
* §3.1): any app binds `AfterCreate` / `AfterUpdate` on any entity to this action and the record's
|
|
6
|
+
* lifecycle appears on a person's or organization's timeline with no code in the consuming app.
|
|
7
|
+
*
|
|
8
|
+
* It WRAPS `ActivityWriter` (§3.2 — one writer, two entry points), never writes its own rows, and
|
|
9
|
+
* takes only serializable params: bind `RecordData` with ValueType `'Entity Object Data'`, never
|
|
10
|
+
* `'Entity Object'` (§3.3 — a BaseEntity serializes to `{}` silently).
|
|
11
|
+
*/
|
|
12
|
+
import { BaseAction } from '@memberjunction/actions';
|
|
13
|
+
import type { ActionResultSimple, RunActionParams } from '@memberjunction/actions-base';
|
|
14
|
+
export declare class LogActivityAction extends BaseAction {
|
|
15
|
+
protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
|
|
16
|
+
private log;
|
|
17
|
+
}
|
|
18
|
+
export declare function LoadLogActivityAction(): void;
|
|
19
|
+
//# sourceMappingURL=log-activity.action.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-activity.action.d.ts","sourceRoot":"","sources":["../../src/custom/log-activity.action.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,EAAe,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAerG,qBACa,iBAAkB,SAAQ,UAAU;cAC7B,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;YAYzE,GAAG;CAsCpB;AAED,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C"}
|
|
@@ -0,0 +1,87 @@
|
|
|
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
|
+
/**
|
|
8
|
+
* `Common.LogActivity` — the declarative entry point to the unified timeline.
|
|
9
|
+
*
|
|
10
|
+
* The keystone of the Entity Action adoption plan (plans/mj-entity-action-workflow-adoption.md
|
|
11
|
+
* §3.1): any app binds `AfterCreate` / `AfterUpdate` on any entity to this action and the record's
|
|
12
|
+
* lifecycle appears on a person's or organization's timeline with no code in the consuming app.
|
|
13
|
+
*
|
|
14
|
+
* It WRAPS `ActivityWriter` (§3.2 — one writer, two entry points), never writes its own rows, and
|
|
15
|
+
* takes only serializable params: bind `RecordData` with ValueType `'Entity Object Data'`, never
|
|
16
|
+
* `'Entity Object'` (§3.3 — a BaseEntity serializes to `{}` silently).
|
|
17
|
+
*/
|
|
18
|
+
import { BaseAction } from '@memberjunction/actions';
|
|
19
|
+
import { Metadata } from '@memberjunction/core';
|
|
20
|
+
import { RegisterClass } from '@memberjunction/global';
|
|
21
|
+
import { ActivityWriter, ParseLogActivityParams } from '@mj-biz-apps/common-activity-sync';
|
|
22
|
+
function setOutput(params, name, value) {
|
|
23
|
+
const existing = params.Params?.find((p) => p.Name?.toLowerCase() === name.toLowerCase());
|
|
24
|
+
if (existing) {
|
|
25
|
+
existing.Value = value;
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
params.Params = params.Params ?? [];
|
|
29
|
+
params.Params.push({ Name: name, Value: value, Type: 'Output' });
|
|
30
|
+
}
|
|
31
|
+
let LogActivityAction = class LogActivityAction extends BaseAction {
|
|
32
|
+
async InternalRunAction(params) {
|
|
33
|
+
try {
|
|
34
|
+
return await this.log(params);
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
return {
|
|
38
|
+
Success: false,
|
|
39
|
+
ResultCode: 'ERROR',
|
|
40
|
+
Message: `LogActivity failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
async log(params) {
|
|
45
|
+
if (!params.ContextUser) {
|
|
46
|
+
return { Success: false, ResultCode: 'VALIDATION_ERROR', Message: 'ContextUser is required.' };
|
|
47
|
+
}
|
|
48
|
+
const values = {};
|
|
49
|
+
for (const param of params.Params ?? []) {
|
|
50
|
+
if (param.Name)
|
|
51
|
+
values[param.Name] = param.Value;
|
|
52
|
+
}
|
|
53
|
+
const parsed = ParseLogActivityParams(values);
|
|
54
|
+
if (!parsed.Input) {
|
|
55
|
+
return {
|
|
56
|
+
Success: false,
|
|
57
|
+
ResultCode: 'VALIDATION_ERROR',
|
|
58
|
+
Message: `LogActivity input is invalid: ${parsed.Errors.join(' | ')}`,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
const result = await new ActivityWriter().WriteManual(parsed.Input, Metadata.Provider, params.ContextUser);
|
|
62
|
+
setOutput(params, 'ActivityID', result.ActivityID);
|
|
63
|
+
setOutput(params, 'AlreadyPresent', result.AlreadyPresent);
|
|
64
|
+
if (!result.Success) {
|
|
65
|
+
return {
|
|
66
|
+
Success: false,
|
|
67
|
+
ResultCode: 'ERROR',
|
|
68
|
+
Message: `The activity could not be written: ${result.Issues.join(' | ')}`,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
return {
|
|
72
|
+
Success: true,
|
|
73
|
+
ResultCode: result.AlreadyPresent ? 'ALREADY_PRESENT' : 'SUCCESS',
|
|
74
|
+
Message: result.AlreadyPresent
|
|
75
|
+
? `An activity with this SourceSystem/ExternalID already exists (${result.ActivityID}).`
|
|
76
|
+
: `Activity ${result.ActivityID} written with ${result.Links.length} link(s).`,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
LogActivityAction = __decorate([
|
|
81
|
+
RegisterClass(BaseAction, 'Common.LogActivity')
|
|
82
|
+
], LogActivityAction);
|
|
83
|
+
export { LogActivityAction };
|
|
84
|
+
export function LoadLogActivityAction() {
|
|
85
|
+
void LogActivityAction;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=log-activity.action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-activity.action.js","sourceRoot":"","sources":["../../src/custom/log-activity.action.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAE3F,SAAS,SAAS,CAAC,MAAuB,EAAE,IAAY,EAAE,KAAc;IACpE,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1F,IAAI,QAAQ,EAAE,CAAC;QACX,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;QACvB,OAAO;IACX,CAAC;IACD,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;IACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAiB,CAAC,CAAC;AACpF,CAAC;AAGM,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,UAAU;IACnC,KAAK,CAAC,iBAAiB,CAAC,MAAuB;QACrD,IAAI,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,UAAU,EAAE,OAAO;gBACnB,OAAO,EAAE,uBAAuB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aAC3F,CAAC;QACN,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,GAAG,CAAC,MAAuB;QACrC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC;QACnG,CAAC;QAED,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YACtC,IAAI,KAAK,CAAC,IAAI;gBAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QACrD,CAAC;QAED,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,UAAU,EAAE,kBAAkB;gBAC9B,OAAO,EAAE,iCAAiC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;aACxE,CAAC;QACN,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,cAAc,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3G,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QACnD,SAAS,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;QAE3D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,UAAU,EAAE,OAAO;gBACnB,OAAO,EAAE,sCAAsC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;aAC7E,CAAC;QACN,CAAC;QACD,OAAO;YACH,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS;YACjE,OAAO,EAAE,MAAM,CAAC,cAAc;gBAC1B,CAAC,CAAC,iEAAiE,MAAM,CAAC,UAAU,IAAI;gBACxF,CAAC,CAAC,YAAY,MAAM,CAAC,UAAU,iBAAiB,MAAM,CAAC,KAAK,CAAC,MAAM,WAAW;SACrF,CAAC;IACN,CAAC;CACJ,CAAA;AAnDY,iBAAiB;IAD7B,aAAa,CAAC,UAAU,EAAE,oBAAoB,CAAC;GACnC,iBAAiB,CAmD7B;;AAED,MAAM,UAAU,qBAAqB;IACjC,KAAK,iBAAiB,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `Common.SyncActivities` — the MJ Action a ScheduledJob fires hourly.
|
|
3
|
+
*
|
|
4
|
+
* Downstream apps do not wrap this. They register a BaseActivitySyncExtension
|
|
5
|
+
* (Sales.DealLinker) which the engine runs inside the write transaction.
|
|
6
|
+
*/
|
|
7
|
+
import { BaseAction } from '@memberjunction/actions';
|
|
8
|
+
import type { ActionResultSimple, RunActionParams } from '@memberjunction/actions-base';
|
|
9
|
+
export declare class SyncActivitiesAction extends BaseAction {
|
|
10
|
+
protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
|
|
11
|
+
private sync;
|
|
12
|
+
}
|
|
13
|
+
export declare function LoadSyncActivitiesAction(): void;
|
|
14
|
+
//# sourceMappingURL=sync-activities.action.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-activities.action.d.ts","sourceRoot":"","sources":["../../src/custom/sync-activities.action.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,EAAe,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AA0BrG,qBACa,oBAAqB,SAAQ,UAAU;cAChC,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;YAYzE,IAAI;CAmBrB;AAED,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C"}
|
|
@@ -0,0 +1,67 @@
|
|
|
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
|
+
/**
|
|
8
|
+
* `Common.SyncActivities` — the MJ Action a ScheduledJob fires hourly.
|
|
9
|
+
*
|
|
10
|
+
* Downstream apps do not wrap this. They register a BaseActivitySyncExtension
|
|
11
|
+
* (Sales.DealLinker) which the engine runs inside the write transaction.
|
|
12
|
+
*/
|
|
13
|
+
import { BaseAction } from '@memberjunction/actions';
|
|
14
|
+
import { Metadata } from '@memberjunction/core';
|
|
15
|
+
import { RegisterClass } from '@memberjunction/global';
|
|
16
|
+
import { ActionResultFromFleet, ActivitySyncEngine, TotalsFromFleet, } from '@mj-biz-apps/common-activity-sync';
|
|
17
|
+
const P_LIMIT = 'Limit';
|
|
18
|
+
const DEFAULT_LIMIT = 100;
|
|
19
|
+
function readParam(params, name) {
|
|
20
|
+
return params.Params?.find((p) => p.Name?.toLowerCase() === name.toLowerCase())?.Value;
|
|
21
|
+
}
|
|
22
|
+
function setOutput(params, name, value) {
|
|
23
|
+
const existing = params.Params?.find((p) => p.Name?.toLowerCase() === name.toLowerCase());
|
|
24
|
+
if (existing) {
|
|
25
|
+
existing.Value = value;
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
params.Params = params.Params ?? [];
|
|
29
|
+
params.Params.push({ Name: name, Value: value, Type: 'Output' });
|
|
30
|
+
}
|
|
31
|
+
let SyncActivitiesAction = class SyncActivitiesAction extends BaseAction {
|
|
32
|
+
async InternalRunAction(params) {
|
|
33
|
+
try {
|
|
34
|
+
return await this.sync(params);
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
return {
|
|
38
|
+
Success: false,
|
|
39
|
+
ResultCode: 'ERROR',
|
|
40
|
+
Message: `The activity sync failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
async sync(params) {
|
|
45
|
+
const raw = readParam(params, P_LIMIT);
|
|
46
|
+
const parsed = raw === null || raw === undefined || raw === '' ? DEFAULT_LIMIT : Number(raw);
|
|
47
|
+
const limit = Number.isFinite(parsed) && parsed > 0 ? Math.floor(parsed) : DEFAULT_LIMIT;
|
|
48
|
+
const fleet = await new ActivitySyncEngine().RunConnections({ DryRun: false, TriggerType: 'Scheduled', Limit: limit }, Metadata.Provider, params.ContextUser);
|
|
49
|
+
const totals = TotalsFromFleet(fleet);
|
|
50
|
+
setOutput(params, 'ConnectionsAttempted', fleet.ConnectionsAttempted);
|
|
51
|
+
setOutput(params, 'Fetched', totals.Fetched);
|
|
52
|
+
setOutput(params, 'Written', totals.Written);
|
|
53
|
+
setOutput(params, 'Duplicates', totals.Duplicates);
|
|
54
|
+
setOutput(params, 'Excluded', totals.Excluded);
|
|
55
|
+
setOutput(params, 'Failed', totals.Failed);
|
|
56
|
+
setOutput(params, 'Issues', JSON.stringify(fleet.Issues));
|
|
57
|
+
return ActionResultFromFleet(fleet, totals);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
SyncActivitiesAction = __decorate([
|
|
61
|
+
RegisterClass(BaseAction, 'Common.SyncActivities')
|
|
62
|
+
], SyncActivitiesAction);
|
|
63
|
+
export { SyncActivitiesAction };
|
|
64
|
+
export function LoadSyncActivitiesAction() {
|
|
65
|
+
void SyncActivitiesAction;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=sync-activities.action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-activities.action.js","sourceRoot":"","sources":["../../src/custom/sync-activities.action.ts"],"names":[],"mappings":"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"}
|