securequ 1.0.13 → 1.0.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 (47) hide show
  1. package/client/index.d.ts +22 -22
  2. package/client/index.js +169 -147
  3. package/client/index.js.map +1 -1
  4. package/client/index.mjs +169 -147
  5. package/client/index.mjs.map +1 -1
  6. package/client/types.d.ts +16 -14
  7. package/include/lib/base64.js +47 -47
  8. package/include/lib/base64.js.map +1 -1
  9. package/include/lib/base64.mjs +46 -46
  10. package/include/lib/base64.mjs.map +1 -1
  11. package/include/lib/cache.js +72 -72
  12. package/include/lib/cache.js.map +1 -1
  13. package/include/lib/cache.mjs +71 -71
  14. package/include/lib/cache.mjs.map +1 -1
  15. package/include/lib/crypto.js +69 -69
  16. package/include/lib/crypto.js.map +1 -1
  17. package/include/lib/crypto.mjs +68 -68
  18. package/include/lib/crypto.mjs.map +1 -1
  19. package/include/lib/pako.js +28 -28
  20. package/include/lib/pako.js.map +1 -1
  21. package/include/lib/pako.mjs +28 -28
  22. package/include/lib/pako.mjs.map +1 -1
  23. package/include/lib/reverser.js +25 -25
  24. package/include/lib/reverser.js.map +1 -1
  25. package/include/lib/reverser.mjs +24 -24
  26. package/include/lib/reverser.mjs.map +1 -1
  27. package/include/lib/urlpath.js +10 -10
  28. package/include/lib/urlpath.js.map +1 -1
  29. package/include/lib/urlpath.mjs +9 -9
  30. package/include/lib/urlpath.mjs.map +1 -1
  31. package/include/responseValue.js +10 -10
  32. package/include/responseValue.js.map +1 -1
  33. package/include/responseValue.mjs +9 -9
  34. package/include/responseValue.mjs.map +1 -1
  35. package/include/signeture.js +20 -20
  36. package/include/signeture.js.map +1 -1
  37. package/include/signeture.mjs +19 -19
  38. package/include/signeture.mjs.map +1 -1
  39. package/index.js +1 -1
  40. package/index.mjs +1 -1
  41. package/package.json +2 -2
  42. package/server/index.d.ts +14 -14
  43. package/server/index.js +115 -116
  44. package/server/index.js.map +1 -1
  45. package/server/index.mjs +115 -116
  46. package/server/index.mjs.map +1 -1
  47. package/server/types.d.ts +25 -25
package/client/index.d.ts CHANGED
@@ -1,25 +1,25 @@
1
- import { SecurequClientConfig, HttpRequestInit, RequestBody } from './types.js';
1
+ import { SecurequClientConfig, HttpRequestInit } from './types.js';
2
2
 
