@toa.io/extensions.exposition 0.24.0-alpha.0 → 0.24.0-alpha.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.
Files changed (230) hide show
  1. package/package.json +8 -8
  2. package/transpiled/Annotation.d.ts +0 -7
  3. package/transpiled/Annotation.js +0 -3
  4. package/transpiled/Annotation.js.map +0 -1
  5. package/transpiled/Branch.d.ts +0 -7
  6. package/transpiled/Branch.js +0 -3
  7. package/transpiled/Branch.js.map +0 -1
  8. package/transpiled/Composition.d.ts +0 -14
  9. package/transpiled/Composition.js +0 -43
  10. package/transpiled/Composition.js.map +0 -1
  11. package/transpiled/Context.d.ts +0 -5
  12. package/transpiled/Context.js +0 -3
  13. package/transpiled/Context.js.map +0 -1
  14. package/transpiled/Directive.d.ts +0 -32
  15. package/transpiled/Directive.js +0 -76
  16. package/transpiled/Directive.js.map +0 -1
  17. package/transpiled/Endpoint.d.ts +0 -20
  18. package/transpiled/Endpoint.js +0 -45
  19. package/transpiled/Endpoint.js.map +0 -1
  20. package/transpiled/Factory.d.ts +0 -10
  21. package/transpiled/Factory.js +0 -66
  22. package/transpiled/Factory.js.map +0 -1
  23. package/transpiled/Gateway.d.ts +0 -19
  24. package/transpiled/Gateway.js +0 -92
  25. package/transpiled/Gateway.js.map +0 -1
  26. package/transpiled/HTTP/Server.d.ts +0 -22
  27. package/transpiled/HTTP/Server.fixtures.d.ts +0 -11
  28. package/transpiled/HTTP/Server.fixtures.js +0 -32
  29. package/transpiled/HTTP/Server.fixtures.js.map +0 -1
  30. package/transpiled/HTTP/Server.js +0 -131
  31. package/transpiled/HTTP/Server.js.map +0 -1
  32. package/transpiled/HTTP/exceptions.d.ts +0 -34
  33. package/transpiled/HTTP/exceptions.js +0 -71
  34. package/transpiled/HTTP/exceptions.js.map +0 -1
  35. package/transpiled/HTTP/formats/index.d.ts +0 -10
  36. package/transpiled/HTTP/formats/index.js +0 -38
  37. package/transpiled/HTTP/formats/index.js.map +0 -1
  38. package/transpiled/HTTP/formats/json.d.ts +0 -6
  39. package/transpiled/HTTP/formats/json.js +0 -17
  40. package/transpiled/HTTP/formats/json.js.map +0 -1
  41. package/transpiled/HTTP/formats/msgpack.d.ts +0 -6
  42. package/transpiled/HTTP/formats/msgpack.js +0 -38
  43. package/transpiled/HTTP/formats/msgpack.js.map +0 -1
  44. package/transpiled/HTTP/formats/text.d.ts +0 -6
  45. package/transpiled/HTTP/formats/text.js +0 -15
  46. package/transpiled/HTTP/formats/text.js.map +0 -1
  47. package/transpiled/HTTP/formats/yaml.d.ts +0 -6
  48. package/transpiled/HTTP/formats/yaml.js +0 -41
  49. package/transpiled/HTTP/formats/yaml.js.map +0 -1
  50. package/transpiled/HTTP/index.d.ts +0 -3
  51. package/transpiled/HTTP/index.js +0 -20
  52. package/transpiled/HTTP/index.js.map +0 -1
  53. package/transpiled/HTTP/messages.d.ts +0 -28
  54. package/transpiled/HTTP/messages.js +0 -70
  55. package/transpiled/HTTP/messages.js.map +0 -1
  56. package/transpiled/Mapping.d.ts +0 -8
  57. package/transpiled/Mapping.js +0 -38
  58. package/transpiled/Mapping.js.map +0 -1
  59. package/transpiled/Query.d.ts +0 -13
  60. package/transpiled/Query.js +0 -107
  61. package/transpiled/Query.js.map +0 -1
  62. package/transpiled/RTD/Context.d.ts +0 -11
  63. package/transpiled/RTD/Context.js +0 -3
  64. package/transpiled/RTD/Context.js.map +0 -1
  65. package/transpiled/RTD/Directives.d.ts +0 -7
  66. package/transpiled/RTD/Directives.js +0 -3
  67. package/transpiled/RTD/Directives.js.map +0 -1
  68. package/transpiled/RTD/Endpoint.d.ts +0 -9
  69. package/transpiled/RTD/Endpoint.js +0 -3
  70. package/transpiled/RTD/Endpoint.js.map +0 -1
  71. package/transpiled/RTD/Match.d.ts +0 -11
  72. package/transpiled/RTD/Match.js +0 -3
  73. package/transpiled/RTD/Match.js.map +0 -1
  74. package/transpiled/RTD/Method.d.ts +0 -9
  75. package/transpiled/RTD/Method.js +0 -16
  76. package/transpiled/RTD/Method.js.map +0 -1
  77. package/transpiled/RTD/Node.d.ts +0 -21
  78. package/transpiled/RTD/Node.js +0 -61
  79. package/transpiled/RTD/Node.js.map +0 -1
  80. package/transpiled/RTD/Route.d.ts +0 -14
  81. package/transpiled/RTD/Route.js +0 -49
  82. package/transpiled/RTD/Route.js.map +0 -1
  83. package/transpiled/RTD/Tree.d.ts +0 -14
  84. package/transpiled/RTD/Tree.js +0 -40
  85. package/transpiled/RTD/Tree.js.map +0 -1
  86. package/transpiled/RTD/factory.d.ts +0 -6
  87. package/transpiled/RTD/factory.js +0 -36
  88. package/transpiled/RTD/factory.js.map +0 -1
  89. package/transpiled/RTD/index.d.ts +0 -8
  90. package/transpiled/RTD/index.js +0 -38
  91. package/transpiled/RTD/index.js.map +0 -1
  92. package/transpiled/RTD/segment.d.ts +0 -8
  93. package/transpiled/RTD/segment.js +0 -25
  94. package/transpiled/RTD/segment.js.map +0 -1
  95. package/transpiled/RTD/syntax/index.d.ts +0 -2
  96. package/transpiled/RTD/syntax/index.js +0 -19
  97. package/transpiled/RTD/syntax/index.js.map +0 -1
  98. package/transpiled/RTD/syntax/parse.d.ts +0 -4
  99. package/transpiled/RTD/syntax/parse.js +0 -128
  100. package/transpiled/RTD/syntax/parse.js.map +0 -1
  101. package/transpiled/RTD/syntax/types.d.ts +0 -41
  102. package/transpiled/RTD/syntax/types.js +0 -5
  103. package/transpiled/RTD/syntax/types.js.map +0 -1
  104. package/transpiled/Remotes.d.ts +0 -9
  105. package/transpiled/Remotes.js +0 -25
  106. package/transpiled/Remotes.js.map +0 -1
  107. package/transpiled/Tenant.d.ts +0 -13
  108. package/transpiled/Tenant.js +0 -34
  109. package/transpiled/Tenant.js.map +0 -1
  110. package/transpiled/deployment.d.ts +0 -3
  111. package/transpiled/deployment.js +0 -67
  112. package/transpiled/deployment.js.map +0 -1
  113. package/transpiled/directives/auth/Anonymous.d.ts +0 -6
  114. package/transpiled/directives/auth/Anonymous.js +0 -17
  115. package/transpiled/directives/auth/Anonymous.js.map +0 -1
  116. package/transpiled/directives/auth/Echo.d.ts +0 -6
  117. package/transpiled/directives/auth/Echo.js +0 -13
  118. package/transpiled/directives/auth/Echo.js.map +0 -1
  119. package/transpiled/directives/auth/Family.d.ts +0 -20
  120. package/transpiled/directives/auth/Family.js +0 -118
  121. package/transpiled/directives/auth/Family.js.map +0 -1
  122. package/transpiled/directives/auth/Id.d.ts +0 -7
  123. package/transpiled/directives/auth/Id.js +0 -17
  124. package/transpiled/directives/auth/Id.js.map +0 -1
  125. package/transpiled/directives/auth/Incept.d.ts +0 -10
  126. package/transpiled/directives/auth/Incept.js +0 -58
  127. package/transpiled/directives/auth/Incept.js.map +0 -1
  128. package/transpiled/directives/auth/Role.d.ts +0 -11
  129. package/transpiled/directives/auth/Role.js +0 -44
  130. package/transpiled/directives/auth/Role.js.map +0 -1
  131. package/transpiled/directives/auth/Rule.d.ts +0 -9
  132. package/transpiled/directives/auth/Rule.js +0 -22
  133. package/transpiled/directives/auth/Rule.js.map +0 -1
  134. package/transpiled/directives/auth/Scheme.d.ts +0 -7
  135. package/transpiled/directives/auth/Scheme.js +0 -47
  136. package/transpiled/directives/auth/Scheme.js.map +0 -1
  137. package/transpiled/directives/auth/index.d.ts +0 -2
  138. package/transpiled/directives/auth/index.js +0 -7
  139. package/transpiled/directives/auth/index.js.map +0 -1
  140. package/transpiled/directives/auth/schemes.d.ts +0 -3
  141. package/transpiled/directives/auth/schemes.js +0 -9
  142. package/transpiled/directives/auth/schemes.js.map +0 -1
  143. package/transpiled/directives/auth/split.d.ts +0 -2
  144. package/transpiled/directives/auth/split.js +0 -38
  145. package/transpiled/directives/auth/split.js.map +0 -1
  146. package/transpiled/directives/auth/types.d.ts +0 -31
  147. package/transpiled/directives/auth/types.js +0 -3
  148. package/transpiled/directives/auth/types.js.map +0 -1
  149. package/transpiled/directives/cache/Control.d.ts +0 -9
  150. package/transpiled/directives/cache/Control.js +0 -42
  151. package/transpiled/directives/cache/Control.js.map +0 -1
  152. package/transpiled/directives/cache/Exact.d.ts +0 -4
  153. package/transpiled/directives/cache/Exact.js +0 -11
  154. package/transpiled/directives/cache/Exact.js.map +0 -1
  155. package/transpiled/directives/cache/Family.d.ts +0 -12
  156. package/transpiled/directives/cache/Family.js +0 -26
  157. package/transpiled/directives/cache/Family.js.map +0 -1
  158. package/transpiled/directives/cache/index.d.ts +0 -2
  159. package/transpiled/directives/cache/index.js +0 -7
  160. package/transpiled/directives/cache/index.js.map +0 -1
  161. package/transpiled/directives/cache/types.d.ts +0 -7
  162. package/transpiled/directives/cache/types.js +0 -3
  163. package/transpiled/directives/cache/types.js.map +0 -1
  164. package/transpiled/directives/dev/Family.d.ts +0 -10
  165. package/transpiled/directives/dev/Family.js +0 -27
  166. package/transpiled/directives/dev/Family.js.map +0 -1
  167. package/transpiled/directives/dev/Stub.d.ts +0 -7
  168. package/transpiled/directives/dev/Stub.js +0 -14
  169. package/transpiled/directives/dev/Stub.js.map +0 -1
  170. package/transpiled/directives/dev/Throw.d.ts +0 -7
  171. package/transpiled/directives/dev/Throw.js +0 -14
  172. package/transpiled/directives/dev/Throw.js.map +0 -1
  173. package/transpiled/directives/dev/index.d.ts +0 -2
  174. package/transpiled/directives/dev/index.js +0 -7
  175. package/transpiled/directives/dev/index.js.map +0 -1
  176. package/transpiled/directives/dev/types.d.ts +0 -4
  177. package/transpiled/directives/dev/types.js +0 -3
  178. package/transpiled/directives/dev/types.js.map +0 -1
  179. package/transpiled/directives/index.d.ts +0 -2
  180. package/transpiled/directives/index.js +0 -12
  181. package/transpiled/directives/index.js.map +0 -1
  182. package/transpiled/directives/octets/Context.d.ts +0 -8
  183. package/transpiled/directives/octets/Context.js +0 -40
  184. package/transpiled/directives/octets/Context.js.map +0 -1
  185. package/transpiled/directives/octets/Delete.d.ts +0 -10
  186. package/transpiled/directives/octets/Delete.js +0 -47
  187. package/transpiled/directives/octets/Delete.js.map +0 -1
  188. package/transpiled/directives/octets/Family.d.ts +0 -12
  189. package/transpiled/directives/octets/Family.js +0 -49
  190. package/transpiled/directives/octets/Family.js.map +0 -1
  191. package/transpiled/directives/octets/Fetch.d.ts +0 -18
  192. package/transpiled/directives/octets/Fetch.js +0 -77
  193. package/transpiled/directives/octets/Fetch.js.map +0 -1
  194. package/transpiled/directives/octets/List.d.ts +0 -10
  195. package/transpiled/directives/octets/List.js +0 -47
  196. package/transpiled/directives/octets/List.js.map +0 -1
  197. package/transpiled/directives/octets/Permute.d.ts +0 -10
  198. package/transpiled/directives/octets/Permute.js +0 -51
  199. package/transpiled/directives/octets/Permute.js.map +0 -1
  200. package/transpiled/directives/octets/Store.d.ts +0 -33
  201. package/transpiled/directives/octets/Store.js +0 -124
  202. package/transpiled/directives/octets/Store.js.map +0 -1
  203. package/transpiled/directives/octets/index.d.ts +0 -2
  204. package/transpiled/directives/octets/index.js +0 -7
  205. package/transpiled/directives/octets/index.js.map +0 -1
  206. package/transpiled/directives/octets/schemas.d.ts +0 -6
  207. package/transpiled/directives/octets/schemas.js +0 -17
  208. package/transpiled/directives/octets/schemas.js.map +0 -1
  209. package/transpiled/directives/octets/types.d.ts +0 -9
  210. package/transpiled/directives/octets/types.js +0 -3
  211. package/transpiled/directives/octets/types.js.map +0 -1
  212. package/transpiled/discovery.d.ts +0 -1
  213. package/transpiled/discovery.js +0 -3
  214. package/transpiled/discovery.js.map +0 -1
  215. package/transpiled/exceptions.d.ts +0 -2
  216. package/transpiled/exceptions.js +0 -39
  217. package/transpiled/exceptions.js.map +0 -1
  218. package/transpiled/index.d.ts +0 -5
  219. package/transpiled/index.js +0 -12
  220. package/transpiled/index.js.map +0 -1
  221. package/transpiled/manifest.d.ts +0 -3
  222. package/transpiled/manifest.js +0 -61
  223. package/transpiled/manifest.js.map +0 -1
  224. package/transpiled/root.d.ts +0 -2
  225. package/transpiled/root.js +0 -39
  226. package/transpiled/root.js.map +0 -1
  227. package/transpiled/schemas.d.ts +0 -3
  228. package/transpiled/schemas.js +0 -14
  229. package/transpiled/schemas.js.map +0 -1
  230. package/transpiled/tsconfig.tsbuildinfo +0 -1
