@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.
Files changed (85) hide show
  1. package/dist/activity.d.ts +15 -0
  2. package/dist/activity.d.ts.map +1 -0
  3. package/dist/activity.js +21 -0
  4. package/dist/activity.js.map +1 -0
  5. package/dist/capabilities.d.ts +9 -0
  6. package/dist/capabilities.d.ts.map +1 -0
  7. package/dist/capabilities.js +11 -0
  8. package/dist/capabilities.js.map +1 -0
  9. package/dist/client.d.ts +37 -0
  10. package/dist/client.d.ts.map +1 -0
  11. package/dist/client.js +77 -0
  12. package/dist/client.js.map +1 -0
  13. package/dist/core.d.ts +26 -0
  14. package/dist/core.d.ts.map +1 -0
  15. package/dist/core.js +58 -0
  16. package/dist/core.js.map +1 -0
  17. package/dist/downloads.d.ts +9 -0
  18. package/dist/downloads.d.ts.map +1 -0
  19. package/dist/downloads.js +11 -0
  20. package/dist/downloads.js.map +1 -0
  21. package/dist/errors.d.ts +18 -0
  22. package/dist/errors.d.ts.map +1 -0
  23. package/dist/errors.js +42 -0
  24. package/dist/errors.js.map +1 -0
  25. package/dist/index-client.d.ts +17 -0
  26. package/dist/index-client.d.ts.map +1 -0
  27. package/dist/index-client.js +29 -0
  28. package/dist/index-client.js.map +1 -0
  29. package/dist/index.d.ts +14 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +7 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/nodes.d.ts +27 -0
  34. package/dist/nodes.d.ts.map +1 -0
  35. package/dist/nodes.js +71 -0
  36. package/dist/nodes.js.map +1 -0
  37. package/dist/paths.d.ts +45 -0
  38. package/dist/paths.d.ts.map +1 -0
  39. package/dist/paths.js +71 -0
  40. package/dist/paths.js.map +1 -0
  41. package/dist/search.d.ts +17 -0
  42. package/dist/search.d.ts.map +1 -0
  43. package/dist/search.js +25 -0
  44. package/dist/search.js.map +1 -0
  45. package/dist/stats.d.ts +9 -0
  46. package/dist/stats.d.ts.map +1 -0
  47. package/dist/stats.js +11 -0
  48. package/dist/stats.js.map +1 -0
  49. package/dist/transfers.d.ts +9 -0
  50. package/dist/transfers.d.ts.map +1 -0
  51. package/dist/transfers.js +14 -0
  52. package/dist/transfers.js.map +1 -0
  53. package/dist/types.d.ts +285 -0
  54. package/dist/types.d.ts.map +1 -0
  55. package/dist/types.js +2 -0
  56. package/dist/types.js.map +1 -0
  57. package/dist/uploads.d.ts +246 -0
  58. package/dist/uploads.d.ts.map +1 -0
  59. package/dist/uploads.js +580 -0
  60. package/dist/uploads.js.map +1 -0
  61. package/dist/utils.d.ts +25 -0
  62. package/dist/utils.d.ts.map +1 -0
  63. package/dist/utils.js +41 -0
  64. package/dist/utils.js.map +1 -0
  65. package/dist/versions.d.ts +76 -0
  66. package/dist/versions.d.ts.map +1 -0
  67. package/dist/versions.js +82 -0
  68. package/dist/versions.js.map +1 -0
  69. package/package.json +36 -41
  70. package/LICENSE +0 -21
  71. package/README.md +0 -569
  72. package/src/client.ts +0 -436
  73. package/src/config.ts +0 -37
  74. package/src/handlers/files.ts +0 -513
  75. package/src/handlers/search.ts +0 -137
  76. package/src/handlers/thumbnail.ts +0 -148
  77. package/src/handlers/upload.ts +0 -379
  78. package/src/index.ts +0 -94
  79. package/src/lib/openapi.ts +0 -47
  80. package/src/lib/ownership.ts +0 -133
  81. package/src/lib/path.ts +0 -128
  82. package/src/lib/response.ts +0 -10
  83. package/src/lib/validator.ts +0 -21
  84. package/src/schemas.ts +0 -329
  85. package/src/utils.ts +0 -282
