@qjp88995/provider-client 0.2.0 → 0.4.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 (145) hide show
  1. package/dist/direct-resolver.d.ts.map +1 -1
  2. package/dist/direct-resolver.js +2 -0
  3. package/dist/direct-resolver.js.map +1 -1
  4. package/dist/image/http.d.ts +16 -0
  5. package/dist/image/http.d.ts.map +1 -0
  6. package/dist/image/http.js +62 -0
  7. package/dist/image/http.js.map +1 -0
  8. package/dist/image/index.d.ts +32 -0
  9. package/dist/image/index.d.ts.map +1 -0
  10. package/dist/image/index.js +39 -0
  11. package/dist/image/index.js.map +1 -0
  12. package/dist/image/types.d.ts +94 -0
  13. package/dist/image/types.d.ts.map +1 -0
  14. package/dist/image/types.js +44 -0
  15. package/dist/image/types.js.map +1 -0
  16. package/dist/image/volcengine.adapter.d.ts +8 -0
  17. package/dist/image/volcengine.adapter.d.ts.map +1 -0
  18. package/dist/image/volcengine.adapter.js +85 -0
  19. package/dist/image/volcengine.adapter.js.map +1 -0
  20. package/dist/index.d.ts +6 -2
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +5 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/justone/client.d.ts +101 -0
  25. package/dist/justone/client.d.ts.map +1 -0
  26. package/dist/justone/client.js +272 -0
  27. package/dist/justone/client.js.map +1 -0
  28. package/dist/justone/endpoint-spec.d.ts +49 -0
  29. package/dist/justone/endpoint-spec.d.ts.map +1 -0
  30. package/dist/justone/endpoint-spec.js +2 -0
  31. package/dist/justone/endpoint-spec.js.map +1 -0
  32. package/dist/justone/endpoints.generated.d.ts +7927 -0
  33. package/dist/justone/endpoints.generated.d.ts.map +1 -0
  34. package/dist/justone/endpoints.generated.js +8508 -0
  35. package/dist/justone/endpoints.generated.js.map +1 -0
  36. package/dist/justone/errors.d.ts +52 -0
  37. package/dist/justone/errors.d.ts.map +1 -0
  38. package/dist/justone/errors.js +73 -0
  39. package/dist/justone/errors.js.map +1 -0
  40. package/dist/justone/index.d.ts +8 -0
  41. package/dist/justone/index.d.ts.map +1 -0
  42. package/dist/justone/index.js +7 -0
  43. package/dist/justone/index.js.map +1 -0
  44. package/dist/justone/params.d.ts +17 -0
  45. package/dist/justone/params.d.ts.map +1 -0
  46. package/dist/justone/params.js +72 -0
  47. package/dist/justone/params.js.map +1 -0
  48. package/dist/justone/pricing.d.ts +6 -0
  49. package/dist/justone/pricing.d.ts.map +1 -0
  50. package/dist/justone/pricing.generated.d.ts +303 -0
  51. package/dist/justone/pricing.generated.d.ts.map +1 -0
  52. package/dist/justone/pricing.generated.js +305 -0
  53. package/dist/justone/pricing.generated.js.map +1 -0
  54. package/dist/justone/pricing.js +11 -0
  55. package/dist/justone/pricing.js.map +1 -0
  56. package/dist/media/bibigpt.adapter.d.ts +43 -0
  57. package/dist/media/bibigpt.adapter.d.ts.map +1 -0
  58. package/dist/media/bibigpt.adapter.js +302 -0
  59. package/dist/media/bibigpt.adapter.js.map +1 -0
  60. package/dist/media/http.d.ts +21 -0
  61. package/dist/media/http.d.ts.map +1 -0
  62. package/dist/media/http.js +39 -0
  63. package/dist/media/http.js.map +1 -0
  64. package/dist/media/index.d.ts +44 -0
  65. package/dist/media/index.d.ts.map +1 -0
  66. package/dist/media/index.js +47 -0
  67. package/dist/media/index.js.map +1 -0
  68. package/dist/media/types.d.ts +207 -0
  69. package/dist/media/types.d.ts.map +1 -0
  70. package/dist/media/types.js +21 -0
  71. package/dist/media/types.js.map +1 -0
  72. package/dist/media/zhipu-parser-package.d.ts +37 -0
  73. package/dist/media/zhipu-parser-package.d.ts.map +1 -0
  74. package/dist/media/zhipu-parser-package.js +108 -0
  75. package/dist/media/zhipu-parser-package.js.map +1 -0
  76. package/dist/media/zhipu.adapter.d.ts +37 -0
  77. package/dist/media/zhipu.adapter.d.ts.map +1 -0
  78. package/dist/media/zhipu.adapter.js +361 -0
  79. package/dist/media/zhipu.adapter.js.map +1 -0
  80. package/dist/provider-client.d.ts +62 -0
  81. package/dist/provider-client.d.ts.map +1 -1
  82. package/dist/provider-client.js +176 -0
  83. package/dist/provider-client.js.map +1 -1
  84. package/dist/types.d.ts +23 -2
  85. package/dist/types.d.ts.map +1 -1
  86. package/dist/types.js +12 -2
  87. package/dist/types.js.map +1 -1
  88. package/dist/web-search/deepseek.adapter.d.ts +19 -0
  89. package/dist/web-search/deepseek.adapter.d.ts.map +1 -0
  90. package/dist/web-search/deepseek.adapter.js +82 -0
  91. package/dist/web-search/deepseek.adapter.js.map +1 -0
  92. package/dist/web-search/http.d.ts +28 -0
  93. package/dist/web-search/http.d.ts.map +1 -0
  94. package/dist/web-search/http.js +95 -0
  95. package/dist/web-search/http.js.map +1 -0
  96. package/dist/web-search/index.d.ts +27 -0
  97. package/dist/web-search/index.d.ts.map +1 -0
  98. package/dist/web-search/index.js +36 -0
  99. package/dist/web-search/index.js.map +1 -0
  100. package/dist/web-search/minimax.adapter.d.ts +13 -0
  101. package/dist/web-search/minimax.adapter.d.ts.map +1 -0
  102. package/dist/web-search/minimax.adapter.js +82 -0
  103. package/dist/web-search/minimax.adapter.js.map +1 -0
  104. package/dist/web-search/moonshotai.adapter.d.ts +19 -0
  105. package/dist/web-search/moonshotai.adapter.d.ts.map +1 -0
  106. package/dist/web-search/moonshotai.adapter.js +151 -0
  107. package/dist/web-search/moonshotai.adapter.js.map +1 -0
  108. package/dist/web-search/types.d.ts +120 -0
  109. package/dist/web-search/types.d.ts.map +1 -0
  110. package/dist/web-search/types.js +60 -0
  111. package/dist/web-search/types.js.map +1 -0
  112. package/dist/web-search/zhipu.adapter.d.ts +14 -0
  113. package/dist/web-search/zhipu.adapter.d.ts.map +1 -0
  114. package/dist/web-search/zhipu.adapter.js +98 -0
  115. package/dist/web-search/zhipu.adapter.js.map +1 -0
  116. package/package.json +4 -3
  117. package/src/direct-resolver.ts +2 -0
  118. package/src/image/http.ts +68 -0
  119. package/src/image/index.ts +87 -0
  120. package/src/image/types.ts +134 -0
  121. package/src/image/volcengine.adapter.ts +133 -0
  122. package/src/index.ts +126 -0
  123. package/src/justone/client.ts +462 -0
  124. package/src/justone/endpoint-spec.ts +66 -0
  125. package/src/justone/endpoints.generated.ts +9258 -0
  126. package/src/justone/errors.ts +97 -0
  127. package/src/justone/index.ts +34 -0
  128. package/src/justone/params.ts +91 -0
  129. package/src/justone/pricing.generated.ts +308 -0
  130. package/src/justone/pricing.ts +11 -0
  131. package/src/media/bibigpt.adapter.ts +372 -0
  132. package/src/media/http.ts +43 -0
  133. package/src/media/index.ts +114 -0
  134. package/src/media/types.ts +233 -0
  135. package/src/media/zhipu-parser-package.ts +149 -0
  136. package/src/media/zhipu.adapter.ts +510 -0
  137. package/src/provider-client.ts +303 -1
  138. package/src/types.ts +31 -2
  139. package/src/web-search/deepseek.adapter.ts +149 -0
  140. package/src/web-search/http.ts +108 -0
  141. package/src/web-search/index.ts +70 -0
  142. package/src/web-search/minimax.adapter.ts +148 -0
  143. package/src/web-search/moonshotai.adapter.ts +228 -0
  144. package/src/web-search/types.ts +172 -0
  145. package/src/web-search/zhipu.adapter.ts +184 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/justone/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,272 @@
