@xgsd/artifact-sdk 0.0.3 → 0.0.4
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 +6 -8
- 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
|
@@ -168,15 +168,13 @@ var ArtifactStorage = class {
|
|
|
168
168
|
if (!ref) {
|
|
169
169
|
throw new Error("invalid remote path");
|
|
170
170
|
}
|
|
171
|
-
const url =
|
|
171
|
+
const { url } = await this.getSignedUrl({
|
|
172
|
+
group: ref.group,
|
|
173
|
+
key: ref.key,
|
|
174
|
+
method: "delete"
|
|
175
|
+
});
|
|
172
176
|
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
|
-
}
|
|
177
|
+
method: "delete"
|
|
180
178
|
});
|
|
181
179
|
if (res.status >= 400) {
|
|
182
180
|
throw new Error(`http-${res.status}`);
|
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":";AAAA,SAAS,kBAAkB,yBAAyB;AACpD,SAAS,gBAAgB;AASzB,SAAS,MAAM,GAGN;AACP,QAAM,MAAM,EAAE,QAAQ,GAAG;AAEzB,MAAI,QAAQ,IAAI;AACd,WAAO;AAAA,EACT;AAEA,QAAM,QAAQ,EAAE,MAAM,GAAG,GAAG;AAC5B,QAAM,MAAM,EAAE,MAAM,MAAM,CAAC;AAE3B,MAAI,CAAC,SAAS,CAAC,KAAK;AAClB,WAAO;AAAA,EACT;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;AAEO,IAAM,kBAAN,MAAsB;AAAA,EAC3B,YACmB,KACA,aACjB;AAFiB;AACA;AAAA,EAChB;AAAA,EAFgB;AAAA,EACA;AAAA,EAGnB,MAAgB,aAAa,KAG1B;AACD,UAAM,MAAM,GAAG,KAAK,GAAG;AAEvB,UAAM,MAAM,MAAM,MAAM,KAAK;AAAA,MAC3B,QAAQ;AAAA,MACR,MAAM,KAAK,UAAU,GAAG;AAAA,MACxB,SAAS;AAAA,QACP,eAAe,UAAU,KAAK,WAAW;AAAA,QACzC,gBAAgB;AAAA,QAChB,QAAQ;AAAA,MACV;AAAA,IACF,CAAC;AAED,QAAI,IAAI,UAAU,KAAK;AACrB,YAAM,IAAI,MAAM,QAAQ,IAAI,MAAM,EAAE;AAAA,IACtC;AAEA,UAAM,OAAO,MAAM,IAAI,KAAK;AAE5B,WAAO;AAAA,MACL,KAAK,KAAK;AAAA,MACV,QAAQ,KAAK;AAAA,IACf;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,WACJ,MACA,KACuB;AACvB,UAAM,MAAM,MAAM,IAAI;AAEtB,QAAI,CAAC,KAAK;AACR,YAAM,IAAI,MAAM,qBAAqB;AAAA,IACvC;AAEA,UAAM,EAAE,KAAK,OAAO,IAAI,MAAM,KAAK,aAAa;AAAA,MAC9C,GAAG;AAAA,MACH,QAAQ;AAAA,MACR,aAAa;AAAA,IACf,CAAC;AAED,UAAM,MAAM,MAAM,MAAM,KAAK;AAAA,MAC3B;AAAA,MACA,MAAM,KAAK,UAAU,GAAG;AAAA,MACxB,SAAS;AAAA,QACP,gBAAgB;AAAA,MAClB;AAAA,IACF,CAAC;AAED,QAAI,IAAI,UAAU,KAAK;AACrB,YAAM,IAAI,MAAM,QAAQ,IAAI,MAAM,EAAE;AAAA,IACtC;AAEA,WAAO,EAAE,IAAI,KAAK;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,WACJ,WACA,YACA,cAAc,4BACS;AACvB,UAAM,MAAM,MAAM,UAAU;AAE5B,QAAI,CAAC,KAAK;AACR,YAAM,IAAI,MAAM,qBAAqB;AAAA,IACvC;AAEA,UAAM,EAAE,KAAK,OAAO,IAAI,MAAM,KAAK,aAAa;AAAA,MAC9C,GAAG;AAAA,MACH,QAAQ;AAAA,MACR;AAAA,IACF,CAAC;AAED,UAAM,SAAS,iBAAiB,SAAS;AAEzC,UAAM,MAAM,MAAM,MAAM,KAAK;AAAA,MAC3B;AAAA,MACA,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,SAAS;AAAA,QACP,gBAAgB;AAAA,MAClB;AAAA,IACF,CAAQ;AAER,QAAI,IAAI,UAAU,KAAK;AACrB,YAAM,IAAI,MAAM,QAAQ,IAAI,MAAM,EAAE;AAAA,IACtC;AAEA,WAAO,EAAE,IAAI,KAAK;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,aAA0C,MAA0B;AACxE,UAAM,MAAM,MAAM,IAAI;AAEtB,QAAI,CAAC,KAAK;AACR,YAAM,IAAI,MAAM,qBAAqB;AAAA,IACvC;AAEA,UAAM,EAAE,KAAK,OAAO,IAAI,MAAM,KAAK,aAAa;AAAA,MAC9C,GAAG;AAAA,MACH,QAAQ;AAAA,IACV,CAAC;AAED,UAAM,MAAM,MAAM,MAAM,KAAK;AAAA,MAC3B;AAAA,IACF,CAAC;AAED,QAAI,IAAI,UAAU,KAAK;AACrB,YAAM,IAAI,MAAM,QAAQ,IAAI,MAAM,EAAE;AAAA,IACtC;AAEA,WAAQ,MAAM,IAAI,KAAK;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,aAAa,YAAoB,WAAkC;AACvE,UAAM,MAAM,MAAM,UAAU;AAE5B,QAAI,CAAC,KAAK;AACR,YAAM,IAAI,MAAM,qBAAqB;AAAA,IACvC;AAEA,UAAM,EAAE,KAAK,OAAO,IAAI,MAAM,KAAK,aAAa;AAAA,MAC9C,GAAG;AAAA,MACH,QAAQ;AAAA,IACV,CAAC;AAED,UAAM,MAAM,MAAM,MAAM,KAAK;AAAA,MAC3B;AAAA,IACF,CAAC;AAED,QAAI,IAAI,UAAU,KAAK;AACrB,YAAM,IAAI,MAAM,QAAQ,IAAI,MAAM,EAAE;AAAA,IACtC;AAEA,QAAI,CAAC,IAAI,MAAM;AACb,YAAM,IAAI,MAAM,uBAAuB;AAAA,IACzC;AAEA,UAAM,OAAO,kBAAkB,SAAS;AAExC,UAAM,SAAS,IAAI,MAAa,IAAI;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,OAAO,MAAgC;AAC3C,QAAI;AACF,YAAM,MAAM,MAAM,IAAI;AAEtB,UAAI,CAAC,KAAK;AACR,cAAM,IAAI,MAAM,qBAAqB;AAAA,MACvC;AAEA,YAAM,EAAE,IAAI,IAAI,MAAM,KAAK,aAAa;AAAA,QACtC,GAAG;AAAA,QACH,QAAQ;AAAA,MACV,CAAC;AAED,YAAM,MAAM,MAAM,MAAM,KAAK;AAAA,QAC3B,QAAQ;AAAA,MACV,CAAC;AAED,aAAO,IAAI,SAAS;AAAA,IACtB,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,OAAO,MAAqC;AAChD,UAAM,MAAM,MAAM,IAAI;AAEtB,QAAI,CAAC,KAAK;AACR,YAAM,IAAI,MAAM,qBAAqB;AAAA,IACvC;AAEA,UAAM,MAAM,GAAG,KAAK,GAAG;AAEvB,UAAM,MAAM,MAAM,MAAM,KAAK;AAAA,MAC3B,QAAQ;AAAA,MACR,MAAM,KAAK,UAAU,GAAG;AAAA,MACxB,SAAS;AAAA,QACP,eAAe,UAAU,KAAK,WAAW;AAAA,QACzC,gBAAgB;AAAA,QAChB,QAAQ;AAAA,MACV;AAAA,IACF,CAAC;AAED,QAAI,IAAI,UAAU,KAAK;AACrB,YAAM,IAAI,MAAM,QAAQ,IAAI,MAAM,EAAE;AAAA,IACtC;AAEA,WAAO,EAAE,IAAI,KAAK;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,KAAK,QAAmC;AAC5C,UAAM,MAAM,MAAM,MAAM;AAExB,QAAI,CAAC,KAAK;AACR,YAAM,IAAI,MAAM,qBAAqB;AAAA,IACvC;AAEA,UAAM,MAAM,GAAG,KAAK,GAAG;AAEvB,UAAM,MAAM,MAAM,MAAM,KAAK;AAAA,MAC3B,QAAQ;AAAA,MACR,MAAM,KAAK,UAAU;AAAA,QACnB,OAAO,IAAI;AAAA,QACX,QAAQ,IAAI;AAAA,MACd,CAAC;AAAA,MACD,SAAS;AAAA,QACP,eAAe,UAAU,KAAK,WAAW;AAAA,QACzC,gBAAgB;AAAA,QAChB,QAAQ;AAAA,MACV;AAAA,IACF,CAAC;AAED,QAAI,IAAI,UAAU,KAAK;AACrB,YAAM,IAAI,MAAM,QAAQ,IAAI,MAAM,EAAE;AAAA,IACtC;AAEA,WAAO,MAAM,IAAI,KAAK;AAAA,EACxB;AACF;","names":[]}
|
|
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\" | \"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 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 } = 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 }),\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.4",
|
|
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",
|