@toa.io/extensions.exposition 1.0.0-alpha.302 → 1.0.0-alpha.304
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/identity.basic/types/toa.d.ts +1 -1
- package/components/identity.clients/types/toa.d.ts +1 -1
- package/components/identity.federation/types/toa.d.ts +1 -1
- package/components/identity.grants/manifest.toa.yaml +3 -1
- package/components/identity.grants/types/toa.d.ts +1 -1
- package/components/identity.otp/types/toa.d.ts +1 -1
- package/components/identity.passkeys/types/toa.d.ts +1 -1
- package/components/identity.tokens/operations/decrypt.js +106 -60
- package/components/identity.tokens/operations/lib/jose.js +5 -2
- package/components/identity.tokens/source/decrypt.ts +136 -65
- package/components/identity.tokens/source/lib/jose.js +5 -1
- package/components/identity.tokens/types/index.d.ts +1 -0
- package/components/identity.tokens/types/toa.d.ts +1 -1
- package/package.json +7 -7
- package/transpiled/Directive.d.ts +11 -4
- package/transpiled/Directive.js +50 -14
- package/transpiled/Directive.js.map +1 -1
- package/transpiled/Endpoint.js +13 -11
- package/transpiled/Endpoint.js.map +1 -1
- package/transpiled/Gateway.js +4 -0
- package/transpiled/Gateway.js.map +1 -1
- package/transpiled/HTTP/Context.d.ts +17 -0
- package/transpiled/HTTP/Context.js +17 -0
- package/transpiled/HTTP/Context.js.map +1 -1
- package/transpiled/HTTP/Server.js +12 -6
- package/transpiled/HTTP/Server.js.map +1 -1
- package/transpiled/HTTP/messages.d.ts +9 -7
- package/transpiled/HTTP/messages.js +15 -2
- package/transpiled/HTTP/messages.js.map +1 -1
- package/transpiled/HTTP/types.d.ts +1 -0
- package/transpiled/MCP/tools.js +66 -31
- package/transpiled/MCP/tools.js.map +1 -1
- package/transpiled/Query.js +2 -0
- package/transpiled/Query.js.map +1 -1
- package/transpiled/RTD/Directives.d.ts +26 -8
- package/transpiled/RTD/Match.d.ts +6 -0
- package/transpiled/RTD/Method.d.ts +12 -0
- package/transpiled/RTD/Method.js +21 -1
- package/transpiled/RTD/Method.js.map +1 -1
- package/transpiled/RTD/Node.d.ts +3 -1
- package/transpiled/RTD/Node.js +5 -3
- package/transpiled/RTD/Node.js.map +1 -1
- package/transpiled/RTD/Route.d.ts +1 -1
- package/transpiled/RTD/Route.js +8 -5
- package/transpiled/RTD/Route.js.map +1 -1
- package/transpiled/RTD/Tree.d.ts +12 -0
- package/transpiled/RTD/Tree.js +19 -1
- package/transpiled/RTD/Tree.js.map +1 -1
- package/transpiled/RTD/segment.d.ts +2 -0
- package/transpiled/RTD/segment.js +15 -0
- package/transpiled/RTD/segment.js.map +1 -1
- package/transpiled/directives/auth/Authorization.d.ts +9 -7
- package/transpiled/directives/auth/Authorization.js +17 -16
- package/transpiled/directives/auth/Authorization.js.map +1 -1
- package/transpiled/directives/cache/Cache.d.ts +11 -0
- package/transpiled/directives/cache/Cache.js +23 -24
- package/transpiled/directives/cache/Cache.js.map +1 -1
- package/transpiled/directives/cache/etag.d.ts +10 -7
- package/transpiled/directives/cache/etag.js +13 -10
- package/transpiled/directives/cache/etag.js.map +1 -1
- package/transpiled/directives/cors/CORS.js +1 -1
- package/transpiled/directives/cors/CORS.js.map +1 -1
- package/transpiled/directives/flow/Compose.js +2 -0
- package/transpiled/directives/flow/Compose.js.map +1 -1
- package/transpiled/directives/help/Family.d.ts +1 -2
- package/transpiled/directives/help/Family.js +1 -1
- package/transpiled/directives/help/Family.js.map +1 -1
- package/transpiled/directives/io/IO.d.ts +1 -1
- package/transpiled/directives/io/IO.js +1 -1
- package/transpiled/directives/io/IO.js.map +1 -1
- package/transpiled/directives/io/Output.d.ts +5 -3
- package/transpiled/directives/io/Output.js +11 -35
- package/transpiled/directives/io/Output.js.map +1 -1
- package/transpiled/directives/io/Status.d.ts +1 -1
- package/transpiled/directives/io/Status.js +4 -2
- package/transpiled/directives/io/Status.js.map +1 -1
- package/transpiled/directives/map/Map.d.ts +1 -1
- package/transpiled/directives/map/Map.js +1 -1
- package/transpiled/directives/map/Map.js.map +1 -1
- package/transpiled/directives/mcp/MCP.d.ts +1 -2
- package/transpiled/directives/mcp/MCP.js +1 -1
- package/transpiled/directives/mcp/MCP.js.map +1 -1
- package/transpiled/directives/octets/Octets.d.ts +1 -1
- package/transpiled/directives/octets/Octets.js +1 -1
- package/transpiled/directives/octets/Octets.js.map +1 -1
- package/transpiled/measurements.d.ts +22 -0
- package/transpiled/measurements.js +37 -0
- package/transpiled/measurements.js.map +1 -0
- package/transpiled/service.js +22 -2
- package/transpiled/service.js.map +1 -1
- package/ui/dist/_app/immutable/chunks/{Wl536IQX.js → BI21DxGX.js} +1 -1
- package/ui/dist/_app/immutable/chunks/{CyQvDdUS.js → B_XBOx9b.js} +1 -1
- package/ui/dist/_app/immutable/chunks/{BNmwbB_m.js → D9-CL3SX.js} +2 -2
- package/ui/dist/_app/immutable/chunks/{D8WVrjO4.js → DfeVAkjY.js} +1 -1
- package/ui/dist/_app/immutable/entry/{app.BnIDHdVY.js → app.BG2uapp5.js} +2 -2
- package/ui/dist/_app/immutable/entry/start.Bnttjc6A.js +1 -0
- package/ui/dist/_app/immutable/nodes/{0.DV2orh1u.js → 0.CAhVptPP.js} +1 -1
- package/ui/dist/_app/immutable/nodes/{1.Bgonurdo.js → 1.CymYf6vY.js} +1 -1
- package/ui/dist/_app/immutable/nodes/{2.C0ZHj2rR.js → 2.DtwEKRzb.js} +1 -1
- package/ui/dist/_app/immutable/nodes/{3.DOixCoug.js → 3.BgfGYNeS.js} +1 -1
- package/ui/dist/_app/immutable/nodes/{4.fXuZ_LUX.js → 4.B7W24tJ1.js} +1 -1
- package/ui/dist/_app/immutable/nodes/{5.BN65yDZR.js → 5.FCfJU5jO.js} +1 -1
- package/ui/dist/_app/immutable/nodes/{6.gez_DiIA.js → 6.B9oqMcPQ.js} +1 -1
- package/ui/dist/_app/version.json +1 -1
- package/ui/dist/index.html +10 -10
- package/ui/dist/_app/immutable/entry/start.BhKXzsOH.js +0 -1
|
@@ -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,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,
|
|
1
|
+
{"version":3,"file":"Map.js","sourceRoot":"","sources":["../../../source/directives/map/Map.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Tool } from './Tool.ts';
|
|
2
2
|
import type { DirectiveFamily } from '../../RTD/index.ts';
|
|
3
|
-
import type { Context } from '../../HTTP/index.ts';
|
|
4
3
|
import type { Introspection } from '../../Introspection.ts';
|
|
5
4
|
/** The name the family is declared under, and what `MCP` asks a method for. */
|
|
6
5
|
export declare const FAMILY = "mcp";
|
|
@@ -13,6 +12,6 @@ export declare class MCP implements DirectiveFamily<Tool> {
|
|
|
13
12
|
* Whether this method is published to a model, which is what the route declares. Whether
|
|
14
13
|
* one is served at all is the annotation's, and a route says nothing of that.
|
|
15
14
|
*/
|
|
16
|
-
explain(directives: Tool[],
|
|
15
|
+
explain(directives: Tool[], introspection: Introspection): Introspection;
|
|
17
16
|
create(name: string, value: unknown, _: unknown, route: string): Tool;
|
|
18
17
|
}
|
|
@@ -12,7 +12,7 @@ export class MCP {
|
|
|
12
12
|
* Whether this method is published to a model, which is what the route declares. Whether
|
|
13
13
|
* one is served at all is the annotation's, and a route says nothing of that.
|
|
14
14
|
*/
|
|
15
|
-
explain(directives,
|
|
15
|
+
explain(directives, introspection) {
|
|
16
16
|
return MCP.published(directives) ? { ...introspection, mcp: true } : introspection;
|
|
17
17
|
}
|
|
18
18
|
// eslint-disable-next-line max-params
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MCP.js","sourceRoot":"","sources":["../../../source/directives/mcp/MCP.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"MCP.js","sourceRoot":"","sources":["../../../source/directives/mcp/MCP.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAIhC,+EAA+E;AAC/E,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,CAAA;AAE3B,MAAM,OAAO,GAAG;IACE,IAAI,GAAG,MAAM,CAAA;IACb,SAAS,GAAG,KAAK,CAAA;IAEjC,oFAAoF;IAC7E,MAAM,CAAC,SAAS,CAAC,UAA8B;QACpD,OAAO,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,KAAK,CAAA;IAC5C,CAAC;IAED;;;OAGG;IACI,OAAO,CAAC,UAAkB,EAAE,aAA4B;QAC7D,OAAO,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,aAAa,CAAA;IACpF,CAAC;IAED,sCAAsC;IAC/B,MAAM,CAAC,IAAY,EAAE,KAAc,EAAE,CAAU,EAAE,KAAa;QACnE,IAAI,IAAI,KAAK,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAA;QAEtE,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAC/B,CAAC;CACF"}
|
|
@@ -10,6 +10,6 @@ export declare class Octets implements DirectiveFamily<Directive> {
|
|
|
10
10
|
private discovery;
|
|
11
11
|
create(name: string, value: any, remotes: Remotes): Directive;
|
|
12
12
|
/** What the request takes, which only sending a file says anything about. */
|
|
13
|
-
explain(directives: Directive[],
|
|
13
|
+
explain(directives: Directive[], introspection: Introspection): Introspection;
|
|
14
14
|
precall(directives: Directive[], input: Input, parameters: Parameter[]): Promise<Output>;
|
|
15
15
|
}
|
|
@@ -16,7 +16,7 @@ export class Octets {
|
|
|
16
16
|
return new Class(value, this.discovery, remotes);
|
|
17
17
|
}
|
|
18
18
|
/** What the request takes, which only sending a file says anything about. */
|
|
19
|
-
explain(directives,
|
|
19
|
+
explain(directives, introspection) {
|
|
20
20
|
for (const directive of directives)
|
|
21
21
|
directive.describe?.(introspection);
|
|
22
22
|
return introspection;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Octets.js","sourceRoot":"","sources":["../../../source/directives/octets/Octets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AASjD,MAAM,OAAO,MAAM;IACD,IAAI,GAAW,QAAQ,CAAA;IACvB,SAAS,GAAY,KAAK,CAAA;IAElC,SAAS,GAAG,IAAqC,CAAA;IAElD,MAAM,CAAC,IAAY,EAAE,KAAU,EAAE,OAAgB;QACtD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;QAE9B,IAAI,KAAK,KAAK,SAAS;YACrB,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,sBAAsB,CAAC,CAAA;QAElE,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;QAE3D,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAClD,CAAC;IAED,6EAA6E;IACtE,OAAO,CAAC,UAAuB,EAAE,
|
|
1
|
+
{"version":3,"file":"Octets.js","sourceRoot":"","sources":["../../../source/directives/octets/Octets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AASjD,MAAM,OAAO,MAAM;IACD,IAAI,GAAW,QAAQ,CAAA;IACvB,SAAS,GAAY,KAAK,CAAA;IAElC,SAAS,GAAG,IAAqC,CAAA;IAElD,MAAM,CAAC,IAAY,EAAE,KAAU,EAAE,OAAgB;QACtD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;QAE9B,IAAI,KAAK,KAAK,SAAS;YACrB,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,sBAAsB,CAAC,CAAA;QAElE,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;QAE3D,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAClD,CAAC;IAED,6EAA6E;IACtE,OAAO,CAAC,UAAuB,EAAE,aAA4B;QAClE,KAAK,MAAM,SAAS,IAAI,UAAU;YAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,CAAA;QAEvE,OAAO,aAAa,CAAA;IACtB,CAAC;IAEM,KAAK,CAAC,OAAO,CAClB,UAAuB,EACvB,KAAY,EACZ,UAAuB;QAEvB,IAAI,OAAO,GAAmB,IAAI,CAAA;QAClC,IAAI,MAAM,GAAqB,IAAI,CAAA;QAEnC,KAAK,MAAM,SAAS,IAAI,UAAU;YAChC,IAAI,SAAS,YAAY,OAAO;gBAAE,OAAO,KAAK,SAAS,CAAA;iBAClD,IAAI,MAAM,KAAK,IAAI;gBAAE,MAAM,GAAG,SAAS,CAAA;;gBACvC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;QAEpD,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,IAAI,CAAA;QAEhC,4CAA4C;QAC5C,IAAI,OAAO,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAEtE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAA;QAExE,IAAI,QAAQ,KAAK,MAAM,CAAC,QAAQ;YAC9B,MAAM,IAAI,QAAQ,CAChB,qBAAqB,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,EAAE,CAClE,CAAA;QAEH,uCAAuC;QACvC,OAAO,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAA;IAC/D,CAAC;CACF;AAED,MAAM,UAAU,GAAgC;IAC9C,OAAO,EAAE,OAAO;IAChB,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,IAAI,EAAE,GAAG;IACT,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,iBAAiB;CAC5B,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Measure } from 'openspan';
|
|
2
|
+
/** What a request that matched no route is labelled, so a flood of them is one series. */
|
|
3
|
+
export declare const NONE = "none";
|
|
4
|
+
/**
|
|
5
|
+
* The labels are the request's own object, filled in when the route is known — which is after the
|
|
6
|
+
* span opens and before it completes, since routing happens inside it.
|
|
7
|
+
*/
|
|
8
|
+
export declare function request(method?: string): Measure & {
|
|
9
|
+
labels: Labels;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* The status is written onto the request's own labels rather than into a copy of them: the
|
|
13
|
+
* object is the request's and dies with it, and the histogram that carries it reads the two
|
|
14
|
+
* labels it declared and nothing else.
|
|
15
|
+
*/
|
|
16
|
+
export declare function answered(labels: Labels, status: number): void;
|
|
17
|
+
export interface Labels extends Record<string, unknown> {
|
|
18
|
+
method: string;
|
|
19
|
+
route: string;
|
|
20
|
+
/** written when the reply is answered, which is after the histogram has read the rest */
|
|
21
|
+
status?: number;
|
|
22
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { registry } from 'openspan';
|
|
2
|
+
/**
|
|
3
|
+
* What the gateway measures.
|
|
4
|
+
*
|
|
5
|
+
* `status` is on the counter and not on the histogram: routes by methods by statuses is the widest
|
|
6
|
+
* label product in a deployment, and a histogram multiplies whatever it is given by its buckets.
|
|
7
|
+
* Latency per route and per method is read; latency per status almost never is, while the count
|
|
8
|
+
* per status is read constantly.
|
|
9
|
+
*/
|
|
10
|
+
const meters = registry();
|
|
11
|
+
/** A request answered over the network, so the ladder is a web request's. */
|
|
12
|
+
const DURATIONS = [0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10];
|
|
13
|
+
const duration = meters.histogram('toa.exposition.request.duration', { buckets: DURATIONS, unit: 's' }, { method: null, route: null });
|
|
14
|
+
const responses = meters.counter('toa.exposition.responses', {
|
|
15
|
+
method: null,
|
|
16
|
+
route: null,
|
|
17
|
+
status: null
|
|
18
|
+
});
|
|
19
|
+
/** What a request that matched no route is labelled, so a flood of them is one series. */
|
|
20
|
+
export const NONE = 'none';
|
|
21
|
+
/**
|
|
22
|
+
* The labels are the request's own object, filled in when the route is known — which is after the
|
|
23
|
+
* span opens and before it completes, since routing happens inside it.
|
|
24
|
+
*/
|
|
25
|
+
export function request(method = 'GET') {
|
|
26
|
+
return { histogram: duration, labels: { method, route: NONE } };
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The status is written onto the request's own labels rather than into a copy of them: the
|
|
30
|
+
* object is the request's and dies with it, and the histogram that carries it reads the two
|
|
31
|
+
* labels it declared and nothing else.
|
|
32
|
+
*/
|
|
33
|
+
export function answered(labels, status) {
|
|
34
|
+
labels.status = status;
|
|
35
|
+
responses.add(1, labels);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=measurements.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"measurements.js","sourceRoot":"","sources":["../source/measurements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAGnC;;;;;;;GAOG;AACH,MAAM,MAAM,GAAG,QAAQ,EAAE,CAAA;AAEzB,6EAA6E;AAC7E,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;AAE3E,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAC/B,iCAAiC,EACjC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,EACjC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAC9B,CAAA;AAED,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,0BAA0B,EAAE;IAC3D,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;CACb,CAAC,CAAA;AAEF,0FAA0F;AAC1F,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAA;AAE1B;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,MAAM,GAAG,KAAK;IACpC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAA;AACjE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAc,EAAE,MAAc;IACrD,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;IAEtB,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;AAC1B,CAAC"}
|
package/transpiled/service.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { console, traces } from 'openspan';
|
|
1
|
+
import { console, metrics, traces } from 'openspan';
|
|
2
2
|
import { Gateway } from './Gateway.js';
|
|
3
3
|
import { Remotes } from './Remotes.js';
|
|
4
4
|
import { Tree } from './RTD/index.js';
|
|
@@ -45,6 +45,7 @@ export async function service(host) {
|
|
|
45
45
|
}
|
|
46
46
|
const LOGS_PREFIX = 'TOA_TELEMETRY_LOGS';
|
|
47
47
|
const TRACES_ENV = 'TOA_TELEMETRY_TRACES';
|
|
48
|
+
const METRICS_ENV = 'TOA_TELEMETRY_METRICS';
|
|
48
49
|
function configureLogs() {
|
|
49
50
|
const globEnv = environment.get(LOGS_PREFIX);
|
|
50
51
|
const level = environment.get('TOA_DEV') === '1' ? 'trace' : 'info';
|
|
@@ -57,9 +58,28 @@ function configureLogs() {
|
|
|
57
58
|
if (tracing.exporters?.otlp !== undefined)
|
|
58
59
|
tracing.exporters.otlp.service ??= environment.get('TOA_CONTEXT');
|
|
59
60
|
traces(tracing);
|
|
61
|
+
metrics(measurements());
|
|
60
62
|
}
|
|
61
63
|
/**
|
|
62
|
-
*
|
|
64
|
+
* The gateway measures what it serves, and what tells two products apart in one backend is the
|
|
65
|
+
* resource rather than the metric name.
|
|
66
|
+
*/
|
|
67
|
+
function measurements() {
|
|
68
|
+
const env = environment.get(METRICS_ENV);
|
|
69
|
+
if (env === undefined)
|
|
70
|
+
return undefined;
|
|
71
|
+
const options = JSON.parse(env);
|
|
72
|
+
options.prefix ??= 'toa';
|
|
73
|
+
if (options.exporters?.otlp !== undefined) {
|
|
74
|
+
const resource = (options.exporters.otlp.resource ??= {});
|
|
75
|
+
resource['service.name'] ??= 'exposition';
|
|
76
|
+
resource['service.namespace'] ??= environment.get('TOA_CONTEXT');
|
|
77
|
+
resource['deployment.environment.name'] ??= environment.get('TOA_ENV');
|
|
78
|
+
}
|
|
79
|
+
return options;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Tracing and metrics are off unless configured. The console exporter is a local development
|
|
63
83
|
* mechanism, so it is turned on for `toa dev` and for a boot trace the CLI has already
|
|
64
84
|
* asked for (`runtime/boot/src/span.js`), and nowhere else — a deployment that wants
|
|
65
85
|
* traces annotates `telemetry.traces.exporters`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../source/service.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../source/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./BVDJTrf4.js";import{a as e}from"./
|
|
1
|
+
import"./BVDJTrf4.js";import{a as e}from"./DfeVAkjY.js";var t={get data(){return e.data},get error(){return e.error},get form(){return e.form},get params(){return e.params},get route(){return e.route},get state(){return e.state},get status(){return e.status},get url(){return e.url}};export{t};
|