@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 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';
@@ -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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xemahq/platform-common",
3
- "version": "0.2.11",
3
+ "version": "0.2.12",
4
4
  "publishConfig": {
5
5
  "registry": "https://registry.npmjs.org/",
6
6
  "access": "public"