@toa.io/origin 0.1.0 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/release.yaml +36 -0
- package/.releaserc +17 -0
- package/.vscode/settings.json +8 -1
- package/CHANGELOG.md +42 -0
- package/README.md +8 -30
- package/eslint.config.js +3 -5
- package/package.json +12 -4
- package/source/Agent.ts +156 -0
- package/source/Error.ts +3 -0
- package/source/Evt.ts +3 -0
- package/source/Octets.ts +5 -6
- package/source/Origin.ts +47 -0
- package/source/Resource.ts +41 -16
- package/source/index.ts +3 -6
- package/transpiled/Agent.d.ts +30 -0
- package/transpiled/Agent.js +102 -0
- package/transpiled/Agent.js.map +1 -0
- package/transpiled/Error.d.ts +2 -0
- package/transpiled/Error.js +2 -0
- package/transpiled/Error.js.map +1 -0
- package/transpiled/Evt.d.ts +8 -0
- package/transpiled/Evt.js +2 -0
- package/transpiled/Evt.js.map +1 -0
- package/transpiled/Octets.d.ts +4 -7
- package/transpiled/Octets.js +1 -2
- package/transpiled/Origin.d.ts +18 -0
- package/transpiled/Origin.js +32 -0
- package/transpiled/Origin.js.map +1 -0
- package/transpiled/Resource.d.ts +16 -9
- package/transpiled/Resource.js +21 -16
- package/transpiled/Resource.js.map +1 -1
- package/transpiled/index.d.ts +3 -6
- package/transpiled/index.js +1 -16
- package/transpiled/index.js.map +1 -1
- package/tsconfig.json +4 -5
- package/source/Failure.ts +0 -3
- package/source/Method.ts +0 -99
- package/source/events.ts +0 -20
- package/source/fail.ts +0 -13
- package/source/ok.ts +0 -15
- package/source/request.ts +0 -84
- package/transpiled/Failure.d.ts +0 -3
- package/transpiled/Failure.js +0 -8
- package/transpiled/Failure.js.map +0 -1
- package/transpiled/Method.d.ts +0 -15
- package/transpiled/Method.js +0 -78
- package/transpiled/Method.js.map +0 -1
- package/transpiled/events.d.ts +0 -15
- package/transpiled/events.js +0 -9
- package/transpiled/events.js.map +0 -1
- package/transpiled/fail.d.ts +0 -2
- package/transpiled/fail.js +0 -13
- package/transpiled/fail.js.map +0 -1
- package/transpiled/ok.d.ts +0 -1
- package/transpiled/ok.js +0 -20
- package/transpiled/ok.js.map +0 -1
- package/transpiled/request.d.ts +0 -15
- package/transpiled/request.js +0 -58
- package/transpiled/request.js.map +0 -1
package/transpiled/fail.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.fail = fail;
|
|
4
|
-
const Failure_1 = require("./Failure");
|
|
5
|
-
const events_1 = require("./events");
|
|
6
|
-
async function fail(response) {
|
|
7
|
-
const payload = response.headers.get('content-type') === 'application/json'
|
|
8
|
-
? await response.json()
|
|
9
|
-
: await response.text();
|
|
10
|
-
events_1.events.emit(response.status, payload);
|
|
11
|
-
return new Failure_1.Failure(response.status);
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=fail.js.map
|
package/transpiled/fail.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fail.js","sourceRoot":"","sources":["../source/fail.ts"],"names":[],"mappings":";;AAGA,oBASC;AAZD,uCAAmC;AACnC,qCAAiC;AAE1B,KAAK,UAAU,IAAI,CAAC,QAAkB;IAC3C,MAAM,OAAO,GACX,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,kBAAkB;QACzD,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE;QACvB,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;IAE3B,eAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAErC,OAAO,IAAI,iBAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;AACrC,CAAC"}
|
package/transpiled/ok.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function ok<T>(response: Response): Promise<T>;
|
package/transpiled/ok.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ok = ok;
|
|
4
|
-
const browser_1 = require("meros/browser");
|
|
5
|
-
const events_1 = require("./events");
|
|
6
|
-
async function ok(response) {
|
|
7
|
-
const challenge = response.headers.get('authorization');
|
|
8
|
-
if (challenge !== null)
|
|
9
|
-
events_1.events.emit('challenge', challenge);
|
|
10
|
-
const type = response.headers.get('content-type');
|
|
11
|
-
if (type?.startsWith('multipart/'))
|
|
12
|
-
return (await (0, browser_1.meros)(response));
|
|
13
|
-
else if (type === 'application/json')
|
|
14
|
-
return (await response.json());
|
|
15
|
-
else if (type?.startsWith('text/'))
|
|
16
|
-
return (await response.text());
|
|
17
|
-
else
|
|
18
|
-
return (await response.blob());
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=ok.js.map
|
package/transpiled/ok.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ok.js","sourceRoot":"","sources":["../source/ok.ts"],"names":[],"mappings":";;AAGA,gBAWC;AAdD,2CAAqC;AACrC,qCAAiC;AAE1B,KAAK,UAAU,EAAE,CAAI,QAAkB;IAC5C,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IAEvD,IAAI,SAAS,KAAK,IAAI;QAAE,eAAM,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IAE3D,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;IAEjD,IAAI,IAAI,EAAE,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,CAAC,MAAM,IAAA,eAAK,EAAC,QAAQ,CAAC,CAAM,CAAA;SAClE,IAAI,IAAI,KAAK,kBAAkB;QAAE,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAA;SACpE,IAAI,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAA;;QAClE,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAA;AAC1C,CAAC"}
|
package/transpiled/request.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { Failure } from './Failure';
|
|
2
|
-
export declare function authenticate(value: string | null): void;
|
|
3
|
-
export declare function use(fetcher: typeof fetch): void;
|
|
4
|
-
interface Settings {
|
|
5
|
-
origin: string;
|
|
6
|
-
delay?: number;
|
|
7
|
-
}
|
|
8
|
-
export declare function connect(values: Settings): void;
|
|
9
|
-
export declare function request<T = unknown>(path: string, options?: Options): Promise<T | Failure>;
|
|
10
|
-
export interface Options extends Omit<RequestInit, 'headers'> {
|
|
11
|
-
duplex?: 'half';
|
|
12
|
-
body?: any;
|
|
13
|
-
headers?: Record<string, string>;
|
|
14
|
-
}
|
|
15
|
-
export {};
|
package/transpiled/request.js
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.authenticate = authenticate;
|
|
4
|
-
exports.use = use;
|
|
5
|
-
exports.connect = connect;
|
|
6
|
-
exports.request = request;
|
|
7
|
-
const events_1 = require("./events");
|
|
8
|
-
const fail_1 = require("./fail");
|
|
9
|
-
const ok_1 = require("./ok");
|
|
10
|
-
let challenge = null;
|
|
11
|
-
function authenticate(value) {
|
|
12
|
-
challenge = value;
|
|
13
|
-
}
|
|
14
|
-
let _fetch = fetch;
|
|
15
|
-
function use(fetcher) {
|
|
16
|
-
_fetch = fetcher;
|
|
17
|
-
}
|
|
18
|
-
const settings = {};
|
|
19
|
-
function connect(values) {
|
|
20
|
-
Object.assign(settings, values);
|
|
21
|
-
}
|
|
22
|
-
async function request(path, options = {}) {
|
|
23
|
-
if (settings.origin === undefined)
|
|
24
|
-
throw new Error('Origin not connected');
|
|
25
|
-
options.headers ??= {};
|
|
26
|
-
options.headers['accept'] ??= 'application/json';
|
|
27
|
-
if (settings.delay)
|
|
28
|
-
options.headers['sleep'] = Math.round((Math.random() * settings.delay) / 2 + settings.delay / 2).toString();
|
|
29
|
-
const authentication = options.credentials === 'include';
|
|
30
|
-
if (options.body !== undefined)
|
|
31
|
-
if (options.body instanceof File || options.body instanceof ReadableStream) {
|
|
32
|
-
options.method ??= 'POST';
|
|
33
|
-
options.duplex = 'half';
|
|
34
|
-
options.headers['content-type'] ??= options.body.type ?? 'application/octet-stream';
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
options.body = JSON.stringify(options.body);
|
|
38
|
-
options.headers['content-type'] ??= 'application/json';
|
|
39
|
-
}
|
|
40
|
-
if (authentication && options.headers['authorization'] === undefined) {
|
|
41
|
-
if (challenge === null)
|
|
42
|
-
throw new Error(`Credentials must be set before sending authenticated request ${options.method ?? 'GET'} ${path}`);
|
|
43
|
-
options.headers['authorization'] = challenge;
|
|
44
|
-
delete options.credentials; // no cookies
|
|
45
|
-
}
|
|
46
|
-
const start = performance.now();
|
|
47
|
-
const id = typeof window !== 'undefined' && (window.crypto.randomUUID?.() ?? Math.random().toString());
|
|
48
|
-
if (id)
|
|
49
|
-
events_1.events.emit('request', { id, path, options });
|
|
50
|
-
const response = await _fetch(settings.origin + path, options);
|
|
51
|
-
if (id)
|
|
52
|
-
events_1.events.emit('response', { id, response, duration: performance.now() - start });
|
|
53
|
-
if (!response.ok)
|
|
54
|
-
return await (0, fail_1.fail)(response);
|
|
55
|
-
else
|
|
56
|
-
return await (0, ok_1.ok)(response);
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=request.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../source/request.ts"],"names":[],"mappings":"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"}
|