3
- declare class SecurequClient {
4
- private config;
5
- private token;
6
- private tokenLoading;
7
- private Cache;
8
- private secret;
9
- private secret_length;
10
- private signerure;
11
- private reqkey;
12
- constructor(config: SecurequClientConfig);
13
- private setCache;
14
- private getCache;
15
- private PATH_CACHE;
16
- private path;
17
- private handshake;
18
- send(path: string, init?: HttpRequestInit): Promise<Response>;
19
- get(path: string, init?: HttpRequestInit): Promise<Response>;
20
- post(path: string, body: RequestBody, init?: HttpRequestInit): Promise<Response>;
21
- put(path: string, body: RequestBody, init?: HttpRequestInit): Promise<Response>;
22
- delete(path: string, init?: HttpRequestInit): Promise<Response>;
3
+ declare class SecurequClient {
4
+ private config;
5
+ private token;
6
+ private tokenLoading;
7
+ private Cache;
8
+ private secret;
9
+ private secret_length;
10
+ private signerure;
11
+ private reqkey;
12
+ constructor(config: SecurequClientConfig);
13
+ private setCache;
14
+ private getCache;
15
+ private PATH_CACHE;
16
+ private path;
17
+ private handshake;
18
+ send(path: string, init?: HttpRequestInit): Promise<Response>;
19
+ get(path: string, init?: Omit<HttpRequestInit, 'body' | 'method'>): Promise<string>;
20
+ post(path: string, init?: Omit<HttpRequestInit, 'method'>): Promise<string>;
21
+ put(path: string, init?: Omit<HttpRequestInit, 'method'>): Promise<string>;
22
+ delete(path: string, init?: Omit<HttpRequestInit, 'method'>): Promise<string>;
23
23
  }
24
24
 
25
- export { SecurequClient, SecurequClient as default };
25
+ export { SecurequClient as default };
package/client/index.js CHANGED
@@ -1,147 +1,169 @@
1
- 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var crypto=require('../include/lib/crypto.js'),signeture=require('../include/signeture.js'),urlpath=require('../include/lib/urlpath.js'),xanFetch=require('xanfetch'),responseValue=require('../include/responseValue.js'),cache=require('../include/lib/cache.js');class SecurequClient {
2
- constructor(config) {
3
- this.token = '';
4
- this.tokenLoading = false;
5
- this.Cache = new cache.default({ ttl: 1000 * 60 * 60, limit: 100 });
6
- this.reqkey = '';
7
- this.PATH_CACHE = new cache.default({ ttl: 1000 * 60 * 60, limit: 100 });
8
- this.config = Object.assign({}, config);
9
- const secret = crypto.default.makeSecret(config.secret);
10
- this.config.secret = secret;
11
- this.secret_length = secret.length - (Math.floor(Math.random() * 11) + 5);
12
- this.secret = crypto.default.makeSecret(secret.substring(0, this.secret_length));
13
- this.signerure = signeture.default.make(this.secret, this.secret);
14
- }
15
- setCache(path, method, response) {
16
- const cacheKey = `${method}:${path}`;
17
- if (this.config.cache === true) {
18
- this.Cache.set(cacheKey, response);
19
- }
20
- else if (this.config.cache) {
21
- this.config.cache.set(cacheKey, response);
22
- }
23
- }
24
- getCache(path, method) {
25
- const cacheKey = `${method}:${path}`;
26
- if (this.config.cache === true) {
27
- return this.Cache.get(cacheKey);
28
- }
29
- else if (this.config.cache) {
30
- return this.config.cache.get(cacheKey);
31
- }
32
- }
33
- path(path) {
34
- let pathKey = path;
35
- let has = this.PATH_CACHE.get(pathKey);
36
- if (!has) {
37
- const { search, pathname } = new URL(path, window.location.origin);
38
- const params = new URLSearchParams(search);
39
- const paramsObject = Object.fromEntries(params.entries());
40
- let split = pathname.split("/").map((s) => urlpath.default.encrypt(s)).filter((s) => s.length > 0);
41
- path = `${this.config.path}/${split.join("/")}`;
42
- if (Object.keys(paramsObject).length) {
43
- for (let key in paramsObject) {
44
- paramsObject[urlpath.default.encrypt(key)] = paramsObject[key];
45
- delete paramsObject[key];
46
- }
47
- const string = JSON.stringify(paramsObject);
48
- const text = encodeURIComponent(crypto.default.encrypt(string, this.token));
49
- path += `?${this.reqkey}=${text}`;
50
- }
51
- this.PATH_CACHE.set(pathKey, path);
52
- }
53
- else {
54
- path = has;
55
- }
56
- return path;
57
- }
58
- async handshake() {
59
- this.tokenLoading = true;
60
- const res = await xanFetch(this.path(`/handshake`), {
61
- method: "GET",
62
- headers: Object.assign(Object.assign({}, this.config.headers), { [signeture.default.key]: this.signerure }),
63
- });
64
- const value = responseValue.default.decrypt(await res.text(), this.signerure);
65
- const token = crypto.default.decrypt(value, this.secret);
66
- this.token = token;
67
- this.reqkey = token.substring(0, token.length / 2);
68
- this.tokenLoading = false;
69
- }
70
- async send(path, init) {
71
- if (path === '/handshake') {
72
- throw new Error("Path is not allowed");
73
- }
74
- if (this.tokenLoading) {
75
- await new Promise((resolve) => {
76
- const interval = setInterval(() => {
77
- if (!this.tokenLoading) {
78
- clearInterval(interval);
79
- resolve(null);
80
- }
81
- }, 100);
82
- });
83
- }
84
- if (!this.token) {
85
- await this.handshake();
86
- }
87
- const info = Object.assign(Object.assign({ method: "GET" }, init), { headers: Object.assign(Object.assign(Object.assign({}, this.config.headers), init === null || init === void 0 ? void 0 : init.headers), { [signeture.default.key]: this.signerure }) });
88
- const cache_res = this.getCache(path, info.method);
89
- if (cache_res) {
90
- return cache_res.clone();
91
- }
92
- if (info.body) {
93
- if (!this.token)
94
- throw new Error("Token not loaded");
95
- const body = new FormData();
96
- let _data = {};
97
- let hasFile = false;
98
- for (let key in info.body) {
99
- let ukey = urlpath.default.encrypt(key);
100
- if (info.body[key] instanceof File) {
101
- body.append(ukey, info.body[key]);
102
- hasFile = true;
103
- }
104
- else {
105
- _data[ukey] = info.body[key];
106
- }
107
- }
108
- body.append(this.reqkey, crypto.default.encrypt(_data, this.token));
109
- if (!hasFile) {
110
- info.body = new URLSearchParams(body);
111
- if (!info.headers['Content-Type']) {
112
- info.headers['Content-Type'] = 'application/x-www-form-urlencoded';
113
- }
114
- }
115
- else {
116
- if (info.method === "GET") {
117
- info.method = "POST";
118
- }
119
- info.body = body;
120
- if (!info.headers['Content-Type']) {
121
- info.headers['Content-Type'] = 'multipart/form-data';
122
- }
123
- }
124
- }
125
- const response = await xanFetch(this.path(path), info);
126
- const res = response.clone();
127
- const text = await response.text();
128
- const value = responseValue.default.decrypt(text, this.signerure);
129
- res.text = async () => value;
130
- if (this.config.cache === true && res.ok) {
131
- this.setCache(path, info.method, res.clone());
132
- }
133
- return res;
134
- }
135
- async get(path, init) {
136
- return await this.send(path, init);
137
- }
138
- async post(path, body, init) {
139
- return await this.send(path, Object.assign(Object.assign({}, init), { method: "POST", body: body }));
140
- }
141
- async put(path, body, init) {
142
- return await this.send(path, Object.assign(Object.assign({}, init), { method: "PUT", body: body }));
143
- }
144
- async delete(path, init) {
145
- return await this.send(path, Object.assign(Object.assign({}, init), { method: "DELETE" }));
146
- }
147
- }exports.SecurequClient=SecurequClient;exports.default=SecurequClient;//# sourceMappingURL=index.js.map
1
+ 'use strict';var crypto=require('../include/lib/crypto.js'),signeture=require('../include/signeture.js'),urlpath=require('../include/lib/urlpath.js'),xanFetch=require('xanfetch'),responseValue=require('../include/responseValue.js'),cache=require('../include/lib/cache.js');class SecurequClient {
2
+ constructor(config) {
3
+ this.token = '';
4
+ this.tokenLoading = false;
5
+ this.Cache = new cache({ ttl: 1000 * 60 * 60, limit: 100 });
6
+ this.reqkey = '';
7
+ this.PATH_CACHE = new cache({ ttl: 1000 * 60 * 60, limit: 100 });
8
+ this.config = Object.assign({}, config);
9
+ const secret = crypto.makeSecret(config.secret);
10
+ this.config.secret = secret;
11
+ this.secret_length = secret.length - (Math.floor(Math.random() * 11) + 5);
12
+ this.secret = crypto.makeSecret(secret.substring(0, this.secret_length));
13
+ this.signerure = signeture.make(this.secret, this.secret);
14
+ }
15
+ setCache(path, method, response) {
16
+ const cacheKey = `${method}:${path}`;
17
+ if (this.config.cache === true) {
18
+ this.Cache.set(cacheKey, response);
19
+ }
20
+ else if (this.config.cache) {
21
+ this.config.cache.set(cacheKey, response);
22
+ }
23
+ }
24
+ getCache(path, method) {
25
+ const cacheKey = `${method}:${path}`;
26
+ if (this.config.cache === true) {
27
+ return this.Cache.get(cacheKey);
28
+ }
29
+ else if (this.config.cache) {
30
+ return this.config.cache.get(cacheKey);
31
+ }
32
+ }
33
+ path(path) {
34
+ let pathKey = path;
35
+ let has = this.PATH_CACHE.get(pathKey);
36
+ if (!has) {
37
+ const { search, pathname } = new URL(path, window.location.origin);
38
+ const params = new URLSearchParams(search);
39
+ const paramsObject = Object.fromEntries(params.entries());
40
+ let split = pathname.split("/").map((s) => urlpath.encrypt(s)).filter((s) => s.length > 0);
41
+ path = `${this.config.basepath}/${split.join("/")}`;
42
+ if (Object.keys(paramsObject).length) {
43
+ for (let key in paramsObject) {
44
+ paramsObject[urlpath.encrypt(key)] = paramsObject[key];
45
+ delete paramsObject[key];
46
+ }
47
+ const string = JSON.stringify(paramsObject);
48
+ const text = encodeURIComponent(crypto.encrypt(string, this.token));
49
+ path += `?${this.reqkey}=${text}`;
50
+ }
51
+ this.PATH_CACHE.set(pathKey, path);
52
+ }
53
+ else {
54
+ path = has;
55
+ }
56
+ return path;
57
+ }
58
+ async handshake() {
59
+ var _a, _b, _c;
60
+ this.tokenLoading = true;
61
+ const res = await xanFetch(this.path(`/handshake`), Object.assign(Object.assign({}, (_a = this.config) === null || _a === void 0 ? void 0 : _a.defaultOptions), { method: "GET", headers: Object.assign(Object.assign({}, (_c = (_b = this.config) === null || _b === void 0 ? void 0 : _b.defaultOptions) === null || _c === void 0 ? void 0 : _c.headers), { [signeture.key]: this.signerure }) }));
62
+ this.tokenLoading = false;
63
+ if (res.ok) {
64
+ const txt = await res.text();
65
+ const value = responseValue.decrypt(txt, this.signerure);
66
+ const token = crypto.decrypt(value, this.secret);
67
+ this.token = token;
68
+ this.reqkey = token.substring(0, token.length / 2);
69
+ }
70
+ else {
71
+ throw new Error("Handshake failed");
72
+ }
73
+ }
74
+ async send(path, init) {
75
+ var _a, _b, _c;
76
+ if (init === null || init === void 0 ? void 0 : init.params) {
77
+ let url = new URL(path, window.location.origin);
78
+ for (let key in init.params) {
79
+ url.searchParams.set(key, init.params[key]);
80
+ }
81
+ path = url.pathname + url.search;
82
+ }
83
+ let url = new URL(path, window.location.origin);
84
+ if (url.pathname === '/handshake') {
85
+ throw new Error("Path is not allowed");
86
+ }
87
+ if (this.tokenLoading) {
88
+ await new Promise((resolve) => {
89
+ const interval = setInterval(() => {
90
+ if (!this.tokenLoading) {
91
+ clearInterval(interval);
92
+ resolve(null);
93
+ }
94
+ }, 100);
95
+ });
96
+ }
97
+ if (!this.token) {
98
+ await this.handshake();
99
+ }
100
+ const httpOption = Object.assign(Object.assign(Object.assign({ method: "GET" }, (_a = this.config) === null || _a === void 0 ? void 0 : _a.defaultOptions), init), { headers: 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), { [signeture.key]: this.signerure }) });
101
+ if (this.config.cache === true || this.config.cache) {
102
+ const cache_res = this.getCache(path, httpOption.method);
103
+ if (cache_res) {
104
+ return cache_res.clone();
105
+ }
106
+ }
107
+ if (httpOption.body) {
108
+ if (!this.token)
109
+ throw new Error("Token not loaded");
110
+ const body = new FormData();
111
+ let _data = {};
112
+ let hasFile = false;
113
+ for (let key in httpOption.body) {
114
+ let ukey = urlpath.encrypt(key);
115
+ if (httpOption.body[key] instanceof File) {
116
+ body.append(ukey, httpOption.body[key]);
117
+ hasFile = true;
118
+ }
119
+ else {
120
+ _data[ukey] = httpOption.body[key];
121
+ }
122
+ }
123
+ body.append(this.reqkey, crypto.encrypt(_data, this.token));
124
+ if (!hasFile) {
125
+ httpOption.body = new URLSearchParams(body);
126
+ if (!httpOption.headers['Content-Type']) {
127
+ httpOption.headers['Content-Type'] = 'application/x-www-form-urlencoded';
128
+ }
129
+ }
130
+ else {
131
+ if (httpOption.method === "GET") {
132
+ httpOption.method = "POST";
133
+ }
134
+ httpOption.body = body;
135
+ if (!httpOption.headers['Content-Type']) {
136
+ httpOption.headers['Content-Type'] = 'multipart/form-data';
137
+ }
138
+ }
139
+ }
140
+ const response = await xanFetch(this.path(path), httpOption);
141
+ const res = response.clone();
142
+ const text = await response.text();
143
+ const value = responseValue.decrypt(text, this.signerure);
144
+ if (!response.ok) {
145
+ throw new Error(value);
146
+ }
147
+ res.text = async () => value;
148
+ if ((this.config.cache === true || this.config.cache) && res.ok) {
149
+ this.setCache(path, httpOption.method, res.clone());
150
+ }
151
+ return res;
152
+ }
153
+ async get(path, init) {
154
+ const res = await this.send(path, init);
155
+ return await res.text();
156
+ }
157
+ async post(path, init) {
158
+ const res = await this.send(path, Object.assign(Object.assign({}, init), { method: "POST" }));
159
+ return await res.text();
160
+ }
161
+ async put(path, init) {
162
+ const res = await this.send(path, Object.assign(Object.assign({}, init), { method: "PUT" }));
163
+ return await res.text();
164
+ }
165
+ async delete(path, init) {
166
+ const res = await this.send(path, Object.assign(Object.assign({}, init), { method: "DELETE" }));
167
+ return await res.text();
168
+ }
169
+ }module.exports=SecurequClient;//# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/client/index.ts"],"sourcesContent":["import crypto from \"../include/lib/crypto\";\r\nimport signeture from \"../include/signeture\";\r\nimport urlpath from \"../include/lib/urlpath\";\r\nimport { HttpRequestInit, RequestBody, SecurequClientConfig } from \"./types\";\r\nimport xanFetch from 'xanfetch'\r\nimport responseValue from \"../include/responseValue\";\r\nimport SecurequCache from \"../include/lib/cache\";\r\n\r\nexport class SecurequClient {\r\n private config: SecurequClientConfig;\r\n private token: string = '';\r\n private tokenLoading: boolean = false;\r\n private Cache = new SecurequCache<Response>({ ttl: 1000 * 60 * 60, limit: 100 });\r\n\r\n private secret: string;\r\n private secret_length: number;\r\n private signerure: string;\r\n private reqkey: string = '';\r\n\r\n constructor(config: SecurequClientConfig) {\r\n this.config = { ...config }\r\n const secret = crypto.makeSecret(config.secret)\r\n this.config.secret = secret;\r\n this.secret_length = secret.length - (Math.floor(Math.random() * 11) + 5);\r\n this.secret = crypto.makeSecret(secret.substring(0, this.secret_length))\r\n this.signerure = signeture.make(this.secret, this.secret);\r\n }\r\n\r\n private setCache(path: string, method: string, response: any) {\r\n const cacheKey = `${method}:${path}`;\r\n if (this.config.cache === true) {\r\n this.Cache.set(cacheKey, response);\r\n } else if (this.config.cache) {\r\n this.config.cache.set(cacheKey, response);\r\n }\r\n }\r\n\r\n private getCache(path: string, method: string,) {\r\n const cacheKey = `${method}:${path}`;\r\n if (this.config.cache === true) {\r\n return this.Cache.get(cacheKey);\r\n } else if (this.config.cache) {\r\n return this.config.cache.get(cacheKey);\r\n }\r\n }\r\n\r\n private PATH_CACHE = new SecurequCache<string>({ ttl: 1000 * 60 * 60, limit: 100 });\r\n private path(path: string) {\r\n let pathKey = path\r\n let has = this.PATH_CACHE.get(pathKey)\r\n if (!has) {\r\n const { search, pathname } = new URL(path, window.location.origin);\r\n const params = new URLSearchParams(search);\r\n const paramsObject = Object.fromEntries(params.entries());\r\n let split = pathname.split(\"/\").map((s) => urlpath.encrypt(s)).filter((s) => s.length > 0);\r\n path = `${this.config.path}/${split.join(\"/\")}`;\r\n if (Object.keys(paramsObject).length) {\r\n for (let key in paramsObject) {\r\n paramsObject[urlpath.encrypt(key)] = paramsObject[key]\r\n delete paramsObject[key]\r\n }\r\n const string = JSON.stringify(paramsObject)\r\n const text = encodeURIComponent(crypto.encrypt(string, this.token));\r\n path += `?${this.reqkey}=${text}`;\r\n }\r\n this.PATH_CACHE.set(pathKey, path);\r\n } else {\r\n path = has\r\n }\r\n return path\r\n }\r\n\r\n private async handshake() {\r\n this.tokenLoading = true;\r\n const res = await xanFetch(this.path(`/handshake`), {\r\n method: \"GET\",\r\n headers: {\r\n ...this.config.headers,\r\n [signeture.key]: this.signerure\r\n },\r\n })\r\n\r\n const value: any = responseValue.decrypt(await res.text(), this.signerure)\r\n const token = crypto.decrypt(value, this.secret)\r\n this.token = token;\r\n this.reqkey = token.substring(0, token.length / 2);\r\n this.tokenLoading = false;\r\n }\r\n\r\n async send(path: string, init?: HttpRequestInit): Promise<Response> {\r\n if (path === '/handshake') {\r\n throw new Error(\"Path is not allowed\")\r\n }\r\n if (this.tokenLoading) {\r\n await new Promise((resolve) => {\r\n const interval = setInterval(() => {\r\n if (!this.tokenLoading) {\r\n clearInterval(interval);\r\n resolve(null);\r\n }\r\n }, 100);\r\n })\r\n }\r\n\r\n if (!this.token) {\r\n await this.handshake();\r\n }\r\n\r\n const info: any = {\r\n method: \"GET\",\r\n ...init,\r\n headers: {\r\n ...this.config.headers,\r\n ...init?.headers,\r\n [signeture.key]: this.signerure\r\n },\r\n }\r\n\r\n const cache_res = this.getCache(path, info.method);\r\n if (cache_res) {\r\n return cache_res.clone();\r\n }\r\n\r\n if (info.body) {\r\n if (!this.token) throw new Error(\"Token not loaded\")\r\n const body = new FormData();\r\n let _data: any = {}\r\n let hasFile = false;\r\n for (let key in info.body) {\r\n let ukey = urlpath.encrypt(key);\r\n if (info.body[key] instanceof File) {\r\n body.append(ukey, info.body[key]);\r\n hasFile = true;\r\n } else {\r\n _data[ukey] = info.body[key];\r\n }\r\n }\r\n\r\n body.append(this.reqkey, crypto.encrypt(_data, this.token));\r\n\r\n if (!hasFile) {\r\n info.body = new URLSearchParams(body as any);\r\n if (!info.headers['Content-Type']) {\r\n info.headers['Content-Type'] = 'application/x-www-form-urlencoded';\r\n }\r\n } else {\r\n if (info.method === \"GET\") {\r\n info.method = \"POST\"\r\n }\r\n info.body = body\r\n if (!info.headers['Content-Type']) {\r\n info.headers['Content-Type'] = 'multipart/form-data';\r\n }\r\n }\r\n }\r\n\r\n const response = await xanFetch(this.path(path), info);\r\n const res = response.clone();\r\n const text = await response.text();\r\n const value: any = responseValue.decrypt(text, this.signerure)\r\n res.text = async () => value;\r\n if (this.config.cache === true && res.ok) {\r\n this.setCache(path, info.method, res.clone());\r\n }\r\n return res\r\n }\r\n\r\n async get(path: string, init?: HttpRequestInit) {\r\n return await this.send(path, init);\r\n }\r\n\r\n async post(path: string, body: RequestBody, init?: HttpRequestInit) {\r\n return await this.send(path, {\r\n ...init,\r\n method: \"POST\",\r\n body: body\r\n });\r\n }\r\n\r\n async put(path: string, body: RequestBody, init?: HttpRequestInit) {\r\n return await this.send(path, {\r\n ...init,\r\n method: \"PUT\",\r\n body: body\r\n });\r\n }\r\n\r\n async delete(path: string, init?: HttpRequestInit) {\r\n return await this.send(path, {\r\n ...init,\r\n method: \"DELETE\",\r\n });\r\n }\r\n}\r\n\r\nexport default SecurequClient;"],"names":["SecurequCache","crypto","signeture","urlpath","responseValue"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/client/index.ts"],"sourcesContent":["import crypto from \"../include/lib/crypto\";\nimport signeture from \"../include/signeture\";\nimport urlpath from \"../include/lib/urlpath\";\nimport { HttpRequestInit, RequestBody, SecurequClientConfig } from \"./types\";\nimport xanFetch from 'xanfetch'\nimport responseValue from \"../include/responseValue\";\nimport SecurequCache from \"../include/lib/cache\";\n\nclass SecurequClient {\n private config: SecurequClientConfig;\n private token: string = '';\n private tokenLoading: boolean = false;\n private Cache = new SecurequCache<Response>({ ttl: 1000 * 60 * 60, limit: 100 });\n\n private secret: string;\n private secret_length: number;\n private signerure: string;\n private reqkey: string = '';\n\n constructor(config: SecurequClientConfig) {\n this.config = { ...config }\n const secret = crypto.makeSecret(config.secret)\n this.config.secret = secret;\n this.secret_length = secret.length - (Math.floor(Math.random() * 11) + 5);\n this.secret = crypto.makeSecret(secret.substring(0, this.secret_length))\n this.signerure = signeture.make(this.secret, this.secret);\n }\n\n private setCache(path: string, method: string, response: any) {\n const cacheKey = `${method}:${path}`;\n if (this.config.cache === true) {\n this.Cache.set(cacheKey, response);\n } else if (this.config.cache) {\n this.config.cache.set(cacheKey, response);\n }\n }\n\n private getCache(path: string, method: string,) {\n const cacheKey = `${method}:${path}`;\n if (this.config.cache === true) {\n return this.Cache.get(cacheKey);\n } else if (this.config.cache) {\n return this.config.cache.get(cacheKey);\n }\n }\n\n private PATH_CACHE = new SecurequCache<string>({ ttl: 1000 * 60 * 60, limit: 100 });\n private path(path: string) {\n let pathKey = path\n let has = this.PATH_CACHE.get(pathKey)\n if (!has) {\n const { search, pathname } = new URL(path, window.location.origin);\n const params = new URLSearchParams(search);\n const paramsObject = Object.fromEntries(params.entries());\n let split = pathname.split(\"/\").map((s) => urlpath.encrypt(s)).filter((s) => s.length > 0);\n path = `${this.config.basepath}/${split.join(\"/\")}`;\n if (Object.keys(paramsObject).length) {\n for (let key in paramsObject) {\n paramsObject[urlpath.encrypt(key)] = paramsObject[key]\n delete paramsObject[key]\n }\n const string = JSON.stringify(paramsObject)\n const text = encodeURIComponent(crypto.encrypt(string, this.token));\n path += `?${this.reqkey}=${text}`;\n }\n this.PATH_CACHE.set(pathKey, path);\n } else {\n path = has\n }\n return path\n }\n\n private async handshake() {\n this.tokenLoading = true;\n const res = await xanFetch(this.path(`/handshake`), {\n ...this.config?.defaultOptions,\n method: \"GET\",\n headers: {\n ...this.config?.defaultOptions?.headers,\n [signeture.key]: this.signerure\n },\n })\n this.tokenLoading = false;\n\n if (res.ok) {\n const txt = await res.text();\n const value: any = responseValue.decrypt(txt, this.signerure)\n const token = crypto.decrypt(value, this.secret)\n this.token = token;\n this.reqkey = token.substring(0, token.length / 2);\n } else {\n throw new Error(\"Handshake failed\");\n }\n }\n\n async send(path: string, init?: HttpRequestInit): Promise<Response> {\n if (init?.params) {\n let url = new URL(path, window.location.origin);\n for (let key in init.params) {\n url.searchParams.set(key, (init.params as any)[key]);\n }\n path = url.pathname + url.search;\n }\n let url = new URL(path, window.location.origin);\n if (url.pathname === '/handshake') {\n throw new Error(\"Path is not allowed\")\n }\n if (this.tokenLoading) {\n await new Promise((resolve) => {\n const interval = setInterval(() => {\n if (!this.tokenLoading) {\n clearInterval(interval);\n resolve(null);\n }\n }, 100);\n })\n }\n\n if (!this.token) {\n await this.handshake();\n }\n\n const httpOption: any = {\n method: \"GET\",\n ...this.config?.defaultOptions,\n ...init,\n headers: {\n ...this.config?.defaultOptions?.headers,\n ...init?.headers,\n [signeture.key]: this.signerure\n },\n }\n\n if (this.config.cache === true || this.config.cache) {\n const cache_res = this.getCache(path, httpOption.method);\n if (cache_res) {\n return cache_res.clone();\n }\n }\n\n if (httpOption.body) {\n if (!this.token) throw new Error(\"Token not loaded\")\n const body = new FormData();\n let _data: any = {}\n let hasFile = false;\n for (let key in httpOption.body) {\n let ukey = urlpath.encrypt(key);\n if (httpOption.body[key] instanceof File) {\n body.append(ukey, httpOption.body[key]);\n hasFile = true;\n } else {\n _data[ukey] = httpOption.body[key];\n }\n }\n\n body.append(this.reqkey, crypto.encrypt(_data, this.token));\n\n if (!hasFile) {\n httpOption.body = new URLSearchParams(body as any);\n if (!httpOption.headers['Content-Type']) {\n httpOption.headers['Content-Type'] = 'application/x-www-form-urlencoded';\n }\n } else {\n if (httpOption.method === \"GET\") {\n httpOption.method = \"POST\"\n }\n httpOption.body = body\n if (!httpOption.headers['Content-Type']) {\n httpOption.headers['Content-Type'] = 'multipart/form-data';\n }\n }\n }\n\n const response = await xanFetch(this.path(path), httpOption);\n const res = response.clone();\n const text = await response.text();\n const value: any = responseValue.decrypt(text, this.signerure)\n if (!response.ok) {\n throw new Error(value);\n }\n res.text = async () => value;\n if ((this.config.cache === true || this.config.cache) && res.ok) {\n this.setCache(path, httpOption.method, res.clone());\n }\n return res\n }\n\n async get(path: string, init?: Omit<HttpRequestInit, 'body' | 'method'>) {\n const res = await this.send(path, init);\n return await res.text()\n }\n\n async post(path: string, init?: Omit<HttpRequestInit, 'method'>) {\n const res = await this.send(path, {\n ...init,\n method: \"POST\",\n });\n return await res.text();\n }\n\n async put(path: string, init?: Omit<HttpRequestInit, 'method'>) {\n const res = await this.send(path, {\n ...init,\n method: \"PUT\",\n });\n return await res.text();\n }\n\n async delete(path: string, init?: Omit<HttpRequestInit, 'method'>) {\n const res = await this.send(path, {\n ...init,\n method: \"DELETE\",\n });\n return await res.text();\n }\n}\n\nexport default SecurequClient;"],"names":["SecurequCache"],"mappings":"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"}