@runappsai/sdk 0.6.2 → 0.6.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/files.js CHANGED
@@ -6,12 +6,14 @@
6
6
  // The bundle's RunApps client uses `client.files` to access these
7
7
  // endpoints; the underlying token must be a project-bound resource
8
8
  // token (rrt_*) issued by the grant flow.
9
+ import { wrapEvents } from "./event-wrap.js";
9
10
  function pathToURL(base, p) {
10
11
  const trimmed = p.replace(/^\/+/, "");
11
12
  return base + "/" + trimmed.split("/").map(encodeURIComponent).join("/");
12
13
  }
13
14
  export class FilesService {
14
15
  transport;
16
+ events;
15
17
  /**
16
18
  * URL prefix for every file call.
17
19
  *
@@ -30,12 +32,21 @@ export class FilesService {
30
32
  * measure, not a permission one.
31
33
  */
32
34
  base;
33
- constructor(transport, project) {
35
+ constructor(transport, project,
36
+ /** When given, every call emits request:start / end / error so the
37
+ * badge can show it in flight; the sync engine's own file traffic
38
+ * uses a service without one. */
39
+ events) {
34
40
  this.transport = transport;
41
+ this.events = events;
35
42
  this.base = project
36
43
  ? "/v1/p/" + encodeURIComponent(project) + "/files"
37
44
  : "/v1/files";
38
45
  }
46
+ /** Run one file call, with badge events when the service has a bus. */
47
+ run(op, fn) {
48
+ return this.events ? wrapEvents(this.events, { model: op, capability: "files" }, fn) : fn();
49
+ }
39
50
  /**
40
51
  * Upload `body` to `path`. Returns the resulting FileObject — its
41
52
  * `url` is the stable public address for that path.
@@ -50,11 +61,11 @@ export class FilesService {
50
61
  headers["If-None-Match"] = "*";
51
62
  if (opts?.ifMatch)
52
63
  headers["If-Match"] = `"${opts.ifMatch.replace(/"/g, "")}"`;
53
- return this.transport.putBytes(pathToURL(this.base, path), body, {
64
+ return this.run("files.put", () => this.transport.putBytes(pathToURL(this.base, path), body, {
54
65
  contentType: opts?.contentType,
55
66
  headers: Object.keys(headers).length ? headers : undefined,
56
67
  signal: opts?.signal,
57
- });
68
+ }));
58
69
  }
59
70
  /** Convenience: upload string content with sensible content-type. */
60
71
  async putString(path, content, opts) {
@@ -78,6 +89,9 @@ export class FilesService {
78
89
  * still the version that was read.
79
90
  */
80
91
  async read(path, init) {
92
+ return this.run("files.read", () => this.readRaw(path, init));
93
+ }
94
+ async readRaw(path, init) {
81
95
  const { data, contentType, etag, notModified } = await this.transport.getRaw(pathToURL(this.base, path), init);
82
96
  return {
83
97
  blob: new Blob([new Uint8Array(data)], { type: contentType || "application/octet-stream" }),
@@ -109,7 +123,7 @@ export class FilesService {
109
123
  }
110
124
  /** Stat: HEAD-only object metadata. */
111
125
  async stat(path, init) {
112
- const { status, headers } = await this.transport.head(pathToURL(this.base, path), init);
126
+ const { status, headers } = await this.run("files.stat", () => this.transport.head(pathToURL(this.base, path), init));
113
127
  if (status === 404) {
114
128
  throw Object.assign(new Error("not found"), { status: 404 });
115
129
  }
@@ -127,12 +141,12 @@ export class FilesService {
127
141
  }
128
142
  /** Returns true iff the path resolves to an existing object. */
129
143
  async exists(path, init) {
130
- const { status } = await this.transport.head(pathToURL(this.base, path), init);
144
+ const { status } = await this.run("files.exists", () => this.transport.head(pathToURL(this.base, path), init));
131
145
  return status >= 200 && status < 400;
132
146
  }
133
147
  /** Delete the object at `path`. Idempotent. */
134
148
  async del(path, init) {
135
- await this.transport.deletePath(pathToURL(this.base, path), init);
149
+ await this.run("files.del", () => this.transport.deletePath(pathToURL(this.base, path), init));
136
150
  }
137
151
  /** List objects. Pass an empty / omitted prefix for the root. */
138
152
  async list(opts) {
@@ -146,7 +160,7 @@ export class FilesService {
146
160
  if (opts?.glob)
147
161
  params.set("glob", opts.glob);
148
162
  const qs = params.toString();
149
- return this.transport.getJSON(this.base + (qs ? "?" + qs : ""), opts?.signal ? { signal: opts.signal } : undefined);
163
+ return this.run("files.list", () => this.transport.getJSON(this.base + (qs ? "?" + qs : ""), opts?.signal ? { signal: opts.signal } : undefined));
150
164
  }
151
165
  /**
152
166
  * Bulk delete: removes every object whose path starts with `prefix`
@@ -159,15 +173,15 @@ export class FilesService {
159
173
  * client.files.deleteMany({ prefix: "logs/", glob: "*.bak" })
160
174
  */
161
175
  async deleteMany(opts, init) {
162
- return this.transport.postJSON(this.base + "/delete", { prefix: opts.prefix ?? "", glob: opts.glob ?? "" }, init);
176
+ return this.run("files.deleteMany", () => this.transport.postJSON(this.base + "/delete", { prefix: opts.prefix ?? "", glob: opts.glob ?? "" }, init));
163
177
  }
164
178
  /** Atomic rename (copy + delete server-side). */
165
179
  async move(from, to, init) {
166
- return this.transport.postJSON(this.base + "/move", { from, to }, init);
180
+ return this.run("files.move", () => this.transport.postJSON(this.base + "/move", { from, to }, init));
167
181
  }
168
182
  /** Server-side copy. */
169
183
  async copy(from, to, init) {
170
- return this.transport.postJSON(this.base + "/copy", { from, to }, init);
184
+ return this.run("files.copy", () => this.transport.postJSON(this.base + "/copy", { from, to }, init));
171
185
  }
172
186
  /**
173
187
  * Ask the gateway to fetch `srcURL` and store the body at `path`.
@@ -175,13 +189,13 @@ export class FilesService {
175
189
  * must be a public http(s) URL (private/loopback hosts rejected).
176
190
  */
177
191
  async putFromURL(path, srcURL, opts) {
178
- return this.transport.postJSON(this.base + "/put-url", {
192
+ return this.run("files.putFromURL", () => this.transport.postJSON(this.base + "/put-url", {
179
193
  path,
180
194
  src_url: srcURL,
181
195
  content_type: opts?.contentType,
182
196
  if_none_match: opts?.ifNoneMatch,
183
197
  if_match: opts?.ifMatch,
184
- }, opts?.signal ? { signal: opts.signal } : undefined);
198
+ }, opts?.signal ? { signal: opts.signal } : undefined));
185
199
  }
186
200
  /**
187
201
  * Pipeline several file ops in one round trip. Operations execute
@@ -198,6 +212,9 @@ export class FilesService {
198
212
  async batch(ops, init) {
199
213
  if (ops.length === 0)
200
214
  return [];
215
+ return this.run("files.batch", () => this.batchRaw(ops, init));
216
+ }
217
+ async batchRaw(ops, init) {
201
218
  const chunkSize = 30;
202
219
  if (ops.length <= chunkSize) {
203
220
  const resp = await this.transport.postJSON(this.base + "/batch", { ops }, init);
package/dist/files.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"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"}