anbaric-tsapi 1.55.0 → 1.56.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.
@@ -0,0 +1,33 @@
1
+ import { Actor } from "../actors/Actor.js";
2
+ import { Auditor } from "../auditing/Auditor.js";
3
+ type StoredFile = {
4
+ path: string;
5
+ contents: Uint8Array;
6
+ contentType: string;
7
+ size: number;
8
+ lastModified: Date;
9
+ };
10
+ type StoredFileInfo = Omit<StoredFile, "contents">;
11
+ declare abstract class FileStorage {
12
+ protected auditor: Auditor;
13
+ constructor(auditor: Auditor);
14
+ put(actor: Actor, path: string, contents: Uint8Array, contentType?: string): Promise<void>;
15
+ get(path: string, actor: Actor): Promise<StoredFile>;
16
+ delete(path: string, actor: Actor): Promise<void>;
17
+ list(prefix: string, actor: Actor): Promise<Array<StoredFileInfo>>;
18
+ protected abstract putInternal(path: string, contents: Uint8Array, contentType: string): Promise<void>;
19
+ protected abstract getInternal(path: string): Promise<StoredFile>;
20
+ protected abstract deleteInternal(path: string): Promise<void>;
21
+ protected abstract listInternal(prefix: string): Promise<Array<StoredFileInfo>>;
22
+ }
23
+ declare namespace FileStorage {
24
+ enum Interaction {
25
+ PUT = "PUT",
26
+ READ = "READ",
27
+ DELETE = "DELETE",
28
+ LIST = "LIST"
29
+ }
30
+ }
31
+ export { FileStorage };
32
+ export type { StoredFile, StoredFileInfo };
33
+ //# sourceMappingURL=FileStorage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileStorage.d.ts","sourceRoot":"","sources":["../../../src/api/files/FileStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAC,OAAO,EAAC,MAAM,wBAAwB,CAAC;AAM/C,KAAK,UAAU,GAAG;IAEd,IAAI,EAAG,MAAM,CAAC;IACd,QAAQ,EAAG,UAAU,CAAC;IACtB,WAAW,EAAG,MAAM,CAAC;IACrB,IAAI,EAAG,MAAM,CAAC;IACd,YAAY,EAAG,IAAI,CAAC;CAEvB,CAAC;AAEF,KAAK,cAAc,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AAOnD,uBAAe,WAAW;IAEV,SAAS,CAAC,OAAO,EAAG,OAAO;IAAvC,YAAsB,OAAO,EAAG,OAAO,EACtC;IAEK,GAAG,CAAC,KAAK,EAAG,KAAK,EAAE,IAAI,EAAG,MAAM,EAAE,QAAQ,EAAG,UAAU,EAAE,WAAW,GAAG,MAAmC,GAAI,OAAO,CAAC,IAAI,CAAC,CAIhI;IAEK,GAAG,CAAC,IAAI,EAAG,MAAM,EAAE,KAAK,EAAG,KAAK,GAAI,OAAO,CAAC,UAAU,CAAC,CAG5D;IAEK,MAAM,CAAC,IAAI,EAAG,MAAM,EAAE,KAAK,EAAG,KAAK,GAAI,OAAO,CAAC,IAAI,CAAC,CAGzD;IAEK,IAAI,CAAC,MAAM,EAAG,MAAM,EAAE,KAAK,EAAG,KAAK,GAAI,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAG1E;IAED,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAG,MAAM,EAAE,QAAQ,EAAG,UAAU,EAAE,WAAW,EAAG,MAAM,GAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3G,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAG,MAAM,GAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IACpE,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAG,MAAM,GAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAG,MAAM,GAAI,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;CAErF;AAED,kBAAU,WAAW,CAAC;IAElB,KAAY,WAAW;QACnB,GAAG,QAAQ;QACX,IAAI,SAAS;QACb,MAAM,WAAW;QACjB,IAAI,SAAS;KAChB;CAEJ;AAED,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { currentAppId } from "../cloud/AppAware.js";
2
+ /* Stores files under paths and audits every interaction. Contents never
3
+ appear in an audit record; their size and type do. Paths are relative,
4
+ forward-slash separated, and scoped to the calling app - an implementation
5
+ must refuse anything that could escape that scope. Public methods audit then
6
+ defer to the abstract ...Internal methods. */
7
+ class FileStorage {
8
+ auditor;
9
+ constructor(auditor) {
10
+ this.auditor = auditor;
11
+ }
12
+ async put(actor, path, contents, contentType = "application/octet-stream") {
13
+ await this.auditor.audit(currentAppId(), "file", path, actor, [FileStorage.Interaction.PUT], "File stored", { size: contents.byteLength, contentType });
14
+ await this.putInternal(path, contents, contentType);
15
+ }
16
+ async get(path, actor) {
17
+ await this.auditor.audit(currentAppId(), "file", path, actor, [FileStorage.Interaction.READ], "", null);
18
+ return this.getInternal(path);
19
+ }
20
+ async delete(path, actor) {
21
+ await this.auditor.audit(currentAppId(), "file", path, actor, [FileStorage.Interaction.DELETE], "", null);
22
+ await this.deleteInternal(path);
23
+ }
24
+ async list(prefix, actor) {
25
+ await this.auditor.audit(currentAppId(), "file", prefix || "*", actor, [FileStorage.Interaction.LIST], "", null);
26
+ return this.listInternal(prefix);
27
+ }
28
+ }
29
+ (function (FileStorage) {
30
+ let Interaction;
31
+ (function (Interaction) {
32
+ Interaction["PUT"] = "PUT";
33
+ Interaction["READ"] = "READ";
34
+ Interaction["DELETE"] = "DELETE";
35
+ Interaction["LIST"] = "LIST";
36
+ })(Interaction = FileStorage.Interaction || (FileStorage.Interaction = {}));
37
+ })(FileStorage || (FileStorage = {}));
38
+ export { FileStorage };
39
+ //# sourceMappingURL=FileStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileStorage.js","sourceRoot":"","sources":["../../../src/api/files/FileStorage.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAiBlD;;;;gDAIgD;AAChD,MAAe,WAAW;IAEA,OAAO;IAA7B,YAAsB,OAAiB;uBAAjB,OAAO;IAC7B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAa,EAAE,IAAa,EAAE,QAAqB,EAAE,WAAW,GAAY,0BAA0B;QAC5G,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,aAAa,EACtG,EAAE,IAAI,EAAE,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;QAChD,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAa,EAAE,KAAa;QAClC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACxG,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAa,EAAE,KAAa;QACrC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAC1G,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAe,EAAE,KAAa;QACrC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACjH,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;CAOJ;AAED,WAAU,WAAW;IAEjB,IAAY,WAKX;IALD,WAAY,WAAW;QACnB,0BAAW,CAAA;QACX,4BAAa,CAAA;QACb,gCAAiB,CAAA;QACjB,4BAAa,CAAA;IACjB,CAAC,EALW,WAAW,GAAX,YAAA,WAAW,KAAX,YAAA,WAAW,QAKtB;AAEL,CAAC,EATS,WAAW,KAAX,WAAW,QASpB;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -19,6 +19,7 @@ export * from "./api/actors/SystemActor.js";
19
19
  export * from "./api/sessions/SessionResolver.js";
