@aauth/proxy 0.5.0 → 2.0.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.
- package/dist/access-mode.d.ts +21 -0
- package/dist/access-mode.d.ts.map +1 -0
- package/dist/access-mode.js +64 -0
- package/dist/access-mode.js.map +1 -0
- package/dist/agent.d.ts +85 -6
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +408 -129
- package/dist/agent.js.map +1 -1
- package/dist/identity-local.d.ts.map +1 -1
- package/dist/identity-local.js +12 -2
- package/dist/identity-local.js.map +1 -1
- package/dist/identity.d.ts +1 -0
- package/dist/identity.d.ts.map +1 -1
- package/dist/index.d.ts +7 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/jwt.d.ts +25 -0
- package/dist/jwt.d.ts.map +1 -0
- package/dist/jwt.js +77 -0
- package/dist/jwt.js.map +1 -0
- package/dist/resource.d.ts +8 -3
- package/dist/resource.d.ts.map +1 -1
- package/dist/resource.js +30 -10
- package/dist/resource.js.map +1 -1
- package/dist/store.d.ts +34 -2
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +0 -0
- package/dist/store.js.map +1 -1
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +62 -16
- package/dist/tools.js.map +1 -1
- package/dist/vocab/annotations.d.ts +30 -0
- package/dist/vocab/annotations.d.ts.map +1 -0
- package/dist/vocab/annotations.js +70 -0
- package/dist/vocab/annotations.js.map +1 -0
- package/dist/vocab/index.d.ts +1 -1
- package/dist/vocab/index.d.ts.map +1 -1
- package/dist/vocab/index.js +11 -5
- package/dist/vocab/index.js.map +1 -1
- package/dist/vocab/openapi.d.ts +4 -0
- package/dist/vocab/openapi.d.ts.map +1 -1
- package/dist/vocab/openapi.js +13 -0
- package/dist/vocab/openapi.js.map +1 -1
- package/dist/vocab/types.d.ts +18 -2
- package/dist/vocab/types.d.ts.map +1 -1
- package/dist/vocab/types.js +5 -2
- package/dist/vocab/types.js.map +1 -1
- package/package.json +2 -2
- package/dist/vocab/openapi-gateway.d.ts +0 -14
- package/dist/vocab/openapi-gateway.d.ts.map +0 -1
- package/dist/vocab/openapi-gateway.js +0 -70
- package/dist/vocab/openapi-gateway.js.map +0 -1
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
// OpenAPI Gateway vocabulary adapter (urn:aauth:vocabulary:openapi-gateway,
|
|
2
|
-
// AAuth R3 §OpenAPI Gateway Vocabulary). For resources that front MULTIPLE
|
|
3
|
-
// OpenAPI-described services behind a single resource identifier — e.g. a
|
|
4
|
-
// Google APIs proxy exposing gmail/calendar/people/… as separate specs.
|
|
5
|
-
//
|
|
6
|
-
// Discovery: the r3_vocabularies value is not a single URL but an object
|
|
7
|
-
// mapping stable service labels → per-service OpenAPI spec URLs. Operation
|
|
8
|
-
// identity is the pair (service, operationId); the agent-facing composite id
|
|
9
|
-
// is `service:operationId` (unambiguous — ':' appears in no operationId).
|
|
10
|
-
// R3 operation entries are { service, operationId } objects.
|
|
11
|
-
import { OpenAPIAdapter } from './openapi.js';
|
|
12
|
-
// Reuses the plain adapter's per-doc indexing/search/planning; this class only
|
|
13
|
-
// adds the service dimension.
|
|
14
|
-
const openapi = new OpenAPIAdapter();
|
|
15
|
-
function splitId(compositeId) {
|
|
16
|
-
const i = compositeId.indexOf(':');
|
|
17
|
-
if (i === -1)
|
|
18
|
-
throw new Error(`openapi-gateway: operation id must be service:operationId, got ${compositeId}`);
|
|
19
|
-
return { service: compositeId.slice(0, i), operationId: compositeId.slice(i + 1) };
|
|
20
|
-
}
|
|
21
|
-
export class OpenAPIGatewayAdapter {
|
|
22
|
-
vocabUri = 'urn:aauth:vocabulary:openapi-gateway';
|
|
23
|
-
async load(source) {
|
|
24
|
-
if (typeof source === 'string' || source === null) {
|
|
25
|
-
throw new Error('openapi-gateway: discovery value must be an object mapping service labels to OpenAPI URLs');
|
|
26
|
-
}
|
|
27
|
-
const services = {};
|
|
28
|
-
await Promise.all(Object.entries(source).map(async ([label, url]) => {
|
|
29
|
-
services[label] = await openapi.load(url);
|
|
30
|
-
}));
|
|
31
|
-
return { services };
|
|
32
|
-
}
|
|
33
|
-
listOperations(doc, query) {
|
|
34
|
-
const out = [];
|
|
35
|
-
for (const [label, serviceDoc] of Object.entries(doc.services)) {
|
|
36
|
-
for (const op of openapi.listOperations(serviceDoc, query)) {
|
|
37
|
-
out.push({ ...op, opId: `${label}:${op.opId}`, tags: [label, ...(op.tags ?? [])] });
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
return out;
|
|
41
|
-
}
|
|
42
|
-
getOperations(doc, opIds) {
|
|
43
|
-
const out = [];
|
|
44
|
-
for (const compositeId of opIds) {
|
|
45
|
-
const { service, operationId } = splitId(compositeId);
|
|
46
|
-
const serviceDoc = doc.services[service];
|
|
47
|
-
if (!serviceDoc)
|
|
48
|
-
continue;
|
|
49
|
-
for (const detail of openapi.getOperations(serviceDoc, [operationId])) {
|
|
50
|
-
out.push({ ...detail, opId: compositeId, tags: [service, ...(detail.tags ?? [])] });
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
return out;
|
|
54
|
-
}
|
|
55
|
-
buildInvocation(doc, compositeId, args) {
|
|
56
|
-
const { service, operationId } = splitId(compositeId);
|
|
57
|
-
const serviceDoc = doc.services[service];
|
|
58
|
-
if (!serviceDoc)
|
|
59
|
-
throw new Error(`openapi-gateway: unknown service ${service}`);
|
|
60
|
-
// Per-service docs publish agent-facing paths relative to the resource
|
|
61
|
-
// origin (the gateway's generated specs label-prefix their paths), so the
|
|
62
|
-
// plain adapter's plan is already correct.
|
|
63
|
-
return openapi.buildInvocation(serviceDoc, operationId, args);
|
|
64
|
-
}
|
|
65
|
-
// R3 operation entries carry the pair, not the composite string.
|
|
66
|
-
formatOperationEntry(compositeId) {
|
|
67
|
-
return splitId(compositeId);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
//# sourceMappingURL=openapi-gateway.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openapi-gateway.js","sourceRoot":"","sources":["../../src/vocab/openapi-gateway.ts"],"names":[],"mappings":"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"}
|