@sockethub/server 5.0.0-alpha.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/LICENSE +165 -0
- package/README.md +136 -0
- package/bin/sockethub +3 -0
- package/coverage/tmp/coverage-93126-1649152190997-0.json +1 -0
- package/dist/bootstrap/init.d.ts +18 -0
- package/dist/bootstrap/init.js +63 -0
- package/dist/bootstrap/init.js.map +1 -0
- package/dist/bootstrap/platforms.js +75 -0
- package/dist/common.d.ts +3 -0
- package/dist/common.js +20 -0
- package/dist/common.js.map +1 -0
- package/dist/config.d.ts +6 -0
- package/dist/config.js +102 -0
- package/dist/config.js.map +1 -0
- package/dist/crypto.d.ts +10 -0
- package/dist/crypto.js +38 -0
- package/dist/crypto.js.map +1 -0
- package/dist/defaults.json +28 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/dist/janitor.d.ts +15 -0
- package/dist/janitor.js +89 -0
- package/dist/janitor.js.map +1 -0
- package/dist/listener.d.ts +28 -0
- package/dist/listener.js +91 -0
- package/dist/listener.js.map +1 -0
- package/dist/middleware/create-activity-object.d.ts +6 -0
- package/dist/middleware/create-activity-object.js +19 -0
- package/dist/middleware/create-activity-object.js.map +1 -0
- package/dist/middleware/expand-activity-stream.d.ts +2 -0
- package/dist/middleware/expand-activity-stream.js +33 -0
- package/dist/middleware/expand-activity-stream.js.map +1 -0
- package/dist/middleware/expand-activity-stream.test.data.d.ts +480 -0
- package/dist/middleware/expand-activity-stream.test.data.js +360 -0
- package/dist/middleware/expand-activity-stream.test.data.js.map +1 -0
- package/dist/middleware/store-credentials.d.ts +3 -0
- package/dist/middleware/store-credentials.js +19 -0
- package/dist/middleware/store-credentials.js.map +1 -0
- package/dist/middleware/validate.d.ts +2 -0
- package/dist/middleware/validate.js +58 -0
- package/dist/middleware/validate.js.map +1 -0
- package/dist/middleware/validate.test.data.d.ts +532 -0
- package/dist/middleware/validate.test.data.js +263 -0
- package/dist/middleware/validate.test.data.js.map +1 -0
- package/dist/middleware.d.ts +10 -0
- package/dist/middleware.js +54 -0
- package/dist/middleware.js.map +1 -0
- package/dist/platform-instance.d.ts +77 -0
- package/dist/platform-instance.js +211 -0
- package/dist/platform-instance.js.map +1 -0
- package/dist/platform.d.ts +6 -0
- package/dist/platform.js +187 -0
- package/dist/platform.js.map +1 -0
- package/dist/process-manager.d.ts +11 -0
- package/dist/process-manager.js +78 -0
- package/dist/process-manager.js.map +1 -0
- package/dist/routes.d.ts +13 -0
- package/dist/routes.js +83 -0
- package/dist/routes.js.map +1 -0
- package/dist/sockethub.d.ts +39 -0
- package/dist/sockethub.js +119 -0
- package/dist/sockethub.js.map +1 -0
- package/dist/store.d.ts +5 -0
- package/dist/store.js +17 -0
- package/dist/store.js.map +1 -0
- package/package.json +103 -0
- package/sockethub.config.example.json +33 -0
- package/src/bootstrap/init.d.ts +8 -0
- package/src/bootstrap/init.ts +83 -0
- package/src/bootstrap/platforms.js +75 -0
- package/src/common.test.ts +54 -0
- package/src/common.ts +14 -0
- package/src/config.d.ts +2 -0
- package/src/config.test.ts +28 -0
- package/src/config.ts +94 -0
- package/src/crypto.d.ts +5 -0
- package/src/crypto.test.ts +41 -0
- package/src/crypto.ts +41 -0
- package/src/defaults.json +28 -0
- package/src/index.ts +28 -0
- package/src/janitor.d.ts +8 -0
- package/src/janitor.ts +89 -0
- package/src/listener.ts +79 -0
- package/src/middleware/create-activity-object.test.ts +10 -0
- package/src/middleware/create-activity-object.ts +13 -0
- package/src/middleware/expand-activity-stream.test.data.ts +365 -0
- package/src/middleware/expand-activity-stream.test.ts +78 -0
- package/src/middleware/expand-activity-stream.ts +27 -0
- package/src/middleware/store-credentials.test.ts +73 -0
- package/src/middleware/store-credentials.ts +16 -0
- package/src/middleware/validate.d.ts +1 -0
- package/src/middleware/validate.test.data.ts +261 -0
- package/src/middleware/validate.test.ts +83 -0
- package/src/middleware/validate.ts +49 -0
- package/src/middleware.d.ts +21 -0
- package/src/middleware.test.ts +154 -0
- package/src/middleware.ts +52 -0
- package/src/platform-instance.test.ts +237 -0
- package/src/platform-instance.ts +242 -0
- package/src/platform.ts +191 -0
- package/src/process-manager.ts +64 -0
- package/src/routes.test.ts +100 -0
- package/src/routes.ts +98 -0
- package/src/sockethub.d.ts +1 -0
- package/src/sockethub.ts +165 -0
- package/src/store.test.ts +28 -0
- package/src/store.ts +17 -0
- package/test/init-suite.js +41 -0
- package/test/queue.functional.test.js +0 -0
- package/test/sockethub-suite.js +25 -0
- package/tsconfig.json +18 -0
- package/views/examples/dummy.ejs +93 -0
- package/views/examples/feeds.ejs +90 -0
- package/views/examples/irc.ejs +239 -0
- package/views/examples/shared.js +72 -0
- package/views/examples/xmpp.ejs +191 -0
- package/views/index.ejs +17 -0
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<title>Sockethub Example XMPP Chat</title>
|
|
5
|
+
<style>
|
|
6
|
+
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
7
|
+
body { font: 0.8em Helvetica, Arial; }
|
|
8
|
+
h3 { color: #6B6767; font-size: 0.8em; margin-bottom: 1em; }
|
|
9
|
+
form#chat { background: #000; padding: 0.3em; position: fixed; bottom: 0; width: 100%; }
|
|
10
|
+
input { border: 0; padding: 5%; }
|
|
11
|
+
button { width: 20%; background: rgb(130, 224, 255); border: none; padding: 5%; }
|
|
12
|
+
button.invis { background-color: rgba(0, 0, 0, 0); color: rgba(0, 0, 0, 0);}
|
|
13
|
+
button:hover { cursor: pointer; }
|
|
14
|
+
.messageInput { width: 80%; }
|
|
15
|
+
#messages { list-style-type: none; margin: 0; padding: 0; }
|
|
16
|
+
#messages li { padding: 0.1em 1%; }
|
|
17
|
+
#messages li:nth-child(odd) { background: #eee; }
|
|
18
|
+
.modal { position: fixed; top: 15%; left: 5%; width: 90%;
|
|
19
|
+
line-height: 1em; padding: 3% 0 3%;
|
|
20
|
+
background-color: #f1c40f; text-align: center;
|
|
21
|
+
z-index: 10; outline: 9999px solid rgba(0,0,0,0.5); }
|
|
22
|
+
@media only screen and (max-width: 1050px) {
|
|
23
|
+
body { font: 1em Helvetica, Arial; }
|
|
24
|
+
h3 { color: #6B6767; font-size: 1em; margin-bottom: 1.5em; }
|
|
25
|
+
input { border: 0; padding: 3%; width: 70%; font-size: 1em; }
|
|
26
|
+
button { width: 20%; border: none; padding: 3%; font-size: 1em; }
|
|
27
|
+
}
|
|
28
|
+
@media only screen and (max-width: 5000px) {
|
|
29
|
+
body { font: 0.9em Helvetica, Arial; }
|
|
30
|
+
h3 { color: #6B6767; font-size: 1.2em; margin-bottom: 1.5em; }
|
|
31
|
+
.modal input { border: 0; padding: 2%; width: 80%; font-size: 0.8em; }
|
|
32
|
+
.modal button { width: 10%; border: none; padding: 2%; font-size: 0.8em; }
|
|
33
|
+
input { padding: 1%; }
|
|
34
|
+
button { padding: 1%; width: 10%; }
|
|
35
|
+
.messageInput { width: 90%; }
|
|
36
|
+
}
|
|
37
|
+
</style>
|
|
38
|
+
</head>
|
|
39
|
+
<body>
|
|
40
|
+
<div class="modal">
|
|
41
|
+
<h3>Click `Join` to connect to the XMPP server.</h3>
|
|
42
|
+
<form id="intro" action="">
|
|
43
|
+
<input id="userAddress" autocomplete="off" value="username@jabber.org"><button class="invis" disabled> </button>
|
|
44
|
+
<input id="password" type="password" autocomplete="off" value="password"><button class="invis" disabled> </button>
|
|
45
|
+
<input id="resource" autocomplete="off" value="SockethubExample" disabled><button id="join">Join</button>
|
|
46
|
+
</form>
|
|
47
|
+
</div>
|
|
48
|
+
|
|
49
|
+
<ul id="messages"></ul>
|
|
50
|
+
<form id="chat" action="">
|
|
51
|
+
<input id="m" autocomplete="off" class="messageInput" disabled><button id="send" disabled>Send</button>
|
|
52
|
+
</form>
|
|
53
|
+
|
|
54
|
+
<script src="<%= address %>jquery.js"></script>
|
|
55
|
+
<script src="<%= address %>socket.io.js"></script>
|
|
56
|
+
<script src="<%= address %>sockethub-client.js"></script>
|
|
57
|
+
<script src="<%= address %>examples/shared.js"></script>
|
|
58
|
+
|
|
59
|
+
<script>
|
|
60
|
+
debug = function (msg, obj) { console.log(msg, obj); };
|
|
61
|
+
const examplesShared = new ExamplesShared();
|
|
62
|
+
localStorage.debug = 'sockethub:*';
|
|
63
|
+
let config = {
|
|
64
|
+
type: 'credentials',
|
|
65
|
+
userAddress: 'username@jabber.org',
|
|
66
|
+
password: '123456',
|
|
67
|
+
resource: 'Home'
|
|
68
|
+
};
|
|
69
|
+
let actorString = '';
|
|
70
|
+
|
|
71
|
+
const sc = new SockethubClient(io('<%= address %>', { path: '/sockethub' }));
|
|
72
|
+
|
|
73
|
+
// creates an ActivityStreams object for our actor (us)
|
|
74
|
+
function __updateActor(username) {
|
|
75
|
+
console.log('updating actor object for: ' + username);
|
|
76
|
+
// our xmpp user info
|
|
77
|
+
config.userAddress = username; // set global userAddress
|
|
78
|
+
actorString = config.userAddress + '/' + config.resource;
|
|
79
|
+
const asObject = {
|
|
80
|
+
id: actorString,
|
|
81
|
+
type: "person",
|
|
82
|
+
name: new URL('http://' + username).username,
|
|
83
|
+
url: "http://sockethub.org",
|
|
84
|
+
image: {
|
|
85
|
+
url: "http://example.org/image.jpg",
|
|
86
|
+
mediaType: "image/jpeg",
|
|
87
|
+
width: 250,
|
|
88
|
+
height: 250
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
console.log('creating activity stream object ', asObject);
|
|
92
|
+
sc.ActivityStreams.Object.create(asObject);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
function handleMessage(msg) {
|
|
96
|
+
if (msg.error) {
|
|
97
|
+
debug('received error: ', msg);
|
|
98
|
+
console.error(msg.error);
|
|
99
|
+
} else if (msg['type'] === 'connect') {
|
|
100
|
+
$('.modal').css('display', 'none');
|
|
101
|
+
} else if (msg['type'] === 'join') {
|
|
102
|
+
$('input#m').prop('disabled', false);
|
|
103
|
+
$('button#send').prop('disabled', false);
|
|
104
|
+
} else {
|
|
105
|
+
examplesShared.processIncomingMessage(msg);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// handle incoming messages from the Sockethub server
|
|
109
|
+
sc.socket.on('message', handleMessage);
|
|
110
|
+
|
|
111
|
+
$('.actor').click(function (e) {
|
|
112
|
+
e.preventDefault();
|
|
113
|
+
console.log('e: ', e);
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
// handler for user input, emit messages to Sockethub server
|
|
117
|
+
$('#chat').submit(function (e) {
|
|
118
|
+
e.preventDefault();
|
|
119
|
+
const input = $('#m').val();
|
|
120
|
+
const [target, text_message] = input.split(':');
|
|
121
|
+
|
|
122
|
+
if ((!target || !text_message)) {
|
|
123
|
+
console.log(
|
|
124
|
+
'unable to send message without target specified ' +
|
|
125
|
+
'[room@server.org: hello world]: ',
|
|
126
|
+
target, text_message, input);
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
const msg = {
|
|
130
|
+
type: 'send',
|
|
131
|
+
context: 'xmpp',
|
|
132
|
+
actor: actorString,
|
|
133
|
+
object: {
|
|
134
|
+
type: 'message',
|
|
135
|
+
content: text_message
|
|
136
|
+
},
|
|
137
|
+
target: target
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
console.log('[normalize?] sending ', msg);
|
|
141
|
+
debug('sending message: ', msg);
|
|
142
|
+
sc.socket.emit('message', msg, handleMessage);
|
|
143
|
+
$('#m').val('');
|
|
144
|
+
return false;
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
// handler for user input, emit messages to Sockethub server
|
|
148
|
+
$('#join').click(function (e) {
|
|
149
|
+
e.preventDefault();
|
|
150
|
+
config.userAddress = $('#userAddress').val();
|
|
151
|
+
config.password = $('#password').val();
|
|
152
|
+
config.resource = $('#resource').val();
|
|
153
|
+
|
|
154
|
+
__updateActor(config.userAddress);
|
|
155
|
+
|
|
156
|
+
setTimeout(function () {
|
|
157
|
+
// sending irc credentials to Sockethub server
|
|
158
|
+
const credentials = {
|
|
159
|
+
actor: actorString,
|
|
160
|
+
type: 'credentials',
|
|
161
|
+
context: 'xmpp',
|
|
162
|
+
object: config
|
|
163
|
+
};
|
|
164
|
+
debug('sending credentials: ', credentials);
|
|
165
|
+
sc.socket.emit('credentials', credentials, (err) => {
|
|
166
|
+
if (err) {
|
|
167
|
+
console.error('failed to create credentials: ', err);
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
const msg = {
|
|
172
|
+
type: 'connect',
|
|
173
|
+
context: 'xmpp',
|
|
174
|
+
actor: actorString
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
debug('sending message: ', msg);
|
|
178
|
+
sc.socket.emit('message', msg, handleMessage);
|
|
179
|
+
msg.type = 'join';
|
|
180
|
+
msg.target = {
|
|
181
|
+
type: 'room',
|
|
182
|
+
id: 'kosmos-random@kosmos.chat'
|
|
183
|
+
};
|
|
184
|
+
debug('sending message: ', msg);
|
|
185
|
+
sc.socket.emit('message', msg, handleMessage);
|
|
186
|
+
}, 100);
|
|
187
|
+
return false;
|
|
188
|
+
});
|
|
189
|
+
</script>
|
|
190
|
+
</body>
|
|
191
|
+
</html>
|
package/views/index.ejs
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<title>Sockethub</title>
|
|
5
|
+
</head>
|
|
6
|
+
<body>
|
|
7
|
+
<h1>Welcome to Sockethub</h1>
|
|
8
|
+
<div>
|
|
9
|
+
<ul class="examples">
|
|
10
|
+
<li class="example"><a href="/examples/dummy">Dummy Example</a></li>
|
|
11
|
+
<li class="example"><a href="/examples/feeds">Atom/RSS Feeds Example</a></li>
|
|
12
|
+
<li class="example"><a href="/examples/irc">IRC Example</a></li>
|
|
13
|
+
<li class="example"><a href="/examples/xmpp">XMPP Example</a></li>
|
|
14
|
+
</ul>
|
|
15
|
+
</div>
|
|
16
|
+
</body>
|
|
17
|
+
</html>
|