@fatagnus/dink-sdk 1.0.0

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 (51) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +95 -0
  3. package/dist/center/client.d.ts +17 -0
  4. package/dist/center/client.d.ts.map +1 -0
  5. package/dist/center/client.js +147 -0
  6. package/dist/center/client.js.map +1 -0
  7. package/dist/center/index.d.ts +2 -0
  8. package/dist/center/index.d.ts.map +1 -0
  9. package/dist/center/index.js +2 -0
  10. package/dist/center/index.js.map +1 -0
  11. package/dist/edge/client.d.ts +25 -0
  12. package/dist/edge/client.d.ts.map +1 -0
  13. package/dist/edge/client.js +201 -0
  14. package/dist/edge/client.js.map +1 -0
  15. package/dist/edge/index.d.ts +2 -0
  16. package/dist/edge/index.d.ts.map +1 -0
  17. package/dist/edge/index.js +2 -0
  18. package/dist/edge/index.js.map +1 -0
  19. package/dist/generated/index.d.ts +8 -0
  20. package/dist/generated/index.d.ts.map +1 -0
  21. package/dist/generated/index.js +7 -0
  22. package/dist/generated/index.js.map +1 -0
  23. package/dist/generated/jobservice.client.d.ts +19 -0
  24. package/dist/generated/jobservice.client.d.ts.map +1 -0
  25. package/dist/generated/jobservice.client.js +39 -0
  26. package/dist/generated/jobservice.client.js.map +1 -0
  27. package/dist/generated/jobservice.handler.d.ts +21 -0
  28. package/dist/generated/jobservice.handler.d.ts.map +1 -0
  29. package/dist/generated/jobservice.handler.js +62 -0
  30. package/dist/generated/jobservice.handler.js.map +1 -0
  31. package/dist/generated/sensorservice.client.d.ts +17 -0
  32. package/dist/generated/sensorservice.client.d.ts.map +1 -0
  33. package/dist/generated/sensorservice.client.js +31 -0
  34. package/dist/generated/sensorservice.client.js.map +1 -0
  35. package/dist/generated/sensorservice.handler.d.ts +17 -0
  36. package/dist/generated/sensorservice.handler.d.ts.map +1 -0
  37. package/dist/generated/sensorservice.handler.js +53 -0
  38. package/dist/generated/sensorservice.handler.js.map +1 -0
  39. package/dist/generated/types.d.ts +99 -0
  40. package/dist/generated/types.d.ts.map +1 -0
  41. package/dist/generated/types.js +12 -0
  42. package/dist/generated/types.js.map +1 -0
  43. package/dist/index.d.ts +4 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +4 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/types.d.ts +55 -0
  48. package/dist/types.d.ts.map +1 -0
  49. package/dist/types.js +2 -0
  50. package/dist/types.js.map +1 -0
  51. package/package.json +78 -0
