@e18e/mcp 0.0.5 → 0.0.7

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.
@@ -0,0 +1 @@
1
+ export declare function get_docs(): Promise<any>;
@@ -0,0 +1,4 @@
1
+ export declare const icons: {
2
+ src: string;
3
+ mimeType: string;
4
+ }[];
@@ -0,0 +1,11 @@
1
+ export const icons = [
2
+ {
3
+ "src": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MDAiIGhlaWdodD0iNTAwIiB2aWV3Qm94PSIwIDAgNTAwIDUwMCIgZmlsbD0ibm9uZSI+Cgk8ZyBmaWx0ZXI9InVybCgjZmlsdGVyMF9kaV8yOV85OSkiPgoJCTxwYXRoCgkJCWQ9Ik00NDUuOTg4IDMwNFYxODVDNDQ1Ljk4OCAxNzkuNCA0NDUuOTg4IDE3Ni42IDQ0NC44OTggMTc0LjQ2MUM0NDMuOTQgMTcyLjU3OSA0NDIuNDEgMTcxLjA0OSA0NDAuNTI4IDE3MC4wOUM0MzguMzg5IDE2OSA0MzUuNTg5IDE2OSA0MjkuOTg4IDE2OUgzOTdDMzkxLjQgMTY5IDM4OC42IDE2OSAzODYuNDYgMTcwLjA5QzM4NC41NzkgMTcxLjA0OSAzODMuMDQ5IDE3Mi41NzkgMzgyLjA5IDE3NC40NjFDMzgxIDE3Ni42IDM4MSAxNzkuNCAzODEgMTg1VjMwNE00NDUuOTg4IDMwNEg0NzZNNDQ1Ljk4OCAzMDRIMzgxTTQ0NS45ODggMzQwVjQyM0M0NDUuOTg4IDQyOC42MDEgNDQ1Ljk4OCA0MzEuNDAxIDQ0NC44OTggNDMzLjU0QzQ0My45NCA0MzUuNDIyIDQ0Mi40MSA0MzYuOTUyIDQ0MC41MjggNDM3LjkxMUM0MzguMzg5IDQzOSA0MzUuNTg5IDQzOSA0MjkuOTg4IDQzOUgzOTdDMzkxLjQgNDM5IDM4OC42IDQzOSAzODYuNDYgNDM3LjkxMUMzODQuNTc5IDQzNi45NTIgMzgzLjA0OSA0MzUuNDIyIDM4Mi4wOSA0MzMuNTRDMzgxIDQzMS40MDEgMzgxIDQyOC42MDEgMzgxIDQyM1YzMDQiCgkJCXN0cm9rZT0iIzdCQjU2MCIgc3Ryb2tlLXdpZHRoPSI2MCIgLz4KCQk8cGF0aAoJCQlkPSJNMjUwIDEzNkMyNTAgMTMwLjQgMjUwIDEyNy42IDI1MS4wOSAxMjUuNDYxQzI1Mi4wNDkgMTIzLjU3OSAyNTMuNTc5IDEyMi4wNDkgMjU1LjQ2IDEyMS4wOUMyNTcuNiAxMjAgMjYwLjQgMTIwIDI2NiAxMjBIMjk5QzMwNC42MDEgMTIwIDMwNy40MDEgMTIwIDMwOS41NCAxMjEuMDlDMzExLjQyMiAxMjIuMDQ5IDMxMi45NTIgMTIzLjU3OSAzMTMuOTEgMTI1LjQ2MUMzMTUgMTI3LjYgMzE1IDEzMC40IDMxNSAxMzZWMjQ0QzMxNSAyNDkuNjAxIDMxNSAyNTIuNDAxIDMxMy45MSAyNTQuNTRDMzEyLjk1MiAyNTYuNDIyIDMxMS40MjIgMjU3Ljk1MiAzMDkuNTQgMjU4LjkxMUMzMDcuNDAxIDI2MCAzMDQuNjAxIDI2MCAyOTkgMjYwSDI2NkMyNjAuNCAyNjAgMjU3LjYgMjYwIDI1NS40NiAyNTguOTExQzI1My41NzkgMjU3Ljk1MiAyNTIuMDQ5IDI1Ni40MjIgMjUxLjA5IDI1NC41NEMyNTAgMjUyLjQwMSAyNTAgMjQ5LjYwMSAyNTAgMjQ0VjEzNloiCgkJCXN0cm9rZT0iI0JFQ0U1NyIgc3Ryb2tlLXdpZHRoPSI2MCIgLz4KCQk8cGF0aAoJCQlkPSJNMjUwIDMwN0MyNTAgMzAxLjQgMjUwIDI5OC42IDI1MS4wOSAyOTYuNDYxQzI1Mi4wNDkgMjk0LjU3OSAyNTMuNTc5IDI5My4wNDkgMjU1LjQ2IDI5Mi4wOUMyNTcuNiAyOTEgMjYwLjQgMjkxIDI2NiAyOTFIMjk5QzMwNC42MDEgMjkxIDMwNy40MDEgMjkxIDMwOS41NCAyOTIuMDlDMzExLjQyMiAyOTMuMDQ5IDMxMi45NTIgMjk0LjU3OSAzMTMuOTEgMjk2LjQ2MUMzMTUgMjk4LjYgMzE1IDMwMS40IDMxNSAzMDdWNDIzQzMxNSA0MjguNjAxIDMxNSA0MzEuNDAxIDMxMy45MSA0MzMuNTRDMzEyLjk1MiA0MzUuNDIyIDMxMS40MjIgNDM2Ljk1MiAzMDkuNTQgNDM3LjkxMUMzMDcuNDAxIDQzOSAzMDQuNjAxIDQzOSAyOTkgNDM5SDI2NkMyNjAuNCA0MzkgMjU3LjYgNDM5IDI1NS40NiA0MzcuOTExQzI1My41NzkgNDM2Ljk1MiAyNTIuMDQ5IDQzNS40MjIgMjUxLjA5IDQzMy41NEMyNTAgNDMxLjQwMSAyNTAgNDI4LjYwMSAyNTAgNDIzVjMwN1oiCgkJCXN0cm9rZT0iI0JFQ0U1NyIgc3Ryb2tlLXdpZHRoPSI2MCIgLz4KCQk8cGF0aAoJCQlkPSJNMjAyLjQ5MyA2Ny4zNzg5QzE4Ni40MDEgNTguMDUzOSAxNjUuNzk3IDYzLjUzOTYgMTU2LjQ3MiA3OS42MzE2TDExNy42NSAxNDYuNjI0QzExMi45NzEgMTU0LjY5OSAxMTAuNjMyIDE1OC43MzYgMTEwLjE4MyAxNjIuNjk4QzEwOS42NDIgMTY3LjQ2NiAxMTAuOTE5IDE3Mi4yNjIgMTEzLjc1OSAxNzYuMTNDMTE2LjExOSAxNzkuMzQ0IDEyMC4xNTYgMTgxLjY4NCAxMjguMjMgMTg2LjM2M0MxMzYuMzA1IDE5MS4wNDIgMTQwLjM0MiAxOTMuMzgyIDE0NC4zMDUgMTkzLjgzMUMxNDcuNjMxIDE5NC4yMDggMTUwLjk3MSAxOTMuNyAxNTQgMTkyLjM5NFY0MzguNTAxQzE1NCA0NDguMjg5IDE1NCA0NTMuMTgzIDE1NS42NzcgNDU3LjAxNkMxNTcuNjkzIDQ2MS42MjYgMTYxLjM3NCA0NjUuMzA4IDE2NS45ODUgNDY3LjMyNEMxNjkuODE4IDQ2OS4wMDEgMTc0LjcxMiA0NjkuMDAxIDE4NC41IDQ2OS4wMDFDMTk0LjI4OSA0NjkuMDAxIDE5OS4xODMgNDY5LjAwMSAyMDMuMDE1IDQ2Ny4zMjRDMjA3LjYyNiA0NjUuMzA4IDIxMS4zMDcgNDYxLjYyNiAyMTMuMzI0IDQ1Ny4wMTZDMjE1IDQ1My4xODMgMjE1IDQ0OC4yODkgMjE1IDQzOC41MDFWMTAxLjc1N0MyMTUgOTYuMjk2NiAyMTUgOTIuNDc2MyAyMTQuNjg2IDg5LjUxNjNDMjE1LjAyMSA4MC43NDYgMjEwLjYxNiA3Mi4wODU4IDIwMi40OTMgNjcuMzc4OVoiCgkJCWZpbGw9IiNGMkNBNjAiIC8+CgkJPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiCgkJCWQ9Ik02OS40NzE3IDMwLjAwMDNDNjcuMTc2NyAyOS45OTg2IDYzLjkyODQgMjkuOTk2MyA2MC45ODk2IDMwLjIzNjRDNTcuNDY2OSAzMC41MjQyIDUxLjg0NDUgMzEuMzAxMyA0NS44NDA5IDM0LjM2MDNDMzguMzE0NCAzOC4xOTUyIDMyLjE5NTIgNDQuMzE0NCAyOC4zNjAzIDUxLjg0MDlDMjUuMzAxMyA1Ny44NDQ1IDI0LjUyNDIgNjMuNDY2OSAyNC4yMzY0IDY2Ljk4OTZDMjMuOTk2MyA2OS45Mjg0IDIzLjk5ODYgNzMuMTc2NiAyNC4wMDAzIDc1LjQ3MTdMMjQuMDAwMyA0MjMuNTI5QzIzLjk5ODYgNDI1LjgyNCAyMy45OTYzIDQyOS4wNzMgMjQuMjM2NCA0MzIuMDExQzI0LjUyNDIgNDM1LjUzNCAyNS4zMDEzIDQ0MS4xNTcgMjguMzYwMyA0NDcuMTZDMzIuMTk1MiA0NTQuNjg3IDM4LjMxNDQgNDYwLjgwNiA0NS44NDA5IDQ2NC42NDFDNTEuODQ0NSA0NjcuNyA1Ny40NjY5IDQ2OC40NzcgNjAuOTg5NiA0NjguNzY1QzYzLjkyODEgNDY5LjAwNSA2Ny4xNzU5IDQ2OS4wMDIgNjkuNDcwOSA0NjkuMDAxSDEwMy41MThDMTA1LjgxMyA0NjkuMDAyIDEwOS4wNjEgNDY5LjAwNSAxMTEuOTk5IDQ2OC43NjVDMTE1LjUyMiA0NjguNDc3IDEyMS4xNDUgNDY3LjcgMTI3LjE0OCA0NjQuNjQxQzEzNC42NzUgNDYwLjgwNiAxNDAuNzk0IDQ1NC42ODcgMTQ0LjYyOSA0NDcuMTZDMTQ3LjY4OCA0NDEuMTU3IDE0OC40NjUgNDM1LjUzNCAxNDguNzUzIDQzMi4wMTFDMTQ4Ljk5MyA0MjkuMDczIDE0OC45OSA0MjUuODI1IDE0OC45ODkgNDIzLjUzTDE0OC45ODggMjg0LjUwMUg4OC45ODg1VjQwOS4wMDFIODQuMDAwNVYyNzkuNTAxSDE0OS4wMDFWMjE5LjUwMUgxNDguOTg4VjE5OC44MThDMTQ3LjI1NiAxOTkuMDAyIDE0NS40OTcgMTk4Ljk5OCAxNDMuNzQxIDE5OC43OTlDMTQwLjk1OCAxOTguNDgzIDEzOC4zNzMgMTk3LjUyMSAxMzUuNjE4IDE5Ni4xNzdDMTMyLjk0MyAxOTQuODczIDEyOS43ODUgMTkzLjA0MyAxMjUuODg0IDE5MC43ODJMMTI1LjU2MiAxOTAuNTk2QzEyMS42NjIgMTg4LjMzNSAxMTguNTA0IDE4Ni41MDYgMTE2LjA0MiAxODQuODMzQzExMy41MDYgMTgzLjExMSAxMTEuMzg2IDE4MS4zNDcgMTA5LjcyOCAxNzkuMDg5QzEwNi4xNDQgMTc0LjIwNyAxMDQuNTMyIDE2OC4xNTMgMTA1LjIxNSAxNjIuMTM1QzEwNS41MyAxNTkuMzUxIDEwNi40OTMgMTU2Ljc2NyAxMDcuODM2IDE1NC4wMTJDMTA5LjE0MSAxNTEuMzM2IDExMC45NzEgMTQ4LjE3OSAxMTMuMjMxIDE0NC4yNzhMMTQ4Ljk4OCA4Mi41NzI1TDE0OC45ODkgNzUuNDcxN0MxNDguOTkgNzMuMTc2NyAxNDguOTkzIDY5LjkyODMgMTQ4Ljc1MyA2Ni45ODk2QzE0OC40NjUgNjMuNDY2OSAxNDcuNjg4IDU3Ljg0NDUgMTQ0LjYyOSA1MS44NDA5QzE0MC43OTQgNDQuMzE0NCAxMzQuNjc1IDM4LjE5NTIgMTI3LjE0OCAzNC4zNjAzQzEyMS4xNDUgMzEuMzAxMyAxMTUuNTIyIDMwLjUyNDIgMTExLjk5OSAzMC4yMzY0QzEwOS4wNjEgMjkuOTk2MyAxMDUuODEyIDI5Ljk5ODYgMTAzLjUxNyAzMC4wMDAzTDY5LjQ3MTcgMzAuMDAwM1pNODguOTg4NSAyMTkuNTAxSDg0LjAwMDVWOTAuMDAwNUg4OC45ODg1VjIxOS41MDFaIgoJCQlmaWxsPSIjRUM4RjVFIiAvPgoJPC9nPgoJPGRlZnM+CgkJPGZpbHRlciBpZD0iZmlsdGVyMF9kaV8yOV85OSIgeD0iMjIiIHk9IjMwIiB3aWR0aD0iNDYwIiBoZWlnaHQ9IjQ0Ny4wMDEiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKCQkJY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KCQkJPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIC8+CgkJCTxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIgoJCQkJcmVzdWx0PSJoYXJkQWxwaGEiIC8+CgkJCTxmZU9mZnNldCBkeD0iMiIgZHk9IjQiIC8+CgkJCTxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjIiIC8+CgkJCTxmZUNvbXBvc2l0ZSBpbjI9ImhhcmRBbHBoYSIgb3BlcmF0b3I9Im91dCIgLz4KCQkJPGZlQ29sb3JNYXRyaXggdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAuMSAwIiAvPgoJCQk8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9ImVmZmVjdDFfZHJvcFNoYWRvd18yOV85OSIgLz4KCQkJPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2Ryb3BTaGFkb3dfMjlfOTkiIHJlc3VsdD0ic2hhcGUiIC8+CgkJCTxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIgoJCQkJcmVzdWx0PSJoYXJkQWxwaGEiIC8+CgkJCTxmZU9mZnNldCBkeD0iLTQiIGR5PSItNCIgLz4KCQkJPGZlQ29tcG9zaXRlIGluMj0iaGFyZEFscGhhIiBvcGVyYXRvcj0iYXJpdGhtZXRpYyIgazI9Ii0xIiBrMz0iMSIgLz4KCQkJPGZlQ29sb3JNYXRyaXggdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAuMSAwIiAvPgoJCQk8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0ic2hhcGUiIHJlc3VsdD0iZWZmZWN0Ml9pbm5lclNoYWRvd18yOV85OSIgLz4KCQk8L2ZpbHRlcj4KCTwvZGVmcz4KPC9zdmc+",
4
+ "mimeType": "image/svg+xml"
5
+ },
6
+ {
7
+ "src": "data:image/png;base64,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",
8
+ "mimeType": "image/png"
9
+ }
10
+ ];
11
+ //# sourceMappingURL=generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated.js","sourceRoot":"","sources":["../../src/icons/generated.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,KAAK,GAAG;IACpB;QACC,KAAK,EAAE,g+NAAg+N;QACv+N,UAAU,EAAE,eAAe;KAC3B;IACD;QACC,KAAK,EAAE,ovQAAovQ;QAC3vQ,UAAU,EAAE,WAAW;KACvB;CACwB,CAAC"}
@@ -0,0 +1 @@
1
+ export { icons } from './generated.js';
@@ -1,17 +1,2 @@
1
- import { readFile } from 'node:fs/promises';
2
- import { join } from 'node:path';
3
- const [svg, png] = await Promise.all([
4
- readFile(join(import.meta.dirname, './icon.svg'), 'base64'),
5
- readFile(join(import.meta.dirname, './icon.png'), 'base64'),
6
- ]);
7
- export const icons = [
8
- {
9
- src: 'data:image/svg+xml;base64,' + svg,
10
- mimeType: 'image/svg+xml',
11
- },
12
- {
13
- src: 'data:image/png;base64,' + png,
14
- mimeType: 'image/png',
15
- },
16
- ];
1
+ export { icons } from './generated.js';
17
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/icons/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;IACpC,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,QAAQ,CAAC;IAC3D,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,KAAK,GAAmB;IACpC;QACC,GAAG,EAAE,4BAA4B,GAAG,GAAG;QACvC,QAAQ,EAAE,eAAe;KACzB;IACD;QACC,GAAG,EAAE,wBAAwB,GAAG,GAAG;QACnC,QAAQ,EAAE,WAAW;KACrB;CACD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/icons/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { McpServer } from 'tmcp';
2
+ export declare const server: McpServer<import("valibot").GenericSchema, undefined>;
3
+ export type E18EMcpServer = typeof server;
package/dist/index.js CHANGED
@@ -1,7 +1,5 @@
1
- #!/usr/bin/env node
2
1
  import { McpServer } from 'tmcp';
