@smithery/api 0.8.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/client.d.mts +2 -5
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +2 -5
  5. package/client.d.ts.map +1 -1
  6. package/client.js +2 -15
  7. package/client.js.map +1 -1
  8. package/client.mjs +2 -15
  9. package/client.mjs.map +1 -1
  10. package/internal/qs/formats.d.mts +7 -0
  11. package/internal/qs/formats.d.mts.map +1 -0
  12. package/internal/qs/formats.d.ts +7 -0
  13. package/internal/qs/formats.d.ts.map +1 -0
  14. package/internal/qs/formats.js +13 -0
  15. package/internal/qs/formats.js.map +1 -0
  16. package/internal/qs/formats.mjs +9 -0
  17. package/internal/qs/formats.mjs.map +1 -0
  18. package/internal/qs/index.d.mts +10 -0
  19. package/internal/qs/index.d.mts.map +1 -0
  20. package/internal/qs/index.d.ts +10 -0
  21. package/internal/qs/index.d.ts.map +1 -0
  22. package/internal/qs/index.js +14 -0
  23. package/internal/qs/index.js.map +1 -0
  24. package/internal/qs/index.mjs +10 -0
  25. package/internal/qs/index.mjs.map +1 -0
  26. package/internal/qs/stringify.d.mts +3 -0
  27. package/internal/qs/stringify.d.mts.map +1 -0
  28. package/internal/qs/stringify.d.ts +3 -0
  29. package/internal/qs/stringify.d.ts.map +1 -0
  30. package/internal/qs/stringify.js +277 -0
  31. package/internal/qs/stringify.js.map +1 -0
  32. package/internal/qs/stringify.mjs +274 -0
  33. package/internal/qs/stringify.mjs.map +1 -0
  34. package/internal/qs/types.d.mts +57 -0
  35. package/internal/qs/types.d.mts.map +1 -0
  36. package/internal/qs/types.d.ts +57 -0
  37. package/internal/qs/types.d.ts.map +1 -0
  38. package/internal/qs/types.js +3 -0
  39. package/internal/qs/types.js.map +1 -0
  40. package/internal/qs/types.mjs +2 -0
  41. package/internal/qs/types.mjs.map +1 -0
  42. package/internal/qs/utils.d.mts +15 -0
  43. package/internal/qs/utils.d.mts.map +1 -0
  44. package/internal/qs/utils.d.ts +15 -0
  45. package/internal/qs/utils.d.ts.map +1 -0
  46. package/internal/qs/utils.js +230 -0
  47. package/internal/qs/utils.js.map +1 -0
  48. package/internal/qs/utils.mjs +217 -0
  49. package/internal/qs/utils.mjs.map +1 -0
  50. package/package.json +1 -1
  51. package/resources/index.d.mts +1 -1
  52. package/resources/index.d.mts.map +1 -1
  53. package/resources/index.d.ts +1 -1
  54. package/resources/index.d.ts.map +1 -1
  55. package/resources/index.js.map +1 -1
  56. package/resources/index.mjs.map +1 -1
  57. package/resources/servers/index.d.mts +1 -1
  58. package/resources/servers/index.d.mts.map +1 -1
  59. package/resources/servers/index.d.ts +1 -1
  60. package/resources/servers/index.d.ts.map +1 -1
  61. package/resources/servers/index.js.map +1 -1
  62. package/resources/servers/index.mjs.map +1 -1
  63. package/resources/servers/servers.d.mts +64 -1
  64. package/resources/servers/servers.d.mts.map +1 -1
  65. package/resources/servers/servers.d.ts +64 -1
  66. package/resources/servers/servers.d.ts.map +1 -1
  67. package/resources/servers/servers.js +7 -0
  68. package/resources/servers/servers.js.map +1 -1
  69. package/resources/servers/servers.mjs +7 -0
  70. package/resources/servers/servers.mjs.map +1 -1
  71. package/resources/skills.d.mts +5 -0
  72. package/resources/skills.d.mts.map +1 -1
  73. package/resources/skills.d.ts +5 -0
  74. package/resources/skills.d.ts.map +1 -1
  75. package/src/client.ts +10 -17
  76. package/src/internal/qs/LICENSE.md +13 -0
  77. package/src/internal/qs/README.md +3 -0
  78. package/src/internal/qs/formats.ts +10 -0
  79. package/src/internal/qs/index.ts +13 -0
  80. package/src/internal/qs/stringify.ts +385 -0
  81. package/src/internal/qs/types.ts +71 -0
  82. package/src/internal/qs/utils.ts +265 -0
  83. package/src/resources/index.ts +4 -0
  84. package/src/resources/servers/index.ts +4 -0
  85. package/src/resources/servers/servers.ts +82 -0
  86. package/src/resources/skills.ts +10 -0
  87. package/src/version.ts +1 -1
  88. package/version.d.mts +1 -1
  89. package/version.d.mts.map +1 -1
  90. package/version.d.ts +1 -1
  91. package/version.d.ts.map +1 -1
  92. package/version.js +1 -1
  93. package/version.js.map +1 -1
  94. package/version.mjs +1 -1
  95. package/version.mjs.map +1 -1
