@astrale-os/kernel-server 0.5.0-beta.1 → 0.5.0-beta.3

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 (95) hide show
  1. package/dist/errors/availability.d.ts +3 -3
  2. package/dist/errors/availability.d.ts.map +1 -1
  3. package/dist/errors/availability.js +4 -4
  4. package/dist/errors/availability.js.map +1 -1
  5. package/dist/errors/classify.d.ts +1 -1
  6. package/dist/errors/classify.d.ts.map +1 -1
  7. package/dist/errors/classify.js +3 -215
  8. package/dist/errors/classify.js.map +1 -1
  9. package/dist/errors/index.d.ts +1 -1
  10. package/dist/errors/index.d.ts.map +1 -1
  11. package/dist/errors/index.js +1 -1
  12. package/dist/errors/index.js.map +1 -1
  13. package/dist/index.d.ts +3 -2
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +2 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/invocation/context.d.ts +1 -1
  18. package/dist/invocation/context.d.ts.map +1 -1
  19. package/dist/invocation/context.js +2 -3
  20. package/dist/invocation/context.js.map +1 -1
  21. package/dist/invocation/identity.d.ts +10 -0
  22. package/dist/invocation/identity.d.ts.map +1 -0
  23. package/dist/invocation/identity.js +12 -0
  24. package/dist/invocation/identity.js.map +1 -0
  25. package/dist/invocation/index.d.ts +3 -1
  26. package/dist/invocation/index.d.ts.map +1 -1
  27. package/dist/invocation/index.js +2 -0
  28. package/dist/invocation/index.js.map +1 -1
  29. package/dist/invocation/publication-route.d.ts +12 -0
  30. package/dist/invocation/publication-route.d.ts.map +1 -0
  31. package/dist/invocation/publication-route.js +43 -0
  32. package/dist/invocation/publication-route.js.map +1 -0
  33. package/dist/invocation/types.d.ts +37 -8
  34. package/dist/invocation/types.d.ts.map +1 -1
  35. package/dist/issuer/exchange.d.ts +13 -0
  36. package/dist/issuer/exchange.d.ts.map +1 -0
  37. package/dist/issuer/exchange.js +135 -0
  38. package/dist/issuer/exchange.js.map +1 -0
  39. package/dist/issuer/index.d.ts +1 -0
  40. package/dist/issuer/index.d.ts.map +1 -1
  41. package/dist/issuer/routes.d.ts +3 -2
  42. package/dist/issuer/routes.d.ts.map +1 -1
  43. package/dist/issuer/routes.js +12 -3
  44. package/dist/issuer/routes.js.map +1 -1
  45. package/dist/publication/delivery/handler.d.ts +10 -0
  46. package/dist/publication/delivery/handler.d.ts.map +1 -0
  47. package/dist/{installation → publication/delivery}/handler.js +28 -27
  48. package/dist/publication/delivery/handler.js.map +1 -0
  49. package/dist/publication/delivery/index.d.ts +3 -0
  50. package/dist/publication/delivery/index.d.ts.map +1 -0
  51. package/dist/publication/delivery/index.js +2 -0
  52. package/dist/publication/delivery/index.js.map +1 -0
  53. package/dist/publication/delivery/types.d.ts +12 -0
  54. package/dist/publication/delivery/types.d.ts.map +1 -0
  55. package/dist/{installation → publication/delivery}/types.js.map +1 -1
  56. package/dist/publication/index.d.ts +1 -0
  57. package/dist/publication/index.d.ts.map +1 -1
  58. package/dist/publication/index.js +1 -0
  59. package/dist/publication/index.js.map +1 -1
  60. package/dist/routes/routes.d.ts +5 -3
  61. package/dist/routes/routes.d.ts.map +1 -1
  62. package/dist/routes/routes.js +31 -20
  63. package/dist/routes/routes.js.map +1 -1
  64. package/dist/server.d.ts.map +1 -1
  65. package/dist/server.js +53 -14
  66. package/dist/server.js.map +1 -1
  67. package/dist/transport/http/handler.d.ts +2 -0
  68. package/dist/transport/http/handler.d.ts.map +1 -1
  69. package/dist/transport/http/handler.js +45 -36
  70. package/dist/transport/http/handler.js.map +1 -1
  71. package/dist/transport/http/render.d.ts +8 -7
  72. package/dist/transport/http/render.d.ts.map +1 -1
  73. package/dist/transport/http/render.js +47 -37
  74. package/dist/transport/http/render.js.map +1 -1
  75. package/dist/transport/websocket/session.d.ts +2 -0
  76. package/dist/transport/websocket/session.d.ts.map +1 -1
  77. package/dist/transport/websocket/session.js +45 -38
  78. package/dist/transport/websocket/session.js.map +1 -1
  79. package/dist/transport/websocket/upgrade.d.ts +2 -0
  80. package/dist/transport/websocket/upgrade.d.ts.map +1 -1
  81. package/dist/transport/websocket/upgrade.js +1 -0
  82. package/dist/transport/websocket/upgrade.js.map +1 -1
  83. package/dist/types.d.ts +13 -9
  84. package/dist/types.d.ts.map +1 -1
  85. package/package.json +5 -5
  86. package/dist/installation/handler.d.ts +0 -10
  87. package/dist/installation/handler.d.ts.map +0 -1
  88. package/dist/installation/handler.js.map +0 -1
  89. package/dist/installation/index.d.ts +0 -3
  90. package/dist/installation/index.d.ts.map +0 -1
  91. package/dist/installation/index.js +0 -2
  92. package/dist/installation/index.js.map +0 -1
  93. package/dist/installation/types.d.ts +0 -12
  94. package/dist/installation/types.d.ts.map +0 -1
  95. /package/dist/{installation → publication/delivery}/types.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../invocation/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,KAAK,EACV,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACb,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,KAAK,EAAE,UAAU,IAAI,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAEzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAElE,iFAAiF;AACjF,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACvD;AAED,+EAA+E;AAC/E,MAAM,WAAW,iBAAkB,SAAQ,qBAAqB;IAC9D,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAA;IACtC,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;CAC7B;AAED,sFAAsF;AACtF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAA;IACrC,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAA;IACrC,uFAAuF;IACvF,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAA;IAC3B,+EAA+E;IAC/E,QAAQ,CAAC,WAAW,CAAC,EAAE,mBAAmB,CAAA;IAC1C,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAA;CACpC;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC/E"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../invocation/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { issuer as protocolIssuer } from '@astrale-os/kernel-protocol';
