diff --git a/examples/README.md b/examples/README.md index 3ba6d01..8739d65 100644 --- a/examples/README.md +++ b/examples/README.md @@ -16,6 +16,14 @@ Build something cool with these nodes? Feel free to submit a pull request to sha - [Respond to "file" with an uploaded file](#respond-to-file-with-an-uploaded-file) - [Respond to "react" with a reaction](#respond-to-react-with-a-reaction) - [Respond to "users" with full list of server users](#respond-to-users-with-full-list-of-server-users) +- [Respond to "newroom" by creating new room and inviting user](#respond-to-newroom-by-creating-new-room-and-inviting-user) +- [Respond to "joinroom " by joining mentioned room](#respond-to-joinroom-room_id_or_alias-by-joining-mentioned-room) +- [Respond to "rooms " with user's rooms (list server's rooms if is left blank)](#respond-to-rooms-user_id-with-users-rooms-list-servers-rooms-if-user_id-is-left-blank) +- [Respond to "whois " with information about the user's session](#respond-to-whois-user_id-with-information-about-the-users-session) +- [Respond to "room_users" with current room's users](#respond-to-room_users-with-current-rooms-users) +- [Download & store all received files/images](#download--store-all-received-filesimages) +- [Kick/Ban user from room](#kickban-user-from-room) +- [Deactivate user](#deactivate-user) ### Create user with Shared Secret Registration @@ -28,7 +36,7 @@ Edit the object on the inject node to the user/pass combo you want to create and **Note:** This only works on Synapse servers. -![img.png](shared-secret-registration.png) +![shared-secret-registration.png](shared-secret-registration.png) ### Create/Edit Synapse User @@ -37,7 +45,7 @@ Edit the object on the inject node to the user/pass combo you want to create and Allows an administrator to create or modify a user account with a specified `msg.userId`. -![img.png](add-user-with-admin-user.png) +![add-user-with-admin-user.png](add-user-with-admin-user.png) ### Use function node to run any command @@ -50,7 +58,7 @@ If we do not have a node for something you want to do (such as redacting events/ To view what sort of functions you have access to check out the `client.ts` file from `matrix-js-sdk` [here](https://github.com/matrix-org/matrix-js-sdk/blob/master/src/client.ts). -![img.png](custom-redact-function-node.png) +![custom-redact-function-node.png](custom-redact-function-node.png) ### Respond to "ping" with "pong" @@ -58,7 +66,7 @@ To view what sort of functions you have access to check out the `client.ts` file Use this flow to respond to anyone that says "ping" with "pong" into the same room. -![img.png](respond-ping-pong.png) +![respond-ping-pong.png](respond-ping-pong.png) @@ -68,7 +76,7 @@ Use this flow to respond to anyone that says "ping" with "pong" into the same ro Use this flow to respond to anyone that says "html" with an example HTML message. This shows how easy it is to send HTML. -![img.png](respond-to-html-with-html.png) +![respond-to-html-with-html.png](respond-to-html-with-html.png) @@ -78,7 +86,7 @@ Use this flow to respond to anyone that says "html" with an example HTML message You will need an image on the machine running Node-RED. In this case example.png exists inside the Node-RED directory. -![img_1.png](respond-image-with-image.png) +![respond-image-with-image.png](respond-image-with-image.png) @@ -88,7 +96,7 @@ You will need an image on the machine running Node-RED. In this case example.png You will need a file on the machine running Node-RED. In this case sample.pdf exists inside the Node-RED directory. -![img.png](respond-file-with-file.png) +![respond-file-with-file.png](respond-file-with-file.png) @@ -98,7 +106,7 @@ You will need a file on the machine running Node-RED. In this case sample.pdf ex Give a 👍 reaction when someone says "react" -![img.png](respond-react-with-reaction.png) +![respond-react-with-reaction.png](respond-react-with-reaction.png) @@ -106,8 +114,99 @@ Give a 👍 reaction when someone says "react" [View JSON](respond-users-list.json) -When someone sends the text "users" they get a HTML message back containing all the current users on the server. +When someone sends the text "users" they get a HTML message back containing all the current users on the server. If your server has a lot of users this paginates and sends a message with 25 users per message. This requires admin privileges. -![img.png](respond-users-list.png) \ No newline at end of file +![respond-users-list.png](respond-users-list.png) + + +### Respond to "newroom" by creating new room and inviting user + +[View JSON](respond-users-list.json) + +When someone sends "newroom" a new room will be created and the user that said the message will be invited. The client will also send a welcome message into the new room. + +![respond-newroom-invite.png](respond-newroom-invite.png) + + +### Respond to "joinroom " by joining mentioned room + +[View JSON](respond-joinroom.json) + +When someone sends "newroom" a new room will be created and the user that said the message will be invited. The client will also send a welcome message into the new room. + +![respond-joinroom.png](respond-joinroom.png) + +### Respond to "rooms " with user's rooms (list server's rooms if is left blank) + +[View JSON](respond-rooms.json) + +Responds to "rooms " with that user's rooms. If the message is just "rooms" it responds with a list of all rooms the server is participating in. + +Note: If there are a lot of rooms this may fail to send the message as it is too large. This also only works for user's that are on the current server. + +This requires admin privileges. + +![respond-rooms.png](respond-rooms.png) + + +### Respond to "whois " with information about the user's session + +[View JSON](respond-whois.json) + +This lists out the user's session info. Each session contains the IP address, when it was last seen, and the user agent. Useful to find out more about a specific user on your server. + +Note: If there are a lot of sessions this may fail to send the message as it is too large. This also only works for user's that are on the current server. + +This requires admin privileges. + +![respond-whois.png](respond-whois.png) + + +### Respond to "room_users" with current room's users + +[View JSON](respond-room-users.json) + +List out the users participating in a room. + +Note: If there are a lot of users in the room this will fail to send due to a large message error. + +![respond-room-users.png](respond-room-users.png) + + +### Download & store all received files/images + +[View JSON](store-received-files.json) + +Download received files/images. If the file is encrypted it will decrypt it for you. The decrypt node downloads the file for you otherwise you need to use a HTTP Request node to download the file. + +Note: You may need to edit the storage directory for this to work. Default action is to create a `downloads` folder in the Node-RED directory and places files in that but there is a good chance your Node-RED instance doesn't have access to write to this directory. + +![store-received-files.png](store-received-files.png) + + +### Kick/Ban user from room + +[View JSON](room-kick-ban.json) + +If you say "kick @test:example.com" the bot will kick @test:example.com from the current room. + +If you say "ban @test:example.com" the bot will ban @test:example.com from the current room. + +Note: This requires the bot to have permissions to kick/ban in the current room. + +![room-kick-ban.png](room-kick-ban.png) + + +### Deactivate user + +[View JSON](deactivate-user.json) + +If you say "deactivate_user @test:example.com" the bot will deactivate the @test:example.com account on the server. + +Note: This requires the bot to be a server admin. + +WARNING: Accounts that are deleted cannot be restored. If you want to temp-disable edit the user instead. + +![room-kick-ban.png](deactivate-user.png) \ No newline at end of file diff --git a/examples/deactivate-user.json b/examples/deactivate-user.json new file mode 100644 index 0000000..e69de29 diff --git a/examples/deactivate-user.png b/examples/deactivate-user.png new file mode 100644 index 0000000..12944ff Binary files /dev/null and b/examples/deactivate-user.png differ diff --git a/examples/respond-joinroom.json b/examples/respond-joinroom.json new file mode 100644 index 0000000..39045fc --- /dev/null +++ b/examples/respond-joinroom.json @@ -0,0 +1,90 @@ +[ + { + "id": "9a737b0c57b35063", + "type": "switch", + "z": "f025a8b9fbd1b054", + "name": "is from me", + "property": "userId", + "propertyType": "msg", + "rules": [ + { + "t": "eq", + "v": "@skylord123:skylar.tech", + "vt": "str" + } + ], + "checkall": "true", + "repair": false, + "outputs": 1, + "x": 430, + "y": 2020, + "wires": [ + [ + "2a44927d9317a4b4" + ] + ] + }, + { + "id": "f377ad37af7dc49e", + "type": "matrix-receive", + "z": "f025a8b9fbd1b054", + "name": "", + "server": null, + "roomId": "", + "acceptText": true, + "acceptEmotes": true, + "acceptStickers": true, + "acceptReactions": true, + "acceptFiles": true, + "acceptImages": true, + "x": 260, + "y": 2020, + "wires": [ + [ + "9a737b0c57b35063" + ] + ] + }, + { + "id": "f7112a1d2808cfbb", + "type": "comment", + "z": "f025a8b9fbd1b054", + "name": "Respond to \"joinroom \" by joining the mentioned room", + "info": "", + "x": 440, + "y": 1980, + "wires": [] + }, + { + "id": "2a44927d9317a4b4", + "type": "function", + "z": "f025a8b9fbd1b054", + "name": "msg.payload == \"joinroom\"", + "func": "if(!msg.payload.startsWith(\"joinroom\")) {\n return null;\n}\n\nlet split = msg.payload.split(\" \");\nif(split.length < 2) {\n return; // no room provided\n}\n\nmsg.topic = split[1];\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 640, + "y": 2020, + "wires": [ + [ + "a34d05c3b6f6bd27" + ] + ] + }, + { + "id": "a34d05c3b6f6bd27", + "type": "matrix-join-room", + "z": "f025a8b9fbd1b054", + "name": "", + "server": null, + "x": 850, + "y": 2020, + "wires": [ + [], + [] + ] + } +] \ No newline at end of file diff --git a/examples/respond-joinroom.png b/examples/respond-joinroom.png new file mode 100644 index 0000000..05c7241 Binary files /dev/null and b/examples/respond-joinroom.png differ diff --git a/examples/respond-newroom-invite.json b/examples/respond-newroom-invite.json new file mode 100644 index 0000000..cf7b0aa --- /dev/null +++ b/examples/respond-newroom-invite.json @@ -0,0 +1,157 @@ +[ + { + "id": "ea0921f33b58e337", + "type": "switch", + "z": "f025a8b9fbd1b054", + "name": "msg.payload is \"newroom\"", + "property": "payload", + "propertyType": "msg", + "rules": [ + { + "t": "eq", + "v": "newroom", + "vt": "str" + } + ], + "checkall": "true", + "repair": false, + "outputs": 1, + "x": 640, + "y": 1820, + "wires": [ + [ + "d7ce5027bc1e2eee" + ] + ] + }, + { + "id": "9f9a24376b94c977", + "type": "switch", + "z": "f025a8b9fbd1b054", + "name": "is from me", + "property": "userId", + "propertyType": "msg", + "rules": [ + { + "t": "eq", + "v": "@skylord123:skylar.tech", + "vt": "str" + } + ], + "checkall": "true", + "repair": false, + "outputs": 1, + "x": 430, + "y": 1820, + "wires": [ + [ + "ea0921f33b58e337" + ] + ] + }, + { + "id": "3bce23488138c013", + "type": "matrix-receive", + "z": "f025a8b9fbd1b054", + "name": "", + "server": null, + "roomId": "", + "acceptText": true, + "acceptEmotes": true, + "acceptStickers": true, + "acceptReactions": true, + "acceptFiles": true, + "acceptImages": true, + "x": 260, + "y": 1820, + "wires": [ + [ + "9f9a24376b94c977" + ] + ] + }, + { + "id": "d7ce5027bc1e2eee", + "type": "matrix-create-room", + "z": "f025a8b9fbd1b054", + "name": "", + "server": null, + "x": 250, + "y": 1880, + "wires": [ + [ + "735b9d9fd1401e96" + ], + [] + ] + }, + { + "id": "735b9d9fd1401e96", + "type": "matrix-invite-room", + "z": "f025a8b9fbd1b054", + "name": "", + "server": null, + "roomId": "", + "x": 410, + "y": 1880, + "wires": [ + [ + "089f2a7f0c079b6b" + ], + [] + ] + }, + { + "id": "222ee3c08028c1df", + "type": "matrix-send-message", + "z": "f025a8b9fbd1b054", + "name": "", + "server": null, + "roomId": "", + "messageType": "m.text", + "messageFormat": "", + "x": 760, + "y": 1880, + "wires": [ + [], + [] + ] + }, + { + "id": "089f2a7f0c079b6b", + "type": "change", + "z": "f025a8b9fbd1b054", + "name": "", + "rules": [ + { + "t": "set", + "p": "payload", + "pt": "msg", + "to": "Welcome to my new room!", + "tot": "str" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 580, + "y": 1880, + "wires": [ + [ + "222ee3c08028c1df" + ] + ] + }, + { + "id": "48a1fd26227f277e", + "type": "comment", + "z": "f025a8b9fbd1b054", + "name": "Respond to \"newroom\" by creating new room and inviting person that said it then send welcome message", + "info": "", + "x": 520, + "y": 1780, + "wires": [] + } +] \ No newline at end of file diff --git a/examples/respond-newroom-invite.png b/examples/respond-newroom-invite.png new file mode 100644 index 0000000..9c3477a Binary files /dev/null and b/examples/respond-newroom-invite.png differ diff --git a/examples/respond-room-users.json b/examples/respond-room-users.json new file mode 100644 index 0000000..c76c12c --- /dev/null +++ b/examples/respond-room-users.json @@ -0,0 +1,134 @@ +[ + { + "id": "a7581a6224cbd24d", + "type": "matrix-room-users", + "z": "f025a8b9fbd1b054", + "name": "", + "server": null, + "roomId": "", + "x": 440, + "y": 2800, + "wires": [ + [ + "3e37b5fded58782d" + ], + [] + ] + }, + { + "id": "2764620d2d514996", + "type": "switch", + "z": "f025a8b9fbd1b054", + "name": "is from me", + "property": "userId", + "propertyType": "msg", + "rules": [ + { + "t": "eq", + "v": "@skylord123:skylar.tech", + "vt": "str" + } + ], + "checkall": "true", + "repair": false, + "outputs": 1, + "x": 610, + "y": 2740, + "wires": [ + [ + "f487951ea1b22a95" + ] + ] + }, + { + "id": "7ed8fc36ba75298a", + "type": "matrix-receive", + "z": "f025a8b9fbd1b054", + "name": "", + "server": null, + "roomId": "", + "acceptText": true, + "acceptEmotes": true, + "acceptStickers": true, + "acceptReactions": true, + "acceptFiles": true, + "acceptImages": true, + "x": 440, + "y": 2740, + "wires": [ + [ + "2764620d2d514996" + ] + ] + }, + { + "id": "f487951ea1b22a95", + "type": "switch", + "z": "f025a8b9fbd1b054", + "name": "msg.payload filter", + "property": "payload", + "propertyType": "msg", + "rules": [ + { + "t": "eq", + "v": "room_users", + "vt": "str" + } + ], + "checkall": "true", + "repair": false, + "outputs": 1, + "x": 790, + "y": 2740, + "wires": [ + [ + "a7581a6224cbd24d" + ] + ] + }, + { + "id": "3e37b5fded58782d", + "type": "function", + "z": "f025a8b9fbd1b054", + "name": "Room List (for user or all)", + "func": "let payload = null;\nif(!msg.payload || !msg.payload.joined) {\n payload = 'No users in room.';\n} else {\n payload = `Room ${msg.topic} users:`;\n payload += '
    ';\n for(let user_id in msg.payload.joined) {\n payload += `
  • ${msg.payload.joined[user_id].display_name} - ${user_id}
  • `;\n }\n payload += '
'\n}\n\nif(payload){\n msg.payload = payload;\n}\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 650, + "y": 2800, + "wires": [ + [ + "86a4895c4fe46657" + ] + ] + }, + { + "id": "86a4895c4fe46657", + "type": "matrix-send-message", + "z": "f025a8b9fbd1b054", + "name": "Send HTML Message", + "server": null, + "roomId": "", + "messageType": "m.text", + "messageFormat": "html", + "x": 880, + "y": 2800, + "wires": [ + [], + [] + ] + }, + { + "id": "cae1a37fe034b8f8", + "type": "comment", + "z": "f025a8b9fbd1b054", + "name": "Respond to \"room_users\" with that room's users", + "info": "", + "x": 600, + "y": 2700, + "wires": [] + } +] \ No newline at end of file diff --git a/examples/respond-room-users.png b/examples/respond-room-users.png new file mode 100644 index 0000000..abb145f Binary files /dev/null and b/examples/respond-room-users.png differ diff --git a/examples/respond-rooms.json b/examples/respond-rooms.json new file mode 100644 index 0000000..a9ef916 --- /dev/null +++ b/examples/respond-rooms.json @@ -0,0 +1,151 @@ +[ + { + "id": "2eb2dd1b5dbdd03b", + "type": "comment", + "z": "f025a8b9fbd1b054", + "name": "Response to \"rooms\" with all rooms", + "info": "", + "x": 580, + "y": 2500, + "wires": [] + }, + { + "id": "f3415a10f124d586", + "type": "function", + "z": "f025a8b9fbd1b054", + "name": "", + "func": "let matches = msg.payload.match(/^rooms ?(\\@.*)?/);\nmsg.userId = matches[1] ? matches[1] : null;\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 420, + "y": 2620, + "wires": [ + [ + "2cae98732747989d" + ] + ] + }, + { + "id": "2cae98732747989d", + "type": "function", + "z": "f025a8b9fbd1b054", + "name": "Room List (for user or all)", + "func": "let matrixClient = global.get(\"matrixClient['@bot:example.com']\"),\n matrixOnline = global.get(\"matrixClientOnline['@bot:example.com']\");\n\nif(!matrixOnline) {\n msg.payload = 'Matrix client not connected.';\n return [null, msg];\n}\n\nif(msg.userId) {\n matrixClient.http\n .authedRequest(\n undefined,\n 'GET',\n `/_synapse/admin/v1/users/${msg.userId}/joined_rooms`,\n {}, // query params\n undefined,\n { prefix: '' }\n ).then(function(e){\n msg.payload = e;\n if(!e.joined_rooms) {\n msg.payload = 'User is not part of any rooms.';\n } else {\n msg.payload = `${msg.userId}'s rooms:`;\n msg.payload += '
    ';\n e.joined_rooms.forEach(function(room_id){\n msg.payload += `
  • ${room_id}
  • `;\n });\n msg.payload += '
'\n }\n node.send([msg, null]);\n }).catch(function(e){\n node.warn(\"Error fetching server user list \" + e);\n msg.payload = e;\n node.send([null, msg]);\n });\n} else {\n matrixClient.http\n .authedRequest(\n undefined,\n 'GET',\n `/_synapse/admin/v1/rooms`,\n {}, // query params\n undefined,\n { prefix: '' }\n ).then(function(e){\n msg.payload = e;\n if(!e.rooms) {\n msg.payload = 'Server has no rooms.';\n } else {\n msg.payload = `Server rooms:`;\n msg.payload += '
    ';\n e.rooms.forEach(function(room){\n msg.payload += `
  • ${room.name} - ${room.room_id} (members: ${room.joined_members} | creator: ${room.creator})
  • `;\n });\n msg.payload += '
'\n }\n node.send([msg, null]);\n }).catch(function(e){\n node.warn(\"Error fetching server user list \" + e);\n msg.payload = e;\n node.send([null, msg]);\n });\n}", + "outputs": 2, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 610, + "y": 2620, + "wires": [ + [ + "d7508993ec1ce895" + ], + [ + "d7508993ec1ce895" + ] + ] + }, + { + "id": "2f8c696ec0dc8f6d", + "type": "comment", + "z": "f025a8b9fbd1b054", + "name": "Respond to \"rooms \" with that user's rooms", + "info": "", + "x": 590, + "y": 2540, + "wires": [] + }, + { + "id": "d7508993ec1ce895", + "type": "matrix-send-message", + "z": "f025a8b9fbd1b054", + "name": "Send HTML Message", + "server": null, + "roomId": "", + "messageType": "m.text", + "messageFormat": "html", + "x": 840, + "y": 2620, + "wires": [ + [], + [] + ] + }, + { + "id": "13a9a0331352338a", + "type": "switch", + "z": "f025a8b9fbd1b054", + "name": "is from me", + "property": "userId", + "propertyType": "msg", + "rules": [ + { + "t": "eq", + "v": "@skylord123:skylar.tech", + "vt": "str" + } + ], + "checkall": "true", + "repair": false, + "outputs": 1, + "x": 590, + "y": 2580, + "wires": [ + [ + "afe88b8e115f661f" + ] + ] + }, + { + "id": "e261cc12da739901", + "type": "matrix-receive", + "z": "f025a8b9fbd1b054", + "name": "", + "server": null, + "roomId": "", + "acceptText": true, + "acceptEmotes": true, + "acceptStickers": true, + "acceptReactions": true, + "acceptFiles": true, + "acceptImages": true, + "x": 420, + "y": 2580, + "wires": [ + [ + "13a9a0331352338a" + ] + ] + }, + { + "id": "afe88b8e115f661f", + "type": "switch", + "z": "f025a8b9fbd1b054", + "name": "msg.payload filter", + "property": "payload", + "propertyType": "msg", + "rules": [ + { + "t": "regex", + "v": "^rooms", + "vt": "str", + "case": false + } + ], + "checkall": "true", + "repair": false, + "outputs": 1, + "x": 770, + "y": 2580, + "wires": [ + [ + "f3415a10f124d586" + ] + ] + } +] \ No newline at end of file diff --git a/examples/respond-rooms.png b/examples/respond-rooms.png new file mode 100644 index 0000000..e8940ce Binary files /dev/null and b/examples/respond-rooms.png differ diff --git a/examples/respond-users-list.json b/examples/respond-users-list.json index 39970b6..d8650dc 100644 --- a/examples/respond-users-list.json +++ b/examples/respond-users-list.json @@ -1,27 +1,257 @@ [ { - "id": "a9b412957063b06c", - "type": "matrix-receive", + "id": "49e4b3a1ee3e9e1e", + "type": "matrix-synapse-users", "z": "f025a8b9fbd1b054", "name": "", - "roomId": "", - "ignoreText": false, - "ignoreReactions": false, - "ignoreFiles": false, - "ignoreImages": false, - "x": 460, - "y": 120, + "server": null, + "x": 610, + "y": 2240, "wires": [ [ - "4aa45cd8653ba898" + "d4978f7c2dad7ecf" + ], + [ + "da9d25c324cb727e" ] ] }, { - "id": "4aa45cd8653ba898", + "id": "e199d3db1ea6757c", + "type": "matrix-send-message", + "z": "f025a8b9fbd1b054", + "name": "Send HTML Notice", + "server": null, + "roomId": "", + "messageType": "m.notice", + "messageFormat": "html", + "x": 970, + "y": 2240, + "wires": [ + [ + "e248881d6749ba70" + ], + [ + "da9d25c324cb727e" + ] + ] + }, + { + "id": "d4978f7c2dad7ecf", + "type": "function", + "z": "f025a8b9fbd1b054", + "name": "", + "func": "msg.next_token = msg.payload.next_token || false;\nlet new_payload = '
    ';\nmsg.payload.users.forEach(function(user, index){\n if(msg.guests == 'false' && user.is_guest) {\n return;\n }\n new_payload += '
  • '+ JSON.stringify(user, null, 2).replace(/(?:\\r\\n|\\r|\\n)/g, \"\\n
    \"); + '
  • '\n});\nmsg.payload = new_payload + '
';\n\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 800, + "y": 2240, + "wires": [ + [ + "e199d3db1ea6757c" + ] + ] + }, + { + "id": "880cac7307d9a786", + "type": "comment", + "z": "f025a8b9fbd1b054", + "name": "Response to \"users\" with full server user list (excluding guests)", + "info": "", + "x": 620, + "y": 2160, + "wires": [] + }, + { + "id": "469d2ebd9995747a", + "type": "matrix-send-message", + "z": "f025a8b9fbd1b054", + "name": "", + "server": null, + "roomId": "", + "messageType": "m.notice", + "messageFormat": "", + "x": 600, + "y": 2300, + "wires": [ + [], + [] + ] + }, + { + "id": "da9d25c324cb727e", + "type": "change", + "z": "f025a8b9fbd1b054", + "name": "", + "rules": [ + { + "t": "set", + "p": "payload", + "pt": "msg", + "to": "error", + "tot": "msg" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 420, + "y": 2300, + "wires": [ + [ + "469d2ebd9995747a" + ] + ] + }, + { + "id": "86577e484ca26aca", + "type": "change", + "z": "f025a8b9fbd1b054", + "name": "", + "rules": [ + { + "t": "set", + "p": "guests", + "pt": "msg", + "to": "false", + "tot": "str" + }, + { + "t": "set", + "p": "limit", + "pt": "msg", + "to": "25", + "tot": "num" + }, + { + "t": "set", + "p": "order_by", + "pt": "msg", + "to": "creation_ts", + "tot": "str" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 420, + "y": 2240, + "wires": [ + [ + "49e4b3a1ee3e9e1e" + ] + ] + }, + { + "id": "e248881d6749ba70", "type": "switch", "z": "f025a8b9fbd1b054", - "name": "msg.payload == \"users\"", + "name": "More to paginate?", + "property": "next_token", + "propertyType": "msg", + "rules": [ + { + "t": "istype", + "v": "string", + "vt": "string" + } + ], + "checkall": "true", + "repair": false, + "outputs": 1, + "x": 1190, + "y": 2240, + "wires": [ + [ + "11d7fcf6335bc75b" + ] + ] + }, + { + "id": "11d7fcf6335bc75b", + "type": "change", + "z": "f025a8b9fbd1b054", + "name": "", + "rules": [ + { + "t": "set", + "p": "from", + "pt": "msg", + "to": "next_token", + "tot": "msg" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 1370, + "y": 2240, + "wires": [ + [ + "49e4b3a1ee3e9e1e" + ] + ] + }, + { + "id": "8b48e27a118999ec", + "type": "switch", + "z": "f025a8b9fbd1b054", + "name": "is from me", + "property": "userId", + "propertyType": "msg", + "rules": [ + { + "t": "eq", + "v": "@skylord123:skylar.tech", + "vt": "str" + } + ], + "checkall": "true", + "repair": false, + "outputs": 1, + "x": 590, + "y": 2200, + "wires": [ + [ + "7a64319e26e8b689" + ] + ] + }, + { + "id": "553da6dd77e5e03b", + "type": "matrix-receive", + "z": "f025a8b9fbd1b054", + "name": "", + "server": null, + "roomId": "", + "acceptText": true, + "acceptEmotes": true, + "acceptStickers": true, + "acceptReactions": true, + "acceptFiles": true, + "acceptImages": true, + "x": 420, + "y": 2200, + "wires": [ + [ + "8b48e27a118999ec" + ] + ] + }, + { + "id": "7a64319e26e8b689", + "type": "switch", + "z": "f025a8b9fbd1b054", + "name": "msg.payload filter", "property": "payload", "propertyType": "msg", "rules": [ @@ -34,70 +264,12 @@ "checkall": "true", "repair": false, "outputs": 1, - "x": 670, - "y": 120, + "x": 770, + "y": 2200, "wires": [ [ - "b95a674179d93416" + "86577e484ca26aca" ] ] - }, - { - "id": "b95a674179d93416", - "type": "matrix-synapse-users", - "z": "f025a8b9fbd1b054", - "name": "", - "x": 890, - "y": 120, - "wires": [ - [ - "19b654e5f28d93c4" - ], - [] - ] - }, - { - "id": "8720c66e867f89f6", - "type": "matrix-send-message", - "z": "f025a8b9fbd1b054", - "name": "Send HTML Notice", - "roomId": "", - "messageType": "m.notice", - "messageFormat": "html", - "x": 1230, - "y": 120, - "wires": [ - [], - [] - ] - }, - { - "id": "19b654e5f28d93c4", - "type": "function", - "z": "f025a8b9fbd1b054", - "name": "", - "func": "let new_payload = '
    ';\nmsg.payload.users.forEach(function(user, index){\n new_payload += '
  • '+ JSON.stringify(user, null, 2).replace(/(?:\\r\\n|\\r|\\n)/g, \"\\n
    \"); + '
  • '\n});\nmsg.payload = new_payload + '
';\n\nreturn msg;", - "outputs": 1, - "noerr": 0, - "initialize": "", - "finalize": "", - "libs": [], - "x": 1060, - "y": 120, - "wires": [ - [ - "8720c66e867f89f6" - ] - ] - }, - { - "id": "563da45ab1747c2b", - "type": "comment", - "z": "f025a8b9fbd1b054", - "name": "Response to \"users\" with full server user list", - "info": "", - "x": 550, - "y": 80, - "wires": [] } ] \ No newline at end of file diff --git a/examples/respond-users-list.png b/examples/respond-users-list.png index bf1f768..77a7f33 100644 Binary files a/examples/respond-users-list.png and b/examples/respond-users-list.png differ diff --git a/examples/respond-whois.json b/examples/respond-whois.json new file mode 100644 index 0000000..02088cf --- /dev/null +++ b/examples/respond-whois.json @@ -0,0 +1,153 @@ +[ + { + "id": "93df869346a728d3", + "type": "comment", + "z": "f025a8b9fbd1b054", + "name": "Response to \"whois \" with user information", + "info": "", + "x": 610, + "y": 2360, + "wires": [] + }, + { + "id": "656ed1e444fd2e0a", + "type": "function", + "z": "f025a8b9fbd1b054", + "name": "", + "func": "let matches = msg.payload.match(/^whois ?(\\@.*)?/);\nmsg.userId = matches[1].trim() ? matches[1].trim() : msg.userId;\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 440, + "y": 2440, + "wires": [ + [ + "4869676dab929d20" + ] + ] + }, + { + "id": "4869676dab929d20", + "type": "matrix-whois-user", + "z": "f025a8b9fbd1b054", + "name": "", + "server": null, + "x": 590, + "y": 2440, + "wires": [ + [ + "a894fcabf9e41dca" + ], + [] + ] + }, + { + "id": "a894fcabf9e41dca", + "type": "function", + "z": "f025a8b9fbd1b054", + "name": "", + "func": "try { \n var sessions = msg.payload.devices[\"\"].sessions || null;\n} catch (error) { \n var sessions = null;\n}\nlet html = \"whois (session) information for \" + msg.userId + \"\\n
    \";\nfor(let session of sessions) {\n try { \n var connections = session.connections;\n } catch (error) { \n var connections = null;\n }\n for(let connection of connections) {\n html += \"\\n
  1. \"+JSON.stringify(connection, null, 2)+\"
  2. \"\n }\n}\nhtml += \"
\"\nmsg.payload = html;\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 740, + "y": 2440, + "wires": [ + [ + "898b8974f2b24861" + ] + ] + }, + { + "id": "898b8974f2b24861", + "type": "matrix-send-message", + "z": "f025a8b9fbd1b054", + "name": "Send HTML Notice", + "server": null, + "roomId": "", + "messageType": "m.notice", + "messageFormat": "html", + "x": 910, + "y": 2440, + "wires": [ + [], + [] + ] + }, + { + "id": "c8855c79f194796e", + "type": "switch", + "z": "f025a8b9fbd1b054", + "name": "is from me", + "property": "userId", + "propertyType": "msg", + "rules": [ + { + "t": "eq", + "v": "@skylord123:skylar.tech", + "vt": "str" + } + ], + "checkall": "true", + "repair": false, + "outputs": 1, + "x": 590, + "y": 2400, + "wires": [ + [ + "ae1537a16b9e3b4c" + ] + ] + }, + { + "id": "39109d4f02d241ca", + "type": "matrix-receive", + "z": "f025a8b9fbd1b054", + "name": "", + "server": null, + "roomId": "", + "acceptText": true, + "acceptEmotes": true, + "acceptStickers": true, + "acceptReactions": true, + "acceptFiles": true, + "acceptImages": true, + "x": 420, + "y": 2400, + "wires": [ + [ + "c8855c79f194796e" + ] + ] + }, + { + "id": "ae1537a16b9e3b4c", + "type": "switch", + "z": "f025a8b9fbd1b054", + "name": "msg.payload filter", + "property": "payload", + "propertyType": "msg", + "rules": [ + { + "t": "regex", + "v": "^whois", + "vt": "str", + "case": false + } + ], + "checkall": "true", + "repair": false, + "outputs": 1, + "x": 770, + "y": 2400, + "wires": [ + [ + "656ed1e444fd2e0a" + ] + ] + } +] \ No newline at end of file diff --git a/examples/respond-whois.png b/examples/respond-whois.png new file mode 100644 index 0000000..bc7e9b0 Binary files /dev/null and b/examples/respond-whois.png differ diff --git a/examples/room-kick-ban.json b/examples/room-kick-ban.json new file mode 100644 index 0000000..196f10f --- /dev/null +++ b/examples/room-kick-ban.json @@ -0,0 +1,211 @@ +[ + { + "id": "d78dd157085ed843", + "type": "matrix-room-kick", + "z": "f025a8b9fbd1b054", + "name": "", + "server": null, + "roomId": "", + "x": 570, + "y": 2980, + "wires": [ + [ + "44d49fcaad67790c" + ], + [ + "44d49fcaad67790c" + ] + ] + }, + { + "id": "32a99c44b50fe3f3", + "type": "matrix-room-ban", + "z": "f025a8b9fbd1b054", + "name": "", + "server": null, + "roomId": "", + "x": 570, + "y": 3080, + "wires": [ + [ + "04628a976e7acf1b" + ], + [ + "04628a976e7acf1b" + ] + ] + }, + { + "id": "5e786bbae3b1a368", + "type": "switch", + "z": "f025a8b9fbd1b054", + "name": "is from me", + "property": "userId", + "propertyType": "msg", + "rules": [ + { + "t": "eq", + "v": "@skylord123:skylar.tech", + "vt": "str" + } + ], + "checkall": "true", + "repair": false, + "outputs": 1, + "x": 230, + "y": 3020, + "wires": [ + [ + "5b3ddae8335383e7" + ] + ] + }, + { + "id": "ca278a6ffc3b9d6b", + "type": "matrix-receive", + "z": "f025a8b9fbd1b054", + "name": "", + "server": null, + "roomId": "", + "acceptText": true, + "acceptEmotes": false, + "acceptStickers": false, + "acceptReactions": false, + "acceptFiles": false, + "acceptImages": false, + "x": 220, + "y": 2960, + "wires": [ + [ + "5e786bbae3b1a368" + ] + ] + }, + { + "id": "b6830f430157be4e", + "type": "comment", + "z": "f025a8b9fbd1b054", + "name": "Respond to \"room_ban \" by banning user from room", + "info": "", + "x": 580, + "y": 3040, + "wires": [] + }, + { + "id": "8bffe425d3c1bf24", + "type": "comment", + "z": "f025a8b9fbd1b054", + "name": "Respond to \"room_kick \" by kicking user from room", + "info": "", + "x": 580, + "y": 2940, + "wires": [] + }, + { + "id": "5b3ddae8335383e7", + "type": "switch", + "z": "f025a8b9fbd1b054", + "name": "Kick or Ban", + "property": "payload", + "propertyType": "msg", + "rules": [ + { + "t": "regex", + "v": "^room_kick", + "vt": "str", + "case": false + }, + { + "t": "regex", + "v": "^room_ban", + "vt": "str", + "case": false + } + ], + "checkall": "true", + "repair": false, + "outputs": 2, + "x": 230, + "y": 3060, + "wires": [ + [ + "a19b38afd7b52834" + ], + [ + "925c59f485bf7247" + ] + ] + }, + { + "id": "925c59f485bf7247", + "type": "function", + "z": "f025a8b9fbd1b054", + "name": "", + "func": "let matches = msg.payload.match(/^room_ban ?(\\@.*)?/);\nmsg.userId = matches[1].trim() ? matches[1].trim() : null;\nif(!msg.userId) {\n return null;\n}\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 420, + "y": 3080, + "wires": [ + [ + "32a99c44b50fe3f3" + ] + ] + }, + { + "id": "a19b38afd7b52834", + "type": "function", + "z": "f025a8b9fbd1b054", + "name": "", + "func": "let matches = msg.payload.match(/^room_kick ?(\\@.*)?/);\nmsg.userId = matches[1].trim() ? matches[1].trim() : null;\nif(!msg.userId) {\n return null;\n}\nreturn msg;", + "outputs": 1, + "noerr": 0, + "initialize": "", + "finalize": "", + "libs": [], + "x": 420, + "y": 2980, + "wires": [ + [ + "d78dd157085ed843" + ] + ] + }, + { + "id": "04628a976e7acf1b", + "type": "debug", + "z": "f025a8b9fbd1b054", + "name": "", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 710, + "y": 3080, + "wires": [] + }, + { + "id": "44d49fcaad67790c", + "type": "debug", + "z": "f025a8b9fbd1b054", + "name": "", + "active": true, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "true", + "targetType": "full", + "statusVal": "", + "statusType": "auto", + "x": 710, + "y": 2980, + "wires": [] + } +] \ No newline at end of file diff --git a/examples/room-kick-ban.png b/examples/room-kick-ban.png new file mode 100644 index 0000000..51e3715 Binary files /dev/null and b/examples/room-kick-ban.png differ diff --git a/examples/store-received-files.json b/examples/store-received-files.json new file mode 100644 index 0000000..0c904dd --- /dev/null +++ b/examples/store-received-files.json @@ -0,0 +1,166 @@ +[ + { + "id": "d7573ed76980dc64", + "type": "matrix-receive", + "z": "f025a8b9fbd1b054", + "name": "", + "server": null, + "roomId": "", + "acceptText": false, + "acceptEmotes": false, + "acceptStickers": false, + "acceptReactions": false, + "acceptFiles": true, + "acceptImages": true, + "x": 1740, + "y": 600, + "wires": [ + [ + "4d4e992ed895413f" + ] + ] + }, + { + "id": "addcccdfea9935b1", + "type": "comment", + "z": "f025a8b9fbd1b054", + "name": "Download & store received files/images and decrypt if necessary", + "info": "", + "x": 1970, + "y": 560, + "wires": [] + }, + { + "id": "4d4e992ed895413f", + "type": "switch", + "z": "f025a8b9fbd1b054", + "name": "", + "property": "encrypted", + "propertyType": "msg", + "rules": [ + { + "t": "true" + }, + { + "t": "else" + } + ], + "checkall": "true", + "repair": false, + "outputs": 2, + "x": 1890, + "y": 600, + "wires": [ + [ + "660782188696fc62" + ], + [ + "857bce169036e3cb" + ] + ] + }, + { + "id": "660782188696fc62", + "type": "matrix-decrypt-file", + "z": "f025a8b9fbd1b054", + "name": null, + "x": 2050, + "y": 600, + "wires": [ + [ + "cdbaf88f6631322e" + ], + [] + ] + }, + { + "id": "b62db6caf4697242", + "type": "file", + "z": "f025a8b9fbd1b054", + "name": "", + "filename": "", + "appendNewline": true, + "createDir": false, + "overwriteFile": "true", + "encoding": "none", + "x": 2240, + "y": 660, + "wires": [ + [] + ] + }, + { + "id": "857bce169036e3cb", + "type": "http request", + "z": "f025a8b9fbd1b054", + "name": "", + "method": "GET", + "ret": "bin", + "paytoqs": "ignore", + "url": "", + "tls": "", + "persist": false, + "proxy": "", + "authType": "", + "senderr": false, + "x": 1910, + "y": 660, + "wires": [ + [ + "7d0be52f8c3f1b54" + ] + ] + }, + { + "id": "7d0be52f8c3f1b54", + "type": "switch", + "z": "f025a8b9fbd1b054", + "name": "", + "property": "statusCode", + "propertyType": "msg", + "rules": [ + { + "t": "eq", + "v": "200", + "vt": "num" + } + ], + "checkall": "true", + "repair": false, + "outputs": 1, + "x": 2050, + "y": 660, + "wires": [ + [ + "cdbaf88f6631322e" + ] + ] + }, + { + "id": "cdbaf88f6631322e", + "type": "change", + "z": "f025a8b9fbd1b054", + "name": "set directory", + "rules": [ + { + "t": "set", + "p": "filename", + "pt": "msg", + "to": "\"downloads/\" & msg.filename", + "tot": "jsonata" + } + ], + "action": "", + "property": "", + "from": "", + "to": "", + "reg": false, + "x": 2230, + "y": 600, + "wires": [ + [ + "b62db6caf4697242" + ] + ] + } +] \ No newline at end of file diff --git a/examples/store-received-files.png b/examples/store-received-files.png new file mode 100644 index 0000000..b47bbd1 Binary files /dev/null and b/examples/store-received-files.png differ diff --git a/package-lock.json b/package-lock.json index d8b3159..9696ca3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,21 +1,37 @@ { "name": "node-red-contrib-matrix-chat", - "version": "0.4.0", + "version": "0.4.1", "lockfileVersion": 2, "requires": true, "packages": { "": { - "version": "0.4.0", + "version": "0.4.1", "license": "SEE LICENSE FILE", "dependencies": { - "fs-extra": "^9.1.0", - "got": "^11.8.2", + "fs-extra": "^10.0.0", + "got": "^12.0.1", "isomorphic-webcrypto": "^2.3.8", - "matrix-js-sdk": "^15.3.0", + "matrix-js-sdk": "^15.5.0", "node-localstorage": "^2.2.1", "olm": "https://packages.matrix.org/npm/olm/olm-3.2.1.tgz", - "process": "^0.11.10", "utf8": "^3.0.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.0.2.tgz", + "integrity": "sha512-sE8Gx+qSDMLoJvb3QarJJlDQK7SSY4rK3hxp4XsiANeFOmjU46ZI7Y9adAQRJrmbz8zbtZkp3mJTT+rGxtF0XA==", + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.2.2", + "sourcemap-codec": "1.4.8" + }, + "engines": { + "node": ">=6.0.0" } }, "node_modules/@babel/code-frame": { @@ -29,9 +45,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz", - "integrity": "sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz", + "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==", "optional": true, "peer": true, "engines": { @@ -39,27 +55,27 @@ } }, "node_modules/@babel/core": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz", - "integrity": "sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.0.tgz", + "integrity": "sha512-x/5Ea+RO5MvF9ize5DeVICJoVrNv0Mi2RnIABrZEKYvPEpldXwauPkgvYA17cKa6WpU3LoYvYbuEMFtSNFsarA==", "optional": true, "peer": true, "dependencies": { + "@ampproject/remapping": "^2.0.0", "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", + "@babel/generator": "^7.17.0", "@babel/helper-compilation-targets": "^7.16.7", "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.16.7", - "@babel/parser": "^7.16.12", + "@babel/helpers": "^7.17.0", + "@babel/parser": "^7.17.0", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.10", - "@babel/types": "^7.16.8", + "@babel/traverse": "^7.17.0", + "@babel/types": "^7.17.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" + "semver": "^6.3.0" }, "engines": { "node": ">=6.9.0" @@ -109,13 +125,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", - "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.0.tgz", + "integrity": "sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw==", "optional": true, "peer": true, "dependencies": { - "@babel/types": "^7.16.8", + "@babel/types": "^7.17.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -180,9 +196,9 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.10.tgz", - "integrity": "sha512-wDeej0pu3WN/ffTxMNCPW5UCiOav8IcLRxSIyp/9+IF2xJUM9h/OYjg0IJLHaL6F8oU8kqMz9nc1vryXhMsgXg==", + "version": "7.17.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.1.tgz", + "integrity": "sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ==", "optional": true, "peer": true, "dependencies": { @@ -202,14 +218,14 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.7.tgz", - "integrity": "sha512-fk5A6ymfp+O5+p2yCkXAu5Kyj6v0xh0RBeNcAkYUMDvvAAoxvSKXn+Jb37t/yWFiQVDFK1ELpUTD8/aLhCPu+g==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", + "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", "optional": true, "peer": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^4.7.1" + "regexpu-core": "^5.0.1" }, "engines": { "node": ">=6.9.0" @@ -492,15 +508,15 @@ } }, "node_modules/@babel/helpers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz", - "integrity": "sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.0.tgz", + "integrity": "sha512-Xe/9NFxjPwELUvW2dsukcMZIp6XwPSbI4ojFBJuX5ramHuVE22SVcZIwqzdWo5uCgeTXW8qV97lMvSOjq+1+nQ==", "optional": true, "peer": true, "dependencies": { "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/traverse": "^7.17.0", + "@babel/types": "^7.17.0" }, "engines": { "node": ">=6.9.0" @@ -590,9 +606,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", - "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.0.tgz", + "integrity": "sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw==", "optional": true, "peer": true, "bin": { @@ -690,15 +706,17 @@ } }, "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.16.7.tgz", - "integrity": "sha512-DoEpnuXK14XV9btI1k8tzNGCutMclpj4yru8aXKoHlVmbO1s+2A+g2+h4JhcjrxkFJqzbymnLG6j/niOf3iFXQ==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.0.tgz", + "integrity": "sha512-JR8HTf3T1CsdMqfENrZ9pqncwsH4sPcvsyDLpvmv8iIbpDmeyBD7HPfGAIqkQph2j5d3B84hTm+m3qHPAedaPw==", "optional": true, "peer": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.17.0", "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-decorators": "^7.16.7" + "@babel/helper-replace-supers": "^7.16.7", + "@babel/plugin-syntax-decorators": "^7.17.0", + "charcodes": "^0.2.0" }, "engines": { "node": ">=6.9.0" @@ -977,9 +995,9 @@ } }, "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.16.7.tgz", - "integrity": "sha512-vQ+PxL+srA7g6Rx6I1e15m55gftknl2X8GCUW1JTlkTaXZLJOS0UcaY0eK9jYT7IYf4awn6qwyghVHLDz1WyMw==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz", + "integrity": "sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A==", "optional": true, "peer": true, "dependencies": { @@ -1731,9 +1749,9 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.10.tgz", - "integrity": "sha512-9nwTiqETv2G7xI4RvXHNfpGdr8pAA+Q/YtN3yLK7OoK7n9OibVm/xymJ838a9A6E/IciOLPj82lZk0fW6O4O7w==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz", + "integrity": "sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==", "optional": true, "peer": true, "dependencies": { @@ -2046,16 +2064,16 @@ } }, "node_modules/@babel/register": { - "version": "7.16.9", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.16.9.tgz", - "integrity": "sha512-jJ72wcghdRIlENfvALcyODhNoGE5j75cYHdC+aQMh6cU/P86tiiXTp9XYZct1UxUMo/4+BgQRyNZEGx0KWGS+g==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.17.0.tgz", + "integrity": "sha512-UNZsMAZ7uKoGHo1HlEXfteEOYssf64n/PNLHGqOKq/bgYcu/4LrQWAHJwSCb3BRZK8Hi5gkJdRcwrGTO2wtRCg==", "optional": true, "peer": true, "dependencies": { "clone-deep": "^4.0.1", "find-cache-dir": "^2.0.0", "make-dir": "^2.1.0", - "pirates": "^4.0.0", + "pirates": "^4.0.5", "source-map-support": "^0.5.16" }, "engines": { @@ -2066,9 +2084,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", - "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.0.tgz", + "integrity": "sha512-etcO/ohMNaNA2UBdaXBBSX/3aEzFMRrVfaPv8Ptc0k+cWpWW0QFiGZ2XnVqQZI1Cf734LbPGmqBKWESfW4x/dQ==", "dependencies": { "regenerator-runtime": "^0.13.4" }, @@ -2105,20 +2123,20 @@ } }, "node_modules/@babel/traverse": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.10.tgz", - "integrity": "sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.0.tgz", + "integrity": "sha512-fpFIXvqD6kC7c7PUNnZ0Z8cQXlarCLtCUpt2S1Dx7PjoRtCFffvOkHHSom+m5HIxMZn5bIBVb71lhabcmjEsqg==", "optional": true, "peer": true, "dependencies": { "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", + "@babel/generator": "^7.17.0", "@babel/helper-environment-visitor": "^7.16.7", "@babel/helper-function-name": "^7.16.7", "@babel/helper-hoist-variables": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.16.10", - "@babel/types": "^7.16.8", + "@babel/parser": "^7.17.0", + "@babel/types": "^7.17.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -2140,9 +2158,9 @@ } }, "node_modules/@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", "optional": true, "peer": true, "dependencies": { @@ -2390,6 +2408,27 @@ "node": ">= 10.14.2" } }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.4.tgz", + "integrity": "sha512-cz8HFjOFfUBtvN+NXYSFMHYRdxZMaEl0XypVrhzxBgadKIXhIkRd8aMeHhmF56Sl7SuS8OnUpQ73/k9LE4VnLg==", + "optional": true, + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.2.6.tgz", + "integrity": "sha512-rVJf5dSMEBxnDEwtAT5x8+p6tZ+xU6Ocm+cR1MYL2gMsRi4MMzVf9Pvq6JaxIsEeKAyYmo2U+yPQN4QfdTfFnA==", + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "sourcemap-codec": "1.4.8" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -2901,14 +2940,14 @@ } }, "node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", "dependencies": { - "defer-to-connect": "^2.0.0" + "defer-to-connect": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=14.16" } }, "node_modules/@types/asn1js": { @@ -2978,9 +3017,9 @@ } }, "node_modules/@types/node": { - "version": "17.0.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.12.tgz", - "integrity": "sha512-4YpbAsnJXWYK/fpTVFlMIcUIho2AYCi4wg5aNPrG1ng7fn/1/RZfCIpRCiBX+12RVa34RluilnvCqD+g3KiSiA==" + "version": "17.0.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.14.tgz", + "integrity": "sha512-SbjLmERksKOGzWzPNuW7fJM7fk3YXVTFiZWB/Hs99gwhk+/dnrQRPBQjPW9aO+fi1tAffi9PrwFvsmOKmDTyng==" }, "node_modules/@types/responselike": { "version": "1.0.0", @@ -3062,14 +3101,14 @@ "peer": true }, "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "optional": true, "peer": true, "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" }, "engines": { "node": ">= 0.6" @@ -3336,6 +3375,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "optional": true, "engines": { "node": ">= 4.0.0" } @@ -3445,14 +3485,14 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.1.tgz", - "integrity": "sha512-TihqEe4sQcb/QcPJvxe94/9RZuLQuF1+To4WqQcRvc+3J3gLCPIPgDKzGLG6zmQLfH3nn25heRuDNkS2KR4I8A==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", + "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", "optional": true, "peer": true, "dependencies": { "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.20.0" + "core-js-compat": "^3.21.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" @@ -3796,9 +3836,9 @@ } }, "node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.0.4.tgz", + "integrity": "sha512-mbcDEZCkv2CZF4G01kr8eBd/5agkt9oCqz75tJMSIsquvRZ2sL6Hi5zGVKi/0OSC9oO1GHfJ2AV0ZIOY9vye0A==", "engines": { "node": ">=10.6.0" } @@ -3820,6 +3860,28 @@ "node": ">=8" } }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } + }, "node_modules/call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -3882,9 +3944,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001303", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001303.tgz", - "integrity": "sha512-/Mqc1oESndUNszJP0kx0UaQU9kEv9nNtJ7Kn8AdA0mNnH8eR1cj0kG+NbNuC1Wq/b21eA8prhKRA3bbkjONegQ==", + "version": "1.0.30001307", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001307.tgz", + "integrity": "sha512-+MXEMczJ4FuxJAUp0jvAl6Df0NI/OfW1RWEE61eSmzS7hw6lz4IKutbhbXendwq8BljfFuHtu26VWsg4afQ7Ng==", "optional": true, "peer": true, "funding": { @@ -3926,6 +3988,16 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/charcodes": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/charcodes/-/charcodes-0.2.0.tgz", + "integrity": "sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ==", + "optional": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", @@ -4345,9 +4417,9 @@ "peer": true }, "node_modules/core-js-compat": { - "version": "3.20.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.20.3.tgz", - "integrity": "sha512-c8M5h0IkNZ+I92QhIpuSijOxGAcj3lgpsWdkCqmUTZNwidujF4r3pi6x1DCN+Vcs5qTS2XWWMfWSuCqyupX8gw==", + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.0.tgz", + "integrity": "sha512-OSXseNPSK2OPJa6GdtkMz/XxeXx8/CJvfhQWTqd6neuUraujcL4jVsjkLQz1OWnax8xVQJnRPe0V2jqNWORA+A==", "optional": true, "peer": true, "dependencies": { @@ -4604,9 +4676,9 @@ "peer": true }, "node_modules/electron-to-chromium": { - "version": "1.4.54", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.54.tgz", - "integrity": "sha512-jRAoneRdSxnpRHO0ANpnEUtQHXxlgfVjrLOnQSisw1ryjXJXvS0pJaR/v2B7S++/tRjgEDp4Sjn5nmgb6uTySw==", + "version": "1.4.64", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.64.tgz", + "integrity": "sha512-8mec/99xgLUZCIZZq3wt61Tpxg55jnOSpxGYapE/1Ma9MpFEYYaz4QNYm0CM1rrnCo7i3FRHhbaWjeCLsveGjQ==", "optional": true, "peer": true }, @@ -4952,9 +5024,9 @@ "peer": true }, "node_modules/expo": { - "version": "44.0.5", - "resolved": "https://registry.npmjs.org/expo/-/expo-44.0.5.tgz", - "integrity": "sha512-QNQjUb+Rve1r1wUjs2fSx3JVxAVtcmqWZgS+izCLFovAoX6bZ1UUkQBUkVP9PNfimnZ11EDFG4243E0yxtmuuA==", + "version": "44.0.6", + "resolved": "https://registry.npmjs.org/expo/-/expo-44.0.6.tgz", + "integrity": "sha512-iHnra6uD5kXZgdSUrvxZ3sLjg1FtgtA4p4uaSKVQ39IaMHJBngo8RKqFUJ+BF2kPDpBLJ251eLlhgYUlnAyuag==", "optional": true, "peer": true, "dependencies": { @@ -4963,14 +5035,14 @@ "@expo/vector-icons": "^12.0.4", "babel-preset-expo": "~9.0.2", "cross-spawn": "^6.0.5", - "expo-application": "~4.0.1", + "expo-application": "~4.0.2", "expo-asset": "~8.4.6", - "expo-constants": "~13.0.0", - "expo-file-system": "~13.1.0", - "expo-font": "~10.0.4", - "expo-keep-awake": "~10.0.1", + "expo-constants": "~13.0.2", + "expo-file-system": "~13.1.3", + "expo-font": "~10.0.5", + "expo-keep-awake": "~10.0.2", "expo-modules-autolinking": "0.5.5", - "expo-modules-core": "0.6.4", + "expo-modules-core": "0.6.5", "fbemitter": "^2.1.1", "invariant": "^2.2.4", "md5-file": "^3.2.3", @@ -4981,13 +5053,13 @@ "expo": "bin/cli.js" }, "optionalDependencies": { - "expo-error-recovery": "~3.0.4" + "expo-error-recovery": "~3.0.5" } }, "node_modules/expo-application": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/expo-application/-/expo-application-4.0.1.tgz", - "integrity": "sha512-yZM/SrpWdi84m5+5F3VDfhrMZOz/uKwXcgBhOP1wzfXt0otGSRW1V5tM+a0sgaKZsDRCGojTU7Jm73BVwwVrwg==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/expo-application/-/expo-application-4.0.2.tgz", + "integrity": "sha512-ngTaFplTkWn0X45gMC+VNXGyJfGxX4wOwKmtr17rNMVWOQUhhLlyMkTj9bAamzsuwZh35l3S/eD/N1aMWWUwMw==", "optional": true, "peer": true, "peerDependencies": { @@ -5009,9 +5081,9 @@ } }, "node_modules/expo-constants": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-13.0.1.tgz", - "integrity": "sha512-48rhXCZMJGVx/v4DEd9PqTY6V/xLgtWHBy8nos27QIpYCyiC27I3QUQEUI1T3MXUwBsIR4LLJuwnD/4IfftrBw==", + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-13.0.2.tgz", + "integrity": "sha512-vGs/kI65vplPFvG8z4W1ariGEtVHHp9Avl28G0zJprt2v/q1E/BnXjwvFSBPc1GB+Zb/7crWSHWRwjaFULBjsg==", "optional": true, "peer": true, "dependencies": { @@ -5023,9 +5095,9 @@ } }, "node_modules/expo-error-recovery": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/expo-error-recovery/-/expo-error-recovery-3.0.4.tgz", - "integrity": "sha512-7z2V7n9Yvm9/ogm4I1KgcsQZfgyDMSOBVHk8pA3IY0jL8+tXTyTrStxHsPXRjE8HHeYikfTRBIeFsh/1wWY7oA==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/expo-error-recovery/-/expo-error-recovery-3.0.5.tgz", + "integrity": "sha512-VM6OOecjt0aPu5/eCdGGJfNjvAZIemaQym0JF/+SA5IlLiPpEfbVCDTO/5yiS8Zb5fKpeABx+GCRmtfnFqvRRw==", "optional": true, "peer": true, "peerDependencies": { @@ -5033,9 +5105,9 @@ } }, "node_modules/expo-file-system": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-13.1.2.tgz", - "integrity": "sha512-TA0LZTi8ZlnmyB2q6rEuTEo7b63e2luBzNhR5h/ow2J55xxRTXQLeaoK9m69XgazLVq6Ys7wiJma/q+Hg38hrQ==", + "version": "13.1.3", + "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-13.1.3.tgz", + "integrity": "sha512-yh1LmxVvezoxwSAUWDRda36+nw96IQj4EgiYNbl6LK6Drtc/v5OhWl1vJG7oSYNhZ0zMwo1CSE4gC7h50ZldtQ==", "optional": true, "peer": true, "dependencies": { @@ -5047,9 +5119,9 @@ } }, "node_modules/expo-font": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-10.0.4.tgz", - "integrity": "sha512-ieEsT6tD6yD6qT7WUzzJ5el0UvACr53RqICu0GI9GUiWuwDFPM2Oi5WfWwYFFStCRuaP6kEtpkJDUZ9cjT5F+w==", + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-10.0.5.tgz", + "integrity": "sha512-x9YwM0xLkDdSvFjeNbyuh33Q1Hk3uc2jbMuuAN5W2ZVcUZqG0M8GCX/KV/D/7rYqdXKbliQA5r44MyDwZe/XRw==", "optional": true, "peer": true, "dependencies": { @@ -5060,9 +5132,9 @@ } }, "node_modules/expo-keep-awake": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-10.0.1.tgz", - "integrity": "sha512-kcBtoDGkm3RRe6BpKDvR7gof/ErajEia38u92pRvNRctdh+p8AFO7GQuiipyg3iMfhcCFVTCIV7h3tuA0g/yDw==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-10.0.2.tgz", + "integrity": "sha512-Ro1lgyKldbFs4mxhWM+goX9sg0S2SRR8FiJJeOvaRzf8xNhrZfWA00Zpr+/3ocCoWQ3eEL+X9UF4PXXHf0KoOg==", "optional": true, "peer": true, "peerDependencies": { @@ -5085,10 +5157,25 @@ "expo-modules-autolinking": "bin/expo-modules-autolinking.js" } }, + "node_modules/expo-modules-autolinking/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "optional": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/expo-modules-core": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-0.6.4.tgz", - "integrity": "sha512-I5MvSZHjww4Jfvob/woCbI0ZLZIUBmhoiLeZsMJoWJuWa8QmtxXjI+4eRjaDB7+RxNVhrnVcmRjQPYG/5HepVg==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-0.6.5.tgz", + "integrity": "sha512-h/9+SJ3m8XkDUV1QrPO8WeXaeRYWLBJrOqhokDyhgWUYSqe6JOuRx1ZkoGq/GmTiwjouRDbXPsXUBiU9HWLYyA==", "optional": true, "peer": true, "dependencies": { @@ -5097,9 +5184,9 @@ } }, "node_modules/expo-random": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/expo-random/-/expo-random-12.1.1.tgz", - "integrity": "sha512-AxxP9aqgCgGQsUC9jvMaaMXLmdkwbeil1MYqLJVMsueeAifsRDAroSGcpkbuXjK7lgNFdfdJNU/+4Z7ybBev/A==", + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/expo-random/-/expo-random-12.1.2.tgz", + "integrity": "sha512-ajB+Mwff9PdglsyLliaU4K9BtVwKvAVVI2hQhnvlS3QgsAhHf+jQVUfAysQJHuioF6ADMEsab/kRUy4Dy03aoQ==", "optional": true, "dependencies": { "base64-js": "^1.3.0" @@ -5125,6 +5212,22 @@ "expo-modules-autolinking": "bin/expo-modules-autolinking.js" } }, + "node_modules/expo/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "optional": true, + "peer": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -5439,6 +5542,11 @@ "node": ">= 0.12" } }, + "node_modules/form-data-encoder": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", + "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==" + }, "node_modules/fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", @@ -5463,17 +5571,16 @@ } }, "node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", "dependencies": { - "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/fs.realpath": { @@ -5536,14 +5643,11 @@ } }, "node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dependencies": { - "pump": "^3.0.0" - }, + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -5621,24 +5725,26 @@ } }, "node_modules/got": { - "version": "11.8.3", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.3.tgz", - "integrity": "sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg==", + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.0.1.tgz", + "integrity": "sha512-1Zhoh+lDej3t7Ks1BP/Jufn+rNqdiHQgUOcTxHzg2Dao1LQfp5S4Iq0T3iBxN4Zdo7QqCJL+WJUNzDX6rCP2Ew==", "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", + "@sindresorhus/is": "^4.2.0", + "@szmarczak/http-timer": "^5.0.1", + "@types/cacheable-request": "^6.0.2", "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", + "cacheable-lookup": "^6.0.4", "cacheable-request": "^7.0.2", "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", + "form-data-encoder": "1.7.1", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.9", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", "responselike": "^2.0.0" }, "engines": { - "node": ">=10.19.0" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sindresorhus/got?sponsor=1" @@ -5843,12 +5949,12 @@ } }, "node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.1.10.tgz", + "integrity": "sha512-QHgsdYkieKp+6JbXP25P+tepqiHYd+FVnDwXpxi/BlUcoIB0nsmTOymTNvETuTO+pDuwcSklPE72VR3DqV+Haw==", "dependencies": { "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" + "resolve-alpn": "^1.2.0" }, "engines": { "node": ">=10.19.0" @@ -6631,9 +6737,9 @@ } }, "node_modules/keyv": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.5.tgz", - "integrity": "sha512-531pkGLqV3BMg0eDqqJFI0R1mkK1Nm5xIP2mM6keP5P8WfFtCkg2IOwplTUmlGoTgIg9yQYZ/kdihhz89XH3vA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.1.0.tgz", + "integrity": "sha512-YsY3wr6HabE11/sscee+3nZ03XjvkrPWGouAmJFBdZoK92wiOlJCzI5/sDEIKdJhdhHO144ei45U9gXfbu14Uw==", "dependencies": { "json-buffer": "3.0.1" } @@ -6905,11 +7011,14 @@ } }, "node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lru-cache": { @@ -6982,10 +7091,15 @@ "node": ">=0.10.0" } }, + "node_modules/matrix-events-sdk": { + "version": "0.0.1-beta.6", + "resolved": "https://registry.npmjs.org/matrix-events-sdk/-/matrix-events-sdk-0.0.1-beta.6.tgz", + "integrity": "sha512-VMqPXe3Bg4R9yC9PNqGv6bDFwWlVYadYxp0Ke1ihhXUCpGcx7e28kOYcqK2T3RxLXK4KK7VH4JRbY53Do3r+Fw==" + }, "node_modules/matrix-js-sdk": { - "version": "15.4.0", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-15.4.0.tgz", - "integrity": "sha512-4iFYnIYEzRwM8W+D3wwcpcv3EspxlYgBNZN3pxWUoYqsTL8PnPSsq2wYFWsoKfEt27EEWour5jwEoP8vjlwYOw==", + "version": "15.5.0", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-15.5.0.tgz", + "integrity": "sha512-Y8BoJ5xEejTeO2vwGrE4hNrSSOKLP6/brqeTy+gjjgti/PUhf+foC+ww9lHv7MqiNYFl9a/8tBf3crhU8+3jVw==", "dependencies": { "@babel/runtime": "^7.12.5", "another-json": "^0.2.0", @@ -6993,6 +7107,7 @@ "bs58": "^4.0.1", "content-type": "^1.0.4", "loglevel": "^1.7.1", + "matrix-events-sdk": "^0.0.1-beta.6", "p-retry": "^4.5.0", "qs": "^6.9.6", "request": "^2.88.2", @@ -7739,9 +7854,9 @@ } }, "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "optional": true, "peer": true, "engines": { @@ -8236,11 +8351,11 @@ } }, "node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", "engines": { - "node": ">=8" + "node": ">=12.20" } }, "node_modules/p-finally": { @@ -8615,14 +8730,6 @@ "node": ">= 10" } }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "engines": { - "node": ">= 0.6.0" - } - }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -8828,9 +8935,9 @@ "peer": true }, "node_modules/react-native": { - "version": "0.67.1", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.67.1.tgz", - "integrity": "sha512-doKN9qhtjilF+6p8603OVzqGKL4fq8EDAH5u00KPmZbL5ampHDQX9y8/uwlUvJggvHwZXlnvhW63u8Y1LA8rxw==", + "version": "0.67.2", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.67.2.tgz", + "integrity": "sha512-grEtpOLLvtSg8Bivg0ffVRCjTkresqMt7Jdog/geF6VAYhb4RnLaaUCWvyrfyB9buf135FKnqg5BIuve/XQNXA==", "optional": true, "peer": true, "dependencies": { @@ -8976,9 +9083,9 @@ "peer": true }, "node_modules/regenerate-unicode-properties": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz", - "integrity": "sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", "optional": true, "peer": true, "dependencies": { @@ -9018,16 +9125,16 @@ } }, "node_modules/regexpu-core": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz", - "integrity": "sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", + "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", "optional": true, "peer": true, "dependencies": { "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^9.0.0", - "regjsgen": "^0.5.2", - "regjsparser": "^0.7.0", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.0.0" }, @@ -9036,16 +9143,16 @@ } }, "node_modules/regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", "optional": true, "peer": true }, "node_modules/regjsparser": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz", - "integrity": "sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", "optional": true, "peer": true, "dependencies": { @@ -9221,6 +9328,14 @@ "lowercase-keys": "^2.0.0" } }, + "node_modules/responselike/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } + }, "node_modules/restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", @@ -9759,9 +9874,9 @@ } }, "node_modules/signal-exit": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", - "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "optional": true, "peer": true }, @@ -10115,6 +10230,13 @@ "optional": true, "peer": true }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "optional": true, + "peer": true + }, "node_modules/split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", @@ -11335,6 +11457,17 @@ } }, "dependencies": { + "@ampproject/remapping": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.0.2.tgz", + "integrity": "sha512-sE8Gx+qSDMLoJvb3QarJJlDQK7SSY4rK3hxp4XsiANeFOmjU46ZI7Y9adAQRJrmbz8zbtZkp3mJTT+rGxtF0XA==", + "optional": true, + "peer": true, + "requires": { + "@jridgewell/trace-mapping": "^0.2.2", + "sourcemap-codec": "1.4.8" + } + }, "@babel/code-frame": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", @@ -11346,34 +11479,34 @@ } }, "@babel/compat-data": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz", - "integrity": "sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz", + "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==", "optional": true, "peer": true }, "@babel/core": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz", - "integrity": "sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.0.tgz", + "integrity": "sha512-x/5Ea+RO5MvF9ize5DeVICJoVrNv0Mi2RnIABrZEKYvPEpldXwauPkgvYA17cKa6WpU3LoYvYbuEMFtSNFsarA==", "optional": true, "peer": true, "requires": { + "@ampproject/remapping": "^2.0.0", "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", + "@babel/generator": "^7.17.0", "@babel/helper-compilation-targets": "^7.16.7", "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.16.7", - "@babel/parser": "^7.16.12", + "@babel/helpers": "^7.17.0", + "@babel/parser": "^7.17.0", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.10", - "@babel/types": "^7.16.8", + "@babel/traverse": "^7.17.0", + "@babel/types": "^7.17.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" + "semver": "^6.3.0" }, "dependencies": { "@babel/code-frame": { @@ -11406,13 +11539,13 @@ } }, "@babel/generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", - "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.0.tgz", + "integrity": "sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw==", "optional": true, "peer": true, "requires": { - "@babel/types": "^7.16.8", + "@babel/types": "^7.17.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -11461,9 +11594,9 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.10.tgz", - "integrity": "sha512-wDeej0pu3WN/ffTxMNCPW5UCiOav8IcLRxSIyp/9+IF2xJUM9h/OYjg0IJLHaL6F8oU8kqMz9nc1vryXhMsgXg==", + "version": "7.17.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.1.tgz", + "integrity": "sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ==", "optional": true, "peer": true, "requires": { @@ -11477,14 +11610,14 @@ } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.7.tgz", - "integrity": "sha512-fk5A6ymfp+O5+p2yCkXAu5Kyj6v0xh0RBeNcAkYUMDvvAAoxvSKXn+Jb37t/yWFiQVDFK1ELpUTD8/aLhCPu+g==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", + "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", "optional": true, "peer": true, "requires": { "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^4.7.1" + "regexpu-core": "^5.0.1" } }, "@babel/helper-define-polyfill-provider": { @@ -11703,15 +11836,15 @@ } }, "@babel/helpers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz", - "integrity": "sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.0.tgz", + "integrity": "sha512-Xe/9NFxjPwELUvW2dsukcMZIp6XwPSbI4ojFBJuX5ramHuVE22SVcZIwqzdWo5uCgeTXW8qV97lMvSOjq+1+nQ==", "optional": true, "peer": true, "requires": { "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/traverse": "^7.17.0", + "@babel/types": "^7.17.0" } }, "@babel/highlight": { @@ -11785,9 +11918,9 @@ } }, "@babel/parser": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", - "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.0.tgz", + "integrity": "sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw==", "optional": true, "peer": true }, @@ -11849,15 +11982,17 @@ } }, "@babel/plugin-proposal-decorators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.16.7.tgz", - "integrity": "sha512-DoEpnuXK14XV9btI1k8tzNGCutMclpj4yru8aXKoHlVmbO1s+2A+g2+h4JhcjrxkFJqzbymnLG6j/niOf3iFXQ==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.0.tgz", + "integrity": "sha512-JR8HTf3T1CsdMqfENrZ9pqncwsH4sPcvsyDLpvmv8iIbpDmeyBD7HPfGAIqkQph2j5d3B84hTm+m3qHPAedaPw==", "optional": true, "peer": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.17.0", "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-decorators": "^7.16.7" + "@babel/helper-replace-supers": "^7.16.7", + "@babel/plugin-syntax-decorators": "^7.17.0", + "charcodes": "^0.2.0" } }, "@babel/plugin-proposal-dynamic-import": { @@ -12040,9 +12175,9 @@ } }, "@babel/plugin-syntax-decorators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.16.7.tgz", - "integrity": "sha512-vQ+PxL+srA7g6Rx6I1e15m55gftknl2X8GCUW1JTlkTaXZLJOS0UcaY0eK9jYT7IYf4awn6qwyghVHLDz1WyMw==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz", + "integrity": "sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A==", "optional": true, "peer": true, "requires": { @@ -12539,9 +12674,9 @@ } }, "@babel/plugin-transform-runtime": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.10.tgz", - "integrity": "sha512-9nwTiqETv2G7xI4RvXHNfpGdr8pAA+Q/YtN3yLK7OoK7n9OibVm/xymJ838a9A6E/IciOLPj82lZk0fW6O4O7w==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz", + "integrity": "sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==", "optional": true, "peer": true, "requires": { @@ -12777,23 +12912,23 @@ } }, "@babel/register": { - "version": "7.16.9", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.16.9.tgz", - "integrity": "sha512-jJ72wcghdRIlENfvALcyODhNoGE5j75cYHdC+aQMh6cU/P86tiiXTp9XYZct1UxUMo/4+BgQRyNZEGx0KWGS+g==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.17.0.tgz", + "integrity": "sha512-UNZsMAZ7uKoGHo1HlEXfteEOYssf64n/PNLHGqOKq/bgYcu/4LrQWAHJwSCb3BRZK8Hi5gkJdRcwrGTO2wtRCg==", "optional": true, "peer": true, "requires": { "clone-deep": "^4.0.1", "find-cache-dir": "^2.0.0", "make-dir": "^2.1.0", - "pirates": "^4.0.0", + "pirates": "^4.0.5", "source-map-support": "^0.5.16" } }, "@babel/runtime": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", - "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.0.tgz", + "integrity": "sha512-etcO/ohMNaNA2UBdaXBBSX/3aEzFMRrVfaPv8Ptc0k+cWpWW0QFiGZ2XnVqQZI1Cf734LbPGmqBKWESfW4x/dQ==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -12823,20 +12958,20 @@ } }, "@babel/traverse": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.10.tgz", - "integrity": "sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.0.tgz", + "integrity": "sha512-fpFIXvqD6kC7c7PUNnZ0Z8cQXlarCLtCUpt2S1Dx7PjoRtCFffvOkHHSom+m5HIxMZn5bIBVb71lhabcmjEsqg==", "optional": true, "peer": true, "requires": { "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", + "@babel/generator": "^7.17.0", "@babel/helper-environment-visitor": "^7.16.7", "@babel/helper-function-name": "^7.16.7", "@babel/helper-hoist-variables": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.16.10", - "@babel/types": "^7.16.8", + "@babel/parser": "^7.17.0", + "@babel/types": "^7.17.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -12854,9 +12989,9 @@ } }, "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", "optional": true, "peer": true, "requires": { @@ -13078,6 +13213,24 @@ "chalk": "^4.0.0" } }, + "@jridgewell/resolve-uri": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.4.tgz", + "integrity": "sha512-cz8HFjOFfUBtvN+NXYSFMHYRdxZMaEl0XypVrhzxBgadKIXhIkRd8aMeHhmF56Sl7SuS8OnUpQ73/k9LE4VnLg==", + "optional": true, + "peer": true + }, + "@jridgewell/trace-mapping": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.2.6.tgz", + "integrity": "sha512-rVJf5dSMEBxnDEwtAT5x8+p6tZ+xU6Ocm+cR1MYL2gMsRi4MMzVf9Pvq6JaxIsEeKAyYmo2U+yPQN4QfdTfFnA==", + "optional": true, + "peer": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "sourcemap-codec": "1.4.8" + } + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -13519,11 +13672,11 @@ "integrity": "sha512-QppPM/8l3Mawvh4rn9CNEYIU9bxpXUCRMaX9yUpvBk1nMKusLKpfXGDEKExKaPhLzcn3lzil7pR6rnJ11HgeRQ==" }, "@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", "requires": { - "defer-to-connect": "^2.0.0" + "defer-to-connect": "^2.0.1" } }, "@types/asn1js": { @@ -13593,9 +13746,9 @@ } }, "@types/node": { - "version": "17.0.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.12.tgz", - "integrity": "sha512-4YpbAsnJXWYK/fpTVFlMIcUIho2AYCi4wg5aNPrG1ng7fn/1/RZfCIpRCiBX+12RVa34RluilnvCqD+g3KiSiA==" + "version": "17.0.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.14.tgz", + "integrity": "sha512-SbjLmERksKOGzWzPNuW7fJM7fk3YXVTFiZWB/Hs99gwhk+/dnrQRPBQjPW9aO+fi1tAffi9PrwFvsmOKmDTyng==" }, "@types/responselike": { "version": "1.0.0", @@ -13671,14 +13824,14 @@ "peer": true }, "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "optional": true, "peer": true, "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" } }, "ajv": { @@ -13898,7 +14051,8 @@ "at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "optional": true }, "atob": { "version": "2.1.2", @@ -13987,14 +14141,14 @@ } }, "babel-plugin-polyfill-corejs3": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.1.tgz", - "integrity": "sha512-TihqEe4sQcb/QcPJvxe94/9RZuLQuF1+To4WqQcRvc+3J3gLCPIPgDKzGLG6zmQLfH3nn25heRuDNkS2KR4I8A==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", + "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", "optional": true, "peer": true, "requires": { "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.20.0" + "core-js-compat": "^3.21.0" } }, "babel-plugin-polyfill-regenerator": { @@ -14283,9 +14437,9 @@ } }, "cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.0.4.tgz", + "integrity": "sha512-mbcDEZCkv2CZF4G01kr8eBd/5agkt9oCqz75tJMSIsquvRZ2sL6Hi5zGVKi/0OSC9oO1GHfJ2AV0ZIOY9vye0A==" }, "cacheable-request": { "version": "7.0.2", @@ -14299,6 +14453,21 @@ "lowercase-keys": "^2.0.0", "normalize-url": "^6.0.1", "responselike": "^2.0.0" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } } }, "call-bind": { @@ -14345,9 +14514,9 @@ "peer": true }, "caniuse-lite": { - "version": "1.0.30001303", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001303.tgz", - "integrity": "sha512-/Mqc1oESndUNszJP0kx0UaQU9kEv9nNtJ7Kn8AdA0mNnH8eR1cj0kG+NbNuC1Wq/b21eA8prhKRA3bbkjONegQ==", + "version": "1.0.30001307", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001307.tgz", + "integrity": "sha512-+MXEMczJ4FuxJAUp0jvAl6Df0NI/OfW1RWEE61eSmzS7hw6lz4IKutbhbXendwq8BljfFuHtu26VWsg4afQ7Ng==", "optional": true, "peer": true }, @@ -14376,6 +14545,13 @@ "supports-color": "^7.1.0" } }, + "charcodes": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/charcodes/-/charcodes-0.2.0.tgz", + "integrity": "sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ==", + "optional": true, + "peer": true + }, "ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", @@ -14734,9 +14910,9 @@ "peer": true }, "core-js-compat": { - "version": "3.20.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.20.3.tgz", - "integrity": "sha512-c8M5h0IkNZ+I92QhIpuSijOxGAcj3lgpsWdkCqmUTZNwidujF4r3pi6x1DCN+Vcs5qTS2XWWMfWSuCqyupX8gw==", + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.0.tgz", + "integrity": "sha512-OSXseNPSK2OPJa6GdtkMz/XxeXx8/CJvfhQWTqd6neuUraujcL4jVsjkLQz1OWnax8xVQJnRPe0V2jqNWORA+A==", "optional": true, "peer": true, "requires": { @@ -14936,9 +15112,9 @@ "peer": true }, "electron-to-chromium": { - "version": "1.4.54", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.54.tgz", - "integrity": "sha512-jRAoneRdSxnpRHO0ANpnEUtQHXxlgfVjrLOnQSisw1ryjXJXvS0pJaR/v2B7S++/tRjgEDp4Sjn5nmgb6uTySw==", + "version": "1.4.64", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.64.tgz", + "integrity": "sha512-8mec/99xgLUZCIZZq3wt61Tpxg55jnOSpxGYapE/1Ma9MpFEYYaz4QNYm0CM1rrnCo7i3FRHhbaWjeCLsveGjQ==", "optional": true, "peer": true }, @@ -15222,9 +15398,9 @@ } }, "expo": { - "version": "44.0.5", - "resolved": "https://registry.npmjs.org/expo/-/expo-44.0.5.tgz", - "integrity": "sha512-QNQjUb+Rve1r1wUjs2fSx3JVxAVtcmqWZgS+izCLFovAoX6bZ1UUkQBUkVP9PNfimnZ11EDFG4243E0yxtmuuA==", + "version": "44.0.6", + "resolved": "https://registry.npmjs.org/expo/-/expo-44.0.6.tgz", + "integrity": "sha512-iHnra6uD5kXZgdSUrvxZ3sLjg1FtgtA4p4uaSKVQ39IaMHJBngo8RKqFUJ+BF2kPDpBLJ251eLlhgYUlnAyuag==", "optional": true, "peer": true, "requires": { @@ -15233,15 +15409,15 @@ "@expo/vector-icons": "^12.0.4", "babel-preset-expo": "~9.0.2", "cross-spawn": "^6.0.5", - "expo-application": "~4.0.1", + "expo-application": "~4.0.2", "expo-asset": "~8.4.6", - "expo-constants": "~13.0.0", - "expo-error-recovery": "~3.0.4", - "expo-file-system": "~13.1.0", - "expo-font": "~10.0.4", - "expo-keep-awake": "~10.0.1", + "expo-constants": "~13.0.2", + "expo-error-recovery": "~3.0.5", + "expo-file-system": "~13.1.3", + "expo-font": "~10.0.5", + "expo-keep-awake": "~10.0.2", "expo-modules-autolinking": "0.5.5", - "expo-modules-core": "0.6.4", + "expo-modules-core": "0.6.5", "fbemitter": "^2.1.1", "invariant": "^2.2.4", "md5-file": "^3.2.3", @@ -15262,13 +15438,26 @@ "find-up": "^5.0.0", "fs-extra": "^9.1.0" } + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "optional": true, + "peer": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } } } }, "expo-application": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/expo-application/-/expo-application-4.0.1.tgz", - "integrity": "sha512-yZM/SrpWdi84m5+5F3VDfhrMZOz/uKwXcgBhOP1wzfXt0otGSRW1V5tM+a0sgaKZsDRCGojTU7Jm73BVwwVrwg==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/expo-application/-/expo-application-4.0.2.tgz", + "integrity": "sha512-ngTaFplTkWn0X45gMC+VNXGyJfGxX4wOwKmtr17rNMVWOQUhhLlyMkTj9bAamzsuwZh35l3S/eD/N1aMWWUwMw==", "optional": true, "peer": true, "requires": {} @@ -15288,9 +15477,9 @@ } }, "expo-constants": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-13.0.1.tgz", - "integrity": "sha512-48rhXCZMJGVx/v4DEd9PqTY6V/xLgtWHBy8nos27QIpYCyiC27I3QUQEUI1T3MXUwBsIR4LLJuwnD/4IfftrBw==", + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-13.0.2.tgz", + "integrity": "sha512-vGs/kI65vplPFvG8z4W1ariGEtVHHp9Avl28G0zJprt2v/q1E/BnXjwvFSBPc1GB+Zb/7crWSHWRwjaFULBjsg==", "optional": true, "peer": true, "requires": { @@ -15299,17 +15488,17 @@ } }, "expo-error-recovery": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/expo-error-recovery/-/expo-error-recovery-3.0.4.tgz", - "integrity": "sha512-7z2V7n9Yvm9/ogm4I1KgcsQZfgyDMSOBVHk8pA3IY0jL8+tXTyTrStxHsPXRjE8HHeYikfTRBIeFsh/1wWY7oA==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/expo-error-recovery/-/expo-error-recovery-3.0.5.tgz", + "integrity": "sha512-VM6OOecjt0aPu5/eCdGGJfNjvAZIemaQym0JF/+SA5IlLiPpEfbVCDTO/5yiS8Zb5fKpeABx+GCRmtfnFqvRRw==", "optional": true, "peer": true, "requires": {} }, "expo-file-system": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-13.1.2.tgz", - "integrity": "sha512-TA0LZTi8ZlnmyB2q6rEuTEo7b63e2luBzNhR5h/ow2J55xxRTXQLeaoK9m69XgazLVq6Ys7wiJma/q+Hg38hrQ==", + "version": "13.1.3", + "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-13.1.3.tgz", + "integrity": "sha512-yh1LmxVvezoxwSAUWDRda36+nw96IQj4EgiYNbl6LK6Drtc/v5OhWl1vJG7oSYNhZ0zMwo1CSE4gC7h50ZldtQ==", "optional": true, "peer": true, "requires": { @@ -15318,9 +15507,9 @@ } }, "expo-font": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-10.0.4.tgz", - "integrity": "sha512-ieEsT6tD6yD6qT7WUzzJ5el0UvACr53RqICu0GI9GUiWuwDFPM2Oi5WfWwYFFStCRuaP6kEtpkJDUZ9cjT5F+w==", + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-10.0.5.tgz", + "integrity": "sha512-x9YwM0xLkDdSvFjeNbyuh33Q1Hk3uc2jbMuuAN5W2ZVcUZqG0M8GCX/KV/D/7rYqdXKbliQA5r44MyDwZe/XRw==", "optional": true, "peer": true, "requires": { @@ -15328,9 +15517,9 @@ } }, "expo-keep-awake": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-10.0.1.tgz", - "integrity": "sha512-kcBtoDGkm3RRe6BpKDvR7gof/ErajEia38u92pRvNRctdh+p8AFO7GQuiipyg3iMfhcCFVTCIV7h3tuA0g/yDw==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-10.0.2.tgz", + "integrity": "sha512-Ro1lgyKldbFs4mxhWM+goX9sg0S2SRR8FiJJeOvaRzf8xNhrZfWA00Zpr+/3ocCoWQ3eEL+X9UF4PXXHf0KoOg==", "optional": true, "peer": true, "requires": {} @@ -15346,12 +15535,26 @@ "fast-glob": "^3.2.5", "find-up": "~5.0.0", "fs-extra": "^9.1.0" + }, + "dependencies": { + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "optional": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + } } }, "expo-modules-core": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-0.6.4.tgz", - "integrity": "sha512-I5MvSZHjww4Jfvob/woCbI0ZLZIUBmhoiLeZsMJoWJuWa8QmtxXjI+4eRjaDB7+RxNVhrnVcmRjQPYG/5HepVg==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-0.6.5.tgz", + "integrity": "sha512-h/9+SJ3m8XkDUV1QrPO8WeXaeRYWLBJrOqhokDyhgWUYSqe6JOuRx1ZkoGq/GmTiwjouRDbXPsXUBiU9HWLYyA==", "optional": true, "peer": true, "requires": { @@ -15360,9 +15563,9 @@ } }, "expo-random": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/expo-random/-/expo-random-12.1.1.tgz", - "integrity": "sha512-AxxP9aqgCgGQsUC9jvMaaMXLmdkwbeil1MYqLJVMsueeAifsRDAroSGcpkbuXjK7lgNFdfdJNU/+4Z7ybBev/A==", + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/expo-random/-/expo-random-12.1.2.tgz", + "integrity": "sha512-ajB+Mwff9PdglsyLliaU4K9BtVwKvAVVI2hQhnvlS3QgsAhHf+jQVUfAysQJHuioF6ADMEsab/kRUy4Dy03aoQ==", "optional": true, "requires": { "base64-js": "^1.3.0" @@ -15633,6 +15836,11 @@ "mime-types": "^2.1.12" } }, + "form-data-encoder": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz", + "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==" + }, "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", @@ -15651,11 +15859,10 @@ "peer": true }, "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", "requires": { - "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" @@ -15705,12 +15912,9 @@ } }, "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" }, "get-value": { "version": "2.0.6", @@ -15766,20 +15970,22 @@ "peer": true }, "got": { - "version": "11.8.3", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.3.tgz", - "integrity": "sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg==", + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.0.1.tgz", + "integrity": "sha512-1Zhoh+lDej3t7Ks1BP/Jufn+rNqdiHQgUOcTxHzg2Dao1LQfp5S4Iq0T3iBxN4Zdo7QqCJL+WJUNzDX6rCP2Ew==", "requires": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", + "@sindresorhus/is": "^4.2.0", + "@szmarczak/http-timer": "^5.0.1", + "@types/cacheable-request": "^6.0.2", "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", + "cacheable-lookup": "^6.0.4", "cacheable-request": "^7.0.2", "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", + "form-data-encoder": "1.7.1", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.9", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", "responselike": "^2.0.0" } }, @@ -15941,12 +16147,12 @@ } }, "http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.1.10.tgz", + "integrity": "sha512-QHgsdYkieKp+6JbXP25P+tepqiHYd+FVnDwXpxi/BlUcoIB0nsmTOymTNvETuTO+pDuwcSklPE72VR3DqV+Haw==", "requires": { "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" + "resolve-alpn": "^1.2.0" } }, "iconv-lite": { @@ -16587,9 +16793,9 @@ } }, "keyv": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.5.tgz", - "integrity": "sha512-531pkGLqV3BMg0eDqqJFI0R1mkK1Nm5xIP2mM6keP5P8WfFtCkg2IOwplTUmlGoTgIg9yQYZ/kdihhz89XH3vA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.1.0.tgz", + "integrity": "sha512-YsY3wr6HabE11/sscee+3nZ03XjvkrPWGouAmJFBdZoK92wiOlJCzI5/sDEIKdJhdhHO144ei45U9gXfbu14Uw==", "requires": { "json-buffer": "3.0.1" } @@ -16820,9 +17026,9 @@ } }, "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==" }, "lru-cache": { "version": "6.0.0", @@ -16881,10 +17087,15 @@ "object-visit": "^1.0.0" } }, + "matrix-events-sdk": { + "version": "0.0.1-beta.6", + "resolved": "https://registry.npmjs.org/matrix-events-sdk/-/matrix-events-sdk-0.0.1-beta.6.tgz", + "integrity": "sha512-VMqPXe3Bg4R9yC9PNqGv6bDFwWlVYadYxp0Ke1ihhXUCpGcx7e28kOYcqK2T3RxLXK4KK7VH4JRbY53Do3r+Fw==" + }, "matrix-js-sdk": { - "version": "15.4.0", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-15.4.0.tgz", - "integrity": "sha512-4iFYnIYEzRwM8W+D3wwcpcv3EspxlYgBNZN3pxWUoYqsTL8PnPSsq2wYFWsoKfEt27EEWour5jwEoP8vjlwYOw==", + "version": "15.5.0", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-15.5.0.tgz", + "integrity": "sha512-Y8BoJ5xEejTeO2vwGrE4hNrSSOKLP6/brqeTy+gjjgti/PUhf+foC+ww9lHv7MqiNYFl9a/8tBf3crhU8+3jVw==", "requires": { "@babel/runtime": "^7.12.5", "another-json": "^0.2.0", @@ -16892,6 +17103,7 @@ "bs58": "^4.0.1", "content-type": "^1.0.4", "loglevel": "^1.7.1", + "matrix-events-sdk": "^0.0.1-beta.6", "p-retry": "^4.5.0", "qs": "^6.9.6", "request": "^2.88.2", @@ -17560,9 +17772,9 @@ } }, "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "optional": true, "peer": true }, @@ -17954,9 +18166,9 @@ "peer": true }, "p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==" }, "p-finally": { "version": "1.0.0", @@ -18237,11 +18449,6 @@ "react-is": "^17.0.1" } }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" - }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -18396,9 +18603,9 @@ "peer": true }, "react-native": { - "version": "0.67.1", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.67.1.tgz", - "integrity": "sha512-doKN9qhtjilF+6p8603OVzqGKL4fq8EDAH5u00KPmZbL5ampHDQX9y8/uwlUvJggvHwZXlnvhW63u8Y1LA8rxw==", + "version": "0.67.2", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.67.2.tgz", + "integrity": "sha512-grEtpOLLvtSg8Bivg0ffVRCjTkresqMt7Jdog/geF6VAYhb4RnLaaUCWvyrfyB9buf135FKnqg5BIuve/XQNXA==", "optional": true, "peer": true, "requires": { @@ -18527,9 +18734,9 @@ "peer": true }, "regenerate-unicode-properties": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz", - "integrity": "sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", "optional": true, "peer": true, "requires": { @@ -18563,31 +18770,31 @@ } }, "regexpu-core": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz", - "integrity": "sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", + "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", "optional": true, "peer": true, "requires": { "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^9.0.0", - "regjsgen": "^0.5.2", - "regjsparser": "^0.7.0", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.0.0" } }, "regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", "optional": true, "peer": true }, "regjsparser": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz", - "integrity": "sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", "optional": true, "peer": true, "requires": { @@ -18730,6 +18937,13 @@ "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", "requires": { "lowercase-keys": "^2.0.0" + }, + "dependencies": { + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } } }, "restore-cursor": { @@ -19172,9 +19386,9 @@ } }, "signal-exit": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", - "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "optional": true, "peer": true }, @@ -19477,6 +19691,13 @@ "optional": true, "peer": true }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "optional": true, + "peer": true + }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", diff --git a/package.json b/package.json index 4f58a26..af01878 100644 --- a/package.json +++ b/package.json @@ -1,18 +1,18 @@ { "name": "node-red-contrib-matrix-chat", - "version": "0.4.1", + "version": "0.4.5", "description": "Matrix chat server client for Node-RED", "dependencies": { - "fs-extra": "^9.1.0", - "got": "^11.8.2", + "fs-extra": "^10.0.0", + "got": "^12.0.1", "isomorphic-webcrypto": "^2.3.8", - "matrix-js-sdk": "^15.3.0", + "matrix-js-sdk": "^15.5.0", "node-localstorage": "^2.2.1", "olm": "https://packages.matrix.org/npm/olm/olm-3.2.1.tgz", - "process": "^0.11.10", "utf8": "^3.0.0" }, "node-red": { + "version": ">=1.3.0", "nodes": { "matrix-server-config": "src/matrix-server-config.js", "matrix-receive": "src/matrix-receive.js", @@ -35,6 +35,9 @@ "matrix-room-users": "src/matrix-room-users.js" } }, + "engines": { + "node": ">=14.0.0" + }, "keywords": [ "node-red", "matrix", diff --git a/src/matrix-crypt-file.js b/src/matrix-crypt-file.js index 3aa993f..e58086d 100644 --- a/src/matrix-crypt-file.js +++ b/src/matrix-crypt-file.js @@ -1,5 +1,4 @@ module.exports = function(RED) { - const got = require('got'); const crypto = require('isomorphic-webcrypto'); function MatrixDecryptFile(n) { @@ -10,6 +9,8 @@ module.exports = function(RED) { this.name = n.name; node.on("input", async function (msg) { + const { got } = await import('got'); + if(!msg.type) { node.error('msg.type is required.'); return; diff --git a/src/matrix-receive.html b/src/matrix-receive.html index 209c0db..616dc94 100644 --- a/src/matrix-receive.html +++ b/src/matrix-receive.html @@ -204,6 +204,11 @@
  • msg.type == 'm.file' +
    +
    msg.filename string
    +
    the file's parsed filename
    +
    +
    msg.url string
    the file's URL
    @@ -216,6 +221,11 @@
  • msg.type == 'm.image' +
    +
    msg.filename string
    +
    the image's parsed filename
    +
    +
    msg.url string
    the image's URL
    diff --git a/src/matrix-receive.js b/src/matrix-receive.js index 2ac9cd2..81ac351 100644 --- a/src/matrix-receive.js +++ b/src/matrix-receive.js @@ -62,6 +62,7 @@ module.exports = function(RED) { case 'm.file': if(!node.acceptFiles) return; + msg.filename = msg.content.filename || msg.content.body; if(msg.encrypted) { msg.url = node.server.matrixClient.mxcUrlToHttp(msg.content.file.url); msg.mxc_url = msg.content.file.url; @@ -73,7 +74,7 @@ module.exports = function(RED) { case 'm.image': if(!node.acceptImages) return; - + msg.filename = msg.content.filename || msg.content.body; if(msg.encrypted) { msg.url = node.server.matrixClient.mxcUrlToHttp(msg.content.file.url); msg.mxc_url = msg.content.file.url; diff --git a/src/matrix-room-users.html b/src/matrix-room-users.html index 3e70404..c94e8fe 100644 --- a/src/matrix-room-users.html +++ b/src/matrix-room-users.html @@ -31,9 +31,6 @@ -
    - This only works on Synapse servers. The user also must be an administrator. -