package/dist/utils.js ADDED
@@ -0,0 +1,41 @@
1
+ // Pure browser- and runtime-safe helpers for working with uploads.
2
+ // No HTTP, no fetch, no token — safe to import from environments that have
3
+ // no Filegate connection (e.g. a Web Worker that hashes files for upload).
4
+ /** Number of segments needed for a given total size and segment size. */
5
+ const count = (req) => {
6
+ if (req.size <= 0 || req.segmentSize <= 0)
7
+ return 0;
8
+ return Math.ceil(req.size / req.segmentSize);
9
+ };
10
+ /** [start, end) byte offsets for the given segment index. */
11
+ const bounds = (index, size, segmentSize) => {
12
+ if (index < 0)
13
+ throw new Error("index must be >= 0");
14
+ const total = count({ size, segmentSize });
15
+ if (index >= total)
16
+ throw new Error("index out of range");
17
+ const start = index * segmentSize;
18
+ return { start, end: Math.min(start + segmentSize, size) };
19
+ };
20
+ const plan = (req) => {
21
+ const total = count(req);
22
+ const out = [];
23
+ for (let index = 0; index < total; index++) {
24
+ const { start, end } = bounds(index, req.size, req.segmentSize);
25
+ out.push({ index, offset: start, size: end - start });
26
+ }
27
+ return out;
28
+ };
29
+ /** SHA-256 checksum of a Uint8Array in filegate's `sha256:<hex>` format. */
30
+ const sha256 = async (data) => {
31
+ const hash = await crypto.subtle.digest("SHA-256", data);
32
+ const hex = Array.from(new Uint8Array(hash))
33
+ .map((b) => b.toString(16).padStart(2, "0"))
34
+ .join("");
35
+ return `sha256:${hex}`;
36
+ };
37
+ export const uploads = {
38
+ segments: { count, bounds, plan },
39
+ checksum: { sha256 },
40
+ };
41
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,2EAA2E;AAC3E,2EAA2E;AAE3E,yEAAyE;AACzE,MAAM,KAAK,GAAG,CAAC,GAA0C,EAAU,EAAE;IACnE,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,WAAW,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,6DAA6D;AAC7D,MAAM,MAAM,GAAG,CACb,KAAa,EACb,IAAY,EACZ,WAAmB,EACa,EAAE;IAClC,IAAI,KAAK,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IAC3C,IAAI,KAAK,IAAI,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,KAAK,GAAG,WAAW,CAAC;IAClC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC;AAC7D,CAAC,CAAC;AAEF,MAAM,IAAI,GAAG,CAAC,GAGb,EAA0D,EAAE;IAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,MAAM,GAAG,GAA2D,EAAE,CAAC;IACvE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;QAC3C,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;QAChE,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,4EAA4E;AAC5E,MAAM,MAAM,GAAG,KAAK,EAAE,IAAgB,EAAmB,EAAE;IACzD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CACrC,SAAS,EACT,IAAoC,CACrC,CAAC;IACF,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;SACzC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC3C,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,UAAU,GAAG,EAAE,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;IACjC,QAAQ,EAAE,EAAE,MAAM,EAAE;CACZ,CAAC"}
@@ -0,0 +1,76 @@
1
+ import { ClientCore } from "./core.js";
2
+ /** Metadata for one captured version of a file. */
3
+ export interface VersionResponse {
4
+ versionId: string;
5
+ fileId: string;
6
+ /** Capture time in unix milliseconds. */
7
+ timestamp: number;
8
+ size: number;
9
+ mode: number;
10
+ pinned: boolean;
11
+ /** Opaque label set at snapshot/pin time. May contain JSON or plain text. */
12
+ label?: string;
13
+ /** Non-zero only after the source file was deleted; the version is
14
+ * within the post-delete grace window before the pruner reclaims it. */
15
+ deletedAt?: number;
16
+ }
17
+ /** One page of versions, oldest first. */
18
+ export interface ListVersionsResponse {
19
+ items: VersionResponse[];
20
+ /** Empty when this is the final page. */
21
+ nextCursor?: string;
22
+ }
23
+ export interface VersionSnapshotRequest {
24
+ label?: string;
25
+ }
26
+ export interface VersionPinRequest {
27
+ /** null clears, undefined leaves unchanged, "" clears. */
28
+ label?: string | null;
29
+ }
30
+ export interface VersionRestoreRequest {
31
+ /** false (default) replaces source bytes in place after snapshotting
32
+ * current state. true creates a fresh sibling file. */
33
+ asNewFile?: boolean;
34
+ /** Override default `<base>-restored<ext>` for as-new restores. */
35
+ name?: string;
36
+ }
37
+ export interface VersionRestoreResponse {
38
+ node: import("./types.js").Node;
39
+ asNew: boolean;
40
+ }
41
+ export interface ListVersionsOptions {
42
+ cursor?: string;
43
+ limit?: number;
44
+ }
45
+ export interface RestoreOptions {
46
+ asNewFile?: boolean;
47
+ name?: string;
48
+ }
49
+ /**
50
+ * Per-file version history. All endpoints respond 404 with
51
+ * "versioning not supported on this mount" when the target file lives
52
+ * on a non-btrfs filesystem; callers can use that as a capability
53
+ * check without a separate flag.
54
+ */
55
+ export declare class VersionsClient {
56
+ private readonly core;
57
+ constructor(core: ClientCore);
58
+ /** List one page of versions. */
59
+ list(fileId: string, opts?: ListVersionsOptions): Promise<ListVersionsResponse>;
60
+ /** List every version, paging until the server has nothing more. */
61
+ listAll(fileId: string): Promise<VersionResponse[]>;
62
+ /** Stream version bytes. Returns the raw Response unchanged. */
63
+ contentRaw(fileId: string, versionId: string): Promise<Response>;
64
+ /** Capture current bytes as a new pinned version, ignoring cooldown. */
65
+ snapshot(fileId: string, label?: string): Promise<VersionResponse>;
66
+ /** Pin an existing version. Pass label=null to clear, omit to keep. */
67
+ pin(fileId: string, versionId: string, label?: string | null): Promise<VersionResponse>;
68
+ /** Clear the pinned flag. Label is preserved. */
69
+ unpin(fileId: string, versionId: string): Promise<VersionResponse>;
70
+ /** Restore a version. Default = in-place; opts.asNewFile=true = sibling file. */
71
+ restore(fileId: string, versionId: string, opts?: RestoreOptions): Promise<VersionRestoreResponse>;
72
+ /** Manual purge. Works on any version (incl. pinned). */
73
+ delete(fileId: string, versionId: string): Promise<void>;
74
+ private versionEndpoint;
75
+ }
76
+ //# sourceMappingURL=versions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"versions.d.ts","sourceRoot":"","sources":["../src/versions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGvC,mDAAmD;AACnD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;4EACwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,0CAA0C;AAC1C,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC;2DACuD;IACvD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,OAAO,YAAY,EAAE,IAAI,CAAC;IAChC,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C,iCAAiC;IAC3B,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAYrF,oEAAoE;IAC9D,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAYzD,gEAAgE;IAC1D,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAItE,wEAAwE;IAClE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAYxE,uEAAuE;IACjE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC;IAY7F,iDAAiD;IAC3C,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAOxE,iFAAiF;IAC3E,OAAO,CACX,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,cAAc,GACpB,OAAO,CAAC,sBAAsB,CAAC;IAalC,yDAAyD;IACnD,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM9D,OAAO,CAAC,eAAe;CAKxB"}
@@ -0,0 +1,82 @@
1
+ import { ensureSuccess } from "./errors.js";
2
+ /**
3
+ * Per-file version history. All endpoints respond 404 with
4
+ * "versioning not supported on this mount" when the target file lives
5
+ * on a non-btrfs filesystem; callers can use that as a capability
6
+ * check without a separate flag.
7
+ */
8
+ export class VersionsClient {
9
+ core;
10
+ constructor(core) {
11
+ this.core = core;
12
+ }
13
+ /** List one page of versions. */
14
+ async list(fileId, opts) {
15
+ if (!fileId.trim())
16
+ throw new Error("fileId is required");
17
+ const q = {};
18
+ if (opts?.cursor)
19
+ q["cursor"] = opts.cursor;
20
+ if (opts?.limit && opts.limit > 0)
21
+ q["limit"] = String(opts.limit);
22
+ return this.core.doJSON("GET", `/v1/nodes/${encodeURIComponent(fileId)}/versions`, q);
23
+ }
24
+ /** List every version, paging until the server has nothing more. */
25
+ async listAll(fileId) {
26
+ const out = [];
27
+ let cursor;
28
+ while (true) {
29
+ const page = await this.list(fileId, { cursor });
30
+ out.push(...page.items);
31
+ if (!page.nextCursor)
32
+ break;
33
+ cursor = page.nextCursor;
34
+ }
35
+ return out;
36
+ }
37
+ /** Stream version bytes. Returns the raw Response unchanged. */
38
+ async contentRaw(fileId, versionId) {
39
+ return this.core.doRaw("GET", this.versionEndpoint(fileId, versionId, "/content"));
40
+ }
41
+ /** Capture current bytes as a new pinned version, ignoring cooldown. */
42
+ async snapshot(fileId, label) {
43
+ if (!fileId.trim())
44
+ throw new Error("fileId is required");
45
+ const body = label ? { label } : {};
46
+ return this.core.doJSON("POST", `/v1/nodes/${encodeURIComponent(fileId)}/versions/snapshot`, undefined, JSON.stringify(body), "application/json");
47
+ }
48
+ /** Pin an existing version. Pass label=null to clear, omit to keep. */
49
+ async pin(fileId, versionId, label) {
50
+ const body = {};
51
+ if (label !== undefined)
52
+ body.label = label;
53
+ return this.core.doJSON("POST", this.versionEndpoint(fileId, versionId, "/pin"), undefined, JSON.stringify(body), "application/json");
54
+ }
55
+ /** Clear the pinned flag. Label is preserved. */
56
+ async unpin(fileId, versionId) {
57
+ return this.core.doJSON("POST", this.versionEndpoint(fileId, versionId, "/unpin"));
58
+ }
59
+ /** Restore a version. Default = in-place; opts.asNewFile=true = sibling file. */
60
+ async restore(fileId, versionId, opts) {
61
+ const body = {};
62
+ if (opts?.asNewFile)
63
+ body.asNewFile = true;
64
+ if (opts?.name)
65
+ body.name = opts.name;
66
+ return this.core.doJSON("POST", this.versionEndpoint(fileId, versionId, "/restore"), undefined, JSON.stringify(body), "application/json");
67
+ }
68
+ /** Manual purge. Works on any version (incl. pinned). */
69
+ async delete(fileId, versionId) {
70
+ const endpoint = this.versionEndpoint(fileId, versionId, "");
71
+ const resp = await this.core.doRaw("DELETE", endpoint);
72
+ await ensureSuccess(resp, "DELETE", endpoint);
73
+ }
74
+ versionEndpoint(fileId, versionId, suffix) {
75
+ if (!fileId.trim())
76
+ throw new Error("fileId is required");
77
+ if (!versionId.trim())
78
+ throw new Error("versionId is required");
79
+ return `/v1/nodes/${encodeURIComponent(fileId)}/versions/${encodeURIComponent(versionId)}${suffix}`;
80
+ }
81
+ }
82
+ //# sourceMappingURL=versions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"versions.js","sourceRoot":"","sources":["../src/versions.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,53 +1,48 @@
1
1
  {
2
2
  "name": "@valentinkolb/filegate",
3
- "version": "2.3.6",
3
+ "version": "2.5.2",
4
+ "description": "TypeScript client for the Filegate filesystem gateway",
4
5
  "type": "module",
5
- "license": "MIT",
6
- "repository": {
7
- "type": "git",
8
- "url": "https://github.com/ValentinKolb/filegate.git"
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ },
13
+ "./client": {
14
+ "types": "./dist/index.d.ts",
15
+ "import": "./dist/index.js"
16
+ },
17
+ "./utils": {
18
+ "types": "./dist/utils.d.ts",
19
+ "import": "./dist/utils.js"
20
+ }
9
21
  },
