fb-messenger-e2ee 0.1.1 → 0.1.3
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/DOCS.md +41 -3
- package/README.md +27 -2
- package/dist/index.cjs +9017 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +910 -0
- package/dist/index.d.ts +910 -0
- package/dist/index.js +9049 -0
- package/dist/index.js.map +1 -0
- package/package.json +19 -4
- package/bun.lock +0 -1014
- package/examples/basic-usage.ts +0 -52
- package/jest.config.ts +0 -18
- package/src/config/env.ts +0 -15
- package/src/controllers/client.controller.ts +0 -805
- package/src/controllers/dgw-handler.ts +0 -171
- package/src/controllers/e2ee-handler.ts +0 -832
- package/src/controllers/event-mapper.ts +0 -327
- package/src/core/client.ts +0 -151
- package/src/e2ee/application/e2ee-client.ts +0 -376
- package/src/e2ee/application/fanout-planner.ts +0 -79
- package/src/e2ee/application/outbound-message-cache.ts +0 -58
- package/src/e2ee/application/prekey-maintenance.ts +0 -55
- package/src/e2ee/application/retry-manager.ts +0 -156
- package/src/e2ee/facebook/facebook-protocol-utils.ts +0 -230
- package/src/e2ee/facebook/icdc-payload.ts +0 -31
- package/src/e2ee/index.ts +0 -76
- package/src/e2ee/internal.ts +0 -27
- package/src/e2ee/media/media-crypto.ts +0 -147
- package/src/e2ee/media/media-upload.ts +0 -90
- package/src/e2ee/message/builders/client-payload.ts +0 -54
- package/src/e2ee/message/builders/consumer-application.ts +0 -362
- package/src/e2ee/message/builders/message-application.ts +0 -64
- package/src/e2ee/message/builders/message-transport.ts +0 -84
- package/src/e2ee/message/codecs/protobuf-codecs.ts +0 -101
- package/src/e2ee/message/constants.ts +0 -4
- package/src/e2ee/message/message-builder.ts +0 -15
- package/src/e2ee/signal/prekey-manager.ts +0 -140
- package/src/e2ee/signal/signal-manager.ts +0 -365
- package/src/e2ee/store/device-json.ts +0 -47
- package/src/e2ee/store/device-repository.ts +0 -12
- package/src/e2ee/store/device-store.ts +0 -538
- package/src/e2ee/transport/binary/decoder.ts +0 -180
- package/src/e2ee/transport/binary/encoder.ts +0 -143
- package/src/e2ee/transport/binary/stanzas.ts +0 -97
- package/src/e2ee/transport/binary/tokens.ts +0 -64
- package/src/e2ee/transport/binary/wa-binary.ts +0 -8
- package/src/e2ee/transport/dgw/dgw-socket.ts +0 -345
- package/src/e2ee/transport/noise/noise-handshake.ts +0 -417
- package/src/e2ee/transport/noise/noise-socket.ts +0 -230
- package/src/index.ts +0 -34
- package/src/models/client.ts +0 -26
- package/src/models/config.ts +0 -14
- package/src/models/domain.ts +0 -299
- package/src/models/e2ee.ts +0 -295
- package/src/models/media.ts +0 -41
- package/src/models/messaging.ts +0 -88
- package/src/models/thread.ts +0 -69
- package/src/repositories/session.repository.ts +0 -20
- package/src/services/auth.service.ts +0 -55
- package/src/services/e2ee.service.ts +0 -174
- package/src/services/facebook-gateway.service.ts +0 -245
- package/src/services/icdc.service.ts +0 -177
- package/src/services/media.service.ts +0 -304
- package/src/services/messaging.service.ts +0 -28
- package/src/services/thread.service.ts +0 -199
- package/src/types/advanced-types.ts +0 -61
- package/src/types/fca-unofficial.d.ts +0 -212
- package/src/types/protocol-types.ts +0 -43
- package/src/utils/fca-utils.ts +0 -30
- package/src/utils/logger.ts +0 -24
- package/src/utils/mime.ts +0 -51
- package/tests/.env.example +0 -87
- package/tests/data/1x1.png +0 -0
- package/tests/data/example.txt +0 -1
- package/tests/data/file_example.mp3 +0 -0
- package/tests/data/file_example.mp4 +0 -0
- package/tests/integration.test.ts +0 -498
- package/tests/script/echo-e2ee.ts +0 -174
- package/tests/script/send-e2ee-media.ts +0 -227
- package/tests/script/send-e2ee-reaction.ts +0 -108
- package/tests/script/send-e2ee-unsend.ts +0 -115
- package/tests/script/send-typing.ts +0 -107
- package/tests/script/test-group-send.ts +0 -105
- package/tests/setup.ts +0 -3
- package/tests/types.test.ts +0 -57
- package/tests/unit/controllers/dgw-handler.test.ts +0 -60
- package/tests/unit/controllers/e2ee-handler.test.ts +0 -293
- package/tests/unit/controllers/event-mapper.test.ts +0 -252
- package/tests/unit/e2ee/application-helpers.test.ts +0 -418
- package/tests/unit/e2ee/device-store.test.ts +0 -126
- package/tests/unit/e2ee/facebook-protocol-utils.test.ts +0 -134
- package/tests/unit/e2ee/media-crypto.test.ts +0 -55
- package/tests/unit/e2ee/media-upload.test.ts +0 -60
- package/tests/unit/e2ee/message-builder.test.ts +0 -42
- package/tests/unit/e2ee/message-builders.test.ts +0 -230
- package/tests/unit/e2ee/noise-handshake.test.ts +0 -260
- package/tests/unit/e2ee/prekey-manager.test.ts +0 -55
- package/tests/unit/e2ee/wa-binary.test.ts +0 -127
- package/tests/unit/services/e2ee.service.test.ts +0 -101
- package/tests/unit/services/facebook-gateway.service.test.ts +0 -138
- package/tests/unit/services/media.service.test.ts +0 -169
- package/tests/unit/utils/fca-utils.test.ts +0 -48
- package/tsconfig.json +0 -19
- /package/{src/e2ee/message/proto → proto}/ArmadilloApplication.proto +0 -0
- /package/{src/e2ee/message/proto → proto}/ArmadilloICDC.proto +0 -0
- /package/{src/e2ee/message/proto → proto}/ConsumerApplication.proto +0 -0
- /package/{src/e2ee/message/proto → proto}/MessageApplication.proto +0 -0
- /package/{src/e2ee/message/proto → proto}/MessageTransport.proto +0 -0
- /package/{src/e2ee/message/proto → proto}/WACommon.proto +0 -0
- /package/{src/e2ee/message/proto → proto}/WAMediaTransport.proto +0 -0
- /package/{src/e2ee/message/proto → proto}/proto-writer.ts +0 -0
package/DOCS.md
CHANGED
|
@@ -144,14 +144,52 @@ await client.sendReaction({
|
|
|
144
144
|
});
|
|
145
145
|
```
|
|
146
146
|
|
|
147
|
-
### `unsendMessage(
|
|
147
|
+
### `unsendMessage(input: UnsendMessageInput)`
|
|
148
148
|
|
|
149
|
-
Un-sends/revokes an E2EE message you previously sent.
|
|
149
|
+
Un-sends/revokes an E2EE message you previously sent.
|
|
150
|
+
You must provide the exact `messageId`.
|
|
151
|
+
Providing the `threadId` is highly recommended to ensure the E2EE client knows the destination JID.
|
|
150
152
|
|
|
151
153
|
```typescript
|
|
152
|
-
await client.unsendMessage(
|
|
154
|
+
await client.unsendMessage({
|
|
155
|
+
messageId: sent.messageId,
|
|
156
|
+
threadId: "1234567890.0@msgr"
|
|
157
|
+
});
|
|
153
158
|
```
|
|
154
159
|
|
|
160
|
+
**UnsendMessageInput**
|
|
161
|
+
|
|
162
|
+
| Field | Type | Description |
|
|
163
|
+
|---|---|---|
|
|
164
|
+
| `messageId` | `string` | The message ID to revoke. |
|
|
165
|
+
| `threadId` | `string` | Optional but highly recommended target thread identifier. |
|
|
166
|
+
| `fromMe` | `boolean` | Optional flag indicating if the message was sent by you (defaults to `true`). |
|
|
167
|
+
|
|
168
|
+
### `editMessage(input: E2EEEditMessageInput)`
|
|
169
|
+
|
|
170
|
+
Edits the text of an E2EE message you previously sent.
|
|
171
|
+
You must provide the exact `messageId` (the 15-digit numeric ID returned by `sendMessage`) and the `threadId`.
|
|
172
|
+
|
|
173
|
+
```typescript
|
|
174
|
+
const sent = await client.sendMessage({ threadId: "1234567890.0@msgr", text: "oops" });
|
|
175
|
+
const messageId = sent.messageId as string;
|
|
176
|
+
|
|
177
|
+
// ... a few seconds later
|
|
178
|
+
await client.editMessage({
|
|
179
|
+
threadId: "1234567890.0@msgr",
|
|
180
|
+
messageId,
|
|
181
|
+
newText: "corrected message",
|
|
182
|
+
});
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
**E2EEEditMessageInput**
|
|
186
|
+
|
|
187
|
+
| Field | Type | Description |
|
|
188
|
+
|---|---|---|
|
|
189
|
+
| `threadId` | `string` | The thread ID (E2EE chat JID) containing the message. |
|
|
190
|
+
| `messageId` | `string` | The message ID to edit. |
|
|
191
|
+
| `newText` | `string` | The replacement text content. |
|
|
192
|
+
|
|
155
193
|
### `sendTyping(input: TypingInput)`
|
|
156
194
|
|
|
157
195
|
Sends E2EE chatstate (`composing` / `paused`) over the Noise socket.
|
package/README.md
CHANGED
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
- **Language**: [TypeScript](https://www.typescriptlang.org/)
|
|
29
29
|
- **Encryption**: [@signalapp/libsignal-client](https://github.com/signalapp/libsignal-client)
|
|
30
30
|
- **Protocol**: ProtobufJS + manual WA-binary/protobuf encoders
|
|
31
|
-
- **Auth bootstrap bridge**: [fca-unofficial](https://github.com/VangBanLaNhat/fca-unofficial) is used internally only for appState login/CAT bootstrap
|
|
31
|
+
- **Auth bootstrap bridge**: [fca-unofficial](https://github.com/VangBanLaNhat/fca-unofficial) is used internally only for appState login/CAT bootstrap
|
|
32
32
|
|
|
33
33
|
---
|
|
34
34
|
|
|
@@ -44,6 +44,18 @@ bun add fb-messenger-e2ee
|
|
|
44
44
|
|
|
45
45
|
### 2. Basic Usage
|
|
46
46
|
|
|
47
|
+
|
|
48
|
+
#### ESM (TypeScript / Modern Node.js)
|
|
49
|
+
```typescript
|
|
50
|
+
import { FBClient } from "fb-messenger-e2ee";
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
#### CommonJS (Legacy Node.js)
|
|
54
|
+
```javascript
|
|
55
|
+
const { FBClient } = require("fb-messenger-e2ee");
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
#### Example
|
|
47
59
|
```typescript
|
|
48
60
|
import { FBClient } from "fb-messenger-e2ee";
|
|
49
61
|
|
|
@@ -130,10 +142,23 @@ src/
|
|
|
130
142
|
|
|
131
143
|
---
|
|
132
144
|
|
|
133
|
-
##
|
|
145
|
+
## Build & Development
|
|
134
146
|
|
|
147
|
+
### Build
|
|
148
|
+
Generate ESM and CommonJS bundles in the `dist/` directory:
|
|
149
|
+
```bash
|
|
150
|
+
npm run build
|
|
151
|
+
# or
|
|
152
|
+
bun run build
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Type Check
|
|
135
156
|
```bash
|
|
136
157
|
npm run typecheck
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Testing
|
|
161
|
+
```bash
|
|
137
162
|
npm test -- --runInBand
|
|
138
163
|
```
|
|
139
164
|
|