@skillsmith/core 0.4.8 → 0.4.10
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/README.md +1 -1
- package/dist/.tsbuildinfo +1 -1
- package/dist/src/analysis/adapters/java-parsers.d.ts.map +1 -1
- package/dist/src/analysis/adapters/java-parsers.js +9 -2
- package/dist/src/analysis/adapters/java-parsers.js.map +1 -1
- package/dist/src/analytics/AnalyticsRepository.d.ts +1 -1
- package/dist/src/analytics/AnalyticsRepository.d.ts.map +1 -1
- package/dist/src/analytics/ExperimentService.d.ts +1 -1
- package/dist/src/analytics/ExperimentService.d.ts.map +1 -1
- package/dist/src/analytics/ROIDashboardService.d.ts +1 -1
- package/dist/src/analytics/ROIDashboardService.d.ts.map +1 -1
- package/dist/src/analytics/UsageAnalyticsService.d.ts +1 -1
- package/dist/src/analytics/UsageAnalyticsService.d.ts.map +1 -1
- package/dist/src/analytics/metrics-aggregator.d.ts +1 -1
- package/dist/src/analytics/metrics-aggregator.d.ts.map +1 -1
- package/dist/src/analytics/schema.d.ts +1 -1
- package/dist/src/analytics/schema.d.ts.map +1 -1
- package/dist/src/analytics/storage.d.ts.map +1 -1
- package/dist/src/analytics/storage.js +2 -2
- package/dist/src/analytics/storage.js.map +1 -1
- package/dist/src/api/client.d.ts +1 -0
- package/dist/src/api/client.d.ts.map +1 -1
- package/dist/src/api/client.js +14 -7
- package/dist/src/api/client.js.map +1 -1
- package/dist/src/api/schemas.d.ts +17 -10
- package/dist/src/api/schemas.d.ts.map +1 -1
- package/dist/src/api/schemas.js +9 -2
- package/dist/src/api/schemas.js.map +1 -1
- package/dist/src/billing/BillingService.d.ts.map +1 -1
- package/dist/src/billing/BillingService.js.map +1 -1
- package/dist/src/billing/BillingService.types.d.ts +2 -2
- package/dist/src/billing/BillingService.types.d.ts.map +1 -1
- package/dist/src/billing/GDPRComplianceService.d.ts.map +1 -1
- package/dist/src/billing/GDPRComplianceService.js.map +1 -1
- package/dist/src/billing/StripeReconciliationJob.d.ts.map +1 -1
- package/dist/src/billing/StripeReconciliationJob.js.map +1 -1
- package/dist/src/billing/StripeWebhookHandler.d.ts.map +1 -1
- package/dist/src/billing/StripeWebhookHandler.js.map +1 -1
- package/dist/src/billing/gdpr-types.d.ts +2 -2
- package/dist/src/billing/gdpr-types.d.ts.map +1 -1
- package/dist/src/billing/reconciliation-types.d.ts +2 -2
- package/dist/src/billing/reconciliation-types.d.ts.map +1 -1
- package/dist/src/billing/webhook-handlers.d.ts +4 -4
- package/dist/src/billing/webhook-handlers.d.ts.map +1 -1
- package/dist/src/billing/webhook-handlers.js.map +1 -1
- package/dist/src/billing/webhook-types.d.ts +2 -2
- package/dist/src/billing/webhook-types.d.ts.map +1 -1
- package/dist/src/cache/TieredCache.d.ts.map +1 -1
- package/dist/src/cache/TieredCache.js +2 -2
- package/dist/src/cache/TieredCache.js.map +1 -1
- package/dist/src/cache/sqlite.d.ts.map +1 -1
- package/dist/src/cache/sqlite.js +5 -4
- package/dist/src/cache/sqlite.js.map +1 -1
- package/dist/src/db/createDatabase.d.ts +86 -0
- package/dist/src/db/createDatabase.d.ts.map +1 -0
- package/dist/src/db/createDatabase.js +139 -0
- package/dist/src/db/createDatabase.js.map +1 -0
- package/dist/src/db/database-interface.d.ts +141 -0
- package/dist/src/db/database-interface.d.ts.map +1 -0
- package/dist/src/db/database-interface.js +14 -0
- package/dist/src/db/database-interface.js.map +1 -0
- package/dist/src/db/drivers/betterSqlite3Driver.d.ts +48 -0
- package/dist/src/db/drivers/betterSqlite3Driver.d.ts.map +1 -0
- package/dist/src/db/drivers/betterSqlite3Driver.js +138 -0
- package/dist/src/db/drivers/betterSqlite3Driver.js.map +1 -0
- package/dist/src/db/drivers/index.d.ts +8 -0
- package/dist/src/db/drivers/index.d.ts.map +1 -0
- package/dist/src/db/drivers/index.js +8 -0
- package/dist/src/db/drivers/index.js.map +1 -0
- package/dist/src/db/drivers/sqljsDriver.d.ts +91 -0
- package/dist/src/db/drivers/sqljsDriver.d.ts.map +1 -0
- package/dist/src/db/drivers/sqljsDriver.js +335 -0
- package/dist/src/db/drivers/sqljsDriver.js.map +1 -0
- package/dist/src/db/migration.d.ts +1 -1
- package/dist/src/db/migration.d.ts.map +1 -1
- package/dist/src/db/quarantine-schema.d.ts +1 -1
- package/dist/src/db/quarantine-schema.d.ts.map +1 -1
- package/dist/src/db/schema.d.ts +22 -2
- package/dist/src/db/schema.d.ts.map +1 -1
- package/dist/src/db/schema.js +55 -3
- package/dist/src/db/schema.js.map +1 -1
- package/dist/src/embeddings/hnsw-store.js +2 -2
- package/dist/src/embeddings/hnsw-store.js.map +1 -1
- package/dist/src/embeddings/index.d.ts.map +1 -1
- package/dist/src/embeddings/index.js +2 -2
- package/dist/src/embeddings/index.js.map +1 -1
- package/dist/src/exports/repositories.d.ts +4 -1
- package/dist/src/exports/repositories.d.ts.map +1 -1
- package/dist/src/exports/repositories.js +9 -3
- package/dist/src/exports/repositories.js.map +1 -1
- package/dist/src/exports/services.d.ts +1 -0
- package/dist/src/exports/services.d.ts.map +1 -1
- package/dist/src/exports/services.js +4 -0
- package/dist/src/exports/services.js.map +1 -1
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +8 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/indexer/SkillParser.d.ts +20 -0
- package/dist/src/indexer/SkillParser.d.ts.map +1 -1
- package/dist/src/indexer/SkillParser.js +58 -0
- package/dist/src/indexer/SkillParser.js.map +1 -1
- package/dist/src/learning/PatternStore.d.ts.map +1 -1
- package/dist/src/learning/PatternStore.js +2 -7
- package/dist/src/learning/PatternStore.js.map +1 -1
- package/dist/src/learning/PatternStore.queries.d.ts +17 -17
- package/dist/src/learning/PatternStore.queries.d.ts.map +1 -1
- package/dist/src/learning/PatternStore.queries.js.map +1 -1
- package/dist/src/repositories/CacheRepository.d.ts +1 -1
- package/dist/src/repositories/CacheRepository.d.ts.map +1 -1
- package/dist/src/repositories/IndexerRepository.d.ts +1 -1
- package/dist/src/repositories/IndexerRepository.d.ts.map +1 -1
- package/dist/src/repositories/SkillRepository.d.ts +1 -1
- package/dist/src/repositories/SkillRepository.d.ts.map +1 -1
- package/dist/src/repositories/SyncConfigRepository.d.ts +1 -1
- package/dist/src/repositories/SyncConfigRepository.d.ts.map +1 -1
- package/dist/src/repositories/SyncHistoryRepository.d.ts +1 -1
- package/dist/src/repositories/SyncHistoryRepository.d.ts.map +1 -1
- package/dist/src/repositories/quarantine/QuarantineRepository.d.ts +1 -1
- package/dist/src/repositories/quarantine/QuarantineRepository.d.ts.map +1 -1
- package/dist/src/repositories/quarantine/QuarantineRepository.js +4 -1
- package/dist/src/repositories/quarantine/QuarantineRepository.js.map +1 -1
- package/dist/src/scripts/merge-skills.d.ts.map +1 -1
- package/dist/src/scripts/merge-skills.js +2 -2
- package/dist/src/scripts/merge-skills.js.map +1 -1
- package/dist/src/scripts/review-lenny-skills.js +2 -2
- package/dist/src/scripts/review-lenny-skills.js.map +1 -1
- package/dist/src/scripts/validation/types.d.ts +2 -2
- package/dist/src/search/hybrid.d.ts.map +1 -1
- package/dist/src/search/hybrid.js +2 -2
- package/dist/src/search/hybrid.js.map +1 -1
- package/dist/src/security/AuditLogger.d.ts +1 -1
- package/dist/src/security/AuditLogger.d.ts.map +1 -1
- package/dist/src/security/audit-types.d.ts +2 -2
- package/dist/src/security/audit-types.d.ts.map +1 -1
- package/dist/src/security/audit-types.js.map +1 -1
- package/dist/src/security/sanitization.d.ts.map +1 -1
- package/dist/src/security/sanitization.js +25 -17
- package/dist/src/security/sanitization.js.map +1 -1
- package/dist/src/services/SearchService.d.ts +1 -1
- package/dist/src/services/SearchService.d.ts.map +1 -1
- package/dist/src/services/TransformationService.d.ts +1 -1
- package/dist/src/services/TransformationService.d.ts.map +1 -1
- package/dist/src/services/index.d.ts +9 -0
- package/dist/src/services/index.d.ts.map +1 -0
- package/dist/src/services/index.js +10 -0
- package/dist/src/services/index.js.map +1 -0
- package/dist/src/services/quarantine/QuarantineService.d.ts +149 -0
- package/dist/src/services/quarantine/QuarantineService.d.ts.map +1 -0
- package/dist/src/services/quarantine/QuarantineService.js +406 -0
- package/dist/src/services/quarantine/QuarantineService.js.map +1 -0
- package/dist/src/services/quarantine/index.d.ts +10 -0
- package/dist/src/services/quarantine/index.d.ts.map +1 -0
- package/dist/src/services/quarantine/index.js +14 -0
- package/dist/src/services/quarantine/index.js.map +1 -0
- package/dist/src/services/quarantine/types.d.ts +127 -0
- package/dist/src/services/quarantine/types.d.ts.map +1 -0
- package/dist/src/services/quarantine/types.js +59 -0
- package/dist/src/services/quarantine/types.js.map +1 -0
- package/dist/src/types/skill.d.ts +6 -1
- package/dist/src/types/skill.d.ts.map +1 -1
- package/dist/src/types/skill.js.map +1 -1
- package/dist/src/types.d.ts +1 -1
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/github-url.d.ts +57 -0
- package/dist/src/utils/github-url.d.ts.map +1 -0
- package/dist/src/utils/github-url.js +88 -0
- package/dist/src/utils/github-url.js.map +1 -0
- package/dist/src/utils/index.d.ts +2 -0
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/index.js +4 -0
- package/dist/src/utils/index.js.map +1 -1
- package/dist/src/utils/safe-fs.d.ts +63 -0
- package/dist/src/utils/safe-fs.d.ts.map +1 -0
- package/dist/src/utils/safe-fs.js +119 -0
- package/dist/src/utils/safe-fs.js.map +1 -0
- package/dist/src/validation/input-validators.d.ts.map +1 -1
- package/dist/src/validation/input-validators.js +11 -4
- package/dist/src/validation/input-validators.js.map +1 -1
- package/dist/tests/Analytics.integration.test.js +2 -2
- package/dist/tests/Analytics.integration.test.js.map +1 -1
- package/dist/tests/AnalyticsRepository.test.js +2 -2
- package/dist/tests/AnalyticsRepository.test.js.map +1 -1
- package/dist/tests/AuditLogger.test.js.map +1 -1
- package/dist/tests/ExperimentService.test.js +2 -2
- package/dist/tests/ExperimentService.test.js.map +1 -1
- package/dist/tests/QuarantineRepository.test.js +39 -2
- package/dist/tests/QuarantineRepository.test.js.map +1 -1
- package/dist/tests/ROIDashboardService.test.js +2 -2
- package/dist/tests/ROIDashboardService.test.js.map +1 -1
- package/dist/tests/UsageAnalyticsService.test.js +2 -2
- package/dist/tests/UsageAnalyticsService.test.js.map +1 -1
- package/dist/tests/analytics/metrics-aggregator.test.js +2 -2
- package/dist/tests/analytics/metrics-aggregator.test.js.map +1 -1
- package/dist/tests/analytics/metrics-exporter.test.js +2 -2
- package/dist/tests/analytics/metrics-exporter.test.js.map +1 -1
- package/dist/tests/api/client.structural-typing.test.d.ts +11 -0
- package/dist/tests/api/client.structural-typing.test.d.ts.map +1 -0
- package/dist/tests/api/client.structural-typing.test.js +209 -0
- package/dist/tests/api/client.structural-typing.test.js.map +1 -0
- package/dist/tests/billing/BillingService.test.js +2 -2
- package/dist/tests/billing/BillingService.test.js.map +1 -1
- package/dist/tests/billing/GDPRCompliance.test.js +2 -2
- package/dist/tests/billing/GDPRCompliance.test.js.map +1 -1
- package/dist/tests/billing/StripeReconciliation.test.js +2 -2
- package/dist/tests/billing/StripeReconciliation.test.js.map +1 -1
- package/dist/tests/db/database-abstraction.test.d.ts +8 -0
- package/dist/tests/db/database-abstraction.test.d.ts.map +1 -0
- package/dist/tests/db/database-abstraction.test.js +208 -0
- package/dist/tests/db/database-abstraction.test.js.map +1 -0
- package/dist/tests/db/fts5-support.test.d.ts +14 -0
- package/dist/tests/db/fts5-support.test.d.ts.map +1 -0
- package/dist/tests/db/fts5-support.test.js +128 -0
- package/dist/tests/db/fts5-support.test.js.map +1 -0
- package/dist/tests/db/schema-async.test.d.ts +9 -0
- package/dist/tests/db/schema-async.test.d.ts.map +1 -0
- package/dist/tests/db/schema-async.test.js +302 -0
- package/dist/tests/db/schema-async.test.js.map +1 -0
- package/dist/tests/db/sqljs-driver.test.d.ts +8 -0
- package/dist/tests/db/sqljs-driver.test.d.ts.map +1 -0
- package/dist/tests/db/sqljs-driver.test.js +323 -0
- package/dist/tests/db/sqljs-driver.test.js.map +1 -0
- package/dist/tests/edge-cases/EdgeCases.test.js +5 -2
- package/dist/tests/edge-cases/EdgeCases.test.js.map +1 -1
- package/dist/tests/integration/QuarantineService.test.d.ts +11 -0
- package/dist/tests/integration/QuarantineService.test.d.ts.map +1 -0
- package/dist/tests/integration/QuarantineService.test.js +378 -0
- package/dist/tests/integration/QuarantineService.test.js.map +1 -0
- package/dist/tests/schema.test.js.map +1 -1
- package/dist/tests/scripts/import-to-database.test.js +7 -7
- package/dist/tests/scripts/import-to-database.test.js.map +1 -1
- package/dist/tests/unit/check-references.test.d.ts +2 -0
- package/dist/tests/unit/check-references.test.d.ts.map +1 -0
- package/dist/tests/unit/check-references.test.js +118 -0
- package/dist/tests/unit/check-references.test.js.map +1 -0
- package/dist/tests/utils/safe-fs.test.d.ts +12 -0
- package/dist/tests/utils/safe-fs.test.d.ts.map +1 -0
- package/dist/tests/utils/safe-fs.test.js +116 -0
- package/dist/tests/utils/safe-fs.test.js.map +1 -0
- package/package.json +16 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../../src/types/skill.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH
|
|
1
|
+
{"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../../src/types/skill.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../../src/types/skill.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../../src/types/skill.ts"],"names":[],"mappings":"AAAA;;GAEG;AAwBH;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAyB;IAC/C,cAAc;IACd,SAAS;IACT,eAAe;IACf,UAAU;IACV,UAAU;IACV,qBAAqB;CACb,CAAA"}
|
package/dist/src/types.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export declare const TrustTierDescriptions: Record<TrustTier, string>;
|
|
|
14
14
|
/**
|
|
15
15
|
* Skill categories
|
|
16
16
|
*/
|
|
17
|
-
export type SkillCategory = 'development' | 'testing' | 'documentation' | 'devops' | 'database' | 'security' | 'productivity' | 'integration' | 'ai-ml' | 'other';
|
|
17
|
+
export type SkillCategory = 'development' | 'testing' | 'documentation' | 'devops' | 'database' | 'security' | 'productivity' | 'integration' | 'ai-ml' | 'science' | 'other';
|
|
18
18
|
/**
|
|
19
19
|
* Score breakdown for skill quality assessment
|
|
20
20
|
*/
|
package/dist/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitHub URL Parsing Utilities
|
|
3
|
+
* @module @skillsmith/core/utils/github-url
|
|
4
|
+
*
|
|
5
|
+
* SMI-2171: Extracted from mcp-server for shared use across codebase.
|
|
6
|
+
* Used by:
|
|
7
|
+
* - packages/mcp-server/src/tools/install.helpers.ts (skill installation)
|
|
8
|
+
* - scripts/batch-transform-skills.ts (batch transformation)
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Parsed repository URL components
|
|
12
|
+
*/
|
|
13
|
+
export interface ParsedRepoUrl {
|
|
14
|
+
/** GitHub username or organization */
|
|
15
|
+
owner: string;
|
|
16
|
+
/** Repository name */
|
|
17
|
+
repo: string;
|
|
18
|
+
/** Path within the repository (e.g., "skills/commit" for monorepo skills) */
|
|
19
|
+
path: string;
|
|
20
|
+
/** Branch name (defaults to "main" if not specified) */
|
|
21
|
+
branch: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Parse repo_url from registry to extract GitHub components.
|
|
25
|
+
*
|
|
26
|
+
* Handles various URL formats:
|
|
27
|
+
* - Plain repo: `https://github.com/owner/repo`
|
|
28
|
+
* - Tree path: `https://github.com/owner/repo/tree/branch/path`
|
|
29
|
+
* - Blob path: `https://github.com/owner/repo/blob/branch/path`
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```typescript
|
|
33
|
+
* // Plain repo URL
|
|
34
|
+
* parseRepoUrl('https://github.com/user/skill')
|
|
35
|
+
* // => { owner: 'user', repo: 'skill', path: '', branch: 'main' }
|
|
36
|
+
*
|
|
37
|
+
* // Monorepo skill with tree path
|
|
38
|
+
* parseRepoUrl('https://github.com/ruvnet/claude-code/tree/main/skills/commit')
|
|
39
|
+
* // => { owner: 'ruvnet', repo: 'claude-code', path: 'skills/commit', branch: 'main' }
|
|
40
|
+
* ```
|
|
41
|
+
*
|
|
42
|
+
* @param repoUrl - GitHub repository URL
|
|
43
|
+
* @returns Parsed URL components
|
|
44
|
+
* @throws Error if hostname is not GitHub
|
|
45
|
+
*
|
|
46
|
+
* @since SMI-1491
|
|
47
|
+
* @see SMI-2171 - Extracted to @skillsmith/core for shared use
|
|
48
|
+
*/
|
|
49
|
+
export declare function parseRepoUrl(repoUrl: string): ParsedRepoUrl;
|
|
50
|
+
/**
|
|
51
|
+
* Check if a URL is a valid GitHub repository URL
|
|
52
|
+
*
|
|
53
|
+
* @param url - URL to check
|
|
54
|
+
* @returns true if the URL is a valid GitHub URL
|
|
55
|
+
*/
|
|
56
|
+
export declare function isGitHubUrl(url: string): boolean;
|
|
57
|
+
//# sourceMappingURL=github-url.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-url.d.ts","sourceRoot":"","sources":["../../../src/utils/github-url.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAA;IACb,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAA;IACZ,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAA;CACf;AAgBD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAiC3D;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOhD"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitHub URL Parsing Utilities
|
|
3
|
+
* @module @skillsmith/core/utils/github-url
|
|
4
|
+
*
|
|
5
|
+
* SMI-2171: Extracted from mcp-server for shared use across codebase.
|
|
6
|
+
* Used by:
|
|
7
|
+
* - packages/mcp-server/src/tools/install.helpers.ts (skill installation)
|
|
8
|
+
* - scripts/batch-transform-skills.ts (batch transformation)
|
|
9
|
+
*/
|
|
10
|
+
// ============================================================================
|
|
11
|
+
// Constants
|
|
12
|
+
// ============================================================================
|
|
13
|
+
/**
|
|
14
|
+
* Allowed hostnames for skill installation
|
|
15
|
+
* SMI-1533: Restrict to trusted code hosting platforms
|
|
16
|
+
*/
|
|
17
|
+
const ALLOWED_HOSTS = ['github.com', 'www.github.com'];
|
|
18
|
+
// ============================================================================
|
|
19
|
+
// Functions
|
|
20
|
+
// ============================================================================
|
|
21
|
+
/**
|
|
22
|
+
* Parse repo_url from registry to extract GitHub components.
|
|
23
|
+
*
|
|
24
|
+
* Handles various URL formats:
|
|
25
|
+
* - Plain repo: `https://github.com/owner/repo`
|
|
26
|
+
* - Tree path: `https://github.com/owner/repo/tree/branch/path`
|
|
27
|
+
* - Blob path: `https://github.com/owner/repo/blob/branch/path`
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* // Plain repo URL
|
|
32
|
+
* parseRepoUrl('https://github.com/user/skill')
|
|
33
|
+
* // => { owner: 'user', repo: 'skill', path: '', branch: 'main' }
|
|
34
|
+
*
|
|
35
|
+
* // Monorepo skill with tree path
|
|
36
|
+
* parseRepoUrl('https://github.com/ruvnet/claude-code/tree/main/skills/commit')
|
|
37
|
+
* // => { owner: 'ruvnet', repo: 'claude-code', path: 'skills/commit', branch: 'main' }
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* @param repoUrl - GitHub repository URL
|
|
41
|
+
* @returns Parsed URL components
|
|
42
|
+
* @throws Error if hostname is not GitHub
|
|
43
|
+
*
|
|
44
|
+
* @since SMI-1491
|
|
45
|
+
* @see SMI-2171 - Extracted to @skillsmith/core for shared use
|
|
46
|
+
*/
|
|
47
|
+
export function parseRepoUrl(repoUrl) {
|
|
48
|
+
const url = new URL(repoUrl);
|
|
49
|
+
// SMI-1533: Validate hostname to prevent fetching from malicious sources
|
|
50
|
+
if (!ALLOWED_HOSTS.includes(url.hostname.toLowerCase())) {
|
|
51
|
+
throw new Error(`Invalid repository host: ${url.hostname}. ` +
|
|
52
|
+
`Only GitHub repositories are supported (${ALLOWED_HOSTS.join(', ')})`);
|
|
53
|
+
}
|
|
54
|
+
const parts = url.pathname.split('/').filter(Boolean);
|
|
55
|
+
const owner = parts[0];
|
|
56
|
+
const repo = parts[1];
|
|
57
|
+
// /owner/repo (skill at repo root)
|
|
58
|
+
if (parts.length === 2) {
|
|
59
|
+
return { owner, repo, path: '', branch: 'main' };
|
|
60
|
+
}
|
|
61
|
+
// /owner/repo/tree/branch/path... or /owner/repo/blob/branch/path...
|
|
62
|
+
if (parts[2] === 'tree' || parts[2] === 'blob') {
|
|
63
|
+
return {
|
|
64
|
+
owner,
|
|
65
|
+
repo,
|
|
66
|
+
branch: parts[3],
|
|
67
|
+
path: parts.slice(4).join('/'),
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
// Unknown format - assume path starts at index 2, default to main branch
|
|
71
|
+
return { owner, repo, path: parts.slice(2).join('/'), branch: 'main' };
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Check if a URL is a valid GitHub repository URL
|
|
75
|
+
*
|
|
76
|
+
* @param url - URL to check
|
|
77
|
+
* @returns true if the URL is a valid GitHub URL
|
|
78
|
+
*/
|
|
79
|
+
export function isGitHubUrl(url) {
|
|
80
|
+
try {
|
|
81
|
+
const parsed = new URL(url);
|
|
82
|
+
return ALLOWED_HOSTS.includes(parsed.hostname.toLowerCase());
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=github-url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-url.js","sourceRoot":"","sources":["../../../src/utils/github-url.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAoBH,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,aAAa,GAAG,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAA;AAEtD,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;IAE5B,yEAAyE;IACzE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CACb,4BAA4B,GAAG,CAAC,QAAQ,IAAI;YAC1C,2CAA2C,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACzE,CAAA;IACH,CAAC;IAED,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAErD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IACtB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IAErB,mCAAmC;IACnC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;IAClD,CAAC;IAED,qEAAqE;IACrE,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;QAC/C,OAAO;YACL,KAAK;YACL,IAAI;YACJ,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;YAChB,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;SAC/B,CAAA;IACH,CAAC;IAED,yEAAyE;IACzE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;AACxE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;QAC3B,OAAO,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAA;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
|
|
@@ -4,4 +4,6 @@
|
|
|
4
4
|
export { logger, createLogger, silentLogger, type Logger } from './logger.js';
|
|
5
5
|
export { withRetry, fetchWithRetry, isTransientError, isRetryableStatus, parseRetryAfter, RetryExhaustedError, DEFAULT_RETRY_CONFIG, type RetryConfig, } from './retry.js';
|
|
6
6
|
export { checkForUpdates, formatUpdateNotification, type VersionCheckResult, } from './version-check.js';
|
|
7
|
+
export { parseRepoUrl, isGitHubUrl, type ParsedRepoUrl } from './github-url.js';
|
|
8
|
+
export { safeWriteFile, SymlinkError, HardlinkError } from './safe-fs.js';
|
|
7
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAA;AAC7E,OAAO,EACL,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,KAAK,WAAW,GACjB,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAA;AAC7E,OAAO,EACL,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,KAAK,WAAW,GACjB,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAG/E,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA"}
|
package/dist/src/utils/index.js
CHANGED
|
@@ -5,4 +5,8 @@ export { logger, createLogger, silentLogger } from './logger.js';
|
|
|
5
5
|
export { withRetry, fetchWithRetry, isTransientError, isRetryableStatus, parseRetryAfter, RetryExhaustedError, DEFAULT_RETRY_CONFIG, } from './retry.js';
|
|
6
6
|
// SMI-1952: Version check for auto-update notifications
|
|
7
7
|
export { checkForUpdates, formatUpdateNotification, } from './version-check.js';
|
|
8
|
+
// SMI-2171: GitHub URL parsing utilities
|
|
9
|
+
export { parseRepoUrl, isGitHubUrl } from './github-url.js';
|
|
10
|
+
// SMI-2274: Safe filesystem operations (symlink protection)
|
|
11
|
+
export { safeWriteFile, SymlinkError, HardlinkError } from './safe-fs.js';
|
|
8
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAe,MAAM,aAAa,CAAA;AAC7E,OAAO,EACL,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,oBAAoB,GAErB,MAAM,YAAY,CAAA;AAEnB,wDAAwD;AACxD,OAAO,EACL,eAAe,EACf,wBAAwB,GAEzB,MAAM,oBAAoB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAe,MAAM,aAAa,CAAA;AAC7E,OAAO,EACL,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,oBAAoB,GAErB,MAAM,YAAY,CAAA;AAEnB,wDAAwD;AACxD,OAAO,EACL,eAAe,EACf,wBAAwB,GAEzB,MAAM,oBAAoB,CAAA;AAE3B,yCAAyC;AACzC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAsB,MAAM,iBAAiB,CAAA;AAE/E,4DAA4D;AAC5D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-2274: Safe filesystem operations
|
|
3
|
+
* @module @skillsmith/core/utils/safe-fs
|
|
4
|
+
*
|
|
5
|
+
* Provides symlink-safe file write operations to prevent
|
|
6
|
+
* path traversal attacks via symlink substitution.
|
|
7
|
+
*
|
|
8
|
+
* Attack scenario:
|
|
9
|
+
* 1. Attacker creates a symlink at ~/.claude/skills/evil -> /etc/passwd
|
|
10
|
+
* 2. Install tool writes SKILL.md content to that path
|
|
11
|
+
* 3. Content overwrites /etc/passwd instead of skill file
|
|
12
|
+
*
|
|
13
|
+
* Defense:
|
|
14
|
+
* - SMI-2285: Uses O_NOFOLLOW to atomically refuse symlinks (eliminates TOCTOU race)
|
|
15
|
+
* - SMI-2290: Checks nlink count to detect hardlinks
|
|
16
|
+
* - SMI-2288: Properly handles string encoding options for permissions
|
|
17
|
+
*/
|
|
18
|
+
import type { WriteFileOptions } from 'fs';
|
|
19
|
+
/**
|
|
20
|
+
* Error thrown when a symlink is detected at a write destination.
|
|
21
|
+
*/
|
|
22
|
+
export declare class SymlinkError extends Error {
|
|
23
|
+
readonly filePath: string;
|
|
24
|
+
constructor(filePath: string);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Error thrown when a hardlinked file is detected at a write destination.
|
|
28
|
+
* SMI-2290: Hardlinks can alias files, allowing writes to bypass symlink checks.
|
|
29
|
+
*/
|
|
30
|
+
export declare class HardlinkError extends Error {
|
|
31
|
+
readonly filePath: string;
|
|
32
|
+
constructor(filePath: string);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Write a file safely, refusing to write if the destination is a symlink or hardlink.
|
|
36
|
+
*
|
|
37
|
+
* SMI-2285: Uses O_NOFOLLOW to atomically refuse symlinks, eliminating the
|
|
38
|
+
* TOCTOU race condition in the previous lstat-then-write approach.
|
|
39
|
+
* SMI-2290: Checks nlink count to detect hardlinks before writing.
|
|
40
|
+
* SMI-2288: Properly extracts mode from string options (encoding strings).
|
|
41
|
+
*
|
|
42
|
+
* @param filePath - Absolute path to write to
|
|
43
|
+
* @param content - File content (string or Buffer)
|
|
44
|
+
* @param options - Optional fs.writeFile options (encoding, mode, flag) or encoding string
|
|
45
|
+
* @throws {SymlinkError} if the destination is a symlink
|
|
46
|
+
* @throws {HardlinkError} if the destination has multiple hardlinks
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* import { safeWriteFile } from '@skillsmith/core'
|
|
51
|
+
*
|
|
52
|
+
* // Safe write - rejects symlinks and hardlinks
|
|
53
|
+
* await safeWriteFile('/path/to/file.md', content)
|
|
54
|
+
*
|
|
55
|
+
* // With explicit permissions
|
|
56
|
+
* await safeWriteFile('/path/to/file.md', content, { mode: 0o644 })
|
|
57
|
+
*
|
|
58
|
+
* // With encoding string (uses default 0o644 permissions)
|
|
59
|
+
* await safeWriteFile('/path/to/file.md', content, 'utf-8')
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export declare function safeWriteFile(filePath: string, content: string | Buffer, options?: WriteFileOptions | string): Promise<void>;
|
|
63
|
+
//# sourceMappingURL=safe-fs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-fs.d.ts","sourceRoot":"","sources":["../../../src/utils/safe-fs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,IAAI,CAAA;AAW1C;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACrC,SAAgB,QAAQ,EAAE,MAAM,CAAA;gBACpB,QAAQ,EAAE,MAAM;CAK7B;AAED;;;GAGG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACtC,SAAgB,QAAQ,EAAE,MAAM,CAAA;gBACpB,QAAQ,EAAE,MAAM;CAK7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM,GAClC,OAAO,CAAC,IAAI,CAAC,CA6Cf"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-2274: Safe filesystem operations
|
|
3
|
+
* @module @skillsmith/core/utils/safe-fs
|
|
4
|
+
*
|
|
5
|
+
* Provides symlink-safe file write operations to prevent
|
|
6
|
+
* path traversal attacks via symlink substitution.
|
|
7
|
+
*
|
|
8
|
+
* Attack scenario:
|
|
9
|
+
* 1. Attacker creates a symlink at ~/.claude/skills/evil -> /etc/passwd
|
|
10
|
+
* 2. Install tool writes SKILL.md content to that path
|
|
11
|
+
* 3. Content overwrites /etc/passwd instead of skill file
|
|
12
|
+
*
|
|
13
|
+
* Defense:
|
|
14
|
+
* - SMI-2285: Uses O_NOFOLLOW to atomically refuse symlinks (eliminates TOCTOU race)
|
|
15
|
+
* - SMI-2290: Checks nlink count to detect hardlinks
|
|
16
|
+
* - SMI-2288: Properly handles string encoding options for permissions
|
|
17
|
+
*/
|
|
18
|
+
import { open, lstat, constants } from 'fs/promises';
|
|
19
|
+
/**
|
|
20
|
+
* O_NOFOLLOW: refuse to open symlinks
|
|
21
|
+
* Prefer runtime constant from fs.constants, fall back to platform-specific values
|
|
22
|
+
* if unavailable (e.g., Windows where O_NOFOLLOW is not defined).
|
|
23
|
+
*/
|
|
24
|
+
const O_NOFOLLOW = constants.O_NOFOLLOW ??
|
|
25
|
+
(process.platform === 'darwin' ? 0x100 : 0x20000);
|
|
26
|
+
/**
|
|
27
|
+
* Error thrown when a symlink is detected at a write destination.
|
|
28
|
+
*/
|
|
29
|
+
export class SymlinkError extends Error {
|
|
30
|
+
filePath;
|
|
31
|
+
constructor(filePath) {
|
|
32
|
+
super(`Refusing to write to symlink: ${filePath}`);
|
|
33
|
+
this.name = 'SymlinkError';
|
|
34
|
+
this.filePath = filePath;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Error thrown when a hardlinked file is detected at a write destination.
|
|
39
|
+
* SMI-2290: Hardlinks can alias files, allowing writes to bypass symlink checks.
|
|
40
|
+
*/
|
|
41
|
+
export class HardlinkError extends Error {
|
|
42
|
+
filePath;
|
|
43
|
+
constructor(filePath) {
|
|
44
|
+
super(`Refusing to write to hardlinked file: ${filePath}`);
|
|
45
|
+
this.name = 'HardlinkError';
|
|
46
|
+
this.filePath = filePath;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Write a file safely, refusing to write if the destination is a symlink or hardlink.
|
|
51
|
+
*
|
|
52
|
+
* SMI-2285: Uses O_NOFOLLOW to atomically refuse symlinks, eliminating the
|
|
53
|
+
* TOCTOU race condition in the previous lstat-then-write approach.
|
|
54
|
+
* SMI-2290: Checks nlink count to detect hardlinks before writing.
|
|
55
|
+
* SMI-2288: Properly extracts mode from string options (encoding strings).
|
|
56
|
+
*
|
|
57
|
+
* @param filePath - Absolute path to write to
|
|
58
|
+
* @param content - File content (string or Buffer)
|
|
59
|
+
* @param options - Optional fs.writeFile options (encoding, mode, flag) or encoding string
|
|
60
|
+
* @throws {SymlinkError} if the destination is a symlink
|
|
61
|
+
* @throws {HardlinkError} if the destination has multiple hardlinks
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```typescript
|
|
65
|
+
* import { safeWriteFile } from '@skillsmith/core'
|
|
66
|
+
*
|
|
67
|
+
* // Safe write - rejects symlinks and hardlinks
|
|
68
|
+
* await safeWriteFile('/path/to/file.md', content)
|
|
69
|
+
*
|
|
70
|
+
* // With explicit permissions
|
|
71
|
+
* await safeWriteFile('/path/to/file.md', content, { mode: 0o644 })
|
|
72
|
+
*
|
|
73
|
+
* // With encoding string (uses default 0o644 permissions)
|
|
74
|
+
* await safeWriteFile('/path/to/file.md', content, 'utf-8')
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
export async function safeWriteFile(filePath, content, options) {
|
|
78
|
+
// SMI-2288: Extract mode and encoding from options (handles string encoding case)
|
|
79
|
+
const mode = typeof options === 'string' ? 0o644 : (options?.mode ?? 0o644);
|
|
80
|
+
const encoding = typeof options === 'string'
|
|
81
|
+
? options
|
|
82
|
+
: (options?.encoding ?? undefined);
|
|
83
|
+
// SMI-2290: Check for hardlinks on existing files
|
|
84
|
+
try {
|
|
85
|
+
const stats = await lstat(filePath);
|
|
86
|
+
if (stats.isSymbolicLink()) {
|
|
87
|
+
throw new SymlinkError(filePath);
|
|
88
|
+
}
|
|
89
|
+
if (stats.nlink > 1) {
|
|
90
|
+
throw new HardlinkError(filePath);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
if (error.code === 'ENOENT') {
|
|
95
|
+
// File doesn't exist — safe to create
|
|
96
|
+
}
|
|
97
|
+
else if (error instanceof SymlinkError || error instanceof HardlinkError) {
|
|
98
|
+
throw error;
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
throw error;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
// SMI-2285: Open with O_NOFOLLOW to prevent TOCTOU race
|
|
105
|
+
let fd;
|
|
106
|
+
try {
|
|
107
|
+
fd = await open(filePath, constants.O_WRONLY | constants.O_CREAT | constants.O_TRUNC | O_NOFOLLOW, mode);
|
|
108
|
+
const data = typeof content === 'string' && encoding
|
|
109
|
+
? Buffer.from(content, encoding)
|
|
110
|
+
: typeof content === 'string'
|
|
111
|
+
? Buffer.from(content, 'utf-8')
|
|
112
|
+
: content;
|
|
113
|
+
await fd.write(data);
|
|
114
|
+
}
|
|
115
|
+
finally {
|
|
116
|
+
await fd?.close();
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=safe-fs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-fs.js","sourceRoot":"","sources":["../../../src/utils/safe-fs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-validators.d.ts","sourceRoot":"","sources":["../../../src/validation/input-validators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IACP,iEAAiE;IACjE,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,qDAAqD;IACrD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,wCAAwC;IACxC,eAAe,CAAC,EAAE,OAAO,CAAA;CACrB,GACL,MAAM,
|
|
1
|
+
{"version":3,"file":"input-validators.d.ts","sourceRoot":"","sources":["../../../src/validation/input-validators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IACP,iEAAiE;IACjE,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,qDAAqD;IACrD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,wCAAwC;IACxC,eAAe,CAAC,EAAE,OAAO,CAAA;CACrB,GACL,MAAM,CAqCR;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAuBxE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAyB7D"}
|
|
@@ -31,11 +31,18 @@ export function sanitizeInput(input, options = {}) {
|
|
|
31
31
|
sanitized = sanitized.replace(/\0/g, '');
|
|
32
32
|
}
|
|
33
33
|
// Remove path traversal sequences
|
|
34
|
+
// SMI-2262: Loop-based sanitization to prevent bypass with nested patterns
|
|
35
|
+
// e.g., '..././' becomes '../' after single-pass removal
|
|
34
36
|
if (removePathTraversal) {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
let previousPass = '';
|
|
38
|
+
const maxIterations = 10; // Prevent infinite loops on malformed input
|
|
39
|
+
for (let i = 0; i < maxIterations && previousPass !== sanitized; i++) {
|
|
40
|
+
previousPass = sanitized;
|
|
41
|
+
// Remove '../' and '..\' patterns
|
|
42
|
+
sanitized = sanitized.replace(/\.\.[\\/]/g, '');
|
|
43
|
+
// Remove leading '../' or '..\'
|
|
44
|
+
sanitized = sanitized.replace(/^\.\.[\\/]+/, '');
|
|
45
|
+
}
|
|
39
46
|
}
|
|
40
47
|
// HTML escape
|
|
41
48
|
if (escapeHtml) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-validators.js","sourceRoot":"","sources":["../../../src/validation/input-validators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAa,EACb,UAOI,EAAE;IAEN,MAAM,EAAE,mBAAmB,GAAG,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,eAAe,GAAG,IAAI,EAAE,GAAG,OAAO,CAAA;IAEzF,IAAI,SAAS,GAAG,KAAK,CAAA;IAErB,oCAAoC;IACpC,IAAI,eAAe,EAAE,CAAC;QACpB,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAC1C,CAAC;IAED,kCAAkC;IAClC,IAAI,mBAAmB,EAAE,CAAC;QACxB,kCAAkC;
|
|
1
|
+
{"version":3,"file":"input-validators.js","sourceRoot":"","sources":["../../../src/validation/input-validators.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* End-to-end tests for Phase 4 Product Strategy analytics workflows
|
|
5
5
|
*/
|
|
6
6
|
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
7
|
-
import
|
|
7
|
+
import { createDatabaseSync } from '../src/db/createDatabase.js';
|
|
8
8
|
import { initializeAnalyticsSchema } from '../src/analytics/schema.js';
|
|
9
9
|
import { UsageAnalyticsService } from '../src/analytics/UsageAnalyticsService.js';
|
|
10
10
|
import { ExperimentService } from '../src/analytics/ExperimentService.js';
|
|
@@ -15,7 +15,7 @@ describe('Analytics Integration Tests', () => {
|
|
|
15
15
|
let experimentService;
|
|
16
16
|
let roiService;
|
|
17
17
|
beforeEach(() => {
|
|
18
|
-
db =
|
|
18
|
+
db = createDatabaseSync(':memory:');
|
|
19
19
|
initializeAnalyticsSchema(db);
|
|
20
20
|
usageService = new UsageAnalyticsService(db);
|
|
21
21
|
experimentService = new ExperimentService(db);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Analytics.integration.test.js","sourceRoot":"","sources":["../../tests/Analytics.integration.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Analytics.integration.test.js","sourceRoot":"","sources":["../../tests/Analytics.integration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Uses fake timers for deterministic date testing (SMI-992)
|
|
6
6
|
*/
|
|
7
7
|
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
8
|
-
import
|
|
8
|
+
import { createDatabaseSync } from '../src/db/createDatabase.js';
|
|
9
9
|
import { initializeAnalyticsSchema } from '../src/analytics/schema.js';
|
|
10
10
|
import { AnalyticsRepository } from '../src/analytics/AnalyticsRepository.js';
|
|
11
11
|
import { FIXED_DATE_ISO, FIXED_TIMESTAMP, ONE_DAY_MS, setupFakeTimers, cleanupFakeTimers, } from './test-utils.js';
|
|
@@ -14,7 +14,7 @@ describe('AnalyticsRepository', () => {
|
|
|
14
14
|
let repo;
|
|
15
15
|
beforeEach(() => {
|
|
16
16
|
setupFakeTimers();
|
|
17
|
-
db =
|
|
17
|
+
db = createDatabaseSync(':memory:');
|
|
18
18
|
initializeAnalyticsSchema(db);
|
|
19
19
|
repo = new AnalyticsRepository(db);
|
|
20
20
|
});
|