20
20
  export * from "./api/documents/JsonStore.js";
21
21
  export * from "./api/secrets/SecretStore.js";
22
+ export * from "./api/files/FileStorage.js";
22
23
  export * from "./api/entitlements/Entitlements.js";
23
24
  export * from "./api/prompts/PromptManager.js";
24
25
  export * from "./api/sql/SqlStore.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,kCAAkC,CAAA;AAChD,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,qCAAqC,CAAA;AACnD,cAAc,qCAAqC,CAAA;AACnD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,2BAA2B,CAAA;AACzC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,mCAAmC,CAAA;AACjD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,oCAAoC,CAAA;AAClD,cAAc,gCAAgC,CAAA;AAC9C,cAAc,uBAAuB,CAAA;AACrC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kDAAkD,CAAA;AAChE,cAAc,iCAAiC,CAAA;AAC/C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,mCAAmC,CAAA;AACjD,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,kCAAkC,CAAA;AAChD,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,qCAAqC,CAAA;AACnD,cAAc,qCAAqC,CAAA;AACnD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,2BAA2B,CAAA;AACzC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,mCAAmC,CAAA;AACjD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,oCAAoC,CAAA;AAClD,cAAc,gCAAgC,CAAA;AAC9C,cAAc,uBAAuB,CAAA;AACrC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kDAAkD,CAAA;AAChE,cAAc,iCAAiC,CAAA;AAC/C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,mCAAmC,CAAA;AACjD,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA"}
package/dist/index.js CHANGED
@@ -19,6 +19,7 @@ export * from "./api/actors/SystemActor.js";
19
19
  export * from "./api/sessions/SessionResolver.js";
20
20
  export * from "./api/documents/JsonStore.js";
21
21
  export * from "./api/secrets/SecretStore.js";
22
+ export * from "./api/files/FileStorage.js";
22
23
  export * from "./api/entitlements/Entitlements.js";
23
24
  export * from "./api/prompts/PromptManager.js";
24
25
  export * from "./api/sql/SqlStore.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,8BAA8B,CAAA;AAC5C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,kCAAkC,CAAA;AAChD,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,qCAAqC,CAAA;AACnD,cAAc,qCAAqC,CAAA;AACnD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,2BAA2B,CAAA;AACzC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,mCAAmC,CAAA;AACjD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,oCAAoC,CAAA;AAClD,cAAc,gCAAgC,CAAA;AAC9C,cAAc,uBAAuB,CAAA;AACrC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kDAAkD,CAAA;AAChE,cAAc,iCAAiC,CAAA;AAC/C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,mCAAmC,CAAA;AACjD,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,kCAAkC,CAAA;AAChD,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,qCAAqC,CAAA;AACnD,cAAc,qCAAqC,CAAA;AACnD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,2BAA2B,CAAA;AACzC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,mCAAmC,CAAA;AACjD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,oCAAoC,CAAA;AAClD,cAAc,gCAAgC,CAAA;AAC9C,cAAc,uBAAuB,CAAA;AACrC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kDAAkD,CAAA;AAChE,cAAc,iCAAiC,CAAA;AAC/C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,mCAAmC,CAAA;AACjD,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "anbaric-tsapi",
3
- "version": "1.55.0",
3
+ "version": "1.56.1",
4
4
  "description": "These are the shared libraries - types, classes, etc - that both the public state-machine and hosting services share",
5
5
  "license": "MIT",
6
6
  "author": "chris@anbaric.ai",