@hashgraphonline/standards-sdk 0.1.160 → 0.1.161
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/hcs-14/resolvers/registry.d.ts +18 -1
- package/dist/cjs/hcs-14/resolvers/registry.d.ts.map +1 -1
- package/dist/cjs/hcs-14/resolvers/types.d.ts +17 -0
- package/dist/cjs/hcs-14/resolvers/types.d.ts.map +1 -1
- package/dist/cjs/hcs-14/sdk.d.ts +24 -13
- package/dist/cjs/hcs-14/sdk.d.ts.map +1 -1
- package/dist/cjs/standards-sdk.cjs +3 -3
- package/dist/cjs/standards-sdk.cjs.map +1 -1
- package/dist/es/hcs-14/resolvers/registry.d.ts +18 -1
- package/dist/es/hcs-14/resolvers/registry.d.ts.map +1 -1
- package/dist/es/hcs-14/resolvers/types.d.ts +17 -0
- package/dist/es/hcs-14/resolvers/types.d.ts.map +1 -1
- package/dist/es/hcs-14/sdk.d.ts +24 -13
- package/dist/es/hcs-14/sdk.d.ts.map +1 -1
- package/dist/es/standards-sdk.es.js +94 -90
- package/dist/es/standards-sdk.es.js.map +1 -1
- package/dist/es/standards-sdk.es100.js +138 -42
- package/dist/es/standards-sdk.es100.js.map +1 -1
- package/dist/es/standards-sdk.es101.js +43 -259
- package/dist/es/standards-sdk.es101.js.map +1 -1
- package/dist/es/standards-sdk.es102.js +245 -82
- package/dist/es/standards-sdk.es102.js.map +1 -1
- package/dist/es/standards-sdk.es103.js +50 -49
- package/dist/es/standards-sdk.es103.js.map +1 -1
- package/dist/es/standards-sdk.es104.js +100 -29
- package/dist/es/standards-sdk.es104.js.map +1 -1
- package/dist/es/standards-sdk.es105.js +27 -229
- package/dist/es/standards-sdk.es105.js.map +1 -1
- package/dist/es/standards-sdk.es106.js +228 -109
- package/dist/es/standards-sdk.es106.js.map +1 -1
- package/dist/es/standards-sdk.es107.js +94 -15
- package/dist/es/standards-sdk.es107.js.map +1 -1
- package/dist/es/standards-sdk.es108.js +30 -80
- package/dist/es/standards-sdk.es108.js.map +1 -1
- package/dist/es/standards-sdk.es109.js +80 -27
- 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 +27 -248
- package/dist/es/standards-sdk.es110.js.map +1 -1
- package/dist/es/standards-sdk.es111.js +246 -472
- package/dist/es/standards-sdk.es111.js.map +1 -1
- package/dist/es/standards-sdk.es112.js +458 -85
- package/dist/es/standards-sdk.es112.js.map +1 -1
- package/dist/es/standards-sdk.es113.js +96 -151
- package/dist/es/standards-sdk.es113.js.map +1 -1
- package/dist/es/standards-sdk.es114.js +155 -29
- package/dist/es/standards-sdk.es114.js.map +1 -1
- package/dist/es/standards-sdk.es115.js +26 -4
- package/dist/es/standards-sdk.es115.js.map +1 -1
- package/dist/es/standards-sdk.es116.js +10 -140
- package/dist/es/standards-sdk.es116.js.map +1 -1
- package/dist/es/standards-sdk.es117.js +140 -27
- package/dist/es/standards-sdk.es117.js.map +1 -1
- package/dist/es/standards-sdk.es118.js +27 -20
- package/dist/es/standards-sdk.es118.js.map +1 -1
- package/dist/es/standards-sdk.es119.js +18 -156
- package/dist/es/standards-sdk.es119.js.map +1 -1
- package/dist/es/standards-sdk.es12.js +1 -1
- package/dist/es/standards-sdk.es120.js +148 -191
- package/dist/es/standards-sdk.es120.js.map +1 -1
- package/dist/es/standards-sdk.es121.js +160 -747
- package/dist/es/standards-sdk.es121.js.map +1 -1
- package/dist/es/standards-sdk.es122.js +786 -9
- package/dist/es/standards-sdk.es122.js.map +1 -1
- package/dist/es/standards-sdk.es123.js +13 -567
- package/dist/es/standards-sdk.es123.js.map +1 -1
- package/dist/es/standards-sdk.es124.js +541 -576
- package/dist/es/standards-sdk.es124.js.map +1 -1
- package/dist/es/standards-sdk.es125.js +601 -12
- package/dist/es/standards-sdk.es125.js.map +1 -1
- package/dist/es/standards-sdk.es126.js +13 -2
- package/dist/es/standards-sdk.es126.js.map +1 -1
- package/dist/es/standards-sdk.es127.js +2 -87
- package/dist/es/standards-sdk.es127.js.map +1 -1
- package/dist/es/standards-sdk.es128.js +84 -37
- package/dist/es/standards-sdk.es128.js.map +1 -1
- package/dist/es/standards-sdk.es129.js +40 -2
- package/dist/es/standards-sdk.es129.js.map +1 -1
- package/dist/es/standards-sdk.es13.js +1 -1
- package/dist/es/standards-sdk.es130.js +2 -235
- package/dist/es/standards-sdk.es130.js.map +1 -1
- package/dist/es/standards-sdk.es131.js +204 -1109
- package/dist/es/standards-sdk.es131.js.map +1 -1
- package/dist/es/standards-sdk.es132.js +1059 -225
- package/dist/es/standards-sdk.es132.js.map +1 -1
- package/dist/es/standards-sdk.es133.js +303 -419
- package/dist/es/standards-sdk.es133.js.map +1 -1
- package/dist/es/standards-sdk.es134.js +418 -351
- package/dist/es/standards-sdk.es134.js.map +1 -1
- package/dist/es/standards-sdk.es135.js +347 -1108
- package/dist/es/standards-sdk.es135.js.map +1 -1
- package/dist/es/standards-sdk.es136.js +1088 -180
- package/dist/es/standards-sdk.es136.js.map +1 -1
- package/dist/es/standards-sdk.es137.js +153 -1512
- package/dist/es/standards-sdk.es137.js.map +1 -1
- package/dist/es/standards-sdk.es138.js +1567 -1255
- package/dist/es/standards-sdk.es138.js.map +1 -1
- package/dist/es/standards-sdk.es139.js +1255 -17
- package/dist/es/standards-sdk.es139.js.map +1 -1
- package/dist/es/standards-sdk.es14.js +1 -1
- package/dist/es/standards-sdk.es140.js +15 -85
- package/dist/es/standards-sdk.es140.js.map +1 -1
- package/dist/es/standards-sdk.es141.js +77 -71
- package/dist/es/standards-sdk.es141.js.map +1 -1
- package/dist/es/standards-sdk.es142.js +79 -891
- package/dist/es/standards-sdk.es142.js.map +1 -1
- package/dist/es/standards-sdk.es143.js +886 -53
- package/dist/es/standards-sdk.es143.js.map +1 -1
- package/dist/es/standards-sdk.es144.js +53 -152
- package/dist/es/standards-sdk.es144.js.map +1 -1
- package/dist/es/standards-sdk.es145.js +159 -7
- package/dist/es/standards-sdk.es145.js.map +1 -1
- package/dist/es/standards-sdk.es146.js +7 -86
- package/dist/es/standards-sdk.es146.js.map +1 -1
- package/dist/es/standards-sdk.es147.js +65 -44
- package/dist/es/standards-sdk.es147.js.map +1 -1
- package/dist/es/standards-sdk.es148.js +65 -30
- package/dist/es/standards-sdk.es148.js.map +1 -1
- package/dist/es/standards-sdk.es149.js +30 -34
- package/dist/es/standards-sdk.es149.js.map +1 -1
- package/dist/es/standards-sdk.es15.js +1 -1
- package/dist/es/standards-sdk.es150.js +34 -41
- package/dist/es/standards-sdk.es150.js.map +1 -1
- package/dist/es/standards-sdk.es151.js +45 -138
- package/dist/es/standards-sdk.es151.js.map +1 -1
- package/dist/es/standards-sdk.es152.js +133 -37
- package/dist/es/standards-sdk.es152.js.map +1 -1
- package/dist/es/standards-sdk.es153.js +34 -12474
- package/dist/es/standards-sdk.es153.js.map +1 -1
- package/dist/es/standards-sdk.es154.js +12444 -134
- package/dist/es/standards-sdk.es154.js.map +1 -1
- package/dist/es/standards-sdk.es155.js +13 -318
- package/dist/es/standards-sdk.es155.js.map +1 -1
- package/dist/es/standards-sdk.es156.js +55 -345
- package/dist/es/standards-sdk.es156.js.map +1 -1
- package/dist/es/standards-sdk.es157.js +68 -437
- package/dist/es/standards-sdk.es157.js.map +1 -1
- package/dist/es/standards-sdk.es158.js +71 -321
- package/dist/es/standards-sdk.es158.js.map +1 -1
- package/dist/es/standards-sdk.es159.js +63 -66
- package/dist/es/standards-sdk.es159.js.map +1 -1
- package/dist/es/standards-sdk.es16.js +5 -5
- package/dist/es/standards-sdk.es160.js +168 -13
- package/dist/es/standards-sdk.es160.js.map +1 -1
- package/dist/es/standards-sdk.es161.js +312 -232
- package/dist/es/standards-sdk.es161.js.map +1 -1
- package/dist/es/standards-sdk.es162.js +345 -55
- package/dist/es/standards-sdk.es162.js.map +1 -1
- package/dist/es/standards-sdk.es163.js +437 -68
- package/dist/es/standards-sdk.es163.js.map +1 -1
- package/dist/es/standards-sdk.es164.js +321 -71
- package/dist/es/standards-sdk.es164.js.map +1 -1
- package/dist/es/standards-sdk.es165.js +66 -63
- package/dist/es/standards-sdk.es165.js.map +1 -1
- package/dist/es/standards-sdk.es166.js +220 -150
- package/dist/es/standards-sdk.es166.js.map +1 -1
- package/dist/es/standards-sdk.es167.js +152 -202
- package/dist/es/standards-sdk.es167.js.map +1 -1
- package/dist/es/standards-sdk.es168.js +206 -223
- package/dist/es/standards-sdk.es168.js.map +1 -1
- package/dist/es/standards-sdk.es169.js +227 -107
- package/dist/es/standards-sdk.es169.js.map +1 -1
- package/dist/es/standards-sdk.es170.js +98 -105
- package/dist/es/standards-sdk.es170.js.map +1 -1
- package/dist/es/standards-sdk.es171.js +105 -140
- package/dist/es/standards-sdk.es171.js.map +1 -1
- package/dist/es/standards-sdk.es172.js +140 -164
- package/dist/es/standards-sdk.es172.js.map +1 -1
- package/dist/es/standards-sdk.es173.js +165 -119
- package/dist/es/standards-sdk.es173.js.map +1 -1
- package/dist/es/standards-sdk.es174.js +111 -303
- package/dist/es/standards-sdk.es174.js.map +1 -1
- package/dist/es/standards-sdk.es175.js +297 -225
- package/dist/es/standards-sdk.es175.js.map +1 -1
- package/dist/es/standards-sdk.es176.js +253 -110
- package/dist/es/standards-sdk.es176.js.map +1 -1
- package/dist/es/standards-sdk.es177.js +119 -0
- package/dist/es/standards-sdk.es177.js.map +1 -0
- package/dist/es/standards-sdk.es18.js +12 -12
- package/dist/es/standards-sdk.es19.js +9 -9
- package/dist/es/standards-sdk.es2.js +2 -2
- package/dist/es/standards-sdk.es20.js +1 -1
- package/dist/es/standards-sdk.es21.js +1 -1
- package/dist/es/standards-sdk.es22.js +1 -1
- package/dist/es/standards-sdk.es23.js +1 -1
- package/dist/es/standards-sdk.es24.js +1 -1
- package/dist/es/standards-sdk.es25.js +1 -1
- package/dist/es/standards-sdk.es26.js +1 -1
- package/dist/es/standards-sdk.es27.js +12 -12
- package/dist/es/standards-sdk.es30.js +2 -2
- package/dist/es/standards-sdk.es31.js +4 -4
- package/dist/es/standards-sdk.es32.js +1 -1
- package/dist/es/standards-sdk.es35.js +6 -6
- package/dist/es/standards-sdk.es36.js +4 -4
- package/dist/es/standards-sdk.es37.js +2 -2
- package/dist/es/standards-sdk.es38.js +2 -2
- package/dist/es/standards-sdk.es39.js +1 -1
- package/dist/es/standards-sdk.es4.js +2 -2
- package/dist/es/standards-sdk.es40.js +1 -1
- package/dist/es/standards-sdk.es41.js +2 -2
- package/dist/es/standards-sdk.es46.js +1 -1
- package/dist/es/standards-sdk.es5.js +2 -2
- package/dist/es/standards-sdk.es51.js +1 -1
- package/dist/es/standards-sdk.es53.js +1 -1
- package/dist/es/standards-sdk.es56.js +2 -2
- package/dist/es/standards-sdk.es58.js +11 -236
- package/dist/es/standards-sdk.es58.js.map +1 -1
- package/dist/es/standards-sdk.es59.js +321 -35
- package/dist/es/standards-sdk.es59.js.map +1 -1
- package/dist/es/standards-sdk.es6.js +2 -2
- package/dist/es/standards-sdk.es60.js +32 -101
- package/dist/es/standards-sdk.es60.js.map +1 -1
- package/dist/es/standards-sdk.es61.js +86 -156
- package/dist/es/standards-sdk.es61.js.map +1 -1
- package/dist/es/standards-sdk.es62.js +112 -153
- package/dist/es/standards-sdk.es62.js.map +1 -1
- package/dist/es/standards-sdk.es63.js +179 -87
- package/dist/es/standards-sdk.es63.js.map +1 -1
- package/dist/es/standards-sdk.es64.js +124 -40
- package/dist/es/standards-sdk.es64.js.map +1 -1
- package/dist/es/standards-sdk.es65.js +41 -251
- package/dist/es/standards-sdk.es65.js.map +1 -1
- package/dist/es/standards-sdk.es66.js +257 -24
- package/dist/es/standards-sdk.es66.js.map +1 -1
- package/dist/es/standards-sdk.es67.js +25 -87
- package/dist/es/standards-sdk.es67.js.map +1 -1
- package/dist/es/standards-sdk.es68.js +95 -3
- package/dist/es/standards-sdk.es68.js.map +1 -1
- package/dist/es/standards-sdk.es69.js +3 -100
- package/dist/es/standards-sdk.es69.js.map +1 -1
- package/dist/es/standards-sdk.es7.js +1 -1
- package/dist/es/standards-sdk.es70.js +62 -61
- package/dist/es/standards-sdk.es70.js.map +1 -1
- package/dist/es/standards-sdk.es71.js +98 -17
- package/dist/es/standards-sdk.es71.js.map +1 -1
- package/dist/es/standards-sdk.es72.js +19 -77
- package/dist/es/standards-sdk.es72.js.map +1 -1
- package/dist/es/standards-sdk.es73.js +77 -458
- package/dist/es/standards-sdk.es73.js.map +1 -1
- package/dist/es/standards-sdk.es74.js +240 -106
- package/dist/es/standards-sdk.es74.js.map +1 -1
- package/dist/es/standards-sdk.es75.js +286 -170
- package/dist/es/standards-sdk.es75.js.map +1 -1
- package/dist/es/standards-sdk.es76.js +207 -71
- package/dist/es/standards-sdk.es76.js.map +1 -1
- package/dist/es/standards-sdk.es77.js +72 -71
- package/dist/es/standards-sdk.es77.js.map +1 -1
- package/dist/es/standards-sdk.es78.js +71 -143
- package/dist/es/standards-sdk.es78.js.map +1 -1
- package/dist/es/standards-sdk.es79.js +136 -62
- package/dist/es/standards-sdk.es79.js.map +1 -1
- package/dist/es/standards-sdk.es80.js +45 -380
- package/dist/es/standards-sdk.es80.js.map +1 -1
- package/dist/es/standards-sdk.es81.js +130 -222
- package/dist/es/standards-sdk.es81.js.map +1 -1
- package/dist/es/standards-sdk.es82.js +444 -313
- package/dist/es/standards-sdk.es82.js.map +1 -1
- package/dist/es/standards-sdk.es83.js +364 -88
- package/dist/es/standards-sdk.es83.js.map +1 -1
- package/dist/es/standards-sdk.es84.js +89 -125
- package/dist/es/standards-sdk.es84.js.map +1 -1
- package/dist/es/standards-sdk.es85.js +125 -8
- package/dist/es/standards-sdk.es85.js.map +1 -1
- package/dist/es/standards-sdk.es86.js +6 -45
- package/dist/es/standards-sdk.es86.js.map +1 -1
- package/dist/es/standards-sdk.es87.js +44 -98
- package/dist/es/standards-sdk.es87.js.map +1 -1
- package/dist/es/standards-sdk.es88.js +84 -331
- package/dist/es/standards-sdk.es88.js.map +1 -1
- package/dist/es/standards-sdk.es89.js +160 -93
- package/dist/es/standards-sdk.es89.js.map +1 -1
- package/dist/es/standards-sdk.es9.js +2 -2
- package/dist/es/standards-sdk.es90.js +275 -55
- package/dist/es/standards-sdk.es90.js.map +1 -1
- package/dist/es/standards-sdk.es91.js +55 -43
- package/dist/es/standards-sdk.es91.js.map +1 -1
- package/dist/es/standards-sdk.es92.js +44 -145
- package/dist/es/standards-sdk.es92.js.map +1 -1
- package/dist/es/standards-sdk.es93.js +113 -30
- package/dist/es/standards-sdk.es93.js.map +1 -1
- package/dist/es/standards-sdk.es94.js +59 -22
- package/dist/es/standards-sdk.es94.js.map +1 -1
- package/dist/es/standards-sdk.es95.js +28 -23
- package/dist/es/standards-sdk.es95.js.map +1 -1
- package/dist/es/standards-sdk.es96.js +23 -238
- package/dist/es/standards-sdk.es96.js.map +1 -1
- package/dist/es/standards-sdk.es97.js +225 -267
- package/dist/es/standards-sdk.es97.js.map +1 -1
- package/dist/es/standards-sdk.es98.js +220 -95
- package/dist/es/standards-sdk.es98.js.map +1 -1
- package/dist/es/standards-sdk.es99.js +136 -124
- package/dist/es/standards-sdk.es99.js.map +1 -1
- package/package.json +4 -1
|
@@ -1,175 +1,245 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import { registerEncryptionKeyResponseSchema } from "./standards-sdk.es138.js";
|
|
6
|
-
import { optionalImport } from "./standards-sdk.es163.js";
|
|
7
|
-
const getFs = async () => {
|
|
8
|
-
const fsModule = await optionalImport("node:fs");
|
|
9
|
-
if (fsModule && typeof fsModule.existsSync === "function" && typeof fsModule.readFileSync === "function" && typeof fsModule.writeFileSync === "function" && typeof fsModule.appendFileSync === "function") {
|
|
10
|
-
return fsModule;
|
|
11
|
-
}
|
|
12
|
-
return null;
|
|
13
|
-
};
|
|
14
|
-
async function registerEncryptionKey(client, payload) {
|
|
15
|
-
const raw = await client.requestJson("/encryption/keys", {
|
|
16
|
-
method: "POST",
|
|
17
|
-
headers: { "content-type": "application/json" },
|
|
18
|
-
body: payload
|
|
1
|
+
import { skillVerificationStatusResponseSchema, skillRegistryConfigResponseSchema, skillRegistryListResponseSchema, skillRegistryVersionsResponseSchema, skillRegistryMineResponseSchema, skillRegistryMyListResponseSchema, skillRegistryQuoteResponseSchema, skillRegistryPublishResponseSchema, skillRegistryJobStatusResponseSchema, skillRegistryOwnershipResponseSchema, skillRegistryVoteStatusResponseSchema, skillVerificationRequestCreateResponseSchema } from "./standards-sdk.es139.js";
|
|
2
|
+
async function skillsConfig(client) {
|
|
3
|
+
const raw = await client.requestJson("/skills/config", {
|
|
4
|
+
method: "GET"
|
|
19
5
|
});
|
|
20
6
|
return client.parseWithSchema(
|
|
21
7
|
raw,
|
|
22
|
-
|
|
23
|
-
"
|
|
8
|
+
skillRegistryConfigResponseSchema,
|
|
9
|
+
"skill registry config response"
|
|
24
10
|
);
|
|
25
11
|
}
|
|
26
|
-
function
|
|
27
|
-
const
|
|
28
|
-
if (
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
if (
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
12
|
+
async function listSkills(client, params = {}) {
|
|
13
|
+
const query = new URLSearchParams();
|
|
14
|
+
if (params.name) {
|
|
15
|
+
query.set("name", params.name);
|
|
16
|
+
}
|
|
17
|
+
if (params.version) {
|
|
18
|
+
query.set("version", params.version);
|
|
19
|
+
}
|
|
20
|
+
if (typeof params.limit === "number" && Number.isFinite(params.limit)) {
|
|
21
|
+
query.set("limit", String(Math.trunc(params.limit)));
|
|
36
22
|
}
|
|
37
|
-
if (
|
|
38
|
-
|
|
23
|
+
if (params.cursor) {
|
|
24
|
+
query.set("cursor", params.cursor);
|
|
39
25
|
}
|
|
40
|
-
if (
|
|
41
|
-
|
|
26
|
+
if (typeof params.includeFiles === "boolean") {
|
|
27
|
+
query.set("includeFiles", params.includeFiles ? "true" : "false");
|
|
42
28
|
}
|
|
43
|
-
|
|
29
|
+
if (params.accountId) {
|
|
30
|
+
query.set("accountId", params.accountId);
|
|
31
|
+
}
|
|
32
|
+
const suffix = query.size > 0 ? `?${query.toString()}` : "";
|
|
33
|
+
const raw = await client.requestJson(`/skills${suffix}`, {
|
|
34
|
+
method: "GET"
|
|
35
|
+
});
|
|
36
|
+
return client.parseWithSchema(
|
|
37
|
+
raw,
|
|
38
|
+
skillRegistryListResponseSchema,
|
|
39
|
+
"skill registry list response"
|
|
40
|
+
);
|
|
44
41
|
}
|
|
45
|
-
function
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
42
|
+
async function listSkillVersions(client, params) {
|
|
43
|
+
const normalizedName = params.name.trim();
|
|
44
|
+
if (!normalizedName) {
|
|
45
|
+
throw new Error("name is required");
|
|
46
|
+
}
|
|
47
|
+
const query = new URLSearchParams();
|
|
48
|
+
query.set("name", normalizedName);
|
|
49
|
+
const raw = await client.requestJson(
|
|
50
|
+
`/skills/versions?${query.toString()}`,
|
|
51
|
+
{ method: "GET" }
|
|
52
|
+
);
|
|
53
|
+
return client.parseWithSchema(
|
|
54
|
+
raw,
|
|
55
|
+
skillRegistryVersionsResponseSchema,
|
|
56
|
+
"skill registry versions response"
|
|
57
|
+
);
|
|
49
58
|
}
|
|
50
|
-
async function
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
overwrite: config.overwriteEnv
|
|
65
|
-
});
|
|
66
|
-
return { publicKey: pair.publicKey, privateKey: pair.privateKey };
|
|
67
|
-
}
|
|
68
|
-
if (privateKey) {
|
|
69
|
-
const publicKey = derivePublicKeyFromPrivateKey(client, privateKey);
|
|
70
|
-
return { publicKey, privateKey };
|
|
71
|
-
}
|
|
72
|
-
return null;
|
|
59
|
+
async function listMySkills(client, params = {}) {
|
|
60
|
+
const query = new URLSearchParams();
|
|
61
|
+
if (typeof params.limit === "number" && Number.isFinite(params.limit)) {
|
|
62
|
+
query.set("limit", String(Math.trunc(params.limit)));
|
|
63
|
+
}
|
|
64
|
+
const suffix = query.size > 0 ? `?${query.toString()}` : "";
|
|
65
|
+
const raw = await client.requestJson(`/skills/mine${suffix}`, {
|
|
66
|
+
method: "GET"
|
|
67
|
+
});
|
|
68
|
+
return client.parseWithSchema(
|
|
69
|
+
raw,
|
|
70
|
+
skillRegistryMineResponseSchema,
|
|
71
|
+
"skill registry mine response"
|
|
72
|
+
);
|
|
73
73
|
}
|
|
74
|
-
async function
|
|
75
|
-
const
|
|
76
|
-
if (
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
if (
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
keyType: config.keyType ?? "secp256k1",
|
|
89
|
-
publicKey: material.publicKey,
|
|
90
|
-
...identity
|
|
74
|
+
async function getMySkillsList(client, params = {}) {
|
|
75
|
+
const query = new URLSearchParams();
|
|
76
|
+
if (typeof params.limit === "number" && Number.isFinite(params.limit)) {
|
|
77
|
+
query.set("limit", String(Math.trunc(params.limit)));
|
|
78
|
+
}
|
|
79
|
+
if (params.cursor) {
|
|
80
|
+
query.set("cursor", params.cursor);
|
|
81
|
+
}
|
|
82
|
+
if (params.accountId) {
|
|
83
|
+
query.set("accountId", params.accountId);
|
|
84
|
+
}
|
|
85
|
+
const suffix = query.size > 0 ? `?${query.toString()}` : "";
|
|
86
|
+
const raw = await client.requestJson(`/skills/my-list${suffix}`, {
|
|
87
|
+
method: "GET"
|
|
91
88
|
});
|
|
92
|
-
return
|
|
89
|
+
return client.parseWithSchema(
|
|
90
|
+
raw,
|
|
91
|
+
skillRegistryMyListResponseSchema,
|
|
92
|
+
"skill registry my list response"
|
|
93
|
+
);
|
|
93
94
|
}
|
|
94
|
-
async function
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
95
|
+
async function quoteSkillPublish(client, payload) {
|
|
96
|
+
const raw = await client.requestJson("/skills/quote", {
|
|
97
|
+
method: "POST",
|
|
98
|
+
body: payload,
|
|
99
|
+
headers: { "content-type": "application/json" }
|
|
98
100
|
});
|
|
101
|
+
return client.parseWithSchema(
|
|
102
|
+
raw,
|
|
103
|
+
skillRegistryQuoteResponseSchema,
|
|
104
|
+
"skill registry quote response"
|
|
105
|
+
);
|
|
99
106
|
}
|
|
100
|
-
function
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
107
|
+
async function publishSkill(client, payload) {
|
|
108
|
+
const raw = await client.requestJson("/skills/publish", {
|
|
109
|
+
method: "POST",
|
|
110
|
+
body: payload,
|
|
111
|
+
headers: { "content-type": "application/json" }
|
|
112
|
+
});
|
|
113
|
+
return client.parseWithSchema(
|
|
114
|
+
raw,
|
|
115
|
+
skillRegistryPublishResponseSchema,
|
|
116
|
+
"skill registry publish response"
|
|
117
|
+
);
|
|
109
118
|
}
|
|
110
|
-
async function
|
|
111
|
-
|
|
112
|
-
|
|
119
|
+
async function getSkillPublishJob(client, jobId, params = {}) {
|
|
120
|
+
const normalized = jobId.trim();
|
|
121
|
+
if (!normalized) {
|
|
122
|
+
throw new Error("jobId is required");
|
|
113
123
|
}
|
|
114
|
-
|
|
124
|
+
const query = new URLSearchParams();
|
|
125
|
+
if (params.accountId) {
|
|
126
|
+
query.set("accountId", params.accountId);
|
|
127
|
+
}
|
|
128
|
+
const suffix = query.size > 0 ? `?${query.toString()}` : "";
|
|
129
|
+
const raw = await client.requestJson(
|
|
130
|
+
`/skills/jobs/${encodeURIComponent(normalized)}${suffix}`,
|
|
131
|
+
{ method: "GET" }
|
|
132
|
+
);
|
|
133
|
+
return client.parseWithSchema(
|
|
134
|
+
raw,
|
|
135
|
+
skillRegistryJobStatusResponseSchema,
|
|
136
|
+
"skill registry job status response"
|
|
137
|
+
);
|
|
115
138
|
}
|
|
116
|
-
async function
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
const
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
if (!fsModule) {
|
|
131
|
-
throw new Error(
|
|
132
|
-
"File system module is not available; cannot write encryption key env file"
|
|
133
|
-
);
|
|
139
|
+
async function getSkillOwnership(client, params) {
|
|
140
|
+
const normalizedName = params.name.trim();
|
|
141
|
+
if (!normalizedName) {
|
|
142
|
+
throw new Error("name is required");
|
|
143
|
+
}
|
|
144
|
+
const query = new URLSearchParams();
|
|
145
|
+
query.set("name", normalizedName);
|
|
146
|
+
if (params.accountId) {
|
|
147
|
+
query.set("accountId", params.accountId);
|
|
148
|
+
}
|
|
149
|
+
const raw = await client.requestJson(
|
|
150
|
+
`/skills/ownership?${query.toString()}`,
|
|
151
|
+
{
|
|
152
|
+
method: "GET"
|
|
134
153
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
154
|
+
);
|
|
155
|
+
return client.parseWithSchema(
|
|
156
|
+
raw,
|
|
157
|
+
skillRegistryOwnershipResponseSchema,
|
|
158
|
+
"skill registry ownership response"
|
|
159
|
+
);
|
|
160
|
+
}
|
|
161
|
+
async function getSkillVoteStatus(client, params) {
|
|
162
|
+
const normalizedName = params.name.trim();
|
|
163
|
+
if (!normalizedName) {
|
|
164
|
+
throw new Error("name is required");
|
|
165
|
+
}
|
|
166
|
+
const query = new URLSearchParams();
|
|
167
|
+
query.set("name", normalizedName);
|
|
168
|
+
const raw = await client.requestJson(
|
|
169
|
+
`/skills/vote?${query.toString()}`,
|
|
170
|
+
{ method: "GET" }
|
|
171
|
+
);
|
|
172
|
+
return client.parseWithSchema(
|
|
173
|
+
raw,
|
|
174
|
+
skillRegistryVoteStatusResponseSchema,
|
|
175
|
+
"skill registry vote status response"
|
|
176
|
+
);
|
|
177
|
+
}
|
|
178
|
+
async function setSkillVote(client, payload) {
|
|
179
|
+
const normalizedName = payload.name.trim();
|
|
180
|
+
if (!normalizedName) {
|
|
181
|
+
throw new Error("name is required");
|
|
182
|
+
}
|
|
183
|
+
const raw = await client.requestJson("/skills/vote", {
|
|
184
|
+
method: "POST",
|
|
185
|
+
body: { name: normalizedName, upvoted: payload.upvoted },
|
|
186
|
+
headers: { "content-type": "application/json" }
|
|
187
|
+
});
|
|
188
|
+
return client.parseWithSchema(
|
|
189
|
+
raw,
|
|
190
|
+
skillRegistryVoteStatusResponseSchema,
|
|
191
|
+
"skill registry vote status response"
|
|
192
|
+
);
|
|
193
|
+
}
|
|
194
|
+
async function requestSkillVerification(client, payload) {
|
|
195
|
+
const normalizedName = payload.name.trim();
|
|
196
|
+
if (!normalizedName) {
|
|
197
|
+
throw new Error("name is required");
|
|
198
|
+
}
|
|
199
|
+
const raw = await client.requestJson(
|
|
200
|
+
"/skills/verification/request",
|
|
201
|
+
{
|
|
202
|
+
method: "POST",
|
|
203
|
+
body: { name: normalizedName, tier: payload.tier },
|
|
204
|
+
headers: { "content-type": "application/json" }
|
|
158
205
|
}
|
|
206
|
+
);
|
|
207
|
+
return client.parseWithSchema(
|
|
208
|
+
raw,
|
|
209
|
+
skillVerificationRequestCreateResponseSchema,
|
|
210
|
+
"skill verification request create response"
|
|
211
|
+
);
|
|
212
|
+
}
|
|
213
|
+
async function getSkillVerificationStatus(client, params) {
|
|
214
|
+
const normalizedName = params.name.trim();
|
|
215
|
+
if (!normalizedName) {
|
|
216
|
+
throw new Error("name is required");
|
|
159
217
|
}
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
218
|
+
const query = new URLSearchParams();
|
|
219
|
+
query.set("name", normalizedName);
|
|
220
|
+
const raw = await client.requestJson(
|
|
221
|
+
`/skills/verification/status?${query.toString()}`,
|
|
222
|
+
{ method: "GET" }
|
|
223
|
+
);
|
|
224
|
+
return client.parseWithSchema(
|
|
225
|
+
raw,
|
|
226
|
+
skillVerificationStatusResponseSchema,
|
|
227
|
+
"skill verification status response"
|
|
228
|
+
);
|
|
166
229
|
}
|
|
167
230
|
export {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
231
|
+
getMySkillsList,
|
|
232
|
+
getSkillOwnership,
|
|
233
|
+
getSkillPublishJob,
|
|
234
|
+
getSkillVerificationStatus,
|
|
235
|
+
getSkillVoteStatus,
|
|
236
|
+
listMySkills,
|
|
237
|
+
listSkillVersions,
|
|
238
|
+
listSkills,
|
|
239
|
+
publishSkill,
|
|
240
|
+
quoteSkillPublish,
|
|
241
|
+
requestSkillVerification,
|
|
242
|
+
setSkillVote,
|
|
243
|
+
skillsConfig
|
|
174
244
|
};
|
|
175
245
|
//# sourceMappingURL=standards-sdk.es166.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es166.js","sources":["../../src/services/registry-broker/client/encryption.ts"],"sourcesContent":["import * as path from 'path';\nimport { Buffer } from 'buffer';\nimport { randomBytes } from 'crypto';\nimport { secp256k1 } from '@noble/curves/secp256k1.js';\nimport type {\n AutoRegisterEncryptionKeyOptions,\n CipherEnvelope,\n ClientEncryptionOptions,\n DecryptCipherEnvelopeOptions,\n DeriveSharedSecretOptions,\n EncryptCipherEnvelopeOptions,\n EphemeralKeyPair,\n EnsureAgentKeyOptions,\n RegisterEncryptionKeyPayload,\n RegisterEncryptionKeyResponse,\n SharedSecretInput,\n} from '../types';\nimport { registerEncryptionKeyResponseSchema } from '../schemas';\nimport { optionalImport } from '../../../utils/dynamic-import';\nimport type {\n RegistryBrokerClient,\n GenerateEncryptionKeyPairOptions,\n} from './base-client';\n\ntype FsModule = {\n existsSync: (path: string) => boolean;\n readFileSync: (path: string, encoding: BufferEncoding) => string;\n writeFileSync: (path: string, data: string) => void;\n appendFileSync: (path: string, data: string) => void;\n};\n\nconst getFs = async (): Promise<FsModule | null> => {\n const fsModule = await optionalImport<Partial<FsModule>>('node:fs');\n\n if (\n fsModule &&\n typeof fsModule.existsSync === 'function' &&\n typeof fsModule.readFileSync === 'function' &&\n typeof fsModule.writeFileSync === 'function' &&\n typeof fsModule.appendFileSync === 'function'\n ) {\n return fsModule as FsModule;\n }\n\n return null;\n};\n\nexport interface RegistryBrokerEncryptionApi {\n registerKey: (\n payload: RegisterEncryptionKeyPayload,\n ) => Promise<RegisterEncryptionKeyResponse>;\n generateEphemeralKeyPair: () => EphemeralKeyPair;\n deriveSharedSecret: (options: DeriveSharedSecretOptions) => Buffer;\n encryptCipherEnvelope: (\n options: EncryptCipherEnvelopeOptions,\n ) => CipherEnvelope;\n decryptCipherEnvelope: (options: DecryptCipherEnvelopeOptions) => string;\n ensureAgentKey: (\n options: EnsureAgentKeyOptions,\n ) => Promise<{ publicKey: string; privateKey?: string }>;\n}\n\nexport async function registerEncryptionKey(\n client: RegistryBrokerClient,\n payload: RegisterEncryptionKeyPayload,\n): Promise<RegisterEncryptionKeyResponse> {\n const raw = await client.requestJson('/encryption/keys', {\n method: 'POST',\n headers: { 'content-type': 'application/json' },\n body: payload,\n });\n return client.parseWithSchema(\n raw,\n registerEncryptionKeyResponseSchema,\n 'register encryption key response',\n );\n}\n\nfunction normalizeAutoRegisterIdentity(\n config: AutoRegisterEncryptionKeyOptions,\n): Pick<\n RegisterEncryptionKeyPayload,\n 'uaid' | 'ledgerAccountId' | 'ledgerNetwork' | 'email'\n> | null {\n const identity: Pick<\n RegisterEncryptionKeyPayload,\n 'uaid' | 'ledgerAccountId' | 'ledgerNetwork' | 'email'\n > = {};\n if (config.uaid) {\n identity.uaid = config.uaid;\n }\n if (config.ledgerAccountId) {\n identity.ledgerAccountId = config.ledgerAccountId;\n if (config.ledgerNetwork) {\n identity.ledgerNetwork = config.ledgerNetwork;\n }\n }\n if (config.email) {\n identity.email = config.email;\n }\n if (identity.uaid || identity.ledgerAccountId || identity.email) {\n return identity;\n }\n return null;\n}\n\nfunction derivePublicKeyFromPrivateKey(\n client: RegistryBrokerClient,\n privateKey: string,\n): string {\n const normalized = client.hexToBuffer(privateKey);\n const publicKey = secp256k1.getPublicKey(normalized, true);\n return Buffer.from(publicKey).toString('hex');\n}\n\nasync function resolveAutoRegisterKeyMaterial(\n client: RegistryBrokerClient,\n config: AutoRegisterEncryptionKeyOptions,\n): Promise<{ publicKey: string; privateKey?: string } | null> {\n if (config.publicKey?.trim()) {\n return { publicKey: config.publicKey.trim() };\n }\n let privateKey = config.privateKey?.trim();\n const envVar = config.envVar ?? 'RB_ENCRYPTION_PRIVATE_KEY';\n if (!privateKey && envVar && process?.env?.[envVar]?.trim()) {\n privateKey = process.env[envVar]?.trim();\n }\n if (!privateKey && config.generateIfMissing) {\n const pair = await client.generateEncryptionKeyPair({\n keyType: config.keyType ?? 'secp256k1',\n envVar,\n envPath: config.envPath,\n overwrite: config.overwriteEnv,\n });\n return { publicKey: pair.publicKey, privateKey: pair.privateKey };\n }\n if (privateKey) {\n const publicKey = derivePublicKeyFromPrivateKey(client, privateKey);\n return { publicKey, privateKey };\n }\n return null;\n}\n\nexport async function autoRegisterEncryptionKey(\n client: RegistryBrokerClient,\n config: AutoRegisterEncryptionKeyOptions,\n): Promise<{ publicKey: string; privateKey?: string }> {\n const identity = normalizeAutoRegisterIdentity(config);\n if (!identity) {\n throw new Error(\n 'Auto-registration requires uaid, ledgerAccountId, or email',\n );\n }\n const material = await resolveAutoRegisterKeyMaterial(client, config);\n if (!material) {\n throw new Error(\n 'Unable to resolve encryption public key for auto-registration',\n );\n }\n await registerEncryptionKey(client, {\n keyType: config.keyType ?? 'secp256k1',\n publicKey: material.publicKey,\n ...identity,\n });\n return material;\n}\n\nexport async function ensureAgentEncryptionKey(\n client: RegistryBrokerClient,\n options: EnsureAgentKeyOptions,\n): Promise<{ publicKey: string; privateKey?: string }> {\n return autoRegisterEncryptionKey(client, {\n ...options,\n uaid: options.uaid,\n enabled: true,\n });\n}\n\nexport function createEncryptionApi(\n client: RegistryBrokerClient,\n): RegistryBrokerEncryptionApi {\n return {\n registerKey: (payload: RegisterEncryptionKeyPayload) =>\n registerEncryptionKey(client, payload),\n generateEphemeralKeyPair: () => client.createEphemeralKeyPair(),\n deriveSharedSecret: (options: DeriveSharedSecretOptions) =>\n client.deriveSharedSecret(options),\n encryptCipherEnvelope: (options: EncryptCipherEnvelopeOptions) =>\n client.buildCipherEnvelope(options),\n decryptCipherEnvelope: (options: DecryptCipherEnvelopeOptions) =>\n client.openCipherEnvelope(options),\n ensureAgentKey: (options: EnsureAgentKeyOptions) =>\n ensureAgentEncryptionKey(client, options),\n };\n}\n\nexport async function bootstrapEncryptionOptions(\n client: RegistryBrokerClient,\n options?: ClientEncryptionOptions,\n): Promise<{ publicKey: string; privateKey?: string } | null> {\n if (!options?.autoRegister || options.autoRegister.enabled === false) {\n return null;\n }\n return autoRegisterEncryptionKey(client, options.autoRegister);\n}\n\nexport async function generateEncryptionKeyPair(\n client: RegistryBrokerClient,\n options: GenerateEncryptionKeyPairOptions = {},\n): Promise<{\n privateKey: string;\n publicKey: string;\n envPath?: string;\n envVar: string;\n}> {\n client.assertNodeRuntime('generateEncryptionKeyPair');\n\n const keyType = options.keyType ?? 'secp256k1';\n if (keyType !== 'secp256k1') {\n throw new Error('Only secp256k1 key generation is supported currently');\n }\n\n const privateKeyBytes = randomBytes(32);\n const privateKey = Buffer.from(privateKeyBytes).toString('hex');\n const publicKeyBytes = secp256k1.getPublicKey(privateKeyBytes, true);\n const publicKey = Buffer.from(publicKeyBytes).toString('hex');\n\n const envVar = options.envVar ?? 'RB_ENCRYPTION_PRIVATE_KEY';\n const resolvedPath = options.envPath\n ? path.resolve(options.envPath)\n : undefined;\n\n if (resolvedPath) {\n const fsModule = await getFs();\n\n if (!fsModule) {\n throw new Error(\n 'File system module is not available; cannot write encryption key env file',\n );\n }\n\n const envLine = `${envVar}=${privateKey}`;\n if (fsModule.existsSync(resolvedPath)) {\n const content = fsModule.readFileSync(resolvedPath, 'utf-8');\n const lineRegex = new RegExp(`^${envVar}=.*$`, 'm');\n if (lineRegex.test(content)) {\n if (!options.overwrite) {\n throw new Error(\n `${envVar} already exists in ${resolvedPath}; set overwrite=true to replace it`,\n );\n }\n const updated = content.replace(lineRegex, envLine);\n fsModule.writeFileSync(resolvedPath, updated);\n } else {\n const needsNewline = !content.endsWith('\\n');\n fsModule.appendFileSync(\n resolvedPath,\n `${needsNewline ? '\\n' : ''}${envLine}\\n`,\n );\n }\n } else {\n fsModule.writeFileSync(resolvedPath, `${envLine}\\n`);\n }\n }\n\n return {\n privateKey,\n publicKey,\n envPath: resolvedPath,\n envVar,\n };\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es166.js","sources":["../../src/services/registry-broker/client/skills.ts"],"sourcesContent":["import type {\n JsonValue,\n SkillRegistryConfigResponse,\n SkillRegistryJobStatusResponse,\n SkillRegistryListResponse,\n SkillRegistryMineResponse,\n SkillRegistryMyListResponse,\n SkillRegistryOwnershipResponse,\n SkillRegistryPublishRequest,\n SkillRegistryPublishResponse,\n SkillRegistryQuoteRequest,\n SkillRegistryQuoteResponse,\n SkillRegistryVoteRequest,\n SkillRegistryVoteStatusResponse,\n SkillRegistryVersionsResponse,\n SkillVerificationRequestCreateRequest,\n SkillVerificationRequestCreateResponse,\n SkillVerificationStatusResponse,\n} from '../types';\nimport {\n skillRegistryConfigResponseSchema,\n skillRegistryJobStatusResponseSchema,\n skillRegistryListResponseSchema,\n skillRegistryMineResponseSchema,\n skillRegistryMyListResponseSchema,\n skillRegistryOwnershipResponseSchema,\n skillRegistryPublishResponseSchema,\n skillRegistryQuoteResponseSchema,\n skillRegistryVoteStatusResponseSchema,\n skillRegistryVersionsResponseSchema,\n skillVerificationRequestCreateResponseSchema,\n skillVerificationStatusResponseSchema,\n} from '../schemas';\nimport type { RegistryBrokerClient } from './base-client';\n\nexport async function skillsConfig(\n client: RegistryBrokerClient,\n): Promise<SkillRegistryConfigResponse> {\n const raw = await client.requestJson<JsonValue>('/skills/config', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n skillRegistryConfigResponseSchema,\n 'skill registry config response',\n );\n}\n\nexport async function listSkills(\n client: RegistryBrokerClient,\n params: {\n name?: string;\n version?: string;\n limit?: number;\n cursor?: string;\n includeFiles?: boolean;\n accountId?: string;\n } = {},\n): Promise<SkillRegistryListResponse> {\n const query = new URLSearchParams();\n if (params.name) {\n query.set('name', params.name);\n }\n if (params.version) {\n query.set('version', params.version);\n }\n if (typeof params.limit === 'number' && Number.isFinite(params.limit)) {\n query.set('limit', String(Math.trunc(params.limit)));\n }\n if (params.cursor) {\n query.set('cursor', params.cursor);\n }\n if (typeof params.includeFiles === 'boolean') {\n query.set('includeFiles', params.includeFiles ? 'true' : 'false');\n }\n if (params.accountId) {\n query.set('accountId', params.accountId);\n }\n\n const suffix = query.size > 0 ? `?${query.toString()}` : '';\n\n const raw = await client.requestJson<JsonValue>(`/skills${suffix}`, {\n method: 'GET',\n });\n\n return client.parseWithSchema(\n raw,\n skillRegistryListResponseSchema,\n 'skill registry list response',\n );\n}\n\nexport async function listSkillVersions(\n client: RegistryBrokerClient,\n params: { name: string },\n): Promise<SkillRegistryVersionsResponse> {\n const normalizedName = params.name.trim();\n if (!normalizedName) {\n throw new Error('name is required');\n }\n\n const query = new URLSearchParams();\n query.set('name', normalizedName);\n\n const raw = await client.requestJson<JsonValue>(\n `/skills/versions?${query.toString()}`,\n { method: 'GET' },\n );\n\n return client.parseWithSchema(\n raw,\n skillRegistryVersionsResponseSchema,\n 'skill registry versions response',\n );\n}\n\nexport async function listMySkills(\n client: RegistryBrokerClient,\n params: { limit?: number } = {},\n): Promise<SkillRegistryMineResponse> {\n const query = new URLSearchParams();\n if (typeof params.limit === 'number' && Number.isFinite(params.limit)) {\n query.set('limit', String(Math.trunc(params.limit)));\n }\n const suffix = query.size > 0 ? `?${query.toString()}` : '';\n\n const raw = await client.requestJson<JsonValue>(`/skills/mine${suffix}`, {\n method: 'GET',\n });\n\n return client.parseWithSchema(\n raw,\n skillRegistryMineResponseSchema,\n 'skill registry mine response',\n );\n}\n\nexport async function getMySkillsList(\n client: RegistryBrokerClient,\n params: { limit?: number; cursor?: string; accountId?: string } = {},\n): Promise<SkillRegistryMyListResponse> {\n const query = new URLSearchParams();\n if (typeof params.limit === 'number' && Number.isFinite(params.limit)) {\n query.set('limit', String(Math.trunc(params.limit)));\n }\n if (params.cursor) {\n query.set('cursor', params.cursor);\n }\n if (params.accountId) {\n query.set('accountId', params.accountId);\n }\n const suffix = query.size > 0 ? `?${query.toString()}` : '';\n\n const raw = await client.requestJson<JsonValue>(`/skills/my-list${suffix}`, {\n method: 'GET',\n });\n\n return client.parseWithSchema(\n raw,\n skillRegistryMyListResponseSchema,\n 'skill registry my list response',\n );\n}\n\nexport async function quoteSkillPublish(\n client: RegistryBrokerClient,\n payload: SkillRegistryQuoteRequest,\n): Promise<SkillRegistryQuoteResponse> {\n const raw = await client.requestJson<JsonValue>('/skills/quote', {\n method: 'POST',\n body: payload,\n headers: { 'content-type': 'application/json' },\n });\n\n return client.parseWithSchema(\n raw,\n skillRegistryQuoteResponseSchema,\n 'skill registry quote response',\n );\n}\n\nexport async function publishSkill(\n client: RegistryBrokerClient,\n payload: SkillRegistryPublishRequest,\n): Promise<SkillRegistryPublishResponse> {\n const raw = await client.requestJson<JsonValue>('/skills/publish', {\n method: 'POST',\n body: payload,\n headers: { 'content-type': 'application/json' },\n });\n\n return client.parseWithSchema(\n raw,\n skillRegistryPublishResponseSchema,\n 'skill registry publish response',\n );\n}\n\nexport async function getSkillPublishJob(\n client: RegistryBrokerClient,\n jobId: string,\n params: { accountId?: string } = {},\n): Promise<SkillRegistryJobStatusResponse> {\n const normalized = jobId.trim();\n if (!normalized) {\n throw new Error('jobId is required');\n }\n\n const query = new URLSearchParams();\n if (params.accountId) {\n query.set('accountId', params.accountId);\n }\n const suffix = query.size > 0 ? `?${query.toString()}` : '';\n\n const raw = await client.requestJson<JsonValue>(\n `/skills/jobs/${encodeURIComponent(normalized)}${suffix}`,\n { method: 'GET' },\n );\n\n return client.parseWithSchema(\n raw,\n skillRegistryJobStatusResponseSchema,\n 'skill registry job status response',\n );\n}\n\nexport async function getSkillOwnership(\n client: RegistryBrokerClient,\n params: { name: string; accountId?: string },\n): Promise<SkillRegistryOwnershipResponse> {\n const normalizedName = params.name.trim();\n if (!normalizedName) {\n throw new Error('name is required');\n }\n\n const query = new URLSearchParams();\n query.set('name', normalizedName);\n if (params.accountId) {\n query.set('accountId', params.accountId);\n }\n\n const raw = await client.requestJson<JsonValue>(\n `/skills/ownership?${query.toString()}`,\n {\n method: 'GET',\n },\n );\n\n return client.parseWithSchema(\n raw,\n skillRegistryOwnershipResponseSchema,\n 'skill registry ownership response',\n );\n}\n\nexport async function getSkillVoteStatus(\n client: RegistryBrokerClient,\n params: { name: string },\n): Promise<SkillRegistryVoteStatusResponse> {\n const normalizedName = params.name.trim();\n if (!normalizedName) {\n throw new Error('name is required');\n }\n\n const query = new URLSearchParams();\n query.set('name', normalizedName);\n\n const raw = await client.requestJson<JsonValue>(\n `/skills/vote?${query.toString()}`,\n { method: 'GET' },\n );\n\n return client.parseWithSchema(\n raw,\n skillRegistryVoteStatusResponseSchema,\n 'skill registry vote status response',\n );\n}\n\nexport async function setSkillVote(\n client: RegistryBrokerClient,\n payload: SkillRegistryVoteRequest,\n): Promise<SkillRegistryVoteStatusResponse> {\n const normalizedName = payload.name.trim();\n if (!normalizedName) {\n throw new Error('name is required');\n }\n\n const raw = await client.requestJson<JsonValue>('/skills/vote', {\n method: 'POST',\n body: { name: normalizedName, upvoted: payload.upvoted },\n headers: { 'content-type': 'application/json' },\n });\n\n return client.parseWithSchema(\n raw,\n skillRegistryVoteStatusResponseSchema,\n 'skill registry vote status response',\n );\n}\n\nexport async function requestSkillVerification(\n client: RegistryBrokerClient,\n payload: SkillVerificationRequestCreateRequest,\n): Promise<SkillVerificationRequestCreateResponse> {\n const normalizedName = payload.name.trim();\n if (!normalizedName) {\n throw new Error('name is required');\n }\n\n const raw = await client.requestJson<JsonValue>(\n '/skills/verification/request',\n {\n method: 'POST',\n body: { name: normalizedName, tier: payload.tier },\n headers: { 'content-type': 'application/json' },\n },\n );\n\n return client.parseWithSchema(\n raw,\n skillVerificationRequestCreateResponseSchema,\n 'skill verification request create response',\n );\n}\n\nexport async function getSkillVerificationStatus(\n client: RegistryBrokerClient,\n params: { name: string },\n): Promise<SkillVerificationStatusResponse> {\n const normalizedName = params.name.trim();\n if (!normalizedName) {\n throw new Error('name is required');\n }\n\n const query = new URLSearchParams();\n query.set('name', normalizedName);\n\n const raw = await client.requestJson<JsonValue>(\n `/skills/verification/status?${query.toString()}`,\n { method: 'GET' },\n );\n\n return client.parseWithSchema(\n raw,\n skillVerificationStatusResponseSchema,\n 'skill verification status response',\n );\n}\n"],"names":[],"mappings":"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"}
|