@baref00t/mcp-server 0.2.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.
- package/LICENSE +201 -0
- package/README.md +109 -0
- package/dist/auth.d.ts +28 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +58 -0
- package/dist/auth.js.map +1 -0
- package/dist/config.d.ts +33 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +124 -0
- package/dist/config.js.map +1 -0
- package/dist/env.d.ts +41 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +37 -0
- package/dist/env.js.map +1 -0
- package/dist/logger.d.ts +3 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +31 -0
- package/dist/logger.js.map +1 -0
- package/dist/registry.d.ts +58 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +94 -0
- package/dist/registry.js.map +1 -0
- package/dist/sdkCache.d.ts +20 -0
- package/dist/sdkCache.d.ts.map +1 -0
- package/dist/sdkCache.js +65 -0
- package/dist/sdkCache.js.map +1 -0
- package/dist/server.d.ts +25 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +144 -0
- package/dist/server.js.map +1 -0
- package/dist/telemetry.d.ts +8 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +32 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/tools/distributor/getUsage.d.ts +12 -0
- package/dist/tools/distributor/getUsage.d.ts.map +1 -0
- package/dist/tools/distributor/getUsage.js +25 -0
- package/dist/tools/distributor/getUsage.js.map +1 -0
- package/dist/tools/distributor/listPartners.d.ts +12 -0
- package/dist/tools/distributor/listPartners.d.ts.map +1 -0
- package/dist/tools/distributor/listPartners.js +20 -0
- package/dist/tools/distributor/listPartners.js.map +1 -0
- package/dist/tools/index.d.ts +8 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +102 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/partner/createCustomer.d.ts +27 -0
- package/dist/tools/partner/createCustomer.d.ts.map +1 -0
- package/dist/tools/partner/createCustomer.js +29 -0
- package/dist/tools/partner/createCustomer.js.map +1 -0
- package/dist/tools/partner/createKey.d.ts +6 -0
- package/dist/tools/partner/createKey.d.ts.map +1 -0
- package/dist/tools/partner/createKey.js +18 -0
- package/dist/tools/partner/createKey.js.map +1 -0
- package/dist/tools/partner/createWebhook.d.ts +18 -0
- package/dist/tools/partner/createWebhook.d.ts.map +1 -0
- package/dist/tools/partner/createWebhook.js +36 -0
- package/dist/tools/partner/createWebhook.js.map +1 -0
- package/dist/tools/partner/deleteWebhook.d.ts +12 -0
- package/dist/tools/partner/deleteWebhook.d.ts.map +1 -0
- package/dist/tools/partner/deleteWebhook.js +25 -0
- package/dist/tools/partner/deleteWebhook.js.map +1 -0
- package/dist/tools/partner/getAssessment.d.ts +12 -0
- package/dist/tools/partner/getAssessment.d.ts.map +1 -0
- package/dist/tools/partner/getAssessment.js +20 -0
- package/dist/tools/partner/getAssessment.js.map +1 -0
- package/dist/tools/partner/getAssessmentReport.d.ts +12 -0
- package/dist/tools/partner/getAssessmentReport.d.ts.map +1 -0
- package/dist/tools/partner/getAssessmentReport.js +28 -0
- package/dist/tools/partner/getAssessmentReport.js.map +1 -0
- package/dist/tools/partner/getAssessmentStatus.d.ts +12 -0
- package/dist/tools/partner/getAssessmentStatus.d.ts.map +1 -0
- package/dist/tools/partner/getAssessmentStatus.js +21 -0
- package/dist/tools/partner/getAssessmentStatus.js.map +1 -0
- package/dist/tools/partner/getBilling.d.ts +6 -0
- package/dist/tools/partner/getBilling.d.ts.map +1 -0
- package/dist/tools/partner/getBilling.js +20 -0
- package/dist/tools/partner/getBilling.js.map +1 -0
- package/dist/tools/partner/getBranding.d.ts +6 -0
- package/dist/tools/partner/getBranding.d.ts.map +1 -0
- package/dist/tools/partner/getBranding.js +18 -0
- package/dist/tools/partner/getBranding.js.map +1 -0
- package/dist/tools/partner/getConsentUrl.d.ts +18 -0
- package/dist/tools/partner/getConsentUrl.d.ts.map +1 -0
- package/dist/tools/partner/getConsentUrl.js +43 -0
- package/dist/tools/partner/getConsentUrl.js.map +1 -0
- package/dist/tools/partner/getCustomer.d.ts +12 -0
- package/dist/tools/partner/getCustomer.d.ts.map +1 -0
- package/dist/tools/partner/getCustomer.js +20 -0
- package/dist/tools/partner/getCustomer.js.map +1 -0
- package/dist/tools/partner/getPaymentPortalUrl.d.ts +6 -0
- package/dist/tools/partner/getPaymentPortalUrl.d.ts.map +1 -0
- package/dist/tools/partner/getPaymentPortalUrl.js +19 -0
- package/dist/tools/partner/getPaymentPortalUrl.js.map +1 -0
- package/dist/tools/partner/getPlanBilling.d.ts +6 -0
- package/dist/tools/partner/getPlanBilling.d.ts.map +1 -0
- package/dist/tools/partner/getPlanBilling.js +38 -0
- package/dist/tools/partner/getPlanBilling.js.map +1 -0
- package/dist/tools/partner/inviteMember.d.ts +15 -0
- package/dist/tools/partner/inviteMember.d.ts.map +1 -0
- package/dist/tools/partner/inviteMember.js +25 -0
- package/dist/tools/partner/inviteMember.js.map +1 -0
- package/dist/tools/partner/listAssessments.d.ts +18 -0
- package/dist/tools/partner/listAssessments.d.ts.map +1 -0
- package/dist/tools/partner/listAssessments.js +27 -0
- package/dist/tools/partner/listAssessments.js.map +1 -0
- package/dist/tools/partner/listCustomers.d.ts +6 -0
- package/dist/tools/partner/listCustomers.d.ts.map +1 -0
- package/dist/tools/partner/listCustomers.js +27 -0
- package/dist/tools/partner/listCustomers.js.map +1 -0
- package/dist/tools/partner/listKeys.d.ts +6 -0
- package/dist/tools/partner/listKeys.d.ts.map +1 -0
- package/dist/tools/partner/listKeys.js +20 -0
- package/dist/tools/partner/listKeys.js.map +1 -0
- package/dist/tools/partner/listMembers.d.ts +6 -0
- package/dist/tools/partner/listMembers.d.ts.map +1 -0
- package/dist/tools/partner/listMembers.js +19 -0
- package/dist/tools/partner/listMembers.js.map +1 -0
- package/dist/tools/partner/listWebhookDeliveries.d.ts +15 -0
- package/dist/tools/partner/listWebhookDeliveries.d.ts.map +1 -0
- package/dist/tools/partner/listWebhookDeliveries.js +32 -0
- package/dist/tools/partner/listWebhookDeliveries.js.map +1 -0
- package/dist/tools/partner/listWebhooks.d.ts +6 -0
- package/dist/tools/partner/listWebhooks.d.ts.map +1 -0
- package/dist/tools/partner/listWebhooks.js +18 -0
- package/dist/tools/partner/listWebhooks.js.map +1 -0
- package/dist/tools/partner/mailDisconnect.d.ts +6 -0
- package/dist/tools/partner/mailDisconnect.d.ts.map +1 -0
- package/dist/tools/partner/mailDisconnect.js +18 -0
- package/dist/tools/partner/mailDisconnect.js.map +1 -0
- package/dist/tools/partner/mailSendTest.d.ts +6 -0
- package/dist/tools/partner/mailSendTest.d.ts.map +1 -0
- package/dist/tools/partner/mailSendTest.js +20 -0
- package/dist/tools/partner/mailSendTest.js.map +1 -0
- package/dist/tools/partner/mailSetMode.d.ts +12 -0
- package/dist/tools/partner/mailSetMode.d.ts.map +1 -0
- package/dist/tools/partner/mailSetMode.js +26 -0
- package/dist/tools/partner/mailSetMode.js.map +1 -0
- package/dist/tools/partner/mailSetSharedMailbox.d.ts +12 -0
- package/dist/tools/partner/mailSetSharedMailbox.d.ts.map +1 -0
- package/dist/tools/partner/mailSetSharedMailbox.js +25 -0
- package/dist/tools/partner/mailSetSharedMailbox.js.map +1 -0
- package/dist/tools/partner/mailStartConnect.d.ts +12 -0
- package/dist/tools/partner/mailStartConnect.d.ts.map +1 -0
- package/dist/tools/partner/mailStartConnect.js +28 -0
- package/dist/tools/partner/mailStartConnect.js.map +1 -0
- package/dist/tools/partner/mailStatus.d.ts +6 -0
- package/dist/tools/partner/mailStatus.d.ts.map +1 -0
- package/dist/tools/partner/mailStatus.js +19 -0
- package/dist/tools/partner/mailStatus.js.map +1 -0
- package/dist/tools/partner/removeMember.d.ts +12 -0
- package/dist/tools/partner/removeMember.d.ts.map +1 -0
- package/dist/tools/partner/removeMember.js +25 -0
- package/dist/tools/partner/removeMember.js.map +1 -0
- package/dist/tools/partner/resendMemberInvite.d.ts +12 -0
- package/dist/tools/partner/resendMemberInvite.d.ts.map +1 -0
- package/dist/tools/partner/resendMemberInvite.js +24 -0
- package/dist/tools/partner/resendMemberInvite.js.map +1 -0
- package/dist/tools/partner/revokeKey.d.ts +12 -0
- package/dist/tools/partner/revokeKey.d.ts.map +1 -0
- package/dist/tools/partner/revokeKey.js +25 -0
- package/dist/tools/partner/revokeKey.js.map +1 -0
- package/dist/tools/partner/sendConsentEmail.d.ts +18 -0
- package/dist/tools/partner/sendConsentEmail.d.ts.map +1 -0
- package/dist/tools/partner/sendConsentEmail.js +50 -0
- package/dist/tools/partner/sendConsentEmail.js.map +1 -0
- package/dist/tools/partner/testWebhook.d.ts +12 -0
- package/dist/tools/partner/testWebhook.d.ts.map +1 -0
- package/dist/tools/partner/testWebhook.js +25 -0
- package/dist/tools/partner/testWebhook.js.map +1 -0
- package/dist/tools/partner/triggerAssessment.d.ts +18 -0
- package/dist/tools/partner/triggerAssessment.d.ts.map +1 -0
- package/dist/tools/partner/triggerAssessment.js +26 -0
- package/dist/tools/partner/triggerAssessment.js.map +1 -0
- package/dist/tools/partner/updateBranding.d.ts +31 -0
- package/dist/tools/partner/updateBranding.d.ts.map +1 -0
- package/dist/tools/partner/updateBranding.js +44 -0
- package/dist/tools/partner/updateBranding.js.map +1 -0
- package/dist/tools/partner/updateMember.d.ts +26 -0
- package/dist/tools/partner/updateMember.d.ts.map +1 -0
- package/dist/tools/partner/updateMember.js +35 -0
- package/dist/tools/partner/updateMember.js.map +1 -0
- package/dist/tools/partner/updateWebhook.d.ts +41 -0
- package/dist/tools/partner/updateWebhook.d.ts.map +1 -0
- package/dist/tools/partner/updateWebhook.js +42 -0
- package/dist/tools/partner/updateWebhook.js.map +1 -0
- package/package.json +62 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { Tool } from '../../registry.js';
|
|
3
|
+
declare const inputSchema: z.ZodEffects<z.ZodObject<{
|
|
4
|
+
endpointId: z.ZodString;
|
|
5
|
+
url: z.ZodOptional<z.ZodString>;
|
|
6
|
+
events: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
7
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
8
|
+
description: z.ZodOptional<z.ZodString>;
|
|
9
|
+
rotateSecret: z.ZodOptional<z.ZodBoolean>;
|
|
10
|
+
}, "strict", z.ZodTypeAny, {
|
|
11
|
+
endpointId: string;
|
|
12
|
+
url?: string | undefined;
|
|
13
|
+
events?: string[] | undefined;
|
|
14
|
+
description?: string | undefined;
|
|
15
|
+
enabled?: boolean | undefined;
|
|
16
|
+
rotateSecret?: boolean | undefined;
|
|
17
|
+
}, {
|
|
18
|
+
endpointId: string;
|
|
19
|
+
url?: string | undefined;
|
|
20
|
+
events?: string[] | undefined;
|
|
21
|
+
description?: string | undefined;
|
|
22
|
+
enabled?: boolean | undefined;
|
|
23
|
+
rotateSecret?: boolean | undefined;
|
|
24
|
+
}>, {
|
|
25
|
+
endpointId: string;
|
|
26
|
+
url?: string | undefined;
|
|
27
|
+
events?: string[] | undefined;
|
|
28
|
+
description?: string | undefined;
|
|
29
|
+
enabled?: boolean | undefined;
|
|
30
|
+
rotateSecret?: boolean | undefined;
|
|
31
|
+
}, {
|
|
32
|
+
endpointId: string;
|
|
33
|
+
url?: string | undefined;
|
|
34
|
+
events?: string[] | undefined;
|
|
35
|
+
description?: string | undefined;
|
|
36
|
+
enabled?: boolean | undefined;
|
|
37
|
+
rotateSecret?: boolean | undefined;
|
|
38
|
+
}>;
|
|
39
|
+
declare const tool: Tool<typeof inputSchema>;
|
|
40
|
+
export default tool;
|
|
41
|
+
//# sourceMappingURL=updateWebhook.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateWebhook.d.ts","sourceRoot":"","sources":["../../../src/tools/partner/updateWebhook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAE7C,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+Bd,CAAA;AAEH,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,WAAW,CAYlC,CAAA;AAED,eAAe,IAAI,CAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getPartnerClient } from '../../sdkCache.js';
|
|
3
|
+
const inputSchema = z
|
|
4
|
+
.object({
|
|
5
|
+
endpointId: z
|
|
6
|
+
.string()
|
|
7
|
+
.min(1)
|
|
8
|
+
.describe('Webhook endpoint id (from partner_list_webhooks).'),
|
|
9
|
+
url: z.string().url().optional().describe('New HTTPS endpoint URL.'),
|
|
10
|
+
events: z
|
|
11
|
+
.array(z.string().min(1))
|
|
12
|
+
.min(1)
|
|
13
|
+
.optional()
|
|
14
|
+
.describe('Replace the events subscription list (full replacement, not a delta).'),
|
|
15
|
+
enabled: z.boolean().optional().describe('Pause/resume deliveries without losing the endpoint.'),
|
|
16
|
+
description: z.string().max(200).optional(),
|
|
17
|
+
rotateSecret: z
|
|
18
|
+
.boolean()
|
|
19
|
+
.optional()
|
|
20
|
+
.describe('When true, the response includes a fresh secret in response.secret AND the previous ' +
|
|
21
|
+
'secret stops working immediately. Save the new secret before the old one is overwritten.'),
|
|
22
|
+
})
|
|
23
|
+
.strict()
|
|
24
|
+
.refine((v) => v.url !== undefined ||
|
|
25
|
+
v.events !== undefined ||
|
|
26
|
+
v.enabled !== undefined ||
|
|
27
|
+
v.description !== undefined ||
|
|
28
|
+
v.rotateSecret !== undefined, { message: 'Provide at least one field to update' });
|
|
29
|
+
const tool = {
|
|
30
|
+
name: 'partner_update_webhook',
|
|
31
|
+
scope: 'partner',
|
|
32
|
+
description: 'Partial update for a webhook endpoint — change the URL, events, enabled flag, ' +
|
|
33
|
+
'description, and/or rotate the signing secret. When rotateSecret=true, the new secret is ' +
|
|
34
|
+
'returned ONCE in response.secret and the previous one stops working immediately.',
|
|
35
|
+
schema: inputSchema,
|
|
36
|
+
async handler({ endpointId, ...rest }, ctx) {
|
|
37
|
+
const client = getPartnerClient(ctx.auth.apiKey);
|
|
38
|
+
return client.webhooks.update(endpointId, rest);
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
export default tool;
|
|
42
|
+
//# sourceMappingURL=updateWebhook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateWebhook.js","sourceRoot":"","sources":["../../../src/tools/partner/updateWebhook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAGpD,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,mDAAmD,CAAC;IAChE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACpE,MAAM,EAAE,CAAC;SACN,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACxB,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,uEAAuE,CAAC;IACpF,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;IAChG,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAC3C,YAAY,EAAE,CAAC;SACZ,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CACP,sFAAsF;QACpF,0FAA0F,CAC7F;CACJ,CAAC;KACD,MAAM,EAAE;KACR,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,GAAG,KAAK,SAAS;IACnB,CAAC,CAAC,MAAM,KAAK,SAAS;IACtB,CAAC,CAAC,OAAO,KAAK,SAAS;IACvB,CAAC,CAAC,WAAW,KAAK,SAAS;IAC3B,CAAC,CAAC,YAAY,KAAK,SAAS,EAC9B,EAAE,OAAO,EAAE,sCAAsC,EAAE,CACpD,CAAA;AAEH,MAAM,IAAI,GAA6B;IACrC,IAAI,EAAE,wBAAwB;IAC9B,KAAK,EAAE,SAAS;IAChB,WAAW,EACT,gFAAgF;QAChF,2FAA2F;QAC3F,kFAAkF;IACpF,MAAM,EAAE,WAAW;IACnB,KAAK,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG;QACxC,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChD,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;IACjD,CAAC;CACF,CAAA;AAED,eAAe,IAAI,CAAA"}
|
package/package.json
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@baref00t/mcp-server",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Hosted multi-tenant MCP (Model Context Protocol) server for the baref00t Partner + Distributor APIs",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"homepage": "https://github.com/becloudsmart-com/baref00t/tree/main/packages/mcp-server",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/becloudsmart-com/baref00t.git",
|
|
10
|
+
"directory": "packages/mcp-server"
|
|
11
|
+
},
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/becloudsmart-com/baref00t/issues"
|
|
14
|
+
},
|
|
15
|
+
"keywords": [
|
|
16
|
+
"baref00t",
|
|
17
|
+
"mcp",
|
|
18
|
+
"model-context-protocol",
|
|
19
|
+
"ai",
|
|
20
|
+
"claude",
|
|
21
|
+
"anthropic"
|
|
22
|
+
],
|
|
23
|
+
"engines": {
|
|
24
|
+
"node": ">=20.0.0"
|
|
25
|
+
},
|
|
26
|
+
"type": "module",
|
|
27
|
+
"main": "dist/server.js",
|
|
28
|
+
"files": [
|
|
29
|
+
"dist",
|
|
30
|
+
"README.md",
|
|
31
|
+
"LICENSE"
|
|
32
|
+
],
|
|
33
|
+
"bin": {
|
|
34
|
+
"baref00t-mcp-server": "dist/server.js"
|
|
35
|
+
},
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"@azure/identity": "^4.5.0",
|
|
38
|
+
"@azure/keyvault-secrets": "^4.9.0",
|
|
39
|
+
"@azure/monitor-opentelemetry": "^1.9.0",
|
|
40
|
+
"@baref00t/sdk": "^0.6.0",
|
|
41
|
+
"@modelcontextprotocol/sdk": "1.29.0",
|
|
42
|
+
"lru-cache": "^11.0.2",
|
|
43
|
+
"pino": "^9.5.0",
|
|
44
|
+
"zod": "^3.23.8",
|
|
45
|
+
"zod-to-json-schema": "^3.23.5"
|
|
46
|
+
},
|
|
47
|
+
"devDependencies": {
|
|
48
|
+
"@types/node": "^24.0.0",
|
|
49
|
+
"tsx": "^4.19.2",
|
|
50
|
+
"typescript": "^5.6.3",
|
|
51
|
+
"vitest": "^2.1.5",
|
|
52
|
+
"eslint": "^9.15.0"
|
|
53
|
+
},
|
|
54
|
+
"scripts": {
|
|
55
|
+
"dev": "tsx watch src/server.ts",
|
|
56
|
+
"build": "tsc -p tsconfig.json",
|
|
57
|
+
"start": "node dist/server.js",
|
|
58
|
+
"typecheck": "tsc --noEmit",
|
|
59
|
+
"test": "vitest run --passWithNoTests",
|
|
60
|
+
"lint": "eslint src --max-warnings=0"
|
|
61
|
+
}
|
|
62
|
+
}
|