@gulibs/safe-coder 0.0.28 → 0.0.30

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,16 @@
1
+ /**
2
+ * Auto-install crawl-docs SKILL when MCP server starts
3
+ */
4
+ export declare class AutoSkillInstaller {
5
+ private readonly SKILL_NAME;
6
+ private readonly CLAUDE_SKILLS_DIR;
7
+ /**
8
+ * Install crawl-docs SKILL if it doesn't exist
9
+ */
10
+ installCrawlDocsSkill(): Promise<void>;
11
+ /**
12
+ * Generate SKILL.md content
13
+ */
14
+ private generateSkillContent;
15
+ }
16
+ //# sourceMappingURL=auto-skill-installer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-skill-installer.d.ts","sourceRoot":"","sources":["../../src/server/auto-skill-installer.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwC;IAE1E;;OAEG;IACG,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B5C;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAyH7B"}
@@ -0,0 +1,164 @@
1
+ import { mkdir, writeFile, access, constants } from 'fs/promises';
2
+ import { join } from 'path';
3
+ import { homedir } from 'os';
4
+ /**
5
+ * Auto-install crawl-docs SKILL when MCP server starts
6
+ */
7
+ export class AutoSkillInstaller {
8
+ SKILL_NAME = 'crawl-docs';
9
+ CLAUDE_SKILLS_DIR = join(homedir(), '.claude', 'skills');
10
+ /**
11
+ * Install crawl-docs SKILL if it doesn't exist
12
+ */
13
+ async installCrawlDocsSkill() {
14
+ try {
15
+ const skillDir = join(this.CLAUDE_SKILLS_DIR, this.SKILL_NAME);
16
+ const skillMdPath = join(skillDir, 'SKILL.md');
17
+ // Check if SKILL already exists
18
+ try {
19
+ await access(skillMdPath, constants.F_OK);
20
+ // SKILL already exists, no need to install
21
+ return;
22
+ }
23
+ catch {
24
+ // SKILL doesn't exist, proceed with installation
25
+ }
26
+ // Create skill directory
27
+ await mkdir(skillDir, { recursive: true });
28
+ // Generate SKILL.md content
29
+ const skillContent = this.generateSkillContent();
30
+ // Write SKILL.md
31
+ await writeFile(skillMdPath, skillContent, 'utf-8');
32
+ console.error(`[Safe Coder MCP] Auto-installed crawl-docs SKILL at: ${skillMdPath}`);
33
+ }
34
+ catch (error) {
35
+ // Log error but don't fail MCP startup
36
+ console.error(`[Safe Coder MCP] Failed to auto-install crawl-docs SKILL:`, error);
37
+ }
38
+ }
39
+ /**
40
+ * Generate SKILL.md content
41
+ */
42
+ generateSkillContent() {
43
+ return `---
44
+ name: crawl-docs
45
+ description: Crawl online documentation and automatically generate Agent SKILLs. Use when user asks to crawl documentation, scrape docs, generate SKILL from URL, or create skill from documentation website. Supports Chinese requests (爬取文档、抓取文档、生成SKILL).
46
+ ---
47
+
48
+ # Crawl Documentation and Generate SKILL
49
+
50
+ Automatically crawl documentation websites and generate high-quality Agent SKILLs using the safe-coder MCP server.
51
+
52
+ ## When to Use
53
+
54
+ Use this skill when the user requests:
55
+ - "Crawl [documentation URL] and generate SKILL"
56
+ - "Scrape docs from [URL]"
57
+ - "Create a skill from [documentation website]"
58
+ - "Generate SKILL from [URL]"
59
+ - Chinese: "爬取文档"、"抓取文档"、"从文档生成SKILL"
60
+
61
+ ## Required Information
62
+
63
+ Gather from the user:
64
+ 1. **Documentation URL** - The website to crawl
65
+ 2. **Skill name** - Short identifier (e.g., "react", "vue-guide")
66
+ 3. **Max pages** (optional) - How many pages to crawl (default: 50)
67
+
68
+ ## Implementation Steps
69
+
70
+ ### Step 1: Check MCP Availability
71
+
72
+ First, verify the \`user-safe-coder\` MCP server is available by reading its tool schema:
73
+
74
+ \`\`\`
75
+ Read: /Users/wormhole/.cursor/projects/Users-wormhole-Documents-Developments-Our-mcp/mcps/user-safe-coder/tools/crawl_documentation.json
76
+ \`\`\`
77
+
78
+ ### Step 2: Call the Tool
79
+
80
+ Use \`CallMcpTool\` to crawl documentation:
81
+
82
+ \`\`\`javascript
83
+ CallMcpTool({
84
+ server: "user-safe-coder",
85
+ toolName: "crawl_documentation",
86
+ arguments: {
87
+ url: "<documentation-url>",
88
+ skillName: "<skill-name>",
89
+ maxPages: <number>, // Optional, default 50
90
+ outputDir: "~/.claude/skills" // Optional, default ~/.claude/skills
91
+ }
92
+ })
93
+ \`\`\`
94
+
95
+ ### Step 3: Verify Output
96
+
97
+ After crawling completes:
98
+ 1. Check the generated SKILL location (default: \`~/.claude/skills/<skill-name>/\`)
99
+ 2. Verify the SKILL.md file and references/ directory were created
100
+ 3. Inform the user where the skill was saved
101
+
102
+ ## Parameters Reference
103
+
104
+ ### Required
105
+ - \`url\` (string) - Documentation website URL to crawl
106
+ - \`skillName\` (string) - Name for the skill directory (e.g., "react", "vue-docs")
107
+
108
+ ### Optional
109
+ - \`maxPages\` (number) - Maximum pages to crawl (default: 50)
110
+ - \`depth\` (number) - Maximum crawl depth (default: 3)
111
+ - \`outputDir\` (string) - Output directory (default: ~/.claude/skills)
112
+ - \`useCache\` (boolean) - Use cached results if available (default: true)
113
+ - \`forceRefresh\` (boolean) - Force refresh even if cached (default: false)
114
+ - \`useBrowser\` (boolean) - Force browser automation for SPA sites
115
+ - \`browser\` (string) - "puppeteer" or "playwright"
116
+ - \`spaStrategy\` (string) - "smart", "auto", or "manual"
117
+
118
+ ## What the Tool Does
119
+
120
+ The \`crawl_documentation\` tool:
121
+ - Crawls the documentation website automatically
122
+ - Extracts content, code examples, and patterns
123
+ - Analyzes structure and categorizes content
124
+ - Generates a concise SKILL.md (< 500 lines)
125
+ - Creates organized reference files in \`references/\` subdirectory
126
+ - Saves directly to disk (default: ~/.claude/skills/)
127
+ - Returns only a lightweight summary to minimize token usage
128
+
129
+ ## Example Usage
130
+
131
+ **User request:**
132
+ \`\`\`
133
+ 请爬取 React 文档并生成 SKILL:
134
+ - URL: https://react.dev
135
+ - 最多 20 页
136
+ - 命名为 react
137
+ \`\`\`
138
+
139
+ **Your response:**
140
+ 1. Read the tool schema
141
+ 2. Call crawl_documentation with:
142
+ - url: "https://react.dev"
143
+ - skillName: "react"
144
+ - maxPages: 20
145
+ 3. Inform user: "SKILL has been generated at ~/.claude/skills/react/ with references directory"
146
+
147
+ ## Error Handling
148
+
149
+ If the tool fails:
150
+ 1. Check if safe-coder-cli is installed
151
+ 2. Verify the URL is accessible
152
+ 3. Check network connectivity
153
+ 4. Review error message and suggest solutions
154
+
155
+ ## Notes
156
+
157
+ - The tool uses caching by default to avoid re-crawling
158
+ - Generated SKILLs follow Cursor Agent SKILL best practices
159
+ - Reference files are automatically organized by category
160
+ - The tool is optimized for documentation sites (not general web scraping)
161
+ `;
162
+ }
163
+ }
164
+ //# sourceMappingURL=auto-skill-installer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-skill-installer.js","sourceRoot":"","sources":["../../src/server/auto-skill-installer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B;;GAEG;AACH,MAAM,OAAO,kBAAkB;IACZ,UAAU,GAAG,YAAY,CAAC;IAC1B,iBAAiB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAE1E;;OAEG;IACH,KAAK,CAAC,qBAAqB;QACzB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YAE/C,gCAAgC;YAChC,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC1C,2CAA2C;gBAC3C,OAAO;YACT,CAAC;YAAC,MAAM,CAAC;gBACP,iDAAiD;YACnD,CAAC;YAED,yBAAyB;YACzB,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE3C,4BAA4B;YAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAEjD,iBAAiB;YACjB,MAAM,SAAS,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;YAEpD,OAAO,CAAC,KAAK,CAAC,wDAAwD,WAAW,EAAE,CAAC,CAAC;QACvF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,uCAAuC;YACvC,OAAO,CAAC,KAAK,CAAC,2DAA2D,EAAE,KAAK,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAED;;OAEG;IACK,oBAAoB;QAC1B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsHV,CAAC;IACA,CAAC;CACF"}
@@ -5,6 +5,7 @@
5
5
  */
