@toa.io/extensions.exposition 0.22.1 → 0.24.0-alpha.0

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 (306) hide show
  1. package/components/identity.basic/source/authenticate.ts +3 -2
  2. package/components/identity.basic/source/transit.ts +4 -3
  3. package/components/octets.storage/manifest.toa.yaml +26 -0
  4. package/components/octets.storage/operations/delete.js +7 -0
  5. package/components/octets.storage/operations/fetch.js +46 -0
  6. package/components/octets.storage/operations/get.js +7 -0
  7. package/components/octets.storage/operations/list.js +7 -0
  8. package/components/octets.storage/operations/permute.js +7 -0
  9. package/components/octets.storage/operations/store.js +11 -0
  10. package/cucumber.js +0 -1
  11. package/documentation/access.md +2 -3
  12. package/documentation/cache.md +42 -0
  13. package/documentation/octets.md +196 -0
  14. package/documentation/protocol.md +49 -5
  15. package/documentation/tree.md +1 -5
  16. package/features/access.feature +1 -0
  17. package/features/cache.feature +160 -0
  18. package/features/errors.feature +18 -0
  19. package/features/identity.basic.feature +2 -0
  20. package/features/octets.feature +295 -0
  21. package/features/octets.workflows.feature +114 -0
  22. package/features/routes.feature +40 -0
  23. package/features/steps/HTTP.ts +54 -6
  24. package/features/steps/Parameters.ts +5 -2
  25. package/features/steps/Workspace.ts +8 -5
  26. package/features/steps/components/octets.tester/manifest.toa.yaml +15 -0
  27. package/features/steps/components/octets.tester/operations/bar.js +12 -0
  28. package/features/steps/components/octets.tester/operations/baz.js +11 -0
  29. package/features/steps/components/octets.tester/operations/diversify.js +14 -0
  30. package/features/steps/components/octets.tester/operations/err.js +16 -0
  31. package/features/steps/components/octets.tester/operations/foo.js +7 -0
  32. package/features/steps/components/octets.tester/operations/lenna.png +0 -0
  33. package/features/steps/components/pots/manifest.toa.yaml +1 -1
  34. package/features/streams.feature +5 -1
  35. package/package.json +16 -9
  36. package/readme.md +8 -5
  37. package/schemas/octets/context.cos.yaml +1 -0
  38. package/schemas/octets/delete.cos.yaml +1 -0
  39. package/schemas/octets/fetch.cos.yaml +3 -0
  40. package/schemas/octets/list.cos.yaml +1 -0
  41. package/schemas/octets/permute.cos.yaml +1 -0
  42. package/schemas/octets/store.cos.yaml +3 -0
  43. package/source/Gateway.ts +9 -4
  44. package/source/HTTP/Server.fixtures.ts +2 -6
  45. package/source/HTTP/Server.test.ts +9 -31
  46. package/source/HTTP/Server.ts +55 -28
  47. package/source/HTTP/exceptions.ts +2 -12
  48. package/source/HTTP/formats/index.ts +7 -4
  49. package/source/HTTP/formats/json.ts +3 -0
  50. package/source/HTTP/formats/msgpack.ts +3 -0
  51. package/source/HTTP/formats/text.ts +3 -0
  52. package/source/HTTP/formats/yaml.ts +3 -0
  53. package/source/HTTP/messages.test.ts +3 -49
  54. package/source/HTTP/messages.ts +60 -35
  55. package/source/RTD/Route.ts +1 -1
  56. package/source/RTD/segment.ts +2 -1
  57. package/source/RTD/syntax/parse.ts +2 -1
  58. package/source/Remotes.ts +8 -0
  59. package/source/Tenant.ts +5 -0
  60. package/source/directives/auth/Family.ts +26 -22
  61. package/source/directives/auth/Rule.ts +1 -1
  62. package/source/directives/cache/Control.ts +59 -0
  63. package/source/directives/cache/Exact.ts +7 -0
  64. package/source/directives/cache/Family.ts +36 -0
  65. package/source/directives/cache/index.ts +3 -0
  66. package/source/directives/cache/types.ts +9 -0
  67. package/source/directives/index.ts +3 -1
  68. package/source/directives/octets/Context.ts +18 -0
  69. package/source/directives/octets/Delete.ts +32 -0
  70. package/source/directives/octets/Family.ts +68 -0
  71. package/source/directives/octets/Fetch.ts +85 -0
  72. package/source/directives/octets/List.ts +32 -0
  73. package/source/directives/octets/Permute.ts +37 -0
  74. package/source/directives/octets/Store.ts +158 -0
  75. package/source/directives/octets/index.ts +3 -0
  76. package/source/directives/octets/schemas.ts +12 -0
  77. package/source/directives/octets/types.ts +13 -0
  78. package/transpiled/Annotation.d.ts +7 -0
  79. package/transpiled/Annotation.js +3 -0
  80. package/transpiled/Annotation.js.map +1 -0
  81. package/transpiled/Branch.d.ts +7 -0
  82. package/transpiled/Branch.js +3 -0
  83. package/transpiled/Branch.js.map +1 -0
  84. package/transpiled/Composition.d.ts +14 -0
  85. package/transpiled/Composition.js +43 -0
  86. package/transpiled/Composition.js.map +1 -0
  87. package/transpiled/Context.d.ts +5 -0
  88. package/transpiled/Context.js +3 -0
  89. package/transpiled/Context.js.map +1 -0
  90. package/transpiled/Directive.d.ts +32 -0
  91. package/transpiled/Directive.js +76 -0
  92. package/transpiled/Directive.js.map +1 -0
  93. package/transpiled/Endpoint.d.ts +20 -0
  94. package/transpiled/Endpoint.js +45 -0
  95. package/transpiled/Endpoint.js.map +1 -0
  96. package/transpiled/Factory.d.ts +10 -0
  97. package/transpiled/Factory.js +66 -0
  98. package/transpiled/Factory.js.map +1 -0
  99. package/transpiled/Gateway.d.ts +19 -0
  100. package/transpiled/Gateway.js +92 -0
  101. package/transpiled/Gateway.js.map +1 -0
  102. package/transpiled/HTTP/Server.d.ts +22 -0
  103. package/transpiled/HTTP/Server.fixtures.d.ts +11 -0
  104. package/transpiled/HTTP/Server.fixtures.js +32 -0
  105. package/transpiled/HTTP/Server.fixtures.js.map +1 -0
  106. package/transpiled/HTTP/Server.js +131 -0
  107. package/transpiled/HTTP/Server.js.map +1 -0
  108. package/transpiled/HTTP/exceptions.d.ts +34 -0
  109. package/transpiled/HTTP/exceptions.js +71 -0
  110. package/transpiled/HTTP/exceptions.js.map +1 -0
  111. package/transpiled/HTTP/formats/index.d.ts +10 -0
  112. package/transpiled/HTTP/formats/index.js +38 -0
  113. package/transpiled/HTTP/formats/index.js.map +1 -0
  114. package/transpiled/HTTP/formats/json.d.ts +6 -0
  115. package/transpiled/HTTP/formats/json.js +17 -0
  116. package/transpiled/HTTP/formats/json.js.map +1 -0
  117. package/transpiled/HTTP/formats/msgpack.d.ts +6 -0
  118. package/transpiled/HTTP/formats/msgpack.js +38 -0
  119. package/transpiled/HTTP/formats/msgpack.js.map +1 -0
  120. package/transpiled/HTTP/formats/text.d.ts +6 -0
  121. package/transpiled/HTTP/formats/text.js +15 -0
  122. package/transpiled/HTTP/formats/text.js.map +1 -0
  123. package/transpiled/HTTP/formats/yaml.d.ts +6 -0
  124. package/transpiled/HTTP/formats/yaml.js +41 -0
  125. package/transpiled/HTTP/formats/yaml.js.map +1 -0
  126. package/transpiled/HTTP/index.d.ts +3 -0
  127. package/transpiled/HTTP/index.js +20 -0
  128. package/transpiled/HTTP/index.js.map +1 -0
  129. package/transpiled/HTTP/messages.d.ts +28 -0
  130. package/transpiled/HTTP/messages.js +70 -0
  131. package/transpiled/HTTP/messages.js.map +1 -0
  132. package/transpiled/Mapping.d.ts +8 -0
  133. package/transpiled/Mapping.js +38 -0
  134. package/transpiled/Mapping.js.map +1 -0
  135. package/transpiled/Query.d.ts +13 -0
  136. package/transpiled/Query.js +107 -0
  137. package/transpiled/Query.js.map +1 -0
  138. package/transpiled/RTD/Context.d.ts +11 -0
  139. package/transpiled/RTD/Context.js +3 -0
  140. package/transpiled/RTD/Context.js.map +1 -0
  141. package/transpiled/RTD/Directives.d.ts +7 -0
  142. package/transpiled/RTD/Directives.js +3 -0
  143. package/transpiled/RTD/Directives.js.map +1 -0
  144. package/transpiled/RTD/Endpoint.d.ts +9 -0
  145. package/transpiled/RTD/Endpoint.js +3 -0
  146. package/transpiled/RTD/Endpoint.js.map +1 -0
  147. package/transpiled/RTD/Match.d.ts +11 -0
  148. package/transpiled/RTD/Match.js +3 -0
  149. package/transpiled/RTD/Match.js.map +1 -0
  150. package/transpiled/RTD/Method.d.ts +9 -0
  151. package/transpiled/RTD/Method.js +16 -0
  152. package/transpiled/RTD/Method.js.map +1 -0
  153. package/transpiled/RTD/Node.d.ts +21 -0
  154. package/transpiled/RTD/Node.js +61 -0
  155. package/transpiled/RTD/Node.js.map +1 -0
  156. package/transpiled/RTD/Route.d.ts +14 -0
  157. package/transpiled/RTD/Route.js +49 -0
  158. package/transpiled/RTD/Route.js.map +1 -0
  159. package/transpiled/RTD/Tree.d.ts +14 -0
  160. package/transpiled/RTD/Tree.js +40 -0
  161. package/transpiled/RTD/Tree.js.map +1 -0
  162. package/transpiled/RTD/factory.d.ts +6 -0
  163. package/transpiled/RTD/factory.js +36 -0
  164. package/transpiled/RTD/factory.js.map +1 -0
  165. package/transpiled/RTD/index.d.ts +8 -0
  166. package/transpiled/RTD/index.js +38 -0
  167. package/transpiled/RTD/index.js.map +1 -0
  168. package/transpiled/RTD/segment.d.ts +8 -0
  169. package/transpiled/RTD/segment.js +25 -0
  170. package/transpiled/RTD/segment.js.map +1 -0
  171. package/transpiled/RTD/syntax/index.d.ts +2 -0
  172. package/transpiled/RTD/syntax/index.js +19 -0
  173. package/transpiled/RTD/syntax/index.js.map +1 -0
  174. package/transpiled/RTD/syntax/parse.d.ts +4 -0
  175. package/transpiled/RTD/syntax/parse.js +128 -0
  176. package/transpiled/RTD/syntax/parse.js.map +1 -0
  177. package/transpiled/RTD/syntax/types.d.ts +41 -0
  178. package/transpiled/RTD/syntax/types.js +5 -0
  179. package/transpiled/RTD/syntax/types.js.map +1 -0
  180. package/transpiled/Remotes.d.ts +9 -0
  181. package/transpiled/Remotes.js +25 -0
  182. package/transpiled/Remotes.js.map +1 -0
  183. package/transpiled/Tenant.d.ts +13 -0
  184. package/transpiled/Tenant.js +34 -0
  185. package/transpiled/Tenant.js.map +1 -0
  186. package/transpiled/deployment.d.ts +3 -0
  187. package/transpiled/deployment.js +67 -0
  188. package/transpiled/deployment.js.map +1 -0
  189. package/transpiled/directives/auth/Anonymous.d.ts +6 -0
  190. package/transpiled/directives/auth/Anonymous.js +17 -0
  191. package/transpiled/directives/auth/Anonymous.js.map +1 -0
  192. package/transpiled/directives/auth/Echo.d.ts +6 -0
  193. package/transpiled/directives/auth/Echo.js +13 -0
  194. package/transpiled/directives/auth/Echo.js.map +1 -0
  195. package/transpiled/directives/auth/Family.d.ts +20 -0
  196. package/transpiled/directives/auth/Family.js +118 -0
  197. package/transpiled/directives/auth/Family.js.map +1 -0
  198. package/transpiled/directives/auth/Id.d.ts +7 -0
  199. package/transpiled/directives/auth/Id.js +17 -0
  200. package/transpiled/directives/auth/Id.js.map +1 -0
  201. package/transpiled/directives/auth/Incept.d.ts +10 -0
  202. package/transpiled/directives/auth/Incept.js +58 -0
  203. package/transpiled/directives/auth/Incept.js.map +1 -0
  204. package/transpiled/directives/auth/Role.d.ts +11 -0
  205. package/transpiled/directives/auth/Role.js +44 -0
  206. package/transpiled/directives/auth/Role.js.map +1 -0
  207. package/transpiled/directives/auth/Rule.d.ts +9 -0
  208. package/transpiled/directives/auth/Rule.js +22 -0
  209. package/transpiled/directives/auth/Rule.js.map +1 -0
  210. package/transpiled/directives/auth/Scheme.d.ts +7 -0
  211. package/transpiled/directives/auth/Scheme.js +47 -0
  212. package/transpiled/directives/auth/Scheme.js.map +1 -0
  213. package/transpiled/directives/auth/index.d.ts +2 -0
  214. package/transpiled/directives/auth/index.js +7 -0
  215. package/transpiled/directives/auth/index.js.map +1 -0
  216. package/transpiled/directives/auth/schemes.d.ts +3 -0
  217. package/transpiled/directives/auth/schemes.js +9 -0
  218. package/transpiled/directives/auth/schemes.js.map +1 -0
  219. package/transpiled/directives/auth/split.d.ts +2 -0
  220. package/transpiled/directives/auth/split.js +38 -0
  221. package/transpiled/directives/auth/split.js.map +1 -0
  222. package/transpiled/directives/auth/types.d.ts +31 -0
  223. package/transpiled/directives/auth/types.js +3 -0
  224. package/transpiled/directives/auth/types.js.map +1 -0
  225. package/transpiled/directives/cache/Control.d.ts +9 -0
  226. package/transpiled/directives/cache/Control.js +42 -0
  227. package/transpiled/directives/cache/Control.js.map +1 -0
  228. package/transpiled/directives/cache/Exact.d.ts +4 -0
  229. package/transpiled/directives/cache/Exact.js +11 -0
  230. package/transpiled/directives/cache/Exact.js.map +1 -0
  231. package/transpiled/directives/cache/Family.d.ts +12 -0
  232. package/transpiled/directives/cache/Family.js +26 -0
  233. package/transpiled/directives/cache/Family.js.map +1 -0
  234. package/transpiled/directives/cache/index.d.ts +2 -0
  235. package/transpiled/directives/cache/index.js +7 -0
  236. package/transpiled/directives/cache/index.js.map +1 -0
  237. package/transpiled/directives/cache/types.d.ts +7 -0
  238. package/transpiled/directives/cache/types.js +3 -0
  239. package/transpiled/directives/cache/types.js.map +1 -0
  240. package/transpiled/directives/dev/Family.d.ts +10 -0
  241. package/transpiled/directives/dev/Family.js +27 -0
  242. package/transpiled/directives/dev/Family.js.map +1 -0
  243. package/transpiled/directives/dev/Stub.d.ts +7 -0
  244. package/transpiled/directives/dev/Stub.js +14 -0
  245. package/transpiled/directives/dev/Stub.js.map +1 -0
  246. package/transpiled/directives/dev/Throw.d.ts +7 -0
  247. package/transpiled/directives/dev/Throw.js +14 -0
  248. package/transpiled/directives/dev/Throw.js.map +1 -0
  249. package/transpiled/directives/dev/index.d.ts +2 -0
  250. package/transpiled/directives/dev/index.js +7 -0
  251. package/transpiled/directives/dev/index.js.map +1 -0
  252. package/transpiled/directives/dev/types.d.ts +4 -0
  253. package/transpiled/directives/dev/types.js +3 -0
  254. package/transpiled/directives/dev/types.js.map +1 -0
  255. package/transpiled/directives/index.d.ts +2 -0
  256. package/transpiled/directives/index.js +12 -0
  257. package/transpiled/directives/index.js.map +1 -0
  258. package/transpiled/directives/octets/Context.d.ts +8 -0
  259. package/transpiled/directives/octets/Context.js +40 -0
  260. package/transpiled/directives/octets/Context.js.map +1 -0
  261. package/transpiled/directives/octets/Delete.d.ts +10 -0
  262. package/transpiled/directives/octets/Delete.js +47 -0
  263. package/transpiled/directives/octets/Delete.js.map +1 -0
  264. package/transpiled/directives/octets/Family.d.ts +12 -0
  265. package/transpiled/directives/octets/Family.js +49 -0
  266. package/transpiled/directives/octets/Family.js.map +1 -0
  267. package/transpiled/directives/octets/Fetch.d.ts +18 -0
  268. package/transpiled/directives/octets/Fetch.js +77 -0
  269. package/transpiled/directives/octets/Fetch.js.map +1 -0
  270. package/transpiled/directives/octets/List.d.ts +10 -0
  271. package/transpiled/directives/octets/List.js +47 -0
  272. package/transpiled/directives/octets/List.js.map +1 -0
  273. package/transpiled/directives/octets/Permute.d.ts +10 -0
  274. package/transpiled/directives/octets/Permute.js +51 -0
  275. package/transpiled/directives/octets/Permute.js.map +1 -0
  276. package/transpiled/directives/octets/Store.d.ts +33 -0
  277. package/transpiled/directives/octets/Store.js +124 -0
  278. package/transpiled/directives/octets/Store.js.map +1 -0
  279. package/transpiled/directives/octets/index.d.ts +2 -0
  280. package/transpiled/directives/octets/index.js +7 -0
  281. package/transpiled/directives/octets/index.js.map +1 -0
  282. package/transpiled/directives/octets/schemas.d.ts +6 -0
  283. package/transpiled/directives/octets/schemas.js +17 -0
  284. package/transpiled/directives/octets/schemas.js.map +1 -0
  285. package/transpiled/directives/octets/types.d.ts +9 -0
  286. package/transpiled/directives/octets/types.js +3 -0
  287. package/transpiled/directives/octets/types.js.map +1 -0
  288. package/transpiled/discovery.d.ts +1 -0
  289. package/transpiled/discovery.js +3 -0
  290. package/transpiled/discovery.js.map +1 -0
  291. package/transpiled/exceptions.d.ts +2 -0
  292. package/transpiled/exceptions.js +39 -0
  293. package/transpiled/exceptions.js.map +1 -0
  294. package/transpiled/index.d.ts +5 -0
  295. package/transpiled/index.js +12 -0
  296. package/transpiled/index.js.map +1 -0
  297. package/transpiled/manifest.d.ts +3 -0
  298. package/transpiled/manifest.js +61 -0
  299. package/transpiled/manifest.js.map +1 -0
  300. package/transpiled/root.d.ts +2 -0
  301. package/transpiled/root.js +39 -0
  302. package/transpiled/root.js.map +1 -0
  303. package/transpiled/schemas.d.ts +3 -0
  304. package/transpiled/schemas.js +14 -0
  305. package/transpiled/schemas.js.map +1 -0
  306. package/transpiled/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,33 @@
