@hashgraphonline/standards-sdk 0.1.180 → 0.1.181

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/dist/browser/services/registry-broker/client/base-client.d.ts +3 -0
  2. package/dist/browser/services/registry-broker/client/base-client.d.ts.map +1 -1
  3. package/dist/browser/services/registry-broker/client/guard.d.ts.map +1 -1
  4. package/dist/browser/services/registry-broker/types.d.ts +3 -0
  5. package/dist/browser/services/registry-broker/types.d.ts.map +1 -1
  6. package/dist/browser-root/services/registry-broker/client/base-client.d.ts +3 -0
  7. package/dist/browser-root/services/registry-broker/client/base-client.d.ts.map +1 -1
  8. package/dist/browser-root/services/registry-broker/client/guard.d.ts.map +1 -1
  9. package/dist/browser-root/services/registry-broker/types.d.ts +3 -0
  10. package/dist/browser-root/services/registry-broker/types.d.ts.map +1 -1
  11. package/dist/browser-root/standards-sdk.root-browser.js +340 -104
  12. package/dist/browser-root/standards-sdk.root-browser.js.map +1 -1
  13. package/dist/cjs/services/registry-broker/client/base-client.d.ts +3 -0
  14. package/dist/cjs/services/registry-broker/client/base-client.d.ts.map +1 -1
  15. package/dist/cjs/services/registry-broker/client/guard.d.ts.map +1 -1
  16. package/dist/cjs/services/registry-broker/types.d.ts +3 -0
  17. package/dist/cjs/services/registry-broker/types.d.ts.map +1 -1
  18. package/dist/cjs/standards-sdk.cjs +1 -1
  19. package/dist/cjs/standards-sdk.cjs.map +1 -1
  20. package/dist/es/services/registry-broker/client/base-client.d.ts +3 -0
  21. package/dist/es/services/registry-broker/client/base-client.d.ts.map +1 -1
  22. package/dist/es/services/registry-broker/client/guard.d.ts.map +1 -1
  23. package/dist/es/services/registry-broker/types.d.ts +3 -0
  24. package/dist/es/services/registry-broker/types.d.ts.map +1 -1
  25. package/dist/es/standards-sdk.es.js +10 -7
  26. package/dist/es/standards-sdk.es.js.map +1 -1
  27. package/dist/es/standards-sdk.es104.js +1 -1
  28. package/dist/es/standards-sdk.es106.js +1 -1
  29. package/dist/es/standards-sdk.es108.js +1 -1
  30. package/dist/es/standards-sdk.es11.js +1 -1
  31. package/dist/es/standards-sdk.es110.js +1 -1
  32. package/dist/es/standards-sdk.es116.js +1 -1
  33. package/dist/es/standards-sdk.es12.js +1 -1
  34. package/dist/es/standards-sdk.es121.js +1 -1
  35. package/dist/es/standards-sdk.es127.js +2 -2
  36. package/dist/es/standards-sdk.es142.js +1 -1
  37. package/dist/es/standards-sdk.es145.js +43 -14
  38. package/dist/es/standards-sdk.es145.js.map +1 -1
  39. package/dist/es/standards-sdk.es147.js +3 -3
  40. package/dist/es/standards-sdk.es148.js +4 -81
  41. package/dist/es/standards-sdk.es148.js.map +1 -1
  42. package/dist/es/standards-sdk.es149.js +71 -77
  43. package/dist/es/standards-sdk.es149.js.map +1 -1
  44. package/dist/es/standards-sdk.es150.js +80 -53
  45. package/dist/es/standards-sdk.es150.js.map +1 -1
  46. package/dist/es/standards-sdk.es151.js +53 -152
  47. package/dist/es/standards-sdk.es151.js.map +1 -1
  48. package/dist/es/standards-sdk.es152.js +159 -7
  49. package/dist/es/standards-sdk.es152.js.map +1 -1
  50. package/dist/es/standards-sdk.es153.js +7 -86
  51. package/dist/es/standards-sdk.es153.js.map +1 -1
  52. package/dist/es/standards-sdk.es154.js +64 -43
  53. package/dist/es/standards-sdk.es154.js.map +1 -1
  54. package/dist/es/standards-sdk.es155.js +65 -30
  55. package/dist/es/standards-sdk.es155.js.map +1 -1
  56. package/dist/es/standards-sdk.es156.js +30 -34
  57. package/dist/es/standards-sdk.es156.js.map +1 -1
  58. package/dist/es/standards-sdk.es157.js +34 -48
  59. package/dist/es/standards-sdk.es157.js.map +1 -1
  60. package/dist/es/standards-sdk.es158.js +48 -138
  61. package/dist/es/standards-sdk.es158.js.map +1 -1
  62. package/dist/es/standards-sdk.es159.js +133 -37
  63. package/dist/es/standards-sdk.es159.js.map +1 -1
  64. package/dist/es/standards-sdk.es16.js +2 -2
  65. package/dist/es/standards-sdk.es160.js +42 -2352
  66. package/dist/es/standards-sdk.es160.js.map +1 -1
  67. package/dist/es/standards-sdk.es162.js +2352 -672
  68. package/dist/es/standards-sdk.es162.js.map +1 -1
  69. package/dist/es/standards-sdk.es163.js +15 -54
  70. package/dist/es/standards-sdk.es163.js.map +1 -1
  71. package/dist/es/standards-sdk.es165.js +63 -71
  72. package/dist/es/standards-sdk.es165.js.map +1 -1
  73. package/dist/es/standards-sdk.es166.js +48 -192
  74. package/dist/es/standards-sdk.es166.js.map +1 -1
  75. package/dist/es/standards-sdk.es167.js +79 -15
  76. package/dist/es/standards-sdk.es167.js.map +1 -1
  77. package/dist/es/standards-sdk.es168.js +181 -54
  78. package/dist/es/standards-sdk.es168.js.map +1 -1
  79. package/dist/es/standards-sdk.es175.js +653 -120
  80. package/dist/es/standards-sdk.es175.js.map +1 -1
  81. package/dist/es/standards-sdk.es176.js +111 -303
  82. package/dist/es/standards-sdk.es176.js.map +1 -1
  83. package/dist/es/standards-sdk.es177.js +297 -225
  84. package/dist/es/standards-sdk.es177.js.map +1 -1
  85. package/dist/es/standards-sdk.es178.js +239 -176
  86. package/dist/es/standards-sdk.es178.js.map +1 -1
  87. package/dist/es/standards-sdk.es179.js +178 -101
  88. package/dist/es/standards-sdk.es179.js.map +1 -1
  89. package/dist/es/standards-sdk.es18.js +4 -4
  90. package/dist/es/standards-sdk.es180.js +75 -108
  91. package/dist/es/standards-sdk.es180.js.map +1 -1
  92. package/dist/es/standards-sdk.es181.js +116 -148
  93. package/dist/es/standards-sdk.es181.js.map +1 -1
  94. package/dist/es/standards-sdk.es182.js +143 -439
  95. package/dist/es/standards-sdk.es182.js.map +1 -1
  96. package/dist/es/standards-sdk.es183.js +661 -162
  97. package/dist/es/standards-sdk.es183.js.map +1 -1
  98. package/dist/es/standards-sdk.es184.js +156 -206
  99. package/dist/es/standards-sdk.es184.js.map +1 -1
  100. package/dist/es/standards-sdk.es185.js +219 -223
  101. package/dist/es/standards-sdk.es185.js.map +1 -1
  102. package/dist/es/standards-sdk.es186.js +242 -0
  103. package/dist/es/standards-sdk.es186.js.map +1 -0
  104. package/dist/es/standards-sdk.es19.js +2 -2
  105. package/dist/es/standards-sdk.es22.js +1 -1
  106. package/dist/es/standards-sdk.es27.js +4 -4
  107. package/dist/es/standards-sdk.es35.js +2 -2
  108. package/dist/es/standards-sdk.es36.js +2 -2
  109. package/dist/es/standards-sdk.es4.js +1 -1
  110. package/dist/es/standards-sdk.es53.js +1 -1
  111. package/dist/es/standards-sdk.es56.js +1 -1
  112. package/dist/es/standards-sdk.es59.js +1 -1
  113. package/dist/es/standards-sdk.es62.js +1 -1
  114. package/dist/es/standards-sdk.es63.js +2 -2
  115. package/dist/es/standards-sdk.es64.js +1 -1
  116. package/dist/es/standards-sdk.es65.js +1 -1
  117. package/dist/es/standards-sdk.es67.js +3 -3
  118. package/dist/es/standards-sdk.es7.js +1 -1
  119. package/dist/es/standards-sdk.es71.js +1 -1
  120. package/dist/es/standards-sdk.es72.js +2 -2
  121. package/dist/es/standards-sdk.es75.js +2 -2
  122. package/dist/es/standards-sdk.es76.js +1 -1
  123. package/dist/es/standards-sdk.es78.js +1 -1
  124. package/dist/es/standards-sdk.es83.js +1 -1
  125. package/dist/es/standards-sdk.es84.js +2 -2
  126. package/dist/es/standards-sdk.es85.js +1 -1
  127. package/dist/es/standards-sdk.es88.js +1 -1
  128. package/dist/es/standards-sdk.es90.js +1 -1
  129. package/dist/es/standards-sdk.es94.js +3 -3
  130. package/dist/es/standards-sdk.es98.js +1 -1
  131. package/dist/es/standards-sdk.es99.js +1 -1
  132. package/package.json +1 -1
