@science-corporation/synapse 2.2.6 → 2.2.7

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/device.d.ts CHANGED
@@ -50,6 +50,10 @@ declare class Device {
50
50
  sendChunk: (fileChunk: Uint8Array) => void;
51
51
  end: () => void;
52
52
  };
53
+ deploy(debPackagePath: string, callbacks?: {
54
+ onProgress?: (bytesTransferred: number, totalBytes: number) => void;
55
+ onStatus?: (message: string) => void;
56
+ }): Promise<Status>;
53
57
  _handleStatusResponse(status: synapse.IStatus): Status;
54
58
  }
55
59
  export default Device;
@@ -1 +1 @@
1
- {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../src/device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../src/device.ts"],"names":[],"mappings":"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"}
package/dist/device.js CHANGED
@@ -1,4 +1,27 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
26
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
27
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -13,10 +36,29 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
36
  };
14
37
  Object.defineProperty(exports, "__esModule", { value: true });
15
38
  const grpc_js_1 = require("@grpc/grpc-js");
39
+ const fs = __importStar(require("fs"));
40
+ const crypto = __importStar(require("crypto"));
41
+ const path = __importStar(require("path"));
42
+ const long_1 = __importDefault(require("long"));
16
43
  const proto_json_1 = __importDefault(require("./api/proto.json"));
17
44
  const api_1 = require("./api/api");
18
45
  const client_1 = require("./utils/client");
19
46
  const status_1 = require("./utils/status");
47
+ const FILE_CHUNK_SIZE = 1024 * 1024; // 1MB chunks
48
+ function calculateSha256(filePath) {
49
+ return new Promise((resolve, reject) => {
50
+ const hash = crypto.createHash("sha256");
51
+ const stream = fs.createReadStream(filePath);
52
+ stream.on("data", (data) => hash.update(data));
53
+ stream.on("end", () => resolve(hash.digest("hex")));
54
+ stream.on("error", reject);
55
+ });
56
+ }
57
+ function extractVersion(packageName) {
58
+ // Format: package-name_version_architecture.deb
59
+ const parts = packageName.split("_");
60
+ return parts.length >= 2 ? parts[1] : "";
61
+ }
20
62
  const kSynapseService = "synapse.SynapseDevice";
