@xgsd/artifact-sdk 0.0.3 → 0.0.5
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/index.d.ts +2 -2
- package/dist/index.js +12 -10
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
type Ref = {
|
|
2
2
|
group: string;
|
|
3
3
|
key: string;
|
|
4
|
-
method: "get" | "put";
|
|
4
|
+
method: "get" | "put" | "delete";
|
|
5
5
|
contentType?: string;
|
|
6
6
|
};
|
|
7
7
|
declare class ArtifactStorage {
|
|
8
8
|
private readonly url;
|
|
9
9
|
private readonly accessToken?;
|
|
10
10
|
constructor(url: string, accessToken?: string | undefined);
|
|
11
|
-
|
|
11
|
+
getSignedUrl(ref: Ref): Promise<{
|
|
12
12
|
url: string;
|
|
13
13
|
method: string;
|
|
14
14
|
}>;
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// src/index.ts
|
|
2
2
|
import { createReadStream, createWriteStream } from "fs";
|
|
3
|
+
import { stat } from "fs/promises";
|
|
3
4
|
import { pipeline } from "stream/promises";
|
|
4
5
|
function parse(q) {
|
|
5
6
|
const idx = q.indexOf(":");
|
|
@@ -81,13 +82,15 @@ var ArtifactStorage = class {
|
|
|
81
82
|
method: "put",
|
|
82
83
|
contentType
|
|
83
84
|
});
|
|
85
|
+
const file = await stat(localPath);
|
|
84
86
|
const stream = createReadStream(localPath);
|
|
85
87
|
const res = await fetch(url, {
|
|
86
88
|
method,
|
|
87
89
|
body: stream,
|
|
88
90
|
duplex: "half",
|
|
89
91
|
headers: {
|
|
90
|
-
"content-type": contentType
|
|
92
|
+
"content-type": contentType,
|
|
93
|
+
"content-length": file.size
|
|
91
94
|
}
|
|
92
95
|
});
|
|
93
96
|
if (res.status >= 400) {
|
|
@@ -168,15 +171,13 @@ var ArtifactStorage = class {
|
|
|
168
171
|
if (!ref) {
|
|
169
172
|
throw new Error("invalid remote path");
|
|
170
173
|
}
|
|
171
|
-
const url =
|
|
174
|
+
const { url } = await this.getSignedUrl({
|
|
175
|
+
group: ref.group,
|
|
176
|
+
key: ref.key,
|
|
177
|
+
method: "delete"
|
|
178
|
+
});
|
|
172
179
|
const res = await fetch(url, {
|
|
173
|
-
method: "
|
|
174
|
-
body: JSON.stringify(ref),
|
|
175
|
-
headers: {
|
|
176
|
-
authorization: `Bearer ${this.accessToken}`,
|
|
177
|
-
"content-type": "application/json",
|
|
178
|
-
accept: "application/json"
|
|
179
|
-
}
|
|
180
|
+
method: "delete"
|
|
180
181
|
});
|
|
181
182
|
if (res.status >= 400) {
|
|
182
183
|
throw new Error(`http-${res.status}`);
|
|
@@ -196,7 +197,8 @@ var ArtifactStorage = class {
|
|
|
196
197
|
method: "POST",
|
|
197
198
|
body: JSON.stringify({
|
|
198
199
|
group: ref.group,
|
|
199
|
-
prefix: ref.key
|
|
200
|
+
prefix: ref.key,
|
|
201
|
+
cache: false
|
|
200
202
|
}),
|
|
201
203
|
headers: {
|
|
202
204
|
authorization: `Bearer ${this.accessToken}`,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { createReadStream, createWriteStream } from \"node:fs\";\nimport { pipeline } from \"node:stream/promises\";\n\ntype Ref = {\n group: string;\n key: string;\n method: \"get\" | \"put\";\n contentType?: string;\n};\n\nfunction parse(q: string): {\n group: string;\n key: string;\n} | null {\n const idx = q.indexOf(\":\");\n\n if (idx === -1) {\n return null;\n }\n\n const group = q.slice(0, idx);\n const key = q.slice(idx + 1);\n\n if (!group || !key) {\n return null;\n }\n\n return {\n group,\n key,\n };\n}\n\nexport class ArtifactStorage {\n constructor(\n private readonly url: string,\n private readonly accessToken?: string,\n ) {}\n\n protected async getSignedUrl(ref: Ref): Promise<{\n url: string;\n method: string;\n }> {\n const url = `${this.url}/sign`;\n\n const res = await fetch(url, {\n method: \"POST\",\n body: JSON.stringify(ref),\n headers: {\n authorization: `Bearer ${this.accessToken}`,\n \"content-type\": \"application/json\",\n accept: \"application/json\",\n },\n });\n\n if (res.status >= 400) {\n throw new Error(`http-${res.status}`);\n }\n\n const json = await res.json();\n\n return {\n url: json.url,\n method: json.method,\n };\n }\n\n // -----------------------\n // JSON UPLOAD\n // -----------------------\n\n async uploadJson(\n path: string,\n obj: Record<string, unknown>,\n ): Promise<{ ok: true }> {\n const ref = parse(path);\n\n if (!ref) {\n throw new Error(\"invalid remote path\");\n }\n\n const { url, method } = await this.getSignedUrl({\n ...ref,\n method: \"put\",\n contentType: \"application/json\",\n });\n\n const res = await fetch(url, {\n method,\n body: JSON.stringify(obj),\n headers: {\n \"content-type\": \"application/json\",\n },\n });\n\n if (res.status >= 400) {\n throw new Error(`http-${res.status}`);\n }\n\n return { ok: true };\n }\n\n // -----------------------\n // FILE UPLOAD\n // -----------------------\n\n async uploadFile(\n localPath: string,\n remotePath: string,\n contentType = \"application/octet-stream\",\n ): Promise<{ ok: true }> {\n const ref = parse(remotePath);\n\n if (!ref) {\n throw new Error(\"invalid remote path\");\n }\n\n const { url, method } = await this.getSignedUrl({\n ...ref,\n method: \"put\",\n contentType,\n });\n\n const stream = createReadStream(localPath);\n\n const res = await fetch(url, {\n method,\n body: stream as any,\n duplex: \"half\",\n headers: {\n \"content-type\": contentType,\n },\n } as any);\n\n if (res.status >= 400) {\n throw new Error(`http-${res.status}`);\n }\n\n return { ok: true };\n }\n\n // -----------------------\n // JSON DOWNLOAD\n // -----------------------\n\n async downloadJson<T = Record<string, unknown>>(path: string): Promise<T> {\n const ref = parse(path);\n\n if (!ref) {\n throw new Error(\"invalid remote path\");\n }\n\n const { url, method } = await this.getSignedUrl({\n ...ref,\n method: \"get\",\n });\n\n const res = await fetch(url, {\n method,\n });\n\n if (res.status >= 400) {\n throw new Error(`http-${res.status}`);\n }\n\n return (await res.json()) as T;\n }\n\n // -----------------------\n // FILE DOWNLOAD\n // -----------------------\n\n async downloadFile(remotePath: string, localPath: string): Promise<void> {\n const ref = parse(remotePath);\n\n if (!ref) {\n throw new Error(\"invalid remote path\");\n }\n\n const { url, method } = await this.getSignedUrl({\n ...ref,\n method: \"get\",\n });\n\n const res = await fetch(url, {\n method,\n });\n\n if (res.status >= 400) {\n throw new Error(`http-${res.status}`);\n }\n\n if (!res.body) {\n throw new Error(\"missing response body\");\n }\n\n const file = createWriteStream(localPath);\n\n await pipeline(res.body as any, file);\n }\n\n // -----------------------\n // EXISTS\n // -----------------------\n\n async exists(path: string): Promise<boolean> {\n try {\n const ref = parse(path);\n\n if (!ref) {\n throw new Error(\"invalid remote path\");\n }\n\n const { url } = await this.getSignedUrl({\n ...ref,\n method: \"get\",\n });\n\n const res = await fetch(url, {\n method: \"HEAD\",\n });\n\n return res.status < 400;\n } catch {\n return false;\n }\n }\n\n // -----------------------\n // DELETE\n // -----------------------\n\n async delete(path: string): Promise<{ ok: true }> {\n const ref = parse(path);\n\n if (!ref) {\n throw new Error(\"invalid remote path\");\n }\n\n const url = `${this.url}/delete`;\n\n const res = await fetch(url, {\n method: \"POST\",\n body: JSON.stringify(ref),\n headers: {\n authorization: `Bearer ${this.accessToken}`,\n \"content-type\": \"application/json\",\n accept: \"application/json\",\n },\n });\n\n if (res.status >= 400) {\n throw new Error(`http-${res.status}`);\n }\n\n return { ok: true };\n }\n\n // -----------------------\n // LIST\n // -----------------------\n\n async list(prefix: string): Promise<string[]> {\n const ref = parse(prefix);\n\n if (!ref) {\n throw new Error(\"invalid remote path\");\n }\n\n const url = `${this.url}/list`;\n\n const res = await fetch(url, {\n method: \"POST\",\n body: JSON.stringify({\n group: ref.group,\n prefix: ref.key,\n }),\n headers: {\n authorization: `Bearer ${this.accessToken}`,\n \"content-type\": \"application/json\",\n accept: \"application/json\",\n },\n });\n\n if (res.status >= 400) {\n throw new Error(`http-${res.status}`);\n }\n\n return await res.json();\n }\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { createReadStream, createWriteStream } from \"node:fs\";\nimport { stat } from \"node:fs/promises\";\nimport { pipeline } from \"node:stream/promises\";\n\ntype Ref = {\n group: string;\n key: string;\n method: \"get\" | \"put\" | \"delete\";\n contentType?: string;\n};\n\nfunction parse(q: string): {\n group: string;\n key: string;\n} | null {\n const idx = q.indexOf(\":\");\n\n if (idx === -1) {\n return null;\n }\n\n const group = q.slice(0, idx);\n const key = q.slice(idx + 1);\n\n if (!group || !key) {\n return null;\n }\n\n return {\n group,\n key,\n };\n}\n\nexport class ArtifactStorage {\n constructor(\n private readonly url: string,\n private readonly accessToken?: string,\n ) {}\n\n async getSignedUrl(ref: Ref): Promise<{\n url: string;\n method: string;\n }> {\n const url = `${this.url}/sign`;\n\n const res = await fetch(url, {\n method: \"POST\",\n body: JSON.stringify(ref),\n headers: {\n authorization: `Bearer ${this.accessToken}`,\n \"content-type\": \"application/json\",\n accept: \"application/json\",\n },\n });\n\n if (res.status >= 400) {\n throw new Error(`http-${res.status}`);\n }\n\n const json = await res.json();\n\n return {\n url: json.url,\n method: json.method,\n };\n }\n\n // -----------------------\n // JSON UPLOAD\n // -----------------------\n\n async uploadJson(\n path: string,\n obj: Record<string, unknown>,\n ): Promise<{ ok: true }> {\n const ref = parse(path);\n\n if (!ref) {\n throw new Error(\"invalid remote path\");\n }\n\n const { url, method } = await this.getSignedUrl({\n ...ref,\n method: \"put\",\n contentType: \"application/json\",\n });\n\n const res = await fetch(url, {\n method,\n body: JSON.stringify(obj),\n headers: {\n \"content-type\": \"application/json\",\n },\n });\n\n if (res.status >= 400) {\n throw new Error(`http-${res.status}`);\n }\n\n return { ok: true };\n }\n\n // -----------------------\n // FILE UPLOAD\n // -----------------------\n\n async uploadFile(\n localPath: string,\n remotePath: string,\n contentType = \"application/octet-stream\",\n ): Promise<{ ok: true }> {\n const ref = parse(remotePath);\n\n if (!ref) {\n throw new Error(\"invalid remote path\");\n }\n\n const { url, method } = await this.getSignedUrl({\n ...ref,\n method: \"put\",\n contentType,\n });\n\n const file = await stat(localPath);\n const stream = createReadStream(localPath);\n\n const res = await fetch(url, {\n method,\n body: stream as any,\n duplex: \"half\",\n headers: {\n \"content-type\": contentType,\n \"content-length\": file.size,\n },\n } as any);\n\n if (res.status >= 400) {\n throw new Error(`http-${res.status}`);\n }\n\n return { ok: true };\n }\n\n // -----------------------\n // JSON DOWNLOAD\n // -----------------------\n\n async downloadJson<T = Record<string, unknown>>(path: string): Promise<T> {\n const ref = parse(path);\n\n if (!ref) {\n throw new Error(\"invalid remote path\");\n }\n\n const { url, method } = await this.getSignedUrl({\n ...ref,\n method: \"get\",\n });\n\n const res = await fetch(url, {\n method,\n });\n\n if (res.status >= 400) {\n throw new Error(`http-${res.status}`);\n }\n\n return (await res.json()) as T;\n }\n\n // -----------------------\n // FILE DOWNLOAD\n // -----------------------\n\n async downloadFile(remotePath: string, localPath: string): Promise<void> {\n const ref = parse(remotePath);\n\n if (!ref) {\n throw new Error(\"invalid remote path\");\n }\n\n const { url, method } = await this.getSignedUrl({\n ...ref,\n method: \"get\",\n });\n\n const res = await fetch(url, {\n method,\n });\n\n if (res.status >= 400) {\n throw new Error(`http-${res.status}`);\n }\n\n if (!res.body) {\n throw new Error(\"missing response body\");\n }\n\n const file = createWriteStream(localPath);\n\n await pipeline(res.body as any, file);\n }\n\n // -----------------------\n // EXISTS\n // -----------------------\n\n async exists(path: string): Promise<boolean> {\n try {\n const ref = parse(path);\n\n if (!ref) {\n throw new Error(\"invalid remote path\");\n }\n\n const { url } = await this.getSignedUrl({\n ...ref,\n method: \"get\",\n });\n\n const res = await fetch(url, {\n method: \"HEAD\",\n });\n\n return res.status < 400;\n } catch {\n return false;\n }\n }\n\n // -----------------------\n // DELETE\n // -----------------------\n\n async delete(path: string): Promise<{ ok: true }> {\n const ref = parse(path);\n\n if (!ref) {\n throw new Error(\"invalid remote path\");\n }\n\n const { url } = await this.getSignedUrl({\n group: ref.group,\n key: ref.key,\n method: \"delete\",\n });\n\n const res = await fetch(url, {\n method: \"delete\",\n });\n\n if (res.status >= 400) {\n throw new Error(`http-${res.status}`);\n }\n\n return { ok: true };\n }\n\n // -----------------------\n // LIST\n // -----------------------\n\n async list(prefix: string): Promise<string[]> {\n const ref = parse(prefix);\n\n if (!ref) {\n throw new Error(\"invalid remote path\");\n }\n\n const url = `${this.url}/list`;\n\n const res = await fetch(url, {\n method: \"POST\",\n body: JSON.stringify({\n group: ref.group,\n prefix: ref.key,\n cache: false,\n }),\n headers: {\n authorization: `Bearer ${this.accessToken}`,\n \"content-type\": \"application/json\",\n accept: \"application/json\",\n },\n });\n\n if (res.status >= 400) {\n throw new Error(`http-${res.status}`);\n }\n\n return await res.json();\n }\n}\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xgsd/artifact-sdk",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.5",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"scripts": {
|
|
8
|
-
"build": "tsup"
|
|
8
|
+
"build": "rm -rf ./dist && tsup"
|
|
9
9
|
},
|
|
10
10
|
"devDependencies": {
|
|
11
11
|
"@types/node": "^25.9.1",
|