2
+ import type { CorsPolicy } from '../cors/index.js';
3
+ import type { ActiveOperations } from '../lifecycle/index.js';
4
+ import type { ServerRouter } from '../transport/index.js';
5
+ export interface Context {
6
+ readonly signal: AbortSignal;
7
+ }
8
+ export interface Provider {
9
+ exchange(request: protocolIssuer.exchange.Request, context: Context): Promise<protocolIssuer.exchange.Response>;
10
+ }
11
+ export declare function capture(input: Provider): Provider;
12
+ export declare function mount(app: ServerRouter, issuer: string, provider: Provider, cors: CorsPolicy, active: ActiveOperations, timeoutMs: number): void;
13
+ //# sourceMappingURL=exchange.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exchange.d.ts","sourceRoot":"","sources":["../../issuer/exchange.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,MAAM,IAAI,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAE9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEzD,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAC7B;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CACN,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC,OAAO,EACxC,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;CAC7C;AASD,wBAAgB,OAAO,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CASjD;AAED,wBAAgB,KAAK,CACnB,GAAG,EAAE,YAAY,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,gBAAgB,EACxB,SAAS,EAAE,MAAM,GAChB,IAAI,CA8EN"}
@@ -0,0 +1,135 @@
1
+ import { credential } from '@astrale-os/kernel-core/auth';
2
+ import { errors, issuer as protocolIssuer } from '@astrale-os/kernel-protocol';
3
+ const PROVIDER_CODES = new Set([
4
+ errors.CODES.AUTH_INVALID,
5
+ errors.CODES.AUTH_EXPIRED,
6
+ errors.CODES.BACKEND_UNAVAILABLE,
7
+ errors.CODES.DEADLINE_EXCEEDED,
8
+ ]);
9
+ export function capture(input) {
10
+ if (input === null || typeof input !== 'object' || typeof input.exchange !== 'function') {
11
+ throw new TypeError('Token-exchange provider is invalid.');
12
+ }
13
+ const exchange = input.exchange;
14
+ return Object.freeze({
15
+ exchange: (request, context) => exchange.call(input, request, context),
16
+ });
17
+ }
18
+ export function mount(app, issuer, provider, cors, active, timeoutMs) {
19
+ const path = protocolIssuer.paths(issuer).tokenExchange;
20
+ if (cors.enabled) {
21
+ app.options(path, (context) => cors.preflight(context.req.raw, { methods: ['POST'], headers: ['authorization', 'accept'] }));
22
+ }
23
+ app.all(path, async (context) => {
24
+ const request = context.req.raw;
25
+ const respond = (payload, extra) => json(payload, errors.httpStatusOf(payload.error), request, cors, extra);
26
+ let admitted;
27
+ try {
28
+ admitted = protocolIssuer.exchange.acceptHttpRequest({
29
+ method: request.method,
30
+ url: request.url,
31
+ authorization: request.headers.get('authorization'),
32
+ accept: request.headers.get('accept'),
33
+ });
34
+ }
35
+ catch (cause) {
36
+ if (cause instanceof errors.ProtocolError) {
37
+ return respond(protocolIssuer.exchange.acceptErrorResponse({ error: cause.payload }), cause.payload.code === errors.CODES.METHOD_NOT_ALLOWED ? { allow: 'POST' } : undefined);
38
+ }
39
+ throw cause;
40
+ }
41
+ if (!active.isAccepting) {
42
+ return respond(error('BACKEND_UNAVAILABLE', 'Token exchange is unavailable.'));
43
+ }
44
+ const operation = active.begin(timeoutMs, request.signal);
45
+ if (operation === undefined) {
46
+ return respond(error('LIMIT_EXCEEDED', 'Token-exchange limit exceeded.'));
47
+ }
48
+ try {
49
+ try {
50
+ await requireEmptyBody(request, operation.signal);
51
+ }
52
+ catch (cause) {
53
+ if (operation.timedOut) {
54
+ return respond(error('DEADLINE_EXCEEDED', 'Token-exchange deadline elapsed.'));
55
+ }
56
+ if (cause instanceof errors.ProtocolError) {
57
+ return respond(protocolIssuer.exchange.acceptErrorResponse({ error: cause.payload }));
58
+ }
59
+ throw cause;
60
+ }
61
+ let output;
62
+ try {
63
+ output = await provider.exchange(admitted, { signal: operation.signal });
64
+ }
65
+ catch (cause) {
66
+ if (operation.timedOut) {
67
+ return respond(error('DEADLINE_EXCEEDED', 'Token-exchange deadline elapsed.'));
68
+ }
69
+ if (cause instanceof errors.ProtocolError && PROVIDER_CODES.has(cause.payload.code)) {
70
+ return respond(protocolIssuer.exchange.acceptErrorResponse({ error: cause.payload }));
71
+ }
72
+ throw cause;
73
+ }
74
+ if (operation.timedOut) {
75
+ return respond(error('DEADLINE_EXCEEDED', 'Token-exchange deadline elapsed.'));
76
+ }
77
+ const response = protocolIssuer.exchange.acceptResponse(output);
78
+ if (credential.inspect(response.token).claims.exp !== response.expiresAt) {
79
+ throw new TypeError('Token-exchange provider returned inconsistent expiry evidence.');
80
+ }
81
+ return json(response, 200, request, cors);
82
+ }
83
+ catch {
84
+ return respond(error('INTERNAL_ERROR', 'Internal token-exchange failure.'));
85
+ }
86
+ finally {
87
+ operation.settle();
88
+ }
89
+ });
90
+ }
91
+ async function requireEmptyBody(request, signal) {
92
+ const declared = request.headers.get('content-length');
93
+ if (declared !== null && declared !== '0')
94
+ invalidRequest();
95
+ const reader = request.body?.getReader();
96
+ if (reader === undefined)
97
+ return;
98
+ const abort = () => void reader.cancel(signal.reason).catch(() => undefined);
99
+ signal.addEventListener('abort', abort, { once: true });
100
+ try {
101
+ if (signal.aborted)
102
+ throw signal.reason;
103
+ const first = await reader.read();
104
+ if (!first.done) {
105
+ await reader.cancel('token exchange requires an empty body').catch(() => undefined);
106
+ invalidRequest();
107
+ }
108
+ }
109
+ finally {
110
+ signal.removeEventListener('abort', abort);
111
+ reader.releaseLock();
112
+ }
113
+ }
114
+ function invalidRequest() {
115
+ throw new errors.ProtocolError({
116
+ code: errors.CODES.INVALID_REQUEST,
117
+ message: 'Token exchange requires an empty request body.',
118
+ });
119
+ }
120
+ function error(code, message) {
121
+ return protocolIssuer.exchange.acceptErrorResponse({
122
+ error: { code: errors.CODES[code], message },
123
+ });
124
+ }
125
+ function json(value, status, request, cors, extra) {
126
+ const headers = new Headers(protocolIssuer.exchange.responseHeaders());
127
+ for (const [name, value] of Object.entries(cors.response(request)))
128
+ headers.set(name, value);
129
+ if (extra !== undefined) {
130
+ for (const [name, value] of new Headers(extra))
131
+ headers.set(name, value);
132
+ }
133
+ return new Response(JSON.stringify(value), { status, headers });
134
+ }
135
+ //# sourceMappingURL=exchange.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exchange.js","sourceRoot":"","sources":["../../issuer/exchange.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export { admitIssuer, issuerRouteReservations, mountIssuer, type IssuerRouteReservation, } from './routes.js';
2
+ export type * as exchange from './exchange.js';
2
3
  export type { Issuer } from './types.js';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../issuer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,uBAAuB,EACvB,WAAW,EACX,KAAK,sBAAsB,GAC5B,MAAM,aAAa,CAAA;AACpB,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../issuer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,uBAAuB,EACvB,WAAW,EACX,KAAK,sBAAsB,GAC5B,MAAM,aAAa,CAAA;AACpB,YAAY,KAAK,QAAQ,MAAM,eAAe,CAAA;AAC9C,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA"}
