claude-flow-novice 2.3.5 → 2.3.6
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/dist/src/booster/performance-benchmark.js +1 -1
- package/dist/src/booster/wasm-demo.js +1 -1
- package/dist/src/cli/command-registry.js +2 -2
- package/dist/src/cli/help-formatter.js +137 -109
- package/dist/src/cli/simple-cli.js +2528 -2121
- package/dist/src/cli/simple-commands/sparc/refinement.js +3 -3
- package/dist/src/cli/validation-helper.js +98 -49
- package/dist/src/commands/suggest-templates.js +4 -4
- package/dist/src/core/version.js +23 -15
- package/dist/src/memory/swarm-memory.js +603 -470
- package/dist/src/slash-commands/fullstack.js +2 -2
- package/dist/src/slash-commands/parse-epic.js +1 -1
- package/package.json +1 -1
- package/scripts/postinstall.js +40 -6
- package/dist/scripts/.claude-flow/metrics/agent-metrics.json +0 -1
- package/dist/scripts/.claude-flow/metrics/performance.json +0 -9
- package/dist/scripts/.claude-flow/metrics/task-metrics.json +0 -10
- package/dist/scripts/CLEANUP_OPTIMIZATION_REPORT.json +0 -312
- package/dist/scripts/CLEANUP_PERFORMANCE_OPTIMIZATION.md +0 -387
- package/dist/scripts/CLEANUP_QUICK_START.md +0 -268
- package/dist/scripts/CLEANUP_TEST_RESULTS.md +0 -205
- package/dist/scripts/README.md +0 -339
- package/dist/scripts/ace-query.sh +0 -384
- package/dist/scripts/agent-token-analysis.js +0 -430
- package/dist/scripts/auto-setup.js +0 -332
- package/dist/scripts/build/README.md +0 -167
- package/dist/scripts/build/build-config.js +0 -27
- package/dist/scripts/build/build-prompt-copier.sh +0 -30
- package/dist/scripts/build/performance-monitor.js +0 -869
- package/dist/scripts/build/prepare-publish.js +0 -150
- package/dist/scripts/build/typescript-fixer.js +0 -621
- package/dist/scripts/build/unified-builder.sh +0 -428
- package/dist/scripts/build/update-bin-version.js +0 -32
- package/dist/scripts/build/validate-agents.js +0 -238
- package/dist/scripts/build-index.js +0 -43
- package/dist/scripts/build-orchestrator.js +0 -320
- package/dist/scripts/check-routing-stats.cjs +0 -122
- package/dist/scripts/ci-validation.js +0 -375
- package/dist/scripts/cleanup-blocking-coordination.sh +0 -420
- package/dist/scripts/cleanup-idle-sessions.sh +0 -118
- package/dist/scripts/collect-build-metrics.js +0 -65
- package/dist/scripts/demo/README.md +0 -79
- package/dist/scripts/demo/autoscaling-demo-simplified.js +0 -963
- package/dist/scripts/demo/comprehensive-dashboard-test.js +0 -693
- package/dist/scripts/demo/confidence-log.js +0 -87
- package/dist/scripts/demo/confidence-report.js +0 -82
- package/dist/scripts/demo/demo-multi-swarm-coordination.js +0 -325
- package/dist/scripts/demo/demo-production-deployment.js +0 -399
- package/dist/scripts/demo/demo-visualization-system.js +0 -149
- package/dist/scripts/demo/performance-analysis.cjs +0 -71
- package/dist/scripts/demo/performance-analysis.js +0 -71
- package/dist/scripts/demo/test-autoscaling-demo.js +0 -314
- package/dist/scripts/dependency-optimizer.js +0 -349
- package/dist/scripts/dependency-security-assessment.js +0 -331
- package/dist/scripts/deploy-sdk.sh +0 -176
- package/dist/scripts/deployment-readiness-report.json +0 -179
- package/dist/scripts/dev/README.md +0 -264
- package/dist/scripts/dev/claude-flow-wrapper.sh +0 -35
- package/dist/scripts/dev/claude-monitor.py +0 -419
- package/dist/scripts/dev/claude-sparc.sh +0 -562
- package/dist/scripts/dev/claude-wrapper.sh +0 -17
- package/dist/scripts/dev/demo-phase3-compliance.js +0 -172
- package/dist/scripts/dev/demo-task-system.ts +0 -224
- package/dist/scripts/dev/deployment-validator.js +0 -315
- package/dist/scripts/dev/spawn-claude-terminal.sh +0 -32
- package/dist/scripts/dev/start-portal.sh +0 -506
- package/dist/scripts/dev/start-web-ui.js +0 -15
- package/dist/scripts/dev/stop-portal.sh +0 -311
- package/dist/scripts/dev/validate-examples.ts +0 -288
- package/dist/scripts/dev/validate-phase2.cjs +0 -451
- package/dist/scripts/dev/validate-phase2.js +0 -785
- package/dist/scripts/dev/validate-phase3.cjs +0 -208
- package/dist/scripts/dev/validate-security-remediation.js +0 -1
- package/dist/scripts/ecosystem.config.cjs +0 -90
- package/dist/scripts/enhanced-memory-spiral-killer.sh +0 -221
- package/dist/scripts/fix-js-extensions.js +0 -167
- package/dist/scripts/generate-basic-types.js +0 -73
- package/dist/scripts/generate-changelog.js +0 -318
- package/dist/scripts/git-hooks/pre-commit.sh +0 -143
- package/dist/scripts/health-checks.js +0 -634
- package/dist/scripts/hook-wrapper.sh +0 -54
- package/dist/scripts/install/README.md +0 -375
- package/dist/scripts/install/REDIS_SETUP_VALIDATION.json +0 -245
- package/dist/scripts/install/check-prerequisites.js +0 -303
- package/dist/scripts/install/config-wizard.js +0 -606
- package/dist/scripts/install/dependency-checker.js +0 -385
- package/dist/scripts/install/health-check.js +0 -765
- package/dist/scripts/install/install.js +0 -256
- package/dist/scripts/install/installation-benchmark.js +0 -461
- package/dist/scripts/install/quick-install.js +0 -720
- package/dist/scripts/install/quick-start-wizard.js +0 -295
- package/dist/scripts/install/redis-cli.js +0 -289
- package/dist/scripts/install/redis-install-guides.md +0 -407
- package/dist/scripts/install/redis-setup.js +0 -559
- package/dist/scripts/install/redis-test.js +0 -278
- package/dist/scripts/install/service-manager.js +0 -672
- package/dist/scripts/install/setup.js +0 -832
- package/dist/scripts/install/uninstall.js +0 -526
- package/dist/scripts/install/update.js +0 -461
- package/dist/scripts/install-pre-commit-hook.sh +0 -127
- package/dist/scripts/legacy/README.md +0 -272
- package/dist/scripts/legacy/batch-fix-ts.sh +0 -54
- package/dist/scripts/legacy/build-migration.sh +0 -105
- package/dist/scripts/legacy/build-monitor.js +0 -209
- package/dist/scripts/legacy/build-with-filter.sh +0 -84
- package/dist/scripts/legacy/build-workaround.sh +0 -71
- package/dist/scripts/legacy/fix-ts-advanced.js +0 -358
- package/dist/scripts/legacy/fix-ts-final.sh +0 -50
- package/dist/scripts/legacy/fix-ts-targeted.sh +0 -49
- package/dist/scripts/legacy/fix-typescript-errors.js +0 -305
- package/dist/scripts/legacy/force-build.sh +0 -63
- package/dist/scripts/legacy/optimize-performance.js +0 -400
- package/dist/scripts/legacy/performance-monitor.js +0 -263
- package/dist/scripts/legacy/performance-monitoring.js +0 -532
- package/dist/scripts/legacy/performance-test-runner.js +0 -645
- package/dist/scripts/legacy/quick-fix-ts.js +0 -281
- package/dist/scripts/legacy/safe-build.sh +0 -63
- package/dist/scripts/memory-monitor-coordinator.js +0 -451
- package/dist/scripts/migrate-to-sdk.sh +0 -520
- package/dist/scripts/migration/QUICK-START.md +0 -189
- package/dist/scripts/migration/QUICK-START.md.backup-1760135091363 +0 -189
- package/dist/scripts/migration/README.md +0 -464
- package/dist/scripts/migration/TASK-1.3.2-COMPLETION-REPORT.md +0 -500
- package/dist/scripts/migration/TASK-1.3.2-COMPLETION-REPORT.md.backup-1760135091348 +0 -500
- package/dist/scripts/migration/UPDATE-PATHS-README.md +0 -464
- package/dist/scripts/migration/UPDATE-PATHS-README.md.backup-1760135091337 +0 -464
- package/dist/scripts/migration/example-patterns.json +0 -19
- package/dist/scripts/migration/install-arm64.js +0 -78
- package/dist/scripts/migration/install.js +0 -83
- package/dist/scripts/migration/migrate-hooks.js +0 -173
- package/dist/scripts/migration/migration-examples.ts +0 -318
- package/dist/scripts/migration/reorganize-workspace.js +0 -504
- package/dist/scripts/migration/test-update-paths.js +0 -359
- package/dist/scripts/migration/update-paths.js +0 -664
- package/dist/scripts/migration/validate-migration.js +0 -647
- package/dist/scripts/monitor-loop.sh +0 -65
- package/dist/scripts/monitor-memory.sh +0 -47
- package/dist/scripts/monitor-migration.js +0 -339
- package/dist/scripts/monitor.py +0 -43
- package/dist/scripts/monitoring/README.md +0 -178
- package/dist/scripts/monitoring/alert-monitor.sh +0 -220
- package/dist/scripts/monitoring/analyze-resources.sh +0 -199
- package/dist/scripts/monitoring/dashboards/rate-limiting-dashboard.json +0 -211
- package/dist/scripts/monitoring/dynamic-monitor.sh +0 -85
- package/dist/scripts/monitoring/launch-stability-test.sh +0 -184
- package/dist/scripts/monitoring/monitor-test.sh +0 -93
- package/dist/scripts/monitoring/pre-test-validation.sh +0 -208
- package/dist/scripts/monitoring/quick-test-alerting.sh +0 -118
- package/dist/scripts/monitoring/quick-test-rate-limiting.sh +0 -206
- package/dist/scripts/monitoring/rate-limiting-monitor.sh +0 -380
- package/dist/scripts/monitoring/resource-monitor.sh +0 -126
- package/dist/scripts/monitoring/stability-monitor.js +0 -429
- package/dist/scripts/monitoring/test-monitor-quick.sh +0 -54
- package/dist/scripts/monitoring/view-alerts.sh +0 -307
- package/dist/scripts/npm-metrics-collector.js +0 -482
- package/dist/scripts/npm-package-validation.cjs +0 -299
- package/dist/scripts/optimization/build-optimizer.js +0 -438
- package/dist/scripts/optimization/config-validator.js +0 -761
- package/dist/scripts/optimization/test-optimization.js +0 -432
- package/dist/scripts/optimization/unified-activation.js +0 -839
- package/dist/scripts/optimize-package-swarm.js +0 -54
- package/dist/scripts/performance/ACTIVATION_COMMANDS.md +0 -292
- package/dist/scripts/performance/sqlite-enhanced-activation.sh +0 -583
- package/dist/scripts/performance/test-enhanced-backend.sh +0 -504
- package/dist/scripts/performance-monitor.js +0 -644
- package/dist/scripts/performance-test-runner.js +0 -698
- package/dist/scripts/post-deployment-monitoring.js +0 -350
- package/dist/scripts/post-edit-pipeline.js +0 -2091
- package/dist/scripts/post-install-claude-md.js +0 -78
- package/dist/scripts/postinstall.js +0 -60
- package/dist/scripts/pre-publish-validation.cjs +0 -212
- package/dist/scripts/pre-publish-validation.js +0 -429
- package/dist/scripts/redis-lua/cleanup-blocking-coordination.lua +0 -198
- package/dist/scripts/release-announcement.js +0 -425
- package/dist/scripts/release-notification.js +0 -248
- package/dist/scripts/release-rollback.js +0 -376
- package/dist/scripts/release-validation.js +0 -460
- package/dist/scripts/rollback-sdk.sh +0 -66
- package/dist/scripts/run-production-validation.ts +0 -590
- package/dist/scripts/run-stability-validation.sh +0 -687
- package/dist/scripts/security/README.md +0 -339
- package/dist/scripts/security/deployment-validation.cjs +0 -279
- package/dist/scripts/security/envelope-encryption-confidence-report.cjs +0 -422
- package/dist/scripts/security/install-git-hooks.sh +0 -132
- package/dist/scripts/security/install-git-secrets.sh +0 -295
- package/dist/scripts/security/rotate-api-keys.js +0 -469
- package/dist/scripts/security/ruv-swarm-safe.js +0 -74
- package/dist/scripts/security/security-audit.cjs +0 -538
- package/dist/scripts/security/setup-redis-auth.sh +0 -397
- package/dist/scripts/security/validate-envelope-encryption.cjs +0 -340
- package/dist/scripts/security-scan.js +0 -492
- package/dist/scripts/src/web/frontend/.claude-flow/metrics/agent-metrics.json +0 -1
- package/dist/scripts/src/web/frontend/.claude-flow/metrics/performance.json +0 -9
- package/dist/scripts/src/web/frontend/.claude-flow/metrics/task-metrics.json +0 -10
- package/dist/scripts/switch-api.sh +0 -159
- package/dist/scripts/sync-agents.js +0 -290
- package/dist/scripts/test/50-agent-test.js +0 -625
- package/dist/scripts/test/NEW_STABILITY_TEST_GUIDE.md +0 -407
- package/dist/scripts/test/README.md +0 -236
- package/dist/scripts/test/STABILITY_TEST_EXAMPLE.md +0 -347
- package/dist/scripts/test/STABILITY_TEST_README.md +0 -480
- package/dist/scripts/test/agent-worker.js +0 -309
- package/dist/scripts/test/ai-coordination-test.js +0 -650
- package/dist/scripts/test/ai-mesh-coordination-test.js +0 -416
- package/dist/scripts/test/check-links.ts +0 -274
- package/dist/scripts/test/check-performance-regression.ts +0 -168
- package/dist/scripts/test/cli-agent-coordination-test.js +0 -313
- package/dist/scripts/test/coordinator-multilingual-test.js +0 -396
- package/dist/scripts/test/coordinator-transparency-demo.js +0 -585
- package/dist/scripts/test/coverage-report.ts +0 -692
- package/dist/scripts/test/generate-swarm-tests.js +0 -633
- package/dist/scripts/test/integration-test-validation.cjs +0 -253
- package/dist/scripts/test/load-test-swarm.js +0 -576
- package/dist/scripts/test/mesh-coordination-zero-overlap-test.js +0 -740
- package/dist/scripts/test/multilingual-hello-world-test.js +0 -390
- package/dist/scripts/test/quick-multilingual-demo.js +0 -464
- package/dist/scripts/test/real-agent-test.js +0 -312
- package/dist/scripts/test/run-phase3-compliance-tests.js +0 -427
- package/dist/scripts/test/run-stability-test-examples.sh +0 -292
- package/dist/scripts/test/stability-results/stability-metrics.jsonl +0 -83
- package/dist/scripts/test/stability-results/stability-test-report.json +0 -128
- package/dist/scripts/test/stability-results/stability-test.log +0 -1827
- package/dist/scripts/test/stability-test-50-agents.js +0 -734
- package/dist/scripts/test/test-batch-tasks.ts +0 -29
- package/dist/scripts/test/test-byzantine-resolution.js +0 -246
- package/dist/scripts/test/test-claude-spawn-options.sh +0 -63
- package/dist/scripts/test/test-cli-wizard.js +0 -331
- package/dist/scripts/test/test-comprehensive.js +0 -401
- package/dist/scripts/test/test-coordination-features.ts +0 -238
- package/dist/scripts/test/test-fallback-systems.js +0 -276
- package/dist/scripts/test/test-init-command.ts +0 -302
- package/dist/scripts/test/test-mcp.ts +0 -251
- package/dist/scripts/test/test-runner.ts +0 -568
- package/dist/scripts/test/test-swarm-integration.sh +0 -92
- package/dist/scripts/test/test-swarm.ts +0 -142
- package/dist/scripts/test/validation-summary.ts +0 -408
- package/dist/scripts/test-cleanup-performance.sh +0 -416
- package/dist/scripts/test-dashboard-auth.cjs +0 -203
- package/dist/scripts/test-docker-deployment.sh +0 -207
- package/dist/scripts/test-npm-package.cjs +0 -167
- package/dist/scripts/test-provider-routing.cjs +0 -226
- package/dist/scripts/test-routing-telemetry.cjs +0 -147
- package/dist/scripts/test-runner.cjs +0 -154
- package/dist/scripts/test-zai-10k.cjs +0 -81
- package/dist/scripts/test-zai-api.cjs +0 -191
- package/dist/scripts/test-zai-diagnostic.cjs +0 -151
- package/dist/scripts/test-zai-final.cjs +0 -128
- package/dist/scripts/test-zai-with-env.cjs +0 -85
- package/dist/scripts/toggle-cost-savings.cjs +0 -302
- package/dist/scripts/unified-memory-monitor.js +0 -526
- package/dist/scripts/utils/README.md +0 -261
- package/dist/scripts/utils/clean-build-artifacts.sh +0 -94
- package/dist/scripts/utils/cleanup-root.sh +0 -69
- package/dist/scripts/utils/fix-cliffy-imports.js +0 -307
- package/dist/scripts/utils/fix-duplicate-imports.js +0 -114
- package/dist/scripts/utils/fix-error-handling.cjs +0 -70
- package/dist/scripts/utils/fix-import-paths.js +0 -104
- package/dist/scripts/utils/fix-imports.js +0 -116
- package/dist/scripts/utils/fix-shebang.js +0 -78
- package/dist/scripts/utils/fix-test-modules.js +0 -27
- package/dist/scripts/utils/fix-timezone-issue-246.js +0 -200
- package/dist/scripts/utils/fix-ts-comprehensive.py +0 -182
- package/dist/scripts/utils/fix-ts-targeted-batch.js +0 -250
- package/dist/scripts/utils/remove-benchmark-conflicts.sh +0 -140
- package/dist/scripts/utils/simple-test-fixer.js +0 -190
- package/dist/scripts/utils/validate-metrics-structure.cjs +0 -144
- package/dist/scripts/validate-agent-hooks.js +0 -506
- package/dist/scripts/validate-changelog.js +0 -241
- package/dist/scripts/validate-coordination-cli.js +0 -69
- package/dist/scripts/validate-coordination-toggle-integration.cjs +0 -501
- package/dist/scripts/validate-docker-infrastructure.sh +0 -502
- package/dist/scripts/validate-entry-points.js +0 -300
- package/dist/scripts/validate-memory-monitoring.sh +0 -225
- package/dist/scripts/validate-stage3-performance.ts +0 -377
- package/dist/scripts/validate-template-bundling.js +0 -180
- package/dist/scripts/validation/README.md +0 -33
- package/dist/scripts/validation/acl-security-validation.cjs +0 -214
- package/dist/scripts/validation/acl-security-validation.js +0 -402
- package/dist/scripts/validation/byzantine-verification.js +0 -407
- package/dist/scripts/validation/final-phase-2-consensus.cjs +0 -219
- package/dist/scripts/validation/final-security-validation.js +0 -791
- package/dist/scripts/validation/final-wasm-validation.cjs +0 -840
- package/dist/scripts/validation/integration-test-analysis.js +0 -105
- package/dist/scripts/validation/phase-0-comprehensive-validation.js +0 -474
- package/dist/scripts/validation/phase-0-consensus-report.js +0 -139
- package/dist/scripts/validation/phase-0-final-report.js +0 -112
- package/dist/scripts/validation/phase-0-redis-consensus-report.js +0 -129
- package/dist/scripts/validation/phase-0-validation-improved.js +0 -490
- package/dist/scripts/validation/phase-0-validation-test.js +0 -65
- package/dist/scripts/validation/phase-1-consensus-report.cjs +0 -342
- package/dist/scripts/validation/phase-1-consensus-validation.cjs +0 -551
- package/dist/scripts/validation/phase-1-consensus-validation.js +0 -551
- package/dist/scripts/validation/phase-2-consensus-report.cjs +0 -186
- package/dist/scripts/validation/phase-2-validation.cjs +0 -171
- package/dist/scripts/validation/phase-2-validation.js +0 -171
- package/dist/scripts/validation/phase-4-consensus-report.js +0 -181
- package/dist/scripts/validation/phase-4-final-validation.js +0 -351
- package/dist/scripts/validation/phase-5-consensus-report.cjs +0 -113
- package/dist/scripts/validation/phase-5-consensus-report.js +0 -113
- package/dist/scripts/validation/security-analysis.js +0 -49
- package/dist/scripts/validation/security-validation.js +0 -492
- package/dist/scripts/validation/simple-security-validation.js +0 -464
- package/dist/scripts/verify-installation.js +0 -112
- package/dist/scripts/verify-mcp-server.js +0 -86
- package/dist/scripts/verify-sdk-phase1.cjs +0 -293
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/accessibility/browser/accessibilityService.js +0 -88
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/accessibility/common/accessibility.js +0 -9
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/action/common/action.js +0 -7
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/action/common/actionCommonCategories.js +0 -13
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/actionWidget/browser/actionList.js +0 -276
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/actionWidget/browser/actionWidget.js +0 -248
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/actionWidget/common/actionWidget.js +0 -5
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/actions/common/actions.js +0 -409
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/audioCues/browser/audioCueService.js +0 -176
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/clipboard/browser/clipboardService.js +0 -141
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/clipboard/common/clipboardService.js +0 -6
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/commands/common/commands.js +0 -80
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/configuration/common/configuration.js +0 -86
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/configuration/common/configurationModels.js +0 -554
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/configuration/common/configurationRegistry.js +0 -317
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/configuration/common/configurations.js +0 -41
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextkey/browser/contextKeyService.js +0 -432
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextkey/common/contextkey.js +0 -1547
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextkey/common/contextkeys.js +0 -18
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextview/browser/contextMenuHandler.js +0 -124
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextview/browser/contextMenuService.js +0 -101
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextview/browser/contextView.js +0 -7
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextview/browser/contextViewService.js +0 -72
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/dialogs/common/dialogs.js +0 -2
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/dnd/browser/dnd.js +0 -36
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/editor/common/editor.js +0 -17
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/environment/common/environment.js +0 -2
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/extensions/common/extensions.js +0 -47
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/files/common/files.js +0 -9
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +0 -105
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/instantiation/common/descriptors.js +0 -11
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/instantiation/common/extensions.js +0 -15
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/keybinding/common/abstractKeybindingService.js +0 -277
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/keybinding/common/baseResolvedKeybinding.js +0 -53
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +0 -354
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/theme/browser/defaultStyles.js +0 -162
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/theme/common/colorRegistry.js +0 -482
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/abap/abap.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/apex/apex.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/azcli/azcli.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/bat/bat.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/bicep/bicep.js +0 -11
|
@@ -1,425 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Release Announcement Script
|
|
5
|
-
* Generates formatted release announcements for various platforms
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import { execSync } from 'child_process';
|
|
9
|
-
import fs from 'fs';
|
|
10
|
-
import path from 'path';
|
|
11
|
-
import { fileURLToPath } from 'url';
|
|
12
|
-
|
|
13
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
14
|
-
const __dirname = path.dirname(__filename);
|
|
15
|
-
const rootDir = path.join(__dirname, '..');
|
|
16
|
-
|
|
17
|
-
const packageJson = JSON.parse(fs.readFileSync(path.join(rootDir, 'package.json'), 'utf8'));
|
|
18
|
-
const version = packageJson.version;
|
|
19
|
-
const packageName = packageJson.name;
|
|
20
|
-
const description = packageJson.description;
|
|
21
|
-
const repository = packageJson.repository;
|
|
22
|
-
|
|
23
|
-
class ReleaseAnnouncement {
|
|
24
|
-
constructor() {
|
|
25
|
-
this.packageName = packageName;
|
|
26
|
-
this.version = version;
|
|
27
|
-
this.description = description;
|
|
28
|
-
this.repository = repository;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
async generateAnnouncements() {
|
|
32
|
-
console.log(`📢 Generating release announcements for ${this.packageName}@${this.version}`);
|
|
33
|
-
|
|
34
|
-
const changelog = this.extractChangelogEntry();
|
|
35
|
-
|
|
36
|
-
if (!changelog) {
|
|
37
|
-
console.log('⚠️ No changelog entry found - generating basic announcement');
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
// Generate announcements for different platforms
|
|
41
|
-
await this.generateGitHubAnnouncement(changelog);
|
|
42
|
-
await this.generateTwitterAnnouncement(changelog);
|
|
43
|
-
await this.generateSlackAnnouncement(changelog);
|
|
44
|
-
await this.generateEmailAnnouncement(changelog);
|
|
45
|
-
await this.generateDiscordAnnouncement(changelog);
|
|
46
|
-
|
|
47
|
-
console.log('✅ All release announcements generated');
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
extractChangelogEntry() {
|
|
51
|
-
try {
|
|
52
|
-
const changelogPath = path.join(rootDir, 'CHANGELOG.md');
|
|
53
|
-
if (!fs.existsSync(changelogPath)) {
|
|
54
|
-
return null;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
const content = fs.readFileSync(changelogPath, 'utf8');
|
|
58
|
-
const versionRegex = new RegExp(`## \\[${this.version.replace('.', '\\.')}\\][\\s\\S]*?(?=## \\[|$)`);
|
|
59
|
-
const match = content.match(versionRegex);
|
|
60
|
-
|
|
61
|
-
if (match) {
|
|
62
|
-
let changelogEntry = match[0];
|
|
63
|
-
changelogEntry = changelogEntry.replace(/^## \[[^\]]+\][\s\n]*/, '').trim();
|
|
64
|
-
return changelogEntry;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
return null;
|
|
68
|
-
} catch (error) {
|
|
69
|
-
console.log('⚠️ Error extracting changelog:', error.message);
|
|
70
|
-
return null;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
async generateGitHubAnnouncement(changelog) {
|
|
75
|
-
console.log('📝 Generating GitHub announcement...');
|
|
76
|
-
|
|
77
|
-
const announcement = this.formatGitHubRelease(changelog);
|
|
78
|
-
const filePath = path.join(rootDir, `RELEASE_ANNOUNCEMENT_GITHUB_v${this.version}.md`);
|
|
79
|
-
|
|
80
|
-
fs.writeFileSync(filePath, announcement, 'utf8');
|
|
81
|
-
console.log(`✅ GitHub announcement saved to ${filePath}`);
|
|
82
|
-
|
|
83
|
-
// Also output to console for easy copy-paste
|
|
84
|
-
console.log('\n📋 GitHub Release Content:');
|
|
85
|
-
console.log('='.repeat(50));
|
|
86
|
-
console.log(announcement);
|
|
87
|
-
console.log('='.repeat(50));
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
formatGitHubRelease(changelog) {
|
|
91
|
-
const date = new Date().toLocaleDateString();
|
|
92
|
-
const repoUrl = this.repository.url.replace('git+https://github.com/', '').replace('.git', '');
|
|
93
|
-
|
|
94
|
-
let content = `# 🎉 Release v${this.version}
|
|
95
|
-
|
|
96
|
-
**Published:** ${date}
|
|
97
|
-
**Package:** \`${this.packageName}\`
|
|
98
|
-
**Version:** \`${this.version}\`
|
|
99
|
-
|
|
100
|
-
## 📦 Installation
|
|
101
|
-
|
|
102
|
-
\`\`\`bash
|
|
103
|
-
npm install ${this.packageName}@${this.version}
|
|
104
|
-
\`\`\`
|
|
105
|
-
|
|
106
|
-
## 📖 Documentation
|
|
107
|
-
|
|
108
|
-
- [GitHub Repository](https://github.com/${repoUrl})
|
|
109
|
-
- [Documentation](https://github.com/${repoUrl}#readme)
|
|
110
|
-
- [Changelog](https://github.com/${repoUrl}/blob/main/CHANGELOG.md)
|
|
111
|
-
|
|
112
|
-
## ✨ What's New`;
|
|
113
|
-
|
|
114
|
-
if (changelog) {
|
|
115
|
-
content += `\n\n${changelog}`;
|
|
116
|
-
} else {
|
|
117
|
-
content += '\n\nThis release includes various improvements and bug fixes. See the [changelog](CHANGELOG.md) for detailed information.';
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
content += `
|
|
121
|
-
|
|
122
|
-
## 🙏 Acknowledgments
|
|
123
|
-
|
|
124
|
-
Thanks to everyone who contributed to this release!
|
|
125
|
-
|
|
126
|
-
---
|
|
127
|
-
|
|
128
|
-
**🔗 Links:**
|
|
129
|
-
- [NPM Package](https://www.npmjs.com/package/${this.packageName})
|
|
130
|
-
- [GitHub Issues](https://github.com/${repoUrl}/issues)
|
|
131
|
-
- [GitHub Discussions](https://github.com/${repoUrl}/discussions)
|
|
132
|
-
|
|
133
|
-
**⚠️ Note:** If you encounter any issues, please report them on [GitHub Issues](https://github.com/${repoUrl}/issues).`;
|
|
134
|
-
|
|
135
|
-
return content;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
async generateTwitterAnnouncement(changelog) {
|
|
139
|
-
console.log('🐦 Generating Twitter announcement...');
|
|
140
|
-
|
|
141
|
-
const announcement = this.formatTweet(changelog);
|
|
142
|
-
const filePath = path.join(rootDir, `RELEASE_ANNOUNCEMENT_TWITTER_v${this.version}.txt`);
|
|
143
|
-
|
|
144
|
-
fs.writeFileSync(filePath, announcement, 'utf8');
|
|
145
|
-
console.log(`✅ Twitter announcement saved to ${filePath}`);
|
|
146
|
-
|
|
147
|
-
console.log('\n🐦 Tweet Content:');
|
|
148
|
-
console.log('='.repeat(50));
|
|
149
|
-
console.log(announcement);
|
|
150
|
-
console.log('='.repeat(50));
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
formatTweet(changelog) {
|
|
154
|
-
const repoUrl = this.repository.url.replace('git+https://github.com/', '').replace('.git', '');
|
|
155
|
-
const npmUrl = `https://www.npmjs.com/package/${this.packageName}`;
|
|
156
|
-
|
|
157
|
-
// Extract key features from changelog for the tweet
|
|
158
|
-
let highlights = '';
|
|
159
|
-
if (changelog) {
|
|
160
|
-
const features = changelog.match(/### Features\n\n((?:-.+\n?)*)/);
|
|
161
|
-
if (features) {
|
|
162
|
-
const featureList = features[1].split('\n')
|
|
163
|
-
.filter(line => line.startsWith('-'))
|
|
164
|
-
.slice(0, 2) // Take first 2 features
|
|
165
|
-
.map(line => line.replace(/^-\s+/, ''));
|
|
166
|
-
highlights = featureList.join(', ');
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
const tweet = `🎉 ${this.packageName} v${this.version} is now live!
|
|
171
|
-
|
|
172
|
-
${highlights ? `✨ ${highlights}` : '🚀 New features and improvements'}
|
|
173
|
-
|
|
174
|
-
📦 Install: npm install ${this.packageName}@${this.version}
|
|
175
|
-
📖 Docs: https://github.com/${repoUrl}#readme
|
|
176
|
-
🔗 Package: ${npmUrl}
|
|
177
|
-
|
|
178
|
-
#JavaScript #NodeJS #OpenSource`;
|
|
179
|
-
|
|
180
|
-
return tweet;
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
async generateSlackAnnouncement(changelog) {
|
|
184
|
-
console.log('💬 Generating Slack announcement...');
|
|
185
|
-
|
|
186
|
-
const announcement = this.formatSlackMessage(changelog);
|
|
187
|
-
const filePath = path.join(rootDir, `RELEASE_ANNOUNCEMENT_SLACK_v${this.version}.json`);
|
|
188
|
-
|
|
189
|
-
fs.writeFileSync(filePath, JSON.stringify(announcement, null, 2), 'utf8');
|
|
190
|
-
console.log(`✅ Slack announcement saved to ${filePath}`);
|
|
191
|
-
|
|
192
|
-
console.log('\n💬 Slack Message Content:');
|
|
193
|
-
console.log('='.repeat(50));
|
|
194
|
-
console.log(JSON.stringify(announcement, null, 2));
|
|
195
|
-
console.log('='.repeat(50));
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
formatSlackMessage(changelog) {
|
|
199
|
-
const repoUrl = this.repository.url.replace('git+https://github.com/', '').replace('.git', '');
|
|
200
|
-
const npmUrl = `https://www.npmjs.com/package/${this.packageName}`;
|
|
201
|
-
|
|
202
|
-
const message = {
|
|
203
|
-
text: `🎉 New Release: ${this.packageName} v${this.version}`,
|
|
204
|
-
blocks: [
|
|
205
|
-
{
|
|
206
|
-
type: "header",
|
|
207
|
-
text: {
|
|
208
|
-
type: "plain_text",
|
|
209
|
-
text: `🎉 ${this.packageName} v${this.version} Released!`
|
|
210
|
-
}
|
|
211
|
-
},
|
|
212
|
-
{
|
|
213
|
-
type: "section",
|
|
214
|
-
text: {
|
|
215
|
-
type: "mrkdwn",
|
|
216
|
-
text: `*Package:* \`${this.packageName}\`\n*Version:* \`${this.version}\`\n*Description:* ${this.description}`
|
|
217
|
-
}
|
|
218
|
-
},
|
|
219
|
-
{
|
|
220
|
-
type: "divider"
|
|
221
|
-
},
|
|
222
|
-
{
|
|
223
|
-
type: "section",
|
|
224
|
-
text: {
|
|
225
|
-
type: "mrkdwn",
|
|
226
|
-
text: "*📦 Installation:*"
|
|
227
|
-
}
|
|
228
|
-
},
|
|
229
|
-
{
|
|
230
|
-
type: "section",
|
|
231
|
-
text: {
|
|
232
|
-
type: "mrkdwn",
|
|
233
|
-
text: `\`\`\`bash\nnpm install ${this.packageName}@${this.version}\n\`\`\``
|
|
234
|
-
}
|
|
235
|
-
},
|
|
236
|
-
{
|
|
237
|
-
type: "actions",
|
|
238
|
-
elements: [
|
|
239
|
-
{
|
|
240
|
-
type: "button",
|
|
241
|
-
text: {
|
|
242
|
-
type: "plain_text",
|
|
243
|
-
text: "📖 Documentation"
|
|
244
|
-
},
|
|
245
|
-
url: `https://github.com/${repoUrl}#readme`
|
|
246
|
-
},
|
|
247
|
-
{
|
|
248
|
-
type: "button",
|
|
249
|
-
text: {
|
|
250
|
-
type: "plain_text",
|
|
251
|
-
text: "📦 NPM Package"
|
|
252
|
-
},
|
|
253
|
-
url: npmUrl
|
|
254
|
-
},
|
|
255
|
-
{
|
|
256
|
-
type: "button",
|
|
257
|
-
text: {
|
|
258
|
-
type: "plain_text",
|
|
259
|
-
text: "📝 Changelog"
|
|
260
|
-
},
|
|
261
|
-
url: `https://github.com/${repoUrl}/blob/main/CHANGELOG.md`
|
|
262
|
-
}
|
|
263
|
-
]
|
|
264
|
-
}
|
|
265
|
-
]
|
|
266
|
-
};
|
|
267
|
-
|
|
268
|
-
// Add changelog highlights if available
|
|
269
|
-
if (changelog) {
|
|
270
|
-
const features = changelog.match(/### Features\n\n((?:-.+\n?)*)/);
|
|
271
|
-
if (features) {
|
|
272
|
-
const featureList = features[1].split('\n')
|
|
273
|
-
.filter(line => line.startsWith('-'))
|
|
274
|
-
.slice(0, 5) // Take first 5 features
|
|
275
|
-
.map(line => line.replace(/^-\s+/, ''));
|
|
276
|
-
|
|
277
|
-
if (featureList.length > 0) {
|
|
278
|
-
message.blocks.splice(3, 0, {
|
|
279
|
-
type: "section",
|
|
280
|
-
text: {
|
|
281
|
-
type: "mrkdwn",
|
|
282
|
-
text: "*✨ Key Features:*\n" + featureList.map(f => `• ${f}`).join('\n')
|
|
283
|
-
}
|
|
284
|
-
});
|
|
285
|
-
}
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
return message;
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
async generateEmailAnnouncement(changelog) {
|
|
293
|
-
console.log('📧 Generating email announcement...');
|
|
294
|
-
|
|
295
|
-
const announcement = this.formatEmail(changelog);
|
|
296
|
-
const filePath = path.join(rootDir, `RELEASE_ANNOUNCEMENT_EMAIL_v${this.version}.html`);
|
|
297
|
-
|
|
298
|
-
fs.writeFileSync(filePath, announcement, 'utf8');
|
|
299
|
-
console.log(`✅ Email announcement saved to ${filePath}`);
|
|
300
|
-
|
|
301
|
-
console.log('\n📧 Email Content (preview):');
|
|
302
|
-
console.log('='.repeat(50));
|
|
303
|
-
console.log(this.stripHtml(announcement.substring(0, 500)) + '...');
|
|
304
|
-
console.log('='.repeat(50));
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
formatEmail(changelog) {
|
|
308
|
-
const repoUrl = this.repository.url.replace('git+https://github.com/', '').replace('.git', '');
|
|
309
|
-
const npmUrl = `https://www.npmjs.com/package/${this.packageName}`;
|
|
310
|
-
|
|
311
|
-
return `<!DOCTYPE html>
|
|
312
|
-
<html>
|
|
313
|
-
<head>
|
|
314
|
-
<meta charset="utf-8">
|
|
315
|
-
<title>${this.packageName} v${this.version} Released</title>
|
|
316
|
-
<style>
|
|
317
|
-
body { font-family: Arial, sans-serif; line-height: 1.6; max-width: 600px; margin: 0 auto; }
|
|
318
|
-
.header { background: #f8f9fa; padding: 20px; text-align: center; }
|
|
319
|
-
.content { padding: 20px; }
|
|
320
|
-
.install-box { background: #f1f3f4; padding: 15px; border-radius: 5px; font-family: monospace; }
|
|
321
|
-
.button { display: inline-block; padding: 10px 20px; background: #007bff; color: white; text-decoration: none; border-radius: 5px; margin: 5px; }
|
|
322
|
-
.footer { text-align: center; padding: 20px; color: #666; font-size: 12px; }
|
|
323
|
-
</style>
|
|
324
|
-
</head>
|
|
325
|
-
<body>
|
|
326
|
-
<div class="header">
|
|
327
|
-
<h1>🎉 ${this.packageName} v${this.version} Released!</h1>
|
|
328
|
-
<p>${this.description}</p>
|
|
329
|
-
</div>
|
|
330
|
-
|
|
331
|
-
<div class="content">
|
|
332
|
-
<h2>📦 Installation</h2>
|
|
333
|
-
<div class="install-box">
|
|
334
|
-
npm install ${this.packageName}@${this.version}
|
|
335
|
-
</div>
|
|
336
|
-
|
|
337
|
-
<h2>📖 Resources</h2>
|
|
338
|
-
<p>
|
|
339
|
-
<a href="https://github.com/${repoUrl}#readme" class="button">Documentation</a>
|
|
340
|
-
<a href="${npmUrl}" class="button">NPM Package</a>
|
|
341
|
-
<a href="https://github.com/${repoUrl}/blob/main/CHANGELOG.md" class="button">Changelog</a>
|
|
342
|
-
</p>
|
|
343
|
-
|
|
344
|
-
<h2>✨ What's New</h2>
|
|
345
|
-
<div>
|
|
346
|
-
${changelog ? changelog.replace(/\n/g, '<br>') : 'This release includes various improvements and bug fixes.'}
|
|
347
|
-
</div>
|
|
348
|
-
</div>
|
|
349
|
-
|
|
350
|
-
<div class="footer">
|
|
351
|
-
<p>You're receiving this email because you subscribed to updates about ${this.packageName}.</p>
|
|
352
|
-
<p><a href="https://github.com/${repoUrl}">Unsubscribe</a></p>
|
|
353
|
-
</div>
|
|
354
|
-
</body>
|
|
355
|
-
</html>`;
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
async generateDiscordAnnouncement(changelog) {
|
|
359
|
-
console.log('🎮 Generating Discord announcement...');
|
|
360
|
-
|
|
361
|
-
const announcement = this.formatDiscordMessage(changelog);
|
|
362
|
-
const filePath = path.join(rootDir, `RELEASE_ANNOUNCEMENT_DISCORD_v${this.version}.txt`);
|
|
363
|
-
|
|
364
|
-
fs.writeFileSync(filePath, announcement, 'utf8');
|
|
365
|
-
console.log(`✅ Discord announcement saved to ${filePath}`);
|
|
366
|
-
|
|
367
|
-
console.log('\n🎮 Discord Message Content:');
|
|
368
|
-
console.log('='.repeat(50));
|
|
369
|
-
console.log(announcement);
|
|
370
|
-
console.log('='.repeat(50));
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
formatDiscordMessage(changelog) {
|
|
374
|
-
const repoUrl = this.repository.url.replace('git+https://github.com/', '').replace('.git', '');
|
|
375
|
-
const npmUrl = `https://www.npmjs.com/package/${this.packageName}`;
|
|
376
|
-
|
|
377
|
-
let message = `🎉 **${this.packageName} v${this.version} Released!** 🎉
|
|
378
|
-
|
|
379
|
-
**Package:** \`${this.packageName}\`
|
|
380
|
-
**Version:** \`${this.version}\`
|
|
381
|
-
|
|
382
|
-
**Installation:**
|
|
383
|
-
\`\`\`bash
|
|
384
|
-
npm install ${this.packageName}@${this.version}
|
|
385
|
-
\`\`\`
|
|
386
|
-
|
|
387
|
-
**Links:**
|
|
388
|
-
📖 [Documentation](https://github.com/${repoUrl}#readme)
|
|
389
|
-
📦 [NPM Package](${npmUrl})
|
|
390
|
-
📝 [Changelog](https://github.com/${repoUrl}/blob/main/CHANGELOG.md)`;
|
|
391
|
-
|
|
392
|
-
if (changelog) {
|
|
393
|
-
const features = changelog.match(/### Features\n\n((?:-.+\n?)*)/);
|
|
394
|
-
if (features) {
|
|
395
|
-
const featureList = features[1].split('\n')
|
|
396
|
-
.filter(line => line.startsWith('-'))
|
|
397
|
-
.slice(0, 5)
|
|
398
|
-
.map(line => line.replace(/^-\s+/, ''));
|
|
399
|
-
|
|
400
|
-
if (featureList.length > 0) {
|
|
401
|
-
message += `\n\n**✨ Key Features:**\n${featureList.map(f => `• ${f}`).join('\n')}`;
|
|
402
|
-
}
|
|
403
|
-
}
|
|
404
|
-
}
|
|
405
|
-
|
|
406
|
-
message += '\n\n*If you encounter any issues, please report them on [GitHub Issues](https://github.com/' + repoUrl + '/issues).*';
|
|
407
|
-
|
|
408
|
-
return message;
|
|
409
|
-
}
|
|
410
|
-
|
|
411
|
-
stripHtml(html) {
|
|
412
|
-
return html.replace(/<[^>]*>/g, '');
|
|
413
|
-
}
|
|
414
|
-
}
|
|
415
|
-
|
|
416
|
-
// CLI Interface
|
|
417
|
-
async function main() {
|
|
418
|
-
const announcer = new ReleaseAnnouncement();
|
|
419
|
-
await announcer.generateAnnouncements();
|
|
420
|
-
}
|
|
421
|
-
|
|
422
|
-
main().catch(error => {
|
|
423
|
-
console.error('❌ Announcement generation failed:', error);
|
|
424
|
-
process.exit(1);
|
|
425
|
-
});
|
|
@@ -1,248 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Release Notification Script
|
|
5
|
-
* Sends notifications about successful releases
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import { execSync } from 'child_process';
|
|
9
|
-
import fs from 'fs';
|
|
10
|
-
import path from 'path';
|
|
11
|
-
import { fileURLToPath } from 'url';
|
|
12
|
-
|
|
13
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
14
|
-
const __dirname = path.dirname(__filename);
|
|
15
|
-
const rootDir = path.join(__dirname, '..');
|
|
16
|
-
|
|
17
|
-
const packageJson = JSON.parse(fs.readFileSync(path.join(rootDir, 'package.json'), 'utf8'));
|
|
18
|
-
const version = packageJson.version;
|
|
19
|
-
const packageName = packageJson.name;
|
|
20
|
-
const repository = packageJson.repository;
|
|
21
|
-
|
|
22
|
-
class ReleaseNotifier {
|
|
23
|
-
constructor() {
|
|
24
|
-
this.packageName = packageName;
|
|
25
|
-
this.version = version;
|
|
26
|
-
this.repository = repository;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
async sendNotifications() {
|
|
30
|
-
console.log(`📢 Sending release notifications for ${this.packageName}@${this.version}`);
|
|
31
|
-
|
|
32
|
-
await this.createGitHubRelease();
|
|
33
|
-
await this.updateDocumentation();
|
|
34
|
-
await this.sendTeamNotifications();
|
|
35
|
-
await this.updateMetrics();
|
|
36
|
-
|
|
37
|
-
console.log('✅ All release notifications sent successfully');
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
async createGitHubRelease() {
|
|
41
|
-
try {
|
|
42
|
-
// Get changelog entry for this version
|
|
43
|
-
const changelog = this.extractChangelogEntry();
|
|
44
|
-
|
|
45
|
-
if (!changelog) {
|
|
46
|
-
console.log('⚠️ No changelog entry found for this version');
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
// Create GitHub release using gh CLI
|
|
51
|
-
const releaseTitle = `Release v${this.version}`;
|
|
52
|
-
const releaseNotes = `# ${releaseTitle}\n\n${changelog}\n\n---\n\n**Installation:**\n\`\`\`bash\nnpm install ${this.packageName}@${this.version}\n\`\`\`\n\n**Documentation:** [View Docs](https://github.com/${this.repository.url.replace('git+https://github.com/', '').replace('.git', '')}#readme)`;
|
|
53
|
-
|
|
54
|
-
try {
|
|
55
|
-
execSync(`gh release create v${this.version} --title "${releaseTitle}" --notes "${releaseNotes}"`, {
|
|
56
|
-
encoding: 'utf8',
|
|
57
|
-
cwd: rootDir,
|
|
58
|
-
stdio: 'pipe'
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
console.log('✅ GitHub release created');
|
|
62
|
-
} catch (error) {
|
|
63
|
-
console.log('⚠️ Could not create GitHub release (gh CLI not available or no permissions)');
|
|
64
|
-
console.log(`Manual release notes:\n${releaseNotes}`);
|
|
65
|
-
}
|
|
66
|
-
} catch (error) {
|
|
67
|
-
console.log('⚠️ Error creating GitHub release:', error.message);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
extractChangelogEntry() {
|
|
72
|
-
try {
|
|
73
|
-
const changelogPath = path.join(rootDir, 'CHANGELOG.md');
|
|
74
|
-
if (!fs.existsSync(changelogPath)) {
|
|
75
|
-
return null;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
const content = fs.readFileSync(changelogPath, 'utf8');
|
|
79
|
-
const versionRegex = new RegExp(`## \\[${this.version.replace('.', '\\.')}\\][\\s\\S]*?(?=## \\[|$)`);
|
|
80
|
-
const match = content.match(versionRegex);
|
|
81
|
-
|
|
82
|
-
if (match) {
|
|
83
|
-
let changelogEntry = match[0];
|
|
84
|
-
// Remove the version line and clean up
|
|
85
|
-
changelogEntry = changelogEntry.replace(/^## \[[^\]]+\][\s\n]*/, '').trim();
|
|
86
|
-
return changelogEntry;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
return null;
|
|
90
|
-
} catch (error) {
|
|
91
|
-
console.log('⚠️ Error extracting changelog:', error.message);
|
|
92
|
-
return null;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
async updateDocumentation() {
|
|
97
|
-
try {
|
|
98
|
-
// Update version in README files
|
|
99
|
-
const readmeFiles = ['README.md', 'README-NPM.md'];
|
|
100
|
-
|
|
101
|
-
readmeFiles.forEach(filename => {
|
|
102
|
-
const readmePath = path.join(rootDir, filename);
|
|
103
|
-
if (fs.existsSync(readmePath)) {
|
|
104
|
-
let content = fs.readFileSync(readmePath, 'utf8');
|
|
105
|
-
|
|
106
|
-
// Update version references
|
|
107
|
-
content = content.replace(
|
|
108
|
-
new RegExp(`${this.packageName}@[\\d.]+`, 'g'),
|
|
109
|
-
`${this.packageName}@${this.version}`
|
|
110
|
-
);
|
|
111
|
-
|
|
112
|
-
content = content.replace(
|
|
113
|
-
/Latest version: \d+\.\d+\.\d+/g,
|
|
114
|
-
`Latest version: ${this.version}`
|
|
115
|
-
);
|
|
116
|
-
|
|
117
|
-
fs.writeFileSync(readmePath, content, 'utf8');
|
|
118
|
-
console.log(`✅ Updated ${filename}`);
|
|
119
|
-
}
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
// Create release notes file
|
|
123
|
-
const releaseNotesPath = path.join(rootDir, `RELEASE_NOTES_v${this.version}.md`);
|
|
124
|
-
const changelogEntry = this.extractChangelogEntry();
|
|
125
|
-
|
|
126
|
-
if (changelogEntry) {
|
|
127
|
-
const releaseNotes = `# Release Notes v${this.version}\n\nPublished: ${new Date().toISOString()}\n\n${changelogEntry}\n\n---\n\n**Package:** ${this.packageName}\n**Version:** ${this.version}\n**Repository:** ${this.repository.url}\n\n## Installation\n\n\`\`\`bash\nnpm install ${this.packageName}@${this.version}\n\`\`\`\n\n## Documentation\n\nFor detailed documentation, visit: [GitHub Repository](${this.repository.url.replace('git+', '').replace('.git', '')})`;
|
|
128
|
-
|
|
129
|
-
fs.writeFileSync(releaseNotesPath, releaseNotes, 'utf8');
|
|
130
|
-
console.log(`✅ Created ${releaseNotesPath}`);
|
|
131
|
-
}
|
|
132
|
-
} catch (error) {
|
|
133
|
-
console.log('⚠️ Error updating documentation:', error.message);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
async sendTeamNotifications() {
|
|
138
|
-
try {
|
|
139
|
-
// Create notification message
|
|
140
|
-
const message = `🎉 New Release: ${this.packageName} v${this.version}\n\n${this.packageName} version ${this.version} has been published to NPM!\n\n📦 Install: npm install ${this.packageName}@${this.version}\n📖 Docs: ${this.repository.url.replace('git+', '').replace('.git', '')}\n📝 Changelog: https://github.com/${this.repository.url.replace('git+https://github.com/', '').replace('.git', '')}/blob/main/CHANGELOG.md`;
|
|
141
|
-
|
|
142
|
-
console.log('\n📧 Team Notification Message:');
|
|
143
|
-
console.log('=' .repeat(50));
|
|
144
|
-
console.log(message);
|
|
145
|
-
console.log('=' .repeat(50));
|
|
146
|
-
|
|
147
|
-
// Here you could integrate with Slack, Discord, email, etc.
|
|
148
|
-
// For now, just display the message
|
|
149
|
-
|
|
150
|
-
// Example Slack integration (if webhook URL is available)
|
|
151
|
-
// await this.sendSlackNotification(message);
|
|
152
|
-
|
|
153
|
-
} catch (error) {
|
|
154
|
-
console.log('⚠️ Error sending team notifications:', error.message);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
async sendSlackNotification(message) {
|
|
159
|
-
// Example Slack integration
|
|
160
|
-
const slackWebhook = process.env.SLACK_RELEASE_WEBHOOK;
|
|
161
|
-
if (!slackWebhook) return;
|
|
162
|
-
|
|
163
|
-
try {
|
|
164
|
-
const response = await fetch(slackWebhook, {
|
|
165
|
-
method: 'POST',
|
|
166
|
-
headers: { 'Content-Type': 'application/json' },
|
|
167
|
-
body: JSON.stringify({
|
|
168
|
-
text: message,
|
|
169
|
-
username: 'Release Bot',
|
|
170
|
-
icon_emoji: ':package:'
|
|
171
|
-
})
|
|
172
|
-
});
|
|
173
|
-
|
|
174
|
-
if (response.ok) {
|
|
175
|
-
console.log('✅ Slack notification sent');
|
|
176
|
-
}
|
|
177
|
-
} catch (error) {
|
|
178
|
-
console.log('⚠️ Error sending Slack notification:', error.message);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
async updateMetrics() {
|
|
183
|
-
try {
|
|
184
|
-
// Update release metrics
|
|
185
|
-
const metrics = {
|
|
186
|
-
version: this.version,
|
|
187
|
-
releaseDate: new Date().toISOString(),
|
|
188
|
-
packageName: this.packageName,
|
|
189
|
-
type: this.determineReleaseType()
|
|
190
|
-
};
|
|
191
|
-
|
|
192
|
-
const metricsPath = path.join(rootDir, '.release-metrics.json');
|
|
193
|
-
let existingMetrics = [];
|
|
194
|
-
|
|
195
|
-
if (fs.existsSync(metricsPath)) {
|
|
196
|
-
existingMetrics = JSON.parse(fs.readFileSync(metricsPath, 'utf8'));
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
existingMetrics.push(metrics);
|
|
200
|
-
fs.writeFileSync(metricsPath, JSON.stringify(existingMetrics, null, 2), 'utf8');
|
|
201
|
-
|
|
202
|
-
console.log('✅ Release metrics updated');
|
|
203
|
-
} catch (error) {
|
|
204
|
-
console.log('⚠️ Error updating metrics:', error.message);
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
determineReleaseType() {
|
|
209
|
-
const parts = this.version.split('.');
|
|
210
|
-
if (parts.length >= 3) {
|
|
211
|
-
if (parts[0] !== '0') {
|
|
212
|
-
// Major version (1.x.x and above)
|
|
213
|
-
if (parts[1] === '0' && parts[2] === '0') {
|
|
214
|
-
return 'major';
|
|
215
|
-
} else if (parts[2] === '0') {
|
|
216
|
-
return 'minor';
|
|
217
|
-
} else {
|
|
218
|
-
return 'patch';
|
|
219
|
-
}
|
|
220
|
-
} else {
|
|
221
|
-
// Development version (0.x.x)
|
|
222
|
-
if (parts[1] === '0') {
|
|
223
|
-
return 'major-dev';
|
|
224
|
-
} else {
|
|
225
|
-
return 'minor-dev';
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
// Check for pre-release
|
|
231
|
-
if (this.version.includes('-')) {
|
|
232
|
-
return 'pre-release';
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
return 'unknown';
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
// CLI Interface
|
|
240
|
-
async function main() {
|
|
241
|
-
const notifier = new ReleaseNotifier();
|
|
242
|
-
await notifier.sendNotifications();
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
main().catch(error => {
|
|
246
|
-
console.error('❌ Release notification failed:', error);
|
|
247
|
-
process.exit(1);
|
|
248
|
-
});
|