anbaric-state-machine 1.32.0 → 1.33.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/entitlements/EntitlementsFactory.d.ts +6 -0
- package/dist/entitlements/EntitlementsFactory.d.ts.map +1 -0
- package/dist/entitlements/EntitlementsFactory.js +15 -0
- package/dist/entitlements/EntitlementsFactory.js.map +1 -0
- package/dist/entitlements/PermissiveAuthorizer.d.ts +9 -0
- package/dist/entitlements/PermissiveAuthorizer.d.ts.map +1 -0
- package/dist/entitlements/PermissiveAuthorizer.js +16 -0
- package/dist/entitlements/PermissiveAuthorizer.js.map +1 -0
- package/dist/entitlements/entitlements.d.ts +6 -0
- package/dist/entitlements/entitlements.d.ts.map +1 -0
- package/dist/entitlements/entitlements.js +25 -0
- package/dist/entitlements/entitlements.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntitlementsFactory.d.ts","sourceRoot":"","sources":["../../src/entitlements/EntitlementsFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAI3C,QAAA,MAAM,mBAAmB;IACrB,QAAQ,IAAK,YAAY;CAS5B,CAAA;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { CloudEntitlements } from "anbaric-impl-cloud";
|
|
2
|
+
import { PermissiveAuthorizer } from "./PermissiveAuthorizer.js";
|
|
3
|
+
const EntitlementsFactory = {
|
|
4
|
+
instance() {
|
|
5
|
+
switch (process.env.ANBARIC_ENTITLEMENTS_TYPE) {
|
|
6
|
+
case "cloud":
|
|
7
|
+
return new CloudEntitlements();
|
|
8
|
+
case "permissive":
|
|
9
|
+
default:
|
|
10
|
+
return new PermissiveAuthorizer();
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
export { EntitlementsFactory };
|
|
15
|
+
//# sourceMappingURL=EntitlementsFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntitlementsFactory.js","sourceRoot":"","sources":["../../src/entitlements/EntitlementsFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,iBAAiB,EAAC,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAE/D,MAAM,mBAAmB,GAAG;IACxB,QAAQ;QACJ,QAAQ,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,CAAC;YAC5C,KAAK,OAAO;gBACR,OAAO,IAAI,iBAAiB,EAAE,CAAC;YACnC,KAAK,YAAY,CAAC;YAClB;gBACI,OAAO,IAAI,oBAAoB,EAAE,CAAC;QAC1C,CAAC;IACL,CAAC;CACJ,CAAA;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Entitlements } from "anbaric-tsapi";
|
|
2
|
+
declare class PermissiveAuthorizer implements Entitlements {
|
|
3
|
+
private definitions;
|
|
4
|
+
register(appId: string, entitlementId: string, notes?: string): Promise<void>;
|
|
5
|
+
has(_appId: string, _userId: string, _entitlementId: string): Promise<boolean>;
|
|
6
|
+
get registered(): Array<string>;
|
|
7
|
+
}
|
|
8
|
+
export { PermissiveAuthorizer };
|
|
9
|
+
//# sourceMappingURL=PermissiveAuthorizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PermissiveAuthorizer.d.ts","sourceRoot":"","sources":["../../src/entitlements/PermissiveAuthorizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAI3C,cAAM,oBAAqB,YAAW,YAAY;IAE9C,OAAO,CAAC,WAAW,CAA6B;IAE1C,QAAQ,CAAC,KAAK,EAAG,MAAM,EAAE,aAAa,EAAG,MAAM,EAAE,KAAK,GAAG,MAAW,GAAI,OAAO,CAAC,IAAI,CAAC,CAE1F;IAEK,GAAG,CAAC,MAAM,EAAG,MAAM,EAAE,OAAO,EAAG,MAAM,EAAE,cAAc,EAAG,MAAM,GAAI,OAAO,CAAC,OAAO,CAAC,CAEvF;IAED,IAAI,UAAU,IAAK,KAAK,CAAC,MAAM,CAAC,CAE/B;CAEJ;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/* The local implementation: nobody is ever refused. Registrations are kept so
|
|
2
|
+
an app can see what it declared, but every check passes. */
|
|
3
|
+
class PermissiveAuthorizer {
|
|
4
|
+
definitions = new Map();
|
|
5
|
+
async register(appId, entitlementId, notes = "") {
|
|
6
|
+
this.definitions.set(`${appId}/${entitlementId}`, notes);
|
|
7
|
+
}
|
|
8
|
+
async has(_appId, _userId, _entitlementId) {
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
get registered() {
|
|
12
|
+
return Array.from(this.definitions.keys());
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export { PermissiveAuthorizer };
|
|
16
|
+
//# sourceMappingURL=PermissiveAuthorizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PermissiveAuthorizer.js","sourceRoot":"","sources":["../../src/entitlements/PermissiveAuthorizer.ts"],"names":[],"mappings":"AAEA;8DAC8D;AAC9D,MAAM,oBAAoB;IAEd,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEhD,KAAK,CAAC,QAAQ,CAAC,KAAc,EAAE,aAAsB,EAAE,KAAK,GAAY,EAAE;QACtE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,aAAa,EAAE,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,MAAe,EAAE,OAAgB,EAAE,cAAuB;QAChE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,UAAU;QACV,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;CAEJ;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { IncomingMessage } from "node:http";
|
|
2
|
+
import { Entitlements, SessionResolver } from "anbaric-tsapi";
|
|
3
|
+
declare const registerEntitlement: (entitlementId: string, notes?: string, entitlements?: Entitlements) => Promise<void>;
|
|
4
|
+
declare const hasEntitlement: (source: string | IncomingMessage, entitlementId: string, resolver?: SessionResolver, entitlements?: Entitlements) => Promise<boolean>;
|
|
5
|
+
export { registerEntitlement, hasEntitlement };
|
|
6
|
+
//# sourceMappingURL=entitlements.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entitlements.d.ts","sourceRoot":"","sources":["../../src/entitlements/entitlements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAe,YAAY,EAAE,eAAe,EAAC,MAAM,eAAe,CAAC;AAY1E,QAAA,MAAM,mBAAmB,kBAA0B,MAAM,UAAU,MAAM,iBACvB,YAAY,KAA2B,OAAO,CAAC,IAAI,CAEpG,CAAC;AAMF,QAAA,MAAM,cAAc,WAAmB,MAAM,GAAG,eAAe,iBAAkB,MAAM,aAC9C,eAAe,iBACX,YAAY,KAA2B,OAAO,CAAC,OAAO,CAKlG,CAAC;AAEF,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { currentAppId } from "anbaric-tsapi";
|
|
2
|
+
import { sessionCookie } from "../sessions/sessionCookie.js";
|
|
3
|
+
import { SessionResolverFactory } from "../sessions/SessionResolverFactory.js";
|
|
4
|
+
import { EntitlementsFactory } from "./EntitlementsFactory.js";
|
|
5
|
+
let shared;
|
|
6
|
+
const sharedEntitlements = () => shared ??= EntitlementsFactory.instance();
|
|
7
|
+
/* Declares an entitlement this app checks - a startup activity. The
|
|
8
|
+
definition is scoped to the current app; global entitlements are created
|
|
9
|
+
in the console, never by an app. */
|
|
10
|
+
const registerEntitlement = async (entitlementId, notes = "", entitlements = sharedEntitlements()) => {
|
|
11
|
+
await entitlements.register(currentAppId(), entitlementId, notes);
|
|
12
|
+
};
|
|
13
|
+
/* Whether the user behind a session holds the entitlement for the current
|
|
14
|
+
app. Takes the incoming request (its anbaric_session cookie) or a raw
|
|
15
|
+
session token, exactly as Human.fromSession does. An unresolvable session
|
|
16
|
+
is simply not entitled. */
|
|
17
|
+
const hasEntitlement = async (source, entitlementId, resolver = SessionResolverFactory.instance(), entitlements = sharedEntitlements()) => {
|
|
18
|
+
const token = typeof source === "string" ? source : sessionCookie(source);
|
|
19
|
+
const session = token ? await resolver.resolve(token) : undefined;
|
|
20
|
+
if (!session)
|
|
21
|
+
return false;
|
|
22
|
+
return entitlements.has(currentAppId(), session.id, entitlementId);
|
|
23
|
+
};
|
|
24
|
+
export { registerEntitlement, hasEntitlement };
|
|
25
|
+
//# sourceMappingURL=entitlements.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entitlements.js","sourceRoot":"","sources":["../../src/entitlements/entitlements.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAgC,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAC,aAAa,EAAC,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAC,sBAAsB,EAAC,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAE7D,IAAI,MAAiC,CAAC;AAEtC,MAAM,kBAAkB,GAAG,GAAkB,EAAE,CAAC,MAAM,KAAK,mBAAmB,CAAC,QAAQ,EAAE,CAAC;AAE1F;;sCAEsC;AACtC,MAAM,mBAAmB,GAAG,KAAK,EAAE,aAAsB,EAAE,KAAK,GAAY,EAAE,EAC3C,YAAY,GAAkB,kBAAkB,EAAE,EAAkB,EAAE;IACrG,MAAM,YAAY,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;AACtE,CAAC,CAAC;AAEF;;;6BAG6B;AAC7B,MAAM,cAAc,GAAG,KAAK,EAAE,MAAiC,EAAE,aAAsB,EACzD,QAAQ,GAAqB,sBAAsB,CAAC,QAAQ,EAAE,EAC9D,YAAY,GAAkB,kBAAkB,EAAE,EAAqB,EAAE;IACnG,MAAM,KAAK,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClE,IAAI,CAAE,OAAO;QAAE,OAAO,KAAK,CAAC;IAC5B,OAAO,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;AACvE,CAAC,CAAC;AAEF,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,6 +5,9 @@ export * from "./actors/Human.js";
|
|
|
5
5
|
export * from "./actors/agents/OpenAIAgent.js";
|
|
6
6
|
export * from "./auditing/AuditorFactory.js";
|
|
7
7
|
export * from "./auditing/ConsoleAuditor.js";
|
|
8
|
+
export * from "./entitlements/PermissiveAuthorizer.js";
|
|
9
|
+
export * from "./entitlements/EntitlementsFactory.js";
|
|
10
|
+
export * from "./entitlements/entitlements.js";
|
|
8
11
|
export * from "./persistence/InMemoryJobPersistence.js";
|
|
9
12
|
export * from "./persistence/JobPersistenceFactory.js";
|
|
10
13
|
export * from "./scheduling/InMemoryQueue.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,qCAAqC,CAAC;AACpD,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AACnD,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,mDAAmD,CAAC;AAClE,cAAc,kDAAkD,CAAC;AACjE,cAAc,uCAAuC,CAAC;AACtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,6BAA6B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,qCAAqC,CAAC;AACpD,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AACnD,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,mDAAmD,CAAC;AAClE,cAAc,kDAAkD,CAAC;AACjE,cAAc,uCAAuC,CAAC;AACtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,6BAA6B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -5,6 +5,9 @@ export * from "./actors/Human.js";
|
|
|
5
5
|
export * from "./actors/agents/OpenAIAgent.js";
|
|
6
6
|
export * from "./auditing/AuditorFactory.js";
|
|
7
7
|
export * from "./auditing/ConsoleAuditor.js";
|
|
8
|
+
export * from "./entitlements/PermissiveAuthorizer.js";
|
|
9
|
+
export * from "./entitlements/EntitlementsFactory.js";
|
|
10
|
+
export * from "./entitlements/entitlements.js";
|
|
8
11
|
export * from "./persistence/InMemoryJobPersistence.js";
|
|
9
12
|
export * from "./persistence/JobPersistenceFactory.js";
|
|
10
13
|
export * from "./scheduling/InMemoryQueue.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,qCAAqC,CAAC;AACpD,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AACnD,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,mDAAmD,CAAC;AAClE,cAAc,kDAAkD,CAAC;AACjE,cAAc,uCAAuC,CAAC;AACtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,6BAA6B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,qCAAqC,CAAC;AACpD,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AACnD,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,mDAAmD,CAAC;AAClE,cAAc,kDAAkD,CAAC;AACjE,cAAc,uCAAuC,CAAC;AACtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,6BAA6B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "anbaric-state-machine",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.33.0",
|
|
4
4
|
"description": "This is the state machine library that one can use to add state management to an application. It will, by default, be locally runnable but can deployed to the Anbaric Cloud via the CLI",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "chris@anbaric.ai",
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"typescript": "^7.0.2"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"anbaric-impl-cloud": "^1.
|
|
28
|
-
"anbaric-tsapi": "^1.
|
|
27
|
+
"anbaric-impl-cloud": "^1.33.0",
|
|
28
|
+
"anbaric-tsapi": "^1.33.0"
|
|
29
29
|
},
|
|
30
30
|
"files": [
|
|
31
31
|
"dist"
|