1
+ import { parseCenterError, ProviderClientError } from '../errors.js';
2
+ import { PC_HEADERS } from '../types.js';
3
+ import { JUSTONE_ENDPOINTS } from './endpoints.generated.js';
4
+ import { classifyCode, JustOneParamsError, JustOneUpstreamError, } from './errors.js';
5
+ import { normalizeParams } from './params.js';
6
+ import { justOnePriceFen } from './pricing.js';
7
+ export const JUSTONE_BASE_URL = 'https://api.justoneapi.com';
8
+ /** 官方建议 120 秒:服务端是现场去平台采集的,60 秒以下会有一部分请求等不到结果。 */
9
+ export const JUSTONE_TIMEOUT_MS = 120_000;
10
+ /** 两次尝试之间的间隔。 */
11
+ const RETRY_DELAY_MS = 1_000;
12
+ /** 绑好连接的 JustOne 客户端。中心模式用 `ProviderClient.justOne`;这里是直连与中心模式共用的底层。 */
13
+ export function createJustOne(options) {
14
+ const conn = options.connection;
15
+ const base = (conn.baseUrl ?? JUSTONE_BASE_URL).replace(/\/+$/, '');
16
+ const doFetch = conn.fetch ?? globalThis.fetch;
17
+ const record = async (r) => {
18
+ if (!options.onAttempt)
19
+ return;
20
+ try {
21
+ await options.onAttempt(r);
22
+ }
23
+ catch (err) {
24
+ console.error(`[provider-client] JustOne onAttempt threw (${r.endpoint}, attempt ${r.attempt}): ${String(err)}`);
25
+ }
26
+ };
27
+ const attempt = async (spec, values, opts) => {
28
+ const fields = new URLSearchParams(conn.token ? { ...values, token: conn.token } : values);
29
+ const query = fields.toString();
30
+ const url = spec.paramsIn === 'query' && query
31
+ ? `${base}${spec.path}?${query}`
32
+ : `${base}${spec.path}`;
33
+ const timeout = AbortSignal.timeout(opts.timeoutMs ?? JUSTONE_TIMEOUT_MS);
34
+ const signal = opts.signal
35
+ ? AbortSignal.any([opts.signal, timeout])
36
+ : timeout;
37
+ const started = Date.now();
38
+ let res;
39
+ let text;
40
+ try {
41
+ res = await doFetch(url, {
42
+ method: spec.method,
43
+ headers: { accept: 'application/json' },
44
+ ...(spec.paramsIn === 'form' ? { body: fields } : {}),
45
+ signal,
46
+ });
47
+ text = await res.text();
48
+ }
49
+ catch (err) {
50
+ const failure = {
51
+ code: null,
52
+ httpStatus: null,
53
+ requestId: null,
54
+ credential: null,
55
+ elapsedMs: Date.now() - started,
56
+ };
57
+ // 请求可能已经到了对方那里(可能扣了费),所以取消也要记一行;由调用循环记完再抛。
58
+ if (opts.signal?.aborted) {
59
+ return {
60
+ ok: false,
61
+ kind: 'aborted',
62
+ reason: '调用方取消了这次请求',
63
+ retryable: false,
64
+ ...failure,
65
+ };
66
+ }
67
+ if (timeout.aborted) {
68
+ return {
69
+ ok: false,
70
+ kind: 'timeout',
71
+ reason: `等了 ${Math.round((Date.now() - started) / 1000)} 秒没有返回`,
72
+ retryable: false,
73
+ ...failure,
74
+ };
75
+ }
76
+ // 只取错误类名与 cause 的 code(`UND_ERR_SOCKET` 之类):直连时 GET 的 token 就在 URL 里。
77
+ return {
78
+ ok: false,
79
+ kind: 'network',
80
+ reason: `连接失败(${describeNetworkError(err)})`,
81
+ retryable: true,
82
+ ...failure,
83
+ };
84
+ }
85
+ const elapsedMs = Date.now() - started;
86
+ const credential = res.headers.get(PC_HEADERS.credential);
87
+ const httpStatus = res.status;
88
+ // 中心自己的错误体(`{ code: '<字符串>', message }`,没有 `x-pc-credential`):请求没到 JustOne。
89
+ if (!res.ok && !credential) {
90
+ const center = centerError(text);
91
+ if (center?.code === 'upstream_error') {
92
+ return {
93
+ ok: false,
94
+ kind: 'network',
95
+ reason: `中心连不上 JustOne(${center.message})`,
96
+ code: null,
97
+ httpStatus,
98
+ requestId: null,
99
+ retryable: true,
100
+ elapsedMs,
101
+ credential: null,
102
+ };
103
+ }
104
+ if (center) {
105
+ throw new ProviderClientError(center.code, center.message, httpStatus);
106
+ }
107
+ }
108
+ // 对方的报错里万一回显了 token:先抹掉再往下走,于是记录里的返回体、错误信息都从这份抹过的文本来。
109
+ const response = conn.token ? text.split(conn.token).join('***') : text;
110
+ let body;
111
+ try {
112
+ body = JSON.parse(response);
113
+ }
114
+ catch {
115
+ return invalidResponse(httpStatus, `不是 JSON:${response.slice(0, 120)}`, elapsedMs, response, credential);
116
+ }
117
+ if (!isEnvelope(body)) {
118
+ return invalidResponse(httpStatus, 'JSON 里没有数字型的 code', elapsedMs, response, credential);
119
+ }
120
+ const requestId = typeof body.requestId === 'string' ? body.requestId : null;
121
+ const message = typeof body.message === 'string' ? body.message : null;
122
+ if (body.code !== 0) {
123
+ return {
124
+ ok: false,
125
+ ...classifyCode(body.code, message),
126
+ code: body.code,
127
+ httpStatus,
128
+ requestId,
129
+ elapsedMs,
130
+ response,
131
+ credential,
132
+ };
133
+ }
134
+ return {
135
+ ok: true,
136
+ response,
137
+ credential,
138
+ result: {
139
+ data: body.data ?? null,
140
+ message,
141
+ requestId,
142
+ recordTime: typeof body.recordTime === 'string' ? body.recordTime : null,
143
+ elapsedMs,
144
+ httpStatus,
145
+ },
146
+ };
147
+ };
148
+ const callDynamic = async (endpoint, params, opts = {}) => {
149
+ const spec = justOneEndpointSpec(endpoint);
150
+ if (!spec) {
151
+ throw new JustOneParamsError(endpoint, ['登记表里没有这个接口']);
152
+ }
153
+ const normalized = normalizeParams(spec, params);
154
+ if (!normalized.ok) {
155
+ throw new JustOneParamsError(endpoint, normalized.problems);
156
+ }
157
+ const retries = Math.max(0, opts.retries ?? 1);
158
+ const unitPriceFen = justOnePriceFen(endpoint);
159
+ for (let n = 1;; n++) {
160
+ opts.signal?.throwIfAborted();
161
+ const out = await attempt(spec, normalized.values, opts);
162
+ await record({
163
+ endpoint,
164
+ params: normalized.values,
165
+ attempt: n,
166
+ response: out.response,
167
+ credential: out.credential,
168
+ unitPriceFen,
169
+ context: opts.context,
170
+ ...(out.ok
171
+ ? {
172
+ ok: true,
173
+ code: 0,
174
+ httpStatus: out.result.httpStatus,
175
+ requestId: out.result.requestId,
176
+ elapsedMs: out.result.elapsedMs,
177
+ }
178
+ : {
179
+ ok: false,
180
+ failureKind: out.kind,
181
+ code: out.code,
182
+ httpStatus: out.httpStatus,
183
+ requestId: out.requestId,
184
+ error: out.reason,
185
+ elapsedMs: out.elapsedMs,
186
+ }),
187
+ });
188
+ if (out.ok) {
189
+ const { httpStatus: _http, ...result } = out.result;
190
+ return { endpoint, ...result, attempts: n };
191
+ }
192
+ if (out.kind === 'aborted') {
193
+ // 只有调用方的信号已中止时 attempt 才给 aborted:原样抛出取消原因。
194
+ opts.signal?.throwIfAborted();
195
+ throw new Error('JustOne attempt reported aborted without a signal');
196
+ }
197
+ if (!out.retryable || n > retries) {
198
+ throw new JustOneUpstreamError(endpoint, out.kind, out.reason, {
199
+ code: out.code,
200
+ httpStatus: out.httpStatus,
201
+ requestId: out.requestId,
202
+ retryable: out.retryable,
203
+ attempts: n,
204
+ });
205
+ }
206
+ await sleep(RETRY_DELAY_MS, opts.signal);
207
+ }
208
+ };
209
+ return {
210
+ call: (endpoint, params, opts) => callDynamic(endpoint, params, opts),
211
+ callDynamic,
212
+ };
213
+ }
214
+ /** 按键查登记表;不在表里返回 undefined(`hasOwn` 不走原型链上的同名属性)。 */
215
+ export function justOneEndpointSpec(key) {
216
+ return Object.hasOwn(JUSTONE_ENDPOINTS, key)
217
+ ? JUSTONE_ENDPOINTS[key]
218
+ : undefined;
219
+ }
220
+ function centerError(text) {
221
+ try {
222
+ return parseCenterError(JSON.parse(text));
223
+ }
224
+ catch {
225
+ return null;
226
+ }
227
+ }
228
+ function isEnvelope(v) {
229
+ return (typeof v === 'object' &&
230
+ v !== null &&
231
+ typeof v.code === 'number');
232
+ }
233
+ function invalidResponse(httpStatus, what, elapsedMs, response, credential) {
234
+ return {
235
+ ok: false,
236
+ kind: 'invalid-response',
237
+ reason: `HTTP ${httpStatus},响应${what}`,
238
+ code: null,
239
+ httpStatus,
240
+ requestId: null,
241
+ // 网关层的 5xx(还没到 JustOne 的业务层)值得再试一次。
242
+ retryable: httpStatus >= 500,
243
+ elapsedMs,
244
+ response,
245
+ credential,
246
+ };
247
+ }
248
+ function describeNetworkError(err) {
249
+ if (!(err instanceof Error))
250
+ return 'unknown';
251
+ const cause = err.cause;
252
+ return typeof cause?.code === 'string'
253
+ ? `${err.name} ${cause.code}`
254
+ : err.name;
255
+ }
256
+ /** 可被调用方取消的等待:取消时原样抛出信号的 reason。 */
257
+ function sleep(ms, signal) {
258
+ return new Promise((resolve, reject) => {
259
+ if (signal?.aborted)
260
+ return reject(signal.reason);
261
+ const timer = setTimeout(() => {
262
+ signal?.removeEventListener('abort', onAbort);
263
+ resolve();
264
+ }, ms);
265
+ const onAbort = () => {
266
+ clearTimeout(timer);
267
+ reject(signal?.reason);
268
+ };
269
+ signal?.addEventListener('abort', onAbort, { once: true });
270
+ });
271
+ }
272
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/justone/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * 登记表里一个接口的形状(`justone-endpoints.generated.ts` 由脚本从官方 OpenAPI
3
+ * 生成,见 `packages/client/scripts/generate-justone-endpoints.mjs`)。
4
+ *
5
+ * 文字(`title` / `description` / `notes` / 参数说明)都是官方中文文档的原文,
6
+ * 将来给模型看的工具说明可以直接取用,不必再抄一遍。
7
+ */
8
+ export interface JustOneEndpointSpec {
9
+ method: 'GET' | 'POST';
10
+ path: string;
11
+ /**
12
+ * 参数与 token 放哪:`query` 或 `form`(`application/x-www-form-urlencoded`
13
+ * 请求体)。不能按方法推断——官方有几个 POST 接口没有请求体、参数全在 query。
14
+ */
15
+ paramsIn: 'query' | 'form';
16
+ /** 官方分类(中文 tag),如「小红书」「抖音巨量星图」。 */
17
+ platform: string;
18
+ /** 如「笔记详情 (V1)」。 */
19
+ title: string;
20
+ description: string;
21
+ docsUrl: string;
22
+ deprecated?: boolean;
23
+ /** 官方在同一能力的多个版本里推荐的那个。 */
24
+ recommended?: boolean;
25
+ /** 官方标注的限制与用法提示(「此版本不支持视频下载」……)。 */
26
+ notes?: readonly string[];
27
+ /** 不含 `token`——它由客户端统一放。 */
28
+ params: Readonly<Record<string, JustOneParamSpec>>;
29
+ }
30
+ export interface JustOneParamSpec {
31
+ type: 'string' | 'integer' | 'number' | 'boolean';
32
+ required: boolean;
33
+ enum?: readonly string[];
34
+ default?: string | number | boolean;
35
+ description?: string;
36
+ }
37
+ /** 单个参数的 TS 值类型:有枚举就收窄成字面量。 */
38
+ type ParamValue<P extends JustOneParamSpec> = P['enum'] extends readonly (infer E)[] ? E : P['type'] extends 'integer' | 'number' ? number : P['type'] extends 'boolean' ? boolean : string;
39
+ type Simplify<T> = {
40
+ [K in keyof T]: T[K];
41
+ } & {};
42
+ /** 一个接口的入参类型:必填的必填、可选的可选,名字与取值都按登记表收窄。 */
43
+ export type JustOneParamsOf<S extends JustOneEndpointSpec> = Simplify<{
44
+ -readonly [K in keyof S['params'] as S['params'][K]['required'] extends true ? K : never]: ParamValue<S['params'][K]>;
45
+ } & {
46
+ -readonly [K in keyof S['params'] as S['params'][K]['required'] extends true ? never : K]?: ParamValue<S['params'][K]>;
47
+ }>;
48
+ export {};
49
+ //# sourceMappingURL=endpoint-spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint-spec.d.ts","sourceRoot":"","sources":["../../src/justone/endpoint-spec.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IAC3B,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oCAAoC;IACpC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,4BAA4B;IAC5B,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IAClD,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,+BAA+B;AAC/B,KAAK,UAAU,CAAC,CAAC,SAAS,gBAAgB,IACxC,CAAC,CAAC,MAAM,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAClC,CAAC,GACD,CAAC,CAAC,MAAM,CAAC,SAAS,SAAS,GAAG,QAAQ,GACpC,MAAM,GACN,CAAC,CAAC,MAAM,CAAC,SAAS,SAAS,GACzB,OAAO,GACP,MAAM,CAAC;AAEjB,KAAK,QAAQ,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,EAAE,CAAC;AAEjD,0CAA0C;AAC1C,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,mBAAmB,IAAI,QAAQ,CACnE;IACE,CAAC,UACC,CAAC,IAAI,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,IAAI,GAC7D,CAAC,GACD,KAAK,GACR,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9B,GAAG;IACF,CAAC,UACC,CAAC,IAAI,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,IAAI,GAC7D,KAAK,GACL,CAAC,CACN,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;CAC/B,CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=endpoint-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint-spec.js","sourceRoot":"","sources":["../../src/justone/endpoint-spec.ts"],"names":[],"mappings":""}