@peers-app/peers-device 0.16.0 → 0.16.1

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 CHANGED
@@ -8,6 +8,7 @@ export * from "./machine-stats";
8
8
  export * from "./main";
9
9
  export * from "./message-processor";
10
10
  export * from "./pvars.tracked-data-source";
11
+ export * from "./services-client";
11
12
  export * from "./sync-group";
12
13
  export * from "./system-tools";
13
14
  export * from "./tool-call-processor";
package/dist/index.js CHANGED
@@ -24,6 +24,7 @@ __exportStar(require("./machine-stats"), exports);
24
24
  __exportStar(require("./main"), exports);
25
25
  __exportStar(require("./message-processor"), exports);
26
26
  __exportStar(require("./pvars.tracked-data-source"), exports);
27
+ __exportStar(require("./services-client"), exports);
27
28
  __exportStar(require("./sync-group"), exports);
28
29
  __exportStar(require("./system-tools"), exports);
29
30
  __exportStar(require("./tool-call-processor"), exports);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,0EAAwD;AACxD,oFAAkE;AAClE,6EAA2D;AAC3D,uEAAqD;AACrD,kFAAgE;AAChE,kDAAgC;AAChC,yCAAuB;AACvB,sDAAoC;AACpC,8DAA4C;AAC5C,+CAA6B;AAC7B,iDAA+B;AAC/B,wDAAsC;AACtC,gDAA8B;AAC9B,wDAAsC;AACtC,qDAAmC;AACnC,uDAAqC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,0EAAwD;AACxD,oFAAkE;AAClE,6EAA2D;AAC3D,uEAAqD;AACrD,kFAAgE;AAChE,kDAAgC;AAChC,yCAAuB;AACvB,sDAAoC;AACpC,8DAA4C;AAC5C,oDAAkC;AAClC,+CAA6B;AAC7B,iDAA+B;AAC/B,wDAAsC;AACtC,gDAA8B;AAC9B,wDAAsC;AACtC,qDAAmC;AACnC,uDAAqC"}
package/dist/main.js CHANGED
@@ -4,10 +4,11 @@ exports.peersDeviceInitializedPromise = exports.networkManagerPromise = exports.
4
4
  exports.initializePeerDevice = initializePeerDevice;
5
5
  const peers_sdk_1 = require("@peers-app/peers-sdk");
6
6
  const connection_manager_1 = require("./connection-manager/connection-manager");
7
+ const network_manager_1 = require("./connection-manager/network-manager");
7
8
  const packages_tracked_data_source_1 = require("./packages.tracked-data-source");
8
9
  const pvars_tracked_data_source_1 = require("./pvars.tracked-data-source");
10
+ const services_client_1 = require("./services-client");
9
11
  const tracked_data_source_1 = require("./tracked-data-source");
10
- const network_manager_1 = require("./connection-manager/network-manager");
11
12
  let resolveConnectionManager;