@@ -0,0 +1,265 @@
1
+ import { RFC1738 } from './formats';
2
+ import type { DefaultEncoder, Format } from './types';
3
+ import { isArray } from '../utils/values';
4
+
5
+ export let has = (obj: object, key: PropertyKey): boolean => (
6
+ (has = (Object as any).hasOwn ?? Function.prototype.call.bind(Object.prototype.hasOwnProperty)),
7
+ has(obj, key)
8
+ );
9
+
10
+ const hex_table = /* @__PURE__ */ (() => {
11
+ const array = [];
12
+ for (let i = 0; i < 256; ++i) {
13
+ array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());
14
+ }
15
+
16
+ return array;
17
+ })();
18
+
19
+ function compact_queue<T extends Record<string, any>>(queue: Array<{ obj: T; prop: string }>) {
20
+ while (queue.length > 1) {
21
+ const item = queue.pop();
22
+ if (!item) continue;
23
+
24
+ const obj = item.obj[item.prop];
25
+
26
+ if (isArray(obj)) {
27
+ const compacted: unknown[] = [];
28
+
29
+ for (let j = 0; j < obj.length; ++j) {
30
+ if (typeof obj[j] !== 'undefined') {
31
+ compacted.push(obj[j]);
32
+ }
33
+ }
34
+
35
+ // @ts-ignore
36
+ item.obj[item.prop] = compacted;
37
+ }
38
+ }
39
+ }
40
+
41
+ function array_to_object(source: any[], options: { plainObjects: boolean }) {
42
+ const obj = options && options.plainObjects ? Object.create(null) : {};
43
+ for (let i = 0; i < source.length; ++i) {
44
+ if (typeof source[i] !== 'undefined') {
45
+ obj[i] = source[i];
46
+ }
47
+ }
48
+
49
+ return obj;
50
+ }
51
+
52
+ export function merge(
53
+ target: any,
54
+ source: any,
55
+ options: { plainObjects?: boolean; allowPrototypes?: boolean } = {},
56
+ ) {
57
+ if (!source) {
58
+ return target;
59
+ }
60
+
61
+ if (typeof source !== 'object') {
62
+ if (isArray(target)) {
63
+ target.push(source);
64
+ } else if (target && typeof target === 'object') {
65
+ if ((options && (options.plainObjects || options.allowPrototypes)) || !has(Object.prototype, source)) {
66
+ target[source] = true;
67
+ }
68
+ } else {
69
+ return [target, source];
70
+ }
71
+
72
+ return target;
73
+ }
74
+
75
+ if (!target || typeof target !== 'object') {
76
+ return [target].concat(source);
77
+ }
78
+
79
+ let mergeTarget = target;
80
+ if (isArray(target) && !isArray(source)) {
81
+ // @ts-ignore
82
+ mergeTarget = array_to_object(target, options);
83
+ }
84
+
85
+ if (isArray(target) && isArray(source)) {
86
+ source.forEach(function (item, i) {
87
+ if (has(target, i)) {
88
+ const targetItem = target[i];
89
+ if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {
90
+ target[i] = merge(targetItem, item, options);
91
+ } else {
92
+ target.push(item);
93
+ }
94
+ } else {
95
+ target[i] = item;
96
+ }
97
+ });
98
+ return target;
99
+ }
100
+
101
+ return Object.keys(source).reduce(function (acc, key) {
102
+ const value = source[key];
103
+
104
+ if (has(acc, key)) {
105
+ acc[key] = merge(acc[key], value, options);
106
+ } else {
107
+ acc[key] = value;
108
+ }
109
+ return acc;
110
+ }, mergeTarget);
111
+ }
112
+
113
+ export function assign_single_source(target: any, source: any) {
114
+ return Object.keys(source).reduce(function (acc, key) {
115
+ acc[key] = source[key];
116
+ return acc;
117
+ }, target);
118
+ }
119
+
120
+ export function decode(str: string, _: any, charset: string) {
121
+ const strWithoutPlus = str.replace(/\+/g, ' ');
122
+ if (charset === 'iso-8859-1') {
123
+ // unescape never throws, no try...catch needed:
124
+ return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);
125
+ }
126
+ // utf-8
127
+ try {
128
+ return decodeURIComponent(strWithoutPlus);
129
+ } catch (e) {
130
+ return strWithoutPlus;
131
+ }
132
+ }
133
+
134
+ const limit = 1024;
135
+
136
+ export const encode: (
137
+ str: any,
138
+ defaultEncoder: DefaultEncoder,
139
+ charset: string,
140
+ type: 'key' | 'value',
141
+ format: Format,
142
+ ) => string = (str, _defaultEncoder, charset, _kind, format: Format) => {
143
+ // This code was originally written by Brian White for the io.js core querystring library.
144
+ // It has been adapted here for stricter adherence to RFC 3986
145
+ if (str.length === 0) {
146
+ return str;
147
+ }
148
+
149
+ let string = str;
150
+ if (typeof str === 'symbol') {
151
+ string = Symbol.prototype.toString.call(str);
152
+ } else if (typeof str !== 'string') {
153
+ string = String(str);
154
+ }
155
+
156
+ if (charset === 'iso-8859-1') {
157
+ return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {
158
+ return '%26%23' + parseInt($0.slice(2), 16) + '%3B';
159
+ });
160
+ }
161
+
162
+ let out = '';
163
+ for (let j = 0; j < string.length; j += limit) {
164
+ const segment = string.length >= limit ? string.slice(j, j + limit) : string;
165
+ const arr = [];
166
+
167
+ for (let i = 0; i < segment.length; ++i) {
168
+ let c = segment.charCodeAt(i);
169
+ if (
170
+ c === 0x2d || // -
171
+ c === 0x2e || // .
172
+ c === 0x5f || // _
173
+ c === 0x7e || // ~
174
+ (c >= 0x30 && c <= 0x39) || // 0-9
175
+ (c >= 0x41 && c <= 0x5a) || // a-z
176
+ (c >= 0x61 && c <= 0x7a) || // A-Z
177
+ (format === RFC1738 && (c === 0x28 || c === 0x29)) // ( )
178
+ ) {
179
+ arr[arr.length] = segment.charAt(i);
180
+ continue;
181
+ }
182
+
183
+ if (c < 0x80) {
184
+ arr[arr.length] = hex_table[c];
185
+ continue;
186
+ }
187
+
188
+ if (c < 0x800) {
189
+ arr[arr.length] = hex_table[0xc0 | (c >> 6)]! + hex_table[0x80 | (c & 0x3f)];
190
+ continue;
191
+ }
192
+
193
+ if (c < 0xd800 || c >= 0xe000) {
194
+ arr[arr.length] =
195
+ hex_table[0xe0 | (c >> 12)]! + hex_table[0x80 | ((c >> 6) & 0x3f)] + hex_table[0x80 | (c & 0x3f)];
196
+ continue;
197
+ }
198
+
199
+ i += 1;
200
+ c = 0x10000 + (((c & 0x3ff) << 10) | (segment.charCodeAt(i) & 0x3ff));
201
+
202
+ arr[arr.length] =
203
+ hex_table[0xf0 | (c >> 18)]! +
204
+ hex_table[0x80 | ((c >> 12) & 0x3f)] +
205
+ hex_table[0x80 | ((c >> 6) & 0x3f)] +
206
+ hex_table[0x80 | (c & 0x3f)];
207
+ }
208
+
209
+ out += arr.join('');
210
+ }
211
+
212
+ return out;
213
+ };
214
+
215
+ export function compact(value: any) {
216
+ const queue = [{ obj: { o: value }, prop: 'o' }];
217
+ const refs = [];
218
+
219
+ for (let i = 0; i < queue.length; ++i) {
220
+ const item = queue[i];
221
+ // @ts-ignore
222
+ const obj = item.obj[item.prop];
223
+
224
+ const keys = Object.keys(obj);
225
+ for (let j = 0; j < keys.length; ++j) {
226
+ const key = keys[j]!;
227
+ const val = obj[key];
228
+ if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {
229
+ queue.push({ obj: obj, prop: key });
230
+ refs.push(val);
231
+ }
232
+ }
233
+ }
234
+
235
+ compact_queue(queue);
236
+
237
+ return value;
238
+ }
239
+
240
+ export function is_regexp(obj: any) {
241
+ return Object.prototype.toString.call(obj) === '[object RegExp]';
242
+ }
243
+
244
+ export function is_buffer(obj: any) {
245
+ if (!obj || typeof obj !== 'object') {
246
+ return false;
247
+ }
248
+
249
+ return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));
250
+ }
251
+
252
+ export function combine(a: any, b: any) {
253
+ return [].concat(a, b);
254
+ }
255
+
256
+ export function maybe_map<T>(val: T[], fn: (v: T) => T) {
257
+ if (isArray(val)) {
258
+ const mapped = [];
259
+ for (let i = 0; i < val.length; i += 1) {
260
+ mapped.push(fn(val[i]!));
261
+ }
262
+ return mapped;
263
+ }
264
+ return fn(val);
265
+ }
@@ -9,8 +9,12 @@ export {
9
9
  } from './namespaces';
