@valentinkolb/filegate 2.3.6 → 2.5.2
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/activity.d.ts +15 -0
- package/dist/activity.d.ts.map +1 -0
- package/dist/activity.js +21 -0
- package/dist/activity.js.map +1 -0
- package/dist/capabilities.d.ts +9 -0
- package/dist/capabilities.d.ts.map +1 -0
- package/dist/capabilities.js +11 -0
- package/dist/capabilities.js.map +1 -0
- package/dist/client.d.ts +37 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +77 -0
- package/dist/client.js.map +1 -0
- package/dist/core.d.ts +26 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +58 -0
- package/dist/core.js.map +1 -0
- package/dist/downloads.d.ts +9 -0
- package/dist/downloads.d.ts.map +1 -0
- package/dist/downloads.js +11 -0
- package/dist/downloads.js.map +1 -0
- package/dist/errors.d.ts +18 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +42 -0
- package/dist/errors.js.map +1 -0
- package/dist/index-client.d.ts +17 -0
- package/dist/index-client.d.ts.map +1 -0
- package/dist/index-client.js +29 -0
- package/dist/index-client.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/nodes.d.ts +27 -0
- package/dist/nodes.d.ts.map +1 -0
- package/dist/nodes.js +71 -0
- package/dist/nodes.js.map +1 -0
- package/dist/paths.d.ts +45 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +71 -0
- package/dist/paths.js.map +1 -0
- package/dist/search.d.ts +17 -0
- package/dist/search.d.ts.map +1 -0
- package/dist/search.js +25 -0
- package/dist/search.js.map +1 -0
- package/dist/stats.d.ts +9 -0
- package/dist/stats.d.ts.map +1 -0
- package/dist/stats.js +11 -0
- package/dist/stats.js.map +1 -0
- package/dist/transfers.d.ts +9 -0
- package/dist/transfers.d.ts.map +1 -0
- package/dist/transfers.js +14 -0
- package/dist/transfers.js.map +1 -0
- package/dist/types.d.ts +285 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/uploads.d.ts +246 -0
- package/dist/uploads.d.ts.map +1 -0
- package/dist/uploads.js +580 -0
- package/dist/uploads.js.map +1 -0
- package/dist/utils.d.ts +25 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +41 -0
- package/dist/utils.js.map +1 -0
- package/dist/versions.d.ts +76 -0
- package/dist/versions.d.ts.map +1 -0
- package/dist/versions.js +82 -0
- package/dist/versions.js.map +1 -0
- package/package.json +36 -41
- package/LICENSE +0 -21
- package/README.md +0 -569
- package/src/client.ts +0 -436
- package/src/config.ts +0 -37
- package/src/handlers/files.ts +0 -513
- package/src/handlers/search.ts +0 -137
- package/src/handlers/thumbnail.ts +0 -148
- package/src/handlers/upload.ts +0 -379
- package/src/index.ts +0 -94
- package/src/lib/openapi.ts +0 -47
- package/src/lib/ownership.ts +0 -133
- package/src/lib/path.ts +0 -128
- package/src/lib/response.ts +0 -10
- package/src/lib/validator.ts +0 -21
- package/src/schemas.ts +0 -329
- package/src/utils.ts +0 -282
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ClientCore } from "./core.js";
|
|
2
|
+
import type { ActivityListResponse } from "./types.js";
|
|
3
|
+
export type ActivityListConfig = {
|
|
4
|
+
limit?: number;
|
|
5
|
+
offset?: number;
|
|
6
|
+
q?: string;
|
|
7
|
+
operation?: string;
|
|
8
|
+
outcome?: string;
|
|
9
|
+
};
|
|
10
|
+
export declare class ActivityClient {
|
|
11
|
+
private readonly core;
|
|
12
|
+
constructor(core: ClientCore);
|
|
13
|
+
list(config?: ActivityListConfig): Promise<ActivityListResponse>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=activity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../src/activity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAEvC,IAAI,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAS3E"}
|
package/dist/activity.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export class ActivityClient {
|
|
2
|
+
core;
|
|
3
|
+
constructor(core) {
|
|
4
|
+
this.core = core;
|
|
5
|
+
}
|
|
6
|
+
async list(config = {}) {
|
|
7
|
+
const query = {};
|
|
8
|
+
if (config.limit !== undefined)
|
|
9
|
+
query.limit = String(config.limit);
|
|
10
|
+
if (config.offset !== undefined)
|
|
11
|
+
query.offset = String(config.offset);
|
|
12
|
+
if (config.q)
|
|
13
|
+
query.q = config.q;
|
|
14
|
+
if (config.operation)
|
|
15
|
+
query.operation = config.operation;
|
|
16
|
+
if (config.outcome)
|
|
17
|
+
query.outcome = config.outcome;
|
|
18
|
+
return this.core.doJSON("GET", "/v1/activity", query);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=activity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity.js","sourceRoot":"","sources":["../src/activity.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,cAAc;IACI;IAA7B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,KAAK,CAAC,IAAI,CAAC,SAA6B,EAAE;QACxC,MAAM,KAAK,GAA2B,EAAE,CAAC;QACzC,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;YAAE,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;YAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtE,IAAI,MAAM,CAAC,CAAC;YAAE,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;QACjC,IAAI,MAAM,CAAC,SAAS;YAAE,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACzD,IAAI,MAAM,CAAC,OAAO;YAAE,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QACnD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAuB,KAAK,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;IAC9E,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ClientCore } from "./core.js";
|
|
2
|
+
import type { CapabilitiesResponse } from "./types.js";
|
|
3
|
+
export declare class CapabilitiesClient {
|
|
4
|
+
private readonly core;
|
|
5
|
+
constructor(core: ClientCore);
|
|
6
|
+
/** Get server capability limits for adaptive clients. */
|
|
7
|
+
get(): Promise<CapabilitiesResponse>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=capabilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C,yDAAyD;IACnD,GAAG,IAAI,OAAO,CAAC,oBAAoB,CAAC;CAG3C"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export class CapabilitiesClient {
|
|
2
|
+
core;
|
|
3
|
+
constructor(core) {
|
|
4
|
+
this.core = core;
|
|
5
|
+
}
|
|
6
|
+
/** Get server capability limits for adaptive clients. */
|
|
7
|
+
async get() {
|
|
8
|
+
return this.core.doJSON("GET", "/v1/capabilities");
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=capabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,kBAAkB;IACA;IAA7B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,yDAAyD;IACzD,KAAK,CAAC,GAAG;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAuB,KAAK,EAAE,kBAAkB,CAAC,CAAC;IAC3E,CAAC;CACF"}
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { type FetchImpl } from "./core.js";
|
|
2
|
+
import { ActivityClient } from "./activity.js";
|
|
3
|
+
import { CapabilitiesClient } from "./capabilities.js";
|
|
4
|
+
import { DownloadsClient } from "./downloads.js";
|
|
5
|
+
import { IndexClient } from "./index-client.js";
|
|
6
|
+
import { NodesClient } from "./nodes.js";
|
|
7
|
+
import { PathsClient } from "./paths.js";
|
|
8
|
+
import { SearchClient } from "./search.js";
|
|
9
|
+
import { StatsClient } from "./stats.js";
|
|
10
|
+
import { TransfersClient } from "./transfers.js";
|
|
11
|
+
import { UploadsClient } from "./uploads.js";
|
|
12
|
+
import { VersionsClient } from "./versions.js";
|
|
13
|
+
export interface FilegateConfig {
|
|
14
|
+
baseUrl: string;
|
|
15
|
+
token: string;
|
|
16
|
+
fetchImpl?: FetchImpl;
|
|
17
|
+
userAgent?: string;
|
|
18
|
+
defaultHeaders?: Record<string, string>;
|
|
19
|
+
}
|
|
20
|
+
export declare class Filegate {
|
|
21
|
+
readonly paths: PathsClient;
|
|
22
|
+
readonly nodes: NodesClient;
|
|
23
|
+
readonly uploads: UploadsClient;
|
|
24
|
+
readonly transfers: TransfersClient;
|
|
25
|
+
readonly search: SearchClient;
|
|
26
|
+
readonly index: IndexClient;
|
|
27
|
+
readonly stats: StatsClient;
|
|
28
|
+
readonly capabilities: CapabilitiesClient;
|
|
29
|
+
readonly versions: VersionsClient;
|
|
30
|
+
readonly downloads: DownloadsClient;
|
|
31
|
+
readonly activity: ActivityClient;
|
|
32
|
+
readonly baseUrl: string;
|
|
33
|
+
constructor(cfg: FilegateConfig);
|
|
34
|
+
}
|
|
35
|
+
/** Default env-based instance (server runtimes only). Created lazily on first use. */
|
|
36
|
+
export declare const filegate: Filegate;
|
|
37
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAKD,qBAAa,QAAQ;IACnB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAElC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEb,GAAG,EAAE,cAAc;CAyBhC;AAgBD,sFAAsF;AACtF,eAAO,MAAM,QAAQ,EAAE,QAKrB,CAAC"}
|
package/dist/client.js
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { ClientCore } from "./core.js";
|
|
2
|
+
import { ActivityClient } from "./activity.js";
|
|
3
|
+
import { CapabilitiesClient } from "./capabilities.js";
|
|
4
|
+
import { DownloadsClient } from "./downloads.js";
|
|
5
|
+
import { IndexClient } from "./index-client.js";
|
|
6
|
+
import { NodesClient } from "./nodes.js";
|
|
7
|
+
import { PathsClient } from "./paths.js";
|
|
8
|
+
import { SearchClient } from "./search.js";
|
|
9
|
+
import { StatsClient } from "./stats.js";
|
|
10
|
+
import { TransfersClient } from "./transfers.js";
|
|
11
|
+
import { UploadsClient } from "./uploads.js";
|
|
12
|
+
import { VersionsClient } from "./versions.js";
|
|
13
|
+
// Note: pure helpers (chunk math, hashing) live at "@valentinkolb/filegate/utils".
|
|
14
|
+
// They intentionally do not hang off this class so callers can use them
|
|
15
|
+
// without constructing a Filegate (e.g. in browsers without a token).
|
|
16
|
+
export class Filegate {
|
|
17
|
+
paths;
|
|
18
|
+
nodes;
|
|
19
|
+
uploads;
|
|
20
|
+
transfers;
|
|
21
|
+
search;
|
|
22
|
+
index;
|
|
23
|
+
stats;
|
|
24
|
+
capabilities;
|
|
25
|
+
versions;
|
|
26
|
+
downloads;
|
|
27
|
+
activity;
|
|
28
|
+
baseUrl;
|
|
29
|
+
constructor(cfg) {
|
|
30
|
+
if (!cfg.baseUrl?.trim())
|
|
31
|
+
throw new Error("baseUrl is required");
|
|
32
|
+
if (!cfg.token?.trim())
|
|
33
|
+
throw new Error("token is required");
|
|
34
|
+
const core = new ClientCore({
|
|
35
|
+
baseURL: cfg.baseUrl,
|
|
36
|
+
token: cfg.token,
|
|
37
|
+
fetchImpl: cfg.fetchImpl ?? globalThis.fetch.bind(globalThis),
|
|
38
|
+
userAgent: cfg.userAgent,
|
|
39
|
+
defaultHeaders: cfg.defaultHeaders,
|
|
40
|
+
});
|
|
41
|
+
this.baseUrl = core.baseURL;
|
|
42
|
+
this.paths = new PathsClient(core);
|
|
43
|
+
this.nodes = new NodesClient(core);
|
|
44
|
+
this.uploads = new UploadsClient(core);
|
|
45
|
+
this.transfers = new TransfersClient(core);
|
|
46
|
+
this.search = new SearchClient(core);
|
|
47
|
+
this.index = new IndexClient(core);
|
|
48
|
+
this.stats = new StatsClient(core);
|
|
49
|
+
this.capabilities = new CapabilitiesClient(core);
|
|
50
|
+
this.versions = new VersionsClient(core);
|
|
51
|
+
this.downloads = new DownloadsClient(core);
|
|
52
|
+
this.activity = new ActivityClient(core);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Lazy default instance, created on first property access.
|
|
57
|
+
* Reads FILEGATE_URL and FILEGATE_TOKEN from environment (Node/Bun only).
|
|
58
|
+
*/
|
|
59
|
+
function createDefaultInstance() {
|
|
60
|
+
const baseUrl = globalThis.process?.env?.FILEGATE_URL;
|
|
61
|
+
const token = globalThis.process?.env?.FILEGATE_TOKEN;
|
|
62
|
+
if (!baseUrl)
|
|
63
|
+
throw new Error("FILEGATE_URL environment variable is not set");
|
|
64
|
+
if (!token)
|
|
65
|
+
throw new Error("FILEGATE_TOKEN environment variable is not set");
|
|
66
|
+
return new Filegate({ baseUrl, token });
|
|
67
|
+
}
|
|
68
|
+
let _default;
|
|
69
|
+
/** Default env-based instance (server runtimes only). Created lazily on first use. */
|
|
70
|
+
export const filegate = new Proxy({}, {
|
|
71
|
+
get(_target, prop, receiver) {
|
|
72
|
+
if (!_default)
|
|
73
|
+
_default = createDefaultInstance();
|
|
74
|
+
return Reflect.get(_default, prop, receiver);
|
|
75
|
+
},
|
|
76
|
+
});
|
|
77
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/core.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export type FetchImpl = typeof globalThis.fetch;
|
|
2
|
+
export interface CoreConfig {
|
|
3
|
+
baseURL: string;
|
|
4
|
+
token: string;
|
|
5
|
+
fetchImpl: FetchImpl;
|
|
6
|
+
userAgent?: string;
|
|
7
|
+
defaultHeaders?: Record<string, string>;
|
|
8
|
+
}
|
|
9
|
+
export declare class ClientCore {
|
|
10
|
+
readonly baseURL: string;
|
|
11
|
+
private readonly token;
|
|
12
|
+
private readonly fetchImpl;
|
|
13
|
+
private readonly userAgent;
|
|
14
|
+
private readonly defaultHeaders;
|
|
15
|
+
constructor(cfg: CoreConfig);
|
|
16
|
+
buildURL(endpoint: string, query?: Record<string, string>): string;
|
|
17
|
+
private headers;
|
|
18
|
+
/** Issue an HTTP request and return the raw Response without throwing on
|
|
19
|
+
* 4xx/5xx. This is the primitive every relay/passthrough caller wants —
|
|
20
|
+
* upstream errors must reach the downstream client unchanged. Use
|
|
21
|
+
* `doJSON` (or call `ensureSuccess` yourself) when you want the standard
|
|
22
|
+
* "throw on non-2xx" behavior. */
|
|
23
|
+
doRaw(method: string, endpoint: string, query?: Record<string, string>, body?: BodyInit | null, contentType?: string, extraHeaders?: Record<string, string>): Promise<Response>;
|
|
24
|
+
doJSON<T>(method: string, endpoint: string, query?: Record<string, string>, body?: BodyInit | null, contentType?: string): Promise<T>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,GAAG,OAAO,UAAU,CAAC,KAAK,CAAC;AAEhD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED,qBAAa,UAAU;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyB;gBAE5C,GAAG,EAAE,UAAU;IAQ3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAWlE,OAAO,CAAC,OAAO;IAQf;;;;sCAIkC;IAC5B,KAAK,CACT,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACpC,OAAO,CAAC,QAAQ,CAAC;IAWd,MAAM,CAAC,CAAC,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,EACtB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,CAAC,CAAC;CAKd"}
|
package/dist/core.js
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { ensureSuccess } from "./errors.js";
|
|
2
|
+
export class ClientCore {
|
|
3
|
+
baseURL;
|
|
4
|
+
token;
|
|
5
|
+
fetchImpl;
|
|
6
|
+
userAgent;
|
|
7
|
+
defaultHeaders;
|
|
8
|
+
constructor(cfg) {
|
|
9
|
+
this.baseURL = cfg.baseURL.replace(/\/+$/, "");
|
|
10
|
+
this.token = cfg.token;
|
|
11
|
+
this.fetchImpl = cfg.fetchImpl;
|
|
12
|
+
this.userAgent = cfg.userAgent ?? "filegate-ts-sdk/1";
|
|
13
|
+
this.defaultHeaders = cfg.defaultHeaders ? { ...cfg.defaultHeaders } : {};
|
|
14
|
+
}
|
|
15
|
+
buildURL(endpoint, query) {
|
|
16
|
+
const url = new URL(endpoint, this.baseURL + "/");
|
|
17
|
+
url.pathname = this.baseURL.replace(/^https?:\/\/[^/]*/, "") + (endpoint.startsWith("/") ? endpoint : "/" + endpoint);
|
|
18
|
+
if (query) {
|
|
19
|
+
for (const [k, v] of Object.entries(query)) {
|
|
20
|
+
if (v !== undefined && v !== "")
|
|
21
|
+
url.searchParams.set(k, v);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return url.toString();
|
|
25
|
+
}
|
|
26
|
+
headers(contentType) {
|
|
27
|
+
const h = { ...this.defaultHeaders };
|
|
28
|
+
if (this.userAgent)
|
|
29
|
+
h["User-Agent"] = this.userAgent;
|
|
30
|
+
if (this.token)
|
|
31
|
+
h["Authorization"] = `Bearer ${this.token}`;
|
|
32
|
+
if (contentType)
|
|
33
|
+
h["Content-Type"] = contentType;
|
|
34
|
+
return h;
|
|
35
|
+
}
|
|
36
|
+
/** Issue an HTTP request and return the raw Response without throwing on
|
|
37
|
+
* 4xx/5xx. This is the primitive every relay/passthrough caller wants —
|
|
38
|
+
* upstream errors must reach the downstream client unchanged. Use
|
|
39
|
+
* `doJSON` (or call `ensureSuccess` yourself) when you want the standard
|
|
40
|
+
* "throw on non-2xx" behavior. */
|
|
41
|
+
async doRaw(method, endpoint, query, body, contentType, extraHeaders) {
|
|
42
|
+
const url = this.buildURL(endpoint, query);
|
|
43
|
+
const h = this.headers(contentType);
|
|
44
|
+
if (extraHeaders)
|
|
45
|
+
Object.assign(h, extraHeaders);
|
|
46
|
+
return this.fetchImpl(url, {
|
|
47
|
+
method,
|
|
48
|
+
headers: h,
|
|
49
|
+
body: body ?? null,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
async doJSON(method, endpoint, query, body, contentType) {
|
|
53
|
+
const resp = await this.doRaw(method, endpoint, query, body, contentType);
|
|
54
|
+
await ensureSuccess(resp, method, endpoint);
|
|
55
|
+
return (await resp.json());
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=core.js.map
|
package/dist/core.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ClientCore } from "./core.js";
|
|
2
|
+
import type { DirectDownloadURLRequest, DirectDownloadURLResponse } from "./types.js";
|
|
3
|
+
export declare class DownloadsClient {
|
|
4
|
+
private readonly core;
|
|
5
|
+
constructor(core: ClientCore);
|
|
6
|
+
/** Mint a short-lived direct GET URL for a file or directory download. */
|
|
7
|
+
createDirectURL(req: DirectDownloadURLRequest): Promise<DirectDownloadURLResponse>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=downloads.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"downloads.d.ts","sourceRoot":"","sources":["../src/downloads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEtF,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C,0EAA0E;IACpE,eAAe,CAAC,GAAG,EAAE,wBAAwB,GAAG,OAAO,CAAC,yBAAyB,CAAC;CASzF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export class DownloadsClient {
|
|
2
|
+
core;
|
|
3
|
+
constructor(core) {
|
|
4
|
+
this.core = core;
|
|
5
|
+
}
|
|
6
|
+
/** Mint a short-lived direct GET URL for a file or directory download. */
|
|
7
|
+
async createDirectURL(req) {
|
|
8
|
+
return this.core.doJSON("POST", "/v1/downloads/direct", undefined, JSON.stringify(req), "application/json");
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=downloads.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"downloads.js","sourceRoot":"","sources":["../src/downloads.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,eAAe;IACG;IAA7B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,0EAA0E;IAC1E,KAAK,CAAC,eAAe,CAAC,GAA6B;QACjD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CACrB,MAAM,EACN,sBAAsB,EACtB,SAAS,EACT,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EACnB,kBAAkB,CACnB,CAAC;IACJ,CAAC;CACF"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ErrorResponse } from "./types.js";
|
|
2
|
+
/** Thrown when Filegate responds with a non-2xx status. */
|
|
3
|
+
export declare class FilegateError extends Error {
|
|
4
|
+
readonly status: number;
|
|
5
|
+
readonly method: string;
|
|
6
|
+
readonly path: string;
|
|
7
|
+
/** Raw response body text. Always present (may be empty). */
|
|
8
|
+
readonly body: string;
|
|
9
|
+
/** Parsed `{ error, existingId?, existingPath? }` envelope when the body
|
|
10
|
+
* was valid JSON in the documented shape. Use this for diagnostic fields
|
|
11
|
+
* on 409 — `existingId` and `existingPath` give you everything you need
|
|
12
|
+
* to render a "what should we do?" prompt. `undefined` if the body was
|
|
13
|
+
* empty or not parseable as that shape. */
|
|
14
|
+
readonly errorResponse?: ErrorResponse;
|
|
15
|
+
constructor(status: number, message: string, method: string, path: string, body: string, errorResponse?: ErrorResponse);
|
|
16
|
+
}
|
|
17
|
+
export declare function ensureSuccess(resp: Response, method: string, path: string): Promise<void>;
|
|
18
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,2DAA2D;AAC3D,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;+CAI2C;IAC3C,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;gBAGrC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,aAAa;CAUhC;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAe/F"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/** Thrown when Filegate responds with a non-2xx status. */
|
|
2
|
+
export class FilegateError extends Error {
|
|
3
|
+
status;
|
|
4
|
+
method;
|
|
5
|
+
path;
|
|
6
|
+
/** Raw response body text. Always present (may be empty). */
|
|
7
|
+
body;
|
|
8
|
+
/** Parsed `{ error, existingId?, existingPath? }` envelope when the body
|
|
9
|
+
* was valid JSON in the documented shape. Use this for diagnostic fields
|
|
10
|
+
* on 409 — `existingId` and `existingPath` give you everything you need
|
|
11
|
+
* to render a "what should we do?" prompt. `undefined` if the body was
|
|
12
|
+
* empty or not parseable as that shape. */
|
|
13
|
+
errorResponse;
|
|
14
|
+
constructor(status, message, method, path, body, errorResponse) {
|
|
15
|
+
super(`filegate api error (${status}): ${message}`);
|
|
16
|
+
this.name = "FilegateError";
|
|
17
|
+
this.status = status;
|
|
18
|
+
this.method = method;
|
|
19
|
+
this.path = path;
|
|
20
|
+
this.body = body;
|
|
21
|
+
this.errorResponse = errorResponse;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export async function ensureSuccess(resp, method, path) {
|
|
25
|
+
if (resp.ok)
|
|
26
|
+
return;
|
|
27
|
+
const body = await resp.text().catch(() => "");
|
|
28
|
+
let message = resp.statusText || "request failed";
|
|
29
|
+
let parsed;
|
|
30
|
+
try {
|
|
31
|
+
const obj = JSON.parse(body);
|
|
32
|
+
if (obj && typeof obj.error === "string") {
|
|
33
|
+
parsed = obj;
|
|
34
|
+
message = obj.error;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
// body wasn't JSON; fall back to statusText
|
|
39
|
+
}
|
|
40
|
+
throw new FilegateError(resp.status, message, method, path, body, parsed);
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA,2DAA2D;AAC3D,MAAM,OAAO,aAAc,SAAQ,KAAK;IAC7B,MAAM,CAAS;IACf,MAAM,CAAS;IACf,IAAI,CAAS;IACtB,6DAA6D;IACpD,IAAI,CAAS;IACtB;;;;+CAI2C;IAClC,aAAa,CAAiB;IAEvC,YACE,MAAc,EACd,OAAe,EACf,MAAc,EACd,IAAY,EACZ,IAAY,EACZ,aAA6B;QAE7B,KAAK,CAAC,uBAAuB,MAAM,MAAM,OAAO,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAc,EAAE,MAAc,EAAE,IAAY;IAC9E,IAAI,IAAI,CAAC,EAAE;QAAE,OAAO;IACpB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAC/C,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,IAAI,gBAAgB,CAAC;IAClD,IAAI,MAAiC,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAkB,CAAC;QAC9C,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACzC,MAAM,GAAG,GAAG,CAAC;YACb,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,4CAA4C;IAC9C,CAAC;IACD,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC5E,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ClientCore } from "./core.js";
|
|
2
|
+
import type { IndexResolveManyResponse, Node, OKResponse } from "./types.js";
|
|
3
|
+
export declare class IndexClient {
|
|
4
|
+
private readonly core;
|
|
5
|
+
constructor(core: ClientCore);
|
|
6
|
+
/** Trigger a full index rescan. */
|
|
7
|
+
rescan(): Promise<OKResponse>;
|
|
8
|
+
/** Resolve a single virtual path to a node. */
|
|
9
|
+
resolvePath(path: string): Promise<Node | null>;
|
|
10
|
+
/** Resolve multiple virtual paths to nodes. */
|
|
11
|
+
resolvePaths(paths: string[]): Promise<IndexResolveManyResponse>;
|
|
12
|
+
/** Resolve a single node ID. */
|
|
13
|
+
resolveId(id: string): Promise<Node | null>;
|
|
14
|
+
/** Resolve multiple node IDs. */
|
|
15
|
+
resolveIds(ids: string[]): Promise<IndexResolveManyResponse>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=index-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-client.d.ts","sourceRoot":"","sources":["../src/index-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,EACV,wBAAwB,EAExB,IAAI,EACJ,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C,mCAAmC;IAC7B,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC;IAInC,+CAA+C;IACzC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAWrD,+CAA+C;IACzC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAUtE,gCAAgC;IAC1B,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAWjD,iCAAiC;IAC3B,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC;CASnE"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export class IndexClient {
|
|
2
|
+
core;
|
|
3
|
+
constructor(core) {
|
|
4
|
+
this.core = core;
|
|
5
|
+
}
|
|
6
|
+
/** Trigger a full index rescan. */
|
|
7
|
+
async rescan() {
|
|
8
|
+
return this.core.doJSON("POST", "/v1/index/rescan");
|
|
9
|
+
}
|
|
10
|
+
/** Resolve a single virtual path to a node. */
|
|
11
|
+
async resolvePath(path) {
|
|
12
|
+
const resp = await this.core.doJSON("POST", "/v1/index/resolve", undefined, JSON.stringify({ path }), "application/json");
|
|
13
|
+
return resp.item;
|
|
14
|
+
}
|
|
15
|
+
/** Resolve multiple virtual paths to nodes. */
|
|
16
|
+
async resolvePaths(paths) {
|
|
17
|
+
return this.core.doJSON("POST", "/v1/index/resolve", undefined, JSON.stringify({ paths }), "application/json");
|
|
18
|
+
}
|
|
19
|
+
/** Resolve a single node ID. */
|
|
20
|
+
async resolveId(id) {
|
|
21
|
+
const resp = await this.core.doJSON("POST", "/v1/index/resolve", undefined, JSON.stringify({ id }), "application/json");
|
|
22
|
+
return resp.item;
|
|
23
|
+
}
|
|
24
|
+
/** Resolve multiple node IDs. */
|
|
25
|
+
async resolveIds(ids) {
|
|
26
|
+
return this.core.doJSON("POST", "/v1/index/resolve", undefined, JSON.stringify({ ids }), "application/json");
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=index-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-client.js","sourceRoot":"","sources":["../src/index-client.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,WAAW;IACO;IAA7B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,mCAAmC;IACnC,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAa,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAClE,CAAC;IAED,+CAA+C;IAC/C,KAAK,CAAC,WAAW,CAAC,IAAY;QAC5B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CACjC,MAAM,EACN,mBAAmB,EACnB,SAAS,EACT,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,EACxB,kBAAkB,CACnB,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,+CAA+C;IAC/C,KAAK,CAAC,YAAY,CAAC,KAAe;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CACrB,MAAM,EACN,mBAAmB,EACnB,SAAS,EACT,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,EACzB,kBAAkB,CACnB,CAAC;IACJ,CAAC;IAED,gCAAgC;IAChC,KAAK,CAAC,SAAS,CAAC,EAAU;QACxB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CACjC,MAAM,EACN,mBAAmB,EACnB,SAAS,EACT,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,EACtB,kBAAkB,CACnB,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,iCAAiC;IACjC,KAAK,CAAC,UAAU,CAAC,GAAa;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CACrB,MAAM,EACN,mBAAmB,EACnB,SAAS,EACT,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,EACvB,kBAAkB,CACnB,CAAC;IACJ,CAAC;CACF"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export { Filegate, filegate, type FilegateConfig } from "./client.js";
|
|
2
|
+
export { ActivityClient, type ActivityListConfig } from "./activity.js";
|
|
3
|
+
export { CapabilitiesClient } from "./capabilities.js";
|
|
4
|
+
export { DownloadsClient } from "./downloads.js";
|
|
5
|
+
export { FilegateError } from "./errors.js";
|
|
6
|
+
export type { FetchImpl } from "./core.js";
|
|
7
|
+
export type { GetPathOptions, PathPutResponse, PutPathOptions } from "./paths.js";
|
|
8
|
+
export type { ThumbnailOptions } from "./nodes.js";
|
|
9
|
+
export { directUploads, upload, uploadDirect, type BrowserUploadAllowItem, type BrowserUploadAllowRequest, type BrowserUploadAllowResponse, type BrowserUploadAllowResult, type BrowserUploadConfig, type BrowserUploadConflictMode, type BrowserUploadEvent, type BrowserUploadFile, type BrowserUploadRequest, type BrowserUploadResult, type BrowserUploadSegment, type DirectUploadFinish, type DirectUploadOptions, type DirectUploadResult, type DirectUploadSegmentRequest, type DirectUploadSessionRequest, type UploadSessionAbortRequest, type UploadSessionCommitRequest, type UploadSessionPutSegmentRequest, type UploadSessionStatusRequest, } from "./uploads.js";
|
|
10
|
+
export type { GlobOptions } from "./search.js";
|
|
11
|
+
export type { ListVersionsOptions, ListVersionsResponse, RestoreOptions, VersionPinRequest, VersionResponse, VersionRestoreRequest, VersionRestoreResponse, VersionSnapshotRequest, } from "./versions.js";
|
|
12
|
+
export type { FileConflictMode, FingerprintMode, MkdirConflictMode, UploadSessionConflictMode } from "./types.js";
|
|
13
|
+
export type { ActivityActor, ActivityEvent, ActivityListResponse, ActivityTarget, DirectUploadURLRequest, DirectUploadURLResponse, DirectDownloadURLRequest, DirectDownloadURLResponse, CapabilitiesResponse, ErrorResponse, GlobSearchError, GlobSearchMeta, GlobSearchPath, GlobSearchResponse, IndexResolveManyResponse, IndexResolveRequest, IndexResolveSingleResponse, MkdirRequest, Node, NodeListResponse, OKResponse, Ownership, OwnershipView, StatsCache, StatsDisk, StatsIndex, StatsMount, StatsResponse, StatsSystem, TransferRequest, TransferResponse, UploadSegmentResponse, UploadCapabilities, UploadSessionBatchCreateRequest, UploadSessionBatchCreateResponse, UploadSessionCommitResponse, UploadSessionCreateRequest, UploadSessionDirect, UploadSessionDirectRequest, UploadSessionResponse, UploadSessionSegment, UpdateNodeRequest, } from "./types.js";
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAClF,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EACL,aAAa,EACb,MAAM,EACN,YAAY,EACZ,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,8BAA8B,EACnC,KAAK,0BAA0B,GAChC,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EACV,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AAEvB,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAMlH,YAAY,EACV,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,EACnB,0BAA0B,EAC1B,YAAY,EACZ,IAAI,EACJ,gBAAgB,EAChB,UAAU,EACV,SAAS,EACT,aAAa,EACb,UAAU,EACV,SAAS,EACT,UAAU,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,+BAA+B,EAC/B,gCAAgC,EAChC,2BAA2B,EAC3B,0BAA0B,EAC1B,mBAAmB,EACnB,0BAA0B,EAC1B,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { Filegate, filegate } from "./client.js";
|
|
2
|
+
export { ActivityClient } from "./activity.js";
|
|
3
|
+
export { CapabilitiesClient } from "./capabilities.js";
|
|
4
|
+
export { DownloadsClient } from "./downloads.js";
|
|
5
|
+
export { FilegateError } from "./errors.js";
|
|
6
|
+
export { directUploads, upload, uploadDirect, } from "./uploads.js";
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAuB,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,cAAc,EAA2B,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAK5C,OAAO,EACL,aAAa,EACb,MAAM,EACN,YAAY,GAqBb,MAAM,cAAc,CAAC"}
|
package/dist/nodes.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ClientCore } from "./core.js";
|
|
2
|
+
import type { GetPathOptions } from "./paths.js";
|
|
3
|
+
import type { MkdirRequest, Node, UpdateNodeRequest } from "./types.js";
|
|
4
|
+
export interface ThumbnailOptions {
|
|
5
|
+
size?: number;
|
|
6
|
+
}
|
|
7
|
+
export declare class NodesClient {
|
|
8
|
+
private readonly core;
|
|
9
|
+
constructor(core: ClientCore);
|
|
10
|
+
/** Get metadata for a node by ID. For directories, children can be paged. */
|
|
11
|
+
get(id: string, opts?: GetPathOptions): Promise<Node>;
|
|
12
|
+
/** Stream file content or tar archive (for directories). Returns raw Response. */
|
|
13
|
+
contentRaw(id: string, opts?: {
|
|
14
|
+
inline?: boolean;
|
|
15
|
+
}): Promise<Response>;
|
|
16
|
+
/** Replace content of a file node. */
|
|
17
|
+
putContent(id: string, data: BodyInit, contentType?: string): Promise<Node>;
|
|
18
|
+
/** Create a subdirectory under a parent node. */
|
|
19
|
+
mkdir(parentId: string, req: MkdirRequest): Promise<Node>;
|
|
20
|
+
/** Update node metadata (rename and/or ownership). */
|
|
21
|
+
patch(id: string, req: UpdateNodeRequest, recursiveOwnership?: boolean): Promise<Node>;
|
|
22
|
+
/** Delete a node and its subtree. */
|
|
23
|
+
delete(id: string): Promise<void>;
|
|
24
|
+
/** Get a thumbnail. Returns raw Response with image/jpeg body. */
|
|
25
|
+
thumbnailRaw(id: string, opts?: ThumbnailOptions): Promise<Response>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=nodes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../src/nodes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAExE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAUD,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C,6EAA6E;IACvE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3D,kFAAkF;IAC5E,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,CAAC;IAO5E,sCAAsC;IAChC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWjF,iDAAiD;IAC3C,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAW/D,sDAAsD;IAChD,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAa5F,qCAAqC;IAC/B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOvC,kEAAkE;IAC5D,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;CAM3E"}
|
package/dist/nodes.js
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { ensureSuccess } from "./errors.js";
|
|
2
|
+
function getQuery(opts) {
|
|
3
|
+
const q = {};
|
|
4
|
+
if (opts?.pageSize)
|
|
5
|
+
q["pageSize"] = String(opts.pageSize);
|
|
6
|
+
if (opts?.cursor)
|
|
7
|
+
q["cursor"] = opts.cursor;
|
|
8
|
+
if (opts?.computeRecursiveSizes)
|
|
9
|
+
q["computeRecursiveSizes"] = "true";
|
|
10
|
+
return q;
|
|
11
|
+
}
|
|
12
|
+
export class NodesClient {
|
|
13
|
+
core;
|
|
14
|
+
constructor(core) {
|
|
15
|
+
this.core = core;
|
|
16
|
+
}
|
|
17
|
+
/** Get metadata for a node by ID. For directories, children can be paged. */
|
|
18
|
+
async get(id, opts) {
|
|
19
|
+
if (!id.trim())
|
|
20
|
+
throw new Error("id is required");
|
|
21
|
+
return this.core.doJSON("GET", `/v1/nodes/${encodeURIComponent(id)}`, getQuery(opts));
|
|
22
|
+
}
|
|
23
|
+
/** Stream file content or tar archive (for directories). Returns raw Response. */
|
|
24
|
+
async contentRaw(id, opts) {
|
|
25
|
+
if (!id.trim())
|
|
26
|
+
throw new Error("id is required");
|
|
27
|
+
const q = {};
|
|
28
|
+
if (opts?.inline)
|
|
29
|
+
q["inline"] = "true";
|
|
30
|
+
return this.core.doRaw("GET", `/v1/nodes/${encodeURIComponent(id)}/content`, q);
|
|
31
|
+
}
|
|
32
|
+
/** Replace content of a file node. */
|
|
33
|
+
async putContent(id, data, contentType) {
|
|
34
|
+
if (!id.trim())
|
|
35
|
+
throw new Error("id is required");
|
|
36
|
+
return this.core.doJSON("PUT", `/v1/nodes/${encodeURIComponent(id)}`, undefined, data, contentType ?? "application/octet-stream");
|
|
37
|
+
}
|
|
38
|
+
/** Create a subdirectory under a parent node. */
|
|
39
|
+
async mkdir(parentId, req) {
|
|
40
|
+
if (!parentId.trim())
|
|
41
|
+
throw new Error("parent id is required");
|
|
42
|
+
return this.core.doJSON("POST", `/v1/nodes/${encodeURIComponent(parentId)}/mkdir`, undefined, JSON.stringify(req), "application/json");
|
|
43
|
+
}
|
|
44
|
+
/** Update node metadata (rename and/or ownership). */
|
|
45
|
+
async patch(id, req, recursiveOwnership) {
|
|
46
|
+
if (!id.trim())
|
|
47
|
+
throw new Error("id is required");
|
|
48
|
+
const q = {};
|
|
49
|
+
if (recursiveOwnership !== undefined)
|
|
50
|
+
q["recursiveOwnership"] = String(recursiveOwnership);
|
|
51
|
+
return this.core.doJSON("PATCH", `/v1/nodes/${encodeURIComponent(id)}`, q, JSON.stringify(req), "application/json");
|
|
52
|
+
}
|
|
53
|
+
/** Delete a node and its subtree. */
|
|
54
|
+
async delete(id) {
|
|
55
|
+
if (!id.trim())
|
|
56
|
+
throw new Error("id is required");
|
|
57
|
+
const endpoint = `/v1/nodes/${encodeURIComponent(id)}`;
|
|
58
|
+
const resp = await this.core.doRaw("DELETE", endpoint);
|
|
59
|
+
await ensureSuccess(resp, "DELETE", endpoint);
|
|
60
|
+
}
|
|
61
|
+
/** Get a thumbnail. Returns raw Response with image/jpeg body. */
|
|
62
|
+
async thumbnailRaw(id, opts) {
|
|
63
|
+
if (!id.trim())
|
|
64
|
+
throw new Error("id is required");
|
|
65
|
+
const q = {};
|
|
66
|
+
if (opts?.size)
|
|
67
|
+
q["size"] = String(opts.size);
|
|
68
|
+
return this.core.doRaw("GET", `/v1/nodes/${encodeURIComponent(id)}/thumbnail`, q);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=nodes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../src/nodes.ts"],"names":[],"mappings":"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"}
|