securequ 1.1.12 → 1.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/client/{Base.mjs → Base.cjs} +152 -150
  2. package/client/Base.cjs.map +1 -0
  3. package/client/Base.d.ts +18 -18
  4. package/client/Base.js +149 -151
  5. package/client/Base.js.map +1 -1
  6. package/client/{index.mjs → index.cjs} +146 -144
  7. package/client/index.cjs.map +1 -0
  8. package/client/index.d.ts +10 -9
  9. package/client/index.js +143 -145
  10. package/client/index.js.map +1 -1
  11. package/client/types.d.ts +34 -34
  12. package/include/{File.mjs → File.cjs} +68 -63
  13. package/include/File.cjs.map +1 -0
  14. package/include/File.js +62 -67
  15. package/include/File.js.map +1 -1
  16. package/include/{FileScaner.mjs → FileScaner.cjs} +98 -96
  17. package/include/FileScaner.cjs.map +1 -0
  18. package/include/FileScaner.js +95 -100
  19. package/include/FileScaner.js.map +1 -1
  20. package/include/{compress.mjs → compress.cjs} +42 -40
  21. package/include/compress.cjs.map +1 -0
  22. package/include/compress.d.ts +9 -9
  23. package/include/compress.js +39 -41
  24. package/include/compress.js.map +1 -1
  25. package/include/{crypto.mjs → crypto.cjs} +141 -137
  26. package/include/crypto.cjs.map +1 -0
  27. package/include/crypto.d.ts +22 -22
  28. package/include/crypto.js +138 -148
  29. package/include/crypto.js.map +1 -1
  30. package/index.cjs +14 -0
  31. package/index.cjs.map +1 -0
  32. package/index.d.ts +0 -2
  33. package/index.js +4 -13
  34. package/index.js.map +1 -1
  35. package/package.json +22 -12
  36. package/readme.md +312 -312
  37. package/server/{Base.mjs → Base.cjs} +111 -109
  38. package/server/Base.cjs.map +1 -0
  39. package/server/Base.d.ts +20 -20
  40. package/server/Base.js +108 -110
  41. package/server/Base.js.map +1 -1
  42. package/server/{Router.mjs → Router.cjs} +34 -32
  43. package/server/Router.cjs.map +1 -0
  44. package/server/Router.d.ts +7 -7
  45. package/server/Router.js +31 -33
  46. package/server/Router.js.map +1 -1
  47. package/server/{index.mjs → index.cjs} +196 -194
  48. package/server/index.cjs.map +1 -0
  49. package/server/index.d.ts +7 -6
  50. package/server/index.js +193 -195
  51. package/server/index.js.map +1 -1
  52. package/server/types.d.ts +63 -73
  53. package/client/Base.mjs.map +0 -1
  54. package/client/index.mjs.map +0 -1
  55. package/include/File.mjs.map +0 -1
  56. package/include/FileScaner.mjs.map +0 -1
  57. package/include/compress.mjs.map +0 -1
  58. package/include/crypto.mjs.map +0 -1
  59. package/index.mjs +0 -5
  60. package/index.mjs.map +0 -1
  61. package/server/Base.mjs.map +0 -1
  62. package/server/Router.mjs.map +0 -1
  63. package/server/index.mjs.map +0 -1
@@ -1,153 +1,155 @@
1
- import crypto from '../include/crypto.mjs';
2
- import xanFetch from 'xanfetch';
1
+ 'use strict';
3
2
 
