specweave 1.0.464 → 1.0.466
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/plugins/specweave/lib/vendor/core/ac-test-validator-cli.d.ts +16 -0
- package/dist/plugins/specweave/lib/vendor/core/ac-test-validator-cli.js +139 -0
- package/dist/plugins/specweave/lib/vendor/core/ac-test-validator-cli.js.map +1 -0
- package/dist/plugins/specweave/lib/vendor/core/ac-test-validator.d.ts +111 -0
- package/dist/plugins/specweave/lib/vendor/core/ac-test-validator.js +304 -0
- package/dist/plugins/specweave/lib/vendor/core/ac-test-validator.js.map +1 -0
- package/dist/plugins/specweave/lib/vendor/core/increment/ac-status-manager.d.ts +115 -0
- package/dist/plugins/specweave/lib/vendor/core/increment/ac-status-manager.js +359 -0
- package/dist/plugins/specweave/lib/vendor/core/increment/ac-status-manager.js.map +1 -0
- package/dist/plugins/specweave/lib/vendor/core/increment/active-increment-manager.d.ts +121 -0
- package/dist/plugins/specweave/lib/vendor/core/increment/active-increment-manager.js +273 -0
- package/dist/plugins/specweave/lib/vendor/core/increment/active-increment-manager.js.map +1 -0
- package/dist/plugins/specweave/lib/vendor/core/increment/auto-transition-manager.d.ts +72 -0
- package/dist/plugins/specweave/lib/vendor/core/increment/auto-transition-manager.js +237 -0
- package/dist/plugins/specweave/lib/vendor/core/increment/auto-transition-manager.js.map +1 -0
- package/dist/plugins/specweave/lib/vendor/core/increment/duplicate-detector.d.ts +52 -0
- package/dist/plugins/specweave/lib/vendor/core/increment/duplicate-detector.js +281 -0
- package/dist/plugins/specweave/lib/vendor/core/increment/duplicate-detector.js.map +1 -0
- package/dist/plugins/specweave/lib/vendor/core/increment/metadata-manager.d.ts +278 -0
- package/dist/plugins/specweave/lib/vendor/core/increment/metadata-manager.js +925 -0
- package/dist/plugins/specweave/lib/vendor/core/increment/metadata-manager.js.map +1 -0
- package/dist/plugins/specweave/lib/vendor/core/increment/status-auto-transition.d.ts +113 -0
- package/dist/plugins/specweave/lib/vendor/core/increment/status-auto-transition.js +317 -0
- package/dist/plugins/specweave/lib/vendor/core/increment/status-auto-transition.js.map +1 -0
- package/dist/plugins/specweave/lib/vendor/core/types/increment-metadata.d.ts +442 -0
- package/dist/plugins/specweave/lib/vendor/core/types/increment-metadata.js +246 -0
- package/dist/plugins/specweave/lib/vendor/core/types/increment-metadata.js.map +1 -0
- package/dist/plugins/specweave/lib/vendor/core/universal-auto-create.d.ts +64 -0
- package/dist/plugins/specweave/lib/vendor/core/universal-auto-create.js +228 -0
- package/dist/plugins/specweave/lib/vendor/core/universal-auto-create.js.map +1 -0
- package/dist/plugins/specweave/lib/vendor/generators/spec/task-parser.d.ts +95 -0
- package/dist/plugins/specweave/lib/vendor/generators/spec/task-parser.js +300 -0
- package/dist/plugins/specweave/lib/vendor/generators/spec/task-parser.js.map +1 -0
- package/dist/plugins/specweave/lib/vendor/sync/config.d.ts +73 -0
- package/dist/plugins/specweave/lib/vendor/sync/config.js +132 -0
- package/dist/plugins/specweave/lib/vendor/sync/config.js.map +1 -0
- package/dist/plugins/specweave/lib/vendor/sync/github-reconciler.d.ts +163 -0
- package/dist/plugins/specweave/lib/vendor/sync/github-reconciler.js +898 -0
- package/dist/plugins/specweave/lib/vendor/sync/github-reconciler.js.map +1 -0
- package/dist/plugins/specweave/lib/vendor/sync/provider-router.d.ts +86 -0
- package/dist/plugins/specweave/lib/vendor/sync/provider-router.js +147 -0
- package/dist/plugins/specweave/lib/vendor/sync/provider-router.js.map +1 -0
- package/dist/plugins/specweave/lib/vendor/sync/status-mapper.d.ts +120 -0
- package/dist/plugins/specweave/lib/vendor/sync/status-mapper.js +164 -0
- package/dist/plugins/specweave/lib/vendor/sync/status-mapper.js.map +1 -0
- package/dist/plugins/specweave/lib/vendor/utils/auth-helpers.d.ts +151 -0
- package/dist/plugins/specweave/lib/vendor/utils/auth-helpers.js +359 -0
- package/dist/plugins/specweave/lib/vendor/utils/auth-helpers.js.map +1 -0
- package/dist/plugins/specweave/lib/vendor/utils/chalk-fallback.d.ts +38 -0
- package/dist/plugins/specweave/lib/vendor/utils/chalk-fallback.js +118 -0
- package/dist/plugins/specweave/lib/vendor/utils/chalk-fallback.js.map +1 -0
- package/dist/plugins/specweave/lib/vendor/utils/clean-env.d.ts +47 -0
- package/dist/plugins/specweave/lib/vendor/utils/clean-env.js +63 -0
- package/dist/plugins/specweave/lib/vendor/utils/clean-env.js.map +1 -0
- package/dist/plugins/specweave/lib/vendor/utils/credential-masker.d.ts +118 -0
- package/dist/plugins/specweave/lib/vendor/utils/credential-masker.js +275 -0
- package/dist/plugins/specweave/lib/vendor/utils/credential-masker.js.map +1 -0
- package/dist/plugins/specweave/lib/vendor/utils/execFileNoThrow.d.ts +99 -0
- package/dist/plugins/specweave/lib/vendor/utils/execFileNoThrow.js +149 -0
- package/dist/plugins/specweave/lib/vendor/utils/execFileNoThrow.js.map +1 -0
- package/dist/plugins/specweave/lib/vendor/utils/feature-id-derivation.d.ts +63 -0
- package/dist/plugins/specweave/lib/vendor/utils/feature-id-derivation.js +85 -0
- package/dist/plugins/specweave/lib/vendor/utils/feature-id-derivation.js.map +1 -0
- package/dist/plugins/specweave/lib/vendor/utils/fs-native.d.ts +219 -0
- package/dist/plugins/specweave/lib/vendor/utils/fs-native.js +397 -0
- package/dist/plugins/specweave/lib/vendor/utils/fs-native.js.map +1 -0
- package/dist/plugins/specweave/lib/vendor/utils/logger.d.ts +56 -0
- package/dist/plugins/specweave/lib/vendor/utils/logger.js +123 -0
- package/dist/plugins/specweave/lib/vendor/utils/logger.js.map +1 -0
- package/dist/plugins/specweave/lib/vendor/utils/translation.d.ts +187 -0
- package/dist/plugins/specweave/lib/vendor/utils/translation.js +414 -0
- package/dist/plugins/specweave/lib/vendor/utils/translation.js.map +1 -0
- package/dist/plugins/specweave-ado/lib/ado-ac-checkbox-sync.js +1 -1
- package/dist/plugins/specweave-ado/lib/ado-ac-checkbox-sync.js.map +1 -1
- package/dist/plugins/specweave-ado/lib/ado-spec-sync.js +1 -1
- package/dist/plugins/specweave-ado/lib/ado-spec-sync.js.map +1 -1
- package/dist/plugins/specweave-github/lib/github-ac-checkbox-sync.js +2 -2
- package/dist/plugins/specweave-github/lib/github-ac-checkbox-sync.js.map +1 -1
- package/dist/plugins/specweave-github/lib/github-feature-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/github-feature-sync.js +13 -4
- package/dist/plugins/specweave-github/lib/github-feature-sync.js.map +1 -1
- package/dist/plugins/specweave-jira/lib/jira-ac-checkbox-sync.js +1 -1
- package/dist/plugins/specweave-jira/lib/jira-ac-checkbox-sync.js.map +1 -1
- package/dist/plugins/specweave-jira/lib/jira-spec-sync.js +1 -1
- package/dist/plugins/specweave-jira/lib/jira-spec-sync.js.map +1 -1
- package/dist/src/sync/spec-to-living-docs-sync.js +1 -1
- package/dist/src/sync/spec-to-living-docs-sync.js.map +1 -1
- package/package.json +1 -1
- package/plugins/specweave/lib/vendor/utils/auth-helpers.d.ts +151 -0
- package/plugins/specweave/lib/vendor/utils/auth-helpers.js +359 -0
- package/plugins/specweave/lib/vendor/utils/auth-helpers.js.map +1 -0
- package/plugins/specweave/skills/team-lead/SKILL.md +150 -56
- package/plugins/specweave/skills/team-lead/agents/backend.md +13 -9
- package/plugins/specweave/skills/team-lead/agents/database.md +13 -9
- package/plugins/specweave/skills/team-lead/agents/frontend.md +12 -8
- package/plugins/specweave/skills/team-lead/agents/security.md +13 -9
- package/plugins/specweave/skills/team-lead/agents/testing.md +12 -8
- package/plugins/specweave-ado/lib/ado-ac-checkbox-sync.js +1 -1
- package/plugins/specweave-ado/lib/ado-ac-checkbox-sync.ts +1 -1
- package/plugins/specweave-ado/lib/ado-spec-sync.js +1 -1
- package/plugins/specweave-ado/lib/ado-spec-sync.ts +1 -1
- package/plugins/specweave-github/lib/github-ac-checkbox-sync.js +1 -1
- package/plugins/specweave-github/lib/github-ac-checkbox-sync.ts +2 -2
- package/plugins/specweave-github/lib/github-feature-sync.js +11 -3
- package/plugins/specweave-github/lib/github-feature-sync.ts +13 -4
- package/plugins/specweave-jira/lib/jira-ac-checkbox-sync.js +1 -1
- package/plugins/specweave-jira/lib/jira-ac-checkbox-sync.ts +1 -1
- package/plugins/specweave-jira/lib/jira-spec-sync.js +1 -1
- package/plugins/specweave-jira/lib/jira-spec-sync.ts +1 -1
|
@@ -0,0 +1,442 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Increment Metadata Types
|
|
3
|
+
*
|
|
4
|
+
* Defines the schema for increment metadata tracking (status, type, timestamps).
|
|
5
|
+
* Part of increment 0007: Smart Status Management
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Increment status enum
|
|
9
|
+
* Tracks the lifecycle state of an increment
|
|
10
|
+
*/
|
|
11
|
+
export declare enum IncrementStatus {
|
|
12
|
+
/** Planning phase - spec/plan/tasks being created (does NOT count towards WIP limits) */
|
|
13
|
+
PLANNING = "planning",
|
|
14
|
+
/** Currently being worked on */
|
|
15
|
+
ACTIVE = "active",
|
|
16
|
+
/** Planned but not ready to start yet (does NOT count towards WIP limits) */
|
|
17
|
+
BACKLOG = "backlog",
|
|
18
|
+
/** Temporarily stopped (blocked by external dependency, deprioritized) */
|
|
19
|
+
PAUSED = "paused",
|
|
20
|
+
/**
|
|
21
|
+
* All tasks complete, awaiting user review (v0.28.63+)
|
|
22
|
+
*
|
|
23
|
+
* CRITICAL: This is a gating status that prevents auto-completion bugs.
|
|
24
|
+
* - Auto-transitions to READY_FOR_REVIEW when all tasks completed
|
|
25
|
+
* - User MUST explicitly run /sw:done to move to COMPLETED
|
|
26
|
+
* - /sw:next will prompt for confirmation before closure
|
|
27
|
+
*
|
|
28
|
+
* Prevents the bug where status becomes "completed" without:
|
|
29
|
+
* 1. ACs being checked in spec.md
|
|
30
|
+
* 2. User approval
|
|
31
|
+
*/
|
|
32
|
+
READY_FOR_REVIEW = "ready_for_review",
|
|
33
|
+
/** All tasks complete AND user approved - increment finished */
|
|
34
|
+
COMPLETED = "completed",
|
|
35
|
+
/** Work abandoned (requirements changed, obsolete, etc.) */
|
|
36
|
+
ABANDONED = "abandoned"
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Increment type enum
|
|
40
|
+
* Determines rules and limits applied to the increment
|
|
41
|
+
*/
|
|
42
|
+
export declare enum IncrementType {
|
|
43
|
+
/** Critical production fix (bypasses all limits) */
|
|
44
|
+
HOTFIX = "hotfix",
|
|
45
|
+
/** Standard feature development (limit: 2 active) */
|
|
46
|
+
FEATURE = "feature",
|
|
47
|
+
/** Production bug fix with SRE investigation (unlimited, urgent) */
|
|
48
|
+
BUG = "bug",
|
|
49
|
+
/** Change request from stakeholders (limit: 2 active) */
|
|
50
|
+
CHANGE_REQUEST = "change-request",
|
|
51
|
+
/** Code improvement (limit: 1 active) */
|
|
52
|
+
REFACTOR = "refactor",
|
|
53
|
+
/** POC/spike work (unlimited, auto-abandon after 14 days) */
|
|
54
|
+
EXPERIMENT = "experiment"
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Increment metadata schema
|
|
58
|
+
* Stored in .specweave/increments/{id}/metadata.json
|
|
59
|
+
*/
|
|
60
|
+
export interface IncrementMetadata {
|
|
61
|
+
/** Increment ID (e.g., "0007-smart-increment-discipline") */
|
|
62
|
+
id: string;
|
|
63
|
+
/** Current status */
|
|
64
|
+
status: IncrementStatus;
|
|
65
|
+
/** Increment type */
|
|
66
|
+
type: IncrementType;
|
|
67
|
+
/** Creation timestamp (ISO 8601) */
|
|
68
|
+
created: string;
|
|
69
|
+
/** Last activity timestamp (ISO 8601) */
|
|
70
|
+
lastActivity: string;
|
|
71
|
+
/** Testing mode for this increment (defaults to global config) */
|
|
72
|
+
testMode?: 'TDD' | 'test-after' | 'manual' | 'none';
|
|
73
|
+
/** Coverage target percentage (0-100, 0 = no tracking, defaults to global config) */
|
|
74
|
+
coverageTarget?: number;
|
|
75
|
+
/** Reason for moving to backlog (only if status = backlog) */
|
|
76
|
+
backlogReason?: string;
|
|
77
|
+
/** Timestamp when moved to backlog (ISO 8601) */
|
|
78
|
+
backlogAt?: string;
|
|
79
|
+
/** Reason for pausing (only if status = paused) */
|
|
80
|
+
pausedReason?: string;
|
|
81
|
+
/** Timestamp when paused (ISO 8601) */
|
|
82
|
+
pausedAt?: string;
|
|
83
|
+
/** Reason for abandoning (only if status = abandoned) */
|
|
84
|
+
abandonedReason?: string;
|
|
85
|
+
/** Timestamp when abandoned (ISO 8601) */
|
|
86
|
+
abandonedAt?: string;
|
|
87
|
+
/**
|
|
88
|
+
* Timestamp when moved to ready_for_review (ISO 8601)
|
|
89
|
+
* Set automatically when all tasks are completed
|
|
90
|
+
* (v0.28.63+)
|
|
91
|
+
*/
|
|
92
|
+
readyForReviewAt?: string;
|
|
93
|
+
/**
|
|
94
|
+
* Timestamp when user approved completion (ISO 8601)
|
|
95
|
+
* Set only via explicit /sw:done command
|
|
96
|
+
* (v0.28.63+)
|
|
97
|
+
*/
|
|
98
|
+
approvedAt?: string;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Increment metadata with additional computed fields
|
|
102
|
+
* Used for rich status displays
|
|
103
|
+
*/
|
|
104
|
+
export interface IncrementMetadataExtended extends IncrementMetadata {
|
|
105
|
+
/** Progress percentage (0-100) */
|
|
106
|
+
progress?: number;
|
|
107
|
+
/** Number of completed tasks */
|
|
108
|
+
completedTasks?: number;
|
|
109
|
+
/** Total number of tasks */
|
|
110
|
+
totalTasks?: number;
|
|
111
|
+
/** Age in days since creation */
|
|
112
|
+
ageInDays?: number;
|
|
113
|
+
/** Days since paused (if paused) */
|
|
114
|
+
daysPaused?: number;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Valid status transitions
|
|
118
|
+
* Enforces increment lifecycle rules
|
|
119
|
+
*
|
|
120
|
+
* CRITICAL (v0.28.63+): ACTIVE cannot directly transition to COMPLETED!
|
|
121
|
+
* Must go through READY_FOR_REVIEW first, which requires explicit user approval.
|
|
122
|
+
* This prevents the auto-completion bug where increments are marked "completed"
|
|
123
|
+
* without ACs being checked or user confirmation.
|
|
124
|
+
*/
|
|
125
|
+
export declare const VALID_TRANSITIONS: Record<IncrementStatus, IncrementStatus[]>;
|
|
126
|
+
/**
|
|
127
|
+
* Compute the shortest valid transition path from `from` to `to`.
|
|
128
|
+
*
|
|
129
|
+
* Uses BFS over the VALID_TRANSITIONS graph.
|
|
130
|
+
* Returns the sequence of intermediate + final states (excluding the starting state).
|
|
131
|
+
* Returns null if no valid path exists.
|
|
132
|
+
*
|
|
133
|
+
* Example: computeTransitionPath(PLANNING, COMPLETED)
|
|
134
|
+
* => [ACTIVE, READY_FOR_REVIEW, COMPLETED]
|
|
135
|
+
*/
|
|
136
|
+
export declare function computeTransitionPath(from: IncrementStatus, to: IncrementStatus): IncrementStatus[] | null;
|
|
137
|
+
/**
|
|
138
|
+
* Type-based limits
|
|
139
|
+
* Maximum active increments per type
|
|
140
|
+
*
|
|
141
|
+
* null = unlimited (no limit enforcement)
|
|
142
|
+
* User can configure per-project in .specweave/config.json
|
|
143
|
+
*/
|
|
144
|
+
export declare const TYPE_LIMITS: Record<IncrementType, number | null>;
|
|
145
|
+
/**
|
|
146
|
+
* Staleness thresholds (days)
|
|
147
|
+
* When to warn about stale increments
|
|
148
|
+
*/
|
|
149
|
+
export declare const STALENESS_THRESHOLDS: {
|
|
150
|
+
/** Warn if paused for more than this many days */
|
|
151
|
+
PAUSED: number;
|
|
152
|
+
/** Warn if active for more than this many days */
|
|
153
|
+
ACTIVE: number;
|
|
154
|
+
/** Auto-abandon experiments after this many days */
|
|
155
|
+
EXPERIMENT: number;
|
|
156
|
+
};
|
|
157
|
+
/**
|
|
158
|
+
* Default metadata for new increments
|
|
159
|
+
*
|
|
160
|
+
* NOTE: New increments start in PLANNING status by default.
|
|
161
|
+
* They auto-transition to ACTIVE when tasks.md is created or first task starts.
|
|
162
|
+
*/
|
|
163
|
+
export declare function createDefaultMetadata(id: string, type?: IncrementType): IncrementMetadata;
|
|
164
|
+
/**
|
|
165
|
+
* Check if status transition is valid
|
|
166
|
+
*/
|
|
167
|
+
export declare function isValidTransition(from: IncrementStatus, to: IncrementStatus): boolean;
|
|
168
|
+
/**
|
|
169
|
+
* Check if increment is stale (paused too long or active too long)
|
|
170
|
+
*/
|
|
171
|
+
export declare function isStale(metadata: IncrementMetadata): boolean;
|
|
172
|
+
/**
|
|
173
|
+
* Check if increment should be auto-abandoned (experiments only)
|
|
174
|
+
*/
|
|
175
|
+
export declare function shouldAutoAbandon(metadata: IncrementMetadata): boolean;
|
|
176
|
+
/**
|
|
177
|
+
* Statuses that count toward WIP (Work In Progress) limits
|
|
178
|
+
*
|
|
179
|
+
* ACTIVE: Currently executing tasks, consumes team capacity
|
|
180
|
+
* PAUSED: Temporarily blocked but still holding resources/context
|
|
181
|
+
* READY_FOR_REVIEW: Tasks done, awaiting approval (still blocks capacity)
|
|
182
|
+
*
|
|
183
|
+
* Statuses that do NOT count:
|
|
184
|
+
* - PLANNING: Lightweight spec/planning work, parallel-safe
|
|
185
|
+
* - BACKLOG: Not started yet
|
|
186
|
+
* - COMPLETED: Already done (user approved)
|
|
187
|
+
* - ABANDONED: Cancelled
|
|
188
|
+
*/
|
|
189
|
+
export declare const WIP_COUNTED_STATUSES: IncrementStatus[];
|
|
190
|
+
/**
|
|
191
|
+
* Check if increment status counts toward WIP (Work In Progress) limits
|
|
192
|
+
*/
|
|
193
|
+
export declare function countsTowardWipLimit(status: IncrementStatus): boolean;
|
|
194
|
+
/**
|
|
195
|
+
* Validate if a status transition is allowed
|
|
196
|
+
* @throws Error if transition is invalid
|
|
197
|
+
*/
|
|
198
|
+
export declare function validateTransition(from: IncrementStatus, to: IncrementStatus): void;
|
|
199
|
+
/**
|
|
200
|
+
* Project scope for a multi-project user story
|
|
201
|
+
* Defines what portion of the work belongs to each project
|
|
202
|
+
*/
|
|
203
|
+
export interface MultiProjectScope {
|
|
204
|
+
/** SpecWeave project ID (e.g., "FE", "BE", "Shared") */
|
|
205
|
+
id: string;
|
|
206
|
+
/** Description of work scope for this project */
|
|
207
|
+
scope: string;
|
|
208
|
+
/** Keywords for this project's portion (for auto-classification) */
|
|
209
|
+
keywords?: string[];
|
|
210
|
+
/** Estimated effort percentage (0-100) */
|
|
211
|
+
effortPercentage?: number;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Cross-project dependency
|
|
215
|
+
* Defines dependencies between projects within a user story
|
|
216
|
+
*/
|
|
217
|
+
export interface CrossProjectDependency {
|
|
218
|
+
/** Project that depends on another */
|
|
219
|
+
from: string;
|
|
220
|
+
/** Project being depended upon */
|
|
221
|
+
to: string;
|
|
222
|
+
/** Description of the dependency */
|
|
223
|
+
reason: string;
|
|
224
|
+
/** Type of dependency */
|
|
225
|
+
type?: 'blocking' | 'soft' | 'interface';
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Multi-project user story configuration
|
|
229
|
+
* Used when a single user story spans multiple SpecWeave projects
|
|
230
|
+
*/
|
|
231
|
+
export interface MultiProjectUserStory {
|
|
232
|
+
/** List of projects this user story touches */
|
|
233
|
+
projects: MultiProjectScope[];
|
|
234
|
+
/** Dependencies between projects (optional) */
|
|
235
|
+
dependencies?: CrossProjectDependency[];
|
|
236
|
+
/** Primary project (receives the main spec, others get derived specs) */
|
|
237
|
+
primaryProject?: string;
|
|
238
|
+
/** How to handle sync - create linked issues in each project's external tool */
|
|
239
|
+
syncStrategy?: 'linked' | 'primary-only' | 'all';
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* External container context for 2-level directory structure
|
|
243
|
+
* Used for JIRA boards / ADO area paths mapping
|
|
244
|
+
*/
|
|
245
|
+
export interface ExternalContainerContext {
|
|
246
|
+
/** Container type (e.g., "jira-project", "ado-project") */
|
|
247
|
+
type: 'jira-project' | 'ado-project' | 'github-org';
|
|
248
|
+
/** External container ID (e.g., "CORE" for JIRA, "MyProduct" for ADO) */
|
|
249
|
+
containerId: string;
|
|
250
|
+
/** Display name */
|
|
251
|
+
containerName: string;
|
|
252
|
+
/** Board ID (JIRA only) */
|
|
253
|
+
boardId?: number;
|
|
254
|
+
/** Board name (JIRA only) */
|
|
255
|
+
boardName?: string;
|
|
256
|
+
/** Area path (ADO only) */
|
|
257
|
+
areaPath?: string;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* External reference for a single US in a single external tool
|
|
261
|
+
* @since v0.33.0
|
|
262
|
+
*/
|
|
263
|
+
export interface USExternalRef {
|
|
264
|
+
/** External tool type */
|
|
265
|
+
provider: 'github' | 'jira' | 'ado';
|
|
266
|
+
/** Issue/work item number */
|
|
267
|
+
issueNumber: number | string;
|
|
268
|
+
/** Issue URL */
|
|
269
|
+
url: string;
|
|
270
|
+
/** Target project/repo for this US (from projectMappings) */
|
|
271
|
+
targetProject: string;
|
|
272
|
+
/** Last sync timestamp */
|
|
273
|
+
lastSynced?: string;
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Per-US external references map
|
|
277
|
+
* Maps US-ID → provider → reference
|
|
278
|
+
* @since v0.33.0
|
|
279
|
+
*/
|
|
280
|
+
export interface USExternalRefsMap {
|
|
281
|
+
[usId: string]: {
|
|
282
|
+
github?: USExternalRef;
|
|
283
|
+
jira?: USExternalRef;
|
|
284
|
+
ado?: USExternalRef;
|
|
285
|
+
};
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* How the sync target was determined
|
|
289
|
+
* Used for debugging and audit trails
|
|
290
|
+
*/
|
|
291
|
+
export type SyncTargetDerivation = 'user-selection' | 'project-mapping' | 'default-profile' | 'first-profile-fallback' | 'auto-detected';
|
|
292
|
+
/**
|
|
293
|
+
* External tool sync target for an increment
|
|
294
|
+
*
|
|
295
|
+
* Explicitly specifies which external tool profile this increment syncs with.
|
|
296
|
+
* Stored in metadata.json to provide audit trail and deterministic sync behavior.
|
|
297
|
+
*
|
|
298
|
+
* @since v1.0.31 (ADR-0211)
|
|
299
|
+
*
|
|
300
|
+
* @example
|
|
301
|
+
* ```json
|
|
302
|
+
* {
|
|
303
|
+
* "syncTarget": {
|
|
304
|
+
* "profileId": "github-frontend",
|
|
305
|
+
* "provider": "github",
|
|
306
|
+
* "derivedFrom": "project-mapping",
|
|
307
|
+
* "setAt": "2025-12-18T10:30:00Z"
|
|
308
|
+
* }
|
|
309
|
+
* }
|
|
310
|
+
* ```
|
|
311
|
+
*/
|
|
312
|
+
export interface SyncTarget {
|
|
313
|
+
/**
|
|
314
|
+
* Profile ID from config.sync.profiles
|
|
315
|
+
* This is the key that links to the full profile configuration
|
|
316
|
+
*
|
|
317
|
+
* @example "github-frontend", "jira-backend", "ado-main"
|
|
318
|
+
*/
|
|
319
|
+
profileId: string;
|
|
320
|
+
/**
|
|
321
|
+
* Provider type for quick filtering without loading full config
|
|
322
|
+
*/
|
|
323
|
+
provider: 'github' | 'jira' | 'ado';
|
|
324
|
+
/**
|
|
325
|
+
* How this target was determined (for debugging/audit)
|
|
326
|
+
*/
|
|
327
|
+
derivedFrom: SyncTargetDerivation;
|
|
328
|
+
/**
|
|
329
|
+
* Timestamp when target was set (ISO 8601)
|
|
330
|
+
*/
|
|
331
|
+
setAt: string;
|
|
332
|
+
/**
|
|
333
|
+
* Optional: Source project ID that led to this target
|
|
334
|
+
* Useful when derivedFrom is 'project-mapping'
|
|
335
|
+
*/
|
|
336
|
+
sourceProjectId?: string;
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Validation result for external tool configuration
|
|
340
|
+
*
|
|
341
|
+
* @since v1.0.31
|
|
342
|
+
*/
|
|
343
|
+
export interface ExternalToolValidationResult {
|
|
344
|
+
/** Whether the configuration is valid */
|
|
345
|
+
valid: boolean;
|
|
346
|
+
/** Resolved sync target (if valid) */
|
|
347
|
+
syncTarget?: SyncTarget;
|
|
348
|
+
/** List of validation errors */
|
|
349
|
+
errors: string[];
|
|
350
|
+
/** List of validation warnings (non-blocking) */
|
|
351
|
+
warnings: string[];
|
|
352
|
+
/** Suggested fixes for errors */
|
|
353
|
+
suggestions?: string[];
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Extended increment metadata with multi-project support (v0.29.0+)
|
|
357
|
+
*
|
|
358
|
+
* NOTE (v0.29.0): featureId field was REMOVED
|
|
359
|
+
* Feature ID is derived from increment number: 0081 → FS-081
|
|
360
|
+
* Use deriveFeatureId() from src/utils/feature-id-derivation.ts
|
|
361
|
+
* See ADR-0140 for rationale
|
|
362
|
+
*/
|
|
363
|
+
export interface IncrementMetadataV2 extends IncrementMetadata {
|
|
364
|
+
/** Single project ID (backward compatible) */
|
|
365
|
+
projectId?: string;
|
|
366
|
+
/** Multi-project configuration (v0.29.0+, overrides projectId if set) */
|
|
367
|
+
multiProject?: MultiProjectUserStory;
|
|
368
|
+
/** External container context for 2-level directory structure */
|
|
369
|
+
externalContainer?: ExternalContainerContext;
|
|
370
|
+
/** Epic ID if part of an epic */
|
|
371
|
+
epicId?: string;
|
|
372
|
+
/**
|
|
373
|
+
* Per-US external references (v0.33.0+)
|
|
374
|
+
* Replaces the single external_ref for cross-project increments
|
|
375
|
+
* Maps: US-001 → { github: {...}, jira: {...} }
|
|
376
|
+
*/
|
|
377
|
+
externalRefs?: USExternalRefsMap;
|
|
378
|
+
/**
|
|
379
|
+
* External tool sync target (v1.0.31+ - ADR-0211)
|
|
380
|
+
*
|
|
381
|
+
* Explicitly specifies which external tool profile this increment syncs with.
|
|
382
|
+
* Provides deterministic sync behavior and audit trail.
|
|
383
|
+
*
|
|
384
|
+
* Resolution priority:
|
|
385
|
+
* 1. This field (explicit)
|
|
386
|
+
* 2. **Project**: field in spec.md → config.projectMappings
|
|
387
|
+
* 3. config.sync.defaultProfile (fallback)
|
|
388
|
+
*
|
|
389
|
+
* @example
|
|
390
|
+
* ```json
|
|
391
|
+
* {
|
|
392
|
+
* "syncTarget": {
|
|
393
|
+
* "profileId": "github-frontend",
|
|
394
|
+
* "provider": "github",
|
|
395
|
+
* "derivedFrom": "project-mapping",
|
|
396
|
+
* "setAt": "2025-12-18T10:30:00Z"
|
|
397
|
+
* }
|
|
398
|
+
* }
|
|
399
|
+
* ```
|
|
400
|
+
*/
|
|
401
|
+
syncTarget?: SyncTarget;
|
|
402
|
+
/**
|
|
403
|
+
* Pull request references for pr-based push strategy (v1.0.437+)
|
|
404
|
+
*
|
|
405
|
+
* Tracks branch names and PR URLs created during increment closure.
|
|
406
|
+
* Single-repo: array with one entry. Multi-repo/umbrella: one entry per touched repo.
|
|
407
|
+
*
|
|
408
|
+
* @example
|
|
409
|
+
* ```json
|
|
410
|
+
* {
|
|
411
|
+
* "prRefs": [{
|
|
412
|
+
* "branch": "sw/0520-pr-based-closure",
|
|
413
|
+
* "prNumber": 42,
|
|
414
|
+
* "prUrl": "https://github.com/org/repo/pull/42",
|
|
415
|
+
* "state": "open",
|
|
416
|
+
* "createdAt": "2026-03-12T10:00:00Z"
|
|
417
|
+
* }]
|
|
418
|
+
* }
|
|
419
|
+
* ```
|
|
420
|
+
*/
|
|
421
|
+
prRefs?: PrRef[];
|
|
422
|
+
/** When true, skip living docs sync for this increment (per-increment override) */
|
|
423
|
+
skipLivingDocsSync?: boolean;
|
|
424
|
+
}
|
|
425
|
+
/**
|
|
426
|
+
* Pull request reference for a single repository (v1.0.437+)
|
|
427
|
+
*/
|
|
428
|
+
export interface PrRef {
|
|
429
|
+
/** Branch name (e.g., 'sw/0016-checkout-flow') */
|
|
430
|
+
branch: string;
|
|
431
|
+
/** PR number */
|
|
432
|
+
prNumber?: number;
|
|
433
|
+
/** PR URL */
|
|
434
|
+
prUrl?: string;
|
|
435
|
+
/** Repository slug (owner/repo) for multi-repo. Omit for single-repo. */
|
|
436
|
+
repoSlug?: string;
|
|
437
|
+
/** PR state */
|
|
438
|
+
state?: 'open' | 'merged' | 'closed';
|
|
439
|
+
/** When the PR was created */
|
|
440
|
+
createdAt?: string;
|
|
441
|
+
}
|
|
442
|
+
//# sourceMappingURL=increment-metadata.d.ts.map
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Increment Metadata Types
|
|
3
|
+
*
|
|
4
|
+
* Defines the schema for increment metadata tracking (status, type, timestamps).
|
|
5
|
+
* Part of increment 0007: Smart Status Management
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Increment status enum
|
|
9
|
+
* Tracks the lifecycle state of an increment
|
|
10
|
+
*/
|
|
11
|
+
export var IncrementStatus;
|
|
12
|
+
(function (IncrementStatus) {
|
|
13
|
+
/** Planning phase - spec/plan/tasks being created (does NOT count towards WIP limits) */
|
|
14
|
+
IncrementStatus["PLANNING"] = "planning";
|
|
15
|
+
/** Currently being worked on */
|
|
16
|
+
IncrementStatus["ACTIVE"] = "active";
|
|
17
|
+
/** Planned but not ready to start yet (does NOT count towards WIP limits) */
|
|
18
|
+
IncrementStatus["BACKLOG"] = "backlog";
|
|
19
|
+
/** Temporarily stopped (blocked by external dependency, deprioritized) */
|
|
20
|
+
IncrementStatus["PAUSED"] = "paused";
|
|
21
|
+
/**
|
|
22
|
+
* All tasks complete, awaiting user review (v0.28.63+)
|
|
23
|
+
*
|
|
24
|
+
* CRITICAL: This is a gating status that prevents auto-completion bugs.
|
|
25
|
+
* - Auto-transitions to READY_FOR_REVIEW when all tasks completed
|
|
26
|
+
* - User MUST explicitly run /sw:done to move to COMPLETED
|
|
27
|
+
* - /sw:next will prompt for confirmation before closure
|
|
28
|
+
*
|
|
29
|
+
* Prevents the bug where status becomes "completed" without:
|
|
30
|
+
* 1. ACs being checked in spec.md
|
|
31
|
+
* 2. User approval
|
|
32
|
+
*/
|
|
33
|
+
IncrementStatus["READY_FOR_REVIEW"] = "ready_for_review";
|
|
34
|
+
/** All tasks complete AND user approved - increment finished */
|
|
35
|
+
IncrementStatus["COMPLETED"] = "completed";
|
|
36
|
+
/** Work abandoned (requirements changed, obsolete, etc.) */
|
|
37
|
+
IncrementStatus["ABANDONED"] = "abandoned";
|
|
38
|
+
})(IncrementStatus || (IncrementStatus = {}));
|
|
39
|
+
/**
|
|
40
|
+
* Increment type enum
|
|
41
|
+
* Determines rules and limits applied to the increment
|
|
42
|
+
*/
|
|
43
|
+
export var IncrementType;
|
|
44
|
+
(function (IncrementType) {
|
|
45
|
+
/** Critical production fix (bypasses all limits) */
|
|
46
|
+
IncrementType["HOTFIX"] = "hotfix";
|
|
47
|
+
/** Standard feature development (limit: 2 active) */
|
|
48
|
+
IncrementType["FEATURE"] = "feature";
|
|
49
|
+
/** Production bug fix with SRE investigation (unlimited, urgent) */
|
|
50
|
+
IncrementType["BUG"] = "bug";
|
|
51
|
+
/** Change request from stakeholders (limit: 2 active) */
|
|
52
|
+
IncrementType["CHANGE_REQUEST"] = "change-request";
|
|
53
|
+
/** Code improvement (limit: 1 active) */
|
|
54
|
+
IncrementType["REFACTOR"] = "refactor";
|
|
55
|
+
/** POC/spike work (unlimited, auto-abandon after 14 days) */
|
|
56
|
+
IncrementType["EXPERIMENT"] = "experiment";
|
|
57
|
+
})(IncrementType || (IncrementType = {}));
|
|
58
|
+
/**
|
|
59
|
+
* Valid status transitions
|
|
60
|
+
* Enforces increment lifecycle rules
|
|
61
|
+
*
|
|
62
|
+
* CRITICAL (v0.28.63+): ACTIVE cannot directly transition to COMPLETED!
|
|
63
|
+
* Must go through READY_FOR_REVIEW first, which requires explicit user approval.
|
|
64
|
+
* This prevents the auto-completion bug where increments are marked "completed"
|
|
65
|
+
* without ACs being checked or user confirmation.
|
|
66
|
+
*/
|
|
67
|
+
export const VALID_TRANSITIONS = {
|
|
68
|
+
[IncrementStatus.PLANNING]: [
|
|
69
|
+
IncrementStatus.ACTIVE, // Move to active when tasks start
|
|
70
|
+
IncrementStatus.BACKLOG, // Move to backlog if deprioritized
|
|
71
|
+
IncrementStatus.ABANDONED // Cancel planning
|
|
72
|
+
],
|
|
73
|
+
[IncrementStatus.ACTIVE]: [
|
|
74
|
+
IncrementStatus.BACKLOG,
|
|
75
|
+
IncrementStatus.PAUSED,
|
|
76
|
+
IncrementStatus.READY_FOR_REVIEW, // All tasks done → awaiting review
|
|
77
|
+
IncrementStatus.ABANDONED
|
|
78
|
+
// NOTE: COMPLETED intentionally NOT allowed! Must go through READY_FOR_REVIEW
|
|
79
|
+
],
|
|
80
|
+
[IncrementStatus.BACKLOG]: [
|
|
81
|
+
IncrementStatus.PLANNING, // Resume planning
|
|
82
|
+
IncrementStatus.ACTIVE,
|
|
83
|
+
IncrementStatus.ABANDONED
|
|
84
|
+
],
|
|
85
|
+
[IncrementStatus.PAUSED]: [
|
|
86
|
+
IncrementStatus.ACTIVE,
|
|
87
|
+
IncrementStatus.READY_FOR_REVIEW, // Can mark done while paused
|
|
88
|
+
IncrementStatus.ABANDONED
|
|
89
|
+
],
|
|
90
|
+
[IncrementStatus.READY_FOR_REVIEW]: [
|
|
91
|
+
IncrementStatus.COMPLETED, // ONLY via explicit /sw:done with user approval
|
|
92
|
+
IncrementStatus.ACTIVE, // Reopen if more work needed
|
|
93
|
+
IncrementStatus.ABANDONED // Cancel if requirements changed
|
|
94
|
+
],
|
|
95
|
+
[IncrementStatus.COMPLETED]: [
|
|
96
|
+
// Allow reopening completed increments when issues discovered
|
|
97
|
+
IncrementStatus.ACTIVE, // Reopen for fixes
|
|
98
|
+
IncrementStatus.ABANDONED // Mark as failed (rare)
|
|
99
|
+
],
|
|
100
|
+
[IncrementStatus.ABANDONED]: [
|
|
101
|
+
IncrementStatus.ACTIVE // Can un-abandon if needed (rare)
|
|
102
|
+
]
|
|
103
|
+
};
|
|
104
|
+
/**
|
|
105
|
+
* Compute the shortest valid transition path from `from` to `to`.
|
|
106
|
+
*
|
|
107
|
+
* Uses BFS over the VALID_TRANSITIONS graph.
|
|
108
|
+
* Returns the sequence of intermediate + final states (excluding the starting state).
|
|
109
|
+
* Returns null if no valid path exists.
|
|
110
|
+
*
|
|
111
|
+
* Example: computeTransitionPath(PLANNING, COMPLETED)
|
|
112
|
+
* => [ACTIVE, READY_FOR_REVIEW, COMPLETED]
|
|
113
|
+
*/
|
|
114
|
+
export function computeTransitionPath(from, to) {
|
|
115
|
+
if (from === to)
|
|
116
|
+
return [];
|
|
117
|
+
const queue = [
|
|
118
|
+
{ status: from, path: [] }
|
|
119
|
+
];
|
|
120
|
+
const visited = new Set([from]);
|
|
121
|
+
while (queue.length > 0) {
|
|
122
|
+
const current = queue.shift();
|
|
123
|
+
const neighbors = VALID_TRANSITIONS[current.status] ?? [];
|
|
124
|
+
for (const next of neighbors) {
|
|
125
|
+
if (visited.has(next))
|
|
126
|
+
continue;
|
|
127
|
+
const newPath = [...current.path, next];
|
|
128
|
+
if (next === to)
|
|
129
|
+
return newPath;
|
|
130
|
+
visited.add(next);
|
|
131
|
+
queue.push({ status: next, path: newPath });
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return null;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Type-based limits
|
|
138
|
+
* Maximum active increments per type
|
|
139
|
+
*
|
|
140
|
+
* null = unlimited (no limit enforcement)
|
|
141
|
+
* User can configure per-project in .specweave/config.json
|
|
142
|
+
*/
|
|
143
|
+
export const TYPE_LIMITS = {
|
|
144
|
+
[IncrementType.HOTFIX]: null, // Unlimited (emergency work)
|
|
145
|
+
[IncrementType.FEATURE]: 2, // Max 2 active (context switching cost)
|
|
146
|
+
[IncrementType.BUG]: null, // Unlimited (production issues)
|
|
147
|
+
[IncrementType.CHANGE_REQUEST]: 2, // Max 2 active (stakeholder-driven)
|
|
148
|
+
[IncrementType.REFACTOR]: 1, // Max 1 active (needs focus)
|
|
149
|
+
[IncrementType.EXPERIMENT]: null // Unlimited (exploratory work)
|
|
150
|
+
};
|
|
151
|
+
/**
|
|
152
|
+
* Staleness thresholds (days)
|
|
153
|
+
* When to warn about stale increments
|
|
154
|
+
*/
|
|
155
|
+
export const STALENESS_THRESHOLDS = {
|
|
156
|
+
/** Warn if paused for more than this many days */
|
|
157
|
+
PAUSED: 7,
|
|
158
|
+
/** Warn if active for more than this many days */
|
|
159
|
+
ACTIVE: 30,
|
|
160
|
+
/** Auto-abandon experiments after this many days */
|
|
161
|
+
EXPERIMENT: 14
|
|
162
|
+
};
|
|
163
|
+
/**
|
|
164
|
+
* Default metadata for new increments
|
|
165
|
+
*
|
|
166
|
+
* NOTE: New increments start in PLANNING status by default.
|
|
167
|
+
* They auto-transition to ACTIVE when tasks.md is created or first task starts.
|
|
168
|
+
*/
|
|
169
|
+
export function createDefaultMetadata(id, type = IncrementType.FEATURE) {
|
|
170
|
+
const now = new Date().toISOString();
|
|
171
|
+
return {
|
|
172
|
+
id,
|
|
173
|
+
status: IncrementStatus.PLANNING, // Start in planning phase
|
|
174
|
+
type,
|
|
175
|
+
created: now,
|
|
176
|
+
lastActivity: now
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Check if status transition is valid
|
|
181
|
+
*/
|
|
182
|
+
export function isValidTransition(from, to) {
|
|
183
|
+
const allowedTransitions = VALID_TRANSITIONS[from];
|
|
184
|
+
return allowedTransitions.includes(to);
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Calculate days elapsed since a given date
|
|
188
|
+
*/
|
|
189
|
+
function daysSince(dateStr) {
|
|
190
|
+
return (Date.now() - new Date(dateStr).getTime()) / (1000 * 60 * 60 * 24);
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Check if increment is stale (paused too long or active too long)
|
|
194
|
+
*/
|
|
195
|
+
export function isStale(metadata) {
|
|
196
|
+
if (metadata.status === IncrementStatus.PAUSED && metadata.pausedAt) {
|
|
197
|
+
return daysSince(metadata.pausedAt) > STALENESS_THRESHOLDS.PAUSED;
|
|
198
|
+
}
|
|
199
|
+
if (metadata.status === IncrementStatus.ACTIVE) {
|
|
200
|
+
return daysSince(metadata.created) > STALENESS_THRESHOLDS.ACTIVE;
|
|
201
|
+
}
|
|
202
|
+
return false;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Check if increment should be auto-abandoned (experiments only)
|
|
206
|
+
*/
|
|
207
|
+
export function shouldAutoAbandon(metadata) {
|
|
208
|
+
return metadata.type === IncrementType.EXPERIMENT &&
|
|
209
|
+
daysSince(metadata.lastActivity) > STALENESS_THRESHOLDS.EXPERIMENT;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Statuses that count toward WIP (Work In Progress) limits
|
|
213
|
+
*
|
|
214
|
+
* ACTIVE: Currently executing tasks, consumes team capacity
|
|
215
|
+
* PAUSED: Temporarily blocked but still holding resources/context
|
|
216
|
+
* READY_FOR_REVIEW: Tasks done, awaiting approval (still blocks capacity)
|
|
217
|
+
*
|
|
218
|
+
* Statuses that do NOT count:
|
|
219
|
+
* - PLANNING: Lightweight spec/planning work, parallel-safe
|
|
220
|
+
* - BACKLOG: Not started yet
|
|
221
|
+
* - COMPLETED: Already done (user approved)
|
|
222
|
+
* - ABANDONED: Cancelled
|
|
223
|
+
*/
|
|
224
|
+
export const WIP_COUNTED_STATUSES = [
|
|
225
|
+
IncrementStatus.ACTIVE,
|
|
226
|
+
IncrementStatus.PAUSED, // Paused work still blocks team capacity
|
|
227
|
+
IncrementStatus.READY_FOR_REVIEW // Awaiting user approval, still in progress
|
|
228
|
+
];
|
|
229
|
+
/**
|
|
230
|
+
* Check if increment status counts toward WIP (Work In Progress) limits
|
|
231
|
+
*/
|
|
232
|
+
export function countsTowardWipLimit(status) {
|
|
233
|
+
return WIP_COUNTED_STATUSES.includes(status);
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Validate if a status transition is allowed
|
|
237
|
+
* @throws Error if transition is invalid
|
|
238
|
+
*/
|
|
239
|
+
export function validateTransition(from, to) {
|
|
240
|
+
if (!isValidTransition(from, to)) {
|
|
241
|
+
const validTransitions = VALID_TRANSITIONS[from];
|
|
242
|
+
throw new Error(`Invalid transition: ${from} → ${to}.\n` +
|
|
243
|
+
`Valid transitions from ${from}: ${validTransitions.join(', ')}`);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
//# sourceMappingURL=increment-metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"increment-metadata.js","sourceRoot":"","sources":["../../../../src/core/types/increment-metadata.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,MAAM,CAAN,IAAY,eAgCX;AAhCD,WAAY,eAAe;IACzB,yFAAyF;IACzF,wCAAqB,CAAA;IAErB,gCAAgC;IAChC,oCAAiB,CAAA;IAEjB,6EAA6E;IAC7E,sCAAmB,CAAA;IAEnB,0EAA0E;IAC1E,oCAAiB,CAAA;IAEjB;;;;;;;;;;;OAWG;IACH,wDAAqC,CAAA;IAErC,gEAAgE;IAChE,0CAAuB,CAAA;IAEvB,4DAA4D;IAC5D,0CAAuB,CAAA;AACzB,CAAC,EAhCW,eAAe,KAAf,eAAe,QAgC1B;AAED;;;GAGG;AACH,MAAM,CAAN,IAAY,aAkBX;AAlBD,WAAY,aAAa;IACvB,oDAAoD;IACpD,kCAAiB,CAAA;IAEjB,qDAAqD;IACrD,oCAAmB,CAAA;IAEnB,oEAAoE;IACpE,4BAAW,CAAA;IAEX,yDAAyD;IACzD,kDAAiC,CAAA;IAEjC,yCAAyC;IACzC,sCAAqB,CAAA;IAErB,6DAA6D;IAC7D,0CAAyB,CAAA;AAC3B,CAAC,EAlBW,aAAa,KAAb,aAAa,QAkBxB;AAkFD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAA+C;IAC3E,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE;QAC1B,eAAe,CAAC,MAAM,EAAM,kCAAkC;QAC9D,eAAe,CAAC,OAAO,EAAK,mCAAmC;QAC/D,eAAe,CAAC,SAAS,CAAG,kBAAkB;KAC/C;IACD,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE;QACxB,eAAe,CAAC,OAAO;QACvB,eAAe,CAAC,MAAM;QACtB,eAAe,CAAC,gBAAgB,EAAE,mCAAmC;QACrE,eAAe,CAAC,SAAS;QACzB,8EAA8E;KAC/E;IACD,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE;QACzB,eAAe,CAAC,QAAQ,EAAI,kBAAkB;QAC9C,eAAe,CAAC,MAAM;QACtB,eAAe,CAAC,SAAS;KAC1B;IACD,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE;QACxB,eAAe,CAAC,MAAM;QACtB,eAAe,CAAC,gBAAgB,EAAE,6BAA6B;QAC/D,eAAe,CAAC,SAAS;KAC1B;IACD,CAAC,eAAe,CAAC,gBAAgB,CAAC,EAAE;QAClC,eAAe,CAAC,SAAS,EAAG,gDAAgD;QAC5E,eAAe,CAAC,MAAM,EAAM,6BAA6B;QACzD,eAAe,CAAC,SAAS,CAAG,iCAAiC;KAC9D;IACD,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE;QAC3B,8DAA8D;QAC9D,eAAe,CAAC,MAAM,EAAM,mBAAmB;QAC/C,eAAe,CAAC,SAAS,CAAG,wBAAwB;KACrD;IACD,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE;QAC3B,eAAe,CAAC,MAAM,CAAE,kCAAkC;KAC3D;CACF,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAqB,EACrB,EAAmB;IAEnB,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAE3B,MAAM,KAAK,GAAgE;QACzE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;KAC3B,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,GAAG,CAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IAEjD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;QAC/B,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAE1D,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YAChC,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAExC,IAAI,IAAI,KAAK,EAAE;gBAAE,OAAO,OAAO,CAAC;YAEhC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAyC;IAC/D,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,IAAI,EAAW,6BAA6B;IACpE,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,EAAa,wCAAwC;IAC/E,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,IAAI,EAAc,gCAAgC;IACvE,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC,EAAM,oCAAoC;IAC3E,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAY,6BAA6B;IACpE,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,IAAI,CAAO,+BAA+B;CACvE,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,kDAAkD;IAClD,MAAM,EAAE,CAAC;IAET,kDAAkD;IAClD,MAAM,EAAE,EAAE;IAEV,oDAAoD;IACpD,UAAU,EAAE,EAAE;CACf,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,EAAU,EAAE,OAAsB,aAAa,CAAC,OAAO;IAC3F,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAErC,OAAO;QACL,EAAE;QACF,MAAM,EAAE,eAAe,CAAC,QAAQ,EAAG,0BAA0B;QAC7D,IAAI;QACJ,OAAO,EAAE,GAAG;QACZ,YAAY,EAAE,GAAG;KAClB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAqB,EAAE,EAAmB;IAC1E,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACnD,OAAO,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,OAAe;IAChC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,QAA2B;IACjD,IAAI,QAAQ,CAAC,MAAM,KAAK,eAAe,CAAC,MAAM,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACpE,OAAO,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,oBAAoB,CAAC,MAAM,CAAC;IACpE,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,eAAe,CAAC,MAAM,EAAE,CAAC;QAC/C,OAAO,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,oBAAoB,CAAC,MAAM,CAAC;IACnE,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAA2B;IAC3D,OAAO,QAAQ,CAAC,IAAI,KAAK,aAAa,CAAC,UAAU;QAC/C,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,oBAAoB,CAAC,UAAU,CAAC;AACvE,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAsB;IACrD,eAAe,CAAC,MAAM;IACtB,eAAe,CAAC,MAAM,EAAW,yCAAyC;IAC1E,eAAe,CAAC,gBAAgB,CAAC,4CAA4C;CAC9E,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAuB;IAC1D,OAAO,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAqB,EAAE,EAAmB;IAC3E,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;QACjC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,MAAM,EAAE,KAAK;YACxC,0BAA0B,IAAI,KAAK,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACjE,CAAC;IACJ,CAAC;AACH,CAAC"}
|