10
- "keywords": [
11
- "file-server",
12
- "file-proxy",
13
- "chunked-upload",
14
- "streaming",
15
- "bun",
16
- "hono"
17
- ],
18
22
  "files": [
19
- "src",
20
- "package.json",
21
- "README.md"
23
+ "dist"
22
24
  ],
23
25
  "scripts": {
24
- "test": "bun test --preload ./tests/setup.ts tests/lib tests/schemas.test.ts tests/config.test.ts tests/utils.test.ts",
25
- "test:watch": "bun test --preload ./tests/setup.ts --watch",
26
- "test:unit": "bun test --preload ./tests/setup.ts tests/lib tests/schemas.test.ts tests/config.test.ts tests/utils.test.ts",
27
- "test:integration": "bun test tests/integration",
28
- "test:all": "bun run test:unit && bun run test:integration"
29
- },
30
- "exports": {
31
- ".": "./src/index.ts",
32
- "./client": "./src/client.ts",
33
- "./utils": "./src/utils.ts",
34
- "./schemas": "./src/schemas.ts"
26
+ "build": "tsc",
27
+ "test": "bun test test",
28
+ "prepublishOnly": "npm run build"
35
29
  },
36
- "devDependencies": {
37
- "@types/bun": "latest"
30
+ "keywords": [
31
+ "filegate",
32
+ "filesystem",
33
+ "gateway",
34
+ "client",
35
+ "sdk"
36
+ ],
37
+ "repository": {
38
+ "type": "git",
39
+ "url": "https://github.com/ValentinKolb/filegate"
38
40
  },
39
- "peerDependencies": {
40
- "typescript": "^5"
41
+ "bugs": {
42
+ "url": "https://github.com/ValentinKolb/filegate/issues"
41
43
  },
42
- "dependencies": {
43
- "@henrygd/semaphore": "^0.1.0",
44
- "@hono/standard-validator": "^0.2.2",
45
- "@scalar/hono-api-reference": "^0.9.37",
46
- "@scalar/openapi-to-markdown": "^0.3.31",
47
- "hono": "^4.11.7",
48
- "hono-openapi": "^1.2.0",
49
- "sanitize-filename": "^1.6.3",
50
- "sharp": "^0.34.5",
51
- "zod": "^4.3.6"
44
+ "license": "MIT",
45
+ "devDependencies": {
46
+ "typescript": "^5.8"
52
47
  }
53
48
  }
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2026-Present Valentin Kolb
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.