@sockethub/platform-xmpp 5.0.0-alpha.3 → 5.0.0-alpha.6

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/src/schema.js CHANGED
@@ -1,49 +1,61 @@
1
- module.exports = {
2
- "name": "xmpp",
3
- "version": require('../package.json').version,
4
- "messages": {
5
- "required": ['type'],
6
- "properties": {
7
- "type": {
8
- "enum": ['connect', 'update', 'send', 'join', 'leave', 'query', 'request-friend',
9
- 'remove-friend', 'make-friend']
10
- }
11
- }
12
- },
13
- "credentials": {
14
- "required": ['object'],
15
- "properties": {
16
- // TODO platforms shouldn't have to define the actor property if
17
- // they don't want to, just credential specifics
18
- "actor": {
19
- "type": "object",
20
- "required": ["id"]
21
- },
22
- "object": {
23
- "type": "object",
24
- "required": ['type', 'userAddress', 'password', 'resource'],
25
- "additionalProperties": false,
26
- "properties": {
27
- "type": {
28
- "type": "string"
29
- },
30
- "userAddress": {
31
- "type": "string"
32
- },
33
- "password": {
34
- "type": "string"
35
- },
36
- "server": {
37
- "type": "string"
38
- },
39
- "port": {
40
- "type": "number"
41
- },
42
- "resource": {
43
- "type": "string"
44
- }
45
- }
46
- }
47
- }
48
- }
1
+ import PackageJSON from "../package.json" with { type: "json" };
2
+
3
+ export const PlatformSchema = {
4
+ name: "xmpp",
5
+ version: PackageJSON.version,
6
+ messages: {
7
+ required: ["type"],
8
+ properties: {
9
+ type: {
10
+ enum: [
11
+ "connect",
12
+ "join",
13
+ "leave",
14
+ "send",
15
+ "update",
16
+ "request-friend",
17
+ "remove-friend",
18
+ "make-friend",
19
+ "query",
20
+ "disconnect",
21
+ ],
22
+ },
23
+ },
24
+ },
25
+ credentials: {
26
+ required: ["object"],
27
+ properties: {
28
+ // TODO platforms shouldn't have to define the actor property if
29
+ // they don't want to, just credential specifics
30
+ actor: {
31
+ type: "object",
32
+ required: ["id"],
33
+ },
34
+ object: {
35
+ type: "object",
36
+ required: ["type", "userAddress", "password", "resource"],
37
+ additionalProperties: false,
38
+ properties: {
39
+ type: {
40
+ type: "string",
41
+ },
42
+ userAddress: {
43
+ type: "string",
44
+ },
45
+ password: {
46
+ type: "string",
47
+ },
48
+ server: {
49
+ type: "string",
50
+ },
51
+ port: {
52
+ type: "number",
53
+ },
54
+ resource: {
55
+ type: "string",
56
+ },
57
+ },
58
+ },
59
+ },
60
+ },
49
61
  };
package/src/utils.js CHANGED
@@ -1,18 +1,21 @@
1
-
2
- module.exports = {
3
- buildXmppCredentials: function (credentials) {
4
- const [ username, server ] = credentials.object.userAddress.split('@');
5
- let xmpp_creds = {
6
- service: credentials.object.server ? credentials.object.server : server ? server : undefined,
7
- username: username,
8
- password: credentials.object.password
9
- };
10
- if (credentials.object.port) {
11
- xmpp_creds.service = `${xmpp_creds.service}:${credentials.object.port}`;
12
- }
13
- if (credentials.object.resource) {
14
- xmpp_creds.resource = credentials.object.resource;
15
- }
16
- return xmpp_creds;
17
- }
18
- };
1
+ export const utils = {
2
+ buildXmppCredentials: (credentials) => {
3
+ const [username, server] = credentials.object.userAddress.split("@");
4
+ const xmpp_creds = {
5
+ service: credentials.object.server
6
+ ? credentials.object.server
7
+ : server
8
+ ? server
9
+ : undefined,
10
+ username: username,
11
+ password: credentials.object.password,
12
+ };
13
+ if (credentials.object.port) {
14
+ xmpp_creds.service = `${xmpp_creds.service}:${credentials.object.port}`;
15
+ }
16
+ if (credentials.object.resource) {
17
+ xmpp_creds.resource = credentials.object.resource;
18
+ }
19
+ return xmpp_creds;
20
+ },
21
+ };
package/src/utils.test.js CHANGED
@@ -1,38 +1,58 @@
1
- const chai = require('chai');
2
- const utils = require( "./utils");
3
- const expect = chai.expect;
1
+ import { describe, expect, it } from "bun:test";
4
2
 
5
- describe('Utils', () => {
6
- describe('buildXmppCredentials', () => {
7
- it('returns correct credential object used for xmpp.js connect', () => {
8
- expect(utils.buildXmppCredentials({object: {
9
- userAddress: 'barney@dinosaur.com.au', password:'bar', resource: 'Home'
10
- }})).to.eql({
11
- password: 'bar',
12
- service: "dinosaur.com.au",
13
- username: "barney",
14
- resource: 'Home'
15
- });
3
+ import { utils } from "./utils.js";
4
+
5
+ describe("Utils", () => {
6
+ describe("buildXmppCredentials", () => {
7
+ it("returns correct credential object used for xmpp.js connect", () => {
8
+ expect(
9
+ utils.buildXmppCredentials({
10
+ object: {
11
+ userAddress: "barney@dinosaur.com.au",
12
+ password: "bar",
13
+ resource: "Home",
14
+ },
15
+ }),
16
+ ).toEqual({
17
+ password: "bar",
18
+ service: "dinosaur.com.au",
19
+ username: "barney",
20
+ resource: "Home",
21
+ });
22
+ });
16
23
  });
17
- });
18
- it('allows overriding server value', () => {
19
- expect(utils.buildXmppCredentials({object: {
20
- userAddress: 'barney@dinosaur.com.au', server:'foo', password:'bar', resource: 'Home'
21
- }})).to.eql({
22
- password: 'bar',
23
- service: "foo",
24
- username: "barney",
25
- resource: 'Home'
24
+ it("allows overriding server value", () => {
25
+ expect(
26
+ utils.buildXmppCredentials({
27
+ object: {
28
+ userAddress: "barney@dinosaur.com.au",
29
+ server: "foo",
30
+ password: "bar",
31
+ resource: "Home",
32
+ },
33
+ }),
34
+ ).toEqual({
35
+ password: "bar",
36
+ service: "foo",
37
+ username: "barney",
38
+ resource: "Home",
39
+ });
26
40
  });
27
- });
28
- it('allows a custom port', () => {
29
- expect(utils.buildXmppCredentials({object: {
30
- userAddress: 'barney@dinosaur.com.au', port:123, password:'bar', resource: 'Home'
31
- }})).to.eql({
32
- password: 'bar',
33
- service: "dinosaur.com.au:123",
34
- username: "barney",
35
- resource: 'Home'
41
+ it("allows a custom port", () => {
42
+ expect(
43
+ utils.buildXmppCredentials({
44
+ object: {
45
+ userAddress: "barney@dinosaur.com.au",
46
+ port: 123,
47
+ password: "bar",
48
+ resource: "Home",
49
+ },
50
+ }),
51
+ ).toEqual({
52
+ password: "bar",
53
+ service: "dinosaur.com.au:123",
54
+ username: "barney",
55
+ resource: "Home",
56
+ });
36
57
  });
37
- });
38
58
  });
package/.eslintignore DELETED
@@ -1,2 +0,0 @@
1
- coverage
2
- src/**/*.data.*