4
- const Clients = new Map();
5
- class Base {
6
- constructor(config) {
7
- this.loadingHandshake = false;
8
- this.secret_length = 0;
9
- this.handshakeInfo = null;
10
- this.CONTENT_TYPE = "application/octet-stream";
11
- this.config = Object.assign({ defaultOptions: {} }, config);
12
- const url = new URL(config.url);
13
- if (url.search || url.hash)
14
- throw new Error(`Invalid config url ${config.url}. Search params or Hash url is not supported in config.url`);
15
- config.url = `${url.origin}${url.pathname}`;
16
- if (Clients.has(config.url)) {
17
- throw new Error(`Client is Blocked!`);
18
- }
19
- }
20
- hooksCall(hook, ...args) {
21
- if (this.config.hooks && this.config.hooks[hook]) {
22
- return this.config.hooks[hook](...args);
23
- }
24
- }
25
- async getSecret() {
26
- let full = this.config.secret;
27
- let secret = full.substring(0, this.secret_length);
28
- let hash = (await crypto.hash(secret)).substring(0, this.secret_length);
29
- return { full, secret, hash };
30
- }
31
- async url(path) {
32
- const secret = await this.getSecret();
33
- const base = this.config.url;
34
- if (path === '/')
35
- path = '';
36
- path = path.trim();
37
- path = path.startsWith('/') ? path.substring(1) : path;
38
- path = path.endsWith('/') ? path.substring(0, path.length - 1) : path;
39
- if (path)
40
- path = `/${path}`;
41
- return new URL(`${base}/${secret.hash}${path}`);
42
- }
43
- async getHeaders(path, init) {
44
- var _a, _b, _c;
45
- const url = await this.url(path);
46
- const secret = await this.getSecret();
47
- let headers = {};
48
- if (this.handshakeInfo) {
49
- headers["X-SIGNETURE"] = await crypto.encrypt({
50
- signeture: (_a = this.handshakeInfo) === null || _a === void 0 ? void 0 : _a.signeture,
51
- expire: Date.now() + this.handshakeInfo.timeDiffarenc + 10000 // 10 seconds
52
- }, secret.secret) || '';
53
- }
54
- headers = Object.assign(Object.assign(Object.assign(Object.assign({}, (_c = (_b = this.config) === null || _b === void 0 ? void 0 : _b.defaultOptions) === null || _c === void 0 ? void 0 : _c.headers), init === null || init === void 0 ? void 0 : init.headers), headers), { 'Content-Type': this.CONTENT_TYPE, "X-ORIGIN": url.origin, "X-METHOD": ((init === null || init === void 0 ? void 0 : init.method) || 'GET').toUpperCase() });
55
- return headers;
56
- }
57
- async awaitForHandshake() {
58
- if (this.loadingHandshake) {
59
- await new Promise((resolve) => {
60
- const interval = setInterval(() => {
61
- if (!this.loadingHandshake) {
62
- clearInterval(interval);
63
- resolve(null);
64
- }
65
- }, 100);
66
- });
67
- }
68
- if (!this.handshakeInfo) {
69
- await this.handshake();
70
- }
71
- }
72
- async handshake() {
73
- await this.hooksCall('beforeHandshake');
74
- this.handshakeInfo = null;
75
- this.loadingHandshake = true;
76
- let max = this.config.secret.length;
77
- let min = Math.floor(max / 4) * 3;
78
- this.secret_length = Math.floor(Math.random() * (max - min + 1)) + min;
79
- const secret = await this.getSecret();
80
- const res = await this.fetch('/', {
81
- method: 'POST',
82
- body: {
83
- hash: secret.hash,
84
- clientTime: new Date().toISOString(),
85
- secret: secret.secret,
86
- }
87
- });
88
- this.handshakeInfo = res.data;
89
- this.loadingHandshake = false;
90
- await this.hooksCall('afterHandshake', this.handshakeInfo);
91
- }
92
- async fetch(path, init) {
93
- var _a, _b;
94
- const isDev = path !== '/' && ((_a = this.handshakeInfo) === null || _a === void 0 ? void 0 : _a.dev);
95
- const secret = await this.getSecret();
96
- const url = await this.url(path);
97
- let sparams = Object.fromEntries(url.searchParams.entries());
98
- const _init = Object.assign({}, init);
99
- let params = Object.assign({}, sparams);
100
- if (Object.keys(sparams).length > 0) {
101
- for (let key in sparams) {
102
- url.searchParams.delete(key);
103
- }
104
- }
105
- if (_init === null || _init === void 0 ? void 0 : _init.params) {
106
- for (let key in _init.params) {
107
- params[key] = _init.params[key];
108
- }
109
- delete _init.params;
110
- }
111
- if (Object.keys(params).length > 0) {
112
- if (isDev) {
113
- _init.params = params;
114
- }
115
- else {
116
- const key = Math.random().toString(36).substring(2, 8);
117
- const enc = await crypto.encrypt({ params, key }, secret.secret);
118
- url.href = `${url.href}?${key}=${encodeURIComponent(enc)}`;
119
- }
120
- }
121
- const httpOption = Object.assign(Object.assign(Object.assign({ method: "GET" }, (_b = this.config) === null || _b === void 0 ? void 0 : _b.defaultOptions), _init), { headers: await this.getHeaders(path, _init) });
122
- if (httpOption === null || httpOption === void 0 ? void 0 : httpOption.body) {
123
- if (isDev) {
124
- httpOption.body = JSON.stringify(httpOption.body);
125
- }
126
- else {
127
- httpOption.body = await crypto.encryptBuffer(httpOption.body, secret.secret);
128
- }
129
- }
130
- const res = await xanFetch(url.href, httpOption);
131
- if (isDev) {
132
- const value = await res.text();
133
- const val = JSON.parse(value);
134
- return {
135
- success: res.ok,
136
- message: res.ok ? res.statusText : val,
137
- data: res.ok ? val : null,
138
- code: res.status
139
- };
140
- }
141
- const value = await res.arrayBuffer();
142
- const val = await crypto.decryptBuffer(new Uint8Array(value), secret.secret);
143
- return {
144
- success: res.ok,
145
- message: res.ok ? res.statusText : (val || res.statusText),
146
- data: res.ok ? val : null,
147
- code: res.status
148
- };
149
- }
3
+ var crypto = require('../include/crypto.cjs');
4
+ var xanFetch = require('xanfetch');
5
+
6
+ const Clients = new Map();
7
+ class Base {
8
+ constructor(config) {
9
+ this.loadingHandshake = false;
10
+ this.secret_length = 0;
11
+ this.handshakeInfo = null;
12
+ this.CONTENT_TYPE = "application/octet-stream";
13
+ this.config = Object.assign({ defaultOptions: {} }, config);
14
+ const url = new URL(config.url);
15
+ if (url.search || url.hash)
16
+ throw new Error(`Invalid config url ${config.url}. Search params or Hash url is not supported in config.url`);
17
+ config.url = `${url.origin}${url.pathname}`;
18
+ if (Clients.has(config.url)) {
19
+ throw new Error(`Client is Blocked!`);
20
+ }
21
+ }
22
+ hooksCall(hook, ...args) {
23
+ if (this.config.hooks && this.config.hooks[hook]) {
24
+ return this.config.hooks[hook](...args);
25
+ }
26
+ }
27
+ async getSecret() {
28
+ let full = this.config.secret;
29
+ let secret = full.substring(0, this.secret_length);
30
+ let hash = (await crypto.hash(secret)).substring(0, this.secret_length);
31
+ return { full, secret, hash };
32
+ }
33
+ async url(path) {
34
+ const secret = await this.getSecret();
35
+ const base = this.config.url;
36
+ if (path === '/')
37
+ path = '';
38
+ path = path.trim();
39
+ path = path.startsWith('/') ? path.substring(1) : path;
40
+ path = path.endsWith('/') ? path.substring(0, path.length - 1) : path;
41
+ if (path)
42
+ path = `/${path}`;
43
+ return new URL(`${base}/${secret.hash}${path}`);
44
+ }
45
+ async getHeaders(path, init) {
46
+ var _a, _b, _c;
47
+ const url = await this.url(path);
48
+ const secret = await this.getSecret();
49
+ let headers = {};
50
+ if (this.handshakeInfo) {
51
+ headers["X-SIGNETURE"] = await crypto.encrypt({
52
+ signeture: (_a = this.handshakeInfo) === null || _a === void 0 ? void 0 : _a.signeture,
53
+ expire: Date.now() + this.handshakeInfo.timeDiffarenc + 10000 // 10 seconds
54
+ }, secret.secret) || '';
55
+ }
56
+ headers = Object.assign(Object.assign(Object.assign(Object.assign({}, (_c = (_b = this.config) === null || _b === void 0 ? void 0 : _b.defaultOptions) === null || _c === void 0 ? void 0 : _c.headers), init === null || init === void 0 ? void 0 : init.headers), headers), { 'Content-Type': this.CONTENT_TYPE, "X-ORIGIN": url.origin, "X-METHOD": ((init === null || init === void 0 ? void 0 : init.method) || 'GET').toUpperCase() });
57
+ return headers;
58
+ }
59
+ async awaitForHandshake() {
60
+ if (this.loadingHandshake) {
61
+ await new Promise((resolve) => {
62
+ const interval = setInterval(() => {
63
+ if (!this.loadingHandshake) {
64
+ clearInterval(interval);
65
+ resolve(null);
66
+ }
67
+ }, 100);
68
+ });
69
+ }
70
+ if (!this.handshakeInfo) {
71
+ await this.handshake();
72
+ }
73
+ }
74
+ async handshake() {
75
+ await this.hooksCall('beforeHandshake');
76
+ this.handshakeInfo = null;
77
+ this.loadingHandshake = true;
78
+ let max = this.config.secret.length;
79
+ let min = Math.floor(max / 4) * 3;
80
+ this.secret_length = Math.floor(Math.random() * (max - min + 1)) + min;
81
+ const secret = await this.getSecret();
82
+ const res = await this.fetch('/', {
83
+ method: 'POST',
84
+ body: {
85
+ hash: secret.hash,
86
+ clientTime: new Date().toISOString(),
87
+ secret: secret.secret,
88
+ }
89
+ });
90
+ this.handshakeInfo = res.data;
91
+ this.loadingHandshake = false;
92
+ await this.hooksCall('afterHandshake', this.handshakeInfo);
93
+ }
94
+ async fetch(path, init) {
95
+ var _a, _b;
96
+ const isDev = path !== '/' && ((_a = this.handshakeInfo) === null || _a === void 0 ? void 0 : _a.dev);
97
+ const secret = await this.getSecret();
98
+ const url = await this.url(path);
99
+ let sparams = Object.fromEntries(url.searchParams.entries());
100
+ const _init = Object.assign({}, init);
101
+ let params = Object.assign({}, sparams);
102
+ if (Object.keys(sparams).length > 0) {
103
+ for (let key in sparams) {
104
+ url.searchParams.delete(key);
105
+ }
106
+ }
107
+ if (_init === null || _init === void 0 ? void 0 : _init.params) {
108
+ for (let key in _init.params) {
109
+ params[key] = _init.params[key];
110
+ }
111
+ delete _init.params;
112
+ }
113
+ if (Object.keys(params).length > 0) {
114
+ if (isDev) {
115
+ _init.params = params;
116
+ }
117
+ else {
118
+ const key = Math.random().toString(36).substring(2, 8);
119
+ const enc = await crypto.encrypt({ params, key }, secret.secret);
120
+ url.href = `${url.href}?${key}=${encodeURIComponent(enc)}`;
121
+ }
122
+ }
123
+ const httpOption = Object.assign(Object.assign(Object.assign({ method: "GET" }, (_b = this.config) === null || _b === void 0 ? void 0 : _b.defaultOptions), _init), { headers: await this.getHeaders(path, _init) });
124
+ if (httpOption === null || httpOption === void 0 ? void 0 : httpOption.body) {
125
+ if (isDev) {
126
+ httpOption.body = JSON.stringify(httpOption.body);
127
+ }
128
+ else {
129
+ httpOption.body = await crypto.encryptBuffer(httpOption.body, secret.secret);
130
+ }
131
+ }
132
+ const res = await xanFetch(url.href, httpOption);
133
+ if (isDev) {
134
+ const value = await res.text();
135
+ const val = JSON.parse(value);
136
+ return {
137
+ success: res.ok,
138
+ message: res.ok ? res.statusText : val,
139
+ data: res.ok ? val : null,
140
+ code: res.status
141
+ };
142
+ }
143
+ const value = await res.arrayBuffer();
144
+ const val = await crypto.decryptBuffer(new Uint8Array(value), secret.secret);
145
+ return {
146
+ success: res.ok,
147
+ message: res.ok ? res.statusText : (val || res.statusText),
148
+ data: res.ok ? val : null,
149
+ code: res.status
150
+ };
151
+ }
150
152
  }
151
153
 
152
- export { Base as default };
153
- //# sourceMappingURL=Base.mjs.map
154
+ module.exports = Base;
155
+ //# sourceMappingURL=Base.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Base.cjs","sources":["../../src/client/Base.ts"],"sourcesContent":["import crypto from \"../include/crypto\";\r\nimport { HandshakeInfo, HttpRequestInit, SecurequClientConfig, SecurequClientResponse } from \"./types\";\r\nimport xanFetch from 'xanfetch'\r\n\r\n\r\nconst Clients = new Map<string, Base>()\r\n\r\nclass Base {\r\n protected config: SecurequClientConfig;\r\n protected loadingHandshake: boolean = false;\r\n protected secret_length: number = 0;\r\n protected handshakeInfo: HandshakeInfo | null = null;\r\n readonly CONTENT_TYPE = \"application/octet-stream\";\r\n\r\n constructor(config: SecurequClientConfig) {\r\n this.config = {\r\n defaultOptions: {},\r\n ...config,\r\n }\r\n const url = new URL(config.url)\r\n if (url.search || url.hash) throw new Error(`Invalid config url ${config.url}. Search params or Hash url is not supported in config.url`)\r\n config.url = `${url.origin}${url.pathname}`\r\n\r\n if (Clients.has(config.url)) {\r\n throw new Error(`Client is Blocked!`);\r\n }\r\n }\r\n\r\n protected hooksCall(hook: keyof NonNullable<SecurequClientConfig['hooks']>, ...args: any[]) {\r\n if (this.config.hooks && this.config.hooks[hook]) {\r\n return (this.config.hooks[hook] as Function)(...args)\r\n }\r\n }\r\n\r\n protected async getSecret() {\r\n let full = this.config.secret\r\n let secret = full.substring(0, this.secret_length)\r\n let hash = (await crypto.hash(secret)).substring(0, this.secret_length)\r\n return { full, secret, hash }\r\n }\r\n\r\n protected async url(path: string) {\r\n const secret = await this.getSecret()\r\n const base = this.config.url;\r\n if (path === '/') path = ''\r\n path = path.trim();\r\n path = path.startsWith('/') ? path.substring(1) : path\r\n path = path.endsWith('/') ? path.substring(0, path.length - 1) : path\r\n if (path) path = `/${path}`\r\n return new URL(`${base}/${secret.hash}${path}`);\r\n }\r\n\r\n protected async getHeaders(path: string, init?: HttpRequestInit) {\r\n const url = await this.url(path)\r\n const secret = await this.getSecret()\r\n let headers: any = {};\r\n if (this.handshakeInfo) {\r\n headers[\"X-SIGNETURE\"] = await crypto.encrypt({\r\n signeture: this.handshakeInfo?.signeture,\r\n expire: Date.now() + this.handshakeInfo!.timeDiffarenc + 10000 // 10 seconds\r\n }, secret.secret) || '';\r\n }\r\n\r\n headers = {\r\n ...this.config?.defaultOptions?.headers,\r\n ...init?.headers,\r\n ...headers,\r\n 'Content-Type': this.CONTENT_TYPE,\r\n \"X-ORIGIN\": url.origin,\r\n \"X-METHOD\": (init?.method || 'GET').toUpperCase()\r\n }\r\n\r\n return headers;\r\n }\r\n\r\n protected async awaitForHandshake() {\r\n if (this.loadingHandshake) {\r\n await new Promise((resolve) => {\r\n const interval = setInterval(() => {\r\n if (!this.loadingHandshake) {\r\n clearInterval(interval);\r\n resolve(null);\r\n }\r\n }, 100);\r\n })\r\n }\r\n if (!this.handshakeInfo) {\r\n await this.handshake();\r\n }\r\n }\r\n\r\n async handshake() {\r\n await this.hooksCall('beforeHandshake');\r\n this.handshakeInfo = null;\r\n this.loadingHandshake = true;\r\n\r\n let max = this.config.secret.length\r\n let min = Math.floor(max / 4) * 3\r\n this.secret_length = Math.floor(Math.random() * (max - min + 1)) + min\r\n\r\n const secret = await this.getSecret()\r\n const res = await this.fetch('/', {\r\n method: 'POST',\r\n body: {\r\n hash: secret.hash,\r\n clientTime: new Date().toISOString(),\r\n secret: secret.secret,\r\n }\r\n })\r\n this.handshakeInfo = res.data\r\n this.loadingHandshake = false;\r\n await this.hooksCall('afterHandshake', this.handshakeInfo);\r\n }\r\n\r\n protected async fetch(path: string, init?: HttpRequestInit): Promise<SecurequClientResponse> {\r\n const isDev = path !== '/' && this.handshakeInfo?.dev\r\n const secret = await this.getSecret()\r\n const url = await this.url(path)\r\n let sparams = Object.fromEntries(url.searchParams.entries())\r\n const _init = { ...init }\r\n let params: any = {\r\n ...sparams,\r\n }\r\n\r\n if (Object.keys(sparams).length > 0) {\r\n for (let key in sparams) {\r\n url.searchParams.delete(key)\r\n }\r\n }\r\n\r\n if (_init?.params) {\r\n for (let key in _init.params) {\r\n params[key] = _init.params[key]\r\n }\r\n delete _init.params\r\n }\r\n\r\n if (Object.keys(params).length > 0) {\r\n if (isDev) {\r\n _init.params = params\r\n } else {\r\n const key = Math.random().toString(36).substring(2, 8);\r\n const enc = await crypto.encrypt({ params, key }, secret.secret)\r\n url.href = `${url.href}?${key}=${encodeURIComponent(enc)}`\r\n }\r\n }\r\n\r\n const httpOption: any = {\r\n method: \"GET\",\r\n ...this.config?.defaultOptions,\r\n ..._init,\r\n headers: await this.getHeaders(path, _init)\r\n }\r\n\r\n if (httpOption?.body) {\r\n if (isDev) {\r\n httpOption.body = JSON.stringify(httpOption.body)\r\n } else {\r\n httpOption.body = await crypto.encryptBuffer(httpOption.body, secret.secret);\r\n }\r\n }\r\n const res = await xanFetch(url.href, httpOption)\r\n if (isDev) {\r\n const value = await res.text()\r\n const val = JSON.parse(value)\r\n return {\r\n success: res.ok,\r\n message: res.ok ? res.statusText : val,\r\n data: res.ok ? val : null,\r\n code: res.status\r\n }\r\n }\r\n const value = await res.arrayBuffer()\r\n const val = await crypto.decryptBuffer(new Uint8Array(value), secret.secret) as any\r\n\r\n return {\r\n success: res.ok,\r\n message: res.ok ? res.statusText : (val || res.statusText),\r\n data: res.ok ? val : null,\r\n code: res.status\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default Base;\r\n"],"names":[],"mappings":"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"}
package/client/Base.d.ts CHANGED
@@ -1,23 +1,23 @@
1
1
  import { SecurequClientConfig, HandshakeInfo, HttpRequestInit, SecurequClientResponse } from './types.js';
2
2
 
3
- declare class Base {
4
- protected config: SecurequClientConfig;
5
- protected loadingHandshake: boolean;
6
- protected secret_length: number;
7
- protected handshakeInfo: HandshakeInfo | null;
8
- readonly CONTENT_TYPE = "application/octet-stream";
9
- constructor(config: SecurequClientConfig);
10
- protected hooksCall(hook: keyof NonNullable<SecurequClientConfig['hooks']>, ...args: any[]): any;
11
- protected getSecret(): Promise<{
12
- full: string;
13
- secret: string;
14
- hash: string;
15
- }>;
16
- protected url(path: string): Promise<URL>;
17
- protected getHeaders(path: string, init?: HttpRequestInit): Promise<any>;
18
- protected awaitForHandshake(): Promise<void>;
19
- handshake(): Promise<void>;
20
- protected fetch(path: string, init?: HttpRequestInit): Promise<SecurequClientResponse>;
3
+ declare class Base {
4
+ protected config: SecurequClientConfig;
5
+ protected loadingHandshake: boolean;
6
+ protected secret_length: number;
7
+ protected handshakeInfo: HandshakeInfo | null;
8
+ readonly CONTENT_TYPE = "application/octet-stream";
9
+ constructor(config: SecurequClientConfig);
10
+ protected hooksCall(hook: keyof NonNullable<SecurequClientConfig['hooks']>, ...args: any[]): any;
11
+ protected getSecret(): Promise<{
12
+ full: string;
13
+ secret: string;
14
+ hash: string;
15
+ }>;
16
+ protected url(path: string): Promise<URL>;
17
+ protected getHeaders(path: string, init?: HttpRequestInit): Promise<any>;
18
+ protected awaitForHandshake(): Promise<void>;
19
+ handshake(): Promise<void>;
20
+ protected fetch(path: string, init?: HttpRequestInit): Promise<SecurequClientResponse>;
21
21
  }
22
22
 
23
23
  export { Base as default };