6
6
  export declare class SafeCoderMCPServer {
7
7
  private server;
8
+ private autoSkillInstaller;
8
9
  constructor();
9
10
  /**
10
11
  * Register MCP tools
@@ -1 +1 @@
1
- {"version":3,"file":"safe-coder-mcp.d.ts","sourceRoot":"","sources":["../../src/server/safe-coder-mcp.ts"],"names":[],"mappings":";AAaA;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAY;;IAW1B;;OAEG;IACH,OAAO,CAAC,UAAU;IAsKlB;;OAEG;IACG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAM3B"}
1
+ {"version":3,"file":"safe-coder-mcp.d.ts","sourceRoot":"","sources":["../../src/server/safe-coder-mcp.ts"],"names":[],"mappings":";AAcA;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,kBAAkB,CAAqB;;IAY/C;;OAEG;IACH,OAAO,CAAC,UAAU;IAwKlB;;OAEG;IACG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAS3B"}
@@ -2,17 +2,20 @@
2
2
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
3
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
4
  import { crawlDocumentation, CrawlDocumentationSchema, listCachedDocumentation, clearCache, ClearCacheSchema, saveSkill, SaveSkillSchema, } from '../tools/index.js';
5
+ import { AutoSkillInstaller } from './auto-skill-installer.js';
5
6
  /**
6
7
  * Safe Coder MCP Server
7
8
  * Orchestrates safe-coder-cli for documentation crawling and SKILL generation
8
9
  */
9
10
  export class SafeCoderMCPServer {
10
11
  server;
12
+ autoSkillInstaller;
11
13
  constructor() {
12
14
  this.server = new McpServer({
13
15
  name: 'safe-coder',
14
16
  version: '1.0.0',
15
17
  });
18
+ this.autoSkillInstaller = new AutoSkillInstaller();
16
19
  this.setupTools();
17
20
  }
18
21
  /**
@@ -23,7 +26,9 @@ export class SafeCoderMCPServer {
23
26
  this.server.registerTool('crawl_documentation', {
24
27
  title: 'Crawl Documentation and Generate SKILL',
25
28
  description: 'Crawl documentation website and automatically generate a complete Agent SKILL. ' +
26
- 'This tool saves files directly to disk and returns only a lightweight summary. ' +
29
+ 'Use this tool when the user asks to: crawl documentation, scrape docs, generate SKILL from URL, ' +
30
+ 'create skill from documentation, or similar requests (爬取文档、抓取文档、从文档生成SKILL). ' +
31
+ '\n\nThis tool saves files directly to disk and returns only a lightweight summary. ' +
27
32
  'The CLI generates a high-quality SKILL.md (< 500 lines) based on complete content analysis, ' +
28
33
  'along with organized reference files. Agent receives only the summary to minimize token cost. ' +
29
34
  '\n\nRequired: url, skillName. ' +
@@ -163,6 +168,8 @@ export class SafeCoderMCPServer {
163
168
  * Start the MCP server
164
169
  */
165
170
  async run() {
171
+ // Auto-install crawl-docs SKILL if it doesn't exist
172
+ await this.autoSkillInstaller.installCrawlDocsSkill();
166
173
  const transport = new StdioServerTransport();
167
174
  await this.server.connect(transport);
168
175
  console.error('Safe Coder MCP Server running on stdio');
@@ -1 +1 @@
1
- {"version":3,"file":"safe-coder-mcp.js","sourceRoot":"","sources":["../../src/server/safe-coder-mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"safe-coder-mcp.js","sourceRoot":"","sources":["../../src/server/safe-coder-mcp.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"crawl-documentation.d.ts","sourceRoot":"","sources":["../../src/tools/crawl-documentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYnC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE/E;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuFtE"}
1
+ {"version":3,"file":"crawl-documentation.d.ts","sourceRoot":"","sources":["../../src/tools/crawl-documentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYnC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE/E;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiGtE"}
@@ -1,4 +1,6 @@
1
1
  import { z } from 'zod';
2
+ import { homedir } from 'os';
3
+ import { join } from 'path';
2
4
  import { DependencyChecker } from '../executor/dependency-checker.js';
3
5
  import { CLIExecutor } from '../executor/cli-executor.js';
4
6
  import { ContentProcessor } from '../processor/content-processor.js';
@@ -50,6 +52,9 @@ export async function crawlDocumentation(input) {
50
52
  }
51
53
  }
52
54
  // 3. ✅ Prepare crawl parameters - 包含 outputDir 和 filename
55
+ // 设置默认的输出目录(展开波浪号)
56
+ const defaultOutputDir = join(homedir(), '.claude', 'skills');
57
+ const outputDir = input.outputDir || defaultOutputDir;
53
58
  const crawlParams = {
54
59
  url: input.url,
55
60
  maxPages: input.maxPages,
@@ -58,8 +63,8 @@ export async function crawlDocumentation(input) {
58
63
  useBrowser: input.useBrowser,
59
64
  browser: input.browser,
60
65
  spaStrategy: input.spaStrategy,
61
- // ✅ 新增:让 CLI 直接保存文件
62
- outputDir: input.outputDir,
66
+ // ✅ 新增:让 CLI 直接保存文件(总是提供明确的路径)
67
+ outputDir: outputDir,
63
68
  filename: input.skillName,
64
69
  };
65
70
  // 4. ✅ Execute crawl - CLI 会生成并保存 SKILL
@@ -80,24 +85,29 @@ export async function crawlDocumentation(input) {
80
85
  maxDepth: rawResult.statistics.maxDepthReached,
81
86
  errors: rawResult.statistics.errors,
82
87
  quality: rawResult.skill?.quality || 0,
83
- // ✅ 文件路径信息
88
+ // ✅ 文件路径信息(使用展开后的绝对路径)
84
89
  savedFiles: rawResult.savedFiles || {
85
- skillDir: `${input.outputDir || '~/.claude/skills'}/${input.skillName}`,
86
- skillMdPath: `${input.outputDir || '~/.claude/skills'}/${input.skillName}/SKILL.md`,
90
+ skillDir: join(outputDir, input.skillName),
91
+ skillMdPath: join(outputDir, input.skillName, 'SKILL.md'),
87
92
  referenceFiles: [],
88
93
  },
89
94
  };
90
95
  // 6. ✅ 不使用旧的缓存系统(缓存完整数据太大)
91
96
  // 用户可以直接使用磁盘上的文件
92
97
  // 7. ✅ 返回轻量级响应
98
+ const refCount = summary.savedFiles.referenceFiles?.length || 0;
99
+ const refMessage = refCount > 0
100
+ ? `References: ${refCount} files in ${join(summary.savedFiles.skillDir, 'references')}/`
101
+ : 'References: No reference files';
93
102
  return {
94
103
  success: true,
95
104
  fromCache: false,
96
105
  summary,
97
106
  message: `✓ Crawled ${summary.totalPages} pages and generated SKILL.\n` +
98
107
  `Quality: ${summary.quality}/100\n` +
99
- `Location: ${summary.savedFiles.skillMdPath}\n` +
100
- `References: ${summary.savedFiles.referenceFiles.length} files`,
108
+ `SKILL.md: ${summary.savedFiles.skillMdPath}\n` +
109
+ refMessage + '\n' +
110
+ `\nThe SKILL has been saved and is ready to use!`,
101
111
  };
102
112
  }
103
113
  //# sourceMappingURL=crawl-documentation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"crawl-documentation.js","sourceRoot":"","sources":["../../src/tools/crawl-documentation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crawl-documentation.js","sourceRoot":"","sources":["../../src/tools/crawl-documentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAoB,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IAC5D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC,EAAG,OAAO;IAC3E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,kCAAkC,CAAC,EAAG,UAAU;IACrG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IACvE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACrE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC,EAAG,OAAO;IACnH,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACvE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IACvF,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IAC7F,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IAC1F,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC;CAC7F,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,KAA8B;IACrE,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,IAAI,gBAAgB,EAAE,CAAC;IACzC,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;IAC5C,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;IAEjC,+BAA+B;IAC/B,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,iBAAiB,EAAE,CAAC;IACnD,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,sDAAsD;IACtD,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;YAE3E,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,oBAAoB,EAAE,MAAM,CAAC,KAAK;gBAClC,SAAS,EAAE,IAAI;gBACf,QAAQ,EAAE,GAAG,UAAU,UAAU;gBACjC,OAAO,EAAE,0BAA0B,UAAU,mDAAmD;aACjG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,0DAA0D;IAC1D,mBAAmB;IACnB,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,gBAAgB,CAAC;IAEtD,MAAM,WAAW,GAAgB;QAC/B,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,QAAQ,EAAE,KAAK,CAAC,KAAK;QACrB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,WAAW,EAAE,KAAK,CAAC,WAAW;QAE9B,+BAA+B;QAC/B,SAAS,EAAE,SAAS;QACpB,QAAQ,EAAE,KAAK,CAAC,SAAS;KAC1B,CAAC;IAEF,wCAAwC;IACxC,IAAI,YAAY,GAAG,EAAE,CAAC;IACtB,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,EAAE;QACtE,sDAAsD;QACtD,IAAI,QAAQ,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;YACtC,OAAO,CAAC,KAAK,CAAC,cAAc,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;YAChD,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,yBAAyB;IACzB,MAAM,OAAO,GAAG;QACd,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,UAAU;QAC3C,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,eAAe;QAC9C,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM;QACnC,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC;QAEtC,uBAAuB;QACvB,UAAU,EAAE,SAAS,CAAC,UAAU,IAAI;YAClC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;YAC1C,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC;YACzD,cAAc,EAAE,EAAE;SACnB;KACF,CAAC;IAEF,2BAA2B;IAC3B,iBAAiB;IAEjB,eAAe;IACf,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,CAAC;IAChE,MAAM,UAAU,GAAG,QAAQ,GAAG,CAAC;QAC7B,CAAC,CAAC,eAAe,QAAQ,aAAa,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG;QACxF,CAAC,CAAC,gCAAgC,CAAC;IAErC,OAAO;QACL,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,KAAK;QAChB,OAAO;QACP,OAAO,EACL,aAAa,OAAO,CAAC,UAAU,+BAA+B;YAC9D,YAAY,OAAO,CAAC,OAAO,QAAQ;YACnC,aAAa,OAAO,CAAC,UAAU,CAAC,WAAW,IAAI;YAC/C,UAAU,GAAG,IAAI;YACjB,iDAAiD;KACpD,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gulibs/safe-coder",
3
- "version": "0.0.28",
3
+ "version": "0.0.30",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"