@toa.io/extensions.exposition 1.0.0-alpha.332 → 1.0.0-alpha.333
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/components/exposition.octets/package.json +2 -2
- package/components/identity.federation/package.json +1 -1
- package/components/identity.tokens/package.json +1 -1
- package/package.json +7 -6
- package/transpiled/HTTP/Context.d.ts +4 -0
- package/transpiled/HTTP/Context.js +4 -1
- package/transpiled/HTTP/Context.js.map +1 -1
- package/transpiled/HTTP/Server.d.ts +3 -1
- package/transpiled/HTTP/address.d.ts +5 -0
- package/transpiled/HTTP/address.js +11 -0
- package/transpiled/HTTP/address.js.map +1 -1
- package/transpiled/directives/censor/Censor.d.ts +2 -2
- package/transpiled/directives/censor/Censor.js +4 -9
- package/transpiled/directives/censor/Censor.js.map +1 -1
- package/transpiled/directives/map/Client.d.ts +21 -0
- package/transpiled/directives/map/Client.js +33 -0
- package/transpiled/directives/map/Client.js.map +1 -0
- package/transpiled/directives/map/Headers.d.ts +2 -1
- package/transpiled/directives/map/Headers.js +2 -2
- package/transpiled/directives/map/Headers.js.map +1 -1
- package/transpiled/directives/map/Map.js +14 -4
- package/transpiled/directives/map/Map.js.map +1 -1
- package/ui/dist/_app/env.js +1 -1
- package/ui/dist/_app/immutable/chunks/-39mDws-.js +1 -0
- package/ui/dist/_app/immutable/chunks/1WXXcBlU.js +90 -0
- package/ui/dist/_app/immutable/chunks/BjwH--Q_.js +1 -0
- package/ui/dist/_app/immutable/chunks/Bt6Kyh95.js +2 -0
- package/ui/dist/_app/immutable/chunks/C3gnuDhG.js +3 -0
- package/ui/dist/_app/immutable/chunks/CRzLMJPS.js +1 -0
- package/ui/dist/_app/immutable/chunks/DYI4yOrv.js +6 -0
- package/ui/dist/_app/immutable/chunks/XKyaHtl9.js +1 -0
- package/ui/dist/_app/immutable/entry/app.C3gvpmYY.js +2 -0
- package/ui/dist/_app/immutable/entry/payload.DSmR2FwN.js +1 -0
- package/ui/dist/_app/immutable/entry/start.BzTqgs51.js +2 -0
- package/ui/dist/_app/immutable/nodes/0.BufbmJeT.js +1 -0
- package/ui/dist/_app/immutable/nodes/1.Dn_85faQ.js +1 -0
- package/ui/dist/_app/immutable/nodes/2.DCLYeX2U.js +8 -0
- package/ui/dist/_app/immutable/nodes/3.aoe4R-SX.js +1 -0
- package/ui/dist/_app/immutable/nodes/4.B0CiB3ml.js +1 -0
- package/ui/dist/_app/immutable/nodes/5.BUrdbysb.js +1 -0
- package/ui/dist/_app/immutable/nodes/6.yNbGQqYT.js +1 -0
- package/ui/dist/_app/version.json +1 -1
- package/ui/dist/index.html +17 -14
- package/ui/dist/_app/immutable/chunks/BfkEoJWo.js +0 -3
- package/ui/dist/_app/immutable/chunks/C2Pl6xgG.js +0 -90
- package/ui/dist/_app/immutable/chunks/CXABSZYQ.js +0 -6
- package/ui/dist/_app/immutable/chunks/MJkgCRen.js +0 -1
- package/ui/dist/_app/immutable/chunks/doOvBfYz.js +0 -1
- package/ui/dist/_app/immutable/chunks/xihTtKlq.js +0 -1
- package/ui/dist/_app/immutable/entry/app.DIki71EZ.js +0 -2
- package/ui/dist/_app/immutable/entry/start.DLcriI5g.js +0 -1
- package/ui/dist/_app/immutable/nodes/0.Bsma_XlH.js +0 -1
- package/ui/dist/_app/immutable/nodes/1.CPfTvL2Y.js +0 -1
- package/ui/dist/_app/immutable/nodes/2.DyvXex_x.js +0 -8
- package/ui/dist/_app/immutable/nodes/3.ClsZXJWk.js +0 -1
- package/ui/dist/_app/immutable/nodes/4.yPslz9Nb.js +0 -1
- package/ui/dist/_app/immutable/nodes/5.BZxbRAPf.js +0 -1
- package/ui/dist/_app/immutable/nodes/6.J6MdfI1j.js +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@toa.io/extensions.exposition",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.333",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Toa Exposition",
|
|
6
6
|
"author": "temich <tema.gurtovoy@gmail.com>",
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"!**/.env*"
|
|
29
29
|
],
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@toa.io/core": "1.0.0-alpha.
|
|
32
|
-
"@toa.io/definitions": "1.0.0-alpha.
|
|
31
|
+
"@toa.io/core": "1.0.0-alpha.333",
|
|
32
|
+
"@toa.io/definitions": "1.0.0-alpha.333",
|
|
33
33
|
"@toa.io/generic": "1.0.0-alpha.332",
|
|
34
34
|
"@toa.io/pointer": "1.0.0-alpha.332",
|
|
35
35
|
"@toa.io/schemas": "1.0.0-alpha.332",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"ioredis": "6.0.0",
|
|
38
38
|
"matchacho": "0.6.1",
|
|
39
39
|
"minimatch": "10.2.6",
|
|
40
|
-
"msgpackr": "2.1.
|
|
40
|
+
"msgpackr": "2.1.2",
|
|
41
41
|
"negotiator": "1.1.0",
|
|
42
42
|
"openspan": "1.0.0-alpha.330"
|
|
43
43
|
},
|
|
@@ -66,13 +66,14 @@
|
|
|
66
66
|
"@node-rs/bcrypt": "2.0.0",
|
|
67
67
|
"@simplewebauthn/server": "14.0.3",
|
|
68
68
|
"@toa.io/agent": "*",
|
|
69
|
+
"@toa.io/extensions.chronicles": "*",
|
|
69
70
|
"@toa.io/extensions.storages": "*",
|
|
70
71
|
"@types/cors": "2.8.19",
|
|
71
72
|
"@types/negotiator": "0.6.5",
|
|
72
|
-
"jose": "6.2.
|
|
73
|
+
"jose": "6.2.13",
|
|
73
74
|
"js-yaml": "5.5.0",
|
|
74
75
|
"lru-cache": "11.5.3",
|
|
75
76
|
"paseto": "4.0.1"
|
|
76
77
|
},
|
|
77
|
-
"gitHead": "
|
|
78
|
+
"gitHead": "ddb74b2f99026fae540a8a8e0a49c26cbd22886a"
|
|
78
79
|
}
|
|
@@ -8,6 +8,8 @@ export declare class Context {
|
|
|
8
8
|
readonly request: IncomingMessage;
|
|
9
9
|
/** the client address, read as the deployment says; none otherwise, see `documentation/ip.md` */
|
|
10
10
|
readonly ip: string | undefined;
|
|
11
|
+
/** the client's country, read as the deployment says; none otherwise, see `documentation/ip.md` */
|
|
12
|
+
readonly country: string | undefined;
|
|
11
13
|
readonly url: URL;
|
|
12
14
|
readonly subtype: string | null;
|
|
13
15
|
readonly encoder: Format | null;
|
|
@@ -79,5 +81,7 @@ interface Pipelines {
|
|
|
79
81
|
interface Properties {
|
|
80
82
|
/** the header the client address is read from; the connection's without one */
|
|
81
83
|
ip?: string;
|
|
84
|
+
/** the header the client's country is read from */
|
|
85
|
+
country?: string;
|
|
82
86
|
}
|
|
83
87
|
export {};
|
|
@@ -4,13 +4,15 @@ import { console } from 'openspan';
|
|
|
4
4
|
import { Timing } from './Timing.js';
|
|
5
5
|
import { formats, types } from './formats/index.js';
|
|
6
6
|
import { read } from './messages.js';
|
|
7
|
-
import { address } from './address.js';
|
|
7
|
+
import { address, country } from './address.js';
|
|
8
8
|
import { NONE as UNMATCHED } from '../measurements.js';
|
|
9
9
|
export class Context {
|
|
10
10
|
authority;
|
|
11
11
|
request;
|
|
12
12
|
/** the client address, read as the deployment says; none otherwise, see `documentation/ip.md` */
|
|
13
13
|
ip;
|
|
14
|
+
/** the client's country, read as the deployment says; none otherwise, see `documentation/ip.md` */
|
|
15
|
+
country;
|
|
14
16
|
url;
|
|
15
17
|
subtype = null;
|
|
16
18
|
encoder = null;
|
|
@@ -77,6 +79,7 @@ export class Context {
|
|
|
77
79
|
this.request = request;
|
|
78
80
|
this.signal = signal;
|
|
79
81
|
this.ip = address(request, properties.ip);
|
|
82
|
+
this.country = country(request, properties.country);
|
|
80
83
|
// parsed by the server, which had to parse it anyway to know the request is valid
|
|
81
84
|
this.url = url;
|
|
82
85
|
this.timing = new Timing();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Context.js","sourceRoot":"","sources":["../../source/HTTP/Context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,UAAU,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAe,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"Context.js","sourceRoot":"","sources":["../../source/HTTP/Context.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,9 +65,11 @@ interface Properties {
|
|
|
65
65
|
probe: number;
|
|
66
66
|
/** The header the client address is read from; the connection's address without one. */
|
|
67
67
|
ip?: string;
|
|
68
|
+
/** The header the client's country is read from; none without one. */
|
|
69
|
+
country?: string;
|
|
68
70
|
/** Failed authentications an address may make; none are metered unless set. */
|
|
69
71
|
bouncer?: Bouncer;
|
|
70
|
-
/**
|
|
72
|
+
/** The countries a request is answered 451 from; none is refused without it. */
|
|
71
73
|
censor?: Censor;
|
|
72
74
|
/** The authorization server this context exposes; none is exposed without it. */
|
|
73
75
|
oauth?: OAuth;
|
|
@@ -5,3 +5,8 @@ import type { IncomingMessage } from './types.ts';
|
|
|
5
5
|
* connection's address is never it: behind an edge it is the edge's.
|
|
6
6
|
*/
|
|
7
7
|
export declare function address(request: IncomingMessage, header?: string): string | undefined;
|
|
8
|
+
/**
|
|
9
|
+
* The country the edge wrote for the client, as it wrote it. One value, never a list: an edge
|
|
10
|
+
* writes it whole, and a header a client sent beside it is the deployment's to strip.
|
|
11
|
+
*/
|
|
12
|
+
export declare function country(request: IncomingMessage, header?: string): string | undefined;
|
|
@@ -11,4 +11,15 @@ export function address(request, header) {
|
|
|
11
11
|
const last = raw?.slice(raw.lastIndexOf(',') + 1).trim();
|
|
12
12
|
return last === '' ? undefined : last;
|
|
13
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* The country the edge wrote for the client, as it wrote it. One value, never a list: an edge
|
|
16
|
+
* writes it whole, and a header a client sent beside it is the deployment's to strip.
|
|
17
|
+
*/
|
|
18
|
+
export function country(request, header) {
|
|
19
|
+
if (header === undefined)
|
|
20
|
+
return;
|
|
21
|
+
const value = request.headers[header.toLowerCase()];
|
|
22
|
+
const raw = (Array.isArray(value) ? value[value.length - 1] : value)?.trim();
|
|
23
|
+
return raw === '' ? undefined : raw;
|
|
24
|
+
}
|
|
14
25
|
//# sourceMappingURL=address.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"address.js","sourceRoot":"","sources":["../../source/HTTP/address.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,OAAwB,EAAE,MAAe;IAC/D,IAAI,MAAM,KAAK,SAAS;QAAE,OAAM;IAEhC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACrC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IAClE,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAExD,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAA;AACvC,CAAC"}
|
|
1
|
+
{"version":3,"file":"address.js","sourceRoot":"","sources":["../../source/HTTP/address.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,OAAwB,EAAE,MAAe;IAC/D,IAAI,MAAM,KAAK,SAAS;QAAE,OAAM;IAEhC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACrC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IAClE,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAExD,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAA;AACvC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,OAAwB,EAAE,MAAe;IAC/D,IAAI,MAAM,KAAK,SAAS;QAAE,OAAM;IAEhC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;IACnD,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAA;IAE5E,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAA;AACrC,CAAC"}
|
|
@@ -3,8 +3,8 @@ import type { Input, Output } from '../../io.ts';
|
|
|
3
3
|
import type { Interceptor } from '../../Interception.ts';
|
|
4
4
|
export declare class Censor implements Interceptor {
|
|
5
5
|
readonly name = "censor";
|
|
6
|
-
private
|
|
7
|
-
private values;
|
|
6
|
+
private countries;
|
|
8
7
|
mount(options: http.Options): void;
|
|
8
|
+
/** The country is the request's, as `exposition.country` reads it; a request of none is served. */
|
|
9
9
|
intercept(input: Input): Output;
|
|
10
10
|
}
|
|
@@ -1,18 +1,13 @@
|
|
|
1
1
|
import * as http from '../../HTTP/index.js';
|
|
2
2
|
export class Censor {
|
|
3
3
|
name = 'censor';
|
|
4
|
-
|
|
5
|
-
values = new Set();
|
|
4
|
+
countries = new Set();
|
|
6
5
|
mount(options) {
|
|
7
|
-
|
|
8
|
-
this.header = options.censor?.header.toLowerCase() ?? null;
|
|
9
|
-
this.values = new Set(options.censor?.values);
|
|
6
|
+
this.countries = new Set(options.censor);
|
|
10
7
|
}
|
|
8
|
+
/** The country is the request's, as `exposition.country` reads it; a request of none is served. */
|
|
11
9
|
intercept(input) {
|
|
12
|
-
if (
|
|
13
|
-
return null;
|
|
14
|
-
const value = input.request.headers[this.header];
|
|
15
|
-
if (typeof value === 'string' && this.values.has(value))
|
|
10
|
+
if (input.country !== undefined && this.countries.has(input.country))
|
|
16
11
|
throw new http.UnavailableForLegalReasons();
|
|
17
12
|
return null;
|
|
18
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Censor.js","sourceRoot":"","sources":["../../../source/directives/censor/Censor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,qBAAqB,CAAA;AAI3C,MAAM,OAAO,MAAM;IACD,IAAI,GAAG,QAAQ,CAAA;IAEvB,
|
|
1
|
+
{"version":3,"file":"Censor.js","sourceRoot":"","sources":["../../../source/directives/censor/Censor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,qBAAqB,CAAA;AAI3C,MAAM,OAAO,MAAM;IACD,IAAI,GAAG,QAAQ,CAAA;IAEvB,SAAS,GAAG,IAAI,GAAG,EAAU,CAAA;IAE9B,KAAK,CAAC,OAAqB;QAChC,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC1C,CAAC;IAED,mGAAmG;IAC5F,SAAS,CAAC,KAAY;QAC3B,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;YAClE,MAAM,IAAI,IAAI,CAAC,0BAA0B,EAAE,CAAA;QAE7C,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Mapping } from './Mapping.ts';
|
|
2
|
+
import type { Input } from '../../io.ts';
|
|
3
|
+
/**
|
|
4
|
+
* What the gateway resolved of the client — its address, its country — as `exposition.ip` and
|
|
5
|
+
* `exposition.country` read them. Set whether the request has one or not, as `null` where it has
|
|
6
|
+
* none, so a body cannot say it for the client.
|
|
7
|
+
*/
|
|
8
|
+
declare abstract class Resolved extends Mapping<string> {
|
|
9
|
+
protected constructor(property: string, directive: string);
|
|
10
|
+
properties(context: Input): Record<string, string | null>;
|
|
11
|
+
protected abstract read(context: Input): string | undefined;
|
|
12
|
+
}
|
|
13
|
+
export declare class IP extends Resolved {
|
|
14
|
+
constructor(property: string);
|
|
15
|
+
protected read(context: Input): string | undefined;
|
|
16
|
+
}
|
|
17
|
+
export declare class Country extends Resolved {
|
|
18
|
+
constructor(property: string);
|
|
19
|
+
protected read(context: Input): string | undefined;
|
|
20
|
+
}
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Mapping } from './Mapping.js';
|
|
2
|
+
/**
|
|
3
|
+
* What the gateway resolved of the client — its address, its country — as `exposition.ip` and
|
|
4
|
+
* `exposition.country` read them. Set whether the request has one or not, as `null` where it has
|
|
5
|
+
* none, so a body cannot say it for the client.
|
|
6
|
+
*/
|
|
7
|
+
class Resolved extends Mapping {
|
|
8
|
+
constructor(property, directive) {
|
|
9
|
+
if (typeof property !== 'string')
|
|
10
|
+
throw new Error(`\`${directive}\` must be a string`);
|
|
11
|
+
super(property);
|
|
12
|
+
}
|
|
13
|
+
properties(context) {
|
|
14
|
+
return { [this.value]: this.read(context) ?? null };
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export class IP extends Resolved {
|
|
18
|
+
constructor(property) {
|
|
19
|
+
super(property, 'map:ip');
|
|
20
|
+
}
|
|
21
|
+
read(context) {
|
|
22
|
+
return context.ip;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export class Country extends Resolved {
|
|
26
|
+
constructor(property) {
|
|
27
|
+
super(property, 'map:country');
|
|
28
|
+
}
|
|
29
|
+
read(context) {
|
|
30
|
+
return context.country;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=Client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../../source/directives/map/Client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAGtC;;;;GAIG;AACH,MAAe,QAAS,SAAQ,OAAe;IAC7C,YAAsB,QAAgB,EAAE,SAAiB;QACvD,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,KAAK,SAAS,qBAAqB,CAAC,CAAA;QAEtF,KAAK,CAAC,QAAQ,CAAC,CAAA;IACjB,CAAC;IAEM,UAAU,CAAC,OAAc;QAC9B,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAA;IACrD,CAAC;CAGF;AAED,MAAM,OAAO,EAAG,SAAQ,QAAQ;IAC9B,YAAmB,QAAgB;QACjC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAC3B,CAAC;IAES,IAAI,CAAC,OAAc;QAC3B,OAAO,OAAO,CAAC,EAAE,CAAA;IACnB,CAAC;CACF;AAED,MAAM,OAAO,OAAQ,SAAQ,QAAQ;IACnC,YAAmB,QAAgB;QACjC,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;IAChC,CAAC;IAES,IAAI,CAAC,OAAc;QAC3B,OAAO,OAAO,CAAC,OAAO,CAAA;IACxB,CAAC;CACF"}
|
|
@@ -10,5 +10,6 @@ export declare class Headers extends Mapping<Record<string, string>> {
|
|
|
10
10
|
* request is its own, and a caller has nowhere to put one anyway.
|
|
11
11
|
*/
|
|
12
12
|
explain(introspection: Introspection): void;
|
|
13
|
-
|
|
13
|
+
/** A header the request does not have is a property it has none of, whatever the body says. */
|
|
14
|
+
properties(context: Input): Record<string, string | undefined>;
|
|
14
15
|
}
|
|
@@ -24,6 +24,7 @@ export class Headers extends Mapping {
|
|
|
24
24
|
for (const property of Object.keys(this.value))
|
|
25
25
|
take(introspection, property);
|
|
26
26
|
}
|
|
27
|
+
/** A header the request does not have is a property it has none of, whatever the body says. */
|
|
27
28
|
properties(context) {
|
|
28
29
|
context.pipelines.response.push((response) => {
|
|
29
30
|
response.headers ??= new global.Headers();
|
|
@@ -32,8 +33,7 @@ export class Headers extends Mapping {
|
|
|
32
33
|
});
|
|
33
34
|
return Object.entries(this.value).reduce((properties, [property, header]) => {
|
|
34
35
|
const value = context.request.headers[header];
|
|
35
|
-
|
|
36
|
-
properties[property] = Array.isArray(value) ? value.join(', ') : value;
|
|
36
|
+
properties[property] = Array.isArray(value) ? value.join(', ') : value;
|
|
37
37
|
return properties;
|
|
38
38
|
}, {});
|
|
39
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Headers.js","sourceRoot":"","sources":["../../../source/directives/map/Headers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAI7C;;;GAGG;AACH,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;AAE/B,MAAM,OAAO,OAAQ,SAAQ,OAA+B;IACzC,OAAO,CAAU;IAElC,YAAmB,GAA2B;QAC5C,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;QAElF,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;QAEvE,KAAK,CAAC,GAAG,CAAC,CAAA;QAEV,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;IAC1E,CAAC;IAED;;;;OAIG;IACa,OAAO,CAAC,aAA4B;QAClD,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;IAC/E,CAAC;
|
|
1
|
+
{"version":3,"file":"Headers.js","sourceRoot":"","sources":["../../../source/directives/map/Headers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAI7C;;;GAGG;AACH,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;AAE/B,MAAM,OAAO,OAAQ,SAAQ,OAA+B;IACzC,OAAO,CAAU;IAElC,YAAmB,GAA2B;QAC5C,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;QAElF,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;QAEvE,KAAK,CAAC,GAAG,CAAC,CAAA;QAEV,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;IAC1E,CAAC;IAED;;;;OAIG;IACa,OAAO,CAAC,aAA4B;QAClD,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;IAC/E,CAAC;IAED,+FAA+F;IACxF,UAAU,CAAC,OAAc;QAC9B,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC3C,QAAQ,CAAC,OAAO,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAA;YAEzC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO;gBAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC5E,CAAC,CAAC,CAAA;QAEF,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CACtC,CAAC,UAA8C,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE;YACrE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YAE7C,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;YAEtE,OAAO,UAAU,CAAA;QACnB,CAAC,EACD,EAAE,CACH,CAAA;IACH,CAAC;CACF"}
|
|
@@ -7,6 +7,7 @@ import { Language } from './Language.js';
|
|
|
7
7
|
import { Segments } from './Segments.js';
|
|
8
8
|
import { Instance } from './Instance.js';
|
|
9
9
|
import { Authority } from './Authority.js';
|
|
10
|
+
import { Country, IP } from './Client.js';
|
|
10
11
|
import { BufferMapping } from './Buffer.js';
|
|
11
12
|
import { StreamMapping } from './Stream.js';
|
|
12
13
|
import { Claims } from './Claims.js';
|
|
@@ -39,17 +40,26 @@ export class Map {
|
|
|
39
40
|
}
|
|
40
41
|
if (!fills)
|
|
41
42
|
return null;
|
|
43
|
+
// a property a mapping has no value for is taken out of the body, rather than left as the
|
|
44
|
+
// caller said it
|
|
42
45
|
context.pipelines.body.push((body) => {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
const input = body === undefined || body === null || typeof body !== 'object'
|
|
47
|
+
? {}
|
|
48
|
+
: body;
|
|
49
|
+
for (const [property, value] of Object.entries(properties))
|
|
50
|
+
if (value === undefined)
|
|
51
|
+
delete input[property];
|
|
52
|
+
else
|
|
53
|
+
input[property] = value;
|
|
54
|
+
return input;
|
|
47
55
|
});
|
|
48
56
|
return null;
|
|
49
57
|
}
|
|
50
58
|
}
|
|
51
59
|
const mappings = {
|
|
52
60
|
authority: Authority,
|
|
61
|
+
ip: IP,
|
|
62
|
+
country: Country,
|
|
53
63
|
buffer: BufferMapping,
|
|
54
64
|
stream: StreamMapping,
|
|
55
65
|
headers: Headers,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Map.js","sourceRoot":"","sources":["../../../source/directives/map/Map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAQpC,MAAM,OAAO,GAAG;IACE,IAAI,GAAG,KAAK,CAAA;IACZ,SAAS,GAAG,KAAK,CAAA;IAEzB,OAAO,CAAU;IAElB,MAAM,CAAC,IAAY,EAAE,KAAc,EAAE,OAAgB;QAC1D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QAEtB,OAAO,KAAK,CACV,IAAI,EACJ,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAC1B,CAAC,IAAQ,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAW,CAAC,EAC7C,GAAG,EAAE,CAAC,IAAI,IAAI,QAAQ,EACtB,CAAC,IAA2B,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EACnE,GAAG,EAAE;YACH,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,sBAAsB,CAAC,CAAA;QAC/D,CAAC,CACF,CAAA;IACH,CAAC;IAEM,OAAO,CAAC,UAAuB,EAAE,aAA4B;QAClE,KAAK,MAAM,SAAS,IAAI,UAAU;YAChC,IAAI,SAAS,YAAY,OAAO;gBAAE,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QAEpE,OAAO,aAAa,CAAA;IACtB,CAAC;IAEM,KAAK,CAAC,OAAO,CAClB,UAAuB,EACvB,OAAc,EACd,UAAuB;QAEvB,MAAM,UAAU,GAAG,EAAE,CAAA;QAErB,yFAAyF;QACzF,yEAAyE;QACzE,IAAI,KAAK,GAAG,KAAK,CAAA;QAEjB,KAAK,MAAM,SAAS,IAAI,UAAU;YAChC,IAAI,SAAS,YAAY,OAAO,EAAE,CAAC;gBACjC,MAAM,CAAC,MAAM,CACX,UAAU,EACV,MAAM,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAC5D,CAAA;gBAED,IAAI,CAAC,CAAC,SAAS,YAAY,QAAQ,CAAC;oBAAE,KAAK,GAAG,IAAI,CAAA;YACpD,CAAC;QAEH,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAA;QAEvB,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAa,EAAE,EAAE;YAC5C,
|
|
1
|
+
{"version":3,"file":"Map.js","sourceRoot":"","sources":["../../../source/directives/map/Map.ts"],"names":[],"mappings":"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"}
|
package/ui/dist/_app/env.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const env={}
|
|
1
|
+
export const env={PUBLIC_APPLE_CLIENT_ID:void 0,PUBLIC_GOOGLE_CLIENT_ID:void 0}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./C3gnuDhG.js";
|