@@ -1,122 +1,199 @@
1
- import { adaptersResponseSchema, adapterDetailsResponseSchema, adapterRegistryCategoriesResponseSchema, adapterRegistryAdaptersResponseSchema, adapterRegistryCreateCategoryResponseSchema, adapterRegistrySubmitAdapterAcceptedResponseSchema, adapterRegistrySubmissionStatusResponseSchema } from "./standards-sdk.es160.js";
2
- import { toJsonObject } from "./standards-sdk.es185.js";
3
- async function adapters(client) {
4
- const raw = await client.requestJson("/adapters", {
5
- method: "GET"
6
- });
7
- return client.parseWithSchema(
8
- raw,
9
- adaptersResponseSchema,
10
- "adapters response"
11
- );
12
- }
13
- async function adaptersDetailed(client) {
14
- const raw = await client.requestJson("/adapters/details", {
15
- method: "GET"
1
+ import { Buffer } from "buffer";
2
+ import { secp256k1 } from "@noble/curves/secp256k1.js";
3
+ import { registerEncryptionKeyResponseSchema } from "./standards-sdk.es162.js";
4
+ import { optionalImport } from "./standards-sdk.es164.js";
5
+ const getFs = async () => {
6
+ const fsModule = await optionalImport("node:fs") ?? await optionalImport("fs");
7
+ if (fsModule && typeof fsModule.existsSync === "function" && typeof fsModule.readFileSync === "function" && typeof fsModule.writeFileSync === "function" && typeof fsModule.appendFileSync === "function") {
8
+ return fsModule;
9
+ }
10
+ return null;
11
+ };
12
+ const getNodePath = async () => {
13
+ const pathModule = await optionalImport("node:path") ?? await optionalImport("path");
14
+ if (pathModule && typeof pathModule.resolve === "function") {
15
+ return pathModule;
16
+ }
17
+ return null;
18
+ };
19
+ const getNodeCrypto = async () => {
20
+ const cryptoModule = await optionalImport("node:crypto") ?? await optionalImport("crypto");
21
+ if (cryptoModule && typeof cryptoModule.randomBytes === "function") {
22
+ return cryptoModule;
23
+ }
24
+ return null;
25
+ };
26
+ async function registerEncryptionKey(client, payload) {
27
+ const raw = await client.requestJson("/encryption/keys", {
28
+ method: "POST",
29
+ headers: { "content-type": "application/json" },
30
+ body: payload
16
31
  });
17
32
  return client.parseWithSchema(
18
33
  raw,
19
- adapterDetailsResponseSchema,
20
- "adapter details response"
34
+ registerEncryptionKeyResponseSchema,
35
+ "register encryption key response"
21
36
  );
22
37
  }
23
- async function adapterRegistryCategories(client) {
24
- const raw = await client.requestJson(
25
- "/adapters/registry/categories",
26
- {
27
- method: "GET"
38
+ function normalizeAutoRegisterIdentity(config) {
39
+ const identity = {};
40
+ if (config.uaid) {
41
+ identity.uaid = config.uaid;
42
+ }
43
+ if (config.ledgerAccountId) {
44
+ identity.ledgerAccountId = config.ledgerAccountId;
45
+ if (config.ledgerNetwork) {
46
+ identity.ledgerNetwork = config.ledgerNetwork;
28
47
  }
29
- );
30
- return client.parseWithSchema(
31
- raw,
32
- adapterRegistryCategoriesResponseSchema,
33
- "adapter registry categories response"
34
- );
48
+ }
49
+ if (config.email) {
50
+ identity.email = config.email;
51
+ }
52
+ if (identity.uaid || identity.ledgerAccountId || identity.email) {
53
+ return identity;
54
+ }
55
+ return null;
56
+ }
57
+ function derivePublicKeyFromPrivateKey(client, privateKey) {
58
+ const normalized = client.hexToBuffer(privateKey);
59
+ const publicKey = secp256k1.getPublicKey(normalized, true);
60
+ return Buffer.from(publicKey).toString("hex");
35
61
  }
36
- async function adapterRegistryAdapters(client, filters = {}) {
37
- const params = new URLSearchParams();
38
- if (filters.category) {
39
- params.set("category", filters.category);
62
+ async function resolveAutoRegisterKeyMaterial(client, config) {
63
+ if (config.publicKey?.trim()) {
64
+ return { publicKey: config.publicKey.trim() };
40
65
  }
41
- if (filters.entity) {
42
- params.set("entity", filters.entity);
66
+ let privateKey = config.privateKey?.trim();
67
+ const envVar = config.envVar ?? "RB_ENCRYPTION_PRIVATE_KEY";
68
+ if (!privateKey && envVar && process?.env?.[envVar]?.trim()) {
69
+ privateKey = process.env[envVar]?.trim();
43
70
  }
44
- if (filters.keywords?.length) {
45
- params.set("keywords", filters.keywords.join(","));
71
+ if (!privateKey && config.generateIfMissing) {
72
+ const pair = await client.generateEncryptionKeyPair({
73
+ keyType: config.keyType ?? "secp256k1",
74
+ envVar,
75
+ envPath: config.envPath,
76
+ overwrite: config.overwriteEnv
77
+ });
78
+ return { publicKey: pair.publicKey, privateKey: pair.privateKey };
46
79
  }
47
- if (filters.query) {
48
- params.set("query", filters.query);
80
+ if (privateKey) {
81
+ const publicKey = derivePublicKeyFromPrivateKey(client, privateKey);
82
+ return { publicKey, privateKey };
49
83
  }
50
- if (typeof filters.limit === "number") {
51
- params.set("limit", String(filters.limit));
84
+ return null;
85
+ }
86
+ async function autoRegisterEncryptionKey(client, config) {
87
+ const identity = normalizeAutoRegisterIdentity(config);
88
+ if (!identity) {
89
+ throw new Error(
90
+ "Auto-registration requires uaid, ledgerAccountId, or email"
91
+ );
52
92
  }
53
- if (typeof filters.offset === "number") {
54
- params.set("offset", String(filters.offset));
93
+ const material = await resolveAutoRegisterKeyMaterial(client, config);
94
+ if (!material) {
95
+ throw new Error(
96
+ "Unable to resolve encryption public key for auto-registration"
97
+ );
55
98
  }
56
- const suffix = params.size > 0 ? `?${params.toString()}` : "";
57
- const raw = await client.requestJson(
58
- `/adapters/registry/adapters${suffix}`,
59
- {
60
- method: "GET"
61
- }
62
- );
63
- return client.parseWithSchema(
64
- raw,
65
- adapterRegistryAdaptersResponseSchema,
66
- "adapter registry adapters response"
67
- );
99
+ await registerEncryptionKey(client, {
100
+ keyType: config.keyType ?? "secp256k1",
101
+ publicKey: material.publicKey,
102
+ ...identity
103
+ });
104
+ return material;
68
105
  }
69
- async function createAdapterRegistryCategory(client, payload) {
70
- const raw = await client.requestJson(
71
- "/adapters/registry/categories",
72
- {
73
- method: "POST",
74
- headers: { "content-type": "application/json" },
75
- body: toJsonObject(payload)
76
- }
77
- );
78
- const parsed = client.parseWithSchema(
79
- raw,
80
- adapterRegistryCreateCategoryResponseSchema,
81
- "adapter registry create category response"
82
- );
83
- return parsed.category;
106
+ async function ensureAgentEncryptionKey(client, options) {
107
+ return autoRegisterEncryptionKey(client, {
108
+ ...options,
109
+ uaid: options.uaid
110
+ });
84
111
  }
85
- async function submitAdapterRegistryAdapter(client, payload) {
86
- const raw = await client.requestJson(
87
- "/adapters/registry/adapters",
88
- {
89
- method: "POST",
90
- headers: { "content-type": "application/json" },
91
- body: toJsonObject(payload)
92
- }
93
- );
94
- return client.parseWithSchema(
95
- raw,
96
- adapterRegistrySubmitAdapterAcceptedResponseSchema,
97
- "adapter registry submit adapter response"
98
- );
112
+ function createEncryptionApi(client) {
113
+ return {
114
+ registerKey: (payload) => registerEncryptionKey(client, payload),
115
+ generateEphemeralKeyPair: () => client.createEphemeralKeyPair(),
116
+ deriveSharedSecret: (options) => client.deriveSharedSecret(options),
117
+ encryptCipherEnvelope: (options) => client.buildCipherEnvelope(options),
118
+ decryptCipherEnvelope: (options) => client.openCipherEnvelope(options),
119
+ ensureAgentKey: (options) => ensureAgentEncryptionKey(client, options)
120
+ };
121
+ }
122
+ async function bootstrapEncryptionOptions(client, options) {
123
+ if (!options?.autoRegister || options.autoRegister.enabled === false) {
124
+ return null;
125
+ }
126
+ return autoRegisterEncryptionKey(client, options.autoRegister);
99
127
  }
100
- async function adapterRegistrySubmissionStatus(client, submissionId) {
101
- const raw = await client.requestJson(
102
- `/adapters/registry/submissions/${encodeURIComponent(submissionId)}`,
103
- {
104
- method: "GET"
128
+ async function generateEncryptionKeyPair(client, options = {}) {
129
+ client.assertNodeRuntime("generateEncryptionKeyPair");
130
+ const keyType = options.keyType ?? "secp256k1";
131
+ if (keyType !== "secp256k1") {
132
+ throw new Error("Only secp256k1 key generation is supported currently");
133
+ }
134
+ const cryptoModule = await getNodeCrypto();
135
+ if (!cryptoModule) {
136
+ throw new Error(
137
+ "Node.js crypto module is not available; cannot generate encryption key pair"
138
+ );
139
+ }
140
+ const privateKeyBytes = cryptoModule.randomBytes(32);
141
+ const privateKey = Buffer.from(privateKeyBytes).toString("hex");
142
+ const publicKeyBytes = secp256k1.getPublicKey(privateKeyBytes, true);
143
+ const publicKey = Buffer.from(publicKeyBytes).toString("hex");
144
+ const envVar = options.envVar ?? "RB_ENCRYPTION_PRIVATE_KEY";
145
+ const pathModule = options.envPath ? await getNodePath() : null;
146
+ const resolvedPath = options.envPath && pathModule ? pathModule.resolve(options.envPath) : void 0;
147
+ if (options.envPath && !resolvedPath) {
148
+ throw new Error(
149
+ "Node.js path module is not available; cannot resolve encryption key env path"
150
+ );
151
+ }
152
+ if (resolvedPath) {
153
+ const fsModule = await getFs();
154
+ if (!fsModule) {
155
+ throw new Error(
156
+ "File system module is not available; cannot write encryption key env file"
157
+ );
105
158
  }
106
- );
107
- return client.parseWithSchema(
108
- raw,
109
- adapterRegistrySubmissionStatusResponseSchema,
110
- "adapter registry submission status response"
111
- );
159
+ const envLine = `${envVar}=${privateKey}`;
160
+ if (fsModule.existsSync(resolvedPath)) {
161
+ const content = fsModule.readFileSync(resolvedPath, "utf-8");
162
+ const lineRegex = new RegExp(`^${envVar}=.*$`, "m");
163
+ if (lineRegex.test(content)) {
164
+ if (!options.overwrite) {
165
+ throw new Error(
166
+ `${envVar} already exists in ${resolvedPath}; set overwrite=true to replace it`
167
+ );
168
+ }
169
+ const updated = content.replace(lineRegex, envLine);
170
+ fsModule.writeFileSync(resolvedPath, updated);
171
+ } else {
172
+ const needsNewline = !content.endsWith("\n");
173
+ fsModule.appendFileSync(
174
+ resolvedPath,
175
+ `${needsNewline ? "\n" : ""}${envLine}
176
+ `
177
+ );
178
+ }
179
+ } else {
180
+ fsModule.writeFileSync(resolvedPath, `${envLine}
181
+ `);
182
+ }
183
+ }
184
+ return {
185
+ privateKey,
186
+ publicKey,
187
+ envPath: resolvedPath,
188
+ envVar
189
+ };
112
190
  }
113
191
  export {
114
- adapterRegistryAdapters,
115
- adapterRegistryCategories,
116
- adapterRegistrySubmissionStatus,
117
- adapters,
118
- adaptersDetailed,
119
- createAdapterRegistryCategory,
120
- submitAdapterRegistryAdapter
192
+ autoRegisterEncryptionKey,
193
+ bootstrapEncryptionOptions,
194
+ createEncryptionApi,
195
+ ensureAgentEncryptionKey,
196
+ generateEncryptionKeyPair,
197
+ registerEncryptionKey
121
198
  };
122
199
  //# sourceMappingURL=standards-sdk.es179.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es179.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 type { RegistryBrokerClient } from './base-client';\nimport { toJsonObject } from './utils';\n\nexport async function adapters(\n client: RegistryBrokerClient,\n): Promise<AdaptersResponse> {\n const raw = await client.requestJson<JsonValue>('/adapters', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n adaptersResponseSchema,\n 'adapters response',\n );\n}\n\nexport async function adaptersDetailed(\n client: RegistryBrokerClient,\n): Promise<AdapterDetailsResponse> {\n const raw = await client.requestJson<JsonValue>('/adapters/details', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n adapterDetailsResponseSchema,\n 'adapter details response',\n );\n}\n\nexport async function adapterRegistryCategories(\n client: RegistryBrokerClient,\n): Promise<AdapterRegistryCategoriesResponse> {\n const raw = await client.requestJson<JsonValue>(\n '/adapters/registry/categories',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n adapterRegistryCategoriesResponseSchema,\n 'adapter registry categories response',\n );\n}\n\nexport async function adapterRegistryAdapters(\n client: 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 client.requestJson<JsonValue>(\n `/adapters/registry/adapters${suffix}`,\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n adapterRegistryAdaptersResponseSchema,\n 'adapter registry adapters response',\n );\n}\n\nexport async function createAdapterRegistryCategory(\n client: RegistryBrokerClient,\n payload: CreateAdapterRegistryCategoryRequest,\n): Promise<AdapterRegistryCategory> {\n const raw = await client.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 = client.parseWithSchema(\n raw,\n adapterRegistryCreateCategoryResponseSchema,\n 'adapter registry create category response',\n );\n return parsed.category;\n}\n\nexport async function submitAdapterRegistryAdapter(\n client: RegistryBrokerClient,\n payload: SubmitAdapterRegistryAdapterRequest,\n): Promise<AdapterRegistrySubmitAdapterAcceptedResponse> {\n const raw = await client.requestJson<JsonValue>(\n '/adapters/registry/adapters',\n {\n method: 'POST',\n headers: { 'content-type': 'application/json' },\n body: toJsonObject(payload),\n },\n );\n return client.parseWithSchema(\n raw,\n adapterRegistrySubmitAdapterAcceptedResponseSchema,\n 'adapter registry submit adapter response',\n );\n}\n\nexport async function adapterRegistrySubmissionStatus(\n client: RegistryBrokerClient,\n submissionId: string,\n): Promise<AdapterRegistrySubmissionStatusResponse> {\n const raw = await client.requestJson<JsonValue>(\n `/adapters/registry/submissions/${encodeURIComponent(submissionId)}`,\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n adapterRegistrySubmissionStatusResponseSchema,\n 'adapter registry submission status response',\n );\n}\n"],"names":[],"mappings":";;AAwBA,eAAsB,SACpB,QAC2B;AAC3B,QAAM,MAAM,MAAM,OAAO,YAAuB,aAAa;AAAA,IAC3D,QAAQ;AAAA,EAAA,CACT;AACD,SAAO,OAAO;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,eAAsB,iBACpB,QACiC;AACjC,QAAM,MAAM,MAAM,OAAO,YAAuB,qBAAqB;AAAA,IACnE,QAAQ;AAAA,EAAA,CACT;AACD,SAAO,OAAO;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,eAAsB,0BACpB,QAC4C;AAC5C,QAAM,MAAM,MAAM,OAAO;AAAA,IACvB;AAAA,IACA;AAAA,MACE,QAAQ;AAAA,IAAA;AAAA,EACV;AAEF,SAAO,OAAO;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,eAAsB,wBACpB,QACA,UAOI,IACsC;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,OAAO;AAAA,IACvB,8BAA8B,MAAM;AAAA,IACpC;AAAA,MACE,QAAQ;AAAA,IAAA;AAAA,EACV;AAEF,SAAO,OAAO;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,eAAsB,8BACpB,QACA,SACkC;AAClC,QAAM,MAAM,MAAM,OAAO;AAAA,IACvB;AAAA,IACA;AAAA,MACE,QAAQ;AAAA,MACR,SAAS,EAAE,gBAAgB,mBAAA;AAAA,MAC3B,MAAM,aAAa,OAAO;AAAA,IAAA;AAAA,EAC5B;AAEF,QAAM,SAAS,OAAO;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF,SAAO,OAAO;AAChB;AAEA,eAAsB,6BACpB,QACA,SACuD;AACvD,QAAM,MAAM,MAAM,OAAO;AAAA,IACvB;AAAA,IACA;AAAA,MACE,QAAQ;AAAA,MACR,SAAS,EAAE,gBAAgB,mBAAA;AAAA,MAC3B,MAAM,aAAa,OAAO;AAAA,IAAA;AAAA,EAC5B;AAEF,SAAO,OAAO;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,eAAsB,gCACpB,QACA,cACkD;AAClD,QAAM,MAAM,MAAM,OAAO;AAAA,IACvB,kCAAkC,mBAAmB,YAAY,CAAC;AAAA,IAClE;AAAA,MACE,QAAQ;AAAA,IAAA;AAAA,EACV;AAEF,SAAO,OAAO;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"standards-sdk.es179.js","sources":["../../src/services/registry-broker/client/encryption.ts"],"sourcesContent":["import { Buffer } from 'buffer';\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\ntype NodePathModule = {\n resolve: (...segments: string[]) => string;\n};\n\ntype NodeCryptoModule = {\n randomBytes: (size: number) => Buffer;\n};\n\nconst getFs = async (): Promise<FsModule | null> => {\n const fsModule =\n (await optionalImport<Partial<FsModule>>('node:fs')) ??\n (await optionalImport<Partial<FsModule>>('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\nconst getNodePath = async (): Promise<NodePathModule | null> => {\n const pathModule =\n (await optionalImport<Partial<NodePathModule>>('node:path')) ??\n (await optionalImport<Partial<NodePathModule>>('path'));\n if (pathModule && typeof pathModule.resolve === 'function') {\n return pathModule as NodePathModule;\n }\n return null;\n};\n\nconst getNodeCrypto = async (): Promise<NodeCryptoModule | null> => {\n const cryptoModule =\n (await optionalImport<Partial<NodeCryptoModule>>('node:crypto')) ??\n (await optionalImport<Partial<NodeCryptoModule>>('crypto'));\n if (cryptoModule && typeof cryptoModule.randomBytes === 'function') {\n return cryptoModule as NodeCryptoModule;\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 cryptoModule = await getNodeCrypto();\n if (!cryptoModule) {\n throw new Error(\n 'Node.js crypto module is not available; cannot generate encryption key pair',\n );\n }\n const privateKeyBytes = cryptoModule.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 pathModule = options.envPath ? await getNodePath() : null;\n const resolvedPath =\n options.envPath && pathModule\n ? pathModule.resolve(options.envPath)\n : undefined;\n\n if (options.envPath && !resolvedPath) {\n throw new Error(\n 'Node.js path module is not available; cannot resolve encryption key env path',\n );\n }\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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"}
@@ -9,13 +9,13 @@ import "@hashgraph/proto";
9
9
  import "buffer";
10
10
  import "@noble/curves/secp256k1.js";
11
11
  import "zod";
12
- import "./standards-sdk.es160.js";
13
- import "./standards-sdk.es149.js";
12
+ import "./standards-sdk.es162.js";
13
+ import "./standards-sdk.es150.js";
14
14
  import "ethers";
15
15
  import "./standards-sdk.es140.js";
16
16
  import { detectKeyTypeFromString } from "./standards-sdk.es131.js";
17
17
  import { getTopicId } from "./standards-sdk.es132.js";
18
- import { createNodeOperatorContext, NodeOperatorResolver } from "./standards-sdk.es158.js";
18
+ import { createNodeOperatorContext, NodeOperatorResolver } from "./standards-sdk.es159.js";
19
19
  import { HCS10BaseClient, Hcs10MemoType } from "./standards-sdk.es16.js";
20
20
  import * as mime from "mime-types";
21
21
  import { AgentBuilder } from "./standards-sdk.es23.js";
@@ -23,7 +23,7 @@ import { InboundTopicType } from "./standards-sdk.es28.js";
23
23
  import { HCS11Client } from "./standards-sdk.es27.js";
24
24
  import { inscribe } from "./standards-sdk.es142.js";
25
25
  import { addSeconds } from "date-fns";
26
- import { buildTopicCreateTx, buildMessageTx } from "./standards-sdk.es159.js";
26
+ import { buildTopicCreateTx, buildMessageTx } from "./standards-sdk.es160.js";
27
27
  import { buildHcs10CreateInboundTopicTx, buildHcs10CreateConnectionTopicTx, buildHcs10ConfirmConnectionTx, buildHcs10SendMessageTx, buildHcs10RegistryRegisterTx, buildHcs10CreateOutboundTopicTx, buildHcs10CreateRegistryTopicTx } from "./standards-sdk.es22.js";
28
28
  class HCS10Client extends HCS10BaseClient {
29
29
  constructor(config) {
@@ -1,155 +1,122 @@
1
- import { registerStatusResponseSchema, moltbookOwnerRegistrationUpdateResponseSchema, verificationStatusResponseSchema, verificationChallengeResponseSchema, verificationChallengeDetailsResponseSchema, verificationVerifyResponseSchema, verificationOwnershipResponseSchema, verificationVerifySenderResponseSchema, verificationDnsStatusResponseSchema } from "./standards-sdk.es160.js";
2
- async function getVerificationStatus(client, uaid) {
3
- const raw = await client.requestJson(
4
- `/verification/status/${encodeURIComponent(uaid)}`,
5
- { method: "GET" }
6
- );
1
+ import { adaptersResponseSchema, adapterDetailsResponseSchema, adapterRegistryCategoriesResponseSchema, adapterRegistryAdaptersResponseSchema, adapterRegistryCreateCategoryResponseSchema, adapterRegistrySubmitAdapterAcceptedResponseSchema, adapterRegistrySubmissionStatusResponseSchema } from "./standards-sdk.es162.js";
2
+ import { toJsonObject } from "./standards-sdk.es186.js";
3
+ async function adapters(client) {
4
+ const raw = await client.requestJson("/adapters", {
5
+ method: "GET"
6
+ });
7
7
  return client.parseWithSchema(
8
8
  raw,
9
- verificationStatusResponseSchema,
10
- "verification status response"
9
+ adaptersResponseSchema,
10
+ "adapters response"
11
11
  );
12
12
  }
13
- async function createVerificationChallenge(client, uaid) {
14
- const raw = await client.requestJson("/verification/challenge", {
15
- method: "POST",
16
- headers: { "content-type": "application/json" },
17
- body: { uaid }
13
+ async function adaptersDetailed(client) {
14
+ const raw = await client.requestJson("/adapters/details", {
15
+ method: "GET"
18
16
  });
19
17
  return client.parseWithSchema(
20
18
  raw,
21
- verificationChallengeResponseSchema,
22
- "verification challenge response"
19
+ adapterDetailsResponseSchema,
20
+ "adapter details response"
23
21
  );
24
22
  }
25
- async function getVerificationChallenge(client, challengeId) {
23
+ async function adapterRegistryCategories(client) {
26
24
  const raw = await client.requestJson(
27
- `/verification/challenge/${encodeURIComponent(challengeId)}`,
28
- { method: "GET" }
29
- );
30
- return client.parseWithSchema(
31
- raw,
32
- verificationChallengeDetailsResponseSchema,
33
- "verification challenge details response"
34
- );
35
- }
36
- async function verifyVerificationChallenge(client, params) {
37
- const raw = await client.requestJson("/verification/verify", {
38
- method: "POST",
39
- headers: { "content-type": "application/json" },
40
- body: {
41
- challengeId: params.challengeId,
42
- method: params.method ?? "moltbook-post"
25
+ "/adapters/registry/categories",
26
+ {
27
+ method: "GET"
43
28
  }
44
- });
29
+ );
45
30
  return client.parseWithSchema(
46
31
  raw,
47
- verificationVerifyResponseSchema,
48
- "verification verify response"
32
+ adapterRegistryCategoriesResponseSchema,
33
+ "adapter registry categories response"
49
34
  );
50
35
  }
51
- async function getVerificationOwnership(client, uaid) {
36
+ async function adapterRegistryAdapters(client, filters = {}) {
37
+ const params = new URLSearchParams();
38
+ if (filters.category) {
39
+ params.set("category", filters.category);
40
+ }
41
+ if (filters.entity) {
42
+ params.set("entity", filters.entity);
43
+ }
44
+ if (filters.keywords?.length) {
45
+ params.set("keywords", filters.keywords.join(","));
46
+ }
47
+ if (filters.query) {
48
+ params.set("query", filters.query);
49
+ }
50
+ if (typeof filters.limit === "number") {
51
+ params.set("limit", String(filters.limit));
52
+ }
53
+ if (typeof filters.offset === "number") {
54
+ params.set("offset", String(filters.offset));
55
+ }
56
+ const suffix = params.size > 0 ? `?${params.toString()}` : "";
52
57
  const raw = await client.requestJson(
53
- `/verification/ownership/${encodeURIComponent(uaid)}`,
54
- { method: "GET" }
58
+ `/adapters/registry/adapters${suffix}`,
59
+ {
60
+ method: "GET"
61
+ }
55
62
  );
56
63
  return client.parseWithSchema(
57
64
  raw,
58
- verificationOwnershipResponseSchema,
59
- "verification ownership response"
65
+ adapterRegistryAdaptersResponseSchema,
66
+ "adapter registry adapters response"
60
67
  );
61
68
  }
62
- async function verifySenderOwnership(client, uaid) {
69
+ async function createAdapterRegistryCategory(client, payload) {
63
70
  const raw = await client.requestJson(
64
- "/verification/verify-sender",
71
+ "/adapters/registry/categories",
65
72
  {
66
73
  method: "POST",
67
74
  headers: { "content-type": "application/json" },
68
- body: { uaid }
75
+ body: toJsonObject(payload)
69
76
  }
70
77
  );
71
- return client.parseWithSchema(
78
+ const parsed = client.parseWithSchema(
72
79
  raw,
73
- verificationVerifySenderResponseSchema,
74
- "verification sender response"
80
+ adapterRegistryCreateCategoryResponseSchema,
81
+ "adapter registry create category response"
75
82
  );
83
+ return parsed.category;
76
84
  }
77
- async function verifyUaidDnsTxt(client, payload) {
78
- const raw = await client.requestJson("/verification/dns/verify", {
79
- method: "POST",
80
- headers: { "content-type": "application/json" },
81
- body: {
82
- uaid: payload.uaid,
83
- ...payload.persist !== void 0 ? { persist: payload.persist } : {}
84
- }
85
- });
86
- return client.parseWithSchema(
87
- raw,
88
- verificationDnsStatusResponseSchema,
89
- "verification dns verify response"
90
- );
91
- }
92
- async function getVerificationDnsStatus(client, uaid, query) {
93
- const params = new URLSearchParams();
94
- if (query?.refresh !== void 0) {
95
- params.set("refresh", String(query.refresh));
96
- }
97
- if (query?.persist !== void 0) {
98
- params.set("persist", String(query.persist));
99
- }
100
- const queryString = params.toString();
101
- const path = `/verification/dns/status/${encodeURIComponent(uaid)}${queryString ? `?${queryString}` : ""}`;
102
- const raw = await client.requestJson(path, {
103
- method: "GET"
104
- });
105
- return client.parseWithSchema(
106
- raw,
107
- verificationDnsStatusResponseSchema,
108
- "verification dns status response"
109
- );
110
- }
111
- async function getRegisterStatus(client, uaid) {
85
+ async function submitAdapterRegistryAdapter(client, payload) {
112
86
  const raw = await client.requestJson(
113
- `/register/status/${encodeURIComponent(uaid)}`,
114
- { method: "GET" }
87
+ "/adapters/registry/adapters",
88
+ {
89
+ method: "POST",
90
+ headers: { "content-type": "application/json" },
91
+ body: toJsonObject(payload)
92
+ }
115
93
  );
116
94
  return client.parseWithSchema(
117
95
  raw,
118
- registerStatusResponseSchema,
119
- "register status response"
96
+ adapterRegistrySubmitAdapterAcceptedResponseSchema,
97
+ "adapter registry submit adapter response"
120
98
  );
121
99
  }
122
- async function registerOwnedMoltbookAgent(client, uaid, request) {
100
+ async function adapterRegistrySubmissionStatus(client, submissionId) {
123
101
  const raw = await client.requestJson(
124
- `/register/${encodeURIComponent(uaid)}`,
102
+ `/adapters/registry/submissions/${encodeURIComponent(submissionId)}`,
125
103
  {
126
- method: "PUT",
127
- headers: { "content-type": "application/json" },
128
- body: {
129
- registered: request.registered ?? true,
130
- ...request.name ? { name: request.name } : {},
131
- ...request.description ? { description: request.description } : {},
132
- ...request.endpoint ? { endpoint: request.endpoint } : {},
133
- ...request.metadata ? { metadata: request.metadata } : {}
134
- }
104
+ method: "GET"
135
105
  }
136
106
  );
137
107
  return client.parseWithSchema(
138
108
  raw,
139
- moltbookOwnerRegistrationUpdateResponseSchema,
140
- "moltbook owner registration update response"
109
+ adapterRegistrySubmissionStatusResponseSchema,
110
+ "adapter registry submission status response"
141
111
  );
142
112
  }
143
113
  export {
144
- createVerificationChallenge,
145
- getRegisterStatus,
146
- getVerificationChallenge,
147
- getVerificationDnsStatus,
148
- getVerificationOwnership,
149
- getVerificationStatus,
150
- registerOwnedMoltbookAgent,
151
- verifySenderOwnership,
152
- verifyUaidDnsTxt,
153
- verifyVerificationChallenge
114
+ adapterRegistryAdapters,
115
+ adapterRegistryCategories,
116
+ adapterRegistrySubmissionStatus,
117
+ adapters,
118
+ adaptersDetailed,
119
+ createAdapterRegistryCategory,
120
+ submitAdapterRegistryAdapter
154
121
  };
155
122
  //# sourceMappingURL=standards-sdk.es180.js.map