1
+ import type { Remotes } from '../../Remotes';
2
+ import type { Component } from '@toa.io/core';
3
+ import type { Output } from '../../Directive';
4
+ import type { Directive, Input } from './types';
5
+ export declare class Store implements Directive {
6
+ readonly targeted = false;
7
+ private readonly accept;
8
+ private readonly workflow;
9
+ private readonly discovery;
10
+ private readonly remotes;
11
+ private readonly components;
12
+ private storage;
13
+ constructor(options: Options | null, discovery: Promise<Component>, remotes: Remotes);
14
+ apply(storage: string, request: Input): Promise<Output>;
15
+ private reply;
16
+ private throw;
17
+ /**
18
+ * Execute workflow units sequentially, steps within a unit in parallel.
19
+ * Yield results as soon as they come.
20
+ *
21
+ * If you need to change this, it may take a while.
22
+ */
23
+ private execute;
24
+ private call;
25
+ private discover;
26
+ }
27
+ type Unit = Record<string, string>;
28
+ type Workflow = Unit[];
29
+ interface Options {
30
+ accept: string | string[];
31
+ workflow: Workflow | Unit;
32
+ }
33
+ export {};
@@ -0,0 +1,124 @@
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.Store = void 0;
27
+ const node_stream_1 = require("node:stream");
28
+ const node_path_1 = require("node:path");
29
+ const matchacho_1 = require("matchacho");
30
+ const generic_1 = require("@toa.io/generic");
31
+ const HTTP_1 = require("../../HTTP");
32
+ const schemas = __importStar(require("./schemas"));
33
+ class Store {
34
+ targeted = false;
35
+ accept;
36
+ workflow;
37
+ discovery = {};
38
+ remotes;
39
+ components = {};
40
+ storage = null;
41
+ constructor(options, discovery, remotes) {
42
+ schemas.store.validate(options);
43
+ this.accept = (0, matchacho_1.match)(options?.accept, String, (value) => value, Array, (types) => types.join(','), undefined);
44
+ this.workflow = (0, matchacho_1.match)(options?.workflow, Array, (units) => units, Object, (unit) => [unit], undefined);
45
+ this.discovery.storage = discovery;
46
+ this.remotes = remotes;
47
+ }
48
+ async apply(storage, request) {
49
+ this.storage ??= await this.discovery.storage;
50
+ const input = { storage, request, accept: this.accept };
51
+ const entry = await this.storage.invoke('store', { input });
52
+ return (0, matchacho_1.match)(entry, Error, (error) => this.throw(error), () => this.reply(request, storage, entry));
53
+ }
54
+ reply(request, storage, entry) {
55
+ const body = this.workflow === undefined
56
+ ? entry
57
+ : node_stream_1.Readable.from(this.execute(request, storage, entry));
58
+ return { body };
59
+ }
60
+ throw(error) {
61
+ throw (0, matchacho_1.match)(error.code, 'NOT_ACCEPTABLE', () => new HTTP_1.UnsupportedMediaType(), 'TYPE_MISMATCH', () => new HTTP_1.BadRequest(), error);
62
+ }
63
+ /* eslint-disable no-useless-return, max-depth */
64
+ /**
65
+ * Execute workflow units sequentially, steps within a unit in parallel.
66
+ * Yield results as soon as they come.
67
+ *
68
+ * If you need to change this, it may take a while.
69
+ */
70
+ async *execute(request, storage, entry) {
71
+ yield entry;
72
+ const path = node_path_1.posix.join(request.path, entry.id);
73
+ let interrupted = false;
74
+ for (const unit of this.workflow) {
75
+ if (interrupted)
76
+ break;
77
+ const steps = Object.keys(unit);
78
+ // unit result promises queue
79
+ const results = Array.from(steps, (generic_1.promex));
80
+ let next = 0;
81
+ // execute steps in parallel
82
+ for (const step of steps)
83
+ // these promises are indirectly awaited in the yield loop
84
+ void (async () => {
85
+ const endpoint = unit[step];
86
+ const context = { storage, path, entry };
87
+ const result = await this.call(endpoint, context);
88
+ if (interrupted)
89
+ return;
90
+ // as a result is received, resolve the next promise from the queue
91
+ const promise = results[next++];
92
+ if (result instanceof Error) {
93
+ interrupted = true;
94
+ promise.resolve({ error: { step, ...result } });
95
+ // cancel pending promises
96
+ results[next].resolve(null);
97
+ }
98
+ else
99
+ promise.resolve({ [step]: result ?? null });
100
+ })().catch((e) => results[next].reject(e));
101
+ // yield results from the queue as they come
102
+ for (const promise of results) {
103
+ const result = await promise;
104
+ if (result === null) // canceled promise
105
+ break;
106
+ else
107
+ yield result;
108
+ }
109
+ }
110
+ }
111
+ async call(endpoint, context) {
112
+ const [operation, component, namespace = 'default'] = endpoint.split('.').reverse();
113
+ const key = `${namespace}.${component}`;
114
+ this.components[key] ??= await this.discover(key, namespace, component);
115
+ return await this.components[key].invoke(operation, { input: context });
116
+ }
117
+ async discover(key, namespace, component) {
118
+ if (this.discovery[key] === undefined)
119
+ this.discovery[key] = this.remotes.discover(namespace, component);
120
+ return await this.discovery[key];
121
+ }
122
+ }
123
+ exports.Store = Store;
124
+ //# sourceMappingURL=Store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Store.js","sourceRoot":"","sources":["../../../source/directives/octets/Store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import Family from './Family';
2
+ export = Family;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ const Family_1 = __importDefault(require("./Family"));
6
+ module.exports = Family_1.default;
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/directives/octets/index.ts"],"names":[],"mappings":";;;;AAAA,sDAA6B;AAE7B,iBAAS,gBAAM,CAAA"}
@@ -0,0 +1,6 @@
1
+ export declare const context: import("@toa.io/schemas/types/schema").toa.schemas.Schema;
2
+ export declare const store: import("@toa.io/schemas/types/schema").toa.schemas.Schema;
3
+ export declare const fetch: import("@toa.io/schemas/types/schema").toa.schemas.Schema;
4
+ export declare const remove: import("@toa.io/schemas/types/schema").toa.schemas.Schema;
5
+ export declare const list: import("@toa.io/schemas/types/schema").toa.schemas.Schema;
6
+ export declare const permute: import("@toa.io/schemas/types/schema").toa.schemas.Schema;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.permute = exports.list = exports.remove = exports.fetch = exports.store = exports.context = void 0;
7
+ const node_path_1 = require("node:path");
8
+ const schemas_1 = __importDefault(require("@toa.io/schemas"));
9
+ const path = (0, node_path_1.resolve)(__dirname, '../../../schemas/octets');
10
+ const namespace = schemas_1.default.namespace(path);
11
+ exports.context = namespace.schema('context');
12
+ exports.store = namespace.schema('store');
13
+ exports.fetch = namespace.schema('fetch');
14
+ exports.remove = namespace.schema('delete');
15
+ exports.list = namespace.schema('list');
16
+ exports.permute = namespace.schema('permute');
17
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../source/directives/octets/schemas.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAmC;AACnC,8DAAqC;AAErC,MAAM,IAAI,GAAG,IAAA,mBAAO,EAAC,SAAS,EAAE,yBAAyB,CAAC,CAAA;AAC1D,MAAM,SAAS,GAAG,iBAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;AAE5B,QAAA,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;AACrC,QAAA,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;AACjC,QAAA,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;AACjC,QAAA,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;AACnC,QAAA,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AAC/B,QAAA,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA"}
@@ -0,0 +1,9 @@
1
+ import type * as directive from '../../Directive';
2
+ export interface Directive {
3
+ readonly targeted: boolean;
4
+ apply: (storage: string, input: Input) => directive.Output | Promise<directive.Output>;
5
+ }
6
+ export interface Extension {
7
+ octets?: string;
8
+ }
9
+ export type Input = directive.Input & Extension;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../source/directives/octets/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export type Label = 'ping' | 'expose';
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../source/discovery.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import { type Exception } from '@toa.io/core';
2
+ export declare function rethrow(exception: Exception): void;
@@ -0,0 +1,39 @@
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.rethrow = void 0;
27
+ const http = __importStar(require("./HTTP"));
28
+ function rethrow(exception) {
29
+ // see /runtime/core/src/exceptions.js
30
+ if ((exception.code >= 200 && exception.code < 210) || exception.code === 221)
31
+ throw new http.BadRequest(exception.message);
32
+ if (exception.code === 302)
33
+ throw new http.NotFound();
34
+ if (exception.code === 303)
35
+ throw new http.PreconditionFailed();
36
+ throw exception;
37
+ }
38
+ exports.rethrow = rethrow;
39
+ //# sourceMappingURL=exceptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../source/exceptions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,6CAA8B;AAE9B,SAAgB,OAAO,CAAE,SAAoB;IAC3C,sCAAsC;IAEtC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,GAAG,IAAI,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,SAAS,CAAC,IAAI,KAAK,GAAG;QAC3E,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IAE9C,IAAI,SAAS,CAAC,IAAI,KAAK,GAAG;QACxB,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAA;IAE3B,IAAI,SAAS,CAAC,IAAI,KAAK,GAAG;QACxB,MAAM,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAA;IAErC,MAAM,SAA6B,CAAA;AACrC,CAAC;AAbD,0BAaC"}
@@ -0,0 +1,5 @@
1
+ export { manifest } from './manifest';
2
+ export { deployment } from './deployment';
3
+ export { components } from './Composition';
4
+ export { Factory } from './Factory';
5
+ export type { Remotes } from './Remotes';
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Factory = exports.components = exports.deployment = exports.manifest = void 0;
4
+ var manifest_1 = require("./manifest");
5
+ Object.defineProperty(exports, "manifest", { enumerable: true, get: function () { return manifest_1.manifest; } });
6
+ var deployment_1 = require("./deployment");
7
+ Object.defineProperty(exports, "deployment", { enumerable: true, get: function () { return deployment_1.deployment; } });
8
+ var Composition_1 = require("./Composition");
9
+ Object.defineProperty(exports, "components", { enumerable: true, get: function () { return Composition_1.components; } });
10
+ var Factory_1 = require("./Factory");
11
+ Object.defineProperty(exports, "Factory", { enumerable: true, get: function () { return Factory_1.Factory; } });
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":";;;AAAA,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA;AACjB,2CAAyC;AAAhC,wGAAA,UAAU,OAAA;AACnB,6CAA0C;AAAjC,yGAAA,UAAU,OAAA;AACnB,qCAAmC;AAA1B,kGAAA,OAAO,OAAA"}
@@ -0,0 +1,3 @@
1
+ import { type Node } from './RTD/syntax';
2
+ import type { Manifest } from '@toa.io/norm';
3
+ export declare function manifest(declaration: object, manifest: Manifest): Node;
@@ -0,0 +1,61 @@
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.manifest = void 0;
27
+ const syntax_1 = require("./RTD/syntax");
28
+ const Directive_1 = require("./Directive");
29
+ const schemas = __importStar(require("./schemas"));
30
+ function manifest(declaration, manifest) {
31
+ declaration = wrap(manifest.name, declaration);
32
+ if (manifest.namespace !== undefined && manifest.namespace !== 'default')
33
+ declaration = wrap(manifest.namespace, declaration);
34
+ const node = (0, syntax_1.parse)(declaration, Directive_1.shortcuts);
35
+ concretize(node, manifest);
36
+ schemas.node.validate(node);
37
+ return node;
38
+ }
39
+ exports.manifest = manifest;
40
+ function wrap(segment, declaration) {
41
+ return { ['/' + segment]: { protected: true, ...declaration } };
42
+ }
43
+ function concretize(node, manifest) {
44
+ for (const route of node.routes) {
45
+ for (const method of route.node.methods)
46
+ concretizeMethod(method, manifest);
47
+ concretize(route.node, manifest);
48
+ }
49
+ }
50
+ function concretizeMethod(method, manifest) {
51
+ if (method.mapping === undefined)
52
+ return;
53
+ const operation = manifest.operations[method.mapping.endpoint];
54
+ if (operation === undefined)
55
+ throw new Error(`Operation '${method.mapping.endpoint}' not found`);
56
+ if (method.mapping.query === undefined && operation.query !== false)
57
+ method.mapping.query = {}; // schema will substitute default values
58
+ method.mapping.namespace = manifest.namespace;
59
+ method.mapping.component = manifest.name;
60
+ }
61
+ //# sourceMappingURL=manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../source/manifest.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAwE;AACxE,2CAAuC;AACvC,mDAAoC;AAGpC,SAAgB,QAAQ,CAAE,WAAmB,EAAE,QAAkB;IAC/D,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IAE9C,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS;QACtE,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;IAErD,MAAM,IAAI,GAAG,IAAA,cAAK,EAAC,WAAW,EAAE,qBAAS,CAAC,CAAA;IAE1C,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAE1B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAE3B,OAAO,IAAI,CAAA;AACb,CAAC;AAbD,4BAaC;AAED,SAAS,IAAI,CAAE,OAAe,EAAE,WAAmB;IACjD,OAAO,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,WAAW,EAAE,EAAE,CAAA;AACjE,CAAC;AAED,SAAS,UAAU,CAAE,IAAU,EAAE,QAAkB;IACjD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;QAC/B,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO;YACrC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAEpC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;KACjC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAE,MAAc,EAAE,QAAkB;IAC3D,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;QAC9B,OAAM;IAER,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAE9D,IAAI,SAAS,KAAK,SAAS;QACzB,MAAM,IAAI,KAAK,CAAC,cAAc,MAAM,CAAC,OAAO,CAAC,QAAQ,aAAa,CAAC,CAAA;IAErE,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,SAAS,CAAC,KAAK,KAAK,KAAK;QACjE,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,EAAsB,CAAA,CAAC,wCAAwC;IAExF,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAA;IAC7C,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAA;AAC1C,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { syntax } from './RTD';
2
+ export declare function resolve(): syntax.Node;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolve = void 0;
4
+ const generic_1 = require("@toa.io/generic");
5
+ const RTD_1 = require("./RTD");
6
+ function resolve() {
7
+ const value = process.env.TOA_EXPOSITION;
8
+ const root = value !== undefined ? (0, generic_1.decode)(value) : RTD_1.syntax.createNode();
9
+ (0, generic_1.merge)(root, PREDEFINED);
10
+ return root;
11
+ }
12
+ exports.resolve = resolve;
13
+ const PREDEFINED = {
14
+ routes: [
15
+ {
16
+ path: '/identity',
17
+ node: {
18
+ isolated: true,
19
+ routes: [],
20
+ methods: [
21
+ {
22
+ verb: 'GET',
23
+ directives: [
24
+ {
25
+ family: 'auth',
26
+ name: 'echo',
27
+ value: null
28
+ }
29
+ ]
30
+ }
31
+ ],
32
+ directives: []
33
+ }
34
+ }
35
+ ],
36
+ methods: [],
37
+ directives: []
38
+ };
39
+ //# sourceMappingURL=root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"root.js","sourceRoot":"","sources":["../source/root.ts"],"names":[],"mappings":";;;AAAA,6CAA+C;AAC/C,+BAA8B;AAE9B,SAAgB,OAAO;IACrB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAA;IACxC,MAAM,IAAI,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAA,gBAAM,EAAc,KAAK,CAAC,CAAC,CAAC,CAAC,YAAM,CAAC,UAAU,EAAE,CAAA;IAEnF,IAAA,eAAK,EAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IAEvB,OAAO,IAAI,CAAA;AACb,CAAC;AAPD,0BAOC;AAED,MAAM,UAAU,GAAgB;IAC9B,MAAM,EAAE;QACN;YACE,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE;gBACJ,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,EAAE;gBACV,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,KAAK;wBACX,UAAU,EAAE;4BACV;gCACE,MAAM,EAAE,MAAM;gCACd,IAAI,EAAE,MAAM;gCACZ,KAAK,EAAE,IAAI;6BACZ;yBACF;qBACF;iBACF;gBACD,UAAU,EAAE,EAAE;aACf;SACF;KACF;IACD,OAAO,EAAE,EAAE;IACX,UAAU,EAAE,EAAE;CACf,CAAA"}
@@ -0,0 +1,3 @@
1
+ export declare const querystring: import("@toa.io/schemas/types/schema").toa.schemas.Schema;
2
+ export declare const annotaion: import("@toa.io/schemas/types/schema").toa.schemas.Schema;
3
+ export declare const node: import("@toa.io/schemas/types/schema").toa.schemas.Schema;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.node = exports.annotaion = exports.querystring = void 0;
7
+ const node_path_1 = require("node:path");
8
+ const schemas_1 = __importDefault(require("@toa.io/schemas"));
9
+ const path = (0, node_path_1.resolve)(__dirname, '../schemas');
10
+ const namespace = schemas_1.default.namespace(path);
11
+ exports.querystring = namespace.schema('querystring');
12
+ exports.annotaion = namespace.schema('annotation');
13
+ exports.node = namespace.schema('node');
14
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../source/schemas.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAmC;AACnC,8DAAqC;AAErC,MAAM,IAAI,GAAG,IAAA,mBAAO,EAAC,SAAS,EAAE,YAAY,CAAC,CAAA;AAC7C,MAAM,SAAS,GAAG,iBAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;AAE5B,QAAA,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;AAC7C,QAAA,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;AAC1C,QAAA,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":"4.9.5"}