@trpc/server 11.1.0 → 11.1.1-canary.8
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/adapters/fastify/fastifyTRPCPlugin.js +2 -2
- package/dist/adapters/fastify/fastifyTRPCPlugin.mjs +2 -2
- package/dist/adapters/ws.d.ts +1 -1
- package/dist/adapters/ws.d.ts.map +1 -1
- package/dist/adapters/ws.js +102 -84
- package/dist/adapters/ws.mjs +102 -84
- package/dist/bundle-analysis.json +997 -0
- package/package.json +2 -2
- package/src/adapters/fastify/fastifyTRPCPlugin.ts +2 -2
- package/src/adapters/ws.ts +115 -91
- package/adapters/node-http/content-type/form-data/index.d.ts +0 -1
- package/adapters/node-http/content-type/form-data/index.js +0 -1
- package/adapters/node-http/content-type/json/index.d.ts +0 -1
- package/adapters/node-http/content-type/json/index.js +0 -1
- package/src/adapters/node-http/__generated__/cert.csr +0 -16
- package/src/adapters/node-http/__generated__/certificate/cert.csr +0 -16
- package/src/adapters/node-http/__generated__/certificate/certificate.crt +0 -21
- package/src/adapters/node-http/__generated__/certificate/private.key +0 -28
- package/src/adapters/node-http/__generated__/certificate.crt +0 -21
- package/src/adapters/node-http/__generated__/private.key +0 -28
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trpc/server",
|
|
3
|
-
"version": "11.1.
|
|
3
|
+
"version": "11.1.1-canary.8+9beb26c63",
|
|
4
4
|
"description": "The tRPC server library",
|
|
5
5
|
"author": "KATT",
|
|
6
6
|
"license": "MIT",
|
|
@@ -152,5 +152,5 @@
|
|
|
152
152
|
"peerDependencies": {
|
|
153
153
|
"typescript": ">=5.7.2"
|
|
154
154
|
},
|
|
155
|
-
"gitHead": "
|
|
155
|
+
"gitHead": "9beb26c636d44852e0f407f3d7a82ad54df65b4d"
|
|
156
156
|
}
|
|
@@ -68,8 +68,8 @@ export function fastifyTRPCPlugin<TRouter extends AnyRouter>(
|
|
|
68
68
|
...trpcOptions,
|
|
69
69
|
});
|
|
70
70
|
|
|
71
|
-
fastify.get(prefix ?? '/', { websocket: true },
|
|
72
|
-
|
|
71
|
+
fastify.get(prefix ?? '/', { websocket: true }, (socket, req) => {
|
|
72
|
+
onConnection(socket, req.raw);
|
|
73
73
|
if (trpcOptions?.keepAlive?.enabled) {
|
|
74
74
|
const { pingMs, pongWaitMs } = trpcOptions.keepAlive;
|
|
75
75
|
handleKeepAlive(socket, pingMs, pongWaitMs);
|
package/src/adapters/ws.ts
CHANGED
|
@@ -34,6 +34,8 @@ import {
|
|
|
34
34
|
type MaybePromise,
|
|
35
35
|
} from '../unstable-core-do-not-import';
|
|
36
36
|
// eslint-disable-next-line no-restricted-imports
|
|
37
|
+
import type { Result } from '../unstable-core-do-not-import';
|
|
38
|
+
// eslint-disable-next-line no-restricted-imports
|
|
37
39
|
import { iteratorResource } from '../unstable-core-do-not-import/stream/utils/asyncIterable';
|
|
38
40
|
import { Unpromise } from '../vendor/unpromise';
|
|
39
41
|
import { createURL, type NodeHTTPCreateContextFnOptions } from './node-http';
|
|
@@ -98,14 +100,16 @@ export type WSSHandlerOptions<TRouter extends AnyRouter> =
|
|
|
98
100
|
dangerouslyDisablePong?: boolean;
|
|
99
101
|
};
|
|
100
102
|
|
|
101
|
-
const unsetContextPromiseSymbol = Symbol('unsetContextPromise');
|
|
102
103
|
export function getWSConnectionHandler<TRouter extends AnyRouter>(
|
|
103
104
|
opts: WSSHandlerOptions<TRouter>,
|
|
104
105
|
) {
|
|
105
106
|
const { createContext, router } = opts;
|
|
106
107
|
const { transformer } = router._def._config;
|
|
107
108
|
|
|
108
|
-
return
|
|
109
|
+
return (client: ws.WebSocket, req: IncomingMessage) => {
|
|
110
|
+
type Context = inferRouterContext<TRouter>;
|
|
111
|
+
type ContextResult = Result<Context>;
|
|
112
|
+
|
|
109
113
|
const clientSubscriptions = new Map<number | string, AbortController>();
|
|
110
114
|
const abortController = new AbortController();
|
|
111
115
|
|
|
@@ -122,26 +126,31 @@ export function getWSConnectionHandler<TRouter extends AnyRouter>(
|
|
|
122
126
|
);
|
|
123
127
|
}
|
|
124
128
|
|
|
125
|
-
function createCtxPromise(
|
|
129
|
+
async function createCtxPromise(
|
|
126
130
|
getConnectionParams: () => TRPCRequestInfo['connectionParams'],
|
|
127
|
-
): Promise<
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
131
|
+
): Promise<ContextResult> {
|
|
132
|
+
try {
|
|
133
|
+
return await run(async (): Promise<ContextResult> => {
|
|
134
|
+
ctx = await createContext?.({
|
|
135
|
+
req,
|
|
136
|
+
res: client,
|
|
137
|
+
info: {
|
|
138
|
+
connectionParams: getConnectionParams(),
|
|
139
|
+
calls: [],
|
|
140
|
+
isBatchCall: false,
|
|
141
|
+
accept: null,
|
|
142
|
+
type: 'unknown',
|
|
143
|
+
signal: abortController.signal,
|
|
144
|
+
url: null,
|
|
145
|
+
},
|
|
146
|
+
});
|
|
142
147
|
|
|
143
|
-
|
|
144
|
-
|
|
148
|
+
return {
|
|
149
|
+
ok: true,
|
|
150
|
+
value: ctx,
|
|
151
|
+
};
|
|
152
|
+
});
|
|
153
|
+
} catch (cause) {
|
|
145
154
|
const error = getTRPCErrorFromUnknown(cause);
|
|
146
155
|
opts.onError?.({
|
|
147
156
|
error,
|
|
@@ -167,12 +176,14 @@ export function getWSConnectionHandler<TRouter extends AnyRouter>(
|
|
|
167
176
|
(globalThis.setImmediate ?? globalThis.setTimeout)(() => {
|
|
168
177
|
client.close();
|
|
169
178
|
});
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
179
|
+
return {
|
|
180
|
+
ok: false,
|
|
181
|
+
error,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
173
184
|
}
|
|
174
185
|
|
|
175
|
-
let ctx:
|
|
186
|
+
let ctx: Context | undefined = undefined;
|
|
176
187
|
|
|
177
188
|
/**
|
|
178
189
|
* promise for initializing the context
|
|
@@ -182,18 +193,40 @@ export function getWSConnectionHandler<TRouter extends AnyRouter>(
|
|
|
182
193
|
*/
|
|
183
194
|
let ctxPromise =
|
|
184
195
|
createURL(req).searchParams.get('connectionParams') === '1'
|
|
185
|
-
?
|
|
196
|
+
? null
|
|
186
197
|
: createCtxPromise(() => null);
|
|
187
198
|
|
|
188
|
-
|
|
199
|
+
function handleRequest(msg: TRPCClientOutgoingMessage) {
|
|
189
200
|
const { id, jsonrpc } = msg;
|
|
190
201
|
|
|
191
|
-
/* istanbul ignore next -- @preserve */
|
|
192
202
|
if (id === null) {
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
203
|
+
const error = getTRPCErrorFromUnknown(
|
|
204
|
+
new TRPCError({
|
|
205
|
+
code: 'PARSE_ERROR',
|
|
206
|
+
message: '`id` is required',
|
|
207
|
+
}),
|
|
208
|
+
);
|
|
209
|
+
opts.onError?.({
|
|
210
|
+
error,
|
|
211
|
+
path: undefined,
|
|
212
|
+
type: 'unknown',
|
|
213
|
+
ctx,
|
|
214
|
+
req,
|
|
215
|
+
input: undefined,
|
|
196
216
|
});
|
|
217
|
+
respond({
|
|
218
|
+
id,
|
|
219
|
+
jsonrpc,
|
|
220
|
+
error: getErrorShape({
|
|
221
|
+
config: router._def._config,
|
|
222
|
+
error,
|
|
223
|
+
type: 'unknown',
|
|
224
|
+
path: undefined,
|
|
225
|
+
input: undefined,
|
|
226
|
+
ctx,
|
|
227
|
+
}),
|
|
228
|
+
});
|
|
229
|
+
return;
|
|
197
230
|
}
|
|
198
231
|
if (msg.method === 'subscription.stop') {
|
|
199
232
|
clientSubscriptions.get(id)?.abort();
|
|
@@ -202,20 +235,25 @@ export function getWSConnectionHandler<TRouter extends AnyRouter>(
|
|
|
202
235
|
const { path, lastEventId } = msg.params;
|
|
203
236
|
let { input } = msg.params;
|
|
204
237
|
const type = msg.method;
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
238
|
+
|
|
239
|
+
if (lastEventId !== undefined) {
|
|
240
|
+
if (isObject(input)) {
|
|
241
|
+
input = {
|
|
242
|
+
...input,
|
|
243
|
+
lastEventId: lastEventId,
|
|
244
|
+
};
|
|
245
|
+
} else {
|
|
246
|
+
input ??= {
|
|
247
|
+
lastEventId: lastEventId,
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
run(async () => {
|
|
252
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
253
|
+
const res = await ctxPromise!; // asserts context has been set
|
|
254
|
+
if (!res.ok) {
|
|
255
|
+
throw res.error;
|
|
217
256
|
}
|
|
218
|
-
await ctxPromise; // asserts context has been set
|
|
219
257
|
|
|
220
258
|
const abortController = new AbortController();
|
|
221
259
|
const result = await callTRPCProcedure({
|
|
@@ -384,7 +422,7 @@ export function getWSConnectionHandler<TRouter extends AnyRouter>(
|
|
|
384
422
|
type: 'started',
|
|
385
423
|
},
|
|
386
424
|
});
|
|
387
|
-
}
|
|
425
|
+
}).catch((cause) => {
|
|
388
426
|
// procedure threw an error
|
|
389
427
|
const error = getTRPCErrorFromUnknown(cause);
|
|
390
428
|
opts.onError?.({ error, path, type, ctx, req, input });
|
|
@@ -400,9 +438,9 @@ export function getWSConnectionHandler<TRouter extends AnyRouter>(
|
|
|
400
438
|
ctx,
|
|
401
439
|
}),
|
|
402
440
|
});
|
|
403
|
-
}
|
|
441
|
+
});
|
|
404
442
|
}
|
|
405
|
-
client.on('message',
|
|
443
|
+
client.on('message', (rawData) => {
|
|
406
444
|
// eslint-disable-next-line @typescript-eslint/no-base-to-string
|
|
407
445
|
const msgStr = rawData.toString();
|
|
408
446
|
if (msgStr === 'PONG') {
|
|
@@ -414,7 +452,7 @@ export function getWSConnectionHandler<TRouter extends AnyRouter>(
|
|
|
414
452
|
}
|
|
415
453
|
return;
|
|
416
454
|
}
|
|
417
|
-
if (ctxPromise
|
|
455
|
+
if (!ctxPromise) {
|
|
418
456
|
// If the ctxPromise wasn't created immediately, we're expecting the first message to be a TRPCConnectionParamsMessage
|
|
419
457
|
ctxPromise = createCtxPromise(() => {
|
|
420
458
|
let msg;
|
|
@@ -438,31 +476,36 @@ export function getWSConnectionHandler<TRouter extends AnyRouter>(
|
|
|
438
476
|
});
|
|
439
477
|
return;
|
|
440
478
|
}
|
|
441
|
-
try {
|
|
442
|
-
const msgJSON: unknown = JSON.parse(msgStr);
|
|
443
|
-
const msgs: unknown[] = Array.isArray(msgJSON) ? msgJSON : [msgJSON];
|
|
444
|
-
const promises = msgs
|
|
445
|
-
.map((raw) => parseTRPCMessage(raw, transformer))
|
|
446
|
-
.map(handleRequest);
|
|
447
|
-
await Promise.all(promises);
|
|
448
|
-
} catch (cause) {
|
|
449
|
-
const error = new TRPCError({
|
|
450
|
-
code: 'PARSE_ERROR',
|
|
451
|
-
cause,
|
|
452
|
-
});
|
|
453
479
|
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
480
|
+
const parsedMsgs = run(() => {
|
|
481
|
+
try {
|
|
482
|
+
const msgJSON: unknown = JSON.parse(msgStr);
|
|
483
|
+
const msgs: unknown[] = Array.isArray(msgJSON) ? msgJSON : [msgJSON];
|
|
484
|
+
|
|
485
|
+
return msgs.map((raw) => parseTRPCMessage(raw, transformer));
|
|
486
|
+
} catch (cause) {
|
|
487
|
+
const error = new TRPCError({
|
|
488
|
+
code: 'PARSE_ERROR',
|
|
489
|
+
cause,
|
|
490
|
+
});
|
|
491
|
+
|
|
492
|
+
respond({
|
|
493
|
+
id: null,
|
|
494
|
+
error: getErrorShape({
|
|
495
|
+
config: router._def._config,
|
|
496
|
+
error,
|
|
497
|
+
type: 'unknown',
|
|
498
|
+
path: undefined,
|
|
499
|
+
input: undefined,
|
|
500
|
+
ctx,
|
|
501
|
+
}),
|
|
502
|
+
});
|
|
503
|
+
|
|
504
|
+
return [];
|
|
505
|
+
}
|
|
506
|
+
});
|
|
507
|
+
|
|
508
|
+
parsedMsgs.map(handleRequest);
|
|
466
509
|
});
|
|
467
510
|
|
|
468
511
|
// WebSocket errors should be handled, as otherwise unhandled exceptions will crash Node.js.
|
|
@@ -487,10 +530,6 @@ export function getWSConnectionHandler<TRouter extends AnyRouter>(
|
|
|
487
530
|
clientSubscriptions.clear();
|
|
488
531
|
abortController.abort();
|
|
489
532
|
});
|
|
490
|
-
|
|
491
|
-
if (ctxPromise !== unsetContextPromiseSymbol) {
|
|
492
|
-
await ctxPromise;
|
|
493
|
-
}
|
|
494
533
|
};
|
|
495
534
|
}
|
|
496
535
|
|
|
@@ -544,22 +583,7 @@ export function applyWSSHandler<TRouter extends AnyRouter>(
|
|
|
544
583
|
return;
|
|
545
584
|
}
|
|
546
585
|
|
|
547
|
-
onConnection(client, req)
|
|
548
|
-
opts.onError?.({
|
|
549
|
-
error: new TRPCError({
|
|
550
|
-
code: 'INTERNAL_SERVER_ERROR',
|
|
551
|
-
cause,
|
|
552
|
-
message: 'Failed to handle WebSocket connection',
|
|
553
|
-
}),
|
|
554
|
-
req: req,
|
|
555
|
-
path: undefined,
|
|
556
|
-
type: 'unknown',
|
|
557
|
-
ctx: undefined,
|
|
558
|
-
input: undefined,
|
|
559
|
-
});
|
|
560
|
-
|
|
561
|
-
client.close();
|
|
562
|
-
});
|
|
586
|
+
onConnection(client, req);
|
|
563
587
|
});
|
|
564
588
|
|
|
565
589
|
return {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '../../../../dist/adapters/node-http/content-type/form-data';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('../../../../dist/adapters/node-http/content-type/form-data');
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '../../../../dist/adapters/node-http/content-type/json';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('../../../../dist/adapters/node-http/content-type/json');
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
-----BEGIN CERTIFICATE REQUEST-----
|
|
2
|
-
MIICnDCCAYQCAQAwVzELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBVN0YXRlMQ0wCwYD
|
|
3
|
-
VQQHDARDaXR5MRUwEwYDVQQKDAxPcmdhbml6YXRpb24xEjAQBgNVBAMMCWxvY2Fs
|
|
4
|
-
aG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMzmTl2DaAV9s+HQ
|
|
5
|
-
q7kdhDvYIcd5bQdmX3apvkG9llW1ERbgcVgWYi+e+m8JK6IqSfu3lBbLIe5vdy47
|
|
6
|
-
csdczal5xK+CYCGddsASdQrj1hOy+YYTI3O3XiGAUUJt6AEBFaMvCGM/g0q6UBmA
|
|
7
|
-
g0tz+hh9b6cOG6lRkPG8GidU+HezPILseVSiYASk9DMJpS55J+NsxbGUyKkqwuSH
|
|
8
|
-
AMDEeM1ICJIy2L4+JO7/89s4ac5RfFGqoAKck6V6DWSYrHBeYNA06o1JnfF8ee7E
|
|
9
|
-
fVPmkDBs/kmOSuckep+a+UAk7xNDa/qbSFPCyVLtQuasHzyFdGNeaa7Mw0aHxazH
|
|
10
|
-
flBiq/kCAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4IBAQC7R/twgb7TKiC7877zUbgN
|
|
11
|
-
L3Y8ojQ1j5hgNimFSdTQoO942a/qwpz3KNJiXYZFFJJfDLyPpXbM5tDD/kaB+htH
|
|
12
|
-
WEw7WFbe/XI8A+YrcGM6hSoEqyidOhnmA8ImYesuUM3ljw6spfMuKN9HyaPW2AxR
|
|
13
|
-
k4hkuOKeD6B7izvF20yqdTwMMNC417ZXX69Gxo2KmMJ1UwbLpy6MmooBFfmZfbEi
|
|
14
|
-
5q4SMz/xlqlB/yuN0Khdtef0TOQAMPE41rZ8Z7U5ilMwirH8Q+xAwuIeBg6i5dx5
|
|
15
|
-
JYTv7n9ivLHAwKgbyxZ7uhCH8SVJQwmePBW7D6fsAAln/vRQ3qSDJfcLxpOKg/D9
|
|
16
|
-
-----END CERTIFICATE REQUEST-----
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
-----BEGIN CERTIFICATE REQUEST-----
|
|
2
|
-
MIICnDCCAYQCAQAwVzELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBVN0YXRlMQ0wCwYD
|
|
3
|
-
VQQHDARDaXR5MRUwEwYDVQQKDAxPcmdhbml6YXRpb24xEjAQBgNVBAMMCWxvY2Fs
|
|
4
|
-
aG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMUlV+48NLYnj6bY
|
|
5
|
-
7IAZHEgXHw4EePv2lUct4jRqot80Kb41cgfCHlCkzwXBuyYrZhkNu9Dz6XoCijG6
|
|
6
|
-
UvactVPxL2nJTA/YwzUAxzRI01JDzk3PXgGiS1S7C4w+VJe/rEVFXasywvM3KD78
|
|
7
|
-
doQjyenK3TGpDuEqrGUMXqSv9ZWEzlkrcdiwKGqrOLvnHjVkEEuwxDlD7YIkwbqr
|
|
8
|
-
WKjy1w9UX0yX77BW0CQxMfTFQR3xfk1/lpK2xL5xricAm/m3P0nayuBG1QnOEcJF
|
|
9
|
-
LIztK60YH/p2JY2b+pgqpmW3RYjyNVODKoW7KPHoCHPDu97aNWulRdUjKK7bVLT8
|
|
10
|
-
D8/NgQcCAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4IBAQBskN6AEEvXGzbj8rSeyn+a
|
|
11
|
-
+6Xa/NnmgPpxBWtWPDwIUv0bCCfRtwB93pDIKOf0PpNxidbdNFOZ5InbiWJ/HTZy
|
|
12
|
-
Taz4ZcnCbekrc28Grb7yLKk+AKtdRIDGAutBnlCGmhnN2tMqgfqmC1A6liUa8B9K
|
|
13
|
-
STYik2woZiH20fsF4maNNKv0tqWmSm/g4IOvniE+L3IebW0wl0BAKjAjc481uaNc
|
|
14
|
-
sq72Lwgqdrh66AR70VeFzcTUJlXDTtCBfs2ejnJ7oqmldjsP1mIiTMobE6OOiSI1
|
|
15
|
-
P3z52lWYIkQ5eq5bPsGLxOLbo3Oj97O3BRaW/KOOyrWy00sUoqtAnc9J80DpVb8m
|
|
16
|
-
-----END CERTIFICATE REQUEST-----
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
-----BEGIN CERTIFICATE-----
|
|
2
|
-
MIIDXTCCAkWgAwIBAgIUHRRMEU8Gk+R8L6NWrn4V+tyR+TYwDQYJKoZIhvcNAQEL
|
|
3
|
-
BQAwVzELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBVN0YXRlMQ0wCwYDVQQHDARDaXR5
|
|
4
|
-
MRUwEwYDVQQKDAxPcmdhbml6YXRpb24xEjAQBgNVBAMMCWxvY2FsaG9zdDAeFw0y
|
|
5
|
-
NTAyMDUwODQwMTdaFw0yNjAyMDUwODQwMTdaMFcxCzAJBgNVBAYTAlVTMQ4wDAYD
|
|
6
|
-
VQQIDAVTdGF0ZTENMAsGA1UEBwwEQ2l0eTEVMBMGA1UECgwMT3JnYW5pemF0aW9u
|
|
7
|
-
MRIwEAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
|
|
8
|
-
AoIBAQDFJVfuPDS2J4+m2OyAGRxIFx8OBHj79pVHLeI0aqLfNCm+NXIHwh5QpM8F
|
|
9
|
-
wbsmK2YZDbvQ8+l6AooxulL2nLVT8S9pyUwP2MM1AMc0SNNSQ85Nz14BoktUuwuM
|
|
10
|
-
PlSXv6xFRV2rMsLzNyg+/HaEI8npyt0xqQ7hKqxlDF6kr/WVhM5ZK3HYsChqqzi7
|
|
11
|
-
5x41ZBBLsMQ5Q+2CJMG6q1io8tcPVF9Ml++wVtAkMTH0xUEd8X5Nf5aStsS+ca4n
|
|
12
|
-
AJv5tz9J2srgRtUJzhHCRSyM7SutGB/6diWNm/qYKqZlt0WI8jVTgyqFuyjx6Ahz
|
|
13
|
-
w7ve2jVrpUXVIyiu21S0/A/PzYEHAgMBAAGjITAfMB0GA1UdDgQWBBQXOmpfTQXk
|
|
14
|
-
+zu/QjreEe21Wi3YcTANBgkqhkiG9w0BAQsFAAOCAQEAWzE8ACF1qf05SDGqLs8Y
|
|
15
|
-
j948IXf0E2ou23/M2n5wMYOGRWe5KrHJjHYcTcssHklb30KEfv35QlKW3jBCy909
|
|
16
|
-
DrTcpMcdNapbyMKvvUB1SlLildl0MoaJMtYKE/UjdBRcl/oTPRpOAvqZNC2bqdww
|
|
17
|
-
YqHLW30RJQKVCjE63KN+CNf3Tl8JkZpbAex46BIP2m9pEeJYahGjr0sw/xH37j5N
|
|
18
|
-
lkKVKMSdtqeGtP4x4tVZwb+c2faDVBncO7HtprHktx7zPyYrrLHRbejxF0nU6gJt
|
|
19
|
-
TPWsxfAPz5Qp08/kd8JMYvp0c8vLqin7MeYbt27jrt38ojBDM63tr39HjBBCWD4X
|
|
20
|
-
uA==
|
|
21
|
-
-----END CERTIFICATE-----
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
-----BEGIN PRIVATE KEY-----
|
|
2
|
-
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDFJVfuPDS2J4+m
|
|
3
|
-
2OyAGRxIFx8OBHj79pVHLeI0aqLfNCm+NXIHwh5QpM8FwbsmK2YZDbvQ8+l6Aoox
|
|
4
|
-
ulL2nLVT8S9pyUwP2MM1AMc0SNNSQ85Nz14BoktUuwuMPlSXv6xFRV2rMsLzNyg+
|
|
5
|
-
/HaEI8npyt0xqQ7hKqxlDF6kr/WVhM5ZK3HYsChqqzi75x41ZBBLsMQ5Q+2CJMG6
|
|
6
|
-
q1io8tcPVF9Ml++wVtAkMTH0xUEd8X5Nf5aStsS+ca4nAJv5tz9J2srgRtUJzhHC
|
|
7
|
-
RSyM7SutGB/6diWNm/qYKqZlt0WI8jVTgyqFuyjx6Ahzw7ve2jVrpUXVIyiu21S0
|
|
8
|
-
/A/PzYEHAgMBAAECggEAKw/UHBKEhQExLIWXaweRGOIMA3jQoGClDK4mCcL9Hnn7
|
|
9
|
-
YDO2W6F4E69cFOrTISw7md9ZFfQhHGhvnRsQwhNKvDIjZBz3A0MaqHoqCO6bUg3D
|
|
10
|
-
g1V3OC4l/DT6+cAnpBnW3C6hniJxWMTEgrWMgaJ7mRiZph5CRMaYb137UkepAeZk
|
|
11
|
-
YITpoT4WM/aC0m6tbRqPju44H1CI6fEO0jXvXMzbx9HC/ecGLXffUlr44coTEzJd
|
|
12
|
-
0jiJZ1IgF3ULSESP1YZ/ZO+QhZn0SAEGnwvPNPp8J+OPpMCyCpd7juaVJ0+L4dXW
|
|
13
|
-
dY1AkU/CalomMmm8jRq7k0+EyewKwUXw4A84aw3q0QKBgQD/vXonqclhYKZROZPY
|
|
14
|
-
lXAIOFAIDRlrnoMat1Rn7c4hLVEWeROSHERU3rkr2BORYTThTZlmv80ymkPughVJ
|
|
15
|
-
6+RxGqO7V9EwFMucdN1R2hWnryN4+sxjJzf4bfCabt+wNnWAkgzQM+v7CeTLZnqU
|
|
16
|
-
cbvlGJ5XwuIUWl07cXk0c1k0CQKBgQDFWJ/1SckC+7MgruGyicvIPcPu2Cf/55D4
|
|
17
|
-
swenPDitACeJkecdrCRsGisDk7DLc5qZTh1PWtD5UVl+9GCv4uXDYAmOqakPocZp
|
|
18
|
-
pCHWJGOBBEYHpwuMlXfWoUqfpZFVhohcWfVt/8EzDgEwoXx2QkPNj4HAPw4U99zA
|
|
19
|
-
ptn1ROnwjwKBgQCNULBNdn629mcw/vX5eiocALIIoORpGYAspR1ZCIkcwCPMnT75
|
|
20
|
-
P/FqTGBaH95AOUy1KuIXaukCi0f6ZZtJ67Wh4iyTeyU2wmb4n4MklbPdouOhGEUU
|
|
21
|
-
jTlaZ7XKQHYOsyke0JWP/wDpCUCKPKiDmo1PPNlSeXff80cNb9if6RVjsQKBgC1S
|
|
22
|
-
ZDIGBwcLXSEVaLoDEWzkWnog5FbODKpBG3HZz75TecELZAOZhCfbfqNsqL6gxxGM
|
|
23
|
-
MgkGd1W6zA3u+8GJH3FWPfuolS4E3jdmvWqbosp/e8HIKEvaC9Kb6jJt6Mm2gtyK
|
|
24
|
-
wGXJxcn+3mEXxSi3oTC1U3wePxKrteP8rbO5ZuybAoGAG1iwMSSn9RgCHTetHy8c
|
|
25
|
-
Drk+fz4LpOXrMODi5TKI6DIuA0fpHElrMPoqeZEECinSfqWsWtN/uAlmI2LKq0E6
|
|
26
|
-
pqkklLaydD5M0netB1ldg++8M1KKnKaeU1A/TDCfgmpAHSNYjd94A6EcpFSfru7Z
|
|
27
|
-
ofQVXV5mpAaM0R//PxI6w9E=
|
|
28
|
-
-----END PRIVATE KEY-----
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
-----BEGIN CERTIFICATE-----
|
|
2
|
-
MIIDXTCCAkWgAwIBAgIUeqo3k/yGCOxONYa7gcKwKCNW6rYwDQYJKoZIhvcNAQEL
|
|
3
|
-
BQAwVzELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBVN0YXRlMQ0wCwYDVQQHDARDaXR5
|
|
4
|
-
MRUwEwYDVQQKDAxPcmdhbml6YXRpb24xEjAQBgNVBAMMCWxvY2FsaG9zdDAeFw0y
|
|
5
|
-
NTAyMDUwODQwMTBaFw0yNjAyMDUwODQwMTBaMFcxCzAJBgNVBAYTAlVTMQ4wDAYD
|
|
6
|
-
VQQIDAVTdGF0ZTENMAsGA1UEBwwEQ2l0eTEVMBMGA1UECgwMT3JnYW5pemF0aW9u
|
|
7
|
-
MRIwEAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
|
|
8
|
-
AoIBAQDM5k5dg2gFfbPh0Ku5HYQ72CHHeW0HZl92qb5BvZZVtREW4HFYFmIvnvpv
|
|
9
|
-
CSuiKkn7t5QWyyHub3cuO3LHXM2pecSvgmAhnXbAEnUK49YTsvmGEyNzt14hgFFC
|
|
10
|
-
begBARWjLwhjP4NKulAZgINLc/oYfW+nDhupUZDxvBonVPh3szyC7HlUomAEpPQz
|
|
11
|
-
CaUueSfjbMWxlMipKsLkhwDAxHjNSAiSMti+PiTu//PbOGnOUXxRqqACnJOleg1k
|
|
12
|
-
mKxwXmDQNOqNSZ3xfHnuxH1T5pAwbP5JjkrnJHqfmvlAJO8TQ2v6m0hTwslS7ULm
|
|
13
|
-
rB88hXRjXmmuzMNGh8Wsx35QYqv5AgMBAAGjITAfMB0GA1UdDgQWBBRWKpGNrzjp
|
|
14
|
-
AUOqQi2zGiRcmD+gfTANBgkqhkiG9w0BAQsFAAOCAQEAqGIcV/S8y5j0mCi3apmo
|
|
15
|
-
xQpFswTeATmBbVuHkrj3Q+ghaxQ6QGa6o/V7oSGblhTagvRr8RGj8fWRoutQgUzP
|
|
16
|
-
jh5wuDfjJh7lB2hAdi9L2dE+2K8/Y9r7U+UIFJIw0jIdEpx+X9egbhxBwy+pEo3Y
|
|
17
|
-
D1oqQaOuLXyw3A5i4eow/kP1lOioU1MsNp3eVu4vr4MWTXjSdqs8XiUqRds1PlW7
|
|
18
|
-
AhFrjqxJfb0V3mt/Mnx0JaPpMqtLlBQLmbNGKJUPjk4IVkqtEjg85iDa4FZ4YLhh
|
|
19
|
-
lSgVizhxxrJAULTubDzaR/WRYEO82z5ramszt6pWJ926qXBbca/kI2detTRaaXKE
|
|
20
|
-
kg==
|
|
21
|
-
-----END CERTIFICATE-----
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
-----BEGIN PRIVATE KEY-----
|
|
2
|
-
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDM5k5dg2gFfbPh
|
|
3
|
-
0Ku5HYQ72CHHeW0HZl92qb5BvZZVtREW4HFYFmIvnvpvCSuiKkn7t5QWyyHub3cu
|
|
4
|
-
O3LHXM2pecSvgmAhnXbAEnUK49YTsvmGEyNzt14hgFFCbegBARWjLwhjP4NKulAZ
|
|
5
|
-
gINLc/oYfW+nDhupUZDxvBonVPh3szyC7HlUomAEpPQzCaUueSfjbMWxlMipKsLk
|
|
6
|
-
hwDAxHjNSAiSMti+PiTu//PbOGnOUXxRqqACnJOleg1kmKxwXmDQNOqNSZ3xfHnu
|
|
7
|
-
xH1T5pAwbP5JjkrnJHqfmvlAJO8TQ2v6m0hTwslS7ULmrB88hXRjXmmuzMNGh8Ws
|
|
8
|
-
x35QYqv5AgMBAAECggEAClkuXN2Jt89HB2Zd1JICT0XFl6NmZ4YwLO16k6uS0mjR
|
|
9
|
-
lbgdBAUmDSrTEfUNXFm/lfmJ/pMLTMAZ7ZPojTDpcoADzZZrgFR0KSlgJROSiLj/
|
|
10
|
-
DlpcmG1K0S0qeCJWDOjvB2hqch1ve4BzPQUnJxIoL9ZJTjoG7nNVZfQUARJdoH6Y
|
|
11
|
-
dbw3wm+BQ3ze+cuuaoiginTP1XionmV8ENOQQcBEezD0v/XyYFs9nbd88MqkMAeM
|
|
12
|
-
L+DWvlW6UzsOK2zJGyHr6V+I3jjJ0dnMslu/IeiAsbO+SlTlvs1y+TtbeTAFwanN
|
|
13
|
-
QvDB3cBZLjZ/QuCgdy7GEE7urU6ei+ZkwngS4uP1FQKBgQD3+zrYS15Xs1CFf7Jn
|
|
14
|
-
mQvHWQpmVfsOHu1GxHx/9GFVtVLsolaEWaMElvuA9MF1hoBccz6JhT/qKmgGu1uB
|
|
15
|
-
LLZS5nJVQxZTSgKmnvaJ+tfmOYEYjQc6surIFx+OrcejIMHicY5qHCfsKbrJ4Bz2
|
|
16
|
-
TQVn5DFz30q6haCNS0Vl3GJCJQKBgQDThnL2RqmP/CN7vUYRHS5I82o+2gnA51c1
|
|
17
|
-
/UcxHesLKLUHPbyUdh179dW4phU4OfD8cDz58WlSMg+kfPad2SwBTyRb1GabD6k4
|
|
18
|
-
aBaW7hFvFX8LLyRwKkjcchdlPpUkk/tDG7/yGagOZERsw3WrB2THdH8A1tobe2VA
|
|
19
|
-
creR/pf4RQKBgQCXtoUu1RV39EV8Fz7vsKuLH4eESnAZGISz+fvtUHbIN/HuwfbK
|
|
20
|
-
bAiXA0QFhjhhjZM0fHEzM2mB+sW/8Jov8kntd/1U+oFLHYl3pONSUTwLJv07JvTY
|
|
21
|
-
TaPkHHl7EgiEXcMgpbaqZmVqT7FuVoWBjmeTQwGaUW7npF8wcm+XvPgEXQKBgQDP
|
|
22
|
-
usUh2SlijuKl/a5W1kqDOBHKIcTcXhUGn3MP6GrQ7axCrT2KqyiveTDngqtqKXTh
|
|
23
|
-
5LPtXkjpgOJdzp8/S2zs6DUzvbb6ZvnvvEEa/je+2OSILkbhpJUjcSRKuJgtcOqb
|
|
24
|
-
8B+j+dBSOeP80EO5r6woON8VCurtfFRmY4Kl7Np/5QKBgQDz02TVdu/umziELuTI
|
|
25
|
-
fDwEN4MSVhNEXAFye8sr+ed288tcf87fMYIrOkaku6CEmkkyqFQjwaZIGugox8gW
|
|
26
|
-
uIXFdP9vU3qkzkfV8z8W/3z1H51N5jU/u9SX/zVt+SBmxOj3M/UB46eHJap/2L24
|
|
27
|
-
jgRr09TIWnnC3NCOKkzpbCRB7g==
|
|
28
|
-
-----END PRIVATE KEY-----
|