anbaric-tsapi 1.55.0 → 1.56.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/api/files/FileStorage.d.ts +33 -0
- package/dist/api/files/FileStorage.d.ts.map +1 -0
- package/dist/api/files/FileStorage.js +39 -0
- package/dist/api/files/FileStorage.js.map +1 -0
- 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/package.json +1 -1
|
@@ -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";
|
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,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