@hashgraphonline/standards-sdk 0.1.146-chore-jsr-improvements.canary.6bc8731.90 → 0.1.146-chore-jsr-improvements.canary.01d3174.92
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/cjs/jsr-entry.d.ts +30 -10
- package/dist/cjs/jsr-entry.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/client/base-client.d.ts +14 -1
- package/dist/cjs/services/registry-broker/client/base-client.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/client/search-helpers.d.ts +16 -0
- package/dist/cjs/services/registry-broker/client/search-helpers.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/search.d.ts +5 -18
- package/dist/cjs/services/registry-broker/client/search.d.ts.map +1 -1
- package/dist/cjs/standards-sdk.cjs +1 -1
- package/dist/cjs/standards-sdk.cjs.map +1 -1
- package/dist/es/jsr-entry.d.ts +30 -10
- package/dist/es/jsr-entry.d.ts.map +1 -1
- package/dist/es/services/registry-broker/client/base-client.d.ts +14 -1
- package/dist/es/services/registry-broker/client/base-client.d.ts.map +1 -1
- package/dist/es/services/registry-broker/client/search-helpers.d.ts +16 -0
- package/dist/es/services/registry-broker/client/search-helpers.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/search.d.ts +5 -18
- package/dist/es/services/registry-broker/client/search.d.ts.map +1 -1
- package/dist/es/standards-sdk.es.js +9 -10
- package/dist/es/standards-sdk.es.js.map +1 -1
- package/dist/es/standards-sdk.es101.js +1 -1
- package/dist/es/standards-sdk.es103.js +1 -1
- package/dist/es/standards-sdk.es109.js +2 -3
- package/dist/es/standards-sdk.es109.js.map +1 -1
- package/dist/es/standards-sdk.es11.js +1 -1
- package/dist/es/standards-sdk.es110.js +5 -5
- package/dist/es/standards-sdk.es12.js +1 -1
- package/dist/es/standards-sdk.es120.js +1 -1
- package/dist/es/standards-sdk.es121.js +1 -1
- package/dist/es/standards-sdk.es122.js +5 -5
- package/dist/es/standards-sdk.es124.js +1 -1
- package/dist/es/standards-sdk.es125.js +1 -1
- package/dist/es/standards-sdk.es127.js +3 -3
- package/dist/es/standards-sdk.es128.js +61 -164
- package/dist/es/standards-sdk.es128.js.map +1 -1
- package/dist/es/standards-sdk.es129.js +102 -85
- package/dist/es/standards-sdk.es129.js.map +1 -1
- package/dist/es/standards-sdk.es130.js +222 -96
- package/dist/es/standards-sdk.es130.js.map +1 -1
- package/dist/es/standards-sdk.es131.js +153 -220
- package/dist/es/standards-sdk.es131.js.map +1 -1
- package/dist/es/standards-sdk.es132.js +104 -162
- package/dist/es/standards-sdk.es132.js.map +1 -1
- package/dist/es/standards-sdk.es133.js +296 -92
- package/dist/es/standards-sdk.es133.js.map +1 -1
- package/dist/es/standards-sdk.es134.js +587 -288
- package/dist/es/standards-sdk.es134.js.map +1 -1
- package/dist/es/standards-sdk.es135.js +14 -461
- package/dist/es/standards-sdk.es135.js.map +1 -1
- package/dist/es/standards-sdk.es136.js +79 -15
- package/dist/es/standards-sdk.es136.js.map +1 -1
- package/dist/es/standards-sdk.es137.js +77 -71
- package/dist/es/standards-sdk.es137.js.map +1 -1
- package/dist/es/standards-sdk.es138.js +53 -80
- package/dist/es/standards-sdk.es138.js.map +1 -1
- package/dist/es/standards-sdk.es139.js +152 -53
- package/dist/es/standards-sdk.es139.js.map +1 -1
- package/dist/es/standards-sdk.es140.js +7 -159
- package/dist/es/standards-sdk.es140.js.map +1 -1
- package/dist/es/standards-sdk.es141.js +86 -7
- package/dist/es/standards-sdk.es141.js.map +1 -1
- package/dist/es/standards-sdk.es142.js +43 -64
- package/dist/es/standards-sdk.es142.js.map +1 -1
- package/dist/es/standards-sdk.es143.js +30 -65
- package/dist/es/standards-sdk.es143.js.map +1 -1
- package/dist/es/standards-sdk.es144.js +34 -30
- package/dist/es/standards-sdk.es144.js.map +1 -1
- package/dist/es/standards-sdk.es145.js +28 -34
- package/dist/es/standards-sdk.es145.js.map +1 -1
- package/dist/es/standards-sdk.es146.js +138 -28
- package/dist/es/standards-sdk.es146.js.map +1 -1
- package/dist/es/standards-sdk.es147.js +34 -12281
- package/dist/es/standards-sdk.es147.js.map +1 -1
- package/dist/es/standards-sdk.es148.js +17 -959
- package/dist/es/standards-sdk.es148.js.map +1 -1
- package/dist/es/standards-sdk.es149.js +12256 -105
- package/dist/es/standards-sdk.es149.js.map +1 -1
- package/dist/es/standards-sdk.es150.js +959 -42
- package/dist/es/standards-sdk.es150.js.map +1 -1
- package/dist/es/standards-sdk.es151.js +54 -15
- package/dist/es/standards-sdk.es151.js.map +1 -1
- package/dist/es/standards-sdk.es152.js +76 -48
- package/dist/es/standards-sdk.es152.js.map +1 -1
- package/dist/es/standards-sdk.es153.js +160 -72
- package/dist/es/standards-sdk.es153.js.map +1 -1
- package/dist/es/standards-sdk.es154.js +289 -139
- package/dist/es/standards-sdk.es154.js.map +1 -1
- package/dist/es/standards-sdk.es155.js +298 -274
- package/dist/es/standards-sdk.es155.js.map +1 -1
- package/dist/es/standards-sdk.es156.js +369 -262
- package/dist/es/standards-sdk.es156.js.map +1 -1
- package/dist/es/standards-sdk.es157.js +194 -316
- package/dist/es/standards-sdk.es157.js.map +1 -1
- package/dist/es/standards-sdk.es158.js +64 -319
- package/dist/es/standards-sdk.es158.js.map +1 -1
- package/dist/es/standards-sdk.es159.js +231 -68
- package/dist/es/standards-sdk.es159.js.map +1 -1
- package/dist/es/standards-sdk.es16.js +2 -3
- package/dist/es/standards-sdk.es16.js.map +1 -1
- package/dist/es/standards-sdk.es160.js +223 -218
- package/dist/es/standards-sdk.es160.js.map +1 -1
- package/dist/es/standards-sdk.es18.js +5 -6
- package/dist/es/standards-sdk.es18.js.map +1 -1
- package/dist/es/standards-sdk.es19.js +3 -4
- package/dist/es/standards-sdk.es19.js.map +1 -1
- package/dist/es/standards-sdk.es22.js +1 -1
- package/dist/es/standards-sdk.es27.js +5 -6
- package/dist/es/standards-sdk.es27.js.map +1 -1
- package/dist/es/standards-sdk.es30.js +1 -1
- package/dist/es/standards-sdk.es31.js +1 -1
- package/dist/es/standards-sdk.es35.js +3 -4
- package/dist/es/standards-sdk.es35.js.map +1 -1
- package/dist/es/standards-sdk.es36.js +3 -3
- package/dist/es/standards-sdk.es37.js +1 -1
- package/dist/es/standards-sdk.es4.js +1 -1
- package/dist/es/standards-sdk.es53.js +1 -1
- package/dist/es/standards-sdk.es56.js +1 -1
- package/dist/es/standards-sdk.es58.js +1 -1
- package/dist/es/standards-sdk.es59.js +1 -1
- package/dist/es/standards-sdk.es60.js +3 -4
- package/dist/es/standards-sdk.es60.js.map +1 -1
- package/dist/es/standards-sdk.es62.js +1 -1
- package/dist/es/standards-sdk.es64.js +1 -1
- package/dist/es/standards-sdk.es65.js +2 -2
- package/dist/es/standards-sdk.es68.js +2 -2
- package/dist/es/standards-sdk.es69.js +1 -1
- package/dist/es/standards-sdk.es7.js +1 -1
- package/dist/es/standards-sdk.es71.js +1 -1
- package/dist/es/standards-sdk.es76.js +1 -1
- package/dist/es/standards-sdk.es77.js +2 -3
- package/dist/es/standards-sdk.es77.js.map +1 -1
- package/dist/es/standards-sdk.es78.js +1 -1
- package/dist/es/standards-sdk.es81.js +1 -1
- package/dist/es/standards-sdk.es83.js +1 -1
- package/dist/es/standards-sdk.es87.js +3 -3
- package/dist/es/standards-sdk.es91.js +1 -1
- package/dist/es/standards-sdk.es92.js +1 -1
- package/dist/es/standards-sdk.es97.js +1 -1
- package/dist/es/standards-sdk.es99.js +1 -1
- package/package.json +1 -1
- package/dist/es/standards-sdk.es161.js +0 -247
- package/dist/es/standards-sdk.es161.js.map +0 -1
|
@@ -1,210 +1,107 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { RegistryBrokerClient } from "./standards-sdk.
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const params = {
|
|
7
|
-
q: request.query
|
|
8
|
-
};
|
|
9
|
-
let effectiveLimit;
|
|
10
|
-
if (typeof request.limit === "number" && Number.isFinite(request.limit)) {
|
|
11
|
-
effectiveLimit = request.limit;
|
|
12
|
-
params.limit = request.limit;
|
|
13
|
-
}
|
|
14
|
-
if (typeof request.offset === "number" && Number.isFinite(request.offset) && request.offset > 0) {
|
|
15
|
-
const limit = effectiveLimit && effectiveLimit > 0 ? effectiveLimit : 20;
|
|
16
|
-
params.limit = limit;
|
|
17
|
-
params.page = Math.floor(request.offset / limit) + 1;
|
|
18
|
-
}
|
|
19
|
-
if (request.filter?.registry) {
|
|
20
|
-
params.registry = request.filter.registry;
|
|
21
|
-
}
|
|
22
|
-
if (request.filter?.protocols?.length) {
|
|
23
|
-
params.protocols = [...request.filter.protocols];
|
|
24
|
-
}
|
|
25
|
-
if (request.filter?.adapter?.length) {
|
|
26
|
-
params.adapters = [...request.filter.adapter];
|
|
27
|
-
}
|
|
28
|
-
if (request.filter?.capabilities?.length) {
|
|
29
|
-
params.capabilities = request.filter.capabilities.map(
|
|
30
|
-
(value) => typeof value === "number" ? value.toString(10) : value
|
|
31
|
-
);
|
|
32
|
-
}
|
|
33
|
-
if (request.filter?.type) {
|
|
34
|
-
params.type = request.filter.type;
|
|
35
|
-
}
|
|
36
|
-
return params;
|
|
37
|
-
}
|
|
38
|
-
function convertSearchResultToVectorResponse(result) {
|
|
39
|
-
const hits = result.hits.map((agent) => ({
|
|
40
|
-
agent,
|
|
41
|
-
score: 0,
|
|
42
|
-
highlights: {}
|
|
43
|
-
}));
|
|
44
|
-
const total = result.total;
|
|
45
|
-
const limit = result.limit;
|
|
46
|
-
const page = result.page;
|
|
47
|
-
const totalVisible = page * limit;
|
|
48
|
-
const limited = total > totalVisible || page > 1;
|
|
49
|
-
return {
|
|
50
|
-
hits,
|
|
51
|
-
total,
|
|
52
|
-
took: 0,
|
|
53
|
-
totalAvailable: total,
|
|
54
|
-
visible: hits.length,
|
|
55
|
-
limited,
|
|
56
|
-
credits_used: 0
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
RegistryBrokerClient.prototype.search = async function(params = {}) {
|
|
60
|
-
const query = buildSearchQuery(params);
|
|
61
|
-
const raw = await this.requestJson(`/search${query}`, {
|
|
1
|
+
import { adaptersResponseSchema, adapterDetailsResponseSchema, adapterRegistryCategoriesResponseSchema, adapterRegistryAdaptersResponseSchema, adapterRegistryCreateCategoryResponseSchema, adapterRegistrySubmitAdapterAcceptedResponseSchema, adapterRegistrySubmissionStatusResponseSchema } from "./standards-sdk.es150.js";
|
|
2
|
+
import { RegistryBrokerClient } from "./standards-sdk.es134.js";
|
|
3
|
+
import { toJsonObject } from "./standards-sdk.es159.js";
|
|
4
|
+
RegistryBrokerClient.prototype.adapters = async function() {
|
|
5
|
+
const raw = await this.requestJson("/adapters", {
|
|
62
6
|
method: "GET"
|
|
63
7
|
});
|
|
64
|
-
return this.parseWithSchema(raw,
|
|
8
|
+
return this.parseWithSchema(raw, adaptersResponseSchema, "adapters response");
|
|
65
9
|
};
|
|
66
|
-
RegistryBrokerClient.prototype.
|
|
67
|
-
const raw = await this.requestJson("/
|
|
68
|
-
return this.parseWithSchema(raw, statsResponseSchema, "stats response");
|
|
69
|
-
};
|
|
70
|
-
RegistryBrokerClient.prototype.registries = async function() {
|
|
71
|
-
const raw = await this.requestJson("/registries", {
|
|
10
|
+
RegistryBrokerClient.prototype.adaptersDetailed = async function() {
|
|
11
|
+
const raw = await this.requestJson("/adapters/details", {
|
|
72
12
|
method: "GET"
|
|
73
13
|
});
|
|
74
14
|
return this.parseWithSchema(
|
|
75
15
|
raw,
|
|
76
|
-
|
|
77
|
-
"
|
|
16
|
+
adapterDetailsResponseSchema,
|
|
17
|
+
"adapter details response"
|
|
78
18
|
);
|
|
79
19
|
};
|
|
80
|
-
RegistryBrokerClient.prototype.
|
|
20
|
+
RegistryBrokerClient.prototype.adapterRegistryCategories = async function() {
|
|
81
21
|
const raw = await this.requestJson(
|
|
82
|
-
"/
|
|
22
|
+
"/adapters/registry/categories",
|
|
83
23
|
{
|
|
84
24
|
method: "GET"
|
|
85
25
|
}
|
|
86
26
|
);
|
|
87
27
|
return this.parseWithSchema(
|
|
88
28
|
raw,
|
|
89
|
-
|
|
90
|
-
"
|
|
91
|
-
);
|
|
92
|
-
};
|
|
93
|
-
RegistryBrokerClient.prototype.popularSearches = async function() {
|
|
94
|
-
const raw = await this.requestJson("/popular", {
|
|
95
|
-
method: "GET"
|
|
96
|
-
});
|
|
97
|
-
return this.parseWithSchema(
|
|
98
|
-
raw,
|
|
99
|
-
popularResponseSchema,
|
|
100
|
-
"popular searches response"
|
|
101
|
-
);
|
|
102
|
-
};
|
|
103
|
-
RegistryBrokerClient.prototype.listProtocols = async function() {
|
|
104
|
-
const raw = await this.requestJson("/protocols", {
|
|
105
|
-
method: "GET"
|
|
106
|
-
});
|
|
107
|
-
return this.parseWithSchema(
|
|
108
|
-
raw,
|
|
109
|
-
protocolsResponseSchema,
|
|
110
|
-
"protocols response"
|
|
111
|
-
);
|
|
112
|
-
};
|
|
113
|
-
RegistryBrokerClient.prototype.detectProtocol = async function(message) {
|
|
114
|
-
const raw = await this.requestJson("/detect-protocol", {
|
|
115
|
-
method: "POST",
|
|
116
|
-
body: { message },
|
|
117
|
-
headers: { "content-type": "application/json" }
|
|
118
|
-
});
|
|
119
|
-
return this.parseWithSchema(
|
|
120
|
-
raw,
|
|
121
|
-
detectProtocolResponseSchema,
|
|
122
|
-
"detect protocol response"
|
|
29
|
+
adapterRegistryCategoriesResponseSchema,
|
|
30
|
+
"adapter registry categories response"
|
|
123
31
|
);
|
|
124
32
|
};
|
|
125
|
-
RegistryBrokerClient.prototype.
|
|
33
|
+
RegistryBrokerClient.prototype.adapterRegistryAdapters = async function(filters = {}) {
|
|
126
34
|
const params = new URLSearchParams();
|
|
127
|
-
if (
|
|
128
|
-
params.set("
|
|
35
|
+
if (filters.category) {
|
|
36
|
+
params.set("category", filters.category);
|
|
37
|
+
}
|
|
38
|
+
if (filters.entity) {
|
|
39
|
+
params.set("entity", filters.entity);
|
|
40
|
+
}
|
|
41
|
+
if (filters.keywords?.length) {
|
|
42
|
+
params.set("keywords", filters.keywords.join(","));
|
|
43
|
+
}
|
|
44
|
+
if (filters.query) {
|
|
45
|
+
params.set("query", filters.query);
|
|
46
|
+
}
|
|
47
|
+
if (typeof filters.limit === "number") {
|
|
48
|
+
params.set("limit", String(filters.limit));
|
|
49
|
+
}
|
|
50
|
+
if (typeof filters.offset === "number") {
|
|
51
|
+
params.set("offset", String(filters.offset));
|
|
129
52
|
}
|
|
130
53
|
const suffix = params.size > 0 ? `?${params.toString()}` : "";
|
|
131
54
|
const raw = await this.requestJson(
|
|
132
|
-
`/
|
|
55
|
+
`/adapters/registry/adapters${suffix}`,
|
|
133
56
|
{
|
|
134
57
|
method: "GET"
|
|
135
58
|
}
|
|
136
59
|
);
|
|
137
60
|
return this.parseWithSchema(
|
|
138
61
|
raw,
|
|
139
|
-
|
|
140
|
-
"registry
|
|
62
|
+
adapterRegistryAdaptersResponseSchema,
|
|
63
|
+
"adapter registry adapters response"
|
|
141
64
|
);
|
|
142
65
|
};
|
|
143
|
-
RegistryBrokerClient.prototype.
|
|
144
|
-
|
|
145
|
-
|
|
66
|
+
RegistryBrokerClient.prototype.createAdapterRegistryCategory = async function(payload) {
|
|
67
|
+
const raw = await this.requestJson(
|
|
68
|
+
"/adapters/registry/categories",
|
|
69
|
+
{
|
|
146
70
|
method: "POST",
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
});
|
|
150
|
-
return this.parseWithSchema(
|
|
151
|
-
raw,
|
|
152
|
-
vectorSearchResponseSchema,
|
|
153
|
-
"vector search response"
|
|
154
|
-
);
|
|
155
|
-
} catch (error) {
|
|
156
|
-
if (error instanceof RegistryBrokerError && error.status === 501) {
|
|
157
|
-
const fallback = await this.search(
|
|
158
|
-
buildVectorFallbackSearchParams(request)
|
|
159
|
-
);
|
|
160
|
-
return convertSearchResultToVectorResponse(fallback);
|
|
71
|
+
headers: { "content-type": "application/json" },
|
|
72
|
+
body: toJsonObject(payload)
|
|
161
73
|
}
|
|
162
|
-
throw error;
|
|
163
|
-
}
|
|
164
|
-
};
|
|
165
|
-
RegistryBrokerClient.prototype.searchStatus = async function() {
|
|
166
|
-
const raw = await this.requestJson("/search/status", {
|
|
167
|
-
method: "GET"
|
|
168
|
-
});
|
|
169
|
-
return this.parseWithSchema(
|
|
170
|
-
raw,
|
|
171
|
-
searchStatusResponseSchema,
|
|
172
|
-
"search status response"
|
|
173
74
|
);
|
|
174
|
-
|
|
175
|
-
RegistryBrokerClient.prototype.websocketStats = async function() {
|
|
176
|
-
const raw = await this.requestJson("/websocket/stats", {
|
|
177
|
-
method: "GET"
|
|
178
|
-
});
|
|
179
|
-
return this.parseWithSchema(
|
|
75
|
+
const parsed = this.parseWithSchema(
|
|
180
76
|
raw,
|
|
181
|
-
|
|
182
|
-
"
|
|
77
|
+
adapterRegistryCreateCategoryResponseSchema,
|
|
78
|
+
"adapter registry create category response"
|
|
183
79
|
);
|
|
80
|
+
return parsed.category;
|
|
184
81
|
};
|
|
185
|
-
RegistryBrokerClient.prototype.
|
|
186
|
-
const raw = await this.requestJson("/
|
|
187
|
-
method: "
|
|
82
|
+
RegistryBrokerClient.prototype.submitAdapterRegistryAdapter = async function(payload) {
|
|
83
|
+
const raw = await this.requestJson("/adapters/registry/adapters", {
|
|
84
|
+
method: "POST",
|
|
85
|
+
headers: { "content-type": "application/json" },
|
|
86
|
+
body: toJsonObject(payload)
|
|
188
87
|
});
|
|
189
88
|
return this.parseWithSchema(
|
|
190
89
|
raw,
|
|
191
|
-
|
|
192
|
-
"
|
|
90
|
+
adapterRegistrySubmitAdapterAcceptedResponseSchema,
|
|
91
|
+
"adapter registry submit adapter response"
|
|
193
92
|
);
|
|
194
93
|
};
|
|
195
|
-
RegistryBrokerClient.prototype.
|
|
196
|
-
const
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
method: "GET"
|
|
203
|
-
});
|
|
94
|
+
RegistryBrokerClient.prototype.adapterRegistrySubmissionStatus = async function(submissionId) {
|
|
95
|
+
const raw = await this.requestJson(
|
|
96
|
+
`/adapters/registry/submissions/${encodeURIComponent(submissionId)}`,
|
|
97
|
+
{
|
|
98
|
+
method: "GET"
|
|
99
|
+
}
|
|
100
|
+
);
|
|
204
101
|
return this.parseWithSchema(
|
|
205
102
|
raw,
|
|
206
|
-
|
|
207
|
-
"
|
|
103
|
+
adapterRegistrySubmissionStatusResponseSchema,
|
|
104
|
+
"adapter registry submission status response"
|
|
208
105
|
);
|
|
209
106
|
};
|
|
210
107
|
//# sourceMappingURL=standards-sdk.es128.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es128.js","sources":["../../src/services/registry-broker/client/search.ts"],"sourcesContent":["import type {\n JsonValue,\n PopularSearchesResponse,\n ProtocolDetectionMessage,\n DetectProtocolResponse,\n ProtocolsResponse,\n RegistriesResponse,\n AdditionalRegistryCatalogResponse,\n RegistrySearchByNamespaceResponse,\n RegistryStatsResponse,\n SearchFacetsResponse,\n SearchParams,\n SearchResult,\n SearchStatusResponse,\n VectorSearchRequest,\n VectorSearchResponse,\n WebsocketStatsResponse,\n MetricsSummaryResponse,\n} from '../types';\nimport {\n additionalRegistryCatalogResponseSchema,\n detectProtocolResponseSchema,\n metricsSummaryResponseSchema,\n popularResponseSchema,\n protocolsResponseSchema,\n registriesResponseSchema,\n registrySearchByNamespaceSchema,\n searchFacetsResponseSchema,\n searchResponseSchema,\n searchStatusResponseSchema,\n statsResponseSchema,\n vectorSearchResponseSchema,\n websocketStatsResponseSchema,\n} from '../schemas';\nimport { RegistryBrokerClient } from './base-client';\nimport { buildSearchQuery } from './utils';\nimport { RegistryBrokerError } from './errors';\n\ndeclare module './base-client' {\n interface RegistryBrokerClient {\n search(params?: SearchParams): Promise<SearchResult>;\n stats(): Promise<RegistryStatsResponse>;\n registries(): Promise<RegistriesResponse>;\n getAdditionalRegistries(): Promise<AdditionalRegistryCatalogResponse>;\n popularSearches(): Promise<PopularSearchesResponse>;\n listProtocols(): Promise<ProtocolsResponse>;\n detectProtocol(\n message: ProtocolDetectionMessage,\n ): Promise<DetectProtocolResponse>;\n registrySearchByNamespace(\n registry: string,\n query?: string,\n ): Promise<RegistrySearchByNamespaceResponse>;\n vectorSearch(request: VectorSearchRequest): Promise<VectorSearchResponse>;\n searchStatus(): Promise<SearchStatusResponse>;\n websocketStats(): Promise<WebsocketStatsResponse>;\n metricsSummary(): Promise<MetricsSummaryResponse>;\n facets(adapter?: string): Promise<SearchFacetsResponse>;\n }\n}\n\nfunction buildVectorFallbackSearchParams(\n request: VectorSearchRequest,\n): SearchParams {\n const params: SearchParams = {\n q: request.query,\n };\n let effectiveLimit: number | undefined;\n if (typeof request.limit === 'number' && Number.isFinite(request.limit)) {\n effectiveLimit = request.limit;\n params.limit = request.limit;\n }\n if (\n typeof request.offset === 'number' &&\n Number.isFinite(request.offset) &&\n request.offset > 0\n ) {\n const limit = effectiveLimit && effectiveLimit > 0 ? effectiveLimit : 20;\n params.limit = limit;\n params.page = Math.floor(request.offset / limit) + 1;\n }\n if (request.filter?.registry) {\n params.registry = request.filter.registry;\n }\n if (request.filter?.protocols?.length) {\n params.protocols = [...request.filter.protocols];\n }\n if (request.filter?.adapter?.length) {\n params.adapters = [...request.filter.adapter];\n }\n if (request.filter?.capabilities?.length) {\n params.capabilities = request.filter.capabilities.map(value =>\n typeof value === 'number' ? value.toString(10) : value,\n );\n }\n if (request.filter?.type) {\n params.type = request.filter.type;\n }\n return params;\n}\n\nfunction convertSearchResultToVectorResponse(\n result: SearchResult,\n): VectorSearchResponse {\n const hits = result.hits.map(agent => ({\n agent,\n score: 0,\n highlights: {},\n }));\n const total = result.total;\n const limit = result.limit;\n const page = result.page;\n const totalVisible = page * limit;\n const limited = total > totalVisible || page > 1;\n\n return {\n hits,\n total,\n took: 0,\n totalAvailable: total,\n visible: hits.length,\n limited,\n credits_used: 0,\n };\n}\n\nRegistryBrokerClient.prototype.search = async function (\n this: RegistryBrokerClient,\n params: SearchParams = {},\n): Promise<SearchResult> {\n const query = buildSearchQuery(params);\n const raw = await this.requestJson<JsonValue>(`/search${query}`, {\n method: 'GET',\n });\n return this.parseWithSchema(raw, searchResponseSchema, 'search response');\n};\n\nRegistryBrokerClient.prototype.stats = async function (\n this: RegistryBrokerClient,\n): Promise<RegistryStatsResponse> {\n const raw = await this.requestJson<JsonValue>('/stats', { method: 'GET' });\n return this.parseWithSchema(raw, statsResponseSchema, 'stats response');\n};\n\nRegistryBrokerClient.prototype.registries = async function (\n this: RegistryBrokerClient,\n): Promise<RegistriesResponse> {\n const raw = await this.requestJson<JsonValue>('/registries', {\n method: 'GET',\n });\n return this.parseWithSchema(\n raw,\n registriesResponseSchema,\n 'registries response',\n );\n};\n\nRegistryBrokerClient.prototype.getAdditionalRegistries = async function (\n this: RegistryBrokerClient,\n) {\n const raw = await this.requestJson<JsonValue>(\n '/register/additional-registries',\n {\n method: 'GET',\n },\n );\n return this.parseWithSchema(\n raw,\n additionalRegistryCatalogResponseSchema,\n 'additional registry catalog response',\n );\n};\n\nRegistryBrokerClient.prototype.popularSearches = async function (\n this: RegistryBrokerClient,\n): Promise<PopularSearchesResponse> {\n const raw = await this.requestJson<JsonValue>('/popular', {\n method: 'GET',\n });\n return this.parseWithSchema(\n raw,\n popularResponseSchema,\n 'popular searches response',\n );\n};\n\nRegistryBrokerClient.prototype.listProtocols = async function (\n this: RegistryBrokerClient,\n): Promise<ProtocolsResponse> {\n const raw = await this.requestJson<JsonValue>('/protocols', {\n method: 'GET',\n });\n return this.parseWithSchema(\n raw,\n protocolsResponseSchema,\n 'protocols response',\n );\n};\n\nRegistryBrokerClient.prototype.detectProtocol = async function (\n this: RegistryBrokerClient,\n message: ProtocolDetectionMessage,\n): Promise<DetectProtocolResponse> {\n const raw = await this.requestJson<JsonValue>('/detect-protocol', {\n method: 'POST',\n body: { message },\n headers: { 'content-type': 'application/json' },\n });\n return this.parseWithSchema(\n raw,\n detectProtocolResponseSchema,\n 'detect protocol response',\n );\n};\n\nRegistryBrokerClient.prototype.registrySearchByNamespace = async function (\n this: RegistryBrokerClient,\n registry: string,\n query?: string,\n): Promise<RegistrySearchByNamespaceResponse> {\n const params = new URLSearchParams();\n if (query) {\n params.set('q', query);\n }\n const suffix = params.size > 0 ? `?${params.toString()}` : '';\n const raw = await this.requestJson<JsonValue>(\n `/registries/${encodeURIComponent(registry)}/search${suffix}`,\n {\n method: 'GET',\n },\n );\n return this.parseWithSchema(\n raw,\n registrySearchByNamespaceSchema,\n 'registry search response',\n );\n};\n\nRegistryBrokerClient.prototype.vectorSearch = async function (\n this: RegistryBrokerClient,\n request: VectorSearchRequest,\n): Promise<VectorSearchResponse> {\n try {\n const raw = await this.requestJson<JsonValue>('/search', {\n method: 'POST',\n body: request,\n headers: { 'content-type': 'application/json' },\n });\n return this.parseWithSchema(\n raw,\n vectorSearchResponseSchema,\n 'vector search response',\n );\n } catch (error) {\n if (error instanceof RegistryBrokerError && error.status === 501) {\n const fallback = await this.search(\n buildVectorFallbackSearchParams(request),\n );\n return convertSearchResultToVectorResponse(fallback);\n }\n throw error;\n }\n};\n\nRegistryBrokerClient.prototype.searchStatus = async function (\n this: RegistryBrokerClient,\n): Promise<SearchStatusResponse> {\n const raw = await this.requestJson<JsonValue>('/search/status', {\n method: 'GET',\n });\n return this.parseWithSchema(\n raw,\n searchStatusResponseSchema,\n 'search status response',\n );\n};\n\nRegistryBrokerClient.prototype.websocketStats = async function (\n this: RegistryBrokerClient,\n): Promise<WebsocketStatsResponse> {\n const raw = await this.requestJson<JsonValue>('/websocket/stats', {\n method: 'GET',\n });\n return this.parseWithSchema(\n raw,\n websocketStatsResponseSchema,\n 'websocket stats response',\n );\n};\n\nRegistryBrokerClient.prototype.metricsSummary = async function (\n this: RegistryBrokerClient,\n): Promise<MetricsSummaryResponse> {\n const raw = await this.requestJson<JsonValue>('/metrics', {\n method: 'GET',\n });\n return this.parseWithSchema(\n raw,\n metricsSummaryResponseSchema,\n 'metrics summary response',\n );\n};\n\nRegistryBrokerClient.prototype.facets = async function (\n this: RegistryBrokerClient,\n adapter?: string,\n): Promise<SearchFacetsResponse> {\n const params = new URLSearchParams();\n if (adapter) {\n params.set('adapter', adapter);\n }\n const suffix = params.size > 0 ? `?${params.toString()}` : '';\n const raw = await this.requestJson<JsonValue>(`/search/facets${suffix}`, {\n method: 'GET',\n });\n return this.parseWithSchema(\n raw,\n searchFacetsResponseSchema,\n 'search facets response',\n );\n};\n"],"names":[],"mappings":";;;;AA6DA,SAAS,gCACP,SACc;AACd,QAAM,SAAuB;AAAA,IAC3B,GAAG,QAAQ;AAAA,EAAA;AAEb,MAAI;AACJ,MAAI,OAAO,QAAQ,UAAU,YAAY,OAAO,SAAS,QAAQ,KAAK,GAAG;AACvE,qBAAiB,QAAQ;AACzB,WAAO,QAAQ,QAAQ;AAAA,EACzB;AACA,MACE,OAAO,QAAQ,WAAW,YAC1B,OAAO,SAAS,QAAQ,MAAM,KAC9B,QAAQ,SAAS,GACjB;AACA,UAAM,QAAQ,kBAAkB,iBAAiB,IAAI,iBAAiB;AACtE,WAAO,QAAQ;AACf,WAAO,OAAO,KAAK,MAAM,QAAQ,SAAS,KAAK,IAAI;AAAA,EACrD;AACA,MAAI,QAAQ,QAAQ,UAAU;AAC5B,WAAO,WAAW,QAAQ,OAAO;AAAA,EACnC;AACA,MAAI,QAAQ,QAAQ,WAAW,QAAQ;AACrC,WAAO,YAAY,CAAC,GAAG,QAAQ,OAAO,SAAS;AAAA,EACjD;AACA,MAAI,QAAQ,QAAQ,SAAS,QAAQ;AACnC,WAAO,WAAW,CAAC,GAAG,QAAQ,OAAO,OAAO;AAAA,EAC9C;AACA,MAAI,QAAQ,QAAQ,cAAc,QAAQ;AACxC,WAAO,eAAe,QAAQ,OAAO,aAAa;AAAA,MAAI,WACpD,OAAO,UAAU,WAAW,MAAM,SAAS,EAAE,IAAI;AAAA,IAAA;AAAA,EAErD;AACA,MAAI,QAAQ,QAAQ,MAAM;AACxB,WAAO,OAAO,QAAQ,OAAO;AAAA,EAC/B;AACA,SAAO;AACT;AAEA,SAAS,oCACP,QACsB;AACtB,QAAM,OAAO,OAAO,KAAK,IAAI,CAAA,WAAU;AAAA,IACrC;AAAA,IACA,OAAO;AAAA,IACP,YAAY,CAAA;AAAA,EAAC,EACb;AACF,QAAM,QAAQ,OAAO;AACrB,QAAM,QAAQ,OAAO;AACrB,QAAM,OAAO,OAAO;AACpB,QAAM,eAAe,OAAO;AAC5B,QAAM,UAAU,QAAQ,gBAAgB,OAAO;AAE/C,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN,gBAAgB;AAAA,IAChB,SAAS,KAAK;AAAA,IACd;AAAA,IACA,cAAc;AAAA,EAAA;AAElB;AAEA,qBAAqB,UAAU,SAAS,eAEtC,SAAuB,CAAA,GACA;AACvB,QAAM,QAAQ,iBAAiB,MAAM;AACrC,QAAM,MAAM,MAAM,KAAK,YAAuB,UAAU,KAAK,IAAI;AAAA,IAC/D,QAAQ;AAAA,EAAA,CACT;AACD,SAAO,KAAK,gBAAgB,KAAK,sBAAsB,iBAAiB;AAC1E;AAEA,qBAAqB,UAAU,QAAQ,iBAEL;AAChC,QAAM,MAAM,MAAM,KAAK,YAAuB,UAAU,EAAE,QAAQ,OAAO;AACzE,SAAO,KAAK,gBAAgB,KAAK,qBAAqB,gBAAgB;AACxE;AAEA,qBAAqB,UAAU,aAAa,iBAEb;AAC7B,QAAM,MAAM,MAAM,KAAK,YAAuB,eAAe;AAAA,IAC3D,QAAQ;AAAA,EAAA,CACT;AACD,SAAO,KAAK;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,qBAAqB,UAAU,0BAA0B,iBAEvD;AACA,QAAM,MAAM,MAAM,KAAK;AAAA,IACrB;AAAA,IACA;AAAA,MACE,QAAQ;AAAA,IAAA;AAAA,EACV;AAEF,SAAO,KAAK;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,qBAAqB,UAAU,kBAAkB,iBAEb;AAClC,QAAM,MAAM,MAAM,KAAK,YAAuB,YAAY;AAAA,IACxD,QAAQ;AAAA,EAAA,CACT;AACD,SAAO,KAAK;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,qBAAqB,UAAU,gBAAgB,iBAEjB;AAC5B,QAAM,MAAM,MAAM,KAAK,YAAuB,cAAc;AAAA,IAC1D,QAAQ;AAAA,EAAA,CACT;AACD,SAAO,KAAK;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,qBAAqB,UAAU,iBAAiB,eAE9C,SACiC;AACjC,QAAM,MAAM,MAAM,KAAK,YAAuB,oBAAoB;AAAA,IAChE,QAAQ;AAAA,IACR,MAAM,EAAE,QAAA;AAAA,IACR,SAAS,EAAE,gBAAgB,mBAAA;AAAA,EAAmB,CAC/C;AACD,SAAO,KAAK;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,qBAAqB,UAAU,4BAA4B,eAEzD,UACA,OAC4C;AAC5C,QAAM,SAAS,IAAI,gBAAA;AACnB,MAAI,OAAO;AACT,WAAO,IAAI,KAAK,KAAK;AAAA,EACvB;AACA,QAAM,SAAS,OAAO,OAAO,IAAI,IAAI,OAAO,UAAU,KAAK;AAC3D,QAAM,MAAM,MAAM,KAAK;AAAA,IACrB,eAAe,mBAAmB,QAAQ,CAAC,UAAU,MAAM;AAAA,IAC3D;AAAA,MACE,QAAQ;AAAA,IAAA;AAAA,EACV;AAEF,SAAO,KAAK;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,qBAAqB,UAAU,eAAe,eAE5C,SAC+B;AAC/B,MAAI;AACF,UAAM,MAAM,MAAM,KAAK,YAAuB,WAAW;AAAA,MACvD,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS,EAAE,gBAAgB,mBAAA;AAAA,IAAmB,CAC/C;AACD,WAAO,KAAK;AAAA,MACV;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EAEJ,SAAS,OAAO;AACd,QAAI,iBAAiB,uBAAuB,MAAM,WAAW,KAAK;AAChE,YAAM,WAAW,MAAM,KAAK;AAAA,QAC1B,gCAAgC,OAAO;AAAA,MAAA;AAEzC,aAAO,oCAAoC,QAAQ;AAAA,IACrD;AACA,UAAM;AAAA,EACR;AACF;AAEA,qBAAqB,UAAU,eAAe,iBAEb;AAC/B,QAAM,MAAM,MAAM,KAAK,YAAuB,kBAAkB;AAAA,IAC9D,QAAQ;AAAA,EAAA,CACT;AACD,SAAO,KAAK;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,qBAAqB,UAAU,iBAAiB,iBAEb;AACjC,QAAM,MAAM,MAAM,KAAK,YAAuB,oBAAoB;AAAA,IAChE,QAAQ;AAAA,EAAA,CACT;AACD,SAAO,KAAK;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,qBAAqB,UAAU,iBAAiB,iBAEb;AACjC,QAAM,MAAM,MAAM,KAAK,YAAuB,YAAY;AAAA,IACxD,QAAQ;AAAA,EAAA,CACT;AACD,SAAO,KAAK;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,qBAAqB,UAAU,SAAS,eAEtC,SAC+B;AAC/B,QAAM,SAAS,IAAI,gBAAA;AACnB,MAAI,SAAS;AACX,WAAO,IAAI,WAAW,OAAO;AAAA,EAC/B;AACA,QAAM,SAAS,OAAO,OAAO,IAAI,IAAI,OAAO,UAAU,KAAK;AAC3D,QAAM,MAAM,MAAM,KAAK,YAAuB,iBAAiB,MAAM,IAAI;AAAA,IACvE,QAAQ;AAAA,EAAA,CACT;AACD,SAAO,KAAK;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;"}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es128.js","sources":["../../src/services/registry-broker/client/adapters.ts"],"sourcesContent":["import type {\n AdapterDetailsResponse,\n AdapterRegistryAdaptersResponse,\n AdapterRegistryCategoriesResponse,\n AdapterRegistryCategory,\n AdapterRegistrySubmitAdapterAcceptedResponse,\n AdapterRegistrySubmissionStatusResponse,\n AdaptersResponse,\n CreateAdapterRegistryCategoryRequest,\n JsonValue,\n SubmitAdapterRegistryAdapterRequest,\n} from '../types';\nimport {\n adapterDetailsResponseSchema,\n adapterRegistryAdaptersResponseSchema,\n adapterRegistryCategoriesResponseSchema,\n adapterRegistryCreateCategoryResponseSchema,\n adapterRegistrySubmitAdapterAcceptedResponseSchema,\n adapterRegistrySubmissionStatusResponseSchema,\n adaptersResponseSchema,\n} from '../schemas';\nimport { RegistryBrokerClient } from './base-client';\nimport { toJsonObject } from './utils';\n\ndeclare module './base-client' {\n interface RegistryBrokerClient {\n adapters(): Promise<AdaptersResponse>;\n adaptersDetailed(): Promise<AdapterDetailsResponse>;\n adapterRegistryCategories(): Promise<AdapterRegistryCategoriesResponse>;\n adapterRegistryAdapters(filters?: {\n category?: string;\n entity?: string;\n keywords?: string[];\n query?: string;\n limit?: number;\n offset?: number;\n }): Promise<AdapterRegistryAdaptersResponse>;\n createAdapterRegistryCategory(\n payload: CreateAdapterRegistryCategoryRequest,\n ): Promise<AdapterRegistryCategory>;\n submitAdapterRegistryAdapter(\n payload: SubmitAdapterRegistryAdapterRequest,\n ): Promise<AdapterRegistrySubmitAdapterAcceptedResponse>;\n adapterRegistrySubmissionStatus(\n submissionId: string,\n ): Promise<AdapterRegistrySubmissionStatusResponse>;\n }\n}\n\nRegistryBrokerClient.prototype.adapters = async function (\n this: RegistryBrokerClient,\n): Promise<AdaptersResponse> {\n const raw = await this.requestJson<JsonValue>('/adapters', {\n method: 'GET',\n });\n return this.parseWithSchema(raw, adaptersResponseSchema, 'adapters response');\n};\n\nRegistryBrokerClient.prototype.adaptersDetailed = async function (\n this: RegistryBrokerClient,\n): Promise<AdapterDetailsResponse> {\n const raw = await this.requestJson<JsonValue>('/adapters/details', {\n method: 'GET',\n });\n return this.parseWithSchema(\n raw,\n adapterDetailsResponseSchema,\n 'adapter details response',\n );\n};\n\nRegistryBrokerClient.prototype.adapterRegistryCategories = async function (\n this: RegistryBrokerClient,\n): Promise<AdapterRegistryCategoriesResponse> {\n const raw = await this.requestJson<JsonValue>(\n '/adapters/registry/categories',\n {\n method: 'GET',\n },\n );\n return this.parseWithSchema(\n raw,\n adapterRegistryCategoriesResponseSchema,\n 'adapter registry categories response',\n );\n};\n\nRegistryBrokerClient.prototype.adapterRegistryAdapters = async function (\n this: RegistryBrokerClient,\n filters: {\n category?: string;\n entity?: string;\n keywords?: string[];\n query?: string;\n limit?: number;\n offset?: number;\n } = {},\n): Promise<AdapterRegistryAdaptersResponse> {\n const params = new URLSearchParams();\n if (filters.category) {\n params.set('category', filters.category);\n }\n if (filters.entity) {\n params.set('entity', filters.entity);\n }\n if (filters.keywords?.length) {\n params.set('keywords', filters.keywords.join(','));\n }\n if (filters.query) {\n params.set('query', filters.query);\n }\n if (typeof filters.limit === 'number') {\n params.set('limit', String(filters.limit));\n }\n if (typeof filters.offset === 'number') {\n params.set('offset', String(filters.offset));\n }\n\n const suffix = params.size > 0 ? `?${params.toString()}` : '';\n const raw = await this.requestJson<JsonValue>(\n `/adapters/registry/adapters${suffix}`,\n {\n method: 'GET',\n },\n );\n return this.parseWithSchema(\n raw,\n adapterRegistryAdaptersResponseSchema,\n 'adapter registry adapters response',\n );\n};\n\nRegistryBrokerClient.prototype.createAdapterRegistryCategory = async function (\n this: RegistryBrokerClient,\n payload: CreateAdapterRegistryCategoryRequest,\n): Promise<AdapterRegistryCategory> {\n const raw = await this.requestJson<JsonValue>(\n '/adapters/registry/categories',\n {\n method: 'POST',\n headers: { 'content-type': 'application/json' },\n body: toJsonObject(payload),\n },\n );\n const parsed = this.parseWithSchema(\n raw,\n adapterRegistryCreateCategoryResponseSchema,\n 'adapter registry create category response',\n );\n return parsed.category;\n};\n\nRegistryBrokerClient.prototype.submitAdapterRegistryAdapter = async function (\n this: RegistryBrokerClient,\n payload: SubmitAdapterRegistryAdapterRequest,\n): Promise<AdapterRegistrySubmitAdapterAcceptedResponse> {\n const raw = await this.requestJson<JsonValue>('/adapters/registry/adapters', {\n method: 'POST',\n headers: { 'content-type': 'application/json' },\n body: toJsonObject(payload),\n });\n return this.parseWithSchema(\n raw,\n adapterRegistrySubmitAdapterAcceptedResponseSchema,\n 'adapter registry submit adapter response',\n );\n};\n\nRegistryBrokerClient.prototype.adapterRegistrySubmissionStatus =\n async function (\n this: RegistryBrokerClient,\n submissionId: string,\n ): Promise<AdapterRegistrySubmissionStatusResponse> {\n const raw = await this.requestJson<JsonValue>(\n `/adapters/registry/submissions/${encodeURIComponent(submissionId)}`,\n {\n method: 'GET',\n },\n );\n return this.parseWithSchema(\n raw,\n adapterRegistrySubmissionStatusResponseSchema,\n 'adapter registry submission status response',\n );\n };\n"],"names":[],"mappings":";;;AAiDA,qBAAqB,UAAU,WAAW,iBAEb;AAC3B,QAAM,MAAM,MAAM,KAAK,YAAuB,aAAa;AAAA,IACzD,QAAQ;AAAA,EAAA,CACT;AACD,SAAO,KAAK,gBAAgB,KAAK,wBAAwB,mBAAmB;AAC9E;AAEA,qBAAqB,UAAU,mBAAmB,iBAEf;AACjC,QAAM,MAAM,MAAM,KAAK,YAAuB,qBAAqB;AAAA,IACjE,QAAQ;AAAA,EAAA,CACT;AACD,SAAO,KAAK;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,qBAAqB,UAAU,4BAA4B,iBAEb;AAC5C,QAAM,MAAM,MAAM,KAAK;AAAA,IACrB;AAAA,IACA;AAAA,MACE,QAAQ;AAAA,IAAA;AAAA,EACV;AAEF,SAAO,KAAK;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,qBAAqB,UAAU,0BAA0B,eAEvD,UAOI,CAAA,GACsC;AAC1C,QAAM,SAAS,IAAI,gBAAA;AACnB,MAAI,QAAQ,UAAU;AACpB,WAAO,IAAI,YAAY,QAAQ,QAAQ;AAAA,EACzC;AACA,MAAI,QAAQ,QAAQ;AAClB,WAAO,IAAI,UAAU,QAAQ,MAAM;AAAA,EACrC;AACA,MAAI,QAAQ,UAAU,QAAQ;AAC5B,WAAO,IAAI,YAAY,QAAQ,SAAS,KAAK,GAAG,CAAC;AAAA,EACnD;AACA,MAAI,QAAQ,OAAO;AACjB,WAAO,IAAI,SAAS,QAAQ,KAAK;AAAA,EACnC;AACA,MAAI,OAAO,QAAQ,UAAU,UAAU;AACrC,WAAO,IAAI,SAAS,OAAO,QAAQ,KAAK,CAAC;AAAA,EAC3C;AACA,MAAI,OAAO,QAAQ,WAAW,UAAU;AACtC,WAAO,IAAI,UAAU,OAAO,QAAQ,MAAM,CAAC;AAAA,EAC7C;AAEA,QAAM,SAAS,OAAO,OAAO,IAAI,IAAI,OAAO,UAAU,KAAK;AAC3D,QAAM,MAAM,MAAM,KAAK;AAAA,IACrB,8BAA8B,MAAM;AAAA,IACpC;AAAA,MACE,QAAQ;AAAA,IAAA;AAAA,EACV;AAEF,SAAO,KAAK;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,qBAAqB,UAAU,gCAAgC,eAE7D,SACkC;AAClC,QAAM,MAAM,MAAM,KAAK;AAAA,IACrB;AAAA,IACA;AAAA,MACE,QAAQ;AAAA,MACR,SAAS,EAAE,gBAAgB,mBAAA;AAAA,MAC3B,MAAM,aAAa,OAAO;AAAA,IAAA;AAAA,EAC5B;AAEF,QAAM,SAAS,KAAK;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF,SAAO,OAAO;AAChB;AAEA,qBAAqB,UAAU,+BAA+B,eAE5D,SACuD;AACvD,QAAM,MAAM,MAAM,KAAK,YAAuB,+BAA+B;AAAA,IAC3E,QAAQ;AAAA,IACR,SAAS,EAAE,gBAAgB,mBAAA;AAAA,IAC3B,MAAM,aAAa,OAAO;AAAA,EAAA,CAC3B;AACD,SAAO,KAAK;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,qBAAqB,UAAU,kCAC7B,eAEE,cACkD;AAClD,QAAM,MAAM,MAAM,KAAK;AAAA,IACrB,kCAAkC,mBAAmB,YAAY,CAAC;AAAA,IAClE;AAAA,MACE,QAAQ;AAAA,IAAA;AAAA,EACV;AAEF,SAAO,KAAK;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;"}
|
|
@@ -1,107 +1,124 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { RegistryBrokerClient } from "./standards-sdk.
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
import { creditPurchaseResponseSchema, x402MinimumsResponseSchema, x402CreditPurchaseResponseSchema } from "./standards-sdk.es150.js";
|
|
2
|
+
import { RegistryBrokerClient } from "./standards-sdk.es134.js";
|
|
3
|
+
import { normalizeHexPrivateKey } from "./standards-sdk.es159.js";
|
|
4
|
+
import { optionalImport } from "./standards-sdk.es152.js";
|
|
5
|
+
async function loadX402Dependencies(client) {
|
|
6
|
+
const [{ default: axios }, x402Axios, x402Types] = await Promise.all([
|
|
7
|
+
import("axios"),
|
|
8
|
+
optionalImport("x402-axios"),
|
|
9
|
+
optionalImport("x402/types")
|
|
10
|
+
]);
|
|
11
|
+
if (!x402Axios || !x402Types) {
|
|
12
|
+
throw new Error(
|
|
13
|
+
"x402-axios and x402/types are required for X402 flows. Install them to enable ledger payments."
|
|
14
|
+
);
|
|
15
|
+
}
|
|
16
|
+
const withPaymentInterceptor = x402Axios.withPaymentInterceptor;
|
|
17
|
+
const decodePaymentResponse = x402Axios.decodeXPaymentResponse;
|
|
18
|
+
const createX402Signer = x402Types.createSigner;
|
|
19
|
+
const createPaymentClient = (walletClient) => {
|
|
20
|
+
const axiosClient = axios.create({
|
|
21
|
+
baseURL: client.baseUrl,
|
|
22
|
+
headers: {
|
|
23
|
+
...client.getDefaultHeaders(),
|
|
24
|
+
"content-type": "application/json"
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
const paymentClient = withPaymentInterceptor(axiosClient, walletClient);
|
|
28
|
+
return paymentClient;
|
|
29
|
+
};
|
|
30
|
+
return { createPaymentClient, decodePaymentResponse, createX402Signer };
|
|
31
|
+
}
|
|
32
|
+
function calculateHbarAmountParam(hbarAmount) {
|
|
33
|
+
const tinybars = Math.ceil(hbarAmount * 1e8);
|
|
34
|
+
if (tinybars <= 0) {
|
|
35
|
+
throw new Error("Calculated purchase amount must be positive");
|
|
36
|
+
}
|
|
37
|
+
return tinybars / 1e8;
|
|
38
|
+
}
|
|
39
|
+
RegistryBrokerClient.prototype.purchaseCreditsWithHbar = async function(params) {
|
|
40
|
+
const body = {
|
|
41
|
+
accountId: params.accountId,
|
|
42
|
+
payerKey: params.privateKey,
|
|
43
|
+
hbarAmount: calculateHbarAmountParam(params.hbarAmount)
|
|
44
|
+
};
|
|
45
|
+
if (params.memo) {
|
|
46
|
+
body.memo = params.memo;
|
|
47
|
+
}
|
|
48
|
+
if (params.metadata) {
|
|
49
|
+
body.metadata = params.metadata;
|
|
50
|
+
}
|
|
51
|
+
const raw = await this.requestJson("/credits/purchase", {
|
|
52
|
+
method: "POST",
|
|
53
|
+
headers: { "content-type": "application/json" },
|
|
54
|
+
body
|
|
13
55
|
});
|
|
14
56
|
return this.parseWithSchema(
|
|
15
57
|
raw,
|
|
16
|
-
|
|
17
|
-
"
|
|
58
|
+
creditPurchaseResponseSchema,
|
|
59
|
+
"credit purchase response"
|
|
18
60
|
);
|
|
19
61
|
};
|
|
20
|
-
RegistryBrokerClient.prototype.
|
|
62
|
+
RegistryBrokerClient.prototype.getX402Minimums = async function() {
|
|
21
63
|
const raw = await this.requestJson(
|
|
22
|
-
"/
|
|
23
|
-
{
|
|
24
|
-
method: "GET"
|
|
25
|
-
}
|
|
64
|
+
"/credits/purchase/x402/minimums",
|
|
65
|
+
{ method: "GET" }
|
|
26
66
|
);
|
|
27
67
|
return this.parseWithSchema(
|
|
28
68
|
raw,
|
|
29
|
-
|
|
30
|
-
"
|
|
69
|
+
x402MinimumsResponseSchema,
|
|
70
|
+
"x402 minimums response"
|
|
31
71
|
);
|
|
32
72
|
};
|
|
33
|
-
RegistryBrokerClient.prototype.
|
|
34
|
-
const
|
|
35
|
-
if (
|
|
36
|
-
|
|
73
|
+
RegistryBrokerClient.prototype.purchaseCreditsWithX402 = async function(params) {
|
|
74
|
+
const { createPaymentClient, decodePaymentResponse } = await loadX402Dependencies(this);
|
|
75
|
+
if (!Number.isFinite(params.credits) || params.credits <= 0) {
|
|
76
|
+
throw new Error("credits must be a positive number");
|
|
37
77
|
}
|
|
38
|
-
if (
|
|
39
|
-
|
|
78
|
+
if (params.usdAmount !== void 0 && (!Number.isFinite(params.usdAmount) || params.usdAmount <= 0)) {
|
|
79
|
+
throw new Error("usdAmount must be a positive number when provided");
|
|
40
80
|
}
|
|
41
|
-
|
|
42
|
-
params.
|
|
81
|
+
const body = {
|
|
82
|
+
accountId: params.accountId,
|
|
83
|
+
credits: params.credits
|
|
84
|
+
};
|
|
85
|
+
if (params.usdAmount !== void 0) {
|
|
86
|
+
body.usdAmount = params.usdAmount;
|
|
43
87
|
}
|
|
44
|
-
if (
|
|
45
|
-
|
|
88
|
+
if (params.description) {
|
|
89
|
+
body.description = params.description;
|
|
46
90
|
}
|
|
47
|
-
if (
|
|
48
|
-
|
|
91
|
+
if (params.metadata) {
|
|
92
|
+
body.metadata = params.metadata;
|
|
49
93
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
const suffix = params.size > 0 ? `?${params.toString()}` : "";
|
|
54
|
-
const raw = await this.requestJson(
|
|
55
|
-
`/adapters/registry/adapters${suffix}`,
|
|
56
|
-
{
|
|
57
|
-
method: "GET"
|
|
58
|
-
}
|
|
59
|
-
);
|
|
60
|
-
return this.parseWithSchema(
|
|
61
|
-
raw,
|
|
62
|
-
adapterRegistryAdaptersResponseSchema,
|
|
63
|
-
"adapter registry adapters response"
|
|
64
|
-
);
|
|
65
|
-
};
|
|
66
|
-
RegistryBrokerClient.prototype.createAdapterRegistryCategory = async function(payload) {
|
|
67
|
-
const raw = await this.requestJson(
|
|
68
|
-
"/adapters/registry/categories",
|
|
69
|
-
{
|
|
70
|
-
method: "POST",
|
|
71
|
-
headers: { "content-type": "application/json" },
|
|
72
|
-
body: toJsonObject(payload)
|
|
73
|
-
}
|
|
74
|
-
);
|
|
94
|
+
const paymentClient = createPaymentClient(params.walletClient);
|
|
95
|
+
const response = await paymentClient.post("/credits/purchase/x402", body);
|
|
75
96
|
const parsed = this.parseWithSchema(
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
"
|
|
97
|
+
response.data,
|
|
98
|
+
x402CreditPurchaseResponseSchema,
|
|
99
|
+
"x402 credit purchase response"
|
|
79
100
|
);
|
|
80
|
-
|
|
101
|
+
const responseHeaders = response.headers ?? {};
|
|
102
|
+
const paymentHeader = typeof responseHeaders["x-payment-response"] === "string" ? responseHeaders["x-payment-response"] : void 0;
|
|
103
|
+
const decodedPayment = paymentHeader !== void 0 ? decodePaymentResponse(paymentHeader) : void 0;
|
|
104
|
+
return {
|
|
105
|
+
...parsed,
|
|
106
|
+
paymentResponseHeader: paymentHeader,
|
|
107
|
+
paymentResponse: decodedPayment
|
|
108
|
+
};
|
|
81
109
|
};
|
|
82
|
-
RegistryBrokerClient.prototype.
|
|
83
|
-
const
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
110
|
+
RegistryBrokerClient.prototype.buyCreditsWithX402 = async function(params) {
|
|
111
|
+
const network = params.network ?? "base";
|
|
112
|
+
const { createX402Signer } = await loadX402Dependencies(this);
|
|
113
|
+
const normalizedKey = normalizeHexPrivateKey(params.evmPrivateKey);
|
|
114
|
+
const walletClient = await createX402Signer(network, normalizedKey);
|
|
115
|
+
return this.purchaseCreditsWithX402({
|
|
116
|
+
accountId: params.accountId,
|
|
117
|
+
credits: params.credits,
|
|
118
|
+
usdAmount: params.usdAmount,
|
|
119
|
+
description: params.description,
|
|
120
|
+
metadata: params.metadata,
|
|
121
|
+
walletClient
|
|
87
122
|
});
|
|
88
|
-
return this.parseWithSchema(
|
|
89
|
-
raw,
|
|
90
|
-
adapterRegistrySubmitAdapterAcceptedResponseSchema,
|
|
91
|
-
"adapter registry submit adapter response"
|
|
92
|
-
);
|
|
93
|
-
};
|
|
94
|
-
RegistryBrokerClient.prototype.adapterRegistrySubmissionStatus = async function(submissionId) {
|
|
95
|
-
const raw = await this.requestJson(
|
|
96
|
-
`/adapters/registry/submissions/${encodeURIComponent(submissionId)}`,
|
|
97
|
-
{
|
|
98
|
-
method: "GET"
|
|
99
|
-
}
|
|
100
|
-
);
|
|
101
|
-
return this.parseWithSchema(
|
|
102
|
-
raw,
|
|
103
|
-
adapterRegistrySubmissionStatusResponseSchema,
|
|
104
|
-
"adapter registry submission status response"
|
|
105
|
-
);
|
|
106
123
|
};
|
|
107
124
|
//# sourceMappingURL=standards-sdk.es129.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es129.js","sources":["../../src/services/registry-broker/client/adapters.ts"],"sourcesContent":["import type {\n AdapterDetailsResponse,\n AdapterRegistryAdaptersResponse,\n AdapterRegistryCategoriesResponse,\n AdapterRegistryCategory,\n AdapterRegistrySubmitAdapterAcceptedResponse,\n AdapterRegistrySubmissionStatusResponse,\n AdaptersResponse,\n CreateAdapterRegistryCategoryRequest,\n JsonValue,\n SubmitAdapterRegistryAdapterRequest,\n} from '../types';\nimport {\n adapterDetailsResponseSchema,\n adapterRegistryAdaptersResponseSchema,\n adapterRegistryCategoriesResponseSchema,\n adapterRegistryCreateCategoryResponseSchema,\n adapterRegistrySubmitAdapterAcceptedResponseSchema,\n adapterRegistrySubmissionStatusResponseSchema,\n adaptersResponseSchema,\n} from '../schemas';\nimport { RegistryBrokerClient } from './base-client';\nimport { toJsonObject } from './utils';\n\ndeclare module './base-client' {\n interface RegistryBrokerClient {\n adapters(): Promise<AdaptersResponse>;\n adaptersDetailed(): Promise<AdapterDetailsResponse>;\n adapterRegistryCategories(): Promise<AdapterRegistryCategoriesResponse>;\n adapterRegistryAdapters(filters?: {\n category?: string;\n entity?: string;\n keywords?: string[];\n query?: string;\n limit?: number;\n offset?: number;\n }): Promise<AdapterRegistryAdaptersResponse>;\n createAdapterRegistryCategory(\n payload: CreateAdapterRegistryCategoryRequest,\n ): Promise<AdapterRegistryCategory>;\n submitAdapterRegistryAdapter(\n payload: SubmitAdapterRegistryAdapterRequest,\n ): Promise<AdapterRegistrySubmitAdapterAcceptedResponse>;\n adapterRegistrySubmissionStatus(\n submissionId: string,\n ): Promise<AdapterRegistrySubmissionStatusResponse>;\n }\n}\n\nRegistryBrokerClient.prototype.adapters = async function (\n this: RegistryBrokerClient,\n): Promise<AdaptersResponse> {\n const raw = await this.requestJson<JsonValue>('/adapters', {\n method: 'GET',\n });\n return this.parseWithSchema(raw, adaptersResponseSchema, 'adapters response');\n};\n\nRegistryBrokerClient.prototype.adaptersDetailed = async function (\n this: RegistryBrokerClient,\n): Promise<AdapterDetailsResponse> {\n const raw = await this.requestJson<JsonValue>('/adapters/details', {\n method: 'GET',\n });\n return this.parseWithSchema(\n raw,\n adapterDetailsResponseSchema,\n 'adapter details response',\n );\n};\n\nRegistryBrokerClient.prototype.adapterRegistryCategories = async function (\n this: RegistryBrokerClient,\n): Promise<AdapterRegistryCategoriesResponse> {\n const raw = await this.requestJson<JsonValue>(\n '/adapters/registry/categories',\n {\n method: 'GET',\n },\n );\n return this.parseWithSchema(\n raw,\n adapterRegistryCategoriesResponseSchema,\n 'adapter registry categories response',\n );\n};\n\nRegistryBrokerClient.prototype.adapterRegistryAdapters = async function (\n this: RegistryBrokerClient,\n filters: {\n category?: string;\n entity?: string;\n keywords?: string[];\n query?: string;\n limit?: number;\n offset?: number;\n } = {},\n): Promise<AdapterRegistryAdaptersResponse> {\n const params = new URLSearchParams();\n if (filters.category) {\n params.set('category', filters.category);\n }\n if (filters.entity) {\n params.set('entity', filters.entity);\n }\n if (filters.keywords?.length) {\n params.set('keywords', filters.keywords.join(','));\n }\n if (filters.query) {\n params.set('query', filters.query);\n }\n if (typeof filters.limit === 'number') {\n params.set('limit', String(filters.limit));\n }\n if (typeof filters.offset === 'number') {\n params.set('offset', String(filters.offset));\n }\n\n const suffix = params.size > 0 ? `?${params.toString()}` : '';\n const raw = await this.requestJson<JsonValue>(\n `/adapters/registry/adapters${suffix}`,\n {\n method: 'GET',\n },\n );\n return this.parseWithSchema(\n raw,\n adapterRegistryAdaptersResponseSchema,\n 'adapter registry adapters response',\n );\n};\n\nRegistryBrokerClient.prototype.createAdapterRegistryCategory = async function (\n this: RegistryBrokerClient,\n payload: CreateAdapterRegistryCategoryRequest,\n): Promise<AdapterRegistryCategory> {\n const raw = await this.requestJson<JsonValue>(\n '/adapters/registry/categories',\n {\n method: 'POST',\n headers: { 'content-type': 'application/json' },\n body: toJsonObject(payload),\n },\n );\n const parsed = this.parseWithSchema(\n raw,\n adapterRegistryCreateCategoryResponseSchema,\n 'adapter registry create category response',\n );\n return parsed.category;\n};\n\nRegistryBrokerClient.prototype.submitAdapterRegistryAdapter = async function (\n this: RegistryBrokerClient,\n payload: SubmitAdapterRegistryAdapterRequest,\n): Promise<AdapterRegistrySubmitAdapterAcceptedResponse> {\n const raw = await this.requestJson<JsonValue>('/adapters/registry/adapters', {\n method: 'POST',\n headers: { 'content-type': 'application/json' },\n body: toJsonObject(payload),\n });\n return this.parseWithSchema(\n raw,\n adapterRegistrySubmitAdapterAcceptedResponseSchema,\n 'adapter registry submit adapter response',\n );\n};\n\nRegistryBrokerClient.prototype.adapterRegistrySubmissionStatus =\n async function (\n this: RegistryBrokerClient,\n submissionId: string,\n ): Promise<AdapterRegistrySubmissionStatusResponse> {\n const raw = await this.requestJson<JsonValue>(\n `/adapters/registry/submissions/${encodeURIComponent(submissionId)}`,\n {\n method: 'GET',\n },\n );\n return this.parseWithSchema(\n raw,\n adapterRegistrySubmissionStatusResponseSchema,\n 'adapter registry submission status response',\n );\n };\n"],"names":[],"mappings":";;;AAiDA,qBAAqB,UAAU,WAAW,iBAEb;AAC3B,QAAM,MAAM,MAAM,KAAK,YAAuB,aAAa;AAAA,IACzD,QAAQ;AAAA,EAAA,CACT;AACD,SAAO,KAAK,gBAAgB,KAAK,wBAAwB,mBAAmB;AAC9E;AAEA,qBAAqB,UAAU,mBAAmB,iBAEf;AACjC,QAAM,MAAM,MAAM,KAAK,YAAuB,qBAAqB;AAAA,IACjE,QAAQ;AAAA,EAAA,CACT;AACD,SAAO,KAAK;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,qBAAqB,UAAU,4BAA4B,iBAEb;AAC5C,QAAM,MAAM,MAAM,KAAK;AAAA,IACrB;AAAA,IACA;AAAA,MACE,QAAQ;AAAA,IAAA;AAAA,EACV;AAEF,SAAO,KAAK;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,qBAAqB,UAAU,0BAA0B,eAEvD,UAOI,CAAA,GACsC;AAC1C,QAAM,SAAS,IAAI,gBAAA;AACnB,MAAI,QAAQ,UAAU;AACpB,WAAO,IAAI,YAAY,QAAQ,QAAQ;AAAA,EACzC;AACA,MAAI,QAAQ,QAAQ;AAClB,WAAO,IAAI,UAAU,QAAQ,MAAM;AAAA,EACrC;AACA,MAAI,QAAQ,UAAU,QAAQ;AAC5B,WAAO,IAAI,YAAY,QAAQ,SAAS,KAAK,GAAG,CAAC;AAAA,EACnD;AACA,MAAI,QAAQ,OAAO;AACjB,WAAO,IAAI,SAAS,QAAQ,KAAK;AAAA,EACnC;AACA,MAAI,OAAO,QAAQ,UAAU,UAAU;AACrC,WAAO,IAAI,SAAS,OAAO,QAAQ,KAAK,CAAC;AAAA,EAC3C;AACA,MAAI,OAAO,QAAQ,WAAW,UAAU;AACtC,WAAO,IAAI,UAAU,OAAO,QAAQ,MAAM,CAAC;AAAA,EAC7C;AAEA,QAAM,SAAS,OAAO,OAAO,IAAI,IAAI,OAAO,UAAU,KAAK;AAC3D,QAAM,MAAM,MAAM,KAAK;AAAA,IACrB,8BAA8B,MAAM;AAAA,IACpC;AAAA,MACE,QAAQ;AAAA,IAAA;AAAA,EACV;AAEF,SAAO,KAAK;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,qBAAqB,UAAU,gCAAgC,eAE7D,SACkC;AAClC,QAAM,MAAM,MAAM,KAAK;AAAA,IACrB;AAAA,IACA;AAAA,MACE,QAAQ;AAAA,MACR,SAAS,EAAE,gBAAgB,mBAAA;AAAA,MAC3B,MAAM,aAAa,OAAO;AAAA,IAAA;AAAA,EAC5B;AAEF,QAAM,SAAS,KAAK;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF,SAAO,OAAO;AAChB;AAEA,qBAAqB,UAAU,+BAA+B,eAE5D,SACuD;AACvD,QAAM,MAAM,MAAM,KAAK,YAAuB,+BAA+B;AAAA,IAC3E,QAAQ;AAAA,IACR,SAAS,EAAE,gBAAgB,mBAAA;AAAA,IAC3B,MAAM,aAAa,OAAO;AAAA,EAAA,CAC3B;AACD,SAAO,KAAK;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,qBAAqB,UAAU,kCAC7B,eAEE,cACkD;AAClD,QAAM,MAAM,MAAM,KAAK;AAAA,IACrB,kCAAkC,mBAAmB,YAAY,CAAC;AAAA,IAClE;AAAA,MACE,QAAQ;AAAA,IAAA;AAAA,EACV;AAEF,SAAO,KAAK;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;"}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es129.js","sources":["../../src/services/registry-broker/client/credits.ts"],"sourcesContent":["import type {\n CreditPurchaseResponse,\n JsonObject,\n JsonValue,\n X402CreditPurchaseResponse,\n X402MinimumsResponse,\n} from '../types';\nimport {\n creditPurchaseResponseSchema,\n x402CreditPurchaseResponseSchema,\n x402MinimumsResponseSchema,\n} from '../schemas';\nimport { RegistryBrokerClient } from './base-client';\nimport { normalizeHexPrivateKey, type X402NetworkId } from './utils';\nimport { optionalImport } from '../../../utils/dynamic-import';\n\ntype PaymentHeaders = Record<string, string | string[] | undefined>;\ntype PaymentClient = {\n post: (\n url: string,\n body: JsonObject,\n ) => Promise<{ data: JsonValue; headers?: PaymentHeaders }>;\n};\n\ninterface PurchaseCreditsWithX402Params {\n accountId: string;\n credits: number;\n usdAmount?: number;\n description?: string;\n metadata?: JsonObject;\n walletClient: object;\n}\n\ninterface BuyCreditsWithX402Params {\n accountId: string;\n credits: number;\n usdAmount?: number;\n description?: string;\n metadata?: JsonObject;\n evmPrivateKey: string;\n network?: X402NetworkId;\n rpcUrl?: string;\n}\n\ntype X402PurchaseResult = X402CreditPurchaseResponse & {\n paymentResponseHeader?: string;\n paymentResponse?: unknown;\n};\n\ntype LoadX402DependenciesResult = {\n createPaymentClient: (walletClient: object) => PaymentClient;\n decodePaymentResponse: (value: string) => unknown;\n createX402Signer: (\n network: X402NetworkId,\n privateKey: `0x${string}`,\n ) => Promise<object>;\n};\n\nasync function loadX402Dependencies(\n client: RegistryBrokerClient,\n): Promise<LoadX402DependenciesResult> {\n type X402AxiosModule = {\n withPaymentInterceptor: (client: unknown, walletClient: object) => unknown;\n decodeXPaymentResponse: (value: string) => unknown;\n };\n type X402TypesModule = {\n createSigner: (\n network: X402NetworkId,\n privateKey: `0x${string}`,\n ) => Promise<object>;\n };\n\n const [{ default: axios }, x402Axios, x402Types] = await Promise.all([\n import('axios'),\n optionalImport<X402AxiosModule>('x402-axios'),\n optionalImport<X402TypesModule>('x402/types'),\n ]);\n\n if (!x402Axios || !x402Types) {\n throw new Error(\n 'x402-axios and x402/types are required for X402 flows. Install them to enable ledger payments.',\n );\n }\n\n const withPaymentInterceptor = x402Axios.withPaymentInterceptor;\n const decodePaymentResponse = x402Axios.decodeXPaymentResponse;\n const createX402Signer = x402Types.createSigner;\n\n const createPaymentClient = (walletClient: object): PaymentClient => {\n const axiosClient = axios.create({\n baseURL: client.baseUrl,\n headers: {\n ...client.getDefaultHeaders(),\n 'content-type': 'application/json',\n },\n });\n const paymentClient = withPaymentInterceptor(axiosClient, walletClient);\n return paymentClient as PaymentClient;\n };\n\n return { createPaymentClient, decodePaymentResponse, createX402Signer };\n}\n\nfunction calculateHbarAmountParam(hbarAmount: number): number {\n const tinybars = Math.ceil(hbarAmount * 1e8);\n if (tinybars <= 0) {\n throw new Error('Calculated purchase amount must be positive');\n }\n return tinybars / 1e8;\n}\n\ndeclare module './base-client' {\n interface RegistryBrokerClient {\n purchaseCreditsWithHbar(params: {\n accountId: string;\n privateKey: string;\n hbarAmount: number;\n memo?: string;\n metadata?: JsonObject;\n }): Promise<CreditPurchaseResponse>;\n getX402Minimums(): Promise<X402MinimumsResponse>;\n purchaseCreditsWithX402(\n params: PurchaseCreditsWithX402Params,\n ): Promise<X402PurchaseResult>;\n buyCreditsWithX402(\n params: BuyCreditsWithX402Params,\n ): Promise<X402PurchaseResult>;\n }\n}\n\nRegistryBrokerClient.prototype.purchaseCreditsWithHbar = async function (\n this: RegistryBrokerClient,\n params: {\n accountId: string;\n privateKey: string;\n hbarAmount: number;\n memo?: string;\n metadata?: JsonObject;\n },\n): Promise<CreditPurchaseResponse> {\n const body: JsonObject = {\n accountId: params.accountId,\n payerKey: params.privateKey,\n hbarAmount: calculateHbarAmountParam(params.hbarAmount),\n };\n\n if (params.memo) {\n body.memo = params.memo;\n }\n\n if (params.metadata) {\n body.metadata = params.metadata;\n }\n\n const raw = await this.requestJson<JsonValue>('/credits/purchase', {\n method: 'POST',\n headers: { 'content-type': 'application/json' },\n body,\n });\n\n return this.parseWithSchema(\n raw,\n creditPurchaseResponseSchema,\n 'credit purchase response',\n );\n};\n\nRegistryBrokerClient.prototype.getX402Minimums = async function (\n this: RegistryBrokerClient,\n): Promise<X402MinimumsResponse> {\n const raw = await this.requestJson<JsonValue>(\n '/credits/purchase/x402/minimums',\n { method: 'GET' },\n );\n return this.parseWithSchema(\n raw,\n x402MinimumsResponseSchema,\n 'x402 minimums response',\n );\n};\n\nRegistryBrokerClient.prototype.purchaseCreditsWithX402 = async function (\n this: RegistryBrokerClient,\n params: PurchaseCreditsWithX402Params,\n): Promise<X402PurchaseResult> {\n const { createPaymentClient, decodePaymentResponse } =\n await loadX402Dependencies(this);\n\n if (!Number.isFinite(params.credits) || params.credits <= 0) {\n throw new Error('credits must be a positive number');\n }\n if (\n params.usdAmount !== undefined &&\n (!Number.isFinite(params.usdAmount) || params.usdAmount <= 0)\n ) {\n throw new Error('usdAmount must be a positive number when provided');\n }\n\n const body: JsonObject = {\n accountId: params.accountId,\n credits: params.credits,\n };\n\n if (params.usdAmount !== undefined) {\n body.usdAmount = params.usdAmount;\n }\n if (params.description) {\n body.description = params.description;\n }\n if (params.metadata) {\n body.metadata = params.metadata;\n }\n\n const paymentClient = createPaymentClient(params.walletClient);\n\n const response = await paymentClient.post('/credits/purchase/x402', body);\n\n const parsed = this.parseWithSchema(\n response.data,\n x402CreditPurchaseResponseSchema,\n 'x402 credit purchase response',\n );\n\n const responseHeaders = response.headers ?? {};\n const paymentHeader =\n typeof responseHeaders['x-payment-response'] === 'string'\n ? responseHeaders['x-payment-response']\n : undefined;\n const decodedPayment =\n paymentHeader !== undefined\n ? decodePaymentResponse(paymentHeader)\n : undefined;\n\n return {\n ...parsed,\n paymentResponseHeader: paymentHeader,\n paymentResponse: decodedPayment,\n };\n};\n\nRegistryBrokerClient.prototype.buyCreditsWithX402 = async function (\n this: RegistryBrokerClient,\n params: BuyCreditsWithX402Params,\n): Promise<X402PurchaseResult> {\n const network: X402NetworkId = params.network ?? 'base';\n const { createX402Signer } = await loadX402Dependencies(this);\n const normalizedKey = normalizeHexPrivateKey(params.evmPrivateKey);\n const walletClient = await createX402Signer(network, normalizedKey);\n\n return this.purchaseCreditsWithX402({\n accountId: params.accountId,\n credits: params.credits,\n usdAmount: params.usdAmount,\n description: params.description,\n metadata: params.metadata,\n walletClient,\n });\n};\n"],"names":[],"mappings":"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"}
|