diff options
| -rw-r--r-- | package.json | 2 | ||||
| -rw-r--r-- | pirc.js | 39 |
2 files changed, 31 insertions, 10 deletions
diff --git a/package.json b/package.json index 8fe6355..0217066 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pirc-extension", - "version": "0.1.9-dev+a5547ed59210", + "version": "0.1.9-dev+ec68348def36", "description": "PiRC: puts every interactive pi session on a PiRC relay", "license": "MIT", "homepage": "https://pirc.dev", @@ -1,4 +1,4 @@ -// PiRC extension 0.1.9-dev+a5547ed59210. Third-party code in this file: @bufbuild/protobuf@2.16.0, ws@8.22.0; see NOTICE. +// PiRC extension 0.1.9-dev+ec68348def36. Third-party code in this file: @bufbuild/protobuf@2.16.0, ws@8.22.0; see NOTICE. import { createRequire as __pircCreateRequire } from "node:module"; const require = __pircCreateRequire(import.meta.url); var __create = Object.create; @@ -7139,7 +7139,7 @@ var wrapper_default = import_websocket.default; var file_pirc_v1alpha1_common = /* @__PURE__ */ fileDesc("ChpwaXJjL3YxYWxwaGExL2NvbW1vbi5wcm90bxINcGlyYy52MWFscGhhMSJHCgpTZXNzaW9uUmVmEhAKCGhvc3Rfa2V5GAEgASgMEhIKCnNlc3Npb25faWQYAiABKAkSEwoLaW5zdGFuY2VfaWQYAyABKAkiVAoFRXJyb3ISJgoEY29kZRgBIAEoDjIYLnBpcmMudjFhbHBoYTEuRXJyb3JDb2RlEg8KB21lc3NhZ2UYAiABKAkSEgoKcmVxdWVzdF9pZBgDIAEoCSq6AwoJRXJyb3JDb2RlEhoKFkVSUk9SX0NPREVfVU5TUEVDSUZJRUQQABIeChpFUlJPUl9DT0RFX1VOQVVUSEVOVElDQVRFRBABEiAKHEVSUk9SX0NPREVfUEVSTUlTU0lPTl9ERU5JRUQQAhIiCh5FUlJPUl9DT0RFX1ZFUlNJT05fVU5TVVBQT1JURUQQAxIWChJFUlJPUl9DT0RFX0lOVkFMSUQQBBIYChRFUlJPUl9DT0RFX1RPT19MQVJHRRAFEiAKHEVSUk9SX0NPREVfU0VTU0lPTl9OT1RfRk9VTkQQBhIbChdFUlJPUl9DT0RFX1NFU1NJT05fR09ORRAHEhMKD0VSUk9SX0NPREVfQlVTWRAIEhYKEkVSUk9SX0NPREVfVElNRU9VVBAJEhwKGEVSUk9SX0NPREVfVE9LRU5fSU5WQUxJRBAKEhsKF0VSUk9SX0NPREVfUkFURV9MSU1JVEVEEAsSFwoTRVJST1JfQ09ERV9JTlRFUk5BTBAMEhgKFEVSUk9SX0NPREVfUElfRkFJTEVEEA0SHwobRVJST1JfQ09ERV9BUFBST1ZBTF9QRU5ESU5HEA5CrAEKEWNvbS5waXJjLnYxYWxwaGExQgtDb21tb25Qcm90b1ABWjVwaXJjLmRldi9yZWxheS9pbnRlcm5hbC9wYi9waXJjL3YxYWxwaGExO3BpcmN2MWFscGhhMaICA1BYWKoCDVBpcmMuVjFhbHBoYTHKAg1QaXJjXFYxYWxwaGEx4gIZUGlyY1xWMWFscGhhMVxHUEJNZXRhZGF0YeoCDlBpcmM6OlYxYWxwaGExYgZwcm90bzM"); // protocol/gen/pirc/v1alpha1/relay_pb.ts -var file_pirc_v1alpha1_relay = /* @__PURE__ */ fileDesc("ChlwaXJjL3YxYWxwaGExL3JlbGF5LnByb3RvEg1waXJjLnYxYWxwaGExIvEICgVGcmFtZRIlCgVoZWxsbxgBIAEoCzIULnBpcmMudjFhbHBoYTEuSGVsbG9IABItCgljaGFsbGVuZ2UYAiABKAsyGC5waXJjLnYxYWxwaGExLkNoYWxsZW5nZUgAEiMKBGF1dGgYAyABKAsyEy5waXJjLnYxYWxwaGExLkF1dGhIABIpCgd3ZWxjb21lGAQgASgLMhYucGlyYy52MWFscGhhMS5XZWxjb21lSAASOgoQc2Vzc2lvbl9hbm5vdW5jZRgKIAEoCzIeLnBpcmMudjFhbHBoYTEuU2Vzc2lvbkFubm91bmNlSAASMAoLc2Vzc2lvbl9lbmQYCyABKAsyGS5waXJjLnYxYWxwaGExLlNlc3Npb25FbmRIABI+ChJzdWJzY3JpYmVfc2Vzc2lvbnMYFCABKAsyIC5waXJjLnYxYWxwaGExLlN1YnNjcmliZVNlc3Npb25zSAASJwoGYXR0YWNoGBUgASgLMhUucGlyYy52MWFscGhhMS5BdHRhY2hIABInCgZkZXRhY2gYFiABKAsyFS5waXJjLnYxYWxwaGExLkRldGFjaEgAEj8KE3dhdGNoX3BlbmRpbmdfaG9zdHMYFyABKAsyIC5waXJjLnYxYWxwaGExLldhdGNoUGVuZGluZ0hvc3RzSAASMgoMYXBwcm92ZV9ob3N0GBggASgLMhoucGlyYy52MWFscGhhMS5BcHByb3ZlSG9zdEgAEjAKC3JlamVjdF9ob3N0GBkgASgLMhkucGlyYy52MWFscGhhMS5SZWplY3RIb3N0SAASLgoKd2F0Y2hfa2V5cxgaIAEoCzIYLnBpcmMudjFhbHBoYTEuV2F0Y2hLZXlzSAASLgoKcmVuYW1lX2tleRgbIAEoCzIYLnBpcmMudjFhbHBoYTEuUmVuYW1lS2V5SAASMgoMc2Vzc2lvbl9saXN0GB4gASgLMhoucGlyYy52MWFscGhhMS5TZXNzaW9uTGlzdEgAEjgKD3Nlc3Npb25fdXBkYXRlZBgfIAEoCzIdLnBpcmMudjFhbHBoYTEuU2Vzc2lvblVwZGF0ZWRIABI0Cg1zZXNzaW9uX2VuZGVkGCAgASgLMhsucGlyYy52MWFscGhhMS5TZXNzaW9uRW5kZWRIABI0Cg1wZW5kaW5nX2hvc3RzGCEgASgLMhsucGlyYy52MWFscGhhMS5QZW5kaW5nSG9zdHNIABIyCgxob3N0X2RlY2lkZWQYIiABKAsyGi5waXJjLnYxYWxwaGExLkhvc3REZWNpZGVkSAASIwoEa2V5cxgjIAEoCzITLnBpcmMudjFhbHBoYTEuS2V5c0gAEjAKC2tleV9jaGFuZ2VkGCQgASgLMhkucGlyYy52MWFscGhhMS5LZXlDaGFuZ2VkSAASJwoGcm91dGVkGCggASgLMhUucGlyYy52MWFscGhhMS5Sb3V0ZWRIABIlCgVlcnJvchgyIAEoCzIULnBpcmMudjFhbHBoYTEuRXJyb3JIAEIGCgRib2R5IrUBCgVIZWxsbxI4ChBwcm90b2NvbF92ZXJzaW9uGAEgASgOMh4ucGlyYy52MWFscGhhMS5Qcm90b2NvbFZlcnNpb24SIQoEcm9sZRgCIAEoDjITLnBpcmMudjFhbHBoYTEuUm9sZRISCgpwdWJsaWNfa2V5GAMgASgMEhoKEnJlZ2lzdHJhdGlvbl90b2tlbhgEIAEoCRINCgVsYWJlbBgFIAEoCRIQCghzb2Z0d2FyZRgGIAEoCSIaCglDaGFsbGVuZ2USDQoFbm9uY2UYASABKAwiGQoEQXV0aBIRCglzaWduYXR1cmUYASABKAwibgoHV2VsY29tZRI4ChBwcm90b2NvbF92ZXJzaW9uGAEgASgOMh4ucGlyYy52MWFscGhhMS5Qcm90b2NvbFZlcnNpb24SFwoPbWF4X2ZyYW1lX2J5dGVzGAIgASgNEhAKCHNvZnR3YXJlGAMgASgJIk4KD1Nlc3Npb25Bbm5vdW5jZRIqCgdzZXNzaW9uGAEgASgLMhkucGlyYy52MWFscGhhMS5TZXNzaW9uUmVmEg8KB3BheWxvYWQYAiABKAwiOAoKU2Vzc2lvbkVuZBIqCgdzZXNzaW9uGAEgASgLMhkucGlyYy52MWFscGhhMS5TZXNzaW9uUmVmIhMKEVN1YnNjcmliZVNlc3Npb25zIjQKBkF0dGFjaBIqCgdzZXNzaW9uGAEgASgLMhkucGlyYy52MWFscGhhMS5TZXNzaW9uUmVmIjQKBkRldGFjaBIqCgdzZXNzaW9uGAEgASgLMhkucGlyYy52MWFscGhhMS5TZXNzaW9uUmVmIpEBCgxTZXNzaW9uRW50cnkSKgoHc2Vzc2lvbhgBIAEoCzIZLnBpcmMudjFhbHBoYTEuU2Vzc2lvblJlZhISCgpob3N0X2xhYmVsGAIgASgJEg8KB3BheWxvYWQYAyABKAwSMAoMYW5ub3VuY2VkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCJKCgtTZXNzaW9uTGlzdBItCghzZXNzaW9ucxgBIAMoCzIbLnBpcmMudjFhbHBoYTEuU2Vzc2lvbkVudHJ5EgwKBG1vcmUYAiABKAgiPAoOU2Vzc2lvblVwZGF0ZWQSKgoFZW50cnkYASABKAsyGy5waXJjLnYxYWxwaGExLlNlc3Npb25FbnRyeSI6CgxTZXNzaW9uRW5kZWQSKgoHc2Vzc2lvbhgBIAEoCzIZLnBpcmMudjFhbHBoYTEuU2Vzc2lvblJlZiJZCgZSb3V0ZWQSKgoHc2Vzc2lvbhgBIAEoCzIZLnBpcmMudjFhbHBoYTEuU2Vzc2lvblJlZhISCgpjbGllbnRfa2V5GAIgASgMEg8KB3BheWxvYWQYAyABKAwiEwoRV2F0Y2hQZW5kaW5nSG9zdHMiggEKC1BlbmRpbmdIb3N0EhIKCnB1YmxpY19rZXkYASABKAwSDQoFbGFiZWwYAiABKAkSEAoIc29mdHdhcmUYAyABKAkSDgoGcmVtb3RlGAQgASgJEi4KCmZpcnN0X3NlZW4YBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIjkKDFBlbmRpbmdIb3N0cxIpCgVob3N0cxgBIAMoCzIaLnBpcmMudjFhbHBoYTEuUGVuZGluZ0hvc3QiRAoLQXBwcm92ZUhvc3QSEgoKcmVxdWVzdF9pZBgBIAEoCRISCgpwdWJsaWNfa2V5GAIgASgMEg0KBWxhYmVsGAMgASgJIjQKClJlamVjdEhvc3QSEgoKcmVxdWVzdF9pZBgBIAEoCRISCgpwdWJsaWNfa2V5GAIgASgMIiEKC0hvc3REZWNpZGVkEhIKCnJlcXVlc3RfaWQYASABKAkiCwoJV2F0Y2hLZXlzIpMBCg1SZWdpc3RlcmVkS2V5EhIKCnB1YmxpY19rZXkYASABKAwSIQoEcm9sZRgCIAEoDjITLnBpcmMudjFhbHBoYTEuUm9sZRINCgVsYWJlbBgDIAEoCRIsCghhZGRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDgoGb25saW5lGAUgASgIIjIKBEtleXMSKgoEa2V5cxgBIAMoCzIcLnBpcmMudjFhbHBoYTEuUmVnaXN0ZXJlZEtleSJCCglSZW5hbWVLZXkSEgoKcmVxdWVzdF9pZBgBIAEoCRISCgpwdWJsaWNfa2V5GAIgASgMEg0KBWxhYmVsGAMgASgJIiAKCktleUNoYW5nZWQSEgoKcmVxdWVzdF9pZBgBIAEoCSpSCg9Qcm90b2NvbFZlcnNpb24SIAocUFJPVE9DT0xfVkVSU0lPTl9VTlNQRUNJRklFRBAAEh0KGVBST1RPQ09MX1ZFUlNJT05fVjFBTFBIQTEQASo8CgRSb2xlEhQKEFJPTEVfVU5TUEVDSUZJRUQQABINCglST0xFX0hPU1QQARIPCgtST0xFX0NMSUVOVBACQqsBChFjb20ucGlyYy52MWFscGhhMUIKUmVsYXlQcm90b1ABWjVwaXJjLmRldi9yZWxheS9pbnRlcm5hbC9wYi9waXJjL3YxYWxwaGExO3BpcmN2MWFscGhhMaICA1BYWKoCDVBpcmMuVjFhbHBoYTHKAg1QaXJjXFYxYWxwaGEx4gIZUGlyY1xWMWFscGhhMVxHUEJNZXRhZGF0YeoCDlBpcmM6OlYxYWxwaGExYgZwcm90bzM", [file_google_protobuf_timestamp, file_pirc_v1alpha1_common]); +var file_pirc_v1alpha1_relay = /* @__PURE__ */ fileDesc("ChlwaXJjL3YxYWxwaGExL3JlbGF5LnByb3RvEg1waXJjLnYxYWxwaGExIqEJCgVGcmFtZRIlCgVoZWxsbxgBIAEoCzIULnBpcmMudjFhbHBoYTEuSGVsbG9IABItCgljaGFsbGVuZ2UYAiABKAsyGC5waXJjLnYxYWxwaGExLkNoYWxsZW5nZUgAEiMKBGF1dGgYAyABKAsyEy5waXJjLnYxYWxwaGExLkF1dGhIABIpCgd3ZWxjb21lGAQgASgLMhYucGlyYy52MWFscGhhMS5XZWxjb21lSAASOgoQc2Vzc2lvbl9hbm5vdW5jZRgKIAEoCzIeLnBpcmMudjFhbHBoYTEuU2Vzc2lvbkFubm91bmNlSAASMAoLc2Vzc2lvbl9lbmQYCyABKAsyGS5waXJjLnYxYWxwaGExLlNlc3Npb25FbmRIABI+ChJzdWJzY3JpYmVfc2Vzc2lvbnMYFCABKAsyIC5waXJjLnYxYWxwaGExLlN1YnNjcmliZVNlc3Npb25zSAASJwoGYXR0YWNoGBUgASgLMhUucGlyYy52MWFscGhhMS5BdHRhY2hIABInCgZkZXRhY2gYFiABKAsyFS5waXJjLnYxYWxwaGExLkRldGFjaEgAEj8KE3dhdGNoX3BlbmRpbmdfaG9zdHMYFyABKAsyIC5waXJjLnYxYWxwaGExLldhdGNoUGVuZGluZ0hvc3RzSAASMgoMYXBwcm92ZV9ob3N0GBggASgLMhoucGlyYy52MWFscGhhMS5BcHByb3ZlSG9zdEgAEjAKC3JlamVjdF9ob3N0GBkgASgLMhkucGlyYy52MWFscGhhMS5SZWplY3RIb3N0SAASLgoKd2F0Y2hfa2V5cxgaIAEoCzIYLnBpcmMudjFhbHBoYTEuV2F0Y2hLZXlzSAASLgoKcmVuYW1lX2tleRgbIAEoCzIYLnBpcmMudjFhbHBoYTEuUmVuYW1lS2V5SAASLgoKcmVtb3ZlX2tleRgcIAEoCzIYLnBpcmMudjFhbHBoYTEuUmVtb3ZlS2V5SAASMgoMc2Vzc2lvbl9saXN0GB4gASgLMhoucGlyYy52MWFscGhhMS5TZXNzaW9uTGlzdEgAEjgKD3Nlc3Npb25fdXBkYXRlZBgfIAEoCzIdLnBpcmMudjFhbHBoYTEuU2Vzc2lvblVwZGF0ZWRIABI0Cg1zZXNzaW9uX2VuZGVkGCAgASgLMhsucGlyYy52MWFscGhhMS5TZXNzaW9uRW5kZWRIABI0Cg1wZW5kaW5nX2hvc3RzGCEgASgLMhsucGlyYy52MWFscGhhMS5QZW5kaW5nSG9zdHNIABIyCgxob3N0X2RlY2lkZWQYIiABKAsyGi5waXJjLnYxYWxwaGExLkhvc3REZWNpZGVkSAASIwoEa2V5cxgjIAEoCzITLnBpcmMudjFhbHBoYTEuS2V5c0gAEjAKC2tleV9jaGFuZ2VkGCQgASgLMhkucGlyYy52MWFscGhhMS5LZXlDaGFuZ2VkSAASJwoGcm91dGVkGCggASgLMhUucGlyYy52MWFscGhhMS5Sb3V0ZWRIABIlCgVlcnJvchgyIAEoCzIULnBpcmMudjFhbHBoYTEuRXJyb3JIAEIGCgRib2R5IrUBCgVIZWxsbxI4ChBwcm90b2NvbF92ZXJzaW9uGAEgASgOMh4ucGlyYy52MWFscGhhMS5Qcm90b2NvbFZlcnNpb24SIQoEcm9sZRgCIAEoDjITLnBpcmMudjFhbHBoYTEuUm9sZRISCgpwdWJsaWNfa2V5GAMgASgMEhoKEnJlZ2lzdHJhdGlvbl90b2tlbhgEIAEoCRINCgVsYWJlbBgFIAEoCRIQCghzb2Z0d2FyZRgGIAEoCSIaCglDaGFsbGVuZ2USDQoFbm9uY2UYASABKAwiGQoEQXV0aBIRCglzaWduYXR1cmUYASABKAwibgoHV2VsY29tZRI4ChBwcm90b2NvbF92ZXJzaW9uGAEgASgOMh4ucGlyYy52MWFscGhhMS5Qcm90b2NvbFZlcnNpb24SFwoPbWF4X2ZyYW1lX2J5dGVzGAIgASgNEhAKCHNvZnR3YXJlGAMgASgJIk4KD1Nlc3Npb25Bbm5vdW5jZRIqCgdzZXNzaW9uGAEgASgLMhkucGlyYy52MWFscGhhMS5TZXNzaW9uUmVmEg8KB3BheWxvYWQYAiABKAwiOAoKU2Vzc2lvbkVuZBIqCgdzZXNzaW9uGAEgASgLMhkucGlyYy52MWFscGhhMS5TZXNzaW9uUmVmIhMKEVN1YnNjcmliZVNlc3Npb25zIjQKBkF0dGFjaBIqCgdzZXNzaW9uGAEgASgLMhkucGlyYy52MWFscGhhMS5TZXNzaW9uUmVmIjQKBkRldGFjaBIqCgdzZXNzaW9uGAEgASgLMhkucGlyYy52MWFscGhhMS5TZXNzaW9uUmVmIpEBCgxTZXNzaW9uRW50cnkSKgoHc2Vzc2lvbhgBIAEoCzIZLnBpcmMudjFhbHBoYTEuU2Vzc2lvblJlZhISCgpob3N0X2xhYmVsGAIgASgJEg8KB3BheWxvYWQYAyABKAwSMAoMYW5ub3VuY2VkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCJKCgtTZXNzaW9uTGlzdBItCghzZXNzaW9ucxgBIAMoCzIbLnBpcmMudjFhbHBoYTEuU2Vzc2lvbkVudHJ5EgwKBG1vcmUYAiABKAgiPAoOU2Vzc2lvblVwZGF0ZWQSKgoFZW50cnkYASABKAsyGy5waXJjLnYxYWxwaGExLlNlc3Npb25FbnRyeSI6CgxTZXNzaW9uRW5kZWQSKgoHc2Vzc2lvbhgBIAEoCzIZLnBpcmMudjFhbHBoYTEuU2Vzc2lvblJlZiJZCgZSb3V0ZWQSKgoHc2Vzc2lvbhgBIAEoCzIZLnBpcmMudjFhbHBoYTEuU2Vzc2lvblJlZhISCgpjbGllbnRfa2V5GAIgASgMEg8KB3BheWxvYWQYAyABKAwiEwoRV2F0Y2hQZW5kaW5nSG9zdHMiggEKC1BlbmRpbmdIb3N0EhIKCnB1YmxpY19rZXkYASABKAwSDQoFbGFiZWwYAiABKAkSEAoIc29mdHdhcmUYAyABKAkSDgoGcmVtb3RlGAQgASgJEi4KCmZpcnN0X3NlZW4YBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIjkKDFBlbmRpbmdIb3N0cxIpCgVob3N0cxgBIAMoCzIaLnBpcmMudjFhbHBoYTEuUGVuZGluZ0hvc3QiRAoLQXBwcm92ZUhvc3QSEgoKcmVxdWVzdF9pZBgBIAEoCRISCgpwdWJsaWNfa2V5GAIgASgMEg0KBWxhYmVsGAMgASgJIjQKClJlamVjdEhvc3QSEgoKcmVxdWVzdF9pZBgBIAEoCRISCgpwdWJsaWNfa2V5GAIgASgMIiEKC0hvc3REZWNpZGVkEhIKCnJlcXVlc3RfaWQYASABKAkiCwoJV2F0Y2hLZXlzIpMBCg1SZWdpc3RlcmVkS2V5EhIKCnB1YmxpY19rZXkYASABKAwSIQoEcm9sZRgCIAEoDjITLnBpcmMudjFhbHBoYTEuUm9sZRINCgVsYWJlbBgDIAEoCRIsCghhZGRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDgoGb25saW5lGAUgASgIIjIKBEtleXMSKgoEa2V5cxgBIAMoCzIcLnBpcmMudjFhbHBoYTEuUmVnaXN0ZXJlZEtleSJCCglSZW5hbWVLZXkSEgoKcmVxdWVzdF9pZBgBIAEoCRISCgpwdWJsaWNfa2V5GAIgASgMEg0KBWxhYmVsGAMgASgJIjMKCVJlbW92ZUtleRISCgpyZXF1ZXN0X2lkGAEgASgJEhIKCnB1YmxpY19rZXkYAiABKAwiIAoKS2V5Q2hhbmdlZBISCgpyZXF1ZXN0X2lkGAEgASgJKlIKD1Byb3RvY29sVmVyc2lvbhIgChxQUk9UT0NPTF9WRVJTSU9OX1VOU1BFQ0lGSUVEEAASHQoZUFJPVE9DT0xfVkVSU0lPTl9WMUFMUEhBMRABKjwKBFJvbGUSFAoQUk9MRV9VTlNQRUNJRklFRBAAEg0KCVJPTEVfSE9TVBABEg8KC1JPTEVfQ0xJRU5UEAJCqwEKEWNvbS5waXJjLnYxYWxwaGExQgpSZWxheVByb3RvUAFaNXBpcmMuZGV2L3JlbGF5L2ludGVybmFsL3BiL3BpcmMvdjFhbHBoYTE7cGlyY3YxYWxwaGExogIDUFhYqgINUGlyYy5WMWFscGhhMcoCDVBpcmNcVjFhbHBoYTHiAhlQaXJjXFYxYWxwaGExXEdQQk1ldGFkYXRh6gIOUGlyYzo6VjFhbHBoYTFiBnByb3RvMw", [file_google_protobuf_timestamp, file_pirc_v1alpha1_common]); var FrameSchema = /* @__PURE__ */ messageDesc(file_pirc_v1alpha1_relay, 0); // protocol/gen/pirc/v1alpha1/session_pb.ts @@ -7353,10 +7353,10 @@ var RelayConnection = class { this.setState({ kind: "pending", reason }); this.retryTimer = setTimeout(() => this.connect(), this.opts.approvalRetryMs ?? 1e4); } - refuse(code, reason) { + refuse(code, reason, removed) { this.teardown(); this.stopped = true; - this.setState({ kind: "refused", code, reason }); + this.setState({ kind: "refused", code, reason, ...removed && { removed } }); } connect() { if (this.stopped) return; @@ -7438,6 +7438,9 @@ var RelayConnection = class { }); ws.on("close", (code, reason) => { if (this.ws !== ws) return; + if (phase === "ready" && code === 1008 && reason.toString() === "key revoked") { + return this.refuse(1 /* UNAUTHENTICATED */, "this key was removed from the relay", true); + } this.retry(`connection closed (${code}${reason.length ? ` ${reason}` : ""})`); }); ws.on("error", (err) => { @@ -7476,12 +7479,19 @@ function loadConfig() { keyFile: f.keyFile || join(dirname2(path), "host.key"), label: f.label || hostname(), token: process.env.PIRC_TOKEN || void 0, + removed: f.removed, path }; } function saveRelay(relay) { + const { removed: _, ...f } = readFile(configPath()); + write({ ...f, relay }); +} +function saveRemoved(at) { + write({ ...readFile(configPath()), removed: at.toISOString() }); +} +function write(f) { const path = configPath(); - const f = { ...readFile(path), relay }; mkdirSync2(dirname2(path), { recursive: true, mode: 448 }); const tmp = `${path}.${process.pid}.tmp`; writeFileSync2(tmp, JSON.stringify(f, null, 2) + "\n", { mode: 384 }); @@ -9164,7 +9174,7 @@ var Host = class _Host { return this.showStatus(); } this.config = config; - if (!config.relay) return this.showStatus(); + if (!config.relay || config.removed) return this.showStatus(); try { this.key = loadOrCreateKey(config.keyFile); } catch (e) { @@ -9193,6 +9203,15 @@ var Host = class _Host { onState(s) { this.state = s; this.log(`relay ${s.kind}${"reason" in s ? `: ${s.reason}` : ""}`); + if (s.kind === "refused" && s.removed && this.config) { + const at = /* @__PURE__ */ new Date(); + this.config = { ...this.config, removed: at.toISOString() }; + try { + saveRemoved(at); + } catch (e) { + this.fail("config", e); + } + } if (s.kind === "ready") { if (this.live) this.announce(this.live); if (this.suspended) this.announce(this.suspended); @@ -9203,6 +9222,7 @@ var Host = class _Host { statusText() { const s = this.state; if (!this.config?.relay) return "pirc: not enrolled"; + if (this.config.removed) return "pirc: removed from the relay"; switch (s.kind) { case "ready": return "pirc: online"; @@ -9231,6 +9251,7 @@ var Host = class _Host { if (this.live) lines.push(`session ${this.live.sessionId}, instance ${this.instanceId}`); if (this.dialogs.problem) lines.push(this.dialogs.problem); if (this.lastError) lines.push(`last error: ${this.lastError}`); + if (c?.removed) lines.push(`removed from the relay ${c.removed}; to join again: /pirc enrol <relay-url> [token]`); if (!c?.relay) lines.push("enrol with: /pirc enrol <relay-url> [token]; without a token, approve this key in the web app or with pirc-relay approve"); return lines.join("\n"); } @@ -9238,7 +9259,7 @@ var Host = class _Host { // takes no line. showStatus() { try { - this.live?.ctx.ui.setStatus("pirc", this.state.kind === "ready" && this.config?.relay ? void 0 : this.statusText()); + this.live?.ctx.ui.setStatus("pirc", this.state.kind === "ready" && this.config?.relay && !this.config.removed ? void 0 : this.statusText()); } catch { } } @@ -9342,7 +9363,7 @@ var Host = class _Host { }; // extension/src/index.ts -var EXTENSION_VERSION = true ? "0.1.9-dev+a5547ed59210" : "dev"; +var EXTENSION_VERSION = true ? "0.1.9-dev+ec68348def36" : "dev"; function piVersion() { try { let dir = dirname3(realpathSync(process.argv[1])); @@ -9357,7 +9378,7 @@ function piVersion() { } return "unknown"; } -var LOAD = true ? "0.1.9-dev+a5547ed59210" : `dev ${randomBytes4(4).toString("hex")}`; +var LOAD = true ? "0.1.9-dev+ec68348def36" : `dev ${randomBytes4(4).toString("hex")}`; var KEY = /* @__PURE__ */ Symbol.for("pirc.extension"); var proc = globalThis[KEY] ??= {}; if (!proc.host || proc.load !== LOAD) { |
