jumbo-cli 2.8.0 → 2.10.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/README.md +1 -0
- package/assets/skills/define-jumbo-goals/SKILL.md +2 -0
- package/assets/skills/jumbo-design-goal/SKILL.md +123 -0
- package/dist/application/context/relations/deactivate/DeactivateRelationCommandHandler.d.ts.map +1 -1
- package/dist/application/context/relations/deactivate/DeactivateRelationCommandHandler.js +5 -0
- package/dist/application/context/relations/deactivate/DeactivateRelationCommandHandler.js.map +1 -1
- package/dist/infrastructure/host/HostBuilder.d.ts.map +1 -1
- package/dist/infrastructure/host/HostBuilder.js +4 -6
- package/dist/infrastructure/host/HostBuilder.js.map +1 -1
- package/dist/infrastructure/local/LocalDatabaseRebuildService.d.ts +9 -13
- package/dist/infrastructure/local/LocalDatabaseRebuildService.d.ts.map +1 -1
- package/dist/infrastructure/local/LocalDatabaseRebuildService.js +36 -29
- package/dist/infrastructure/local/LocalDatabaseRebuildService.js.map +1 -1
- package/dist/infrastructure/messaging/ProjectionBusFactory.d.ts +25 -0
- package/dist/infrastructure/messaging/ProjectionBusFactory.d.ts.map +1 -0
- package/dist/infrastructure/messaging/ProjectionBusFactory.js +242 -0
- package/dist/infrastructure/messaging/ProjectionBusFactory.js.map +1 -0
- package/dist/presentation/cli/animations/BrailleSpinner.d.ts +31 -0
- package/dist/presentation/cli/animations/BrailleSpinner.d.ts.map +1 -0
- package/dist/presentation/cli/animations/BrailleSpinner.js +67 -0
- package/dist/presentation/cli/animations/BrailleSpinner.js.map +1 -0
- package/dist/presentation/cli/animations/GlimmerEffect.d.ts +32 -0
- package/dist/presentation/cli/animations/GlimmerEffect.d.ts.map +1 -0
- package/dist/presentation/cli/animations/GlimmerEffect.js +55 -0
- package/dist/presentation/cli/animations/GlimmerEffect.js.map +1 -0
- package/dist/presentation/cli/animations/GradientPalette.d.ts +36 -0
- package/dist/presentation/cli/animations/GradientPalette.d.ts.map +1 -0
- package/dist/presentation/cli/animations/GradientPalette.js +133 -0
- package/dist/presentation/cli/animations/GradientPalette.js.map +1 -0
- package/dist/presentation/cli/commands/registry/generated-commands.d.ts.map +1 -1
- package/dist/presentation/cli/commands/registry/generated-commands.js +6 -0
- package/dist/presentation/cli/commands/registry/generated-commands.js.map +1 -1
- package/dist/presentation/cli/commands/work/refine/RefineryDisplay.d.ts +45 -0
- package/dist/presentation/cli/commands/work/refine/RefineryDisplay.d.ts.map +1 -0
- package/dist/presentation/cli/commands/work/refine/RefineryDisplay.js +100 -0
- package/dist/presentation/cli/commands/work/refine/RefineryDisplay.js.map +1 -0
- package/dist/presentation/cli/commands/work/refine/work.refine.d.ts +20 -0
- package/dist/presentation/cli/commands/work/refine/work.refine.d.ts.map +1 -0
- package/dist/presentation/cli/commands/work/refine/work.refine.js +181 -0
- package/dist/presentation/cli/commands/work/refine/work.refine.js.map +1 -0
- package/dist/presentation/cli/rendering/StyleConfig.d.ts +11 -0
- package/dist/presentation/cli/rendering/StyleConfig.d.ts.map +1 -1
- package/dist/presentation/cli/rendering/StyleConfig.js +12 -1
- package/dist/presentation/cli/rendering/StyleConfig.js.map +1 -1
- package/package.json +1 -1
- package/dist/infrastructure/local/TemporarySequentialDatabaseRebuildService.d.ts +0 -43
- package/dist/infrastructure/local/TemporarySequentialDatabaseRebuildService.d.ts.map +0 -1
- package/dist/infrastructure/local/TemporarySequentialDatabaseRebuildService.js +0 -441
- package/dist/infrastructure/local/TemporarySequentialDatabaseRebuildService.js.map +0 -1
- package/dist/infrastructure/messaging/TemporarySequentialRebuildEventBus.d.ts +0 -37
- package/dist/infrastructure/messaging/TemporarySequentialRebuildEventBus.d.ts.map +0 -1
- package/dist/infrastructure/messaging/TemporarySequentialRebuildEventBus.js +0 -64
- package/dist/infrastructure/messaging/TemporarySequentialRebuildEventBus.js.map +0 -1
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Factory that creates an event bus wired with projection-only handlers.
|
|
3
|
+
*
|
|
4
|
+
* Used during database rebuild to replay events through pure projectors
|
|
5
|
+
* without triggering side effects (cascades, maintenance goals, command
|
|
6
|
+
* handlers). Side-effect events are already persisted in the event store
|
|
7
|
+
* from original execution and are replayed as regular projection events.
|
|
8
|
+
*
|
|
9
|
+
* Each projector performs a single synchronous SQLite write with no
|
|
10
|
+
* cross-aggregate reads, so parallel execution via InProcessEventBus
|
|
11
|
+
* is safe.
|
|
12
|
+
*/
|
|
13
|
+
import Database from "better-sqlite3";
|
|
14
|
+
import { IEventBus } from "../../application/messaging/IEventBus.js";
|
|
15
|
+
export declare class ProjectionBusFactory {
|
|
16
|
+
/**
|
|
17
|
+
* Creates an event bus with projection-only handlers for the given database.
|
|
18
|
+
*/
|
|
19
|
+
create(db: Database.Database): IEventBus;
|
|
20
|
+
/**
|
|
21
|
+
* Wraps a projector method as an IEventHandler.
|
|
22
|
+
*/
|
|
23
|
+
private wrap;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=ProjectionBusFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectionBusFactory.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/messaging/ProjectionBusFactory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AA6FrE,qBAAa,oBAAoB;IAE/B;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,SAAS;IA2JxC;;OAEG;IACH,OAAO,CAAC,IAAI;CAGb"}
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Factory that creates an event bus wired with projection-only handlers.
|
|
4
|
+
*
|
|
5
|
+
* Used during database rebuild to replay events through pure projectors
|
|
6
|
+
* without triggering side effects (cascades, maintenance goals, command
|
|
7
|
+
* handlers). Side-effect events are already persisted in the event store
|
|
8
|
+
* from original execution and are replayed as regular projection events.
|
|
9
|
+
*
|
|
10
|
+
* Each projector performs a single synchronous SQLite write with no
|
|
11
|
+
* cross-aggregate reads, so parallel execution via InProcessEventBus
|
|
12
|
+
* is safe.
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.ProjectionBusFactory = void 0;
|
|
16
|
+
const InProcessEventBus_js_1 = require("./InProcessEventBus.js");
|
|
17
|
+
// Session projectors
|
|
18
|
+
const SqliteSessionStartedProjector_js_1 = require("../context/sessions/start/SqliteSessionStartedProjector.js");
|
|
19
|
+
const SqliteSessionEndedProjector_js_1 = require("../context/sessions/end/SqliteSessionEndedProjector.js");
|
|
20
|
+
// Goal projectors
|
|
21
|
+
const SqliteGoalAddedProjector_js_1 = require("../context/goals/add/SqliteGoalAddedProjector.js");
|
|
22
|
+
const SqliteGoalStartedProjector_js_1 = require("../context/goals/start/SqliteGoalStartedProjector.js");
|
|
23
|
+
const SqliteGoalUpdatedProjector_js_1 = require("../context/goals/update/SqliteGoalUpdatedProjector.js");
|
|
24
|
+
const SqliteGoalBlockedProjector_js_1 = require("../context/goals/block/SqliteGoalBlockedProjector.js");
|
|
25
|
+
const SqliteGoalUnblockedProjector_js_1 = require("../context/goals/unblock/SqliteGoalUnblockedProjector.js");
|
|
26
|
+
const SqliteGoalPausedProjector_js_1 = require("../context/goals/pause/SqliteGoalPausedProjector.js");
|
|
27
|
+
const SqliteGoalResumedProjector_js_1 = require("../context/goals/resume/SqliteGoalResumedProjector.js");
|
|
28
|
+
const SqliteGoalCompletedProjector_js_1 = require("../context/goals/complete/SqliteGoalCompletedProjector.js");
|
|
29
|
+
const SqliteGoalRefinedProjector_js_1 = require("../context/goals/refine/SqliteGoalRefinedProjector.js");
|
|
30
|
+
const SqliteGoalResetProjector_js_1 = require("../context/goals/reset/SqliteGoalResetProjector.js");
|
|
31
|
+
const SqliteGoalRemovedProjector_js_1 = require("../context/goals/remove/SqliteGoalRemovedProjector.js");
|
|
32
|
+
const SqliteGoalProgressUpdatedProjector_js_1 = require("../context/goals/update-progress/SqliteGoalProgressUpdatedProjector.js");
|
|
33
|
+
const SqliteGoalSubmittedForReviewProjector_js_1 = require("../context/goals/review/SqliteGoalSubmittedForReviewProjector.js");
|
|
34
|
+
const SqliteGoalQualifiedProjector_js_1 = require("../context/goals/qualify/SqliteGoalQualifiedProjector.js");
|
|
35
|
+
const SqliteGoalCommittedProjector_js_1 = require("../context/goals/commit/SqliteGoalCommittedProjector.js");
|
|
36
|
+
const SqliteGoalRejectedProjector_js_1 = require("../context/goals/reject/SqliteGoalRejectedProjector.js");
|
|
37
|
+
const SqliteGoalSubmittedProjector_js_1 = require("../context/goals/submit/SqliteGoalSubmittedProjector.js");
|
|
38
|
+
const SqliteGoalCodifyingStartedProjector_js_1 = require("../context/goals/codify/SqliteGoalCodifyingStartedProjector.js");
|
|
39
|
+
const SqliteGoalClosedProjector_js_1 = require("../context/goals/close/SqliteGoalClosedProjector.js");
|
|
40
|
+
const SqliteGoalApprovedProjector_js_1 = require("../context/goals/approve/SqliteGoalApprovedProjector.js");
|
|
41
|
+
const SqliteGoalStatusMigratedProjector_js_1 = require("../context/goals/migrate/SqliteGoalStatusMigratedProjector.js");
|
|
42
|
+
// Architecture projectors
|
|
43
|
+
const SqliteArchitectureDefinedProjector_js_1 = require("../context/architecture/define/SqliteArchitectureDefinedProjector.js");
|
|
44
|
+
const SqliteArchitectureUpdatedProjector_js_1 = require("../context/architecture/update/SqliteArchitectureUpdatedProjector.js");
|
|
45
|
+
// Component projectors
|
|
46
|
+
const SqliteComponentAddedProjector_js_1 = require("../context/components/add/SqliteComponentAddedProjector.js");
|
|
47
|
+
const SqliteComponentUpdatedProjector_js_1 = require("../context/components/update/SqliteComponentUpdatedProjector.js");
|
|
48
|
+
const SqliteComponentDeprecatedProjector_js_1 = require("../context/components/deprecate/SqliteComponentDeprecatedProjector.js");
|
|
49
|
+
const SqliteComponentUndeprecatedProjector_js_1 = require("../context/components/undeprecate/SqliteComponentUndeprecatedProjector.js");
|
|
50
|
+
const SqliteComponentRemovedProjector_js_1 = require("../context/components/remove/SqliteComponentRemovedProjector.js");
|
|
51
|
+
const SqliteComponentRenamedProjector_js_1 = require("../context/components/rename/SqliteComponentRenamedProjector.js");
|
|
52
|
+
// Dependency projectors
|
|
53
|
+
const SqliteDependencyAddedProjector_js_1 = require("../context/dependencies/add/SqliteDependencyAddedProjector.js");
|
|
54
|
+
const SqliteDependencyUpdatedProjector_js_1 = require("../context/dependencies/update/SqliteDependencyUpdatedProjector.js");
|
|
55
|
+
const SqliteDependencyRemovedProjector_js_1 = require("../context/dependencies/remove/SqliteDependencyRemovedProjector.js");
|
|
56
|
+
// Decision projectors
|
|
57
|
+
const SqliteDecisionAddedProjector_js_1 = require("../context/decisions/add/SqliteDecisionAddedProjector.js");
|
|
58
|
+
const SqliteDecisionUpdatedProjector_js_1 = require("../context/decisions/update/SqliteDecisionUpdatedProjector.js");
|
|
59
|
+
const SqliteDecisionReversedProjector_js_1 = require("../context/decisions/reverse/SqliteDecisionReversedProjector.js");
|
|
60
|
+
const SqliteDecisionRestoredProjector_js_1 = require("../context/decisions/restore/SqliteDecisionRestoredProjector.js");
|
|
61
|
+
const SqliteDecisionSupersededProjector_js_1 = require("../context/decisions/supersede/SqliteDecisionSupersededProjector.js");
|
|
62
|
+
// Guideline projectors
|
|
63
|
+
const SqliteGuidelineAddedProjector_js_1 = require("../context/guidelines/add/SqliteGuidelineAddedProjector.js");
|
|
64
|
+
const SqliteGuidelineUpdatedProjector_js_1 = require("../context/guidelines/update/SqliteGuidelineUpdatedProjector.js");
|
|
65
|
+
const SqliteGuidelineRemovedProjector_js_1 = require("../context/guidelines/remove/SqliteGuidelineRemovedProjector.js");
|
|
66
|
+
// Invariant projectors
|
|
67
|
+
const SqliteInvariantAddedProjector_js_1 = require("../context/invariants/add/SqliteInvariantAddedProjector.js");
|
|
68
|
+
const SqliteInvariantUpdatedProjector_js_1 = require("../context/invariants/update/SqliteInvariantUpdatedProjector.js");
|
|
69
|
+
const SqliteInvariantRemovedProjector_js_1 = require("../context/invariants/remove/SqliteInvariantRemovedProjector.js");
|
|
70
|
+
// Project projectors
|
|
71
|
+
const SqliteProjectInitializedProjector_js_1 = require("../context/project/init/SqliteProjectInitializedProjector.js");
|
|
72
|
+
const SqliteProjectUpdatedProjector_js_1 = require("../context/project/update/SqliteProjectUpdatedProjector.js");
|
|
73
|
+
// Audience pain projectors
|
|
74
|
+
const SqliteAudiencePainAddedProjector_js_1 = require("../context/audience-pains/add/SqliteAudiencePainAddedProjector.js");
|
|
75
|
+
const SqliteAudiencePainUpdatedProjector_js_1 = require("../context/audience-pains/update/SqliteAudiencePainUpdatedProjector.js");
|
|
76
|
+
// Audience projectors
|
|
77
|
+
const SqliteAudienceAddedProjector_js_1 = require("../context/audiences/add/SqliteAudienceAddedProjector.js");
|
|
78
|
+
const SqliteAudienceUpdatedProjector_js_1 = require("../context/audiences/update/SqliteAudienceUpdatedProjector.js");
|
|
79
|
+
const SqliteAudienceRemovedProjector_js_1 = require("../context/audiences/remove/SqliteAudienceRemovedProjector.js");
|
|
80
|
+
// Value proposition projectors
|
|
81
|
+
const SqliteValuePropositionAddedProjector_js_1 = require("../context/value-propositions/add/SqliteValuePropositionAddedProjector.js");
|
|
82
|
+
const SqliteValuePropositionUpdatedProjector_js_1 = require("../context/value-propositions/update/SqliteValuePropositionUpdatedProjector.js");
|
|
83
|
+
const SqliteValuePropositionRemovedProjector_js_1 = require("../context/value-propositions/remove/SqliteValuePropositionRemovedProjector.js");
|
|
84
|
+
// Relation projectors
|
|
85
|
+
const SqliteRelationAddedProjector_js_1 = require("../context/relations/add/SqliteRelationAddedProjector.js");
|
|
86
|
+
const SqliteRelationDeactivatedProjector_js_1 = require("../context/relations/deactivate/SqliteRelationDeactivatedProjector.js");
|
|
87
|
+
const SqliteRelationReactivatedProjector_js_1 = require("../context/relations/reactivate/SqliteRelationReactivatedProjector.js");
|
|
88
|
+
const SqliteRelationRemovedProjector_js_1 = require("../context/relations/remove/SqliteRelationRemovedProjector.js");
|
|
89
|
+
// Worker identity projectors
|
|
90
|
+
const SqliteWorkerIdentifiedProjector_js_1 = require("../host/workers/identify/SqliteWorkerIdentifiedProjector.js");
|
|
91
|
+
class ProjectionBusFactory {
|
|
92
|
+
/**
|
|
93
|
+
* Creates an event bus with projection-only handlers for the given database.
|
|
94
|
+
*/
|
|
95
|
+
create(db) {
|
|
96
|
+
const bus = new InProcessEventBus_js_1.InProcessEventBus();
|
|
97
|
+
// Session projections
|
|
98
|
+
const sessionStartedProjector = new SqliteSessionStartedProjector_js_1.SqliteSessionStartedProjector(db);
|
|
99
|
+
const sessionEndedProjector = new SqliteSessionEndedProjector_js_1.SqliteSessionEndedProjector(db);
|
|
100
|
+
bus.subscribe("SessionStartedEvent", this.wrap((e) => sessionStartedProjector.applySessionStarted(e)));
|
|
101
|
+
bus.subscribe("SessionEndedEvent", this.wrap((e) => sessionEndedProjector.applySessionEnded(e)));
|
|
102
|
+
// Goal projections
|
|
103
|
+
const goalAddedProjector = new SqliteGoalAddedProjector_js_1.SqliteGoalAddedProjector(db);
|
|
104
|
+
const goalStartedProjector = new SqliteGoalStartedProjector_js_1.SqliteGoalStartedProjector(db);
|
|
105
|
+
const goalUpdatedProjector = new SqliteGoalUpdatedProjector_js_1.SqliteGoalUpdatedProjector(db);
|
|
106
|
+
const goalBlockedProjector = new SqliteGoalBlockedProjector_js_1.SqliteGoalBlockedProjector(db);
|
|
107
|
+
const goalUnblockedProjector = new SqliteGoalUnblockedProjector_js_1.SqliteGoalUnblockedProjector(db);
|
|
108
|
+
const goalPausedProjector = new SqliteGoalPausedProjector_js_1.SqliteGoalPausedProjector(db);
|
|
109
|
+
const goalResumedProjector = new SqliteGoalResumedProjector_js_1.SqliteGoalResumedProjector(db);
|
|
110
|
+
const goalCompletedProjector = new SqliteGoalCompletedProjector_js_1.SqliteGoalCompletedProjector(db);
|
|
111
|
+
const goalRefinedProjector = new SqliteGoalRefinedProjector_js_1.SqliteGoalRefinedProjector(db);
|
|
112
|
+
const goalResetProjector = new SqliteGoalResetProjector_js_1.SqliteGoalResetProjector(db);
|
|
113
|
+
const goalRemovedProjector = new SqliteGoalRemovedProjector_js_1.SqliteGoalRemovedProjector(db);
|
|
114
|
+
const goalProgressUpdatedProjector = new SqliteGoalProgressUpdatedProjector_js_1.SqliteGoalProgressUpdatedProjector(db);
|
|
115
|
+
const goalSubmittedForReviewProjector = new SqliteGoalSubmittedForReviewProjector_js_1.SqliteGoalSubmittedForReviewProjector(db);
|
|
116
|
+
const goalQualifiedProjector = new SqliteGoalQualifiedProjector_js_1.SqliteGoalQualifiedProjector(db);
|
|
117
|
+
const goalCommittedProjector = new SqliteGoalCommittedProjector_js_1.SqliteGoalCommittedProjector(db);
|
|
118
|
+
const goalRejectedProjector = new SqliteGoalRejectedProjector_js_1.SqliteGoalRejectedProjector(db);
|
|
119
|
+
const goalSubmittedProjector = new SqliteGoalSubmittedProjector_js_1.SqliteGoalSubmittedProjector(db);
|
|
120
|
+
const goalCodifyingStartedProjector = new SqliteGoalCodifyingStartedProjector_js_1.SqliteGoalCodifyingStartedProjector(db);
|
|
121
|
+
const goalClosedProjector = new SqliteGoalClosedProjector_js_1.SqliteGoalClosedProjector(db);
|
|
122
|
+
const goalApprovedProjector = new SqliteGoalApprovedProjector_js_1.SqliteGoalApprovedProjector(db);
|
|
123
|
+
const goalStatusMigratedProjector = new SqliteGoalStatusMigratedProjector_js_1.SqliteGoalStatusMigratedProjector(db);
|
|
124
|
+
bus.subscribe("GoalAddedEvent", this.wrap((e) => goalAddedProjector.applyGoalAdded(e)));
|
|
125
|
+
bus.subscribe("GoalStartedEvent", this.wrap((e) => goalStartedProjector.applyGoalStarted(e)));
|
|
126
|
+
bus.subscribe("GoalUpdatedEvent", this.wrap((e) => goalUpdatedProjector.applyGoalUpdated(e)));
|
|
127
|
+
bus.subscribe("GoalBlockedEvent", this.wrap((e) => goalBlockedProjector.applyGoalBlocked(e)));
|
|
128
|
+
bus.subscribe("GoalUnblockedEvent", this.wrap((e) => goalUnblockedProjector.applyGoalUnblocked(e)));
|
|
129
|
+
bus.subscribe("GoalPausedEvent", this.wrap((e) => goalPausedProjector.applyGoalPaused(e)));
|
|
130
|
+
bus.subscribe("GoalResumedEvent", this.wrap((e) => goalResumedProjector.applyGoalResumed(e)));
|
|
131
|
+
bus.subscribe("GoalCompletedEvent", this.wrap((e) => goalCompletedProjector.applyGoalCompleted(e)));
|
|
132
|
+
bus.subscribe("GoalRefinedEvent", this.wrap((e) => goalRefinedProjector.applyGoalRefined(e)));
|
|
133
|
+
bus.subscribe("GoalResetEvent", this.wrap((e) => goalResetProjector.applyGoalReset(e)));
|
|
134
|
+
bus.subscribe("GoalRemovedEvent", this.wrap((e) => goalRemovedProjector.applyGoalRemoved(e)));
|
|
135
|
+
bus.subscribe("GoalProgressUpdatedEvent", this.wrap((e) => goalProgressUpdatedProjector.applyGoalProgressUpdated(e)));
|
|
136
|
+
bus.subscribe("GoalSubmittedForReviewEvent", this.wrap((e) => goalSubmittedForReviewProjector.applyGoalSubmittedForReview(e)));
|
|
137
|
+
bus.subscribe("GoalQualifiedEvent", this.wrap((e) => goalQualifiedProjector.applyGoalQualified(e)));
|
|
138
|
+
bus.subscribe("GoalRefinementStartedEvent", this.wrap((e) => goalRefinedProjector.applyGoalRefinementStarted(e)));
|
|
139
|
+
bus.subscribe("GoalCommittedEvent", this.wrap((e) => goalCommittedProjector.applyGoalCommitted(e)));
|
|
140
|
+
bus.subscribe("GoalRejectedEvent", this.wrap((e) => goalRejectedProjector.applyGoalRejected(e)));
|
|
141
|
+
bus.subscribe("GoalSubmittedEvent", this.wrap((e) => goalSubmittedProjector.applyGoalSubmitted(e)));
|
|
142
|
+
bus.subscribe("GoalCodifyingStartedEvent", this.wrap((e) => goalCodifyingStartedProjector.applyGoalCodifyingStarted(e)));
|
|
143
|
+
bus.subscribe("GoalClosedEvent", this.wrap((e) => goalClosedProjector.applyGoalClosed(e)));
|
|
144
|
+
bus.subscribe("GoalApprovedEvent", this.wrap((e) => goalApprovedProjector.applyGoalApproved(e)));
|
|
145
|
+
bus.subscribe("GoalStatusMigratedEvent", this.wrap((e) => goalStatusMigratedProjector.applyGoalStatusMigrated(e)));
|
|
146
|
+
// Architecture projections
|
|
147
|
+
const architectureDefinedProjector = new SqliteArchitectureDefinedProjector_js_1.SqliteArchitectureDefinedProjector(db);
|
|
148
|
+
const architectureUpdatedProjector = new SqliteArchitectureUpdatedProjector_js_1.SqliteArchitectureUpdatedProjector(db);
|
|
149
|
+
bus.subscribe("ArchitectureDefinedEvent", this.wrap((e) => architectureDefinedProjector.applyArchitectureDefined(e)));
|
|
150
|
+
bus.subscribe("ArchitectureUpdatedEvent", this.wrap((e) => architectureUpdatedProjector.applyArchitectureUpdated(e)));
|
|
151
|
+
// Component projections (projection-only — no cascades)
|
|
152
|
+
const componentAddedProjector = new SqliteComponentAddedProjector_js_1.SqliteComponentAddedProjector(db);
|
|
153
|
+
const componentUpdatedProjector = new SqliteComponentUpdatedProjector_js_1.SqliteComponentUpdatedProjector(db);
|
|
154
|
+
const componentDeprecatedProjector = new SqliteComponentDeprecatedProjector_js_1.SqliteComponentDeprecatedProjector(db);
|
|
155
|
+
const componentUndeprecatedProjector = new SqliteComponentUndeprecatedProjector_js_1.SqliteComponentUndeprecatedProjector(db);
|
|
156
|
+
const componentRemovedProjector = new SqliteComponentRemovedProjector_js_1.SqliteComponentRemovedProjector(db);
|
|
157
|
+
const componentRenamedProjector = new SqliteComponentRenamedProjector_js_1.SqliteComponentRenamedProjector(db);
|
|
158
|
+
bus.subscribe("ComponentAddedEvent", this.wrap((e) => componentAddedProjector.applyComponentAdded(e)));
|
|
159
|
+
bus.subscribe("ComponentUpdatedEvent", this.wrap((e) => componentUpdatedProjector.applyComponentUpdated(e)));
|
|
160
|
+
bus.subscribe("ComponentDeprecatedEvent", this.wrap((e) => componentDeprecatedProjector.applyComponentDeprecated(e)));
|
|
161
|
+
bus.subscribe("ComponentUndeprecatedEvent", this.wrap((e) => componentUndeprecatedProjector.applyComponentUndeprecated(e)));
|
|
162
|
+
bus.subscribe("ComponentRemovedEvent", this.wrap((e) => componentRemovedProjector.applyComponentRemoved(e)));
|
|
163
|
+
bus.subscribe("ComponentRenamedEvent", this.wrap((e) => componentRenamedProjector.applyComponentRenamed(e)));
|
|
164
|
+
// Dependency projections
|
|
165
|
+
const dependencyAddedProjector = new SqliteDependencyAddedProjector_js_1.SqliteDependencyAddedProjector(db);
|
|
166
|
+
const dependencyUpdatedProjector = new SqliteDependencyUpdatedProjector_js_1.SqliteDependencyUpdatedProjector(db);
|
|
167
|
+
const dependencyRemovedProjector = new SqliteDependencyRemovedProjector_js_1.SqliteDependencyRemovedProjector(db);
|
|
168
|
+
bus.subscribe("DependencyAddedEvent", this.wrap((e) => dependencyAddedProjector.applyDependencyAdded(e)));
|
|
169
|
+
bus.subscribe("DependencyUpdatedEvent", this.wrap((e) => dependencyUpdatedProjector.applyDependencyUpdated(e)));
|
|
170
|
+
bus.subscribe("DependencyRemovedEvent", this.wrap((e) => dependencyRemovedProjector.applyDependencyRemoved(e)));
|
|
171
|
+
// Decision projections (projection-only — no cascades)
|
|
172
|
+
const decisionAddedProjector = new SqliteDecisionAddedProjector_js_1.SqliteDecisionAddedProjector(db);
|
|
173
|
+
const decisionUpdatedProjector = new SqliteDecisionUpdatedProjector_js_1.SqliteDecisionUpdatedProjector(db);
|
|
174
|
+
const decisionReversedProjector = new SqliteDecisionReversedProjector_js_1.SqliteDecisionReversedProjector(db);
|
|
175
|
+
const decisionRestoredProjector = new SqliteDecisionRestoredProjector_js_1.SqliteDecisionRestoredProjector(db);
|
|
176
|
+
const decisionSupersededProjector = new SqliteDecisionSupersededProjector_js_1.SqliteDecisionSupersededProjector(db);
|
|
177
|
+
bus.subscribe("DecisionAddedEvent", this.wrap((e) => decisionAddedProjector.applyDecisionAdded(e)));
|
|
178
|
+
bus.subscribe("DecisionUpdatedEvent", this.wrap((e) => decisionUpdatedProjector.applyDecisionUpdated(e)));
|
|
179
|
+
bus.subscribe("DecisionReversedEvent", this.wrap((e) => decisionReversedProjector.applyDecisionReversed(e)));
|
|
180
|
+
bus.subscribe("DecisionRestoredEvent", this.wrap((e) => decisionRestoredProjector.applyDecisionRestored(e)));
|
|
181
|
+
bus.subscribe("DecisionSupersededEvent", this.wrap((e) => decisionSupersededProjector.applyDecisionSuperseded(e)));
|
|
182
|
+
// Guideline projections
|
|
183
|
+
const guidelineAddedProjector = new SqliteGuidelineAddedProjector_js_1.SqliteGuidelineAddedProjector(db);
|
|
184
|
+
const guidelineUpdatedProjector = new SqliteGuidelineUpdatedProjector_js_1.SqliteGuidelineUpdatedProjector(db);
|
|
185
|
+
const guidelineRemovedProjector = new SqliteGuidelineRemovedProjector_js_1.SqliteGuidelineRemovedProjector(db);
|
|
186
|
+
bus.subscribe("GuidelineAddedEvent", this.wrap((e) => guidelineAddedProjector.applyGuidelineAdded(e)));
|
|
187
|
+
bus.subscribe("GuidelineUpdatedEvent", this.wrap((e) => guidelineUpdatedProjector.applyGuidelineUpdated(e)));
|
|
188
|
+
bus.subscribe("GuidelineRemovedEvent", this.wrap((e) => guidelineRemovedProjector.applyGuidelineRemoved(e)));
|
|
189
|
+
// Invariant projections
|
|
190
|
+
const invariantAddedProjector = new SqliteInvariantAddedProjector_js_1.SqliteInvariantAddedProjector(db);
|
|
191
|
+
const invariantUpdatedProjector = new SqliteInvariantUpdatedProjector_js_1.SqliteInvariantUpdatedProjector(db);
|
|
192
|
+
const invariantRemovedProjector = new SqliteInvariantRemovedProjector_js_1.SqliteInvariantRemovedProjector(db);
|
|
193
|
+
bus.subscribe("InvariantAddedEvent", this.wrap((e) => invariantAddedProjector.applyInvariantAdded(e)));
|
|
194
|
+
bus.subscribe("InvariantUpdatedEvent", this.wrap((e) => invariantUpdatedProjector.applyInvariantUpdated(e)));
|
|
195
|
+
bus.subscribe("InvariantRemovedEvent", this.wrap((e) => invariantRemovedProjector.applyInvariantRemoved(e)));
|
|
196
|
+
// Project projections
|
|
197
|
+
const projectInitializedProjector = new SqliteProjectInitializedProjector_js_1.SqliteProjectInitializedProjector(db);
|
|
198
|
+
const projectUpdatedProjector = new SqliteProjectUpdatedProjector_js_1.SqliteProjectUpdatedProjector(db);
|
|
199
|
+
bus.subscribe("ProjectInitializedEvent", this.wrap((e) => projectInitializedProjector.applyProjectInitialized(e)));
|
|
200
|
+
bus.subscribe("ProjectUpdatedEvent", this.wrap((e) => projectUpdatedProjector.applyProjectUpdated(e)));
|
|
201
|
+
// Audience pain projections
|
|
202
|
+
const audiencePainAddedProjector = new SqliteAudiencePainAddedProjector_js_1.SqliteAudiencePainAddedProjector(db);
|
|
203
|
+
const audiencePainUpdatedProjector = new SqliteAudiencePainUpdatedProjector_js_1.SqliteAudiencePainUpdatedProjector(db);
|
|
204
|
+
bus.subscribe("AudiencePainAddedEvent", this.wrap((e) => audiencePainAddedProjector.applyAudiencePainAdded(e)));
|
|
205
|
+
bus.subscribe("AudiencePainUpdatedEvent", this.wrap((e) => audiencePainUpdatedProjector.applyAudiencePainUpdated(e)));
|
|
206
|
+
// Audience projections
|
|
207
|
+
const audienceAddedProjector = new SqliteAudienceAddedProjector_js_1.SqliteAudienceAddedProjector(db);
|
|
208
|
+
const audienceUpdatedProjector = new SqliteAudienceUpdatedProjector_js_1.SqliteAudienceUpdatedProjector(db);
|
|
209
|
+
const audienceRemovedProjector = new SqliteAudienceRemovedProjector_js_1.SqliteAudienceRemovedProjector(db);
|
|
210
|
+
bus.subscribe("AudienceAddedEvent", this.wrap((e) => audienceAddedProjector.applyAudienceAdded(e)));
|
|
211
|
+
bus.subscribe("AudienceUpdatedEvent", this.wrap((e) => audienceUpdatedProjector.applyAudienceUpdated(e)));
|
|
212
|
+
bus.subscribe("AudienceRemovedEvent", this.wrap((e) => audienceRemovedProjector.applyAudienceRemoved(e)));
|
|
213
|
+
// Value proposition projections
|
|
214
|
+
const valuePropositionAddedProjector = new SqliteValuePropositionAddedProjector_js_1.SqliteValuePropositionAddedProjector(db);
|
|
215
|
+
const valuePropositionUpdatedProjector = new SqliteValuePropositionUpdatedProjector_js_1.SqliteValuePropositionUpdatedProjector(db);
|
|
216
|
+
const valuePropositionRemovedProjector = new SqliteValuePropositionRemovedProjector_js_1.SqliteValuePropositionRemovedProjector(db);
|
|
217
|
+
bus.subscribe("ValuePropositionAddedEvent", this.wrap((e) => valuePropositionAddedProjector.applyValuePropositionAdded(e)));
|
|
218
|
+
bus.subscribe("ValuePropositionUpdatedEvent", this.wrap((e) => valuePropositionUpdatedProjector.applyValuePropositionUpdated(e)));
|
|
219
|
+
bus.subscribe("ValuePropositionRemovedEvent", this.wrap((e) => valuePropositionRemovedProjector.applyValuePropositionRemoved(e)));
|
|
220
|
+
// Relation projections
|
|
221
|
+
const relationAddedProjector = new SqliteRelationAddedProjector_js_1.SqliteRelationAddedProjector(db);
|
|
222
|
+
const relationDeactivatedProjector = new SqliteRelationDeactivatedProjector_js_1.SqliteRelationDeactivatedProjector(db);
|
|
223
|
+
const relationReactivatedProjector = new SqliteRelationReactivatedProjector_js_1.SqliteRelationReactivatedProjector(db);
|
|
224
|
+
const relationRemovedProjector = new SqliteRelationRemovedProjector_js_1.SqliteRelationRemovedProjector(db);
|
|
225
|
+
bus.subscribe("RelationAddedEvent", this.wrap((e) => relationAddedProjector.applyRelationAdded(e)));
|
|
226
|
+
bus.subscribe("RelationDeactivatedEvent", this.wrap((e) => relationDeactivatedProjector.applyRelationDeactivated(e)));
|
|
227
|
+
bus.subscribe("RelationReactivatedEvent", this.wrap((e) => relationReactivatedProjector.applyRelationReactivated(e)));
|
|
228
|
+
bus.subscribe("RelationRemovedEvent", this.wrap((e) => relationRemovedProjector.applyRelationRemoved(e)));
|
|
229
|
+
// Worker identity projections
|
|
230
|
+
const workerIdentifiedProjector = new SqliteWorkerIdentifiedProjector_js_1.SqliteWorkerIdentifiedProjector(db);
|
|
231
|
+
bus.subscribe("WorkerIdentifiedEvent", this.wrap((e) => workerIdentifiedProjector.applyWorkerIdentified(e)));
|
|
232
|
+
return bus;
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Wraps a projector method as an IEventHandler.
|
|
236
|
+
*/
|
|
237
|
+
wrap(fn) {
|
|
238
|
+
return { handle: async (event) => { await fn(event); } };
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
exports.ProjectionBusFactory = ProjectionBusFactory;
|
|
242
|
+
//# sourceMappingURL=ProjectionBusFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectionBusFactory.js","sourceRoot":"","sources":["../../../src/infrastructure/messaging/ProjectionBusFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Braille Spinner
|
|
3
|
+
*
|
|
4
|
+
* Single-character braille spinner that cycles through the letters of a word,
|
|
5
|
+
* displayed alongside the latin text with a continuous gradient shimmer.
|
|
6
|
+
*/
|
|
7
|
+
/** Mapping of latin letters to braille equivalents */
|
|
8
|
+
export declare const BRAILLE_MAP: Record<string, string>;
|
|
9
|
+
export interface BrailleSpinnerConfig {
|
|
10
|
+
/** The word to spell in braille and display as latin text */
|
|
11
|
+
label: string;
|
|
12
|
+
/** Frames to hold each braille letter (default 8) */
|
|
13
|
+
frameHold?: number;
|
|
14
|
+
/** Timer interval in ms (default 100) */
|
|
15
|
+
intervalMs?: number;
|
|
16
|
+
/** Write function (default: process.stderr.write) */
|
|
17
|
+
write?: (s: string) => void;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Start a braille spinner animation.
|
|
21
|
+
*
|
|
22
|
+
* Displays: `⠺ Waiting...` where the braille character cycles through
|
|
23
|
+
* each letter of the word, and the entire line shimmers through the
|
|
24
|
+
* gradient spectrum with per-character color offsets.
|
|
25
|
+
*
|
|
26
|
+
* Returns a handle with `stop()` to clear the animation and restore cursor.
|
|
27
|
+
*/
|
|
28
|
+
export declare function startBrailleSpinner(config: BrailleSpinnerConfig): {
|
|
29
|
+
stop: () => void;
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=BrailleSpinner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BrailleSpinner.d.ts","sourceRoot":"","sources":["../../../../src/presentation/cli/animations/BrailleSpinner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,sDAAsD;AACtD,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAK9C,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,oBAAoB,GAAG;IAAE,IAAI,EAAE,MAAM,IAAI,CAAA;CAAE,CA+CtF"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Braille Spinner
|
|
4
|
+
*
|
|
5
|
+
* Single-character braille spinner that cycles through the letters of a word,
|
|
6
|
+
* displayed alongside the latin text with a continuous gradient shimmer.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.BRAILLE_MAP = void 0;
|
|
10
|
+
exports.startBrailleSpinner = startBrailleSpinner;
|
|
11
|
+
const GradientPalette_js_1 = require("./GradientPalette.js");
|
|
12
|
+
const RESET = "\x1b[0m";
|
|
13
|
+
const HIDE_CURSOR = "\x1b[?25l";
|
|
14
|
+
const SHOW_CURSOR = "\x1b[?25h";
|
|
15
|
+
/** Mapping of latin letters to braille equivalents */
|
|
16
|
+
exports.BRAILLE_MAP = {
|
|
17
|
+
a: "⠁", b: "⠃", c: "⠉", d: "⠙", e: "⠑", f: "⠋", g: "⠛", h: "⠓",
|
|
18
|
+
i: "⠊", j: "⠚", k: "⠅", l: "⠇", m: "⠍", n: "⠝", o: "⠕", p: "⠏",
|
|
19
|
+
q: "⠟", r: "⠗", s: "⠎", t: "⠞", u: "⠥", v: "⠧", w: "⠺", x: "⠭",
|
|
20
|
+
y: "⠽", z: "⠵", " ": "⠀",
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Start a braille spinner animation.
|
|
24
|
+
*
|
|
25
|
+
* Displays: `⠺ Waiting...` where the braille character cycles through
|
|
26
|
+
* each letter of the word, and the entire line shimmers through the
|
|
27
|
+
* gradient spectrum with per-character color offsets.
|
|
28
|
+
*
|
|
29
|
+
* Returns a handle with `stop()` to clear the animation and restore cursor.
|
|
30
|
+
*/
|
|
31
|
+
function startBrailleSpinner(config) {
|
|
32
|
+
const { label, frameHold = 8, intervalMs = 100, write = (s) => process.stderr.write(s), } = config;
|
|
33
|
+
const brailleSeq = label
|
|
34
|
+
.toLowerCase()
|
|
35
|
+
.split("")
|
|
36
|
+
.map((ch) => exports.BRAILLE_MAP[ch] ?? "⠿");
|
|
37
|
+
const capitalLabel = label.charAt(0).toUpperCase() + label.slice(1);
|
|
38
|
+
const totalSteps = brailleSeq.length * frameHold;
|
|
39
|
+
// Non-TTY fallback
|
|
40
|
+
if (!process.stderr.isTTY) {
|
|
41
|
+
write(` ${capitalLabel}...\n`);
|
|
42
|
+
return { stop() { } };
|
|
43
|
+
}
|
|
44
|
+
let frame = 0;
|
|
45
|
+
write(HIDE_CURSOR);
|
|
46
|
+
const timer = setInterval(() => {
|
|
47
|
+
const step = frame % totalSteps;
|
|
48
|
+
const charIndex = Math.floor(step / frameHold) % brailleSeq.length;
|
|
49
|
+
const text = `${brailleSeq[charIndex]} ${capitalLabel}...`;
|
|
50
|
+
let rendered = " ";
|
|
51
|
+
for (let i = 0; i < text.length; i++) {
|
|
52
|
+
const [r, g, b] = (0, GradientPalette_js_1.getSmoothedColor)(frame * 3 - i * 8);
|
|
53
|
+
rendered += `${(0, GradientPalette_js_1.rgb)(r, g, b)}${text[i]}`;
|
|
54
|
+
}
|
|
55
|
+
rendered += RESET;
|
|
56
|
+
write(`\r${rendered} `);
|
|
57
|
+
frame++;
|
|
58
|
+
}, intervalMs);
|
|
59
|
+
return {
|
|
60
|
+
stop() {
|
|
61
|
+
clearInterval(timer);
|
|
62
|
+
write(SHOW_CURSOR);
|
|
63
|
+
write(`\r\x1b[2K`);
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=BrailleSpinner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BrailleSpinner.js","sourceRoot":"","sources":["../../../../src/presentation/cli/animations/BrailleSpinner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Glimmer Effect
|
|
3
|
+
*
|
|
4
|
+
* Sweep-highlight animation for text: displays text in a base color,
|
|
5
|
+
* sweeps a bright highlight across it, then flashes and settles.
|
|
6
|
+
*/
|
|
7
|
+
export interface GlimmerConfig {
|
|
8
|
+
/** ANSI escape for the base text color */
|
|
9
|
+
baseColor: string;
|
|
10
|
+
/** ANSI escape for the sweep highlight color */
|
|
11
|
+
highlightColor: string;
|
|
12
|
+
/** Number of characters in the highlight band (default 3) */
|
|
13
|
+
sweepWidth?: number;
|
|
14
|
+
/** Milliseconds per sweep step (default 40) */
|
|
15
|
+
sweepMs?: number;
|
|
16
|
+
/** Milliseconds to hold the flash (default 100) */
|
|
17
|
+
flashMs?: number;
|
|
18
|
+
/** Milliseconds to hold before sweep starts (default 200) */
|
|
19
|
+
settleMs?: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Play a glimmer animation on a text string.
|
|
23
|
+
*
|
|
24
|
+
* 1. Show text in base color
|
|
25
|
+
* 2. Sweep a bright highlight left → right
|
|
26
|
+
* 3. Flash the full text bright
|
|
27
|
+
* 4. Settle back to base color
|
|
28
|
+
*
|
|
29
|
+
* Degrades to a single print in non-TTY mode.
|
|
30
|
+
*/
|
|
31
|
+
export declare function playGlimmer(text: string, padding: string, config: GlimmerConfig, write?: (s: string) => void): Promise<void>;
|
|
32
|
+
//# sourceMappingURL=GlimmerEffect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GlimmerEffect.d.ts","sourceRoot":"","sources":["../../../../src/presentation/cli/animations/GlimmerEffect.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,WAAW,aAAa;IAC5B,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,cAAc,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,aAAa,EACrB,KAAK,GAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAqC,GAC1D,OAAO,CAAC,IAAI,CAAC,CAwCf"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Glimmer Effect
|
|
4
|
+
*
|
|
5
|
+
* Sweep-highlight animation for text: displays text in a base color,
|
|
6
|
+
* sweeps a bright highlight across it, then flashes and settles.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.playGlimmer = playGlimmer;
|
|
10
|
+
const RESET = "\x1b[0m";
|
|
11
|
+
const BOLD = "\x1b[1m";
|
|
12
|
+
function sleep(ms) {
|
|
13
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Play a glimmer animation on a text string.
|
|
17
|
+
*
|
|
18
|
+
* 1. Show text in base color
|
|
19
|
+
* 2. Sweep a bright highlight left → right
|
|
20
|
+
* 3. Flash the full text bright
|
|
21
|
+
* 4. Settle back to base color
|
|
22
|
+
*
|
|
23
|
+
* Degrades to a single print in non-TTY mode.
|
|
24
|
+
*/
|
|
25
|
+
async function playGlimmer(text, padding, config, write = (s) => process.stderr.write(s)) {
|
|
26
|
+
const { baseColor, highlightColor, sweepWidth = 3, sweepMs = 40, flashMs = 100, settleMs = 200, } = config;
|
|
27
|
+
// Non-TTY fallback
|
|
28
|
+
if (!process.stderr.isTTY) {
|
|
29
|
+
write(`${padding}${text}\n`);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
// Show full text in base color
|
|
33
|
+
write(`\r${padding}${BOLD}${baseColor}${text}${RESET}`);
|
|
34
|
+
await sleep(settleMs);
|
|
35
|
+
// Sweep highlight across
|
|
36
|
+
for (let pos = -sweepWidth; pos <= text.length; pos++) {
|
|
37
|
+
let rendered = padding;
|
|
38
|
+
for (let i = 0; i < text.length; i++) {
|
|
39
|
+
if (i >= pos && i < pos + sweepWidth) {
|
|
40
|
+
rendered += `${BOLD}${highlightColor}${text[i]}`;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
rendered += `${BOLD}${baseColor}${text[i]}`;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
write(`\r${rendered}${RESET}`);
|
|
47
|
+
await sleep(sweepMs);
|
|
48
|
+
}
|
|
49
|
+
// Flash pop
|
|
50
|
+
write(`\r${padding}${BOLD}${highlightColor}${text}${RESET}`);
|
|
51
|
+
await sleep(flashMs);
|
|
52
|
+
// Settle back to base
|
|
53
|
+
write(`\r${padding}${BOLD}${baseColor}${text}${RESET}`);
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=GlimmerEffect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GlimmerEffect.js","sourceRoot":"","sources":["../../../../src/presentation/cli/animations/GlimmerEffect.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAkCH,kCA6CC;AA7ED,MAAM,KAAK,GAAG,SAAS,CAAC;AACxB,MAAM,IAAI,GAAG,SAAS,CAAC;AAiBvB,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;;;GASG;AACI,KAAK,UAAU,WAAW,CAC/B,IAAY,EACZ,OAAe,EACf,MAAqB,EACrB,QAA6B,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAE3D,MAAM,EACJ,SAAS,EACT,cAAc,EACd,UAAU,GAAG,CAAC,EACd,OAAO,GAAG,EAAE,EACZ,OAAO,GAAG,GAAG,EACb,QAAQ,GAAG,GAAG,GACf,GAAG,MAAM,CAAC;IAEX,mBAAmB;IACnB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC1B,KAAK,CAAC,GAAG,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,+BAA+B;IAC/B,KAAK,CAAC,KAAK,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC;IACxD,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEtB,yBAAyB;IACzB,KAAK,IAAI,GAAG,GAAG,CAAC,UAAU,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;QACtD,IAAI,QAAQ,GAAG,OAAO,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,UAAU,EAAE,CAAC;gBACrC,QAAQ,IAAI,GAAG,IAAI,GAAG,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,QAAQ,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,CAAC;QACH,CAAC;QACD,KAAK,CAAC,KAAK,QAAQ,GAAG,KAAK,EAAE,CAAC,CAAC;QAC/B,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,YAAY;IACZ,KAAK,CAAC,KAAK,OAAO,GAAG,IAAI,GAAG,cAAc,GAAG,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC;IAC7D,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;IAErB,sBAAsB;IACtB,KAAK,CAAC,KAAK,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC;AAC1D,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gradient Palette
|
|
3
|
+
*
|
|
4
|
+
* Shared color gradient definitions and interpolation utilities for
|
|
5
|
+
* interactive CLI animations. Uses raw ANSI escapes (no chalk) for
|
|
6
|
+
* performance in tight animation loops.
|
|
7
|
+
*/
|
|
8
|
+
export type RGB = [number, number, number];
|
|
9
|
+
/** ANSI true-color foreground escape */
|
|
10
|
+
export declare function rgb(r: number, g: number, b: number): string;
|
|
11
|
+
/** Linear interpolation between two RGB tuples */
|
|
12
|
+
export declare function lerpColor(a: RGB, b: RGB, t: number): RGB;
|
|
13
|
+
/** Build a gradient array of `steps` colors between two RGB endpoints */
|
|
14
|
+
export declare function buildGradient(from: RGB, to: RGB, steps?: number): RGB[];
|
|
15
|
+
/**
|
|
16
|
+
* 10 gradient palettes cycling through the color spectrum.
|
|
17
|
+
* Each gradient has 10 color stops.
|
|
18
|
+
*/
|
|
19
|
+
export declare const GRADIENTS: RGB[][];
|
|
20
|
+
/** All gradient colors flattened into one continuous sequence */
|
|
21
|
+
export declare const SPINNER_COLORS: RGB[];
|
|
22
|
+
/** Total frames for one full slow cycle through the spectrum */
|
|
23
|
+
export declare const COLOR_CYCLE_FRAMES: number;
|
|
24
|
+
/**
|
|
25
|
+
* Get a smoothly interpolated color at a given frame position.
|
|
26
|
+
* Handles negative frames and wraps around the full spectrum.
|
|
27
|
+
*/
|
|
28
|
+
export declare function getSmoothedColor(frame: number): RGB;
|
|
29
|
+
/**
|
|
30
|
+
* Grow/shrink bar animation cycling through all 10 gradients.
|
|
31
|
+
* Alternates direction each cycle.
|
|
32
|
+
*/
|
|
33
|
+
export declare function startBarAnimation(label: string, write?: (s: string) => void): {
|
|
34
|
+
stop: () => void;
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=GradientPalette.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GradientPalette.d.ts","sourceRoot":"","sources":["../../../../src/presentation/cli/animations/GradientPalette.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAO3C,wCAAwC;AACxC,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,kDAAkD;AAClD,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,GAAG,GAAG,CAMxD;AAED,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,SAAK,GAAG,GAAG,EAAE,CAOnE;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,GAAG,EAAE,EAW5B,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,cAAc,EAAE,GAAG,EAAqB,CAAC;AAEtD,gEAAgE;AAChE,eAAO,MAAM,kBAAkB,QAA4B,CAAC;AAE5D;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAUnD;AAMD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAqC,GAC1D;IAAE,IAAI,EAAE,MAAM,IAAI,CAAA;CAAE,CAoDtB"}
|