@@ -1,13 +1,14 @@
1
1
  import type { CorsPolicy } from '../cors/index.js';
2
2
  import type { ActiveOperations } from '../lifecycle/index.js';
3
3
  import type { ServerRouter } from '../transport/index.js';
4
+ import type { Provider } from './exchange.js';
4
5
  import type { Issuer } from './types.js';
5
6
  export interface IssuerRouteReservation {
6
7
  readonly path: string;
7
8
  readonly methods: readonly string[];
8
9
  }
9
- export declare function issuerRouteReservations(input: Issuer): readonly IssuerRouteReservation[];
10
- export declare function mountIssuer(app: ServerRouter, input: Issuer, cors: CorsPolicy, active: ActiveOperations, timeoutMs: number): void;
10
+ export declare function issuerRouteReservations(input: Issuer, tokenExchange?: boolean): readonly IssuerRouteReservation[];
11
+ export declare function mountIssuer(app: ServerRouter, input: Issuer, cors: CorsPolicy, active: ActiveOperations, timeoutMs: number, tokenExchange?: Provider): void;
11
12
  /** Admit static discovery configuration before Runtime Boot performs any durable work. */
12
13
  export declare function admitIssuer(input: Issuer): Issuer;
13
14
  //# sourceMappingURL=routes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../issuer/routes.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAIxC,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CACpC;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,sBAAsB,EAAE,CAoBxF;AAED,wBAAgB,WAAW,CACzB,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,gBAAgB,EACxB,SAAS,EAAE,MAAM,GAChB,IAAI,CAoIN;AAWD,0FAA0F;AAC1F,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAyBjD"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../issuer/routes.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAKxC,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CACpC;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,MAAM,EACb,aAAa,UAAQ,GACpB,SAAS,sBAAsB,EAAE,CAyBnC;AAED,wBAAgB,WAAW,CACzB,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,gBAAgB,EACxB,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,QAAQ,GACvB,IAAI,CA0IN;AAWD,0FAA0F;AAC1F,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAyBjD"}
