@openlv/transport 0.0.1-beta.2
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/LICENSE +165 -0
- package/README.md +3 -0
- package/dist/base.d.ts +16 -0
- package/dist/base.js +13 -0
- package/dist/base.js.map +1 -0
- package/dist/connection.d.ts +57 -0
- package/dist/connection.js +757 -0
- package/dist/connection.js.map +1 -0
- package/dist/encryption/asymmetric.d.ts +22 -0
- package/dist/encryption/asymmetric.js +88 -0
- package/dist/encryption/asymmetric.js.map +1 -0
- package/dist/encryption/asymmetric.test.d.ts +1 -0
- package/dist/encryption/asymmetric.test.js +38 -0
- package/dist/encryption/asymmetric.test.js.map +1 -0
- package/dist/encryption/base64.d.ts +2 -0
- package/dist/encryption/base64.js +16 -0
- package/dist/encryption/base64.js.map +1 -0
- package/dist/encryption/base64.test.d.ts +1 -0
- package/dist/encryption/base64.test.js +21 -0
- package/dist/encryption/base64.test.js.map +1 -0
- package/dist/encryption/handshake.d.ts +10 -0
- package/dist/encryption/handshake.js +40 -0
- package/dist/encryption/handshake.js.map +1 -0
- package/dist/encryption/handshake.test.d.ts +1 -0
- package/dist/encryption/handshake.test.js +16 -0
- package/dist/encryption/handshake.test.js.map +1 -0
- package/dist/encryption/hash.d.ts +13 -0
- package/dist/encryption/hash.js +32 -0
- package/dist/encryption/hash.js.map +1 -0
- package/dist/encryption/index.d.ts +4 -0
- package/dist/encryption/index.js +5 -0
- package/dist/encryption/index.js.map +1 -0
- package/dist/encryption/random.d.ts +8 -0
- package/dist/encryption/random.js +21 -0
- package/dist/encryption/random.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/index.test.d.ts +1 -0
- package/dist/index.test.js +7 -0
- package/dist/index.test.js.map +1 -0
- package/dist/provider.d.ts +11 -0
- package/dist/provider.js +286 -0
- package/dist/provider.js.map +1 -0
- package/dist/session/index.d.ts +40 -0
- package/dist/session/index.js +95 -0
- package/dist/session/index.js.map +1 -0
- package/dist/session/index.test.d.ts +1 -0
- package/dist/session/index.test.js +32 -0
- package/dist/session/index.test.js.map +1 -0
- package/dist/signaling/base.d.ts +14 -0
- package/dist/signaling/base.js +2 -0
- package/dist/signaling/base.js.map +1 -0
- package/dist/signaling/index.d.ts +28 -0
- package/dist/signaling/index.js +152 -0
- package/dist/signaling/index.js.map +1 -0
- package/dist/signaling/index.test.d.ts +1 -0
- package/dist/signaling/index.test.js +62 -0
- package/dist/signaling/index.test.js.map +1 -0
- package/dist/signaling/messages/index.d.ts +48 -0
- package/dist/signaling/messages/index.js +2 -0
- package/dist/signaling/messages/index.js.map +1 -0
- package/dist/signaling/mqtt/index.d.ts +5 -0
- package/dist/signaling/mqtt/index.js +49 -0
- package/dist/signaling/mqtt/index.js.map +1 -0
- package/dist/signaling/mqtt.d.ts +31 -0
- package/dist/signaling/mqtt.js +152 -0
- package/dist/signaling/mqtt.js.map +1 -0
- package/dist/signaling/ntfy/index.d.ts +25 -0
- package/dist/signaling/ntfy/index.js +92 -0
- package/dist/signaling/ntfy/index.js.map +1 -0
- package/dist/signaling/ntfy/url.d.ts +12 -0
- package/dist/signaling/ntfy/url.js +37 -0
- package/dist/signaling/ntfy/url.js.map +1 -0
- package/dist/signaling/ntfy/url.test.d.ts +1 -0
- package/dist/signaling/ntfy/url.test.js +54 -0
- package/dist/signaling/ntfy/url.test.js.map +1 -0
- package/dist/transport/index.d.ts +11 -0
- package/dist/transport/index.js +8 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/transport/webrtc/index.d.ts +1 -0
- package/dist/transport/webrtc/index.js +70 -0
- package/dist/transport/webrtc/index.js.map +1 -0
- package/dist/types.d.ts +56 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/encryption.d.ts +86 -0
- package/dist/utils/encryption.js +243 -0
- package/dist/utils/encryption.js.map +1 -0
- package/dist/utils/url.d.ts +3 -0
- package/dist/utils/url.js +66 -0
- package/dist/utils/url.js.map +1 -0
- package/dist/utils/url.test.d.ts +1 -0
- package/dist/utils/url.test.js +29 -0
- package/dist/utils/url.test.js.map +1 -0
- package/dist/webrtc/index.d.ts +1 -0
- package/dist/webrtc/index.js +70 -0
- package/dist/webrtc/index.js.map +1 -0
- package/package.json +58 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
export const encodeConnectionURL = (payload) => {
|
|
2
|
+
const params = new URLSearchParams();
|
|
3
|
+
params.set('h', payload.h);
|
|
4
|
+
params.set('k', payload.k);
|
|
5
|
+
if (payload.p) {
|
|
6
|
+
params.set('p', payload.p);
|
|
7
|
+
}
|
|
8
|
+
if (payload.s) {
|
|
9
|
+
params.set('s', payload.s);
|
|
10
|
+
}
|
|
11
|
+
return `openlv://${payload.sessionId}?${params.toString()}`;
|
|
12
|
+
};
|
|
13
|
+
export const decodeConnectionURL = (url) => {
|
|
14
|
+
// Type check and validation
|
|
15
|
+
if (typeof url !== 'string') {
|
|
16
|
+
throw new Error(`Invalid URL type: expected string, got ${typeof url}`);
|
|
17
|
+
}
|
|
18
|
+
if (!url || url.trim() === '') {
|
|
19
|
+
throw new Error('URL cannot be empty');
|
|
20
|
+
}
|
|
21
|
+
if (!url.startsWith('openlv://')) {
|
|
22
|
+
throw new Error(`Invalid URL format: must start with 'openlv://', got: ${url}`);
|
|
23
|
+
}
|
|
24
|
+
try {
|
|
25
|
+
const urlObj = new URL(url);
|
|
26
|
+
const sessionId = urlObj.hostname || urlObj.pathname.replace('/', '');
|
|
27
|
+
const h = urlObj.searchParams.get('h') || '';
|
|
28
|
+
const k = urlObj.searchParams.get('k') || '';
|
|
29
|
+
const s = urlObj.searchParams.get('s') || undefined;
|
|
30
|
+
const p = urlObj.searchParams.get('p') || 'mqtt';
|
|
31
|
+
if (!sessionId) {
|
|
32
|
+
throw new Error('Session ID is required in URL');
|
|
33
|
+
}
|
|
34
|
+
// Validate session ID format (16 characters, URL-safe alphabet)
|
|
35
|
+
if (!/^[A-Za-z0-9_-]{16}$/.test(sessionId)) {
|
|
36
|
+
throw new Error('Invalid session ID format: must be 16 URL-safe characters');
|
|
37
|
+
}
|
|
38
|
+
if (!h) {
|
|
39
|
+
throw new Error('Public key hash (h parameter) is required in URL');
|
|
40
|
+
}
|
|
41
|
+
// Validate public key hash format (16 hex characters)
|
|
42
|
+
if (!/^[0-9a-f]{16}$/.test(h)) {
|
|
43
|
+
throw new Error('Invalid public key hash format: must be 16 hex characters');
|
|
44
|
+
}
|
|
45
|
+
if (!k) {
|
|
46
|
+
throw new Error('Shared key (k parameter) is required in URL');
|
|
47
|
+
}
|
|
48
|
+
// Validate shared key format (32 hex characters)
|
|
49
|
+
if (!/^[0-9a-f]{32}$/.test(k)) {
|
|
50
|
+
throw new Error('Invalid shared key format: must be 32 hex characters, received: ' + k);
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
sessionId,
|
|
54
|
+
h,
|
|
55
|
+
k,
|
|
56
|
+
// TODO: figure out why '' empty string and not undefined
|
|
57
|
+
s: s ? decodeURIComponent(s) : '',
|
|
58
|
+
p,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
63
|
+
throw new Error(`Failed to parse URL: ${url}. Original error: ${errorMessage}`);
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/utils/url.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { describe, expect, test } from 'vitest';
|
|
2
|
+
import { decodeConnectionURL, encodeConnectionURL } from './url.js';
|
|
3
|
+
const testCases = [
|
|
4
|
+
{
|
|
5
|
+
url: 'openlv://k7n8m9x2w5q1p3r6?h=a1b2c3d4e5f60708&k=0123456789abcdef0123456789abcdef&p=mqtt&s=wss%3A%2F%2Ftest.mosquitto.org%3A8081%2Fmqtt',
|
|
6
|
+
expected: {
|
|
7
|
+
sessionId: 'k7n8m9x2w5q1p3r6',
|
|
8
|
+
h: 'a1b2c3d4e5f60708',
|
|
9
|
+
k: '0123456789abcdef0123456789abcdef',
|
|
10
|
+
p: 'mqtt',
|
|
11
|
+
s: 'wss://test.mosquitto.org:8081/mqtt',
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
];
|
|
15
|
+
describe('URL Utilities', () => {
|
|
16
|
+
test('should decode connection URL', () => {
|
|
17
|
+
testCases.forEach((testCase) => {
|
|
18
|
+
const result = decodeConnectionURL(testCase.url);
|
|
19
|
+
expect(result).toEqual(testCase.expected);
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
test('should encode connection URL', () => {
|
|
23
|
+
testCases.forEach((testCase) => {
|
|
24
|
+
const result = encodeConnectionURL(testCase.expected);
|
|
25
|
+
expect(result).toEqual(testCase.url);
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=url.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.test.js","sourceRoot":"","sources":["../../src/utils/url.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEpE,MAAM,SAAS,GAAG;IACd;QACI,GAAG,EAAE,uIAAuI;QAC5I,QAAQ,EAAE;YACN,SAAS,EAAE,kBAAkB;YAC7B,CAAC,EAAE,kBAAkB;YACrB,CAAC,EAAE,kCAAkC;YACrC,CAAC,EAAE,MAAM;YACT,CAAC,EAAE,oCAAoC;SAC1C;KACJ;CACJ,CAAC;AAEF,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC3B,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC3B,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAEjD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC3B,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAEtD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const webrtc: () => import("../base.js").TransportLayer;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { createTransportLayerBase } from "../base.js";
|
|
2
|
+
export const webrtc = () => {
|
|
3
|
+
return createTransportLayerBase({
|
|
4
|
+
type: "webrtc",
|
|
5
|
+
setup() {
|
|
6
|
+
//
|
|
7
|
+
// const iceServers = [
|
|
8
|
+
// { urls: 'stun:stun.l.google.com:19302' },
|
|
9
|
+
// { urls: 'stun:stun1.l.google.com:19302' },
|
|
10
|
+
// { urls: 'stun:stun.services.mozilla.com:3478' },
|
|
11
|
+
// {
|
|
12
|
+
// urls: ['turn:openrelay.metered.ca:80', 'turn:openrelay.metered.ca:443'],
|
|
13
|
+
// username: 'openrelayproject',
|
|
14
|
+
// credential: 'openrelayproject',
|
|
15
|
+
// },
|
|
16
|
+
// ];
|
|
17
|
+
// this.peerConnection = new RTCPeerConnection({
|
|
18
|
+
// iceServers,
|
|
19
|
+
// iceCandidatePoolSize: 10,
|
|
20
|
+
// iceTransportPolicy: 'all',
|
|
21
|
+
// bundlePolicy: 'max-bundle',
|
|
22
|
+
// rtcpMuxPolicy: 'require',
|
|
23
|
+
// });
|
|
24
|
+
// // Connection state handlers
|
|
25
|
+
// this.peerConnection.onconnectionstatechange = () => {
|
|
26
|
+
// const state = this.peerConnection!.connectionState;
|
|
27
|
+
// console.log('WebRTC connection state:', state);
|
|
28
|
+
// if (state === 'connected') {
|
|
29
|
+
// this.updateConnectionState('webrtc-connected', 'Direct P2P connection established');
|
|
30
|
+
// } else if (state === 'failed') {
|
|
31
|
+
// this.retryWebRTC();
|
|
32
|
+
// } else if (state === 'connecting') {
|
|
33
|
+
// this.updateConnectionState('webrtc-negotiating', 'Establishing P2P connection...');
|
|
34
|
+
// }
|
|
35
|
+
// };
|
|
36
|
+
// // ICE candidate handler
|
|
37
|
+
// this.peerConnection.onicecandidate = async (event) => {
|
|
38
|
+
// if (event.candidate && this.peerPublicKey) {
|
|
39
|
+
// const encryptedCandidate = await EncryptionUtils.encryptMessage(
|
|
40
|
+
// event.candidate,
|
|
41
|
+
// this.peerPublicKey,
|
|
42
|
+
// this.privateKey!,
|
|
43
|
+
// this.publicKey!
|
|
44
|
+
// );
|
|
45
|
+
// await this.signaling.publish({
|
|
46
|
+
// type: 'ice-candidate',
|
|
47
|
+
// payload: encryptedCandidate,
|
|
48
|
+
// sessionId: this.sessionId!,
|
|
49
|
+
// timestamp: Date.now(),
|
|
50
|
+
// senderId: this.peerId,
|
|
51
|
+
// });
|
|
52
|
+
// }
|
|
53
|
+
// };
|
|
54
|
+
// // Data channel setup
|
|
55
|
+
// if (this.isInitiator) {
|
|
56
|
+
// this.dataChannel = this.peerConnection.createDataChannel('openlv-data');
|
|
57
|
+
// this.setupDataChannel();
|
|
58
|
+
// } else {
|
|
59
|
+
// this.peerConnection.ondatachannel = (event) => {
|
|
60
|
+
// this.dataChannel = event.channel;
|
|
61
|
+
// this.setupDataChannel();
|
|
62
|
+
// };
|
|
63
|
+
// }
|
|
64
|
+
},
|
|
65
|
+
teardown() {
|
|
66
|
+
//
|
|
67
|
+
},
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/webrtc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,EAAE;IACzB,OAAO,wBAAwB,CAAC;QAC9B,IAAI,EAAE,QAAQ;QACd,KAAK;YACH,EAAE;YACF,uBAAuB;YACvB,gDAAgD;YAChD,iDAAiD;YACjD,uDAAuD;YACvD,QAAQ;YACR,mFAAmF;YACnF,wCAAwC;YACxC,0CAA0C;YAC1C,SAAS;YACT,KAAK;YACL,gDAAgD;YAChD,kBAAkB;YAClB,gCAAgC;YAChC,iCAAiC;YACjC,kCAAkC;YAClC,gCAAgC;YAChC,MAAM;YACN,+BAA+B;YAC/B,wDAAwD;YACxD,0DAA0D;YAC1D,sDAAsD;YACtD,mCAAmC;YACnC,+FAA+F;YAC/F,uCAAuC;YACvC,8BAA8B;YAC9B,2CAA2C;YAC3C,8FAA8F;YAC9F,QAAQ;YACR,KAAK;YACL,2BAA2B;YAC3B,0DAA0D;YAC1D,mDAAmD;YACnD,2EAA2E;YAC3E,+BAA+B;YAC/B,kCAAkC;YAClC,gCAAgC;YAChC,8BAA8B;YAC9B,aAAa;YACb,yCAAyC;YACzC,qCAAqC;YACrC,2CAA2C;YAC3C,0CAA0C;YAC1C,qCAAqC;YACrC,qCAAqC;YACrC,cAAc;YACd,QAAQ;YACR,KAAK;YACL,wBAAwB;YACxB,0BAA0B;YAC1B,+EAA+E;YAC/E,+BAA+B;YAC/B,WAAW;YACX,uDAAuD;YACvD,4CAA4C;YAC5C,mCAAmC;YACnC,SAAS;YACT,IAAI;QACN,CAAC;QACD,QAAQ;YACN,EAAE;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@openlv/transport",
|
|
3
|
+
"version": "0.0.1-beta.2",
|
|
4
|
+
"license": "LGPL-3.0-only",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"open-lavatory"
|
|
7
|
+
],
|
|
8
|
+
"homepage": "https://github.com/v3xlabs/open-lavatory",
|
|
9
|
+
"bugs": {
|
|
10
|
+
"url": "https://github.com/v3xlabs/open-lavatory/issues"
|
|
11
|
+
},
|
|
12
|
+
"repository": {
|
|
13
|
+
"type": "git",
|
|
14
|
+
"url": "https://github.com/v3xlabs/open-lavatory.git",
|
|
15
|
+
"directory": "packages/transport"
|
|
16
|
+
},
|
|
17
|
+
"author": {
|
|
18
|
+
"name": "Open-Lavatory",
|
|
19
|
+
"url": "https://github.com/v3xlabs/open-lavatory"
|
|
20
|
+
},
|
|
21
|
+
"type": "module",
|
|
22
|
+
"main": "./dist/index.js",
|
|
23
|
+
"exports": {
|
|
24
|
+
".": {
|
|
25
|
+
"types": "./dist/index.d.ts",
|
|
26
|
+
"import": "./dist/index.js",
|
|
27
|
+
"default": "./dist/index.js"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"types": "./dist/index.d.ts",
|
|
31
|
+
"files": [
|
|
32
|
+
"dist",
|
|
33
|
+
"README.md"
|
|
34
|
+
],
|
|
35
|
+
"sideEffects": false,
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"eventemitter3": "^5.0.1",
|
|
38
|
+
"globals": "^16.2.0",
|
|
39
|
+
"ts-pattern": "^5"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"typescript": "^5",
|
|
43
|
+
"vitest": "^4"
|
|
44
|
+
},
|
|
45
|
+
"peerDependencies": {
|
|
46
|
+
"@wagmi/core": "2",
|
|
47
|
+
"viem": "2",
|
|
48
|
+
"wagmi": "2"
|
|
49
|
+
},
|
|
50
|
+
"publishConfig": {
|
|
51
|
+
"access": "public",
|
|
52
|
+
"tag": "beta"
|
|
53
|
+
},
|
|
54
|
+
"scripts": {
|
|
55
|
+
"build": "tsc",
|
|
56
|
+
"test": "vitest"
|
|
57
|
+
}
|
|
58
|
+
}
|