21
63
  class Device {
22
64
  constructor(uri) {
@@ -205,7 +247,7 @@ class Device {
205
247
  }
206
248
  deployApp(options = {}, callbacks) {
207
249
  const { onData, onEnd, onError, onStatus } = callbacks;
208
- const call = this.rpc.deployApp(options);
250
+ const call = this.rpc.deployApp({}, options);
209
251
  call.on("data", (data) => {
210
252
  onData(data);
211
253
  });
@@ -235,6 +277,54 @@ class Device {
235
277
  },
236
278
  };
237
279
  }
280
+ deploy(debPackagePath, callbacks) {
281
+ return __awaiter(this, void 0, void 0, function* () {
282
+ const fileName = path.basename(debPackagePath);
283
+ const fileSize = fs.statSync(debPackagePath).size;
284
+ const sha256Sum = yield calculateSha256(debPackagePath);
285
+ const version = extractVersion(fileName);
286
+ const metadata = {
287
+ name: fileName,
288
+ version,
289
+ size: long_1.default.fromNumber(fileSize),
290
+ sha256Sum,
291
+ };
292
+ return new Promise((resolve, reject) => {
293
+ let bytesTransferred = 0;
294
+ const { sendMetadata, sendChunk, end } = this.deployApp({}, {
295
+ onData: (response) => {
296
+ var _a;
297
+ (_a = callbacks === null || callbacks === void 0 ? void 0 : callbacks.onStatus) === null || _a === void 0 ? void 0 : _a.call(callbacks, response.message || "");
298
+ if (response.status !== api_1.synapse.StatusCode.kOk) {
299
+ reject(new Error(response.message || "Deployment failed"));
300
+ }
301
+ },
302
+ onEnd: () => {
303
+ resolve(new status_1.Status());
304
+ },
305
+ onError: (err) => {
306
+ reject(err);
307
+ },
308
+ });
309
+ sendMetadata(metadata);
310
+ const stream = fs.createReadStream(debPackagePath, {
311
+ highWaterMark: FILE_CHUNK_SIZE,
312
+ });
313
+ stream.on("data", (chunk) => {
314
+ var _a;
315
+ sendChunk(chunk);
316
+ bytesTransferred += chunk.length;
317
+ (_a = callbacks === null || callbacks === void 0 ? void 0 : callbacks.onProgress) === null || _a === void 0 ? void 0 : _a.call(callbacks, bytesTransferred, fileSize);
318
+ });
319
+ stream.on("end", () => {
320
+ end();
321
+ });
322
+ stream.on("error", (err) => {
323
+ reject(err);
324
+ });
325
+ });
326
+ });
327
+ }
238
328
  _handleStatusResponse(status) {
239
329
  const { code, message } = status;
240
330
  if (code !== api_1.synapse.StatusCode.kOk) {
@@ -1 +1 @@
1
- {"version":3,"file":"device.js","sourceRoot":"","sources":["../src/device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device.js","sourceRoot":"","sources":["../src/device.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@science-corporation/synapse",
3
- "version": "2.2.6",
3
+ "version": "2.2.7",
4
4
  "description": "Client library and CLI for the Synapse API",
5
5
  "license": "Apache-2.0",
6
6
  "main": "dist/index.js",
package/src/device.ts CHANGED
@@ -1,4 +1,8 @@
1
1
  import { Channel, credentials, ServiceError } from "@grpc/grpc-js";
2
+ import * as fs from "fs";
3
+ import * as crypto from "crypto";
4
+ import * as path from "path";
5
+ import Long from "long";
2
6
 
3
7
  import protos from "./api/proto.json";
4
8
  import { synapse } from "./api/api";
@@ -6,6 +10,24 @@ import Config from "./config";
6
10
  import { CallOptions, create } from "./utils/client";
7
11
  import { fromDeviceStatus, Status } from "./utils/status";
8
12
 
13
+ const FILE_CHUNK_SIZE = 1024 * 1024; // 1MB chunks
14
+
15
+ function calculateSha256(filePath: string): Promise<string> {
16
+ return new Promise((resolve, reject) => {
17
+ const hash = crypto.createHash("sha256");
18
+ const stream = fs.createReadStream(filePath);
19
+ stream.on("data", (data) => hash.update(data));
20
+ stream.on("end", () => resolve(hash.digest("hex")));
21
+ stream.on("error", reject);
22
+ });
23
+ }
24
+
25
+ function extractVersion(packageName: string): string {
26
+ // Format: package-name_version_architecture.deb
27
+ const parts = packageName.split("_");
28
+ return parts.length >= 2 ? parts[1] : "";
29
+ }
30
+
9
31
  const kSynapseService = "synapse.SynapseDevice";
10
32
 
11
33
  class Device {
@@ -209,7 +231,7 @@ class Device {
209
231
  }
210
232
  ) {
211
233
  const { onData, onEnd, onError, onStatus } = callbacks;
212
- const call = this.rpc.deployApp(options);
234
+ const call = this.rpc.deployApp({}, options);
213
235
 
214
236
  call.on("data", (data: synapse.AppDeployResponse) => {
215
237
  onData(data);
@@ -242,6 +264,65 @@ class Device {
242
264
  };
243
265
  }
244
266
 
267
+ async deploy(
268
+ debPackagePath: string,
269
+ callbacks?: {
270
+ onProgress?: (bytesTransferred: number, totalBytes: number) => void;
271
+ onStatus?: (message: string) => void;
272
+ }
273
+ ): Promise<Status> {
274
+ const fileName = path.basename(debPackagePath);
275
+ const fileSize = fs.statSync(debPackagePath).size;
276
+ const sha256Sum = await calculateSha256(debPackagePath);
277
+ const version = extractVersion(fileName);
278
+
279
+ const metadata: synapse.IPackageMetadata = {
280
+ name: fileName,
281
+ version,
282
+ size: Long.fromNumber(fileSize),
283
+ sha256Sum,
284
+ };
285
+
286
+ return new Promise((resolve, reject) => {
287
+ let bytesTransferred = 0;
288
+
289
+ const { sendMetadata, sendChunk, end } = this.deployApp({}, {
290
+ onData: (response) => {
291
+ callbacks?.onStatus?.(response.message || "");
292
+ if (response.status !== synapse.StatusCode.kOk) {
293
+ reject(new Error(response.message || "Deployment failed"));
294
+ }
295
+ },
296
+ onEnd: () => {
297
+ resolve(new Status());
298
+ },
299
+ onError: (err) => {
300
+ reject(err);
301
+ },
302
+ });
303
+
304
+ sendMetadata(metadata);
305
+
306
+ const stream = fs.createReadStream(debPackagePath, {
307
+ highWaterMark: FILE_CHUNK_SIZE,
308
+ });
309
+
310
+ stream.on("data", (chunk: Buffer) => {
311
+ sendChunk(chunk);
312
+ bytesTransferred += chunk.length;
313
+ callbacks?.onProgress?.(bytesTransferred, fileSize);
314
+ });
315
+
316
+ stream.on("end", () => {
317
+ end();
318
+ });
319
+
320
+ stream.on("error", (err) => {
321
+ reject(err);
322
+ });
323
+ });
324
+ }
325
+
245
326
  _handleStatusResponse(status: synapse.IStatus): Status {
246
327
  const { code, message } = status;
247
328
  if (code !== synapse.StatusCode.kOk) {