sandstream-kit 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +617 -0
- package/dist/adapters/api-key-adapter.d.ts +35 -0
- package/dist/adapters/api-key-adapter.js +46 -0
- package/dist/adapters/api-key-adapter.js.map +1 -0
- package/dist/adapters/clerk-auth.d.ts +6 -0
- package/dist/adapters/clerk-auth.js +20 -0
- package/dist/adapters/clerk-auth.js.map +1 -0
- package/dist/adapters/cloudflare-r2.d.ts +6 -0
- package/dist/adapters/cloudflare-r2.js +136 -0
- package/dist/adapters/cloudflare-r2.js.map +1 -0
- package/dist/adapters/expo-eas.d.ts +6 -0
- package/dist/adapters/expo-eas.js +129 -0
- package/dist/adapters/expo-eas.js.map +1 -0
- package/dist/adapters/flagsmith-flags.d.ts +5 -0
- package/dist/adapters/flagsmith-flags.js +20 -0
- package/dist/adapters/flagsmith-flags.js.map +1 -0
- package/dist/adapters/flyio-hosting.d.ts +2 -0
- package/dist/adapters/flyio-hosting.js +143 -0
- package/dist/adapters/flyio-hosting.js.map +1 -0
- package/dist/adapters/index.d.ts +6 -0
- package/dist/adapters/index.js +48 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/inngest-background.d.ts +5 -0
- package/dist/adapters/inngest-background.js +19 -0
- package/dist/adapters/inngest-background.js.map +1 -0
- package/dist/adapters/liveblocks-realtime.d.ts +11 -0
- package/dist/adapters/liveblocks-realtime.js +62 -0
- package/dist/adapters/liveblocks-realtime.js.map +1 -0
- package/dist/adapters/loops-email.d.ts +6 -0
- package/dist/adapters/loops-email.js +18 -0
- package/dist/adapters/loops-email.js.map +1 -0
- package/dist/adapters/neon-db.d.ts +10 -0
- package/dist/adapters/neon-db.js +94 -0
- package/dist/adapters/neon-db.js.map +1 -0
- package/dist/adapters/planetscale-db.d.ts +11 -0
- package/dist/adapters/planetscale-db.js +134 -0
- package/dist/adapters/planetscale-db.js.map +1 -0
- package/dist/adapters/posthog-analytics.d.ts +6 -0
- package/dist/adapters/posthog-analytics.js +22 -0
- package/dist/adapters/posthog-analytics.js.map +1 -0
- package/dist/adapters/railway-hosting.d.ts +2 -0
- package/dist/adapters/railway-hosting.js +136 -0
- package/dist/adapters/railway-hosting.js.map +1 -0
- package/dist/adapters/resend-email.d.ts +35 -0
- package/dist/adapters/resend-email.js +109 -0
- package/dist/adapters/resend-email.js.map +1 -0
- package/dist/adapters/searxng-instance.d.ts +6 -0
- package/dist/adapters/searxng-instance.js +240 -0
- package/dist/adapters/searxng-instance.js.map +1 -0
- package/dist/adapters/sentry-monitoring.d.ts +7 -0
- package/dist/adapters/sentry-monitoring.js +27 -0
- package/dist/adapters/sentry-monitoring.js.map +1 -0
- package/dist/adapters/stripe-payments.d.ts +6 -0
- package/dist/adapters/stripe-payments.js +134 -0
- package/dist/adapters/stripe-payments.js.map +1 -0
- package/dist/adapters/supabase-db.d.ts +6 -0
- package/dist/adapters/supabase-db.js +130 -0
- package/dist/adapters/supabase-db.js.map +1 -0
- package/dist/adapters/tinybird-analytics.d.ts +5 -0
- package/dist/adapters/tinybird-analytics.js +20 -0
- package/dist/adapters/tinybird-analytics.js.map +1 -0
- package/dist/adapters/trigger-background.d.ts +6 -0
- package/dist/adapters/trigger-background.js +20 -0
- package/dist/adapters/trigger-background.js.map +1 -0
- package/dist/adapters/types.d.ts +7 -0
- package/dist/adapters/types.js +2 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/adapters/upstash-redis.d.ts +6 -0
- package/dist/adapters/upstash-redis.js +88 -0
- package/dist/adapters/upstash-redis.js.map +1 -0
- package/dist/adapters/vercel-hosting.d.ts +6 -0
- package/dist/adapters/vercel-hosting.js +112 -0
- package/dist/adapters/vercel-hosting.js.map +1 -0
- package/dist/agent-adapter-model.d.ts +108 -0
- package/dist/agent-adapter-model.js +6 -0
- package/dist/agent-adapter-model.js.map +1 -0
- package/dist/agent-adapter-service.d.ts +67 -0
- package/dist/agent-adapter-service.js +299 -0
- package/dist/agent-adapter-service.js.map +1 -0
- package/dist/agent-config.d.ts +56 -0
- package/dist/agent-config.js +129 -0
- package/dist/agent-config.js.map +1 -0
- package/dist/agent-governance-model.d.ts +128 -0
- package/dist/agent-governance-model.js +6 -0
- package/dist/agent-governance-model.js.map +1 -0
- package/dist/agent-governance-service.d.ts +101 -0
- package/dist/agent-governance-service.js +319 -0
- package/dist/agent-governance-service.js.map +1 -0
- package/dist/alert-rules-engine.d.ts +102 -0
- package/dist/alert-rules-engine.js +210 -0
- package/dist/alert-rules-engine.js.map +1 -0
- package/dist/analytics-service.d.ts +126 -0
- package/dist/analytics-service.js +318 -0
- package/dist/analytics-service.js.map +1 -0
- package/dist/analyze.d.ts +19 -0
- package/dist/analyze.js +311 -0
- package/dist/analyze.js.map +1 -0
- package/dist/apm-instrumentor.d.ts +119 -0
- package/dist/apm-instrumentor.js +225 -0
- package/dist/apm-instrumentor.js.map +1 -0
- package/dist/approval-model.d.ts +82 -0
- package/dist/approval-model.js +6 -0
- package/dist/approval-model.js.map +1 -0
- package/dist/approval-service.d.ts +39 -0
- package/dist/approval-service.js +236 -0
- package/dist/approval-service.js.map +1 -0
- package/dist/approval.d.ts +22 -0
- package/dist/approval.js +148 -0
- package/dist/approval.js.map +1 -0
- package/dist/audit-logging-model.d.ts +157 -0
- package/dist/audit-logging-model.js +6 -0
- package/dist/audit-logging-model.js.map +1 -0
- package/dist/audit-logging-service.d.ts +89 -0
- package/dist/audit-logging-service.js +367 -0
- package/dist/audit-logging-service.js.map +1 -0
- package/dist/audit-secrets.d.ts +42 -0
- package/dist/audit-secrets.js +126 -0
- package/dist/audit-secrets.js.map +1 -0
- package/dist/audit.d.ts +43 -0
- package/dist/audit.js +286 -0
- package/dist/audit.js.map +1 -0
- package/dist/author-dashboard.d.ts +84 -0
- package/dist/author-dashboard.js +204 -0
- package/dist/author-dashboard.js.map +1 -0
- package/dist/author-notifications.d.ts +130 -0
- package/dist/author-notifications.js +261 -0
- package/dist/author-notifications.js.map +1 -0
- package/dist/author-verification.d.ts +79 -0
- package/dist/author-verification.js +257 -0
- package/dist/author-verification.js.map +1 -0
- package/dist/autonomous-setup-model.d.ts +117 -0
- package/dist/autonomous-setup-model.js +6 -0
- package/dist/autonomous-setup-model.js.map +1 -0
- package/dist/autonomous-setup-service.d.ts +74 -0
- package/dist/autonomous-setup-service.js +325 -0
- package/dist/autonomous-setup-service.js.map +1 -0
- package/dist/badge-system.d.ts +70 -0
- package/dist/badge-system.js +210 -0
- package/dist/badge-system.js.map +1 -0
- package/dist/baseline.d.ts +34 -0
- package/dist/baseline.js +78 -0
- package/dist/baseline.js.map +1 -0
- package/dist/beta-program-service.d.ts +112 -0
- package/dist/beta-program-service.js +240 -0
- package/dist/beta-program-service.js.map +1 -0
- package/dist/budget.d.ts +34 -0
- package/dist/budget.js +159 -0
- package/dist/budget.js.map +1 -0
- package/dist/bumblebee.d.ts +143 -0
- package/dist/bumblebee.js +384 -0
- package/dist/bumblebee.js.map +1 -0
- package/dist/cache-manager.d.ts +97 -0
- package/dist/cache-manager.js +244 -0
- package/dist/cache-manager.js.map +1 -0
- package/dist/cdn-adapter.d.ts +64 -0
- package/dist/cdn-adapter.js +263 -0
- package/dist/cdn-adapter.js.map +1 -0
- package/dist/certification-workflow-model.d.ts +95 -0
- package/dist/certification-workflow-model.js +6 -0
- package/dist/certification-workflow-model.js.map +1 -0
- package/dist/certification-workflow-service.d.ts +72 -0
- package/dist/certification-workflow-service.js +305 -0
- package/dist/certification-workflow-service.js.map +1 -0
- package/dist/check-design.d.ts +38 -0
- package/dist/check-design.js +256 -0
- package/dist/check-design.js.map +1 -0
- package/dist/check-gitignore.d.ts +39 -0
- package/dist/check-gitignore.js +156 -0
- package/dist/check-gitignore.js.map +1 -0
- package/dist/check-hooks.d.ts +15 -0
- package/dist/check-hooks.js +72 -0
- package/dist/check-hooks.js.map +1 -0
- package/dist/check-lock.d.ts +16 -0
- package/dist/check-lock.js +94 -0
- package/dist/check-lock.js.map +1 -0
- package/dist/check-secrets.d.ts +11 -0
- package/dist/check-secrets.js +320 -0
- package/dist/check-secrets.js.map +1 -0
- package/dist/check-security.d.ts +13 -0
- package/dist/check-security.js +887 -0
- package/dist/check-security.js.map +1 -0
- package/dist/check-services.d.ts +10 -0
- package/dist/check-services.js +44 -0
- package/dist/check-services.js.map +1 -0
- package/dist/check-skills.d.ts +8 -0
- package/dist/check-skills.js +26 -0
- package/dist/check-skills.js.map +1 -0
- package/dist/check-tests.d.ts +43 -0
- package/dist/check-tests.js +175 -0
- package/dist/check-tests.js.map +1 -0
- package/dist/check-tools.d.ts +8 -0
- package/dist/check-tools.js +42 -0
- package/dist/check-tools.js.map +1 -0
- package/dist/check-web-search.d.ts +12 -0
- package/dist/check-web-search.js +168 -0
- package/dist/check-web-search.js.map +1 -0
- package/dist/ci-cd-publisher.d.ts +162 -0
- package/dist/ci-cd-publisher.js +319 -0
- package/dist/ci-cd-publisher.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +4074 -0
- package/dist/cli.js.map +1 -0
- package/dist/clone.d.ts +25 -0
- package/dist/clone.js +73 -0
- package/dist/clone.js.map +1 -0
- package/dist/completions.d.ts +8 -0
- package/dist/completions.js +250 -0
- package/dist/completions.js.map +1 -0
- package/dist/compression-manager.d.ts +107 -0
- package/dist/compression-manager.js +250 -0
- package/dist/compression-manager.js.map +1 -0
- package/dist/config.d.ts +233 -0
- package/dist/config.js +255 -0
- package/dist/config.js.map +1 -0
- package/dist/context.d.ts +38 -0
- package/dist/context.js +86 -0
- package/dist/context.js.map +1 -0
- package/dist/cost-monitor.d.ts +72 -0
- package/dist/cost-monitor.js +218 -0
- package/dist/cost-monitor.js.map +1 -0
- package/dist/create-plugin.d.ts +22 -0
- package/dist/create-plugin.js +266 -0
- package/dist/create-plugin.js.map +1 -0
- package/dist/database.d.ts +123 -0
- package/dist/database.js +354 -0
- package/dist/database.js.map +1 -0
- package/dist/datadog-adapter.d.ts +60 -0
- package/dist/datadog-adapter.js +245 -0
- package/dist/datadog-adapter.js.map +1 -0
- package/dist/doctor.d.ts +15 -0
- package/dist/doctor.js +131 -0
- package/dist/doctor.js.map +1 -0
- package/dist/documentation-generator.d.ts +226 -0
- package/dist/documentation-generator.js +348 -0
- package/dist/documentation-generator.js.map +1 -0
- package/dist/elevation-scopes.d.ts +40 -0
- package/dist/elevation-scopes.js +110 -0
- package/dist/elevation-scopes.js.map +1 -0
- package/dist/elevation.d.ts +102 -0
- package/dist/elevation.js +449 -0
- package/dist/elevation.js.map +1 -0
- package/dist/env-diff.d.ts +27 -0
- package/dist/env-diff.js +104 -0
- package/dist/env-diff.js.map +1 -0
- package/dist/env-inspect.d.ts +28 -0
- package/dist/env-inspect.js +81 -0
- package/dist/env-inspect.js.map +1 -0
- package/dist/env-switch.d.ts +37 -0
- package/dist/env-switch.js +102 -0
- package/dist/env-switch.js.map +1 -0
- package/dist/environment.d.ts +27 -0
- package/dist/environment.js +148 -0
- package/dist/environment.js.map +1 -0
- package/dist/error-tracker.d.ts +92 -0
- package/dist/error-tracker.js +206 -0
- package/dist/error-tracker.js.map +1 -0
- package/dist/escalate.d.ts +11 -0
- package/dist/escalate.js +73 -0
- package/dist/escalate.js.map +1 -0
- package/dist/event-stream.d.ts +81 -0
- package/dist/event-stream.js +161 -0
- package/dist/event-stream.js.map +1 -0
- package/dist/fix.d.ts +42 -0
- package/dist/fix.js +419 -0
- package/dist/fix.js.map +1 -0
- package/dist/governance-middleware.d.ts +22 -0
- package/dist/governance-middleware.js +173 -0
- package/dist/governance-middleware.js.map +1 -0
- package/dist/governance.d.ts +44 -0
- package/dist/governance.js +236 -0
- package/dist/governance.js.map +1 -0
- package/dist/hooks.d.ts +25 -0
- package/dist/hooks.js +281 -0
- package/dist/hooks.js.map +1 -0
- package/dist/id-generator.d.ts +43 -0
- package/dist/id-generator.js +47 -0
- package/dist/id-generator.js.map +1 -0
- package/dist/image-optimizer.d.ts +92 -0
- package/dist/image-optimizer.js +202 -0
- package/dist/image-optimizer.js.map +1 -0
- package/dist/install.d.ts +15 -0
- package/dist/install.js +59 -0
- package/dist/install.js.map +1 -0
- package/dist/lock.d.ts +82 -0
- package/dist/lock.js +264 -0
- package/dist/lock.js.map +1 -0
- package/dist/login.d.ts +23 -0
- package/dist/login.js +132 -0
- package/dist/login.js.map +1 -0
- package/dist/mcp-kit-tools-model.d.ts +195 -0
- package/dist/mcp-kit-tools-model.js +6 -0
- package/dist/mcp-kit-tools-model.js.map +1 -0
- package/dist/mcp-kit-tools-service.d.ts +127 -0
- package/dist/mcp-kit-tools-service.js +943 -0
- package/dist/mcp-kit-tools-service.js.map +1 -0
- package/dist/mcp-orchestrator.d.ts +70 -0
- package/dist/mcp-orchestrator.js +175 -0
- package/dist/mcp-orchestrator.js.map +1 -0
- package/dist/mcp-server.d.ts +3 -0
- package/dist/mcp-server.js +722 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/middleware/rate-limiter.d.ts +74 -0
- package/dist/middleware/rate-limiter.js +342 -0
- package/dist/middleware/rate-limiter.js.map +1 -0
- package/dist/migration-runner.d.ts +66 -0
- package/dist/migration-runner.js +192 -0
- package/dist/migration-runner.js.map +1 -0
- package/dist/migrations.d.ts +25 -0
- package/dist/migrations.js +530 -0
- package/dist/migrations.js.map +1 -0
- package/dist/moderation-system.d.ts +153 -0
- package/dist/moderation-system.js +338 -0
- package/dist/moderation-system.js.map +1 -0
- package/dist/multi-agent-workflow-model.d.ts +125 -0
- package/dist/multi-agent-workflow-model.js +6 -0
- package/dist/multi-agent-workflow-model.js.map +1 -0
- package/dist/multi-agent-workflow-service.d.ts +102 -0
- package/dist/multi-agent-workflow-service.js +452 -0
- package/dist/multi-agent-workflow-service.js.map +1 -0
- package/dist/onepassword.d.ts +75 -0
- package/dist/onepassword.js +140 -0
- package/dist/onepassword.js.map +1 -0
- package/dist/open.d.ts +30 -0
- package/dist/open.js +166 -0
- package/dist/open.js.map +1 -0
- package/dist/output.d.ts +32 -0
- package/dist/output.js +295 -0
- package/dist/output.js.map +1 -0
- package/dist/partner-service.d.ts +101 -0
- package/dist/partner-service.js +191 -0
- package/dist/partner-service.js.map +1 -0
- package/dist/payout-service.d.ts +136 -0
- package/dist/payout-service.js +293 -0
- package/dist/payout-service.js.map +1 -0
- package/dist/pkg.d.ts +30 -0
- package/dist/pkg.js +162 -0
- package/dist/pkg.js.map +1 -0
- package/dist/plugin-loader.d.ts +16 -0
- package/dist/plugin-loader.js +124 -0
- package/dist/plugin-loader.js.map +1 -0
- package/dist/plugin-registry-model.d.ts +133 -0
- package/dist/plugin-registry-model.js +6 -0
- package/dist/plugin-registry-model.js.map +1 -0
- package/dist/plugin-registry-service.d.ts +109 -0
- package/dist/plugin-registry-service.js +361 -0
- package/dist/plugin-registry-service.js.map +1 -0
- package/dist/plugin-registry.d.ts +58 -0
- package/dist/plugin-registry.js +108 -0
- package/dist/plugin-registry.js.map +1 -0
- package/dist/plugin-updates.d.ts +135 -0
- package/dist/plugin-updates.js +326 -0
- package/dist/plugin-updates.js.map +1 -0
- package/dist/plugins-cli.d.ts +7 -0
- package/dist/plugins-cli.js +157 -0
- package/dist/plugins-cli.js.map +1 -0
- package/dist/plugins.d.ts +88 -0
- package/dist/plugins.js +251 -0
- package/dist/plugins.js.map +1 -0
- package/dist/policy.d.ts +66 -0
- package/dist/policy.js +160 -0
- package/dist/policy.js.map +1 -0
- package/dist/post-pull-audit.d.ts +39 -0
- package/dist/post-pull-audit.js +151 -0
- package/dist/post-pull-audit.js.map +1 -0
- package/dist/provision.d.ts +17 -0
- package/dist/provision.js +147 -0
- package/dist/provision.js.map +1 -0
- package/dist/query-optimizer.d.ts +102 -0
- package/dist/query-optimizer.js +199 -0
- package/dist/query-optimizer.js.map +1 -0
- package/dist/read-only-mode.d.ts +46 -0
- package/dist/read-only-mode.js +71 -0
- package/dist/read-only-mode.js.map +1 -0
- package/dist/redis-adapter.d.ts +71 -0
- package/dist/redis-adapter.js +278 -0
- package/dist/redis-adapter.js.map +1 -0
- package/dist/resilience-tests.d.ts +120 -0
- package/dist/resilience-tests.js +293 -0
- package/dist/resilience-tests.js.map +1 -0
- package/dist/revocation.d.ts +22 -0
- package/dist/revocation.js +100 -0
- package/dist/revocation.js.map +1 -0
- package/dist/run.d.ts +21 -0
- package/dist/run.js +80 -0
- package/dist/run.js.map +1 -0
- package/dist/scan-build.d.ts +18 -0
- package/dist/scan-build.js +100 -0
- package/dist/scan-build.js.map +1 -0
- package/dist/scan-plaintext.d.ts +24 -0
- package/dist/scan-plaintext.js +147 -0
- package/dist/scan-plaintext.js.map +1 -0
- package/dist/scan-staged.d.ts +15 -0
- package/dist/scan-staged.js +70 -0
- package/dist/scan-staged.js.map +1 -0
- package/dist/scan-transcripts.d.ts +23 -0
- package/dist/scan-transcripts.js +93 -0
- package/dist/scan-transcripts.js.map +1 -0
- package/dist/secret-backends.d.ts +50 -0
- package/dist/secret-backends.js +510 -0
- package/dist/secret-backends.js.map +1 -0
- package/dist/secret-expiration.d.ts +46 -0
- package/dist/secret-expiration.js +172 -0
- package/dist/secret-expiration.js.map +1 -0
- package/dist/secrets-migrate.d.ts +75 -0
- package/dist/secrets-migrate.js +185 -0
- package/dist/secrets-migrate.js.map +1 -0
- package/dist/secrets-model.d.ts +77 -0
- package/dist/secrets-model.js +6 -0
- package/dist/secrets-model.js.map +1 -0
- package/dist/secrets-onecli.d.ts +65 -0
- package/dist/secrets-onecli.js +113 -0
- package/dist/secrets-onecli.js.map +1 -0
- package/dist/secrets-propagate.d.ts +48 -0
- package/dist/secrets-propagate.js +201 -0
- package/dist/secrets-propagate.js.map +1 -0
- package/dist/secrets-pull.d.ts +34 -0
- package/dist/secrets-pull.js +118 -0
- package/dist/secrets-pull.js.map +1 -0
- package/dist/secrets-purge-history.d.ts +53 -0
- package/dist/secrets-purge-history.js +144 -0
- package/dist/secrets-purge-history.js.map +1 -0
- package/dist/secrets-rotate-cli.d.ts +54 -0
- package/dist/secrets-rotate-cli.js +438 -0
- package/dist/secrets-rotate-cli.js.map +1 -0
- package/dist/secrets-rotate.d.ts +38 -0
- package/dist/secrets-rotate.js +65 -0
- package/dist/secrets-rotate.js.map +1 -0
- package/dist/secrets-service.d.ts +73 -0
- package/dist/secrets-service.js +283 -0
- package/dist/secrets-service.js.map +1 -0
- package/dist/secrets-set.d.ts +25 -0
- package/dist/secrets-set.js +33 -0
- package/dist/secrets-set.js.map +1 -0
- package/dist/secrets-sync.d.ts +21 -0
- package/dist/secrets-sync.js +215 -0
- package/dist/secrets-sync.js.map +1 -0
- package/dist/secrets-validate.d.ts +41 -0
- package/dist/secrets-validate.js +126 -0
- package/dist/secrets-validate.js.map +1 -0
- package/dist/secrets-vault-migrate.d.ts +71 -0
- package/dist/secrets-vault-migrate.js +258 -0
- package/dist/secrets-vault-migrate.js.map +1 -0
- package/dist/secrets.d.ts +16 -0
- package/dist/secrets.js +72 -0
- package/dist/secrets.js.map +1 -0
- package/dist/security-hardening.d.ts +150 -0
- package/dist/security-hardening.js +275 -0
- package/dist/security-hardening.js.map +1 -0
- package/dist/security-policy.d.ts +89 -0
- package/dist/security-policy.js +174 -0
- package/dist/security-policy.js.map +1 -0
- package/dist/security-prescan.d.ts +117 -0
- package/dist/security-prescan.js +566 -0
- package/dist/security-prescan.js.map +1 -0
- package/dist/sentry-adapter.d.ts +49 -0
- package/dist/sentry-adapter.js +227 -0
- package/dist/sentry-adapter.js.map +1 -0
- package/dist/service-adapter.d.ts +94 -0
- package/dist/service-adapter.js +162 -0
- package/dist/service-adapter.js.map +1 -0
- package/dist/skills.d.ts +13 -0
- package/dist/skills.js +17 -0
- package/dist/skills.js.map +1 -0
- package/dist/sla-monitor.d.ts +107 -0
- package/dist/sla-monitor.js +233 -0
- package/dist/sla-monitor.js.map +1 -0
- package/dist/stack-detector.d.ts +12 -0
- package/dist/stack-detector.js +251 -0
- package/dist/stack-detector.js.map +1 -0
- package/dist/team-model.d.ts +58 -0
- package/dist/team-model.js +83 -0
- package/dist/team-model.js.map +1 -0
- package/dist/team-service.d.ts +54 -0
- package/dist/team-service.js +206 -0
- package/dist/team-service.js.map +1 -0
- package/dist/toml-generator.d.ts +8 -0
- package/dist/toml-generator.js +223 -0
- package/dist/toml-generator.js.map +1 -0
- package/dist/triage-sandbox.d.ts +34 -0
- package/dist/triage-sandbox.js +167 -0
- package/dist/triage-sandbox.js.map +1 -0
- package/dist/triage.d.ts +30 -0
- package/dist/triage.js +79 -0
- package/dist/triage.js.map +1 -0
- package/dist/update-check.d.ts +13 -0
- package/dist/update-check.js +91 -0
- package/dist/update-check.js.map +1 -0
- package/dist/utils/colors.d.ts +14 -0
- package/dist/utils/colors.js +15 -0
- package/dist/utils/colors.js.map +1 -0
- package/dist/utils/didYouMean.d.ts +15 -0
- package/dist/utils/didYouMean.js +47 -0
- package/dist/utils/didYouMean.js.map +1 -0
- package/dist/utils/exec.d.ts +21 -0
- package/dist/utils/exec.js +23 -0
- package/dist/utils/exec.js.map +1 -0
- package/dist/utils/execFileNoThrow.d.ts +14 -0
- package/dist/utils/execFileNoThrow.js +29 -0
- package/dist/utils/execFileNoThrow.js.map +1 -0
- package/dist/utils/flags.d.ts +19 -0
- package/dist/utils/flags.js +36 -0
- package/dist/utils/flags.js.map +1 -0
- package/dist/utils/parseCommand.d.ts +16 -0
- package/dist/utils/parseCommand.js +13 -0
- package/dist/utils/parseCommand.js.map +1 -0
- package/dist/utils/prompt.d.ts +13 -0
- package/dist/utils/prompt.js +35 -0
- package/dist/utils/prompt.js.map +1 -0
- package/dist/utils/promptSelect.d.ts +19 -0
- package/dist/utils/promptSelect.js +89 -0
- package/dist/utils/promptSelect.js.map +1 -0
- package/dist/utils/redactSecrets.d.ts +24 -0
- package/dist/utils/redactSecrets.js +134 -0
- package/dist/utils/redactSecrets.js.map +1 -0
- package/dist/validation/dynamic-schema.d.ts +29 -0
- package/dist/validation/dynamic-schema.js +76 -0
- package/dist/validation/dynamic-schema.js.map +1 -0
- package/package.json +52 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized ID generation utility
|
|
3
|
+
* Consolidates Date.now() + random pattern used across services
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Generate unique ID with optional prefix
|
|
7
|
+
* Pattern: prefix + timestamp-randomString (max 255 chars)
|
|
8
|
+
*/
|
|
9
|
+
export function generateId(prefix = "") {
|
|
10
|
+
const id = `${prefix}${Date.now()}-${Math.random().toString(36).slice(2)}`;
|
|
11
|
+
return id.slice(0, 255);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Generate prefixed IDs for domain entities
|
|
15
|
+
*/
|
|
16
|
+
export const IdGenerators = {
|
|
17
|
+
partner: (suffix) => generateId(`partner-${suffix || ""}`),
|
|
18
|
+
agreement: (suffix) => generateId(`agree-${suffix || ""}`),
|
|
19
|
+
apiKey: (suffix) => generateId(`key-${suffix || ""}`),
|
|
20
|
+
coPlugin: (suffix) => generateId(`coplugin-${suffix || ""}`),
|
|
21
|
+
featured: (suffix) => generateId(`featured-${suffix || ""}`),
|
|
22
|
+
feedback: (suffix) => generateId(`feedback-${suffix || ""}`),
|
|
23
|
+
betaDev: (suffix) => generateId(`betadev-${suffix || ""}`),
|
|
24
|
+
refine: (suffix) => generateId(`refine-${suffix || ""}`),
|
|
25
|
+
payout: (suffix) => generateId(`payout-${suffix || ""}`),
|
|
26
|
+
grant: (suffix) => generateId(`grant-${suffix || ""}`),
|
|
27
|
+
approval: (suffix) => generateId(`approval-${suffix || ""}`),
|
|
28
|
+
alert: (suffix) => generateId(`alert-${suffix || ""}`),
|
|
29
|
+
trace: (suffix) => generateId(`trace-${suffix || ""}`),
|
|
30
|
+
span: (suffix) => generateId(`span-${suffix || ""}`),
|
|
31
|
+
notification: (suffix) => generateId(`notif-${suffix || ""}`),
|
|
32
|
+
publish: (suffix) => generateId(`pub-${suffix || ""}`),
|
|
33
|
+
documentation: (suffix) => generateId(`doc-${suffix || ""}`),
|
|
34
|
+
error: (suffix) => generateId(`error-${suffix || ""}`),
|
|
35
|
+
errorGroup: (suffix) => generateId(`group-${suffix || ""}`),
|
|
36
|
+
search: (suffix) => generateId(`search-${suffix || ""}`),
|
|
37
|
+
review: (suffix) => generateId(`review-${suffix || ""}`),
|
|
38
|
+
report: (suffix) => generateId(`report-${suffix || ""}`),
|
|
39
|
+
modAction: (suffix) => generateId(`action-${suffix || ""}`),
|
|
40
|
+
appeal: (suffix) => generateId(`appeal-${suffix || ""}`),
|
|
41
|
+
audit: (suffix) => generateId(`audit-${suffix || ""}`),
|
|
42
|
+
policy: (suffix) => generateId(`policy-${suffix || ""}`),
|
|
43
|
+
transaction: (suffix) => generateId(`txn-${suffix || ""}`),
|
|
44
|
+
sla: (suffix) => generateId(`sla-${suffix || ""}`),
|
|
45
|
+
breach: (suffix) => generateId(`breach-${suffix || ""}`),
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=id-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id-generator.js","sourceRoot":"","sources":["../src/id-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,SAAiB,EAAE;IAC5C,MAAM,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,OAAO,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,UAAU,CAAC,WAAW,MAAM,IAAI,EAAE,EAAE,CAAC;IACnE,SAAS,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,MAAM,IAAI,EAAE,EAAE,CAAC;IACnE,MAAM,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,MAAM,IAAI,EAAE,EAAE,CAAC;IAC9D,QAAQ,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,MAAM,IAAI,EAAE,EAAE,CAAC;IACrE,QAAQ,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,MAAM,IAAI,EAAE,EAAE,CAAC;IACrE,QAAQ,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,MAAM,IAAI,EAAE,EAAE,CAAC;IACrE,OAAO,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,UAAU,CAAC,WAAW,MAAM,IAAI,EAAE,EAAE,CAAC;IACnE,MAAM,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,MAAM,IAAI,EAAE,EAAE,CAAC;IACjE,MAAM,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,MAAM,IAAI,EAAE,EAAE,CAAC;IACjE,KAAK,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,MAAM,IAAI,EAAE,EAAE,CAAC;IAC/D,QAAQ,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,MAAM,IAAI,EAAE,EAAE,CAAC;IACrE,KAAK,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,MAAM,IAAI,EAAE,EAAE,CAAC;IAC/D,KAAK,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,MAAM,IAAI,EAAE,EAAE,CAAC;IAC/D,IAAI,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,MAAM,IAAI,EAAE,EAAE,CAAC;IAC7D,YAAY,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,MAAM,IAAI,EAAE,EAAE,CAAC;IACtE,OAAO,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,MAAM,IAAI,EAAE,EAAE,CAAC;IAC/D,aAAa,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,MAAM,IAAI,EAAE,EAAE,CAAC;IACrE,KAAK,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,MAAM,IAAI,EAAE,EAAE,CAAC;IAC/D,UAAU,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,MAAM,IAAI,EAAE,EAAE,CAAC;IACpE,MAAM,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,MAAM,IAAI,EAAE,EAAE,CAAC;IACjE,MAAM,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,MAAM,IAAI,EAAE,EAAE,CAAC;IACjE,MAAM,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,MAAM,IAAI,EAAE,EAAE,CAAC;IACjE,SAAS,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,MAAM,IAAI,EAAE,EAAE,CAAC;IACpE,MAAM,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,MAAM,IAAI,EAAE,EAAE,CAAC;IACjE,KAAK,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,MAAM,IAAI,EAAE,EAAE,CAAC;IAC/D,MAAM,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,MAAM,IAAI,EAAE,EAAE,CAAC;IACjE,WAAW,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,MAAM,IAAI,EAAE,EAAE,CAAC;IACnE,GAAG,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,MAAM,IAAI,EAAE,EAAE,CAAC;IAC3D,MAAM,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,MAAM,IAAI,EAAE,EAAE,CAAC;CAClE,CAAC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
export interface ImageMetadata {
|
|
2
|
+
filename: string;
|
|
3
|
+
originalSize: number;
|
|
4
|
+
optimizedSize: number;
|
|
5
|
+
width: number;
|
|
6
|
+
height: number;
|
|
7
|
+
format: "jpeg" | "png" | "webp" | "avif";
|
|
8
|
+
quality: number;
|
|
9
|
+
compressionRatio: number;
|
|
10
|
+
}
|
|
11
|
+
export interface OptimizationProfile {
|
|
12
|
+
name: string;
|
|
13
|
+
maxWidth: number;
|
|
14
|
+
maxHeight: number;
|
|
15
|
+
quality: number;
|
|
16
|
+
format: string;
|
|
17
|
+
}
|
|
18
|
+
export interface ResponsiveVariant {
|
|
19
|
+
width: number;
|
|
20
|
+
height: number;
|
|
21
|
+
url: string;
|
|
22
|
+
size: number;
|
|
23
|
+
}
|
|
24
|
+
export declare class ImageOptimizer {
|
|
25
|
+
private optimizationStats;
|
|
26
|
+
private profiles;
|
|
27
|
+
private thumbnailCache;
|
|
28
|
+
/**
|
|
29
|
+
* Create optimization profile.
|
|
30
|
+
*/
|
|
31
|
+
createProfile(profile: OptimizationProfile): void;
|
|
32
|
+
/**
|
|
33
|
+
* Get optimization profile.
|
|
34
|
+
*/
|
|
35
|
+
getProfile(profileName: string): OptimizationProfile | null;
|
|
36
|
+
/**
|
|
37
|
+
* Get all profiles.
|
|
38
|
+
*/
|
|
39
|
+
getAllProfiles(): OptimizationProfile[];
|
|
40
|
+
/**
|
|
41
|
+
* Delete profile.
|
|
42
|
+
*/
|
|
43
|
+
deleteProfile(profileName: string): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Optimize image.
|
|
46
|
+
*/
|
|
47
|
+
optimizeImage(filename: string, originalSize: number, width: number, height: number, profile: OptimizationProfile): ImageMetadata;
|
|
48
|
+
/**
|
|
49
|
+
* Generate responsive image variants.
|
|
50
|
+
*/
|
|
51
|
+
generateResponsiveVariants(filename: string, baseUrl: string, widths?: number[]): ResponsiveVariant[];
|
|
52
|
+
/**
|
|
53
|
+
* Get responsive variants for image.
|
|
54
|
+
*/
|
|
55
|
+
getResponsiveVariants(filename: string): ResponsiveVariant[];
|
|
56
|
+
/**
|
|
57
|
+
* Generate lazy loading markup.
|
|
58
|
+
*/
|
|
59
|
+
generateLazyLoadMarkup(filename: string, baseUrl: string, alt: string): string;
|
|
60
|
+
/**
|
|
61
|
+
* Generate picture element with srcset.
|
|
62
|
+
*/
|
|
63
|
+
generatePictureElement(filename: string, baseUrl: string, alt: string): string;
|
|
64
|
+
/**
|
|
65
|
+
* Recommend best format for image.
|
|
66
|
+
*/
|
|
67
|
+
recommendFormat(originalFormat: string, targetQuality: number): "webp" | "avif" | "jpeg" | "png";
|
|
68
|
+
/**
|
|
69
|
+
* Check if format supports transparency.
|
|
70
|
+
*/
|
|
71
|
+
supportsTransparency(format: string): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Get optimization statistics.
|
|
74
|
+
*/
|
|
75
|
+
getOptimizationStats(): {
|
|
76
|
+
totalImages: number;
|
|
77
|
+
totalOriginalSize: number;
|
|
78
|
+
totalOptimizedSize: number;
|
|
79
|
+
averageCompressionRatio: number;
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* Get metadata for image.
|
|
83
|
+
*/
|
|
84
|
+
getImageMetadata(filename: string): ImageMetadata | null;
|
|
85
|
+
/**
|
|
86
|
+
* Get all optimized images.
|
|
87
|
+
*/
|
|
88
|
+
getAllOptimizedImages(): ImageMetadata[];
|
|
89
|
+
getOptimizationCache(): Map<string, ImageMetadata>;
|
|
90
|
+
getProfilesCache(): Map<string, OptimizationProfile>;
|
|
91
|
+
getThumbnailCache(): Map<string, ResponsiveVariant[]>;
|
|
92
|
+
}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
// ─── Types ────────────────────────────────────────────────────────────────────
|
|
2
|
+
// ─── ImageOptimizer ───────────────────────────────────────────────────────────
|
|
3
|
+
export class ImageOptimizer {
|
|
4
|
+
optimizationStats = new Map();
|
|
5
|
+
profiles = new Map();
|
|
6
|
+
thumbnailCache = new Map();
|
|
7
|
+
// ─── Optimization Profiles ────────────────────────────────────────────────
|
|
8
|
+
/**
|
|
9
|
+
* Create optimization profile.
|
|
10
|
+
*/
|
|
11
|
+
createProfile(profile) {
|
|
12
|
+
this.profiles.set(profile.name, profile);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Get optimization profile.
|
|
16
|
+
*/
|
|
17
|
+
getProfile(profileName) {
|
|
18
|
+
return this.profiles.get(profileName) || null;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Get all profiles.
|
|
22
|
+
*/
|
|
23
|
+
getAllProfiles() {
|
|
24
|
+
return [...this.profiles.values()];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Delete profile.
|
|
28
|
+
*/
|
|
29
|
+
deleteProfile(profileName) {
|
|
30
|
+
return this.profiles.delete(profileName);
|
|
31
|
+
}
|
|
32
|
+
// ─── Image Optimization ───────────────────────────────────────────────────
|
|
33
|
+
/**
|
|
34
|
+
* Optimize image.
|
|
35
|
+
*/
|
|
36
|
+
optimizeImage(filename, originalSize, width, height, profile) {
|
|
37
|
+
// Calculate new dimensions based on profile
|
|
38
|
+
let newWidth = width;
|
|
39
|
+
let newHeight = height;
|
|
40
|
+
if (width > profile.maxWidth) {
|
|
41
|
+
const ratio = profile.maxWidth / width;
|
|
42
|
+
newWidth = profile.maxWidth;
|
|
43
|
+
newHeight = Math.round(height * ratio);
|
|
44
|
+
}
|
|
45
|
+
if (newHeight > profile.maxHeight) {
|
|
46
|
+
const ratio = profile.maxHeight / newHeight;
|
|
47
|
+
newHeight = profile.maxHeight;
|
|
48
|
+
newWidth = Math.round(newWidth * ratio);
|
|
49
|
+
}
|
|
50
|
+
// Estimate optimized size based on compression
|
|
51
|
+
const optimizedSize = Math.round(originalSize * (0.5 + (profile.quality / 100) * 0.5));
|
|
52
|
+
const metadata = {
|
|
53
|
+
filename,
|
|
54
|
+
originalSize,
|
|
55
|
+
optimizedSize,
|
|
56
|
+
width: newWidth,
|
|
57
|
+
height: newHeight,
|
|
58
|
+
format: (profile.format || "webp"),
|
|
59
|
+
quality: profile.quality,
|
|
60
|
+
compressionRatio: Math.round((1 - optimizedSize / originalSize) * 100),
|
|
61
|
+
};
|
|
62
|
+
this.optimizationStats.set(filename, metadata);
|
|
63
|
+
return metadata;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Generate responsive image variants.
|
|
67
|
+
*/
|
|
68
|
+
generateResponsiveVariants(filename, baseUrl, widths = [320, 640, 1024]) {
|
|
69
|
+
const variants = [];
|
|
70
|
+
const cached = this.thumbnailCache.get(filename);
|
|
71
|
+
if (cached) {
|
|
72
|
+
return cached;
|
|
73
|
+
}
|
|
74
|
+
for (const width of widths) {
|
|
75
|
+
const variant = {
|
|
76
|
+
width,
|
|
77
|
+
height: Math.round((width / 16) * 9), // 16:9 aspect ratio
|
|
78
|
+
url: `${baseUrl}/${filename}?w=${width}`,
|
|
79
|
+
size: Math.round(50 * (width / 320)), // Rough size estimate
|
|
80
|
+
};
|
|
81
|
+
variants.push(variant);
|
|
82
|
+
}
|
|
83
|
+
this.thumbnailCache.set(filename, variants);
|
|
84
|
+
return variants;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Get responsive variants for image.
|
|
88
|
+
*/
|
|
89
|
+
getResponsiveVariants(filename) {
|
|
90
|
+
return this.thumbnailCache.get(filename) || [];
|
|
91
|
+
}
|
|
92
|
+
// ─── Lazy Loading ────────────────────────────────────────────────────────
|
|
93
|
+
/**
|
|
94
|
+
* Generate lazy loading markup.
|
|
95
|
+
*/
|
|
96
|
+
generateLazyLoadMarkup(filename, baseUrl, alt) {
|
|
97
|
+
const metadata = this.optimizationStats.get(filename);
|
|
98
|
+
if (!metadata)
|
|
99
|
+
return "";
|
|
100
|
+
const placeholderUrl = `${baseUrl}/${filename}?w=20&blur=5`;
|
|
101
|
+
const mainUrl = `${baseUrl}/${filename}`;
|
|
102
|
+
return `
|
|
103
|
+
<img
|
|
104
|
+
src="${placeholderUrl}"
|
|
105
|
+
alt="${alt}"
|
|
106
|
+
width="${metadata.width}"
|
|
107
|
+
height="${metadata.height}"
|
|
108
|
+
loading="lazy"
|
|
109
|
+
data-src="${mainUrl}"
|
|
110
|
+
class="lazy-image"
|
|
111
|
+
/>`.trim();
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Generate picture element with srcset.
|
|
115
|
+
*/
|
|
116
|
+
generatePictureElement(filename, baseUrl, alt) {
|
|
117
|
+
const variants = this.getResponsiveVariants(filename);
|
|
118
|
+
const metadata = this.optimizationStats.get(filename);
|
|
119
|
+
if (!metadata || variants.length === 0)
|
|
120
|
+
return "";
|
|
121
|
+
const srcset = variants
|
|
122
|
+
.map((v) => `${v.url} ${v.width}w`)
|
|
123
|
+
.join(", ");
|
|
124
|
+
return `
|
|
125
|
+
<picture>
|
|
126
|
+
<source srcset="${srcset}" type="image/webp" />
|
|
127
|
+
<img
|
|
128
|
+
src="${baseUrl}/${filename}"
|
|
129
|
+
alt="${alt}"
|
|
130
|
+
width="${metadata.width}"
|
|
131
|
+
height="${metadata.height}"
|
|
132
|
+
loading="lazy"
|
|
133
|
+
/>
|
|
134
|
+
</picture>`.trim();
|
|
135
|
+
}
|
|
136
|
+
// ─── Format Conversion ─────────────────────────────────────────────────────
|
|
137
|
+
/**
|
|
138
|
+
* Recommend best format for image.
|
|
139
|
+
*/
|
|
140
|
+
recommendFormat(originalFormat, targetQuality) {
|
|
141
|
+
// AVIF: better compression, newer format (highest quality first)
|
|
142
|
+
if (targetQuality >= 90)
|
|
143
|
+
return "avif";
|
|
144
|
+
// WebP: good compression, broad support
|
|
145
|
+
if (targetQuality >= 75)
|
|
146
|
+
return "webp";
|
|
147
|
+
// JPEG: legacy support, good quality
|
|
148
|
+
if (originalFormat === "jpeg")
|
|
149
|
+
return "jpeg";
|
|
150
|
+
return "webp";
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Check if format supports transparency.
|
|
154
|
+
*/
|
|
155
|
+
supportsTransparency(format) {
|
|
156
|
+
return ["png", "webp", "avif"].includes(format.toLowerCase());
|
|
157
|
+
}
|
|
158
|
+
// ─── Statistics ────────────────────────────────────────────────────────────
|
|
159
|
+
/**
|
|
160
|
+
* Get optimization statistics.
|
|
161
|
+
*/
|
|
162
|
+
getOptimizationStats() {
|
|
163
|
+
let totalOriginal = 0;
|
|
164
|
+
let totalOptimized = 0;
|
|
165
|
+
for (const meta of this.optimizationStats.values()) {
|
|
166
|
+
totalOriginal += meta.originalSize;
|
|
167
|
+
totalOptimized += meta.optimizedSize;
|
|
168
|
+
}
|
|
169
|
+
const avgCompressionRatio = this.optimizationStats.size > 0
|
|
170
|
+
? Math.round(((totalOriginal - totalOptimized) / totalOriginal) * 100)
|
|
171
|
+
: 0;
|
|
172
|
+
return {
|
|
173
|
+
totalImages: this.optimizationStats.size,
|
|
174
|
+
totalOriginalSize: totalOriginal,
|
|
175
|
+
totalOptimizedSize: totalOptimized,
|
|
176
|
+
averageCompressionRatio: avgCompressionRatio,
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Get metadata for image.
|
|
181
|
+
*/
|
|
182
|
+
getImageMetadata(filename) {
|
|
183
|
+
return this.optimizationStats.get(filename) || null;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Get all optimized images.
|
|
187
|
+
*/
|
|
188
|
+
getAllOptimizedImages() {
|
|
189
|
+
return [...this.optimizationStats.values()];
|
|
190
|
+
}
|
|
191
|
+
// ─── Cache helpers ────────────────────────────────────────────────────────
|
|
192
|
+
getOptimizationCache() {
|
|
193
|
+
return this.optimizationStats;
|
|
194
|
+
}
|
|
195
|
+
getProfilesCache() {
|
|
196
|
+
return this.profiles;
|
|
197
|
+
}
|
|
198
|
+
getThumbnailCache() {
|
|
199
|
+
return this.thumbnailCache;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=image-optimizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-optimizer.js","sourceRoot":"","sources":["../src/image-optimizer.ts"],"names":[],"mappings":"AAAA,iFAAiF;AA4BjF,iFAAiF;AAEjF,MAAM,OAAO,cAAc;IACjB,iBAAiB,GAA+B,IAAI,GAAG,EAAE,CAAC;IAC1D,QAAQ,GAAqC,IAAI,GAAG,EAAE,CAAC;IACvD,cAAc,GAAqC,IAAI,GAAG,EAAE,CAAC;IAErE,6EAA6E;IAE7E;;OAEG;IACH,aAAa,CAAC,OAA4B;QACxC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,WAAmB;QAC5B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,WAAmB;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;IAED,6EAA6E;IAE7E;;OAEG;IACH,aAAa,CACX,QAAgB,EAChB,YAAoB,EACpB,KAAa,EACb,MAAc,EACd,OAA4B;QAE5B,4CAA4C;QAC5C,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,SAAS,GAAG,MAAM,CAAC;QAEvB,IAAI,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;YACvC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;YAC5B,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;YAC5C,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;YAC9B,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;QAC1C,CAAC;QAED,+CAA+C;QAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAEvF,MAAM,QAAQ,GAAkB;YAC9B,QAAQ;YACR,YAAY;YACZ,aAAa;YACb,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAqC;YACtE,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,aAAa,GAAG,YAAY,CAAC,GAAG,GAAG,CAAC;SACvE,CAAC;QAEF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC/C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,0BAA0B,CACxB,QAAgB,EAChB,OAAe,EACf,SAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC;QAEnC,MAAM,QAAQ,GAAwB,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEjD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAsB;gBACjC,KAAK;gBACL,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,oBAAoB;gBAC1D,GAAG,EAAE,GAAG,OAAO,IAAI,QAAQ,MAAM,KAAK,EAAE;gBACxC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,EAAE,sBAAsB;aAC7D,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC5C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,QAAgB;QACpC,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACjD,CAAC;IAED,4EAA4E;IAE5E;;OAEG;IACH,sBAAsB,CACpB,QAAgB,EAChB,OAAe,EACf,GAAW;QAEX,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QAEzB,MAAM,cAAc,GAAG,GAAG,OAAO,IAAI,QAAQ,cAAc,CAAC;QAC5D,MAAM,OAAO,GAAG,GAAG,OAAO,IAAI,QAAQ,EAAE,CAAC;QAEzC,OAAO;;SAEF,cAAc;SACd,GAAG;WACD,QAAQ,CAAC,KAAK;YACb,QAAQ,CAAC,MAAM;;cAEb,OAAO;;GAElB,CAAC,IAAI,EAAE,CAAC;IACT,CAAC;IAED;;OAEG;IACH,sBAAsB,CACpB,QAAgB,EAChB,OAAe,EACf,GAAW;QAEX,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEtD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAElD,MAAM,MAAM,GAAG,QAAQ;aACpB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC;aAClC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO;;oBAES,MAAM;;WAEf,OAAO,IAAI,QAAQ;WACnB,GAAG;aACD,QAAQ,CAAC,KAAK;cACb,QAAQ,CAAC,MAAM;;;WAGlB,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC;IAED,8EAA8E;IAE9E;;OAEG;IACH,eAAe,CACb,cAAsB,EACtB,aAAqB;QAErB,iEAAiE;QACjE,IAAI,aAAa,IAAI,EAAE;YAAE,OAAO,MAAM,CAAC;QACvC,wCAAwC;QACxC,IAAI,aAAa,IAAI,EAAE;YAAE,OAAO,MAAM,CAAC;QACvC,qCAAqC;QACrC,IAAI,cAAc,KAAK,MAAM;YAAE,OAAO,MAAM,CAAC;QAC7C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,MAAc;QACjC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,8EAA8E;IAE9E;;OAEG;IACH,oBAAoB;QAMlB,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,cAAc,GAAG,CAAC,CAAC;QAEvB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC;YACnD,aAAa,IAAI,IAAI,CAAC,YAAY,CAAC;YACnC,cAAc,IAAI,IAAI,CAAC,aAAa,CAAC;QACvC,CAAC;QAED,MAAM,mBAAmB,GACvB,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC;YAC7B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,GAAG,cAAc,CAAC,GAAG,aAAa,CAAC,GAAG,GAAG,CAAC;YACtE,CAAC,CAAC,CAAC,CAAC;QAER,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI;YACxC,iBAAiB,EAAE,aAAa;YAChC,kBAAkB,EAAE,cAAc;YAClC,uBAAuB,EAAE,mBAAmB;SAC7C,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,QAAgB;QAC/B,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,qBAAqB;QACnB,OAAO,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,6EAA6E;IAE7E,oBAAoB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ToolConfig } from "./config.js";
|
|
2
|
+
import { type ToolStatus } from "./check-tools.js";
|
|
3
|
+
export interface InstallResult {
|
|
4
|
+
name: string;
|
|
5
|
+
action: "installed" | "already_ok" | "failed";
|
|
6
|
+
detail: string;
|
|
7
|
+
}
|
|
8
|
+
export interface InstallDeps {
|
|
9
|
+
checkTools: (tools: ToolConfig) => Promise<ToolStatus[]>;
|
|
10
|
+
miseInstall: (tool: string, version: string) => Promise<{
|
|
11
|
+
ok: boolean;
|
|
12
|
+
detail: string;
|
|
13
|
+
}>;
|
|
14
|
+
}
|
|
15
|
+
export declare function installTools(tools: ToolConfig, deps?: InstallDeps): Promise<InstallResult[]>;
|
package/dist/install.js
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { checkTools } from "./check-tools.js";
|
|
2
|
+
import { exec } from "./utils/exec.js";
|
|
3
|
+
async function miseInstall(tool, version) {
|
|
4
|
+
const versionArg = version === "latest" ? "latest" : version;
|
|
5
|
+
try {
|
|
6
|
+
await exec("mise", ["install", `${tool}@${versionArg}`], {
|
|
7
|
+
timeout: 120_000,
|
|
8
|
+
env: { ...process.env },
|
|
9
|
+
});
|
|
10
|
+
// Activate the tool in the current project
|
|
11
|
+
await exec("mise", ["use", `${tool}@${versionArg}`], {
|
|
12
|
+
timeout: 30_000,
|
|
13
|
+
env: { ...process.env },
|
|
14
|
+
});
|
|
15
|
+
return { ok: true, detail: `Installed ${tool}@${versionArg} via mise` };
|
|
16
|
+
}
|
|
17
|
+
catch (err) {
|
|
18
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
19
|
+
return { ok: false, detail: message.split("\n")[0] };
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
const defaultDeps = { checkTools, miseInstall };
|
|
23
|
+
export async function installTools(tools, deps = defaultDeps) {
|
|
24
|
+
const statuses = await deps.checkTools(tools);
|
|
25
|
+
const results = [];
|
|
26
|
+
for (const status of statuses) {
|
|
27
|
+
if (status.ok) {
|
|
28
|
+
results.push({
|
|
29
|
+
name: status.name,
|
|
30
|
+
action: "already_ok",
|
|
31
|
+
detail: `${status.installed} satisfies ${status.required}`,
|
|
32
|
+
});
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
const { ok, detail } = await deps.miseInstall(status.name, status.required);
|
|
36
|
+
if (!ok) {
|
|
37
|
+
results.push({ name: status.name, action: "failed", detail });
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
// Re-check that installed version satisfies requirement
|
|
41
|
+
const [verified] = await deps.checkTools({ [status.name]: status.required });
|
|
42
|
+
if (verified.ok) {
|
|
43
|
+
results.push({
|
|
44
|
+
name: status.name,
|
|
45
|
+
action: "installed",
|
|
46
|
+
detail: `${verified.installed} satisfies ${status.required}`,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
results.push({
|
|
51
|
+
name: status.name,
|
|
52
|
+
action: "failed",
|
|
53
|
+
detail: `Installed ${verified.installed ?? "unknown"} but need ${status.required}`,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return results;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
|
package/dist/lock.d.ts
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lock file management for kit
|
|
3
|
+
* Tracks exact versions of skills and CLI tools
|
|
4
|
+
*/
|
|
5
|
+
export interface SkillsLock {
|
|
6
|
+
version: number;
|
|
7
|
+
kit?: string;
|
|
8
|
+
skills: Record<string, SkillLockEntry>;
|
|
9
|
+
}
|
|
10
|
+
export interface SkillLockEntry {
|
|
11
|
+
source: string;
|
|
12
|
+
sourceType: "clawhub" | "github" | "github-private" | "local";
|
|
13
|
+
computedHash: string;
|
|
14
|
+
auth?: string;
|
|
15
|
+
installedAt: string;
|
|
16
|
+
}
|
|
17
|
+
export interface CliLock {
|
|
18
|
+
version: number;
|
|
19
|
+
tools: Record<string, CliLockEntry>;
|
|
20
|
+
}
|
|
21
|
+
export interface CliLockEntry {
|
|
22
|
+
version: string;
|
|
23
|
+
source: "mise" | "npm" | "pip" | "manual";
|
|
24
|
+
auth?: string;
|
|
25
|
+
installedAt: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* kit metadata - identifies which kit this project uses
|
|
29
|
+
*/
|
|
30
|
+
export interface kitMeta {
|
|
31
|
+
name: string;
|
|
32
|
+
version: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Read skills lock file
|
|
36
|
+
*/
|
|
37
|
+
export declare function readSkillsLock(): Promise<SkillsLock | null>;
|
|
38
|
+
/**
|
|
39
|
+
* Write skills lock file
|
|
40
|
+
*/
|
|
41
|
+
export declare function writeSkillsLock(lock: SkillsLock): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Read CLI lock file
|
|
44
|
+
*/
|
|
45
|
+
export declare function readCliLock(): Promise<CliLock | null>;
|
|
46
|
+
/**
|
|
47
|
+
* Write CLI lock file
|
|
48
|
+
*/
|
|
49
|
+
export declare function writeCliLock(lock: CliLock): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Read kit metadata file
|
|
52
|
+
*/
|
|
53
|
+
export declare function readkitMeta(): Promise<kitMeta | null>;
|
|
54
|
+
/**
|
|
55
|
+
* Write kit metadata file
|
|
56
|
+
*/
|
|
57
|
+
export declare function writekitMeta(meta: kitMeta): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Update skills lock with installed skills
|
|
60
|
+
* Accepts version strings and converts to hash-based format
|
|
61
|
+
*/
|
|
62
|
+
export declare function updateSkillsLock(skills: Record<string, string>, kit?: string): Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* Update CLI lock with installed tools
|
|
65
|
+
*/
|
|
66
|
+
export declare function updateCliLock(tools: Record<string, {
|
|
67
|
+
version: string;
|
|
68
|
+
source: CliLockEntry["source"];
|
|
69
|
+
auth?: string;
|
|
70
|
+
}>): Promise<void>;
|
|
71
|
+
/**
|
|
72
|
+
* Check if lock files are in sync with config
|
|
73
|
+
*/
|
|
74
|
+
export interface LockStatus {
|
|
75
|
+
skillsLockExists: boolean;
|
|
76
|
+
cliLockExists: boolean;
|
|
77
|
+
skillsInSync: boolean;
|
|
78
|
+
cliInSync: boolean;
|
|
79
|
+
missingSkills: string[];
|
|
80
|
+
missingTools: string[];
|
|
81
|
+
}
|
|
82
|
+
export declare function checkLockStatus(configSkills: Record<string, string>, configTools: Record<string, string>): Promise<LockStatus>;
|