10
10
  export {
11
11
  Servers,
12
+ type BuildConfig,
13
+ type DeploymentTarget,
14
+ type ProjectConfig,
12
15
  type ServerRetrieveResponse,
13
16
  type ServerListResponse,
17
+ type ServerDeleteResponse,
14
18
  type ServerListParams,
15
19
  type ServerListResponsesSmitheryPage,
16
20
  } from './servers/servers';
@@ -26,8 +26,12 @@ export {
26
26
  } from './secrets';
27
27
  export {
28
28
  Servers,
29
+ type BuildConfig,
30
+ type DeploymentTarget,
31
+ type ProjectConfig,
29
32
  type ServerRetrieveResponse,
30
33
  type ServerListResponse,
34
+ type ServerDeleteResponse,
31
35
  type ServerListParams,
32
36
  type ServerListResponsesSmitheryPage,
33
37
  } from './servers';
@@ -56,6 +56,14 @@ export class Servers extends APIResource {
56
56
  return this._client.getAPIList('/servers', SmitheryPage<ServerListResponse>, { query, ...options });
57
57
  }
58
58
 
59
+ /**
60
+ * Delete a server by qualified name. Requires ownership. Also cleans up the
61
+ * associated Cloudflare worker.
62
+ */
63
+ delete(qualifiedName: string, options?: RequestOptions): APIPromise<ServerDeleteResponse> {
64
+ return this._client.delete(path`/servers/${qualifiedName}`, options);
65
+ }
66
+
59
67
  /**
60
68
  * Download the MCPB bundle for the latest successful stdio deployment
61
69
  */
