@mj-biz-apps/contracts-core-entities-server 0.3.0 → 0.4.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.
|
@@ -43,6 +43,8 @@ export interface SupersedeInput {
|
|
|
43
43
|
/**
|
|
44
44
|
* Link this contract as a predecessor. ADDS — whatever this agreement already supersedes is left
|
|
45
45
|
* exactly as it is, because one agreement may legitimately replace several.
|
|
46
|
+
*
|
|
47
|
+
* Mutually exclusive with `ReleasePredecessorID`: one verb per call, and both set is refused.
|
|
46
48
|
*/
|
|
47
49
|
PredecessorID?: string | null;
|
|
48
50
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SupersedeOperation.d.ts","sourceRoot":"","sources":["../src/SupersedeOperation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,EACH,sBAAsB,EACtB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAE1B,KAAK,QAAQ,EAChB,MAAM,sBAAsB,CAAC;AAM9B,MAAM,WAAW,cAAc;IAC3B,+EAA+E;IAC/E,WAAW,EAAE,MAAM,CAAC;IACpB
|
|
1
|
+
{"version":3,"file":"SupersedeOperation.d.ts","sourceRoot":"","sources":["../src/SupersedeOperation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,EACH,sBAAsB,EACtB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAE1B,KAAK,QAAQ,EAChB,MAAM,sBAAsB,CAAC;AAM9B,MAAM,WAAW,cAAc;IAC3B,+EAA+E;IAC/E,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,eAAe;IAC5B,4GAA4G;IAC5G,UAAU,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1D,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,8FAA8F;IAC9F,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBACa,kBAAmB,SAAQ,sBAAsB,CAAC,cAAc,EAAE,eAAe,CAAC;IAC3F,SAAgB,YAAY,yBAAyB;cAE5B,eAAe,CACpC,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,qBAAqB,GAChC,OAAO,CAAC,eAAe,CAAC;IA+G3B,oGAAoG;YACtF,cAAc;CAkB/B;AAED,uGAAuG;AACvG,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C"}
|
|
@@ -53,6 +53,24 @@ let SupersedeOperation = class SupersedeOperation extends BaseRemotableOperation
|
|
|
53
53
|
async InternalExecute(input, provider, user, _context) {
|
|
54
54
|
if (!input?.SuccessorID)
|
|
55
55
|
throw new Error('SuccessorID is required.');
|
|
56
|
+
// ONE VERB PER CALL, refused rather than ordered.
|
|
57
|
+
//
|
|
58
|
+
// WITH THE SAME ID IN BOTH FIELDS this used to release the contract and then re-link it, and
|
|
59
|
+
// report BOTH: `Released: ['CTR-0001']` came back alongside a `Supersedes` list still
|
|
60
|
+
// containing CTR-0001. The caller is told a release happened that did not survive the same
|
|
61
|
+
// request, and the row takes two writes — cleared, then set again — so anything reading the
|
|
62
|
+
// audit trail sees a release nobody performed. Ordering the branches the other way just moves
|
|
63
|
+
// which half of the answer is the lie.
|
|
64
|
+
//
|
|
65
|
+
// WITH DIFFERENT IDS it does work, and is still refused: releasing X while linking Y is two
|
|
66
|
+
// decisions in one request, the panel sends one verb at a time, and nothing has asked for the
|
|
67
|
+
// combination. A refusal the caller can read beats an interpretation picked on their behalf.
|
|
68
|
+
//
|
|
69
|
+
// The guard sits before the successor is loaded, so a rejected call reads and writes nothing.
|
|
70
|
+
if (input.PredecessorID && input.ReleasePredecessorID) {
|
|
71
|
+
throw new Error('Supersede takes one action at a time: PredecessorID to add a predecessor, or ' +
|
|
72
|
+
'ReleasePredecessorID to release one — not both in the same call.');
|
|
73
|
+
}
|
|
56
74
|
const successor = await provider.GetEntityObject(E_CONTRACT, user);
|
|
57
75
|
if (!(await successor.Load(input.SuccessorID))) {
|
|
58
76
|
throw new Error('The contract doing the superseding could not be loaded.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SupersedeOperation.js","sourceRoot":"","sources":["../src/SupersedeOperation.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,EACH,sBAAsB,EAGtB,OAAO,GAEV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD,MAAM,UAAU,GAAG,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"SupersedeOperation.js","sourceRoot":"","sources":["../src/SupersedeOperation.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"mjdevManaged": "MJDEV-MANAGED: mjdev owns parts of this file — the \"packages/dev-apps/*\" workspaces glob, any dev-linked open-app dependencies (e.g. \"@mj-biz-apps/*\"), and the Angular \"overrides\" pin set. Do not hand-edit those; the tool wires and reverts them. They are left visible in git status, but the git-tree guard blocks committing them. See .mjdev-docs/MANAGED-FILES.md; revert with `mjdev git:stage-clean <slug> package.json`.",
|
|
3
3
|
"name": "@mj-biz-apps/contracts-core-entities-server",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.4.1",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Server-side entity subclass overrides (validation, computed fields, save hooks). TODO(template): rename.",
|
|
7
7
|
"main": "dist/index.js",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
},
|
|
13
13
|
"license": "BUSL-1.1",
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@mj-biz-apps/contracts-entities": "^0.
|
|
15
|
+
"@mj-biz-apps/contracts-entities": "^0.4.1"
|
|
16
16
|
},
|
|
17
17
|
"peerDependencies": {
|
|
18
18
|
"@memberjunction/core": "^6.1.0-edge.4",
|