@@ -0,0 +1,99 @@
1
+ export declare enum JobStatus {
2
+ JOB_STATUS_UNSPECIFIED = 0,
3
+ JOB_STATUS_PENDING = 1,
4
+ JOB_STATUS_RUNNING = 2,
5
+ JOB_STATUS_COMPLETED = 3,
6
+ JOB_STATUS_FAILED = 4,
7
+ JOB_STATUS_CANCELLED = 5,
8
+ JOB_STATUS_TIMEOUT = 6
9
+ }
10
+ export interface Error {
11
+ code: string;
12
+ message: string;
13
+ details: Record<string, unknown>;
14
+ }
15
+ export interface Metadata {
16
+ requestId: string;
17
+ edgeId: string;
18
+ tags: Record<string, unknown>;
19
+ }
20
+ export interface Empty {
21
+ }
22
+ export interface JobStartRequest {
23
+ jobType: string;
24
+ payload: Record<string, unknown>;
25
+ options: JobOptions;
26
+ }
27
+ export interface JobOptions {
28
+ timeout: number;
29
+ priority: number;
30
+ env: Record<string, unknown>;
31
+ workingDir: string;
32
+ tags: Record<string, unknown>;
33
+ }
34
+ export interface JobStartResponse {
35
+ jobId: string;
36
+ status: JobStatus;
37
+ startedAt: Date;
38
+ }
39
+ export interface JobStatusRequest {
40
+ jobId: string;
41
+ }
42
+ export interface JobStatusResponse {
43
+ jobId: string;
44
+ jobType: string;
45
+ status: JobStatus;
46
+ progress: JobProgress;
47
+ result: Record<string, unknown>;
48
+ error: string;
49
+ startedAt: Date;
50
+ completedAt: Date;
51
+ duration: number;
52
+ }
53
+ export interface JobCancelRequest {
54
+ jobId: string;
55
+ force: boolean;
56
+ }
57
+ export interface JobCancelResponse {
58
+ cancelled: boolean;
59
+ message: string;
60
+ }
61
+ export interface JobLogsRequest {
62
+ jobId: string;
63
+ follow: boolean;
64
+ tail: number;
65
+ }
66
+ export interface JobLogLine {
67
+ timestamp: Date;
68
+ stream: string;
69
+ text: string;
70
+ jobId: string;
71
+ }
72
+ export interface JobProgressRequest {
73
+ jobId: string;
74
+ }
75
+ export interface JobProgress {
76
+ percent: number;
77
+ stage: string;
78
+ message: string;
79
+ details: Record<string, unknown>;
80
+ }
81
+ export interface ReadTemperatureRequest {
82
+ }
83
+ export interface Temperature {
84
+ value: number;
85
+ unit: string;
86
+ timestamp: Date;
87
+ }
88
+ export interface SetpointRequest {
89
+ target: number;
90
+ unit: string;
91
+ }
92
+ export interface SetpointResponse {
93
+ success: boolean;
94
+ previous: number;
95
+ }
96
+ export interface StreamReadingsRequest {
97
+ intervalMs: number;
98
+ }
99
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/generated/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ // Code generated by dink codegen. DO NOT EDIT.
2
+ export var JobStatus;
3
+ (function (JobStatus) {
4
+ JobStatus[JobStatus["JOB_STATUS_UNSPECIFIED"] = 0] = "JOB_STATUS_UNSPECIFIED";
5
+ JobStatus[JobStatus["JOB_STATUS_PENDING"] = 1] = "JOB_STATUS_PENDING";
6
+ JobStatus[JobStatus["JOB_STATUS_RUNNING"] = 2] = "JOB_STATUS_RUNNING";
7
+ JobStatus[JobStatus["JOB_STATUS_COMPLETED"] = 3] = "JOB_STATUS_COMPLETED";
8
+ JobStatus[JobStatus["JOB_STATUS_FAILED"] = 4] = "JOB_STATUS_FAILED";
9
+ JobStatus[JobStatus["JOB_STATUS_CANCELLED"] = 5] = "JOB_STATUS_CANCELLED";
10
+ JobStatus[JobStatus["JOB_STATUS_TIMEOUT"] = 6] = "JOB_STATUS_TIMEOUT";
11
+ })(JobStatus || (JobStatus = {}));
12
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/generated/types.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAE/C,MAAM,CAAN,IAAY,SAQX;AARD,WAAY,SAAS;IACnB,6EAA0B,CAAA;IAC1B,qEAAsB,CAAA;IACtB,qEAAsB,CAAA;IACtB,yEAAwB,CAAA;IACxB,mEAAqB,CAAA;IACrB,yEAAwB,CAAA;IACxB,qEAAsB,CAAA;AACxB,CAAC,EARW,SAAS,KAAT,SAAS,QAQpB"}
@@ -0,0 +1,4 @@
1
+ export * from './types.js';
2
+ export { EdgeClient } from './edge/client.js';
3
+ export { CenterClient } from './center/client.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export * from './types.js';
2
+ export { EdgeClient } from './edge/client.js';
3
+ export { CenterClient } from './center/client.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,55 @@
1
+ export interface EdgeConfig {
2
+ serverUrl: string;
3
+ edgeId: string;
4
+ edgeName?: string;
5
+ labels?: Record<string, string>;
6
+ apiKey?: string;
7
+ appId?: string;
8
+ heartbeatInterval?: number;
9
+ reconnectWait?: number;
10
+ maxReconnects?: number;
11
+ }
12
+ export interface CenterConfig {
13
+ serverUrl: string;
14
+ apiKey?: string;
15
+ appId?: string;
16
+ timeout?: number;
17
+ reconnectWait?: number;
18
+ maxReconnects?: number;
19
+ }
20
+ export interface ServiceDefinition {
21
+ name: string;
22
+ version: string;
23
+ methods: string[];
24
+ }
25
+ export interface ServiceHandler {
26
+ definition(): ServiceDefinition;
27
+ handleRequest(method: string, data: Uint8Array): Promise<Uint8Array>;
28
+ handleStream?(method: string, data: Uint8Array, emit: (data: Uint8Array) => Promise<void>): Promise<void>;
29
+ }
30
+ export interface ServiceCaller {
31
+ call<Req, Resp>(edgeId: string, service: string, method: string, req: Req): Promise<Resp>;
32
+ subscribe<Req, Resp>(edgeId: string, service: string, method: string, req: Req, handler: (resp: Resp) => void): Promise<Subscription>;
33
+ }
34
+ export interface Subscription {
35
+ unsubscribe(): void;
36
+ }
37
+ export interface EdgeInfo {
38
+ id: string;
39
+ name: string;
40
+ status: 'online' | 'offline';
41
+ labels: Record<string, string>;
42
+ services: string[];
43
+ lastSeen?: Date;
44
+ }
45
+ export interface DiscoverOptions {
46
+ serviceName?: string;
47
+ labels?: Record<string, string>;
48
+ onlineOnly?: boolean;
49
+ }
50
+ export interface CallOptions {
51
+ timeout?: number;
52
+ retries?: number;
53
+ retryDelay?: number;
54
+ }
55
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,IAAI,iBAAiB,CAAC;IAChC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACrE,YAAY,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3G;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1F,SAAS,CAAC,GAAG,EAAE,IAAI,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,GAC5B,OAAO,CAAC,YAAY,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,IAAI,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,78 @@
1
+ {
2
+ "name": "@fatagnus/dink-sdk",
3
+ "version": "1.0.0",
4
+ "description": "TypeScript SDK for Dink edge mesh platform",
5
+ "type": "module",
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
+ "./edge": {
14
+ "types": "./dist/edge/index.d.ts",
15
+ "import": "./dist/edge/index.js"
16
+ },
17
+ "./center": {
18
+ "types": "./dist/center/index.d.ts",
19
+ "import": "./dist/center/index.js"
20
+ }
21
+ },
22
+ "scripts": {
23
+ "build": "tsc",
24
+ "clean": "rm -rf dist",
25
+ "prebuild": "npm run clean",
26
+ "prepublishOnly": "npm run build",
27
+ "test": "vitest run",
28
+ "test:watch": "vitest",
29
+ "test:e2e": "vitest run --config vitest.e2e.config.ts",
30
+ "lint": "eslint src --ext .ts",
31
+ "typecheck": "tsc --noEmit"
32
+ },
33
+ "keywords": [
34
+ "dink",
35
+ "nats",
36
+ "edge",
37
+ "mesh",
38
+ "iot",
39
+ "edge-computing",
40
+ "distributed-systems"
41
+ ],
42
+ "author": "Ozan Turksever",
43
+ "license": "Apache-2.0",
44
+ "repository": {
45
+ "type": "git",
46
+ "url": "git+https://github.com/ozanturksever/dink.git",
47
+ "directory": "sdk/typescript"
48
+ },
49
+ "homepage": "https://github.com/ozanturksever/dink#readme",
50
+ "bugs": {
51
+ "url": "https://github.com/ozanturksever/dink/issues"
52
+ },
53
+ "publishConfig": {
54
+ "access": "public"
55
+ },
56
+ "sideEffects": false,
57
+ "dependencies": {
58
+ "nats": "^2.19.0"
59
+ },
60
+ "devDependencies": {
61
+ "@types/node": "^20.10.0",
62
+ "typescript": "^5.3.0",
63
+ "vitest": "^1.0.0",
64
+ "testcontainers": "^10.4.0",
65
+ "eslint": "^8.55.0",
66
+ "@typescript-eslint/eslint-plugin": "^6.13.0",
67
+ "@typescript-eslint/parser": "^6.13.0",
68
+ "@fatagnus/dink-test-utils": "file:../../examples/shared"
69
+ },
70
+ "engines": {
71
+ "node": ">=18.0.0"
72
+ },
73
+ "files": [
74
+ "dist",
75
+ "README.md",
76
+ "LICENSE"
77
+ ]
78
+ }