@sockethub/platform-messenger 1.0.0-beta.3 → 1.0.0-beta.4

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.js CHANGED
@@ -2,7 +2,7 @@
2
2
  var package_default = {
3
3
  name: "@sockethub/platform-messenger",
4
4
  description: "Outgoing text messages through the Meta Messenger API",
5
- version: "1.0.0-beta.3",
5
+ version: "1.0.0-beta.4",
6
6
  type: "module",
7
7
  private: false,
8
8
  license: "LGPL-3.0+",
@@ -31,20 +31,20 @@ var package_default = {
31
31
  test: "bun test src/"
32
32
  },
33
33
  dependencies: {
34
- "@sockethub/schemas": "^3.0.0-beta.3"
34
+ "@sockethub/schemas": "^3.0.0-beta.4"
35
35
  },
36
36
  devDependencies: {
37
37
  "@types/bun": "latest"
38
38
  },
39
39
  peerDependencies: {
40
- "@sockethub/server": "^5.0.0-beta.3"
40
+ "@sockethub/server": "^5.0.0-beta.4"
41
41
  },
42
42
  peerDependenciesMeta: {
43
43
  "@sockethub/server": {
44
44
  optional: true
45
45
  }
46
46
  },
47
- gitHead: "bc04522d60d1e2fa1b3098b339897de62c3b0549"
47
+ gitHead: "639c296a7332f192a1b3f7e86ef6603b5b67bbaa"
48
48
  };
49
49
 
50
50
  // src/schema.ts
@@ -207,4 +207,4 @@ export {
207
207
  Messenger as default
208
208
  };
209
209
 
210
- //# debugId=26BEBDC5E9854B7964756E2164756E21
210
+ //# debugId=1738DB0DD344F04464756E2164756E21
package/dist/index.js.map CHANGED
@@ -6,6 +6,6 @@
6
6
  "import type {\n ActivityStream,\n CredentialsObject,\n Logger,\n PlatformCallback,\n PlatformInterface,\n PlatformSession,\n StatelessPlatformConfig,\n} from \"@sockethub/schemas\";\nimport { PlatformMessengerSchema } from \"./schema.js\";\n\nexport interface MessengerCredentials extends CredentialsObject {\n object: { type: \"credentials\"; token: string; apiVersion: string };\n}\n\nexport default class Messenger implements PlatformInterface {\n private readonly log: Logger;\n config: StatelessPlatformConfig = {\n persist: false,\n requireCredentials: [\"send\"],\n };\n\n constructor(session: PlatformSession) {\n this.log = session.log;\n }\n\n get schema() {\n return PlatformMessengerSchema;\n }\n\n isInitialized(): boolean {\n return true;\n }\n\n cleanup(done: PlatformCallback): void {\n done();\n }\n\n async send(\n job: ActivityStream,\n credentials: MessengerCredentials,\n done: PlatformCallback,\n ): Promise<void> {\n const { token, apiVersion } = credentials.object;\n const humanAgent = job.object.humanAgent === true;\n let result: ActivityStream;\n try {\n const response = await fetch(\n `https://graph.facebook.com/${apiVersion}/${encodeURIComponent(job.actor.id)}/messages`,\n {\n method: \"POST\",\n redirect: \"error\",\n headers: {\n authorization: `Bearer ${token}`,\n \"content-type\": \"application/json\",\n },\n body: JSON.stringify({\n recipient: { id: job.target.id },\n message: { text: job.object.content },\n messaging_type: humanAgent ? \"MESSAGE_TAG\" : \"RESPONSE\",\n ...(humanAgent ? { tag: \"HUMAN_AGENT\" } : {}),\n }),\n signal: AbortSignal.timeout(15_000),\n },\n );\n const data: unknown = await response.json();\n if (!data || typeof data !== \"object\") {\n throw new Error(\"messenger: invalid API response\");\n }\n if (\"error\" in data || !response.ok) {\n const error = \"error\" in data ? data.error : undefined;\n let detail = `HTTP ${response.status}`;\n if (error && typeof error === \"object\") {\n if (\"code\" in error && typeof error.code === \"number\") {\n detail += `, code ${error.code}`;\n }\n if (\n \"error_subcode\" in error &&\n typeof error.error_subcode === \"number\"\n ) {\n detail += `, subcode ${error.error_subcode}`;\n }\n if (\n \"message\" in error &&\n typeof error.message === \"string\"\n ) {\n detail += `: ${error.message.split(token).join(\"[redacted]\")}`;\n }\n }\n const windowClosed =\n error &&\n typeof error === \"object\" &&\n \"code\" in error &&\n error.code === 10 &&\n \"error_subcode\" in error &&\n (error.error_subcode === 2018278 ||\n error.error_subcode === 2534022);\n const reason = windowClosed\n ? \"meta:messaging-window-closed\"\n : \"messenger: send rejected\";\n throw new Error(`${reason} (${detail})`);\n }\n if (\n !(\"message_id\" in data) ||\n typeof data.message_id !== \"string\" ||\n !data.message_id\n ) {\n throw new Error(\"messenger: API response missing message_id\");\n }\n result = {\n ...job,\n object: { ...job.object, id: data.message_id },\n };\n } catch (error) {\n // Network errors may contain request details; never expose tokens.\n const failure =\n error instanceof Error &&\n (error.message.startsWith(\"messenger:\") ||\n error.message.startsWith(\"meta:messaging-window-closed\"))\n ? new Error(error.message.split(token).join(\"[redacted]\"))\n : new Error(\n \"messenger: send failed (network error, timeout, or invalid JSON); delivery is unknown\",\n );\n this.log.warn(`send failed for actor ${job.actor.id} on messenger`);\n done(failure);\n return;\n }\n done(null, result);\n }\n}\n"
7
7
  ],
8
8
  "mappings": "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",
9
- "debugId": "26BEBDC5E9854B7964756E2164756E21",
9
+ "debugId": "1738DB0DD344F04464756E2164756E21",
10
10
  "names": []
11
11
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sockethub/platform-messenger",
3
3
  "description": "Outgoing text messages through the Meta Messenger API",
4
- "version": "1.0.0-beta.3",
4
+ "version": "1.0.0-beta.4",
5
5
  "type": "module",
6
6
  "private": false,
7
7
  "license": "LGPL-3.0+",
@@ -30,18 +30,18 @@
30
30
  "test": "bun test src/"
31
31
  },
32
32
  "dependencies": {
33
- "@sockethub/schemas": "^3.0.0-beta.3"
33
+ "@sockethub/schemas": "^3.0.0-beta.4"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@types/bun": "latest"
37
37
  },
38
38
  "peerDependencies": {
39
- "@sockethub/server": "^5.0.0-beta.3"
39
+ "@sockethub/server": "^5.0.0-beta.4"
40
40
  },
41
41
  "peerDependenciesMeta": {
42
42
  "@sockethub/server": {
43
43
  "optional": true
44
44
  }
45
45
  },
46
- "gitHead": "603d4edd90e1f0f0b70c4ab759be5f70b24020ea"
46
+ "gitHead": "2839403a8add67c25f39e164d4ba24ddb8a7ed3e"
47
47
  }