@xemahq/platform-common 0.2.11 → 0.2.12
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/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/resolve-acting-user.d.ts +8 -0
- package/dist/lib/resolve-acting-user.d.ts.map +1 -0
- package/dist/lib/resolve-acting-user.js +44 -0
- package/dist/lib/resolve-acting-user.js.map +1 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ export * from './lib/omit-undefined';
|
|
|
24
24
|
export * from './lib/redaction/index';
|
|
25
25
|
export * from './lib/orval-client-config';
|
|
26
26
|
export * from './lib/request-context';
|
|
27
|
+
export * from './lib/resolve-acting-user';
|
|
27
28
|
export * from './lib/vote-feedback';
|
|
28
29
|
export * from './lib/write-policy';
|
|
29
30
|
export * from './lib/interactive-workspace-layout';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AAIrC,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oCAAoC,CAAC;AACnD,cAAc,yBAAyB,CAAC;AAGxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAG1C,cAAc,wBAAwB,CAAC;AAGvC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AAIrC,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oCAAoC,CAAC;AACnD,cAAc,yBAAyB,CAAC;AAGxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAG1C,cAAc,wBAAwB,CAAC;AAGvC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -63,6 +63,7 @@ __exportStar(require("./lib/omit-undefined"), exports);
|
|
|
63
63
|
__exportStar(require("./lib/redaction/index"), exports);
|
|
64
64
|
__exportStar(require("./lib/orval-client-config"), exports);
|
|
65
65
|
__exportStar(require("./lib/request-context"), exports);
|
|
66
|
+
__exportStar(require("./lib/resolve-acting-user"), exports);
|
|
66
67
|
__exportStar(require("./lib/vote-feedback"), exports);
|
|
67
68
|
__exportStar(require("./lib/write-policy"), exports);
|
|
68
69
|
__exportStar(require("./lib/interactive-workspace-layout"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,sDAAoC;AACpC,sDAAoC;AACpC,uDAAqC;AAIrC,mEAAmD;AACnD,oEAAkD;AAClD,wEAAsD;AACtD,mDAAiC;AACjC,4DAA0C;AAC1C,oDAAkC;AAClC,+DAA6C;AAC7C,0DAAwC;AACxC,uDAAqC;AACrC,oDAAkC;AAClC,yDAAuC;AACvC,mEAAiD;AACjD,wDAAsC;AACtC,4DAA0C;AAC1C,yDAAuC;AACvC,yDAAuC;AACvC,gEAA8C;AAC9C,sDAAoC;AACpC,2DAAyC;AACzC,uDAAqC;AACrC,wDAAsC;AACtC,4DAA0C;AAC1C,wDAAsC;AACtC,sDAAoC;AACpC,qDAAmC;AACnC,qEAAmD;AACnD,0DAAwC;AAGxC,kEAAgD;AAChD,uDAAqC;AACrC,2DAAyC;AACzC,4DAA0C;AAG1C,yDAAuC;AAGvC,uDAAqC;AAGrC,iDAA+B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,sDAAoC;AACpC,sDAAoC;AACpC,uDAAqC;AAIrC,mEAAmD;AACnD,oEAAkD;AAClD,wEAAsD;AACtD,mDAAiC;AACjC,4DAA0C;AAC1C,oDAAkC;AAClC,+DAA6C;AAC7C,0DAAwC;AACxC,uDAAqC;AACrC,oDAAkC;AAClC,yDAAuC;AACvC,mEAAiD;AACjD,wDAAsC;AACtC,4DAA0C;AAC1C,yDAAuC;AACvC,yDAAuC;AACvC,gEAA8C;AAC9C,sDAAoC;AACpC,2DAAyC;AACzC,uDAAqC;AACrC,wDAAsC;AACtC,4DAA0C;AAC1C,wDAAsC;AACtC,4DAA0C;AAC1C,sDAAoC;AACpC,qDAAmC;AACnC,qEAAmD;AACnD,0DAAwC;AAGxC,kEAAgD;AAChD,uDAAqC;AACrC,2DAAyC;AACzC,4DAA0C;AAG1C,yDAAuC;AAGvC,uDAAqC;AAGrC,iDAA+B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { SubjectRef } from '@xemahq/kernel-contracts/subject';
|
|
2
|
+
import type { RequestContext } from './request-context';
|
|
3
|
+
export declare class ActingUserUnresolvableError extends Error {
|
|
4
|
+
constructor(ctx: Pick<RequestContext, 'subject' | 'actorChain'>);
|
|
5
|
+
}
|
|
6
|
+
export declare function tryResolveActingUserSubject(ctx: Pick<RequestContext, 'subject' | 'actorChain'>): SubjectRef | undefined;
|
|
7
|
+
export declare function resolveActingUserSubject(ctx: Pick<RequestContext, 'subject' | 'actorChain'>): SubjectRef;
|
|
8
|
+
//# sourceMappingURL=resolve-acting-user.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-acting-user.d.ts","sourceRoot":"","sources":["../../src/lib/resolve-acting-user.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAEnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAUxD,qBAAa,2BAA4B,SAAQ,KAAK;gBACxC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,YAAY,CAAC;CAgBhE;AAyBD,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,YAAY,CAAC,GAClD,UAAU,GAAG,SAAS,CAcxB;AAWD,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,YAAY,CAAC,GAClD,UAAU,CAMZ"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ActingUserUnresolvableError = void 0;
|
|
4
|
+
exports.tryResolveActingUserSubject = tryResolveActingUserSubject;
|
|
5
|
+
exports.resolveActingUserSubject = resolveActingUserSubject;
|
|
6
|
+
const subject_1 = require("@xemahq/kernel-contracts/subject");
|
|
7
|
+
class ActingUserUnresolvableError extends Error {
|
|
8
|
+
constructor(ctx) {
|
|
9
|
+
const chain = (ctx.actorChain ?? [])
|
|
10
|
+
.map((a) => `${a.kind}:${a.id}`)
|
|
11
|
+
.join(',');
|
|
12
|
+
super('No acting USER could be resolved from the request context. ' +
|
|
13
|
+
`subject=${ctx.subject.kind}:${ctx.subject.id} ` +
|
|
14
|
+
`actingFor=${ctx.subject.actingFor
|
|
15
|
+
? `${ctx.subject.actingFor.kind}:${ctx.subject.actingFor.id}`
|
|
16
|
+
: 'none'} actorChain=[${chain}]. ` +
|
|
17
|
+
'Ownership cannot be attributed to a non-human actor (fail-closed).');
|
|
18
|
+
this.name = 'ActingUserUnresolvableError';
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.ActingUserUnresolvableError = ActingUserUnresolvableError;
|
|
22
|
+
function tryResolveActingUserSubject(ctx) {
|
|
23
|
+
if (ctx.subject.kind === subject_1.SubjectKind.User) {
|
|
24
|
+
return { kind: subject_1.SubjectKind.User, id: ctx.subject.id };
|
|
25
|
+
}
|
|
26
|
+
const actingFor = ctx.subject.actingFor;
|
|
27
|
+
if (actingFor && actingFor.kind === subject_1.SubjectKind.User) {
|
|
28
|
+
return { kind: subject_1.SubjectKind.User, id: actingFor.id };
|
|
29
|
+
}
|
|
30
|
+
for (const actor of ctx.actorChain ?? []) {
|
|
31
|
+
if (actor.kind === subject_1.SubjectKind.User) {
|
|
32
|
+
return { kind: subject_1.SubjectKind.User, id: actor.id };
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
function resolveActingUserSubject(ctx) {
|
|
38
|
+
const user = tryResolveActingUserSubject(ctx);
|
|
39
|
+
if (user === undefined) {
|
|
40
|
+
throw new ActingUserUnresolvableError(ctx);
|
|
41
|
+
}
|
|
42
|
+
return user;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=resolve-acting-user.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-acting-user.js","sourceRoot":"","sources":["../../src/lib/resolve-acting-user.ts"],"names":[],"mappings":";;;AAuDA,kEAgBC;AAWD,4DAQC;AA1FD,8DAA+D;AAa/D,MAAa,2BAA4B,SAAQ,KAAK;IACpD,YAAY,GAAmD;QAC7D,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;aACjC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;aAC/B,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,KAAK,CACH,6DAA6D;YAC3D,WAAW,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG;YAChD,aACE,GAAG,CAAC,OAAO,CAAC,SAAS;gBACnB,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE;gBAC7D,CAAC,CAAC,MACN,gBAAgB,KAAK,KAAK;YAC1B,oEAAoE,CACvE,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;IAC5C,CAAC;CACF;AAjBD,kEAiBC;AAyBD,SAAgB,2BAA2B,CACzC,GAAmD;IAEnD,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,qBAAW,CAAC,IAAI,EAAE,CAAC;QAC1C,OAAO,EAAE,IAAI,EAAE,qBAAW,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;IACxD,CAAC;IACD,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC;IACxC,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,qBAAW,CAAC,IAAI,EAAE,CAAC;QACrD,OAAO,EAAE,IAAI,EAAE,qBAAW,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC;IACtD,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;QACzC,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAW,CAAC,IAAI,EAAE,CAAC;YACpC,OAAO,EAAE,IAAI,EAAE,qBAAW,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAWD,SAAgB,wBAAwB,CACtC,GAAmD;IAEnD,MAAM,IAAI,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAC;IAC9C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,2BAA2B,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|