@sockethub/irc2as 4.0.0-alpha.24 → 4.0.0-alpha.25
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 +12 -11
- package/dist/index.js.map +4 -4
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -47,7 +47,7 @@ class ASEmitter {
|
|
|
47
47
|
},
|
|
48
48
|
target: {
|
|
49
49
|
type: "room",
|
|
50
|
-
id: `${this.server}
|
|
50
|
+
id: `${channel}@${this.server}`,
|
|
51
51
|
name: channel
|
|
52
52
|
},
|
|
53
53
|
object: {
|
|
@@ -66,7 +66,7 @@ class ASEmitter {
|
|
|
66
66
|
},
|
|
67
67
|
target: {
|
|
68
68
|
type: "room",
|
|
69
|
-
id: `${this.server}
|
|
69
|
+
id: `${channel}@${this.server}`
|
|
70
70
|
},
|
|
71
71
|
error: content
|
|
72
72
|
});
|
|
@@ -122,7 +122,7 @@ class ASEmitter {
|
|
|
122
122
|
},
|
|
123
123
|
target: {
|
|
124
124
|
type: "room",
|
|
125
|
-
id: `${this.server}
|
|
125
|
+
id: `${channel}@${this.server}`,
|
|
126
126
|
name: channel
|
|
127
127
|
},
|
|
128
128
|
object: {
|
|
@@ -142,7 +142,7 @@ class ASEmitter {
|
|
|
142
142
|
},
|
|
143
143
|
target: {
|
|
144
144
|
type: "room",
|
|
145
|
-
id: `${this.server}
|
|
145
|
+
id: `${channel}@${this.server}`,
|
|
146
146
|
name: channel
|
|
147
147
|
}
|
|
148
148
|
});
|
|
@@ -177,7 +177,7 @@ class ASEmitter {
|
|
|
177
177
|
},
|
|
178
178
|
target: {
|
|
179
179
|
type: "room",
|
|
180
|
-
id: `${this.server}
|
|
180
|
+
id: `${channel}@${this.server}`,
|
|
181
181
|
name: channel
|
|
182
182
|
},
|
|
183
183
|
object: {
|
|
@@ -189,9 +189,10 @@ class ASEmitter {
|
|
|
189
189
|
privMsg(nick, target, content) {
|
|
190
190
|
let type;
|
|
191
191
|
let message;
|
|
192
|
-
|
|
192
|
+
const action = /^[+-]?\u0001ACTION ([\s\S]*?)\u0001?$/.exec(content);
|
|
193
|
+
if (action) {
|
|
193
194
|
type = "me";
|
|
194
|
-
message =
|
|
195
|
+
message = action[1];
|
|
195
196
|
} else {
|
|
196
197
|
type = "message";
|
|
197
198
|
message = content;
|
|
@@ -206,7 +207,7 @@ class ASEmitter {
|
|
|
206
207
|
},
|
|
207
208
|
target: {
|
|
208
209
|
type: target.startsWith("#") ? "room" : "person",
|
|
209
|
-
id: `${this.server}
|
|
210
|
+
id: `${target}@${this.server}`,
|
|
210
211
|
name: target
|
|
211
212
|
},
|
|
212
213
|
object: {
|
|
@@ -238,7 +239,7 @@ class ASEmitter {
|
|
|
238
239
|
},
|
|
239
240
|
object: {
|
|
240
241
|
type: "room",
|
|
241
|
-
id: `${this.server}
|
|
242
|
+
id: `${channel}@${this.server}`,
|
|
242
243
|
name: channel
|
|
243
244
|
}
|
|
244
245
|
}
|
|
@@ -454,7 +455,7 @@ class IrcToActivityStreams {
|
|
|
454
455
|
actor: undefined,
|
|
455
456
|
target: {
|
|
456
457
|
type: "room",
|
|
457
|
-
id: `${this.server}
|
|
458
|
+
id: `${channel}@${this.server}`,
|
|
458
459
|
name: channel
|
|
459
460
|
},
|
|
460
461
|
object: {
|
|
@@ -500,4 +501,4 @@ export {
|
|
|
500
501
|
IrcToActivityStreams
|
|
501
502
|
};
|
|
502
503
|
|
|
503
|
-
//# debugId=
|
|
504
|
+
//# debugId=08928A26404D98D064756E2164756E21
|
package/dist/index.js.map
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.js", "../src/as-emitter.js"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import events from \"node:events\";\nimport { ASEmitter } from \"./as-emitter.js\";\n\nconst EVENT_INCOMING = \"incoming\";\n// EVENT_ERROR = 'error',\nconst EVENT_PONG = \"pong\";\nconst EVENT_PING = \"ping\";\nconst EVENT_UNPROCESSED = \"unprocessed\";\n\nconst ERR_BAD_NICK = \"432\";\nconst ERR_CHAN_PRIVS = \"482\";\nconst ERR_NICK_IN_USE = \"433\";\nconst ERR_TEMP_UNAVAIL = \"437\";\nconst ERR_NO_CHANNEL = \"403\";\nconst ERR_NOT_INVITED = \"471\";\nconst ERR_BADMODE = \"472\";\nconst ERR_INVITE_ONLY = \"473\";\nconst ERR_BANNED = \"474\";\nconst ERR_BADKEY = \"475\";\nconst ERR_BADMASK = \"476\";\nconst ERR_NOCHANMODES = \"477\";\nconst ERR_BANLISTFULL = \"478\";\nconst JOIN = \"JOIN\";\nconst MODE = \"MODE\";\nconst MOTD = \"372\";\nconst MOTD_END = \"376\";\nconst NAMES = \"353\";\n// NAMES_END = \"366\",\nconst NICK = \"NICK\";\nconst NOTICE = \"NOTICE\";\nconst PART = \"PART\";\nconst PING = \"PING\";\nconst PONG = \"PONG\";\nconst PRIVMSG = \"PRIVMSG\";\nconst QUIT = \"QUIT\";\nconst TOPIC_CHANGE = \"TOPIC\";\nconst TOPIC_IS = \"332\";\nconst TOPIC_SET_BY = \"333\";\nconst WHO = \"352\";\nconst WHO_OLD = \"354\";\n// WHO_END = \"315\";\n\nconst ROLE = {\n \"@\": \"owner\",\n \"%\": \"admin\",\n \"*\": \"participant\",\n};\n\nconst MODES = {\n o: \"owner\",\n h: \"admin\",\n v: \"participant\",\n};\n\nfunction getNickFromServer(server) {\n return server.split(/^:/)[1].split(\"!\")[0];\n}\n\nexport class IrcToActivityStreams {\n constructor(cfg) {\n const config = cfg || {};\n this.server = config.server;\n if (!Array.isArray(config.contexts) || config.contexts.length === 0) {\n throw new Error(\n \"IrcToActivityStreams requires a non-empty contexts array\",\n );\n }\n this.contexts = [...config.contexts];\n this.events = new events.EventEmitter();\n this.__buffer = {};\n this.__buffer[NAMES] = {};\n }\n\n input(payload) {\n if (typeof payload !== \"string\") {\n return false;\n }\n if (payload.length < 3) {\n return false;\n }\n const incoming = payload.trim();\n const [metadata, content] = incoming.split(\" :\");\n const [server, code, pos1, pos2, pos3, ...msg] = metadata.split(\" \");\n const channel =\n typeof pos1 === \"string\" && pos1.startsWith(\"#\")\n ? pos1\n : typeof pos2 === \"string\" && pos2.startsWith(\"#\")\n ? pos2\n : typeof pos3 === \"string\" && pos3.startsWith(\"#\")\n ? pos3\n : undefined;\n if (metadata === PING) {\n this.events.emit(EVENT_PING, `${Date.now()}`);\n return true;\n }\n this.__processIRCCodes(\n code,\n server,\n channel,\n pos1,\n pos2,\n pos3,\n content,\n msg,\n incoming,\n );\n }\n\n __processIRCCodes(\n code,\n server,\n channel,\n pos1,\n pos2,\n pos3,\n content,\n msg,\n incoming,\n ) {\n const ase = new ASEmitter(this.events, this.server, this.contexts);\n let nick;\n let type;\n let role;\n\n switch (code) {\n /** */\n case ERR_CHAN_PRIVS:\n case ERR_NOT_INVITED:\n case ERR_BADMODE:\n case ERR_INVITE_ONLY:\n case ERR_BANNED:\n case ERR_BADKEY:\n case ERR_BADMASK:\n case ERR_NOCHANMODES:\n case ERR_BANLISTFULL:\n ase.channelError(channel, pos1, content);\n break;\n\n /** */\n case ERR_NICK_IN_USE: // nick conflict\n case ERR_BAD_NICK:\n ase.serviceError(pos2, content);\n break;\n\n /** */\n case ERR_NO_CHANNEL: // no such channel\n ase.joinError(pos2);\n break;\n\n /** */\n case ERR_TEMP_UNAVAIL: // nick conflict\n ase.nickError(pos2, content);\n break;\n\n /** */\n case JOIN: // room join\n ase.joinRoom(channel, getNickFromServer(server));\n break;\n\n // custom event indicating a channel mode has been updated, used to re-query user or channel\n case MODE: {\n const user_mode = pos2 || content;\n if (!channel) {\n break;\n } // don't handle cases with no channel defined\n if (!pos3) {\n break;\n } // we need target user\n role = MODES[user_mode[1]] || \"member\";\n type = \"add\";\n if (user_mode[0] === \"-\") {\n type = \"remove\";\n }\n ase.role(type, getNickFromServer(server), pos3, role, channel);\n break;\n }\n\n /** */\n case MOTD: // MOTD\n if (!this.__buffer[MOTD]) {\n this.__buffer[MOTD] = {\n \"@context\": this.contexts,\n type: \"update\",\n actor: {\n type: \"service\",\n id: this.server,\n name: this.server,\n },\n object: {\n type: \"topic\",\n content: content,\n },\n };\n } else {\n this.__buffer[MOTD].object.content += ` ${content}`;\n }\n break;\n case MOTD_END: // end of MOTD\n if (!this.__buffer[MOTD]) {\n break;\n }\n ase.emitEvent(EVENT_INCOMING, this.__buffer[MOTD]);\n delete this.__buffer[MOTD];\n break;\n\n /** */\n case NAMES: // user list\n for (const entry of content.split(\" \")) {\n role = \"member\";\n let username = entry;\n if (ROLE[entry[0]]) {\n username = entry.substr(1);\n role = ROLE[entry[0]];\n }\n ase.presence(username, role, channel);\n }\n break;\n\n /** */\n case NICK: // nick change\n // log(`- 2 nick: ${nick} from content: ${content}`);\n ase.nickChange(getNickFromServer(server), content);\n break;\n\n /** */\n case NOTICE: // notice\n ase.notice(pos1, content);\n break;\n\n /** */\n case PART: // leaving\n ase.userPart(channel, getNickFromServer(server));\n break;\n\n /** */\n case PONG: // ping response received\n this.events.emit(EVENT_PONG, `${Date.now()}`);\n break;\n\n /** */\n case PRIVMSG: // msg\n ase.privMsg(getNickFromServer(server), pos1, content);\n break;\n\n /** */\n case QUIT: // quit user\n ase.userQuit(getNickFromServer(server));\n break;\n\n /** */\n case TOPIC_CHANGE: // topic changed now\n ase.topicChange(channel, getNickFromServer(server), content);\n break;\n\n /** */\n case TOPIC_IS: // topic currently set to\n this.__buffer[TOPIC_IS] = {\n \"@context\": this.contexts,\n type: \"update\",\n actor: undefined,\n target: {\n type: \"room\",\n id: `${this.server}
|
|
6
|
-
"const EVENT_INCOMING = \"incoming\";\nconst EVENT_ERROR = \"error\";\n\nexport class ASEmitter {\n constructor(events, server, contexts) {\n if (!Array.isArray(contexts) || contexts.length === 0) {\n throw new Error(\n \"ASEmitter requires a non-empty contexts array from the caller\",\n );\n }\n this.server = server;\n this.events = events;\n this.contexts = [...contexts];\n }\n\n emitEvent(code, asObject) {\n if (typeof asObject === \"object\" && !asObject.published) {\n asObject.published = new Date().toISOString();\n }\n this.events.emit(code, asObject);\n }\n\n __generalError(nick, content) {\n return {\n \"@context\": this.contexts,\n type: \"update\",\n actor: {\n type: \"person\",\n id: `${nick}@${this.server}`,\n name: nick,\n },\n target: {\n type: \"service\",\n id: this.server,\n },\n error: content,\n };\n }\n\n presence(nick, role, channel) {\n this.emitEvent(EVENT_INCOMING, {\n \"@context\": this.contexts,\n type: \"update\",\n actor: {\n type: \"person\",\n id: `${nick}@${this.server}`,\n name: nick,\n },\n target: {\n type: \"room\",\n id: `${this.server}
|
|
5
|
+
"import events from \"node:events\";\nimport { ASEmitter } from \"./as-emitter.js\";\n\nconst EVENT_INCOMING = \"incoming\";\n// EVENT_ERROR = 'error',\nconst EVENT_PONG = \"pong\";\nconst EVENT_PING = \"ping\";\nconst EVENT_UNPROCESSED = \"unprocessed\";\n\nconst ERR_BAD_NICK = \"432\";\nconst ERR_CHAN_PRIVS = \"482\";\nconst ERR_NICK_IN_USE = \"433\";\nconst ERR_TEMP_UNAVAIL = \"437\";\nconst ERR_NO_CHANNEL = \"403\";\nconst ERR_NOT_INVITED = \"471\";\nconst ERR_BADMODE = \"472\";\nconst ERR_INVITE_ONLY = \"473\";\nconst ERR_BANNED = \"474\";\nconst ERR_BADKEY = \"475\";\nconst ERR_BADMASK = \"476\";\nconst ERR_NOCHANMODES = \"477\";\nconst ERR_BANLISTFULL = \"478\";\nconst JOIN = \"JOIN\";\nconst MODE = \"MODE\";\nconst MOTD = \"372\";\nconst MOTD_END = \"376\";\nconst NAMES = \"353\";\n// NAMES_END = \"366\",\nconst NICK = \"NICK\";\nconst NOTICE = \"NOTICE\";\nconst PART = \"PART\";\nconst PING = \"PING\";\nconst PONG = \"PONG\";\nconst PRIVMSG = \"PRIVMSG\";\nconst QUIT = \"QUIT\";\nconst TOPIC_CHANGE = \"TOPIC\";\nconst TOPIC_IS = \"332\";\nconst TOPIC_SET_BY = \"333\";\nconst WHO = \"352\";\nconst WHO_OLD = \"354\";\n// WHO_END = \"315\";\n\nconst ROLE = {\n \"@\": \"owner\",\n \"%\": \"admin\",\n \"*\": \"participant\",\n};\n\nconst MODES = {\n o: \"owner\",\n h: \"admin\",\n v: \"participant\",\n};\n\nfunction getNickFromServer(server) {\n return server.split(/^:/)[1].split(\"!\")[0];\n}\n\nexport class IrcToActivityStreams {\n constructor(cfg) {\n const config = cfg || {};\n this.server = config.server;\n if (!Array.isArray(config.contexts) || config.contexts.length === 0) {\n throw new Error(\n \"IrcToActivityStreams requires a non-empty contexts array\",\n );\n }\n this.contexts = [...config.contexts];\n this.events = new events.EventEmitter();\n this.__buffer = {};\n this.__buffer[NAMES] = {};\n }\n\n input(payload) {\n if (typeof payload !== \"string\") {\n return false;\n }\n if (payload.length < 3) {\n return false;\n }\n const incoming = payload.trim();\n const [metadata, content] = incoming.split(\" :\");\n const [server, code, pos1, pos2, pos3, ...msg] = metadata.split(\" \");\n const channel =\n typeof pos1 === \"string\" && pos1.startsWith(\"#\")\n ? pos1\n : typeof pos2 === \"string\" && pos2.startsWith(\"#\")\n ? pos2\n : typeof pos3 === \"string\" && pos3.startsWith(\"#\")\n ? pos3\n : undefined;\n if (metadata === PING) {\n this.events.emit(EVENT_PING, `${Date.now()}`);\n return true;\n }\n this.__processIRCCodes(\n code,\n server,\n channel,\n pos1,\n pos2,\n pos3,\n content,\n msg,\n incoming,\n );\n }\n\n __processIRCCodes(\n code,\n server,\n channel,\n pos1,\n pos2,\n pos3,\n content,\n msg,\n incoming,\n ) {\n const ase = new ASEmitter(this.events, this.server, this.contexts);\n let nick;\n let type;\n let role;\n\n switch (code) {\n /** */\n case ERR_CHAN_PRIVS:\n case ERR_NOT_INVITED:\n case ERR_BADMODE:\n case ERR_INVITE_ONLY:\n case ERR_BANNED:\n case ERR_BADKEY:\n case ERR_BADMASK:\n case ERR_NOCHANMODES:\n case ERR_BANLISTFULL:\n ase.channelError(channel, pos1, content);\n break;\n\n /** */\n case ERR_NICK_IN_USE: // nick conflict\n case ERR_BAD_NICK:\n ase.serviceError(pos2, content);\n break;\n\n /** */\n case ERR_NO_CHANNEL: // no such channel\n ase.joinError(pos2);\n break;\n\n /** */\n case ERR_TEMP_UNAVAIL: // nick conflict\n ase.nickError(pos2, content);\n break;\n\n /** */\n case JOIN: // room join\n ase.joinRoom(channel, getNickFromServer(server));\n break;\n\n // custom event indicating a channel mode has been updated, used to re-query user or channel\n case MODE: {\n const user_mode = pos2 || content;\n if (!channel) {\n break;\n } // don't handle cases with no channel defined\n if (!pos3) {\n break;\n } // we need target user\n role = MODES[user_mode[1]] || \"member\";\n type = \"add\";\n if (user_mode[0] === \"-\") {\n type = \"remove\";\n }\n ase.role(type, getNickFromServer(server), pos3, role, channel);\n break;\n }\n\n /** */\n case MOTD: // MOTD\n if (!this.__buffer[MOTD]) {\n this.__buffer[MOTD] = {\n \"@context\": this.contexts,\n type: \"update\",\n actor: {\n type: \"service\",\n id: this.server,\n name: this.server,\n },\n object: {\n type: \"topic\",\n content: content,\n },\n };\n } else {\n this.__buffer[MOTD].object.content += ` ${content}`;\n }\n break;\n case MOTD_END: // end of MOTD\n if (!this.__buffer[MOTD]) {\n break;\n }\n ase.emitEvent(EVENT_INCOMING, this.__buffer[MOTD]);\n delete this.__buffer[MOTD];\n break;\n\n /** */\n case NAMES: // user list\n for (const entry of content.split(\" \")) {\n role = \"member\";\n let username = entry;\n if (ROLE[entry[0]]) {\n username = entry.substr(1);\n role = ROLE[entry[0]];\n }\n ase.presence(username, role, channel);\n }\n break;\n\n /** */\n case NICK: // nick change\n // log(`- 2 nick: ${nick} from content: ${content}`);\n ase.nickChange(getNickFromServer(server), content);\n break;\n\n /** */\n case NOTICE: // notice\n ase.notice(pos1, content);\n break;\n\n /** */\n case PART: // leaving\n ase.userPart(channel, getNickFromServer(server));\n break;\n\n /** */\n case PONG: // ping response received\n this.events.emit(EVENT_PONG, `${Date.now()}`);\n break;\n\n /** */\n case PRIVMSG: // msg\n ase.privMsg(getNickFromServer(server), pos1, content);\n break;\n\n /** */\n case QUIT: // quit user\n ase.userQuit(getNickFromServer(server));\n break;\n\n /** */\n case TOPIC_CHANGE: // topic changed now\n ase.topicChange(channel, getNickFromServer(server), content);\n break;\n\n /** */\n case TOPIC_IS: // topic currently set to\n this.__buffer[TOPIC_IS] = {\n \"@context\": this.contexts,\n type: \"update\",\n actor: undefined,\n target: {\n type: \"room\",\n id: `${channel}@${this.server}`,\n name: channel,\n },\n object: {\n type: \"topic\",\n content: content,\n },\n };\n break;\n case TOPIC_SET_BY: {\n // current topic set by\n if (!this.__buffer[TOPIC_IS]) {\n break;\n }\n nick = pos3.split(\"!\")[0];\n this.__buffer[TOPIC_IS].actor = {\n type: \"person\",\n id: `${nick}@${this.server}`,\n name: nick,\n };\n // IRC RPL_TOPICWHOTIME (333) timestamp is Unix epoch seconds; normalize when valid\n const topicSetEpochSeconds = Number.parseInt(msg[0], 10);\n if (Number.isFinite(topicSetEpochSeconds)) {\n this.__buffer[TOPIC_IS].published = new Date(\n topicSetEpochSeconds * 1000,\n ).toISOString();\n }\n ase.emitEvent(EVENT_INCOMING, this.__buffer[TOPIC_IS]);\n delete this.__buffer[TOPIC_IS];\n break;\n }\n\n /** */\n case WHO:\n case WHO_OLD:\n nick = msg[3].length <= 2 ? msg[2] : msg[3];\n if (nick === \"undefined\") {\n break;\n }\n role = MODES[pos2[1]] || \"member\";\n ase.presence(nick, role, channel);\n break;\n\n /** */\n default:\n this.events.emit(EVENT_UNPROCESSED, incoming);\n break;\n }\n }\n}\n",
|
|
6
|
+
"const EVENT_INCOMING = \"incoming\";\nconst EVENT_ERROR = \"error\";\n\nexport class ASEmitter {\n constructor(events, server, contexts) {\n if (!Array.isArray(contexts) || contexts.length === 0) {\n throw new Error(\n \"ASEmitter requires a non-empty contexts array from the caller\",\n );\n }\n this.server = server;\n this.events = events;\n this.contexts = [...contexts];\n }\n\n emitEvent(code, asObject) {\n if (typeof asObject === \"object\" && !asObject.published) {\n asObject.published = new Date().toISOString();\n }\n this.events.emit(code, asObject);\n }\n\n __generalError(nick, content) {\n return {\n \"@context\": this.contexts,\n type: \"update\",\n actor: {\n type: \"person\",\n id: `${nick}@${this.server}`,\n name: nick,\n },\n target: {\n type: \"service\",\n id: this.server,\n },\n error: content,\n };\n }\n\n presence(nick, role, channel) {\n this.emitEvent(EVENT_INCOMING, {\n \"@context\": this.contexts,\n type: \"update\",\n actor: {\n type: \"person\",\n id: `${nick}@${this.server}`,\n name: nick,\n },\n target: {\n type: \"room\",\n id: `${channel}@${this.server}`,\n name: channel,\n },\n object: {\n type: \"presence\",\n role: role,\n },\n });\n }\n\n channelError(channel, nick, content) {\n this.emitEvent(EVENT_ERROR, {\n \"@context\": this.contexts,\n type: \"update\",\n actor: {\n type: \"person\",\n id: `${nick}@${this.server}`,\n },\n target: {\n type: \"room\",\n id: `${channel}@${this.server}`,\n },\n error: content,\n });\n }\n\n nickError(nick, content) {\n this.emitEvent(EVENT_ERROR, this.__generalError(nick, content));\n }\n\n notice(nick, content) {\n this.emitEvent(EVENT_INCOMING, {\n \"@context\": this.contexts,\n type: \"send\",\n actor: {\n type: \"service\",\n id: this.server,\n },\n object: {\n type: \"message\",\n content: content,\n },\n target: {\n type: \"person\",\n id: `${nick}@${this.server}`,\n name: nick,\n },\n });\n }\n\n serviceError(nick, content) {\n this.emitEvent(EVENT_ERROR, this.__generalError(nick, content));\n }\n\n joinError(nick) {\n this.emitEvent(EVENT_ERROR, {\n \"@context\": this.contexts,\n type: \"join\",\n actor: {\n id: this.server,\n type: \"service\",\n },\n error: `no such channel ${nick}`,\n target: {\n id: `${nick}@${this.server}`,\n type: \"person\",\n },\n });\n }\n\n topicChange(channel, nick, content) {\n this.emitEvent(EVENT_INCOMING, {\n \"@context\": this.contexts,\n type: \"update\",\n actor: {\n type: \"person\",\n id: `${nick}@${this.server}`,\n name: nick,\n },\n target: {\n type: \"room\",\n id: `${channel}@${this.server}`,\n name: channel,\n },\n object: {\n type: \"topic\",\n content: content,\n },\n });\n }\n\n joinRoom(channel, nick) {\n this.emitEvent(EVENT_INCOMING, {\n \"@context\": this.contexts,\n type: \"join\",\n actor: {\n type: \"person\",\n id: `${nick}@${this.server}`,\n name: nick,\n },\n target: {\n type: \"room\",\n id: `${channel}@${this.server}`,\n name: channel,\n },\n });\n }\n\n userQuit(nick) {\n this.emitEvent(EVENT_INCOMING, {\n \"@context\": this.contexts,\n type: \"leave\",\n actor: {\n type: \"person\",\n id: `${nick}@${this.server}`,\n name: nick,\n },\n target: {\n type: \"service\",\n id: this.server,\n },\n object: {\n type: \"message\",\n content: \"user has quit\",\n },\n });\n }\n\n userPart(channel, nick) {\n this.emitEvent(EVENT_INCOMING, {\n \"@context\": this.contexts,\n type: \"leave\",\n actor: {\n type: \"person\",\n id: `${nick}@${this.server}`,\n name: nick,\n },\n target: {\n type: \"room\",\n id: `${channel}@${this.server}`,\n name: channel,\n },\n object: {\n type: \"message\",\n content: \"user has left the channel\",\n },\n });\n }\n\n privMsg(nick, target, content) {\n let type;\n let message;\n // CTCP ACTION (/me) is framed as \\u0001ACTION <text>\\u0001. Servers\n // with the legacy `identify-msg` capability (freenode-era) prefix\n // the payload with \"+\" or \"-\"; modern servers send the bare framing.\n // The closing delimiter is optional on input: servers truncate\n // over-long lines, which can drop it, and the CTCP spec says parsers\n // should accept its absence.\n // biome-ignore lint/suspicious/noControlCharactersInRegex: IRC ACTION framing uses control chars\n const action = /^[+-]?\\u0001ACTION ([\\s\\S]*?)\\u0001?$/.exec(content);\n if (action) {\n type = \"me\";\n message = action[1];\n } else {\n type = \"message\";\n message = content;\n }\n this.emitEvent(EVENT_INCOMING, {\n \"@context\": this.contexts,\n type: \"send\",\n actor: {\n type: \"person\",\n id: `${nick}@${this.server}`,\n name: nick,\n },\n target: {\n type: target.startsWith(\"#\") ? \"room\" : \"person\",\n id: `${target}@${this.server}`,\n name: target,\n },\n object: {\n type: type,\n content: message,\n },\n });\n }\n\n role(type, nick, target, role, channel) {\n this.emitEvent(EVENT_INCOMING, {\n \"@context\": this.contexts,\n type: type,\n actor: {\n type: \"person\",\n id: `${nick}@${this.server}`,\n name: nick,\n },\n target: {\n type: \"person\",\n id: `${target}@${this.server}`,\n name: target,\n },\n object: {\n type: \"relationship\",\n relationship: \"role\",\n subject: {\n type: \"presence\",\n role: role,\n },\n object: {\n type: \"room\",\n id: `${channel}@${this.server}`,\n name: channel,\n },\n },\n });\n }\n\n nickChange(nick, content) {\n this.emitEvent(EVENT_INCOMING, {\n \"@context\": this.contexts,\n type: \"update\",\n actor: {\n type: \"person\",\n id: `${nick}@${this.server}`,\n name: nick,\n },\n target: {\n type: \"person\",\n id: `${content}@${this.server}`,\n name: content,\n },\n object: {\n type: \"address\",\n },\n });\n }\n}\n"
|
|
7
7
|
],
|
|
8
|
-
"mappings": ";AAAA;;;ACAA,IAAM,iBAAiB;AACvB,IAAM,cAAc;AAAA;AAEb,MAAM,UAAU;AAAA,EACnB,WAAW,CAAC,QAAQ,QAAQ,UAAU;AAAA,IAClC,IAAI,CAAC,MAAM,QAAQ,QAAQ,KAAK,SAAS,WAAW,GAAG;AAAA,MACnD,MAAM,IAAI,MACN,+DACJ;AAAA,IACJ;AAAA,IACA,KAAK,SAAS;AAAA,IACd,KAAK,SAAS;AAAA,IACd,KAAK,WAAW,CAAC,GAAG,QAAQ;AAAA;AAAA,EAGhC,SAAS,CAAC,MAAM,UAAU;AAAA,IACtB,IAAI,OAAO,aAAa,YAAY,CAAC,SAAS,WAAW;AAAA,MACrD,SAAS,YAAY,IAAI,KAAK,EAAE,YAAY;AAAA,IAChD;AAAA,IACA,KAAK,OAAO,KAAK,MAAM,QAAQ;AAAA;AAAA,EAGnC,cAAc,CAAC,MAAM,SAAS;AAAA,IAC1B,OAAO;AAAA,MACH,YAAY,KAAK;AAAA,MACjB,MAAM;AAAA,MACN,OAAO;AAAA,QACH,MAAM;AAAA,QACN,IAAI,GAAG,QAAQ,KAAK;AAAA,QACpB,MAAM;AAAA,MACV;AAAA,MACA,QAAQ;AAAA,QACJ,MAAM;AAAA,QACN,IAAI,KAAK;AAAA,MACb;AAAA,MACA,OAAO;AAAA,IACX;AAAA;AAAA,EAGJ,QAAQ,CAAC,MAAM,MAAM,SAAS;AAAA,IAC1B,KAAK,UAAU,gBAAgB;AAAA,MAC3B,YAAY,KAAK;AAAA,MACjB,MAAM;AAAA,MACN,OAAO;AAAA,QACH,MAAM;AAAA,QACN,IAAI,GAAG,QAAQ,KAAK;AAAA,QACpB,MAAM;AAAA,MACV;AAAA,MACA,QAAQ;AAAA,QACJ,MAAM;AAAA,QACN,IAAI,GAAG,KAAK
|
|
9
|
-
"debugId": "
|
|
8
|
+
"mappings": "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",
|
|
9
|
+
"debugId": "08928A26404D98D064756E2164756E21",
|
|
10
10
|
"names": []
|
|
11
11
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sockethub/irc2as",
|
|
3
|
-
"version": "4.0.0-alpha.
|
|
3
|
+
"version": "4.0.0-alpha.25",
|
|
4
4
|
"description": "IRC to ActivityStreams objects",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
"fast-deep-equal": "^3.1.3"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@sockethub/schemas": "^3.0.0-alpha.
|
|
48
|
+
"@sockethub/schemas": "^3.0.0-alpha.25"
|
|
49
49
|
},
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "1a76cff52a7b6f405fc607f1402bf2346ec5c40f",
|
|
51
51
|
"types": "./dist/index.d.ts"
|
|
52
52
|
}
|