@@ -70,6 +78,68 @@ export class Servers extends APIResource {
70
78
 
71
79
  export type ServerListResponsesSmitheryPage = SmitheryPage<ServerListResponse>;
72
80
 
81
+ /**
82
+ * Custom build configuration for cloud builds
83
+ */
84
+ export interface BuildConfig {
85
+ /**
86
+ * Custom build command. Defaults to 'npm run build'
87
+ */
88
+ buildCommand?: string;
89
+
90
+ /**
91
+ * Custom install command. Defaults to 'npm install'
92
+ */
93
+ installCommand?: string;
94
+
95
+ /**
96
+ * Directory containing the build output, relative to base directory. Defaults to
97
+ * '.smithery'
98
+ */
99
+ outputDirectory?: string;
100
+ }
101
+
102
+ export type DeploymentTarget = 'local' | 'remote';
103
+
104
+ export interface ProjectConfig {
105
+ /**
106
+ * Custom build configuration for cloud builds
107
+ */
108
+ build?: ProjectConfig.Build;
109
+
110
+ /**
111
+ * The environment to inject when spawning the process.
112
+ */
113
+ env?: { [key: string]: string };
114
+
115
+ target?: 'local' | 'remote';
116
+
117
+ [k: string]: unknown;
118
+ }
119
+
120
+ export namespace ProjectConfig {
121
+ /**
122
+ * Custom build configuration for cloud builds
123
+ */
124
+ export interface Build {
125
+ /**
126
+ * Custom build command. Defaults to 'npm run build'
127
+ */
128
+ buildCommand?: string;
129
+
130
+ /**
131
+ * Custom install command. Defaults to 'npm install'
132
+ */
133
+ installCommand?: string;
134
+
135
+ /**
136
+ * Directory containing the build output, relative to base directory. Defaults to
137
+ * '.smithery'
138
+ */
139
+ outputDirectory?: string;
140
+ }
141
+ }
142
+
73
143
  export interface ServerRetrieveResponse {
74
144
  connections: Array<ServerRetrieveResponse.StdioConnection | ServerRetrieveResponse.HTTPConnection>;
75
145
 
@@ -156,7 +226,15 @@ export interface ServerListResponse {
156
226
  verified: boolean;
157
227
  }
158
228
 
229
+ export interface ServerDeleteResponse {
230
+ qualifiedName: string;
231
+
232
+ success: boolean;
233
+ }
234
+
159
235
  export interface ServerListParams extends SmitheryPageParams {
236
+ ids?: Array<string>;
237
+
160
238
  isDeployed?: '0' | '1' | 'true' | 'false';
161
239
 
162
240
  ownerId?: string;
@@ -180,8 +258,12 @@ Servers.Secrets = Secrets;
180
258
 
181
259
  export declare namespace Servers {
182
260
  export {
261
+ type BuildConfig as BuildConfig,
262
+ type DeploymentTarget as DeploymentTarget,
263
+ type ProjectConfig as ProjectConfig,
183
264
  type ServerRetrieveResponse as ServerRetrieveResponse,
184
265
  type ServerListResponse as ServerListResponse,
266
+ type ServerDeleteResponse as ServerDeleteResponse,
185
267
  type ServerListResponsesSmitheryPage as ServerListResponsesSmitheryPage,
186
268
  type ServerListParams as ServerListParams,
187
269
  };
@@ -22,22 +22,32 @@ export type SkillListResponsesSkillsPage = SkillsPage<SkillListResponse>;
22
22
  export interface SkillListResponse {
23
23
  id: string;
24
24
 
25
+ createdAt: string;
26
+
25
27
  description: string;
26
28
 
27
29
  displayName: string;
28
30
 
31
+ listed: boolean;
32
+
29
33
  namespace: string;
30
34
 
35
+ prompt: string | null;
36
+
31
37
  qualityScore: number;
32
38
 
33
39
  slug: string;
34
40
 
35
41
  categories?: Array<string>;
36
42
 
43
+ externalForks?: number;
44
+
37
45
  externalStars?: number;
38
46
 
39
47
  gitUrl?: string;
40
48
 
49
+ servers?: Array<string>;
50
+
41
51
  totalActivations?: number;
42
52
 
43
53
  uniqueUsers?: number;
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const VERSION = '0.8.0'; // x-release-please-version
1
+ export const VERSION = '0.10.0'; // x-release-please-version
package/version.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.8.0";
1
+ export declare const VERSION = "0.10.0";
2
2
  //# sourceMappingURL=version.d.mts.map
package/version.d.mts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.mts","sourceRoot":"","sources":["src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAC"}
1
+ {"version":3,"file":"version.d.mts","sourceRoot":"","sources":["src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,WAAW,CAAC"}
package/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.8.0";
1
+ export declare const VERSION = "0.10.0";
2
2
  //# sourceMappingURL=version.d.ts.map
package/version.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAC"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,WAAW,CAAC"}
package/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
- exports.VERSION = '0.8.0'; // x-release-please-version
4
+ exports.VERSION = '0.10.0'; // x-release-please-version
5
5
  //# sourceMappingURL=version.js.map
package/version.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG,OAAO,CAAC,CAAC,2BAA2B"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG,QAAQ,CAAC,CAAC,2BAA2B"}
package/version.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export const VERSION = '0.8.0'; // x-release-please-version
1
+ export const VERSION = '0.10.0'; // x-release-please-version
2
2
  //# sourceMappingURL=version.mjs.map
package/version.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"version.mjs","sourceRoot":"","sources":["src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,2BAA2B"}
1
+ {"version":3,"file":"version.mjs","sourceRoot":"","sources":["src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,2BAA2B"}