@@ -1,11 +1,15 @@
1
1
  import { issuer as issuerDiscovery } from '@astrale-os/kernel-protocol';
2
2
  import { IssuerKeysUnavailableError } from '../errors/index.js';
3
- export function issuerRouteReservations(input) {
3
+ import { mount } from './exchange.js';
4
+ export function issuerRouteReservations(input, tokenExchange = false) {
4
5
  const paths = issuerDiscovery.paths(input.issuer);
5
6
  const reservations = [
6
7
  Object.freeze({ path: paths.configuration, methods: Object.freeze(['GET']) }),
7
8
  Object.freeze({ path: paths.keys, methods: Object.freeze(['GET']) }),
8
9
  ];
10
+ if (tokenExchange) {
11
+ reservations.push(Object.freeze({ path: paths.tokenExchange, methods: Object.freeze(['POST']) }));
12
+ }
9
13
  if (input.loadIssuerPublicKeys !== undefined) {
10
14
  const base = new URL(input.issuer).pathname.replace(/\/+$/u, '');
11
15
  reservations.push(Object.freeze({
@@ -18,7 +22,7 @@ export function issuerRouteReservations(input) {
18
22
  }
19
23
  return Object.freeze(reservations);
20
24
  }
21
- export function mountIssuer(app, input, cors, active, timeoutMs) {
25
+ export function mountIssuer(app, input, cors, active, timeoutMs, tokenExchange) {
22
26
  const issuer = input.issuer;
23
27
  const paths = issuerDiscovery.paths(issuer);
24
28
  const headers = (request) => ({
@@ -26,7 +30,9 @@ export function mountIssuer(app, input, cors, active, timeoutMs) {
26
30
  'cache-control': 'no-cache',
27
31
  });
28
32
  const algorithm = input.signingAlgorithm ?? 'ES256';
29
- const configuration = issuerDiscovery.configuration(issuer, [algorithm]);
33
+ const configuration = issuerDiscovery.configuration(issuer, [algorithm], {
34
+ tokenExchange: tokenExchange !== undefined,
35
+ });
30
36
  app.get(paths.configuration, (context) => context.json(configuration, 200, headers(context.req.raw)));
31
37
  if (cors.enabled) {
32
38
  app.options(paths.configuration, (context) => cors.preflight(context.req.raw, { methods: ['GET'] }));
@@ -51,6 +57,9 @@ export function mountIssuer(app, input, cors, active, timeoutMs) {
51
57
  operation.settle();
52
58
  }
53
59
  });
60
+ if (tokenExchange !== undefined) {
61
+ mount(app, issuer, tokenExchange, cors, active, timeoutMs);
62
+ }
54
63
  const loadIssuerPublicKeys = input.loadIssuerPublicKeys;
55
64
  if (loadIssuerPublicKeys !== undefined) {
56
65
  const base = new URL(issuer).pathname.replace(/\/+$/, '');
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../issuer/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../issuer/routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { ActiveOperations } from '../../lifecycle/index.js';
2
+ import type { PreparedPublicationSnapshot } from '../snapshot.js';
3
+ import type { Provider } from './types.js';
4
+ export interface Limits {
5
+ readonly maximumDeliveryBytes: number;
6
+ readonly invocationTimeoutMs: number;
7
+ }
8
+ /** Serve one delivery request against the exact Publication snapshot that selected its URL. */
9
+ export declare function handleDelivery(request: Request, snapshot: PreparedPublicationSnapshot, provider: Provider | undefined, active: ActiveOperations, limits: Limits, cors: Readonly<Record<string, string>>): Promise<Response>;
10
+ //# sourceMappingURL=handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../publication/delivery/handler.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAA;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAQ1C,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;CACrC;AAED,+FAA+F;AAC/F,wBAAsB,cAAc,CAClC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,2BAA2B,EACrC,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAC9B,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACrC,OAAO,CAAC,QAAQ,CAAC,CAkGnB"}
@@ -1,18 +1,19 @@
1
- import { codecs, installation } from '@astrale-os/kernel-protocol';
2
- import { InstallationUnavailableError } from '../errors/index.js';
3
- import { RequestBodyInvalidError, RequestBodyTooLargeError } from '../errors/index.js';
4
- import { readBoundedBody } from '../transport/index.js';
5
- /** Serve one installation request against the exact Publication snapshot that selected its URL. */
6
- export async function handleInstallation(request, snapshot, provider, active, limits, cors) {
1
+ import { codecs, publication as protocolPublication } from '@astrale-os/kernel-protocol';
2
+ import { DeliveryUnavailableError } from '../../errors/index.js';
3
+ import { RequestBodyInvalidError, RequestBodyTooLargeError } from '../../errors/index.js';
4
+ import { readBoundedBody } from '../../transport/index.js';
5
+ const delivery = protocolPublication.delivery;
6
+ /** Serve one delivery request against the exact Publication snapshot that selected its URL. */
7
+ export async function handleDelivery(request, snapshot, provider, active, limits, cors) {
7
8
  if (request.method !== 'POST') {
8
- return response({ error: 'Installation requires POST.' }, 405, cors);
9
+ return response({ error: 'Delivery requires POST.' }, 405, cors);
9
10
  }
10
11
  if (provider === undefined) {
11
- return response({ error: 'Installation is unavailable.' }, 503, cors);
12
+ return response({ error: 'Delivery is unavailable.' }, 503, cors);
12
13
  }
13
- const advertised = snapshot.publication.installation;
14
+ const advertised = snapshot.publication.delivery;
14
15
  if (advertised === undefined) {
15
- return response({ error: 'Installation is unavailable.' }, 404, cors);
16
+ return response({ error: 'Delivery is unavailable.' }, 404, cors);
16
17
  }
17
18
  const operation = active.begin(limits.invocationTimeoutMs, request.signal);
18
19
  if (operation === undefined)
@@ -24,21 +25,21 @@ export async function handleInstallation(request, snapshot, provider, active, li
24
25
  return response({ error: 'Bearer authentication is required.' }, 401, cors);
25
26
  }
26
27
  if (advertised.authentication.kind === 'public' && authorization !== null) {
27
- return response({ error: 'This installation endpoint is public.' }, 400, cors);
28
+ return response({ error: 'This delivery endpoint is public.' }, 400, cors);
28
29
  }
29
30
  let body;
30
31
  try {
31
- body = await readBoundedBody(request, limits.maximumInstallationBytes, operation.signal);
32
+ body = await readBoundedBody(request, limits.maximumDeliveryBytes, operation.signal);
32
33
  }
33
34
  catch (cause) {
34
35
  if (cause instanceof RequestBodyTooLargeError) {
35
- return response({ error: 'Installation request is too large.' }, 413, cors);
36
+ return response({ error: 'Delivery request is too large.' }, 413, cors);
36
37
  }
37
38
  if (cause instanceof RequestBodyInvalidError) {
38
- return response({ error: 'Installation request is invalid.' }, 400, cors);
39
+ return response({ error: 'Delivery request is invalid.' }, 400, cors);
39
40
  }
40
41
  if (operation.signal.aborted) {
41
- return response({ error: 'Installation request was cancelled.' }, 503, cors);
42
+ return response({ error: 'Delivery request was cancelled.' }, 503, cors);
42
43
  }
43
44
  throw cause;
44
45
  }
@@ -48,17 +49,17 @@ export async function handleInstallation(request, snapshot, provider, active, li
48
49
  }
49
50
  catch (cause) {
50
51
  if (cause instanceof codecs.DecodeError) {
51
- return response({ error: 'Installation request is invalid.' }, 400, cors);
52
+ return response({ error: 'Delivery request is invalid.' }, 400, cors);
52
53
  }
53
54
  throw cause;
54
55
  }
55
56
  let input;
56
57
  try {
57
- input = installation.acceptRequest(decoded);
58
+ input = delivery.acceptRequest(decoded);
58
59
  }
59
60
  catch (cause) {
60
- if (cause instanceof installation.Error && cause.code === 'INSTALLATION_REQUEST_INVALID') {
61
- return response({ error: 'Installation request is invalid.' }, 400, cors);
61
+ if (cause instanceof delivery.Error && cause.code === 'DELIVERY_REQUEST_INVALID') {
62
+ return response({ error: 'Delivery request is invalid.' }, 400, cors);
62
63
  }
63
64
  throw cause;
64
65
  }
@@ -73,27 +74,27 @@ export async function handleInstallation(request, snapshot, provider, active, li
73
74
  });
74
75
  }
75
76
  catch (cause) {
76
- if (cause instanceof InstallationUnavailableError) {
77
- return response({ error: 'Installation provider is unavailable.' }, 503, cors);
77
+ if (cause instanceof DeliveryUnavailableError) {
78
+ return response({ error: 'Delivery provider is unavailable.' }, 503, cors);
78
79
  }
79
80
  throw cause;
80
81
  }
81
82
  let created;
82
83
  try {
83
- created = installation.accept(candidate);
84
+ created = delivery.accept(candidate);
84
85
  }
85
86
  catch (cause) {
86
- if (cause instanceof installation.Error) {
87
- return response({ error: 'Installation provider returned an invalid response.' }, 500, cors);
87
+ if (cause instanceof delivery.Error) {
88
+ return response({ error: 'Delivery provider returned an invalid response.' }, 500, cors);
88
89
  }
89
90
  throw cause;
90
91
  }
91
92
  if (created.publication.etag !== snapshot.publication.etag) {
92
- return response({ error: 'Installation provider returned a different Publication.' }, 500, cors);
93
+ return response({ error: 'Delivery provider returned a different Publication.' }, 500, cors);
93
94
  }
94
95
  const encoded = codecs.json.encode(created);
95
- if (encodedSize(encoded) > limits.maximumInstallationBytes) {
96
- return response({ error: 'Installation response exceeds its serving limit.' }, 500, cors);
96
+ if (encodedSize(encoded) > limits.maximumDeliveryBytes) {
97
+ return response({ error: 'Delivery response exceeds its serving limit.' }, 500, cors);
97
98
  }
98
99
  return new Response(encodedBody(encoded), {
99
100
  headers: { ...cors, 'content-type': 'application/json' },
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../publication/delivery/handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { handleDelivery, type Limits } from './handler.js';
2
+ export type { Context, Provider } from './types.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../publication/delivery/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1D,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { handleDelivery } from './handler.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../publication/delivery/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAe,MAAM,cAAc,CAAA"}
@@ -0,0 +1,12 @@
1
+ import type { publication } from '@astrale-os/kernel-protocol';
2
+ export interface Context {
3
+ /** Omitted for a public endpoint; otherwise the exact admitted retrieval credential. */
4
+ readonly token?: publication.delivery.Token;
5
+ readonly signal: AbortSignal;
6
+ }
7
+ /** Provider-owned retrieval, construction, and attestation signing. */
8
+ export interface Provider {
9
+ /** Throw DeliveryUnavailableError only for an expected dependency outage. */
10
+ create(request: publication.delivery.Request, context: Context): Promise<publication.delivery.Delivery>;
11
+ }
12
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../publication/delivery/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAE9D,MAAM,WAAW,OAAO;IACtB,wFAAwF;IACxF,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAA;IAC3C,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAC7B;AAED,uEAAuE;AACvE,MAAM,WAAW,QAAQ;IACvB,6EAA6E;IAC7E,MAAM,CACJ,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,OAAO,EACrC,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;CAC1C"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../installation/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../publication/delivery/types.ts"],"names":[],"mappings":""}
@@ -1,3 +1,4 @@
1
1
  export { preparePublicationSnapshot, readPreparedPublicationSnapshot, type PreparedPublicationSnapshot, } from './snapshot.js';
2
2
  export type { PublicationSnapshot, PublicationSnapshotInput, PublicationSource } from './types.js';
3
+ export * as delivery from './delivery/index.js';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../publication/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,+BAA+B,EAC/B,KAAK,2BAA2B,GACjC,MAAM,eAAe,CAAA;AACtB,YAAY,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../publication/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,+BAA+B,EAC/B,KAAK,2BAA2B,GACjC,MAAM,eAAe,CAAA;AACtB,YAAY,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAClG,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA"}
@@ -1,2 +1,3 @@
1
1
  export { preparePublicationSnapshot, readPreparedPublicationSnapshot, } from './snapshot.js';
2
+ export * as delivery from './delivery/index.js';
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../publication/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,+BAA+B,GAEhC,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../publication/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,+BAA+B,GAEhC,MAAM,eAAe,CAAA;AAEtB,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import type { CorsPolicy } from '../cors/index.js';
2
- import type { InstallationProvider } from '../installation/index.js';
2
+ import type { NextInvocationId } from '../invocation/index.js';
3
3
  import type { ActiveOperations } from '../lifecycle/index.js';
4
+ import type { Provider as DeliveryProvider } from '../publication/delivery/index.js';
4
5
  import type { PublicationSource } from '../publication/index.js';
5
6
  import { type ApplicationHost, type Handler } from '../invocation/index.js';
6
7
  import { type PreparedPublicationSnapshot } from '../publication/index.js';
@@ -9,16 +10,17 @@ export interface RouteLimits {
9
10
  readonly maximumRequestBytes: number;
10
11
  readonly maximumPublicationBytes: number;
11
12
  readonly maximumBundleBytes: number;
12
- readonly maximumInstallationBytes: number;
13
+ readonly maximumDeliveryBytes: number;
13
14
  readonly invocationTimeoutMs: number;
14
15
  }
15
16
  export interface RouteReservation {
16
17
  readonly path: string;
17
18
  readonly methods: readonly string[];
18
19
  }
19
- export declare function mountRoutes(app: ServerRouter, source: PublicationSource, installationProvider: InstallationProvider | undefined, handler: Handler, active: ActiveOperations, limits: RouteLimits, cors: CorsPolicy, hostFor: (request: Request) => ApplicationHost | undefined, reservations: readonly RouteReservation[], externalOrigin?: string): void;
20
+ export declare function mountRoutes(app: ServerRouter, source: PublicationSource, deliveryProvider: DeliveryProvider | undefined, handler: Handler, active: ActiveOperations, nextInvocation: NextInvocationId, limits: RouteLimits, cors: CorsPolicy, hostFor: (request: Request) => ApplicationHost | undefined, reservations: readonly RouteReservation[], externalIssuer?: string): void;
20
21
  export declare function currentPublicationSnapshot(source: PublicationSource, limits: Pick<RouteLimits, 'maximumPublicationBytes' | 'maximumBundleBytes'>, serving?: {
21
22
  readonly origin: string;
23
+ readonly issuer?: string;
22
24
  readonly reservations: readonly RouteReservation[];
23
25
  }): PreparedPublicationSnapshot | undefined;
24
26
  //# sourceMappingURL=routes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../routes/routes.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,kBAAkB,CAAA;AAC7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAQhE,OAAO,EAAqB,KAAK,eAAe,EAAE,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAC9F,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAA2C,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAElG,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;IACpC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAA;IACxC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;IACnC,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAA;IACzC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;CACrC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CACpC;AAED,wBAAgB,WAAW,CACzB,GAAG,EAAE,YAAY,EACjB,MAAM,EAAE,iBAAiB,EACzB,oBAAoB,EAAE,oBAAoB,GAAG,SAAS,EACtD,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,eAAe,GAAG,SAAS,EAC1D,YAAY,EAAE,SAAS,gBAAgB,EAAE,EACzC,cAAc,CAAC,EAAE,MAAM,GACtB,IAAI,CAmON;AAgED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,yBAAyB,GAAG,oBAAoB,CAAC,EAC3E,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,YAAY,EAAE,SAAS,gBAAgB,EAAE,CAAA;CACnD,GACA,2BAA2B,GAAG,SAAS,CAazC"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../routes/routes.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,kBAAkB,CAAA;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,KAAK,EAAE,QAAQ,IAAI,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAOhE,OAAO,EAAqB,KAAK,eAAe,EAAE,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAE9F,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAA2C,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAElG,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;IACpC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAA;IACxC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;IACnC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;CACrC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CACpC;AAED,wBAAgB,WAAW,CACzB,GAAG,EAAE,YAAY,EACjB,MAAM,EAAE,iBAAiB,EACzB,gBAAgB,EAAE,gBAAgB,GAAG,SAAS,EAC9C,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,gBAAgB,EACxB,cAAc,EAAE,gBAAgB,EAChC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,eAAe,GAAG,SAAS,EAC1D,YAAY,EAAE,SAAS,gBAAgB,EAAE,EACzC,cAAc,CAAC,EAAE,MAAM,GACtB,IAAI,CAoPN;AAgED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,yBAAyB,GAAG,oBAAoB,CAAC,EAC3E,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,YAAY,EAAE,SAAS,gBAAgB,EAAE,CAAA;CACnD,GACA,2BAA2B,GAAG,SAAS,CAczC"}