3
2
  import { ValibotJsonSchemaAdapter } from '@tmcp/adapter-valibot';
4
- import { StdioTransport } from '@tmcp/transport-stdio';
5
3
  import { setup_tools, setup_prompts, setup_resources } from './setup.js';
6
4
  import { icons } from './icons/index.js';
7
5
  export const server = new McpServer({
@@ -21,6 +19,4 @@ export const server = new McpServer({
21
19
  setup_tools(server);
22
20
  setup_resources(server);
23
21
  setup_prompts(server);
24
- const stdio_transport = new StdioTransport(server);
25
- stdio_transport.listen();
26
22
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,SAAS,CAClC;IACC,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,OAAO;IAChB,KAAK;IACL,WAAW,EACV,2IAA2I;CAC5I,EACD;IACC,OAAO,EAAE,IAAI,wBAAwB,EAAE;IACvC,YAAY,EAAE;QACb,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;QAC5B,SAAS,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;QAChC,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;QAC9B,WAAW,EAAE,EAAE;KACf;CACD,CACD,CAAC;AAIF,WAAW,CAAC,MAAM,CAAC,CAAC;AACpB,eAAe,CAAC,MAAM,CAAC,CAAC;AACxB,aAAa,CAAC,MAAM,CAAC,CAAC;AAEtB,MAAM,eAAe,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;AACnD,eAAe,CAAC,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,SAAS,CAClC;IACC,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,OAAO;IAChB,KAAK;IACL,WAAW,EACV,2IAA2I;CAC5I,EACD;IACC,OAAO,EAAE,IAAI,wBAAwB,EAAE;IACvC,YAAY,EAAE;QACb,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;QAC5B,SAAS,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;QAChC,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;QAC9B,WAAW,EAAE,EAAE;KACf;CACD,CACD,CAAC;AAIF,WAAW,CAAC,MAAM,CAAC,CAAC;AACpB,eAAe,CAAC,MAAM,CAAC,CAAC;AACxB,aAAa,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export { task } from './task/index.js';
@@ -0,0 +1,2 @@
1
+ import type { E18EMcpServer } from '../../index.js';
2
+ export declare function task(server: E18EMcpServer): void;
@@ -0,0 +1 @@
1
+ export { replacement_docs } from './replacement-docs/index.js';
@@ -0,0 +1,2 @@
1
+ import type { E18EMcpServer } from '../../index.js';
2
+ export declare function replacement_docs(server: E18EMcpServer): void;
package/dist/run.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
package/dist/run.js ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ import { StdioTransport } from '@tmcp/transport-stdio';
3
+ import { server } from './index.js';
4
+ const stdio_transport = new StdioTransport(server);
5
+ stdio_transport.listen();
6
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,MAAM,eAAe,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;AACnD,eAAe,CAAC,MAAM,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { E18EMcpServer } from './index.js';
2
+ export declare function setup_tools(server: E18EMcpServer): void;
3
+ export declare function setup_resources(server: E18EMcpServer): void;
4
+ export declare function setup_prompts(server: E18EMcpServer): void;
@@ -0,0 +1,2 @@
1
+ import type { E18EMcpServer } from '../../index.js';
2
+ export declare function code_checker(server: E18EMcpServer): void;
@@ -0,0 +1,2 @@
1
+ export { npm_i_checker } from './npm-i-checker/index.js';
2
+ export { code_checker } from './code-checker/index.js';
@@ -0,0 +1,2 @@
1
+ import type { E18EMcpServer } from '../../index.js';
2
+ export declare function npm_i_checker(server: E18EMcpServer): void;
@@ -1,9 +1,11 @@
1
1
  import { tool } from 'tmcp/utils';
2
2
  import * as v from 'valibot';
3
3
  import { get_suggestions_for_package } from '../utils.js';
4
+ import { icons } from '../../icons/index.js';
4
5
  export function npm_i_checker(server) {
5
6
  server.tool({
6
7
  name: 'npm-i-checker',
8
+ icons,
7
9
  description: 'Check for outdated or insecure npm packages in an install script like `npm i` or `pnpm add` or `yarn add` or `bun i`.',
8
10
  schema: v.object({
9
11
  command: v.pipe(v.string(), v.description('The install command to check, e.g. `npm i express lodash` or `pnpm add express lodash` or `yarn add express lodash` or `bun i express lodash`.')),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/npm-i-checker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAE1D,MAAM,UAAU,aAAa,CAAC,MAAqB,EAAE;IACpD,MAAM,CAAC,IAAI,CACV;QACC,IAAI,EAAE,eAAe;QACrB,WAAW,EACV,uHAAuH;QACxH,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YAChB,OAAO,EAAE,CAAC,CAAC,IAAI,CACd,CAAC,CAAC,MAAM,EAAE,EACV,CAAC,CAAC,WAAW,CACZ,gJAAgJ,CAChJ,CACD;SACD,CAAC;QACF,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;YACtB,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SAChC,CAAC;KACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACtB,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,wIAAwI;QACxI,MAAM,CAAC,EAAE,AAAD,EAAG,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7C,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YAClC,MAAM,UAAU,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAC;YACpD,IAAI,UAAU,EAAE,CAAC;gBAChB,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9B,CAAC;QACF,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IAAA,CACxC,CACD,CAAC;AAAA,CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/npm-i-checker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C,MAAM,UAAU,aAAa,CAAC,MAAqB,EAAE;IACpD,MAAM,CAAC,IAAI,CACV;QACC,IAAI,EAAE,eAAe;QACrB,KAAK;QACL,WAAW,EACV,uHAAuH;QACxH,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YAChB,OAAO,EAAE,CAAC,CAAC,IAAI,CACd,CAAC,CAAC,MAAM,EAAE,EACV,CAAC,CAAC,WAAW,CACZ,gJAAgJ,CAChJ,CACD;SACD,CAAC;QACF,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;YACtB,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SAChC,CAAC;KACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACtB,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,wIAAwI;QACxI,MAAM,CAAC,EAAE,AAAD,EAAG,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7C,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YAClC,MAAM,UAAU,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAC;YACpD,IAAI,UAAU,EAAE,CAAC;gBAChB,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9B,CAAC;QACF,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IAAA,CACxC,CACD,CAAC;AAAA,CACF"}
@@ -0,0 +1 @@
1
+ export declare function get_suggestions_for_package(pkg: string): string | undefined;
@@ -1,4 +1,5 @@
1
- import { microUtilsReplacements, preferredReplacements, } from 'module-replacements';
1
+ import microUtilsReplacements from 'module-replacements/manifests/micro-utilities.json' with { type: 'json' };
2
+ import preferredReplacements from 'module-replacements/manifests/preferred.json' with { type: 'json' };
2
3
  import { get_docs } from '../docs/index.js';
3
4
  const docs = await get_docs();
4
5
  export function get_suggestions_for_package(pkg) {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/tools/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,sBAAsB,EACtB,qBAAqB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,MAAM,IAAI,GAAG,MAAM,QAAQ,EAAE,CAAC;AAE9B,MAAM,UAAU,2BAA2B,CAAC,GAAW,EAAE;IACxD,IAAI,WAAW,GAAG,sBAAsB,CAAC,kBAAkB,CAAC,IAAI,CAC/D,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,UAAU,KAAK,GAAG,CAC/C,CAAC;IACF,WAAW;QACV,WAAW;YACX,qBAAqB,CAAC,kBAAkB,CAAC,IAAI,CAC5C,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,UAAU,KAAK,GAAG,CAC/C,CAAC;IACH,IACC,WAAW;QACX,WAAW,CAAC,IAAI,KAAK,QAAQ;QAC7B,WAAW,CAAC,IAAI,KAAK,MAAM,EAC1B,CAAC;QACF,IAAI,WAAW,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;gBAAE,OAAO;YAC/C,OAAO,eAAe,GAAG,8CACxB,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,KAAK,CACjC,EAAE,CAAC;QACJ,CAAC;QACD,OAAO,eAAe,GAAG,cAAc,WAAW,CAAC,WAAW,EAAE,CAAC;IAClE,CAAC;IACD,OAAO;AAAA,CACP"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/tools/utils.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,MAAM,oDAAoD,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC9G,OAAO,qBAAqB,MAAM,8CAA8C,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEvG,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,MAAM,IAAI,GAAG,MAAM,QAAQ,EAAE,CAAC;AAE9B,MAAM,UAAU,2BAA2B,CAAC,GAAW,EAAE;IACxD,IAAI,WAAW,GACd,sBAAsB,CAAC,kBACvB,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC;IACxD,WAAW;QACV,WAAW;YACV,qBAAqB,CAAC,kBAA0C,CAAC,IAAI,CACrE,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,UAAU,KAAK,GAAG,CAC/C,CAAC;IACH,IACC,WAAW;QACX,WAAW,CAAC,IAAI,KAAK,QAAQ;QAC7B,WAAW,CAAC,IAAI,KAAK,MAAM,EAC1B,CAAC;QACF,IAAI,WAAW,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;gBAAE,OAAO;YAC/C,OAAO,eAAe,GAAG,8CACxB,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,KAAK,CACjC,EAAE,CAAC;QACJ,CAAC;QACD,OAAO,eAAe,GAAG,cAAc,WAAW,CAAC,WAAW,EAAE,CAAC;IAClE,CAAC;IACD,OAAO;AAAA,CACP"}
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@e18e/mcp",
3
3
  "mcpName": "dev.e18e/e18e",
4
- "version": "0.0.5",
4
+ "version": "0.0.7",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
8
8
  "description": "The official e18e MCP server for advising agents on modern and performant best practices",
9
9
  "type": "module",
10
10
  "bin": {
11
- "e18e-mcp": "dist/index.js"
11
+ "e18e-mcp": "dist/run.js"
12
12
  },
13
13
  "homepage": "https://github.com/e18e/mcp#readme",
14
14
  "bugs": {
@@ -20,8 +20,15 @@
20
20
  "path": "packages/stdio"
21
21
  },
22
22
  "files": [
23
- "./dist"
23
+ "./dist",
24
+ "!./dist/*.test.{js,d.ts,js.map}"
24
25
  ],
26
+ "exports": {
27
+ ".": {
28
+ "types": "./dist/index.d.ts",
29
+ "default": "./dist/index.js"
30
+ }
31
+ },
25
32
  "keywords": [
26
33
  "tmcp",
27
34
  "mcp",
@@ -29,26 +36,26 @@
29
36
  "e18e"
30
37
  ],
31
38
  "dependencies": {
32
- "@tmcp/adapter-valibot": "^0.1.5",
33
- "@tmcp/transport-stdio": "^0.4.1",
39
+ "@tmcp/adapter-valibot": "^0.1.6",
40
+ "@tmcp/transport-stdio": "^0.4.3",
34
41
  "es-module-lexer": "^1.7.0",
35
42
  "module-replacements": "^2.10.1",
36
- "tmcp": "^1.18.1",
37
- "valibot": "^1.2.0",
38
- "vitest": "^4.0.14"
43
+ "tmcp": "^1.19.4",
44
+ "valibot": "^1.4.2"
39
45
  },
40
46
  "devDependencies": {
41
- "@modelcontextprotocol/inspector": "^0.17.2",
42
- "@types/node": "^24.0.15",
43
- "@typescript/native-preview": "7.0.0-dev.20251125.1",
44
- "publint": "^0.3.15"
47
+ "@modelcontextprotocol/inspector": "^0.18.0",
48
+ "@types/node": "^26.1.1",
49
+ "@typescript/native-preview": "7.0.0-dev.20260109.1",
50
+ "publint": "^0.3.16",
51
+ "vitest": "^4.0.16"
45
52
  },
46
53
  "scripts": {
47
- "build": "tsgo && pnpm generate:docs && pnpm copy-assets && publint",
48
- "copy-assets": "node ./scripts/copy-assets.ts",
54
+ "build": "pnpm generate:icons && tsgo && pnpm generate:docs && publint",
49
55
  "generate:docs:dev": "node ./scripts/fetch-docs.ts dev",
50
56
  "generate:docs": "node ./scripts/fetch-docs.ts",
51
- "inspect": "pnpm build && mcp-inspector --transport stdio node ./dist/index.js",
57
+ "generate:icons": "node ./scripts/generate-icons.ts",
58
+ "inspect": "pnpm build && mcp-inspector --transport stdio node ./dist/run.js",
52
59
  "update:version": "node scripts/update-version.ts",
53
60
  "test": "vitest"
54
61
  }
Binary file
@@ -1,39 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="500" height="500" viewBox="0 0 500 500" fill="none">
2
- <g filter="url(#filter0_di_29_99)">
3
- <path
4
- d="M445.988 304V185C445.988 179.4 445.988 176.6 444.898 174.461C443.94 172.579 442.41 171.049 440.528 170.09C438.389 169 435.589 169 429.988 169H397C391.4 169 388.6 169 386.46 170.09C384.579 171.049 383.049 172.579 382.09 174.461C381 176.6 381 179.4 381 185V304M445.988 304H476M445.988 304H381M445.988 340V423C445.988 428.601 445.988 431.401 444.898 433.54C443.94 435.422 442.41 436.952 440.528 437.911C438.389 439 435.589 439 429.988 439H397C391.4 439 388.6 439 386.46 437.911C384.579 436.952 383.049 435.422 382.09 433.54C381 431.401 381 428.601 381 423V304"
5
- stroke="#7BB560" stroke-width="60" />
6
- <path
7
- d="M250 136C250 130.4 250 127.6 251.09 125.461C252.049 123.579 253.579 122.049 255.46 121.09C257.6 120 260.4 120 266 120H299C304.601 120 307.401 120 309.54 121.09C311.422 122.049 312.952 123.579 313.91 125.461C315 127.6 315 130.4 315 136V244C315 249.601 315 252.401 313.91 254.54C312.952 256.422 311.422 257.952 309.54 258.911C307.401 260 304.601 260 299 260H266C260.4 260 257.6 260 255.46 258.911C253.579 257.952 252.049 256.422 251.09 254.54C250 252.401 250 249.601 250 244V136Z"
8
- stroke="#BECE57" stroke-width="60" />
9
- <path
10
- d="M250 307C250 301.4 250 298.6 251.09 296.461C252.049 294.579 253.579 293.049 255.46 292.09C257.6 291 260.4 291 266 291H299C304.601 291 307.401 291 309.54 292.09C311.422 293.049 312.952 294.579 313.91 296.461C315 298.6 315 301.4 315 307V423C315 428.601 315 431.401 313.91 433.54C312.952 435.422 311.422 436.952 309.54 437.911C307.401 439 304.601 439 299 439H266C260.4 439 257.6 439 255.46 437.911C253.579 436.952 252.049 435.422 251.09 433.54C250 431.401 250 428.601 250 423V307Z"
11
- stroke="#BECE57" stroke-width="60" />
12
- <path
13
- d="M202.493 67.3789C186.401 58.0539 165.797 63.5396 156.472 79.6316L117.65 146.624C112.971 154.699 110.632 158.736 110.183 162.698C109.642 167.466 110.919 172.262 113.759 176.13C116.119 179.344 120.156 181.684 128.23 186.363C136.305 191.042 140.342 193.382 144.305 193.831C147.631 194.208 150.971 193.7 154 192.394V438.501C154 448.289 154 453.183 155.677 457.016C157.693 461.626 161.374 465.308 165.985 467.324C169.818 469.001 174.712 469.001 184.5 469.001C194.289 469.001 199.183 469.001 203.015 467.324C207.626 465.308 211.307 461.626 213.324 457.016C215 453.183 215 448.289 215 438.501V101.757C215 96.2966 215 92.4763 214.686 89.5163C215.021 80.746 210.616 72.0858 202.493 67.3789Z"
14
- fill="#F2CA60" />
15
- <path fill-rule="evenodd" clip-rule="evenodd"
16
- d="M69.4717 30.0003C67.1767 29.9986 63.9284 29.9963 60.9896 30.2364C57.4669 30.5242 51.8445 31.3013 45.8409 34.3603C38.3144 38.1952 32.1952 44.3144 28.3603 51.8409C25.3013 57.8445 24.5242 63.4669 24.2364 66.9896C23.9963 69.9284 23.9986 73.1766 24.0003 75.4717L24.0003 423.529C23.9986 425.824 23.9963 429.073 24.2364 432.011C24.5242 435.534 25.3013 441.157 28.3603 447.16C32.1952 454.687 38.3144 460.806 45.8409 464.641C51.8445 467.7 57.4669 468.477 60.9896 468.765C63.9281 469.005 67.1759 469.002 69.4709 469.001H103.518C105.813 469.002 109.061 469.005 111.999 468.765C115.522 468.477 121.145 467.7 127.148 464.641C134.675 460.806 140.794 454.687 144.629 447.16C147.688 441.157 148.465 435.534 148.753 432.011C148.993 429.073 148.99 425.825 148.989 423.53L148.988 284.501H88.9885V409.001H84.0005V279.501H149.001V219.501H148.988V198.818C147.256 199.002 145.497 198.998 143.741 198.799C140.958 198.483 138.373 197.521 135.618 196.177C132.943 194.873 129.785 193.043 125.884 190.782L125.562 190.596C121.662 188.335 118.504 186.506 116.042 184.833C113.506 183.111 111.386 181.347 109.728 179.089C106.144 174.207 104.532 168.153 105.215 162.135C105.53 159.351 106.493 156.767 107.836 154.012C109.141 151.336 110.971 148.179 113.231 144.278L148.988 82.5725L148.989 75.4717C148.99 73.1767 148.993 69.9283 148.753 66.9896C148.465 63.4669 147.688 57.8445 144.629 51.8409C140.794 44.3144 134.675 38.1952 127.148 34.3603C121.145 31.3013 115.522 30.5242 111.999 30.2364C109.061 29.9963 105.812 29.9986 103.517 30.0003L69.4717 30.0003ZM88.9885 219.501H84.0005V90.0005H88.9885V219.501Z"
17
- fill="#EC8F5E" />
18
- </g>
19
- <defs>
20
- <filter id="filter0_di_29_99" x="22" y="30" width="460" height="447.001" filterUnits="userSpaceOnUse"
21
- color-interpolation-filters="sRGB">
22
- <feFlood flood-opacity="0" result="BackgroundImageFix" />
23
- <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
24
- result="hardAlpha" />
25
- <feOffset dx="2" dy="4" />
26
- <feGaussianBlur stdDeviation="2" />
27
- <feComposite in2="hardAlpha" operator="out" />
28
- <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0" />
29
- <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_29_99" />
30
- <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_29_99" result="shape" />
31
- <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
32
- result="hardAlpha" />
33
- <feOffset dx="-4" dy="-4" />
34
- <feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1" />
35
- <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1 0" />
36
- <feBlend mode="normal" in2="shape" result="effect2_innerShadow_29_99" />
37
- </filter>
38
- </defs>
39
- </svg>
@@ -1,164 +0,0 @@
1
- import { InMemoryTransport, Session } from '@tmcp/transport-in-memory';
2
- import { beforeEach, describe, expect, it } from 'vitest';
3
- import { server } from './index.js';
4
- let transport;
5
- let session;
6
- beforeEach(async () => {
7
- transport = new InMemoryTransport(server);
8
- session = transport.session();
9
- await session.initialize('2025-11-25', {}, {
10
- name: 'test-client',
11
- version: '1.0.0',
12
- });
13
- });
14
- describe('npm-i-checker', () => {
15
- it('is an available tool', async () => {
16
- const tools = await session.listTools();
17
- expect(tools.tools).toContainEqual(expect.objectContaining({
18
- name: 'npm-i-checker',
19
- }));
20
- });
21
- describe.each(['npm', 'pnpm', 'yarn', 'bun'])('using "%s" package manager', (package_manager) => {
22
- // these are all the alias of `npm i`...they technically don't work with other package managers but we literally don't even check this
23
- // the test is just here to make sure that we at least support all the common aliases of `install`
24
- describe.each([
25
- 'add',
26
- 'a',
27
- 'i',
28
- 'in',
29
- 'ins',
30
- 'inst',
31
- 'insta',
32
- 'instal',
33
- 'isnt',
34
- 'isnta',
35
- 'isntal',
36
- 'isntall',
37
- ])('using alias "%s"', (alias) => {
38
- it("doesn't suggest anything for packages that don't have replacements", async () => {
39
- const tool = await session.callTool('npm-i-checker', {
40
- command: `${package_manager} ${alias} svelte`,
41
- });
42
- expect(tool.structuredContent).toEqual({
43
- suggestions: [],
44
- });
45
- });
46
- it('provides documentations for packages that have package replacements', async () => {
47
- const tool = await session.callTool('npm-i-checker', {
48
- command: `${package_manager} ${alias} chalk`,
49
- });
50
- expect(tool.structuredContent).toEqual({
51
- suggestions: [
52
- expect.stringContaining("Don't use `chalk` instead read the following document:"),
53
- ],
54
- });
55
- });
56
- it("provides documentations for packages that have package replacements even if there's a flag after", async () => {
57
- const tool = await session.callTool('npm-i-checker', {
58
- command: `${package_manager} ${alias} chalk --save-dev`,
59
- });
60
- expect(tool.structuredContent).toEqual({
61
- suggestions: [
62
- expect.stringContaining("Don't use `chalk` instead read the following document:"),
63
- ],
64
- });
65
- });
66
- it("provides documentations for packages that have package replacements even if there's a flag before", async () => {
67
- const tool = await session.callTool('npm-i-checker', {
68
- command: `${package_manager} ${alias} -w chalk`,
69
- });
70
- expect(tool.structuredContent).toEqual({
71
- suggestions: [
72
- expect.stringContaining("Don't use `chalk` instead read the following document:"),
73
- ],
74
- });
75
- });
76
- it('provides documentations for packages that have micro utilities replacements', async () => {
77
- const tool = await session.callTool('npm-i-checker', {
78
- command: `${package_manager} ${alias} arr-diff`,
79
- });
80
- expect(tool.structuredContent).toEqual({
81
- suggestions: [
82
- "Don't use `arr-diff` instead Use a.filter((item) => !b.includes(item))",
83
- ],
84
- });
85
- });
86
- it('provides documentations for multiple packages skipping the non problematic one', async () => {
87
- const tool = await session.callTool('npm-i-checker', {
88
- command: `${package_manager} ${alias} arr-diff svelte chalk`,
89
- });
90
- expect(tool.structuredContent).toEqual({
91
- suggestions: [
92
- "Don't use `arr-diff` instead Use a.filter((item) => !b.includes(item))",
93
- expect.stringContaining("Don't use `chalk` instead read the following document:"),
94
- ],
95
- });
96
- });
97
- });
98
- });
99
- });
100
- describe('code-checker', () => {
101
- it('is an available tool', async () => {
102
- const tools = await session.listTools();
103
- expect(tools.tools).toContainEqual(expect.objectContaining({
104
- name: 'code-checker',
105
- }));
106
- });
107
- it("doesn't suggest anything for packages that don't have replacements", async () => {
108
- const tool = await session.callTool('code-checker', {
109
- code: `import { onMount } from 'svelte';`,
110
- });
111
- expect(tool.structuredContent).toEqual({
112
- suggestions: [],
113
- });
114
- });
115
- it('provides documentations for packages that have package replacements', async () => {
116
- const tool = await session.callTool('code-checker', {
117
- code: `import chalk from 'chalk';
118
-
119
- console.log(chalk.blue('Hello world!'));`,
120
- });
121
- expect(tool.structuredContent).toEqual({
122
- suggestions: [
123
- expect.stringContaining("Don't use `chalk` instead read the following document:"),
124
- ],
125
- });
126
- });
127
- it('provides documentations for packages that have micro utilities replacements', async () => {
128
- const tool = await session.callTool('code-checker', {
129
- code: `import diff from 'arr-diff';
130
-
131
- const a = ['a', 'b', 'c', 'd'];
132
- const b = ['b', 'c'];
133
-
134
- console.log(diff(a, b));`,
135
- });
136
- expect(tool.structuredContent).toEqual({
137
- suggestions: [
138
- "Don't use `arr-diff` instead Use a.filter((item) => !b.includes(item))",
139
- ],
140
- });
141
- });
142
- it('provides documentations for multiple packages skipping the non problematic one', async () => {
143
- const tool = await session.callTool('code-checker', {
144
- code: `import chalk from 'chalk';
145
- import { onMount } from 'svelte';
146
- import diff from 'arr-diff';
147
-
148
- onMount(()=>{
149
- const a = ['a', 'b', 'c', 'd'];
150
- const b = ['b', 'c'];
151
-
152
- console.log(diff(a, b));
153
- });
154
- `,
155
- });
156
- expect(tool.structuredContent).toEqual({
157
- suggestions: [
158
- expect.stringContaining("Don't use `chalk` instead read the following document:"),
159
- "Don't use `arr-diff` instead Use a.filter((item) => !b.includes(item))",
160
- ],
161
- });
162
- });
163
- });
164
- //# sourceMappingURL=index.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}