12
13
  exports.connectionManagerPromise = new Promise(async (resolve) => {
13
14
  resolveConnectionManager = resolve;
@@ -97,6 +98,7 @@ async function initializePeerDevice(userId, dbConstructor, _setUserContext, file
97
98
  const signObject = (obj) => {
98
99
  return (0, peers_sdk_1.addSignatureToObject)(obj, keys.secretKey);
99
100
  };
101
+ (0, services_client_1.initServicesClient)(userId, keys);
100
102
  const localDevice = new peers_sdk_1.Device(userContext.userId, userContext.deviceId(), keys);
101
103
  const getGroupSecretKey = async (groupId) => {
102
104
  const groupSecretKeyPVar = await (0, peers_sdk_1.PersistentVars)(userContext.userDataContext).findOne({
@@ -132,6 +134,9 @@ async function initializePeerDevice(userId, dbConstructor, _setUserContext, file
132
134
  groupDbs.delete(groupId);
133
135
  changeTrackingTables.delete(groupId);
134
136
  };
137
+ peers_sdk_1.rpcServerCalls.registerWithPeersServices = async () => {
138
+ return (0, services_client_1.registerOrAuthenticate)();
139
+ };
135
140
  peers_sdk_1.PackagesTable.enablePackageSigning(signObject);
136
141
  peers_sdk_1.PackageVersionsTable.enablePackageVersionSigning(signObject);
137
142
  peers_sdk_1.GroupsTable.enableGroupSigning(signObject);
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { type IPublicPrivateKeys } from "@peers-app/peers-sdk";
2
+ /** Configure the services client. Must be called during device initialization. */
3
+ export declare function initServicesClient(userId: string, keys: IPublicPrivateKeys, servicesUrl?: string): void;
4
+ interface ITokenResponse {
5
+ token: string;
6
+ expiresIn: number;
7
+ }
8
+ /**
9
+ * Register this user with peers-services via the two-step challenge-response flow.
10
+ * Returns the JWT on success, or throws with a descriptive message on failure.
11
+ * Returns null if the user is already registered (caller should authenticate instead).
12
+ */
13
+ export declare function registerWithServices(): Promise<ITokenResponse | null>;
14
+ /**
15
+ * Authenticate an already-registered user with peers-services.
16
+ * Returns the JWT on success.
17
+ */
18
+ export declare function authenticateWithServices(): Promise<ITokenResponse>;
19
+ /**
20
+ * Register or authenticate: tries registration first, falls back to authentication
21
+ * if the user is already registered. Returns the JWT token string.
22
+ */
23
+ export declare function registerOrAuthenticate(): Promise<string>;
24
+ export {};
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.initServicesClient = initServicesClient;
4
+ exports.registerWithServices = registerWithServices;
5
+ exports.authenticateWithServices = authenticateWithServices;
6
+ exports.registerOrAuthenticate = registerOrAuthenticate;
7
+ const peers_sdk_1 = require("@peers-app/peers-sdk");
8
+ const DEFAULT_SERVICES_URL = "https://peers-services.azurewebsites.net";
9
+ let _servicesUrl = DEFAULT_SERVICES_URL;
10
+ let _keys = null;
11
+ let _userId = null;
12
+ /** Configure the services client. Must be called during device initialization. */
13
+ function initServicesClient(userId, keys, servicesUrl) {
14
+ _userId = userId;
15
+ _keys = keys;
16
+ if (servicesUrl)
17
+ _servicesUrl = servicesUrl;
18
+ }
19
+ /**
20
+ * Register this user with peers-services via the two-step challenge-response flow.
21
+ * Returns the JWT on success, or throws with a descriptive message on failure.
22
+ * Returns null if the user is already registered (caller should authenticate instead).
23
+ */
24
+ async function registerWithServices() {
25
+ if (!_userId || !_keys) {
26
+ throw new Error("Services client not initialized. Call initServicesClient first.");
27
+ }
28
+ // Step 1: Initiate registration
29
+ const initiateRes = await fetch(`${_servicesUrl}/api/v1/auth/register`, {
30
+ method: "POST",
31
+ headers: { "Content-Type": "application/json" },
32
+ body: JSON.stringify({
33
+ userId: _userId,
34
+ publicKey: _keys.publicKey,
35
+ publicBoxKey: _keys.publicBoxKey,
36
+ }),
37
+ });
38
+ const initiateBody = await initiateRes.json();
39
+ if (!initiateRes.ok) {
40
+ throw new Error(initiateBody.error || `Registration initiate failed (${initiateRes.status})`);
41
+ }
42
+ if (initiateBody.status === "already_registered") {
43
+ return null;
44
+ }
45
+ const challenge = initiateBody;
46
+ // Step 2: Sign the challenge and verify
47
+ const challengeContents = {
48
+ nonce: challenge.nonce,
49
+ userId: _userId,
50
+ purpose: "peers-services-registration",
51
+ };
52
+ const signedChallenge = (0, peers_sdk_1.signObjectWithSecretKey)(challengeContents, _keys.secretKey);
53
+ const verifyRes = await fetch(`${_servicesUrl}/api/v1/auth/register/verify`, {
54
+ method: "POST",
55
+ headers: { "Content-Type": "application/json" },
56
+ body: JSON.stringify({
57
+ challengeId: challenge.challengeId,
58
+ signedChallenge,
59
+ }),
60
+ });
61
+ const verifyBody = await verifyRes.json();
62
+ if (!verifyRes.ok) {
63
+ throw new Error(verifyBody.error || `Registration verify failed (${verifyRes.status})`);
64
+ }
65
+ return verifyBody;
66
+ }
67
+ /**
68
+ * Authenticate an already-registered user with peers-services.
69
+ * Returns the JWT on success.
70
+ */
71
+ async function authenticateWithServices() {
72
+ if (!_userId || !_keys) {
73
+ throw new Error("Services client not initialized. Call initServicesClient first.");
74
+ }
75
+ const initiateRes = await fetch(`${_servicesUrl}/api/v1/auth/authenticate`, {
76
+ method: "POST",
77
+ headers: { "Content-Type": "application/json" },
78
+ body: JSON.stringify({
79
+ userId: _userId,
80
+ publicKey: _keys.publicKey,
81
+ }),
82
+ });
83
+ const initiateBody = await initiateRes.json();
84
+ if (!initiateRes.ok) {
85
+ throw new Error(initiateBody.error || `Authentication initiate failed (${initiateRes.status})`);
86
+ }
87
+ const challenge = initiateBody;
88
+ const challengeContents = {
89
+ nonce: challenge.nonce,
90
+ userId: _userId,
91
+ purpose: "peers-services-authentication",
92
+ };
93
+ const signedChallenge = (0, peers_sdk_1.signObjectWithSecretKey)(challengeContents, _keys.secretKey);
94
+ const verifyRes = await fetch(`${_servicesUrl}/api/v1/auth/authenticate/verify`, {
95
+ method: "POST",
96
+ headers: { "Content-Type": "application/json" },
97
+ body: JSON.stringify({
98
+ challengeId: challenge.challengeId,
99
+ signedChallenge,
100
+ }),
101
+ });
102
+ const verifyBody = await verifyRes.json();
103
+ if (!verifyRes.ok) {
104
+ throw new Error(verifyBody.error || `Authentication verify failed (${verifyRes.status})`);
105
+ }
106
+ return verifyBody;
107
+ }
108
+ /**
109
+ * Register or authenticate: tries registration first, falls back to authentication
110
+ * if the user is already registered. Returns the JWT token string.
111
+ */
112
+ async function registerOrAuthenticate() {
113
+ const regResult = await registerWithServices();
114
+ if (regResult) {
115
+ return regResult.token;
116
+ }
117
+ // Already registered -- authenticate instead
118
+ const authResult = await authenticateWithServices();
119
+ return authResult.token;
120
+ }
121
+ //# sourceMappingURL=services-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"services-client.js","sourceRoot":"","sources":["../src/services-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,167 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const peers_sdk_1 = require("@peers-app/peers-sdk");
4
+ const services_client_1 = require("./services-client");
5
+ const TEST_URL = "https://test-services.example.com";
6
+ const keys = (0, peers_sdk_1.newKeys)();
7
+ const userId = "testUser123";
8
+ function mockFetchResponse(body, status = 200) {
9
+ return {
10
+ ok: status >= 200 && status < 300,
11
+ status,
12
+ json: async () => body,
13
+ };
14
+ }
15
+ let fetchCalls = [];
16
+ let fetchResponses = [];
17
+ beforeEach(() => {
18
+ fetchCalls = [];
19
+ fetchResponses = [];
20
+ (0, services_client_1.initServicesClient)(userId, keys, TEST_URL);
21
+ global.fetch = jest.fn(async (input, init) => {
22
+ fetchCalls.push({ url: String(input), init: init ?? {} });
23
+ const response = fetchResponses.shift();
24
+ if (!response)
25
+ throw new Error(`Unexpected fetch call: ${String(input)}`);
26
+ return response;
27
+ });
28
+ });
29
+ afterEach(() => {
30
+ jest.restoreAllMocks();
31
+ });
32
+ // ── initServicesClient ───────────────────────────────────────────────────────
33
+ describe("initServicesClient", () => {
34
+ it("should allow registerWithServices to succeed after initialization", async () => {
35
+ fetchResponses.push(mockFetchResponse({
36
+ challengeId: "chal1",
37
+ nonce: "n1",
38
+ expiresAt: new Date(Date.now() + 300_000).toISOString(),
39
+ }), mockFetchResponse({ token: "jwt_token", expiresIn: 2592000 }));
40
+ const result = await (0, services_client_1.registerWithServices)();
41
+ expect(result).toEqual({ token: "jwt_token", expiresIn: 2592000 });
42
+ });
43
+ });
44
+ // ── registerWithServices ─────────────────────────────────────────────────────
45
+ describe("registerWithServices", () => {
46
+ it("should throw when client is not initialized", async () => {
47
+ (0, services_client_1.initServicesClient)("", null);
48
+ await expect((0, services_client_1.registerWithServices)()).rejects.toThrow(/not initialized/);
49
+ });
50
+ it("should send userId, publicKey, publicBoxKey to /register", async () => {
51
+ fetchResponses.push(mockFetchResponse({
52
+ challengeId: "chal1",
53
+ nonce: "testNonce",
54
+ expiresAt: new Date().toISOString(),
55
+ }), mockFetchResponse({ token: "tok", expiresIn: 100 }));
56
+ await (0, services_client_1.registerWithServices)();
57
+ expect(fetchCalls[0].url).toBe(`${TEST_URL}/api/v1/auth/register`);
58
+ const body = JSON.parse(fetchCalls[0].init.body);
59
+ expect(body.userId).toBe(userId);
60
+ expect(body.publicKey).toBe(keys.publicKey);
61
+ expect(body.publicBoxKey).toBe(keys.publicBoxKey);
62
+ });
63
+ it("should send a properly signed challenge to /register/verify", async () => {
64
+ const nonce = "challenge_nonce_abc";
65
+ fetchResponses.push(mockFetchResponse({
66
+ challengeId: "chal99",
67
+ nonce,
68
+ expiresAt: new Date().toISOString(),
69
+ }), mockFetchResponse({ token: "jwt_result", expiresIn: 2592000 }));
70
+ await (0, services_client_1.registerWithServices)();
71
+ expect(fetchCalls[1].url).toBe(`${TEST_URL}/api/v1/auth/register/verify`);
72
+ const verifyBody = JSON.parse(fetchCalls[1].init.body);
73
+ expect(verifyBody.challengeId).toBe("chal99");
74
+ expect(verifyBody.signedChallenge).toBeDefined();
75
+ expect(verifyBody.signedChallenge.contents).toEqual({
76
+ nonce,
77
+ userId,
78
+ purpose: "peers-services-registration",
79
+ });
80
+ expect(verifyBody.signedChallenge.publicKey).toBe(keys.publicKey);
81
+ expect(verifyBody.signedChallenge.signature).toBeDefined();
82
+ });
83
+ it("should return null when user is already registered", async () => {
84
+ fetchResponses.push(mockFetchResponse({ status: "already_registered" }));
85
+ const result = await (0, services_client_1.registerWithServices)();
86
+ expect(result).toBeNull();
87
+ expect(fetchCalls).toHaveLength(1);
88
+ });
89
+ it("should throw on initiation failure", async () => {
90
+ fetchResponses.push(mockFetchResponse({ error: "Server error" }, 500));
91
+ await expect((0, services_client_1.registerWithServices)()).rejects.toThrow("Server error");
92
+ });
93
+ it("should throw on verification failure", async () => {
94
+ fetchResponses.push(mockFetchResponse({
95
+ challengeId: "chal1",
96
+ nonce: "n1",
97
+ expiresAt: new Date().toISOString(),
98
+ }), mockFetchResponse({ error: "Nonce mismatch." }, 401));
99
+ await expect((0, services_client_1.registerWithServices)()).rejects.toThrow("Nonce mismatch.");
100
+ });
101
+ });
102
+ // ── authenticateWithServices ─────────────────────────────────────────────────
103
+ describe("authenticateWithServices", () => {
104
+ it("should throw when client is not initialized", async () => {
105
+ (0, services_client_1.initServicesClient)("", null);
106
+ await expect((0, services_client_1.authenticateWithServices)()).rejects.toThrow(/not initialized/);
107
+ });
108
+ it("should send userId and publicKey to /authenticate", async () => {
109
+ fetchResponses.push(mockFetchResponse({
110
+ challengeId: "authChal1",
111
+ nonce: "authNonce",
112
+ expiresAt: new Date().toISOString(),
113
+ }), mockFetchResponse({ token: "auth_tok", expiresIn: 2592000 }));
114
+ await (0, services_client_1.authenticateWithServices)();
115
+ expect(fetchCalls[0].url).toBe(`${TEST_URL}/api/v1/auth/authenticate`);
116
+ const body = JSON.parse(fetchCalls[0].init.body);
117
+ expect(body.userId).toBe(userId);
118
+ expect(body.publicKey).toBe(keys.publicKey);
119
+ expect(body.publicBoxKey).toBeUndefined();
120
+ });
121
+ it("should sign challenge with authentication purpose", async () => {
122
+ const nonce = "auth_nonce_xyz";
123
+ fetchResponses.push(mockFetchResponse({
124
+ challengeId: "authChal2",
125
+ nonce,
126
+ expiresAt: new Date().toISOString(),
127
+ }), mockFetchResponse({ token: "auth_jwt", expiresIn: 2592000 }));
128
+ await (0, services_client_1.authenticateWithServices)();
129
+ const verifyBody = JSON.parse(fetchCalls[1].init.body);
130
+ expect(verifyBody.signedChallenge.contents).toEqual({
131
+ nonce,
132
+ userId,
133
+ purpose: "peers-services-authentication",
134
+ });
135
+ });
136
+ it("should throw on initiation failure (user not found)", async () => {
137
+ fetchResponses.push(mockFetchResponse({ error: "User not found. Register first." }, 404));
138
+ await expect((0, services_client_1.authenticateWithServices)()).rejects.toThrow(/not found/i);
139
+ });
140
+ });
141
+ // ── registerOrAuthenticate ───────────────────────────────────────────────────
142
+ describe("registerOrAuthenticate", () => {
143
+ it("should return token from registration when user is new", async () => {
144
+ fetchResponses.push(mockFetchResponse({
145
+ challengeId: "c1",
146
+ nonce: "n1",
147
+ expiresAt: new Date().toISOString(),
148
+ }), mockFetchResponse({ token: "new_user_token", expiresIn: 2592000 }));
149
+ const token = await (0, services_client_1.registerOrAuthenticate)();
150
+ expect(token).toBe("new_user_token");
151
+ expect(fetchCalls).toHaveLength(2);
152
+ });
153
+ it("should fall back to authentication when already registered", async () => {
154
+ fetchResponses.push(mockFetchResponse({ status: "already_registered" }), mockFetchResponse({
155
+ challengeId: "ac1",
156
+ nonce: "an1",
157
+ expiresAt: new Date().toISOString(),
158
+ }), mockFetchResponse({ token: "existing_user_token", expiresIn: 2592000 }));
159
+ const token = await (0, services_client_1.registerOrAuthenticate)();
160
+ expect(token).toBe("existing_user_token");
161
+ expect(fetchCalls).toHaveLength(3);
162
+ expect(fetchCalls[0].url).toContain("/register");
163
+ expect(fetchCalls[1].url).toContain("/authenticate");
164
+ expect(fetchCalls[2].url).toContain("/authenticate/verify");
165
+ });
166
+ });
167
+ //# sourceMappingURL=services-client.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"services-client.test.js","sourceRoot":"","sources":["../src/services-client.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peers-app/peers-device",
3
- "version": "0.16.0",
3
+ "version": "0.16.1",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "repository": {
@@ -39,12 +39,12 @@
39
39
  "socket.io-client": "^4.8.0"
40
40
  },
41
41
  "peerDependencies": {
42
- "@peers-app/peers-sdk": "^0.16.0"
42
+ "@peers-app/peers-sdk": "^0.16.1"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@biomejs/biome": "2.3.11",
46
46
  "@electron/rebuild": "^4.0.1",
47
- "@peers-app/peers-sdk": "0.16.0",
47
+ "@peers-app/peers-sdk": "0.16.1",
48
48
  "@types/diff-match-patch": "^1.0.36",
49
49
  "@types/jest": "^29.5.13",
50
50
  "@types/lodash": "^4.17.20",