@@ -1,4 +0,0 @@
1
- import { type Node } from './types';
2
- export declare function parse(input: object, shortcuts?: Shortcuts): Node;
3
- export declare function createNode(): Node;
4
- export type Shortcuts = Map<string, string>;
@@ -1,128 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.createNode = exports.parse = void 0;
27
- const schemas = __importStar(require("../../schemas"));
28
- const types_1 = require("./types");
29
- function parse(input, shortcuts) {
30
- const node = parseNode(input, shortcuts);
31
- schemas.node.validate(node);
32
- return node;
33
- }
34
- exports.parse = parse;
35
- function parseNode(input, shortcuts) {
36
- const node = createNode();
37
- for (const [key, value] of Object.entries(input)) {
38
- if (PROPERTIES.includes(key)) {
39
- node[key] = value;
40
- continue;
41
- }
42
- if (key[0] === '/') {
43
- const route = parseRoute(key, value, shortcuts);
44
- node.routes.push(route);
45
- continue;
46
- }
47
- if (types_1.verbs.has(key)) {
48
- const method = parseMethod(key, value, shortcuts);
49
- node.methods.push(method);
50
- continue;
51
- }
52
- const directive = parseDirective(key, value, shortcuts);
53
- if (directive !== null) {
54
- node.directives.push(directive);
55
- continue;
56
- }
57
- throw new Error(`RTD parse error: unknown key '${key}'.`);
58
- }
59
- return node;
60
- }
61
- function createNode() {
62
- return {
63
- routes: [],
64
- methods: [],
65
- directives: []
66
- };
67
- }
68
- exports.createNode = createNode;
69
- function parseRoute(path, value, shortcuts) {
70
- const node = parse(value, shortcuts);
71
- return createRoute(path, node);
72
- }
73
- function createRoute(path, node) {
74
- return { path, node };
75
- }
76
- function parseMethod(verb, value, shortcuts) {
77
- const mapping = typeof value === 'string' ? { endpoint: value } : value;
78
- parseEndpoint(mapping);
79
- parseQuery(mapping);
80
- const directives = parseDirectives(mapping, shortcuts);
81
- return { verb, mapping, directives };
82
- }
83
- function parseEndpoint(mapping) {
84
- if (mapping.endpoint === undefined)
85
- return;
86
- const [endpoiont, component, namespace] = mapping.endpoint.split('.').reverse();
87
- if (component !== undefined) {
88
- mapping.component = component;
89
- mapping.namespace = namespace ?? mapping.namespace ?? 'default';
90
- mapping.endpoint = endpoiont;
91
- }
92
- }
93
- function parseQuery(mapping) {
94
- const query = mapping.query;
95
- if (query === undefined || query === null)
96
- return;
97
- if (typeof query.limit === 'number')
98
- query.limit = expandRange(query.limit);
99
- if (typeof query.omit === 'number')
100
- query.omit = expandRange(query.omit);
101
- }
102
- function parseDirectives(mapping, shortcuts) {
103
- const directives = [];
104
- for (const [key, value] of Object.entries(mapping)) {
105
- const directive = parseDirective(key, value, shortcuts);
106
- if (directive === null)
107
- continue;
108
- directives.push(directive);
109
- // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
110
- delete mapping[key];
111
- }
112
- return directives;
113
- }
114
- function parseDirective(key, value, shortcuts) {
115
- if (shortcuts?.has(key) === true)
116
- key = shortcuts.get(key);
117
- const match = key.match(DIRECTIVE_RX);
118
- if (match === null)
119
- return null;
120
- const { family, name } = match.groups;
121
- return { family, name, value };
122
- }
123
- function expandRange(range) {
124
- return { value: range, range: [range, range] };
125
- }
126
- const DIRECTIVE_RX = /^(?<family>\w{1,32}):(?<name>\w{1,32})$/;
127
- const PROPERTIES = ['protected', 'isolated'];
128
- //# sourceMappingURL=parse.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../source/RTD/syntax/parse.ts"],"names":[],"mappings":"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"}
@@ -1,41 +0,0 @@
1
- export interface Node {
2
- protected?: boolean;
3
- isolated?: boolean;
4
- routes: Route[];
5
- methods: Method[];
6
- directives: Directive[];
7
- }
8
- export interface Route {
9
- path: string;
10
- node: Node;
11
- }
12
- export interface Method {
13
- verb: string;
14
- mapping?: Mapping;
15
- directives: Directive[];
16
- }
17
- export interface Directive {
18
- family: string;
19
- name: string;
20
- value: any;
21
- }
22
- export interface Mapping {
23
- namespace?: string;
24
- component?: string;
25
- endpoint: string;
26
- query?: Query;
27
- }
28
- export interface Query {
29
- id?: string;
30
- criteria?: string;
31
- sort?: string;
32
- omit: Range;
33
- limit: Range;
34
- selectors?: string[];
35
- projection?: string[];
36
- }
37
- export interface Range {
38
- value?: number;
39
- range: [number, number];
40
- }
41
- export declare const verbs: Set<string>;
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.verbs = void 0;
4
- exports.verbs = new Set(['GET', 'POST', 'PUT', 'PATCH', 'DELETE']);
5
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../source/RTD/syntax/types.ts"],"names":[],"mappings":";;;AA+Ca,QAAA,KAAK,GAAG,IAAI,GAAG,CAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAA"}
@@ -1,9 +0,0 @@
1
- import { Connector, type Component } from '@toa.io/core';
2
- import { type Bootloader } from './Factory';
3
- export declare class Remotes extends Connector {
4
- private readonly boot;
5
- private readonly remotes;
6
- constructor(boot: Bootloader);
7
- discover(namespace: string, name: string): Promise<Component>;
8
- private create;
9
- }
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Remotes = void 0;
4
- const core_1 = require("@toa.io/core");
5
- class Remotes extends core_1.Connector {
6
- boot;
7
- remotes = {};
8
- constructor(boot) {
9
- super();
10
- this.boot = boot;
11
- }
12
- async discover(namespace, name) {
13
- const locator = new core_1.Locator(name, namespace);
14
- this.remotes[locator.id] ??= this.create(locator);
15
- return await this.remotes[locator.id];
16
- }
17
- async create(locator) {
18
- const remote = await this.boot.remote(locator);
19
- this.depends(remote);
20
- await remote.connect();
21
- return remote;
22
- }
23
- }
24
- exports.Remotes = Remotes;
25
- //# sourceMappingURL=Remotes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Remotes.js","sourceRoot":"","sources":["../source/Remotes.ts"],"names":[],"mappings":";;;AAAA,uCAAiE;AAGjE,MAAa,OAAQ,SAAQ,gBAAS;IACnB,IAAI,CAAY;IAChB,OAAO,GAAuC,EAAE,CAAA;IAEjE,YAAoB,IAAgB;QAClC,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAE,SAAiB,EAAE,IAAY;QACpD,MAAM,OAAO,GAAG,IAAI,cAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;QAE5C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAEjD,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IACvC,CAAC;IAEO,KAAK,CAAC,MAAM,CAAE,OAAgB;QACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAE9C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAEpB,MAAM,MAAM,CAAC,OAAO,EAAE,CAAA;QAEtB,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AA1BD,0BA0BC"}
@@ -1,13 +0,0 @@
1
- import { Connector, type Locator, type bindings } from '@toa.io/core';
2
- import { type Label } from './discovery';
3
- import type * as RTD from './RTD/syntax';
4
- export declare class Tenant extends Connector {
5
- private readonly broadcast;
6
- private readonly branch;
7
- constructor(broadcast: Broadcast, locator: Locator, node: RTD.Node);
8
- open(): Promise<void>;
9
- dispose(): Promise<void>;
10
- private expose;
11
- }
12
- type Broadcast = bindings.Broadcast<Label>;
13
- export {};
@@ -1,34 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Tenant = void 0;
4
- const core_1 = require("@toa.io/core");
5
- class Tenant extends core_1.Connector {
6
- broadcast;
7
- branch;
8
- constructor(broadcast, locator, node) {
9
- super();
10
- this.broadcast = broadcast;
11
- this.branch = {
12
- namespace: locator.namespace,
13
- component: locator.name,
14
- isolated: locator.namespace === 'identity',
15
- node
16
- };
17
- this.depends(broadcast);
18
- }
19
- async open() {
20
- await this.expose();
21
- await this.broadcast.receive('ping', this.expose.bind(this));
22
- console.info('Exposition Tenant for ' +
23
- `'${this.branch.namespace}.${this.branch.component}' has started.`);
24
- }
25
- async dispose() {
26
- console.info('Exposition Tenant for ' +
27
- `'${this.branch.namespace}.${this.branch.component}' has been stopped.`);
28
- }
29
- async expose() {
30
- await this.broadcast.transmit('expose', this.branch);
31
- }
32
- }
33
- exports.Tenant = Tenant;
34
- //# sourceMappingURL=Tenant.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tenant.js","sourceRoot":"","sources":["../source/Tenant.ts"],"names":[],"mappings":";;;AAAA,uCAAqE;AAKrE,MAAa,MAAO,SAAQ,gBAAS;IAClB,SAAS,CAAW;IACpB,MAAM,CAAQ;IAE/B,YAAoB,SAAoB,EAAE,OAAgB,EAAE,IAAc;QACxE,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAE1B,IAAI,CAAC,MAAM,GAAG;YACZ,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,SAAS,EAAE,OAAO,CAAC,IAAI;YACvB,QAAQ,EAAE,OAAO,CAAC,SAAS,KAAK,UAAU;YAC1C,IAAI;SACL,CAAA;QAED,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACzB,CAAC;IAEe,KAAK,CAAC,IAAI;QACxB,MAAM,IAAI,CAAC,MAAM,EAAE,CAAA;QACnB,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAE5D,OAAO,CAAC,IAAI,CAAC,wBAAwB;YACnC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,gBAAgB,CAAC,CAAA;IACvE,CAAC;IAEe,KAAK,CAAC,OAAO;QAC3B,OAAO,CAAC,IAAI,CAAC,wBAAwB;YACnC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,qBAAqB,CAAC,CAAA;IAC5E,CAAC;IAEO,KAAK,CAAC,MAAM;QAClB,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IACtD,CAAC;CACF;AAnCD,wBAmCC"}
@@ -1,3 +0,0 @@
1
- import { type Dependency } from '@toa.io/operations';
2
- import { type Annotation } from './Annotation';
3
- export declare function deployment(_: unknown, annotation: Annotation | undefined): Dependency;
@@ -1,67 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.deployment = void 0;
27
- const generic_1 = require("@toa.io/generic");
28
- const schemas = __importStar(require("./schemas"));
29
- const Directive_1 = require("./Directive");
30
- const Composition_1 = require("./Composition");
31
- const syntax_1 = require("./RTD/syntax");
32
- function deployment(_, annotation) {
33
- const labels = (0, Composition_1.components)().labels;
34
- const service = {
35
- group: 'exposition',
36
- name: 'gateway',
37
- port: 8000,
38
- // eslint-disable-next-line @typescript-eslint/no-var-requires
39
- version: require('../package.json').version,
40
- variables: [],
41
- components: labels
42
- };
43
- if (annotation?.host !== undefined)
44
- service.ingress = {
45
- host: annotation.host,
46
- class: annotation.class,
47
- annotations: annotation.annotations
48
- };
49
- if (annotation?.['/'] !== undefined) {
50
- const node = { '/': annotation['/'] };
51
- const tree = (0, syntax_1.parse)(node, Directive_1.shortcuts);
52
- service.variables.push({
53
- name: 'TOA_EXPOSITION',
54
- value: (0, generic_1.encode)(tree)
55
- });
56
- }
57
- if (annotation?.debug === true)
58
- service.variables.push({
59
- name: 'TOA_EXPOSITION_DEBUG',
60
- value: '1'
61
- });
62
- if (annotation !== undefined)
63
- schemas.annotaion.validate(annotation);
64
- return { services: [service] };
65
- }
66
- exports.deployment = deployment;
67
- //# sourceMappingURL=deployment.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deployment.js","sourceRoot":"","sources":["../source/deployment.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,6CAAwC;AAExC,mDAAoC;AACpC,2CAAuC;AACvC,+CAA0C;AAC1C,yCAAoC;AAEpC,SAAgB,UAAU,CAAE,CAAU,EAAE,UAAkC;IACxE,MAAM,MAAM,GAAG,IAAA,wBAAU,GAAE,CAAC,MAAM,CAAA;IAElC,MAAM,OAAO,GAAY;QACvB,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,IAAI;QACV,8DAA8D;QAC9D,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO;QAC3C,SAAS,EAAE,EAAE;QACb,UAAU,EAAE,MAAM;KACnB,CAAA;IAED,IAAI,UAAU,EAAE,IAAI,KAAK,SAAS;QAChC,OAAO,CAAC,OAAO,GAAG;YAChB,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,WAAW,EAAE,UAAU,CAAC,WAAW;SACpC,CAAA;IAEH,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;QACnC,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAA;QACrC,MAAM,IAAI,GAAG,IAAA,cAAK,EAAC,IAAI,EAAE,qBAAS,CAAC,CAAA;QAEnC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;YACrB,IAAI,EAAE,gBAAgB;YACtB,KAAK,EAAE,IAAA,gBAAM,EAAC,IAAI,CAAC;SACpB,CAAC,CAAA;KACH;IAED,IAAI,UAAU,EAAE,KAAK,KAAK,IAAI;QAC5B,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;YACrB,IAAI,EAAE,sBAAsB;YAC5B,KAAK,EAAE,GAAG;SACX,CAAC,CAAA;IAEJ,IAAI,UAAU,KAAK,SAAS;QAC1B,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;IAExC,OAAO,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAA;AAChC,CAAC;AAxCD,gCAwCC"}
@@ -1,6 +0,0 @@
1
- import { type Directive, type Input } from './types';
2
- export declare class Anonymous implements Directive {
3
- private readonly allow;
4
- constructor(allow: boolean);
5
- authorize(_: any, input: Input): boolean;
6
- }
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Anonymous = void 0;
4
- class Anonymous {
5
- allow;
6
- constructor(allow) {
7
- this.allow = allow;
8
- }
9
- authorize(_, input) {
10
- if ('authorization' in input.headers)
11
- return false;
12
- else
13
- return this.allow;
14
- }
15
- }
16
- exports.Anonymous = Anonymous;
17
- //# sourceMappingURL=Anonymous.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Anonymous.js","sourceRoot":"","sources":["../../../source/directives/auth/Anonymous.ts"],"names":[],"mappings":";;;AAEA,MAAa,SAAS;IACH,KAAK,CAAS;IAE/B,YAAoB,KAAc;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAEM,SAAS,CAAE,CAAM,EAAE,KAAY;QACpC,IAAI,eAAe,IAAI,KAAK,CAAC,OAAO;YAAE,OAAO,KAAK,CAAA;;YAC7C,OAAO,IAAI,CAAC,KAAK,CAAA;IACxB,CAAC;CACF;AAXD,8BAWC"}
@@ -1,6 +0,0 @@
1
- import { type OutgoingMessage } from '../../HTTP';
2
- import { type Directive, type Identity } from './types';
3
- export declare class Echo implements Directive {
4
- authorize(identity: Identity | null): boolean;
5
- reply(identity: Identity | null): OutgoingMessage;
6
- }
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Echo = void 0;
4
- class Echo {
5
- authorize(identity) {
6
- return identity !== null;
7
- }
8
- reply(identity) {
9
- return { body: identity };
10
- }
11
- }
12
- exports.Echo = Echo;
13
- //# sourceMappingURL=Echo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Echo.js","sourceRoot":"","sources":["../../../source/directives/auth/Echo.ts"],"names":[],"mappings":";;;AAGA,MAAa,IAAI;IACR,SAAS,CAAE,QAAyB;QACzC,OAAO,QAAQ,KAAK,IAAI,CAAA;IAC1B,CAAC;IAEM,KAAK,CAAE,QAAyB;QACrC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;IAC3B,CAAC;CACF;AARD,oBAQC"}
@@ -1,20 +0,0 @@
1
- import * as http from '../../HTTP';
2
- import type { Remotes } from '../../Remotes';
3
- import type { Family, Output } from '../../Directive';
4
- import type { Parameter } from '../../RTD';
5
- import type { Directive, Extension, Input } from './types';
6
- declare class Authorization implements Family<Directive, Extension> {
7
- readonly name: string;
8
- readonly mandatory: boolean;
9
- private readonly schemes;
10
- private readonly discovery;
11
- private tokens;
12
- private bans;
13
- create(name: string, value: any, remotes: Remotes): Directive;
14
- preflight(directives: Directive[], input: Input, parameters: Parameter[]): Promise<Output>;
15
- settle(directives: Directive[], request: Input, response: http.OutgoingMessage): Promise<void>;
16
- private resolve;
17
- private banned;
18
- }
19
- declare const _default: Authorization;
20
- export = _default;
@@ -1,118 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- const matchacho_1 = require("matchacho");
26
- const http = __importStar(require("../../HTTP"));
27
- const Anonymous_1 = require("./Anonymous");
28
- const Id_1 = require("./Id");
29
- const Role_1 = require("./Role");
30
- const Rule_1 = require("./Rule");
31
- const Incept_1 = require("./Incept");
32
- const Echo_1 = require("./Echo");
33
- const split_1 = require("./split");
34
- const Scheme_1 = require("./Scheme");
35
- const schemes_1 = require("./schemes");
36
- class Authorization {
37
- name = 'auth';
38
- mandatory = true;
39
- schemes = {};
40
- discovery = {};
41
- tokens = null;
42
- bans = null;
43
- create(name, value, remotes) {
44
- const Class = CLASSES[name];
45
- if (Class === undefined)
46
- throw new Error(`Directive '${name}' is not provided by the '${this.name}' family.`);
47
- for (const name of REMOTES)
48
- this.discovery[name] ??= remotes.discover('identity', name);
49
- return (0, matchacho_1.match)(Class, Role_1.Role, () => new Role_1.Role(value, this.discovery.roles), Rule_1.Rule, () => new Rule_1.Rule(value, this.create.bind(this)), Incept_1.Incept, () => new Incept_1.Incept(value, this.discovery), () => new Class(value));
50
- }
51
- async preflight(directives, input, parameters) {
52
- const identity = await this.resolve(input.headers.authorization);
53
- input.identity = identity;
54
- for (const directive of directives) {
55
- const allow = await directive.authorize(identity, input, parameters);
56
- if (allow)
57
- return directive.reply?.(identity) ?? null;
58
- }
59
- if (identity === null)
60
- throw new http.Unauthorized();
61
- else
62
- throw new http.Forbidden();
63
- }
64
- async settle(directives, request, response) {
65
- for (const directive of directives)
66
- await directive.settle?.(request, response);
67
- const identity = request.identity;
68
- if (identity === null)
69
- return;
70
- if (identity.scheme === schemes_1.PRIMARY && !identity.refresh)
71
- return;
72
- // Role directive may have already set the value
73
- if (identity.roles === undefined)
74
- await Role_1.Role.set(identity, this.discovery.roles);
75
- this.tokens ??= await this.discovery.tokens;
76
- const token = await this.tokens.invoke('encrypt', { input: { identity } });
77
- const authorization = `Token ${token}`;
78
- if (response.headers === undefined)
79
- response.headers = new Headers();
80
- response.headers.set('authorization', authorization);
81
- }
82
- async resolve(authorization) {
83
- if (authorization === undefined)
84
- return null;
85
- const [scheme, credentials] = (0, split_1.split)(authorization);
86
- const provider = schemes_1.PROVIDERS[scheme];
87
- if (!(provider in this.discovery))
88
- throw new http.Unauthorized(`Unknown authentication scheme '${scheme}'.`);
89
- this.schemes[scheme] ??= await this.discovery[provider];
90
- const result = await this.schemes[scheme]
91
- .invoke('authenticate', { input: credentials });
92
- if (result instanceof Error)
93
- return null;
94
- const identity = result.identity;
95
- if (scheme !== schemes_1.PRIMARY && await this.banned(identity))
96
- throw new http.Unauthorized();
97
- identity.scheme = scheme;
98
- identity.refresh = result.refresh;
99
- return identity;
100
- }
101
- async banned(identity) {
102
- this.bans ??= await this.discovery.bans;
103
- const ban = await this.bans.invoke('observe', { query: { id: identity.id } });
104
- return ban.banned;
105
- }
106
- }
107
- const CLASSES = {
108
- anonymous: Anonymous_1.Anonymous,
109
- id: Id_1.Id,
110
- role: Role_1.Role,
111
- rule: Rule_1.Rule,
112
- incept: Incept_1.Incept,
113
- scheme: Scheme_1.Scheme,
114
- echo: Echo_1.Echo
115
- };
116
- const REMOTES = ['basic', 'tokens', 'roles', 'bans'];
117
- module.exports = new Authorization();
118
- //# sourceMappingURL=Family.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Family.js","sourceRoot":"","sources":["../../../source/directives/auth/Family.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import { type Parameter } from '../../RTD';
2
- import { type Directive, type Identity } from './types';
3
- export declare class Id implements Directive {
4
- private readonly parameter;
5
- constructor(parameter: string);
6
- authorize(identity: Identity | null, _: any, parameters: Parameter[]): boolean;
7
- }
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Id = void 0;
4
- class Id {
5
- parameter;
6
- constructor(parameter) {
7
- this.parameter = parameter;
8
- }
9
- authorize(identity, _, parameters) {
10
- if (identity === null)
11
- return false;
12
- const parameter = parameters.find((parameter) => parameter.name === this.parameter);
13
- return parameter?.value === identity.id;
14
- }
15
- }
16
- exports.Id = Id;
17
- //# sourceMappingURL=Id.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Id.js","sourceRoot":"","sources":["../../../source/directives/auth/Id.ts"],"names":[],"mappings":";;;AAGA,MAAa,EAAE;IACI,SAAS,CAAQ;IAElC,YAAoB,SAAiB;QACnC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAEM,SAAS,CAAE,QAAyB,EAAE,CAAM,EAAE,UAAuB;QAC1E,IAAI,QAAQ,KAAK,IAAI;YACnB,OAAO,KAAK,CAAA;QAEd,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,CAAA;QAEnF,OAAO,SAAS,EAAE,KAAK,KAAK,QAAQ,CAAC,EAAE,CAAA;IACzC,CAAC;CACF;AAfD,gBAeC"}
@@ -1,10 +0,0 @@
1
- import * as http from '../../HTTP';
2
- import { type Directive, type Discovery, type Identity, type Input } from './types';
3
- export declare class Incept implements Directive {
4
- private readonly property;
5
- private readonly discovery;
6
- private readonly schemes;
7
- constructor(property: string, discovery: Discovery);
8
- authorize(identity: Identity | null, input: Input): boolean;
9
- settle(request: Input, response: http.OutgoingMessage): Promise<void>;
10
- }