@nowline/export-msproj 0.0.0-dev.20261017174947.ge897dee → 0.0.0-dev.20261017184716.ge0dbbdf
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/index.d.ts.map +1 -1
- package/dist/index.js +66 -34
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
- package/src/index.ts +89 -35
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAQzD,MAAM,WAAW,aAAa;IAC1B,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAwDD,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,GAAE,aAAkB,GAAG,MAAM,CAgGzF"}
|
package/dist/index.js
CHANGED
|
@@ -11,6 +11,9 @@
|
|
|
11
11
|
// - Lossy export policy: `--strict` does not escalate.
|
|
12
12
|
// - Waves (specs/waves.md §10): one wave-end milestone task per wave,
|
|
13
13
|
// appended after every other task so existing UIDs never renumber.
|
|
14
|
+
// - Lane sequencing: each node links finish-to-start to the node before
|
|
15
|
+
// it in its lane or group, so MS Project's forward pass starts every
|
|
16
|
+
// task on engine C's day (specs/rendering.md § MS Project XML Export).
|
|
14
17
|
//
|
|
15
18
|
// Determinism: no `new Date()`. Anchoring date comes from `options.startDate`
|
|
16
19
|
// or the schedule's start (the roadmap's `start:`, else `inputs.today`);
|
|
@@ -119,12 +122,12 @@ function collectTasks(ast, drops, schedule) {
|
|
|
119
122
|
isMilestone: false,
|
|
120
123
|
durationMinutes: 0,
|
|
121
124
|
predecessors: [],
|
|
125
|
+
chainUids: [],
|
|
122
126
|
nowlineId: lane.name,
|
|
123
127
|
ownerRefs: getProps(lane, 'owner'),
|
|
124
128
|
});
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
}
|
|
129
|
+
// A lane's first node links to nothing: it starts on the project start.
|
|
130
|
+
walkSequence(lane.content, [], 2, ctx, drops, tasks, schedule);
|
|
128
131
|
// Summary spans all child rows — implicit in MSProject by id ranges,
|
|
129
132
|
// but we don't bother computing FinishDate / actuals.
|
|
130
133
|
void summaryUid;
|
|
@@ -140,6 +143,7 @@ function collectTasks(ast, drops, schedule) {
|
|
|
140
143
|
isMilestone: true,
|
|
141
144
|
durationMinutes: 0,
|
|
142
145
|
predecessors: getProps(m, 'after'),
|
|
146
|
+
chainUids: [],
|
|
143
147
|
nowlineId: m.name,
|
|
144
148
|
ownerRefs: [],
|
|
145
149
|
startsAt: getProp(m, 'date'),
|
|
@@ -158,6 +162,7 @@ function collectTasks(ast, drops, schedule) {
|
|
|
158
162
|
isMilestone: true, // Anchors → milestones in MS Project
|
|
159
163
|
durationMinutes: 0,
|
|
160
164
|
predecessors: [],
|
|
165
|
+
chainUids: [],
|
|
161
166
|
nowlineId: a.name,
|
|
162
167
|
ownerRefs: [],
|
|
163
168
|
startsAt: getProp(a, 'date'),
|
|
@@ -166,75 +171,101 @@ function collectTasks(ast, drops, schedule) {
|
|
|
166
171
|
}
|
|
167
172
|
return { tasks, parallelEnds: ctx.parallelEnds };
|
|
168
173
|
}
|
|
169
|
-
|
|
174
|
+
/**
|
|
175
|
+
* Engine C's sequential rule (`walkLane` in schedule.ts): each node starts
|
|
176
|
+
* after the one before it. `entry` is what the first node links to; each
|
|
177
|
+
* node's ends become the next node's entry. Returns the last node's ends.
|
|
178
|
+
*/
|
|
179
|
+
function walkSequence(children, entry, outline, ctx, drops, tasks, schedule) {
|
|
180
|
+
let prev = entry;
|
|
181
|
+
for (const child of children) {
|
|
182
|
+
prev = walkNode(child, prev, [], outline, ctx, drops, tasks, schedule);
|
|
183
|
+
}
|
|
184
|
+
return prev;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Writes one lane or group child and returns the UIDs that end it. `entry`
|
|
188
|
+
* links to the previous node; `inheritedAfter` is a parallel's own `after:`,
|
|
189
|
+
* which each of its tracks carries since the parallel has no task.
|
|
190
|
+
*/
|
|
191
|
+
function walkNode(child, entry, inheritedAfter, outline, ctx, drops, tasks, schedule) {
|
|
170
192
|
if (child.$type === 'ItemDeclaration') {
|
|
171
|
-
emitTaskRow(child, outline, ctx, drops, tasks, schedule);
|
|
193
|
+
return [emitTaskRow(child, entry, inheritedAfter, outline, ctx, drops, tasks, schedule)];
|
|
172
194
|
}
|
|
173
|
-
|
|
174
|
-
emitGroup(child, outline, ctx, drops, tasks, schedule);
|
|
195
|
+
if (child.$type === 'GroupBlock') {
|
|
196
|
+
return [emitGroup(child, entry, inheritedAfter, outline, ctx, drops, tasks, schedule)];
|
|
175
197
|
}
|
|
176
|
-
|
|
177
|
-
walkParallel(child, outline, ctx, drops, tasks, schedule);
|
|
198
|
+
if (child.$type === 'ParallelBlock') {
|
|
199
|
+
return walkParallel(child, entry, outline, ctx, drops, tasks, schedule);
|
|
178
200
|
}
|
|
179
|
-
|
|
201
|
+
if (child.$type === 'DescriptionDirective') {
|
|
180
202
|
drops.description += 1;
|
|
181
203
|
}
|
|
204
|
+
return entry;
|
|
182
205
|
}
|
|
183
|
-
/**
|
|
184
|
-
|
|
206
|
+
/**
|
|
207
|
+
* A group is a summary task over its children, one outline level down. Its
|
|
208
|
+
* entry link and its `after:` go on the summary task: MS Project starts no
|
|
209
|
+
* subtask before its summary task's predecessors finish, so the first child
|
|
210
|
+
* needs no link of its own. Returns the summary task's UID, which MS Project
|
|
211
|
+
* finishes with the group's last child.
|
|
212
|
+
*/
|
|
213
|
+
function emitGroup(group, entry, inheritedAfter, outline, ctx, drops, tasks, schedule) {
|
|
214
|
+
const uid = ctx.uid++;
|
|
185
215
|
tasks.push({
|
|
186
|
-
uid
|
|
216
|
+
uid,
|
|
187
217
|
id: ctx.id++,
|
|
188
218
|
name: displayLabel(group),
|
|
189
219
|
outlineLevel: outline,
|
|
190
220
|
isSummary: true,
|
|
191
221
|
isMilestone: false,
|
|
192
222
|
durationMinutes: 0,
|
|
193
|
-
predecessors: [],
|
|
223
|
+
predecessors: [...getProps(group, 'after'), ...inheritedAfter],
|
|
224
|
+
chainUids: entry,
|
|
194
225
|
nowlineId: group.name,
|
|
195
226
|
ownerRefs: [],
|
|
196
227
|
});
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
}
|
|
228
|
+
walkSequence(group.content, [], outline + 1, ctx, drops, tasks, schedule);
|
|
229
|
+
return uid;
|
|
200
230
|
}
|
|
201
231
|
/**
|
|
202
|
-
* A parallel has no task: its tracks sit at its own outline level
|
|
203
|
-
*
|
|
204
|
-
*
|
|
205
|
-
*
|
|
206
|
-
*
|
|
232
|
+
* A parallel has no task: its tracks sit at its own outline level, and each
|
|
233
|
+
* track's task (an item, or a group's summary task) takes the links the
|
|
234
|
+
* parallel would have had, its entry and its `after:`. Engine C ends a
|
|
235
|
+
* parallel at its latest track end, so the next node in the lane and
|
|
236
|
+
* `after:<parallel>` link to every track's task and MS Project starts the
|
|
237
|
+
* successor at the latest of them. Returns those track ends.
|
|
207
238
|
*/
|
|
208
|
-
function walkParallel(parallel, outline, ctx, drops, tasks, schedule) {
|
|
239
|
+
function walkParallel(parallel, entry, outline, ctx, drops, tasks, schedule) {
|
|
240
|
+
const after = getProps(parallel, 'after');
|
|
209
241
|
const ends = [];
|
|
210
242
|
for (const track of parallel.content) {
|
|
211
|
-
if (track.$type === 'ItemDeclaration') {
|
|
212
|
-
ends.push(ctx
|
|
213
|
-
emitTaskRow(track, outline, ctx, drops, tasks, schedule);
|
|
214
|
-
}
|
|
215
|
-
else if (track.$type === 'GroupBlock') {
|
|
216
|
-
ends.push(ctx.uid);
|
|
217
|
-
emitGroup(track, outline, ctx, drops, tasks, schedule);
|
|
243
|
+
if (track.$type === 'ItemDeclaration' || track.$type === 'GroupBlock') {
|
|
244
|
+
ends.push(...walkNode(track, entry, after, outline, ctx, drops, tasks, schedule));
|
|
218
245
|
}
|
|
219
246
|
}
|
|
220
247
|
if (parallel.name)
|
|
221
248
|
ctx.parallelEnds.set(parallel.name, ends);
|
|
249
|
+
return ends.length > 0 ? ends : entry;
|
|
222
250
|
}
|
|
223
|
-
function emitTaskRow(item, outline, ctx, drops, tasks, schedule) {
|
|
251
|
+
function emitTaskRow(item, entry, inheritedAfter, outline, ctx, drops, tasks, schedule) {
|
|
224
252
|
countDrops(item, drops);
|
|
253
|
+
const uid = ctx.uid++;
|
|
225
254
|
tasks.push({
|
|
226
|
-
uid
|
|
255
|
+
uid,
|
|
227
256
|
id: ctx.id++,
|
|
228
257
|
name: displayLabel(item),
|
|
229
258
|
outlineLevel: outline,
|
|
230
259
|
isSummary: false,
|
|
231
260
|
isMilestone: false,
|
|
232
261
|
durationMinutes: workingDaysToMinutes(schedule.byNode.get(item)?.days),
|
|
233
|
-
predecessors: getProps(item, 'after'),
|
|
262
|
+
predecessors: [...getProps(item, 'after'), ...inheritedAfter],
|
|
263
|
+
chainUids: entry,
|
|
234
264
|
nowlineId: item.name,
|
|
235
265
|
ownerRefs: getProps(item, 'owner'),
|
|
236
266
|
node: item,
|
|
237
267
|
});
|
|
268
|
+
return uid;
|
|
238
269
|
}
|
|
239
270
|
function countDrops(item, drops) {
|
|
240
271
|
if (getProps(item, 'labels').length > 0)
|
|
@@ -277,7 +308,7 @@ function emitTask(t, idToUid, parallelEnds, lines) {
|
|
|
277
308
|
linked.add(end);
|
|
278
309
|
}
|
|
279
310
|
}
|
|
280
|
-
for (const uid of t.extraPredecessorUids ?? []) {
|
|
311
|
+
for (const uid of [...t.chainUids, ...(t.extraPredecessorUids ?? [])]) {
|
|
281
312
|
if (linked.has(uid))
|
|
282
313
|
continue;
|
|
283
314
|
emitPredecessorLink(uid, lines);
|
|
@@ -363,6 +394,7 @@ function addWaveTasks(ast, plan, tasks, idToUid, drops) {
|
|
|
363
394
|
isMilestone: true,
|
|
364
395
|
durationMinutes: 0,
|
|
365
396
|
predecessors: [],
|
|
397
|
+
chainUids: [],
|
|
366
398
|
ownerRefs: [],
|
|
367
399
|
extraPredecessorUids: preds,
|
|
368
400
|
});
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,qCAAqC;AACrC,EAAE;AACF,mCAAmC;AACnC,aAAa;AACb,2EAA2E;AAC3E,kEAAkE;AAClE,6EAA6E;AAC7E,sCAAsC;AACtC,+EAA+E;AAC/E,yDAAyD;AACzD,wEAAwE;AACxE,uEAAuE;AACvE,EAAE;AACF,8EAA8E;AAC9E,yEAAyE;AACzE,wDAAwD;AAgBxD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAwB,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAE5F,OAAO,EAAE,mBAAmB,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAmEtD,MAAM,aAAa,GAAG,sCAAsC,CAAC;AAE7D,MAAM,UAAU,eAAe,CAAC,MAAoB,EAAE,OAAO,GAAkB,EAAE;IAC7E,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;IACvB,MAAM,KAAK,GAAe;QACtB,MAAM,EAAE,CAAC;QACT,QAAQ,EAAE,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,qBAAqB,CAAC,CAAC,MAAM;QACpF,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,CAAC;QACT,WAAW,EAAE,CAAC;QACd,QAAQ,EAAE,CAAC;QACX,SAAS,EAAE,CAAC;KACf,CAAC;IAEF,MAAM,WAAW,GAAG,SAAS,CACzB,OAAO,CAAC,WAAW,IAAI,YAAY,CAAC,GAAG,CAAC,WAAW,IAAI,SAAS,CAAC,CACpE,CAAC;IACF,MAAM,QAAQ,GACV,MAAM,CAAC,QAAQ,IAAI,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACtF,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IAE1E,YAAY;IACZ,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAExC,+CAA+C;IAC/C,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAEnE,mDAAmD;IACnD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,CAAC,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IACrD,CAAC;IACD,uEAAuE;IACvE,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC/B,IAAI,QAAQ,EAAE,CAAC;QACX,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;IAClD,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,SAAS;YAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7D,CAAC;IAED,WAAW;IACX,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IACtE,KAAK,CAAC,IAAI,CAAC,mBAAmB,aAAa,IAAI,CAAC,CAAC;IACjD,KAAK,CAAC,IAAI,CAAC,WAAW,WAAW,SAAS,CAAC,CAAC;IAC5C,KAAK,CAAC,IAAI,CAAC,YAAY,WAAW,UAAU,CAAC,CAAC;IAC9C,KAAK,CAAC,IAAI,CAAC,gBAAgB,SAAS,uBAAuB,CAAC,CAAC;IAC7D,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAC7C,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACtC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7E,KAAK,CAAC,IAAI,CACN,mBAAmB,CACf,OAAO,CAAC,eAAe,EACvB,kBAAkB,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,CACtD,CACJ,CAAC;IAEF,cAAc;IACd,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACpB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAEzB,kBAAkB;IAClB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5B,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YACxB,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3B,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAE7B,iCAAiC;QACjC,MAAM,WAAW,GAAG,kBAAkB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QAC/D,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC9B,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;gBAC1B,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAC7B,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACnC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAEzB,gBAAgB;IAChB,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,OAAO,EAAE,CAAC;QACV,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,OAAO,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,8BAA8B;AAE9B,SAAS,YAAY,CACjB,GAAgB,EAChB,KAAiB,EACjB,QAAyB;IAEzB,MAAM,KAAK,GAAc,EAAE,CAAC;IAC5B,MAAM,GAAG,GAAY,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;IAEhE,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;QACrC,IAAI,KAAK,CAAC,KAAK,KAAK,qBAAqB,EAAE,CAAC;YACxC,MAAM,IAAI,GAAG,KAA4B,CAAC;YAC1C,MAAM,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC;gBACP,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE;gBACd,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE;gBACZ,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;gBACxB,YAAY,EAAE,CAAC;gBACf,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,KAAK;gBAClB,eAAe,EAAE,CAAC;gBAClB,YAAY,EAAE,EAAE;gBAChB,SAAS,EAAE,IAAI,CAAC,IAAI;gBACpB,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAa;aACjD,CAAC,CAAC;YACH,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC/B,iBAAiB,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC7D,CAAC;YACD,qEAAqE;YACrE,sDAAsD;YACtD,KAAK,UAAU,CAAC;QACpB,CAAC;aAAM,IAAI,KAAK,CAAC,KAAK,KAAK,sBAAsB,EAAE,CAAC;YAChD,MAAM,CAAC,GAAG,KAA6B,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC;gBACP,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE;gBACd,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE;gBACZ,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;gBACrB,YAAY,EAAE,CAAC;gBACf,SAAS,EAAE,KAAK;gBAChB,WAAW,EAAE,IAAI;gBACjB,eAAe,EAAE,CAAC;gBAClB,YAAY,EAAE,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAa;gBAC9C,SAAS,EAAE,CAAC,CAAC,IAAI;gBACjB,SAAS,EAAE,EAAE;gBACb,QAAQ,EAAE,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC;aAC/B,CAAC,CAAC;YACH,IAAI,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC;gBAAE,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,KAAK,CAAC,KAAK,KAAK,mBAAmB,EAAE,CAAC;YAC7C,MAAM,CAAC,GAAG,KAA0B,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC;gBACP,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE;gBACd,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE;gBACZ,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;gBACrB,YAAY,EAAE,CAAC;gBACf,SAAS,EAAE,KAAK;gBAChB,WAAW,EAAE,IAAI,EAAE,qCAAqC;gBACxD,eAAe,EAAE,CAAC;gBAClB,YAAY,EAAE,EAAE;gBAChB,SAAS,EAAE,CAAC,CAAC,IAAI;gBACjB,SAAS,EAAE,EAAE;gBACb,QAAQ,EAAE,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC;aAC/B,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC;AACrD,CAAC;AAED,SAAS,iBAAiB,CACtB,KAAqC,EACrC,OAAe,EACf,GAAY,EACZ,KAAiB,EACjB,KAAgB,EAChB,QAAyB;IAEzB,IAAI,KAAK,CAAC,KAAK,KAAK,iBAAiB,EAAE,CAAC;QACpC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;SAAM,IAAI,KAAK,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;QACtC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC;SAAM,IAAI,KAAK,CAAC,KAAK,KAAK,eAAe,EAAE,CAAC;QACzC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC9D,CAAC;SAAM,IAAI,KAAK,CAAC,KAAK,KAAK,sBAAsB,EAAE,CAAC;QAChD,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;IAC3B,CAAC;AACL,CAAC;AAED,2EAA2E;AAC3E,SAAS,SAAS,CACd,KAAiB,EACjB,OAAe,EACf,GAAY,EACZ,KAAiB,EACjB,KAAgB,EAChB,QAAyB;IAEzB,KAAK,CAAC,IAAI,CAAC;QACP,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE;QACd,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE;QACZ,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC;QACzB,YAAY,EAAE,OAAO;QACrB,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,KAAK;QAClB,eAAe,EAAE,CAAC;QAClB,YAAY,EAAE,EAAE;QAChB,SAAS,EAAE,KAAK,CAAC,IAAI;QACrB,SAAS,EAAE,EAAE;KAChB,CAAC,CAAC;IACH,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QACrC,iBAAiB,CAAC,UAAU,EAAE,OAAO,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC5E,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAS,YAAY,CACjB,QAAuB,EACvB,OAAe,EACf,GAAY,EACZ,KAAiB,EACjB,KAAgB,EAChB,QAAyB;IAEzB,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,KAAK,CAAC,KAAK,KAAK,iBAAiB,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC7D,CAAC;aAAM,IAAI,KAAK,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI;QAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,WAAW,CAChB,IAAqB,EACrB,OAAe,EACf,GAAY,EACZ,KAAiB,EACjB,KAAgB,EAChB,QAAyB;IAEzB,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACxB,KAAK,CAAC,IAAI,CAAC;QACP,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE;QACd,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE;QACZ,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;QACxB,YAAY,EAAE,OAAO;QACrB,SAAS,EAAE,KAAK;QAChB,WAAW,EAAE,KAAK;QAClB,eAAe,EAAE,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;QACtE,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAa;QACjD,SAAS,EAAE,IAAI,CAAC,IAAI;QACpB,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAa;QAC9C,IAAI,EAAE,IAAI;KACb,CAAC,CAAC;AACP,CAAC;AAED,SAAS,UAAU,CAAC,IAAqB,EAAE,KAAiB;IACxD,IAAI,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IAC3D,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;QAAE,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;IAC7C,IAAI,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC;QAAE,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;IACpD,IAAI,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IAC3D,IAAI,IAAI,CAAC,WAAW;QAAE,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,QAAQ,CACb,CAAU,EACV,OAA4B,EAC5B,YAAmC,EACnC,KAAe;IAEf,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACvC,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IACvD,IAAI,CAAC,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAC1D,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACJ,KAAK,CAAC,IAAI,CAAC,mBAAmB,uBAAuB,CAAC,CAAC,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;IAC3F,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,YAAY,iBAAiB,CAAC,CAAC;IACnE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QACb,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,mBAAmB,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,+DAA+D;QAC/D,KAAK,MAAM,GAAG,IAAI,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAC3E,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC9B,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAChC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;IACL,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,oBAAoB,IAAI,EAAE,EAAE,CAAC;QAC7C,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC9B,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAChC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAW,EAAE,KAAe;IACrD,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACtC,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACpD,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAK;IAC3C,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;AAC3C,CAAC;AAED,8BAA8B;AAE9B;;;;;;;;;;;GAWG;AACH,SAAS,YAAY,CACjB,GAAgB,EAChB,IAAc,EACd,KAAgB,EAChB,OAA4B,EAC5B,KAAiB;IAEjB,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;QACrC,IAAI,KAAK,CAAC,KAAK,KAAK,mBAAmB,EAAE,CAAC;YACtC,MAAM,CAAC,GAAG,KAA0B,CAAC;YACrC,IAAI,CAAC,CAAC,IAAI;gBAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;aAAM,IAAI,KAAK,CAAC,KAAK,KAAK,sBAAsB,EAAE,CAAC;YAChD,MAAM,CAAC,GAAG,KAA6B,CAAC;YACxC,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,SAAS;gBAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7E,CAAC;IACL,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrC,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IAE5C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACtC,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAa,EAAE,CAAC;YACpD,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;gBACrB,SAAS;YACb,CAAC;YACD,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACpE,IAAI,MAAM,KAAK,SAAS;gBAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAe,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACxD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACpB,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvD,IAAI,CAAC,KAAK,SAAS;YAAE,SAAS;QAC9B,MAAM,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC;YAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,CAAC,CAAC,oBAAoB,GAAG,KAAK,CAAC;QACrD,IAAI,CAAC,CAAC,SAAS;YAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;;YAC1C,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC;YACP,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;YACf,EAAE,EAAE,EAAE,EAAE;YACR,IAAI,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,aAAa;YACxC,YAAY,EAAE,CAAC;YACf,SAAS,EAAE,KAAK;YAChB,WAAW,EAAE,IAAI;YACjB,eAAe,EAAE,CAAC;YAClB,YAAY,EAAE,EAAE;YAChB,SAAS,EAAE,EAAE;YACb,oBAAoB,EAAE,KAAK;SAC9B,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;AACP,CAAC;AAED,kCAAkC;AAElC,SAAS,gBAAgB,CAAC,GAAgB;IACtC,MAAM,GAAG,GAAkB,EAAE,CAAC;IAC9B,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;IAC9B,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;QACrC,IAAI,KAAK,CAAC,KAAK,KAAK,mBAAmB,EAAE,CAAC;YACtC,MAAM,CAAC,GAAG,KAA0B,CAAC;YACrC,GAAG,CAAC,IAAI,CAAC;gBACL,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE;gBACd,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE;gBACZ,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;gBACrB,SAAS,EAAE,CAAC,CAAC,IAAI;aACpB,CAAC,CAAC;QACP,CAAC;aAAM,IAAI,KAAK,CAAC,KAAK,KAAK,iBAAiB,EAAE,CAAC;YAC3C,WAAW,CAAC,KAAwB,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACpD,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAChB,IAAqB,EACrB,GAAkB,EAClB,GAAgC;IAEhC,GAAG,CAAC,IAAI,CAAC;QACL,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE;QACd,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE;QACZ,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;QACxB,SAAS,EAAE,IAAI,CAAC,IAAI;KACvB,CAAC,CAAC;IACH,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,KAAK,KAAK,iBAAiB,EAAE,CAAC;YACpC,WAAW,CAAC,KAAwB,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACpD,CAAC;IACL,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CAAC,CAAc,EAAE,KAAe;IACjD,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC7B,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACvC,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IACvD,KAAK,CAAC,IAAI,CAAC,sBAAsB,8BAA8B,gBAAgB,CAAC,CAAC;IACjF,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAClC,CAAC;AASD,SAAS,kBAAkB,CAAC,KAAgB,EAAE,OAA4B;IACtE,MAAM,GAAG,GAAoB,EAAE,CAAC;IAChC,MAAM,aAAa,GAAG,CAAC,CAAC;IACxB,KAAK,aAAa,CAAC;IACnB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACpB,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACpB,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;YACnD,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,CAAgB,EAAE,KAAe;IACrD,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC/B,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACjD,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACrC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AACpC,CAAC;AAED,sCAAsC;AAEtC,SAAS,WAAW,CAAC,KAAiB;IAClC,MAAM,KAAK,GAAyB;QAChC,QAAQ;QACR,UAAU;QACV,SAAS;QACT,OAAO;QACP,UAAU;QACV,QAAQ;QACR,aAAa;QACb,UAAU;QACV,WAAW;KACd,CAAC;IACF,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAChG,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,OAAO,kCAAkC,KAAK,CAAC,MAAM,mBAAmB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC/F,CAAC;AAED,SAAS,aAAa,CAAC,GAAqB;IACxC,IAAI,GAAG,KAAK,UAAU;QAAE,OAAO,mBAAmB,CAAC;IACnD,IAAI,GAAG,KAAK,WAAW;QAAE,OAAO,YAAY,CAAC;IAC7C,OAAO,GAAG,CAAC;AACf,CAAC;AAED,gCAAgC;AAEhC,SAAS,gBAAgB,CAAC,MAA0B,EAAE,aAAmB;IACrE,IAAI,MAAM,EAAE,CAAC;QACT,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAM,wBAAwB,CAAC,CAAC;QACjF,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,OAAO,aAAa,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACpD,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nowline/export-msproj",
|
|
3
|
-
"version": "0.0.0-dev.
|
|
3
|
+
"version": "0.0.0-dev.20261017184716.ge0dbbdf",
|
|
4
4
|
"description": "Exports a Nowline roadmap to Microsoft Project XML for import into other PM tools.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"engines": {
|
|
@@ -21,9 +21,9 @@
|
|
|
21
21
|
"src/"
|
|
22
22
|
],
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@nowline/core": "0.0.0-dev.
|
|
25
|
-
"@nowline/export-core": "0.0.0-dev.
|
|
26
|
-
"@nowline/layout": "0.0.0-dev.
|
|
24
|
+
"@nowline/core": "0.0.0-dev.20261017184716.ge0dbbdf",
|
|
25
|
+
"@nowline/export-core": "0.0.0-dev.20261017184716.ge0dbbdf",
|
|
26
|
+
"@nowline/layout": "0.0.0-dev.20261017184716.ge0dbbdf"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@types/node": "^26.6.3",
|
package/src/index.ts
CHANGED
|
@@ -11,6 +11,9 @@
|
|
|
11
11
|
// - Lossy export policy: `--strict` does not escalate.
|
|
12
12
|
// - Waves (specs/waves.md §10): one wave-end milestone task per wave,
|
|
13
13
|
// appended after every other task so existing UIDs never renumber.
|
|
14
|
+
// - Lane sequencing: each node links finish-to-start to the node before
|
|
15
|
+
// it in its lane or group, so MS Project's forward pass starts every
|
|
16
|
+
// task on engine C's day (specs/rendering.md § MS Project XML Export).
|
|
14
17
|
//
|
|
15
18
|
// Determinism: no `new Date()`. Anchoring date comes from `options.startDate`
|
|
16
19
|
// or the schedule's start (the roadmap's `start:`, else `inputs.today`);
|
|
@@ -82,7 +85,9 @@ interface TaskRow {
|
|
|
82
85
|
startsAt?: string;
|
|
83
86
|
/** The source item, for wave membership. */
|
|
84
87
|
node?: ItemDeclaration;
|
|
85
|
-
/**
|
|
88
|
+
/** The previous node in the lane or group: its task, or every track end of a parallel. */
|
|
89
|
+
chainUids: number[];
|
|
90
|
+
/** Links by UID, added after `chainUids`, skipping UIDs already linked. */
|
|
86
91
|
extraPredecessorUids?: number[];
|
|
87
92
|
}
|
|
88
93
|
|
|
@@ -227,12 +232,12 @@ function collectTasks(
|
|
|
227
232
|
isMilestone: false,
|
|
228
233
|
durationMinutes: 0,
|
|
229
234
|
predecessors: [],
|
|
235
|
+
chainUids: [],
|
|
230
236
|
nowlineId: lane.name,
|
|
231
237
|
ownerRefs: getProps(lane, 'owner') as string[],
|
|
232
238
|
});
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
}
|
|
239
|
+
// A lane's first node links to nothing: it starts on the project start.
|
|
240
|
+
walkSequence(lane.content, [], 2, ctx, drops, tasks, schedule);
|
|
236
241
|
// Summary spans all child rows — implicit in MSProject by id ranges,
|
|
237
242
|
// but we don't bother computing FinishDate / actuals.
|
|
238
243
|
void summaryUid;
|
|
@@ -247,6 +252,7 @@ function collectTasks(
|
|
|
247
252
|
isMilestone: true,
|
|
248
253
|
durationMinutes: 0,
|
|
249
254
|
predecessors: getProps(m, 'after') as string[],
|
|
255
|
+
chainUids: [],
|
|
250
256
|
nowlineId: m.name,
|
|
251
257
|
ownerRefs: [],
|
|
252
258
|
startsAt: getProp(m, 'date'),
|
|
@@ -263,6 +269,7 @@ function collectTasks(
|
|
|
263
269
|
isMilestone: true, // Anchors → milestones in MS Project
|
|
264
270
|
durationMinutes: 0,
|
|
265
271
|
predecessors: [],
|
|
272
|
+
chainUids: [],
|
|
266
273
|
nowlineId: a.name,
|
|
267
274
|
ownerRefs: [],
|
|
268
275
|
startsAt: getProp(a, 'date'),
|
|
@@ -272,101 +279,147 @@ function collectTasks(
|
|
|
272
279
|
return { tasks, parallelEnds: ctx.parallelEnds };
|
|
273
280
|
}
|
|
274
281
|
|
|
275
|
-
|
|
282
|
+
/**
|
|
283
|
+
* Engine C's sequential rule (`walkLane` in schedule.ts): each node starts
|
|
284
|
+
* after the one before it. `entry` is what the first node links to; each
|
|
285
|
+
* node's ends become the next node's entry. Returns the last node's ends.
|
|
286
|
+
*/
|
|
287
|
+
function walkSequence(
|
|
288
|
+
children: readonly (SwimlaneContent | GroupContent)[],
|
|
289
|
+
entry: number[],
|
|
290
|
+
outline: number,
|
|
291
|
+
ctx: WalkCtx,
|
|
292
|
+
drops: DropCounts,
|
|
293
|
+
tasks: TaskRow[],
|
|
294
|
+
schedule: RoadmapSchedule,
|
|
295
|
+
): number[] {
|
|
296
|
+
let prev = entry;
|
|
297
|
+
for (const child of children) {
|
|
298
|
+
prev = walkNode(child, prev, [], outline, ctx, drops, tasks, schedule);
|
|
299
|
+
}
|
|
300
|
+
return prev;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
/**
|
|
304
|
+
* Writes one lane or group child and returns the UIDs that end it. `entry`
|
|
305
|
+
* links to the previous node; `inheritedAfter` is a parallel's own `after:`,
|
|
306
|
+
* which each of its tracks carries since the parallel has no task.
|
|
307
|
+
*/
|
|
308
|
+
function walkNode(
|
|
276
309
|
child: SwimlaneContent | GroupContent,
|
|
310
|
+
entry: number[],
|
|
311
|
+
inheritedAfter: string[],
|
|
277
312
|
outline: number,
|
|
278
313
|
ctx: WalkCtx,
|
|
279
314
|
drops: DropCounts,
|
|
280
315
|
tasks: TaskRow[],
|
|
281
316
|
schedule: RoadmapSchedule,
|
|
282
|
-
):
|
|
317
|
+
): number[] {
|
|
283
318
|
if (child.$type === 'ItemDeclaration') {
|
|
284
|
-
emitTaskRow(child, outline, ctx, drops, tasks, schedule);
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
319
|
+
return [emitTaskRow(child, entry, inheritedAfter, outline, ctx, drops, tasks, schedule)];
|
|
320
|
+
}
|
|
321
|
+
if (child.$type === 'GroupBlock') {
|
|
322
|
+
return [emitGroup(child, entry, inheritedAfter, outline, ctx, drops, tasks, schedule)];
|
|
323
|
+
}
|
|
324
|
+
if (child.$type === 'ParallelBlock') {
|
|
325
|
+
return walkParallel(child, entry, outline, ctx, drops, tasks, schedule);
|
|
326
|
+
}
|
|
327
|
+
if (child.$type === 'DescriptionDirective') {
|
|
290
328
|
drops.description += 1;
|
|
291
329
|
}
|
|
330
|
+
return entry;
|
|
292
331
|
}
|
|
293
332
|
|
|
294
|
-
/**
|
|
333
|
+
/**
|
|
334
|
+
* A group is a summary task over its children, one outline level down. Its
|
|
335
|
+
* entry link and its `after:` go on the summary task: MS Project starts no
|
|
336
|
+
* subtask before its summary task's predecessors finish, so the first child
|
|
337
|
+
* needs no link of its own. Returns the summary task's UID, which MS Project
|
|
338
|
+
* finishes with the group's last child.
|
|
339
|
+
*/
|
|
295
340
|
function emitGroup(
|
|
296
341
|
group: GroupBlock,
|
|
342
|
+
entry: number[],
|
|
343
|
+
inheritedAfter: string[],
|
|
297
344
|
outline: number,
|
|
298
345
|
ctx: WalkCtx,
|
|
299
346
|
drops: DropCounts,
|
|
300
347
|
tasks: TaskRow[],
|
|
301
348
|
schedule: RoadmapSchedule,
|
|
302
|
-
):
|
|
349
|
+
): number {
|
|
350
|
+
const uid = ctx.uid++;
|
|
303
351
|
tasks.push({
|
|
304
|
-
uid
|
|
352
|
+
uid,
|
|
305
353
|
id: ctx.id++,
|
|
306
354
|
name: displayLabel(group),
|
|
307
355
|
outlineLevel: outline,
|
|
308
356
|
isSummary: true,
|
|
309
357
|
isMilestone: false,
|
|
310
358
|
durationMinutes: 0,
|
|
311
|
-
predecessors: [],
|
|
359
|
+
predecessors: [...(getProps(group, 'after') as string[]), ...inheritedAfter],
|
|
360
|
+
chainUids: entry,
|
|
312
361
|
nowlineId: group.name,
|
|
313
362
|
ownerRefs: [],
|
|
314
363
|
});
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
}
|
|
364
|
+
walkSequence(group.content, [], outline + 1, ctx, drops, tasks, schedule);
|
|
365
|
+
return uid;
|
|
318
366
|
}
|
|
319
367
|
|
|
320
368
|
/**
|
|
321
|
-
* A parallel has no task: its tracks sit at its own outline level
|
|
322
|
-
*
|
|
323
|
-
*
|
|
324
|
-
*
|
|
325
|
-
*
|
|
369
|
+
* A parallel has no task: its tracks sit at its own outline level, and each
|
|
370
|
+
* track's task (an item, or a group's summary task) takes the links the
|
|
371
|
+
* parallel would have had, its entry and its `after:`. Engine C ends a
|
|
372
|
+
* parallel at its latest track end, so the next node in the lane and
|
|
373
|
+
* `after:<parallel>` link to every track's task and MS Project starts the
|
|
374
|
+
* successor at the latest of them. Returns those track ends.
|
|
326
375
|
*/
|
|
327
376
|
function walkParallel(
|
|
328
377
|
parallel: ParallelBlock,
|
|
378
|
+
entry: number[],
|
|
329
379
|
outline: number,
|
|
330
380
|
ctx: WalkCtx,
|
|
331
381
|
drops: DropCounts,
|
|
332
382
|
tasks: TaskRow[],
|
|
333
383
|
schedule: RoadmapSchedule,
|
|
334
|
-
):
|
|
384
|
+
): number[] {
|
|
385
|
+
const after = getProps(parallel, 'after') as string[];
|
|
335
386
|
const ends: number[] = [];
|
|
336
387
|
for (const track of parallel.content) {
|
|
337
|
-
if (track.$type === 'ItemDeclaration') {
|
|
338
|
-
ends.push(ctx
|
|
339
|
-
emitTaskRow(track, outline, ctx, drops, tasks, schedule);
|
|
340
|
-
} else if (track.$type === 'GroupBlock') {
|
|
341
|
-
ends.push(ctx.uid);
|
|
342
|
-
emitGroup(track, outline, ctx, drops, tasks, schedule);
|
|
388
|
+
if (track.$type === 'ItemDeclaration' || track.$type === 'GroupBlock') {
|
|
389
|
+
ends.push(...walkNode(track, entry, after, outline, ctx, drops, tasks, schedule));
|
|
343
390
|
}
|
|
344
391
|
}
|
|
345
392
|
if (parallel.name) ctx.parallelEnds.set(parallel.name, ends);
|
|
393
|
+
return ends.length > 0 ? ends : entry;
|
|
346
394
|
}
|
|
347
395
|
|
|
348
396
|
function emitTaskRow(
|
|
349
397
|
item: ItemDeclaration,
|
|
398
|
+
entry: number[],
|
|
399
|
+
inheritedAfter: string[],
|
|
350
400
|
outline: number,
|
|
351
401
|
ctx: WalkCtx,
|
|
352
402
|
drops: DropCounts,
|
|
353
403
|
tasks: TaskRow[],
|
|
354
404
|
schedule: RoadmapSchedule,
|
|
355
|
-
):
|
|
405
|
+
): number {
|
|
356
406
|
countDrops(item, drops);
|
|
407
|
+
const uid = ctx.uid++;
|
|
357
408
|
tasks.push({
|
|
358
|
-
uid
|
|
409
|
+
uid,
|
|
359
410
|
id: ctx.id++,
|
|
360
411
|
name: displayLabel(item),
|
|
361
412
|
outlineLevel: outline,
|
|
362
413
|
isSummary: false,
|
|
363
414
|
isMilestone: false,
|
|
364
415
|
durationMinutes: workingDaysToMinutes(schedule.byNode.get(item)?.days),
|
|
365
|
-
predecessors: getProps(item, 'after') as string[],
|
|
416
|
+
predecessors: [...(getProps(item, 'after') as string[]), ...inheritedAfter],
|
|
417
|
+
chainUids: entry,
|
|
366
418
|
nowlineId: item.name,
|
|
367
419
|
ownerRefs: getProps(item, 'owner') as string[],
|
|
368
420
|
node: item,
|
|
369
421
|
});
|
|
422
|
+
return uid;
|
|
370
423
|
}
|
|
371
424
|
|
|
372
425
|
function countDrops(item: ItemDeclaration, drops: DropCounts): void {
|
|
@@ -408,7 +461,7 @@ function emitTask(
|
|
|
408
461
|
linked.add(end);
|
|
409
462
|
}
|
|
410
463
|
}
|
|
411
|
-
for (const uid of t.extraPredecessorUids ?? []) {
|
|
464
|
+
for (const uid of [...t.chainUids, ...(t.extraPredecessorUids ?? [])]) {
|
|
412
465
|
if (linked.has(uid)) continue;
|
|
413
466
|
emitPredecessorLink(uid, lines);
|
|
414
467
|
linked.add(uid);
|
|
@@ -496,6 +549,7 @@ function addWaveTasks(
|
|
|
496
549
|
isMilestone: true,
|
|
497
550
|
durationMinutes: 0,
|
|
498
551
|
predecessors: [],
|
|
552
|
+
chainUids: [],
|
|
499
553
|
ownerRefs: [],
|
|
500
554
|
extraPredecessorUids: preds,
|
|
501
555
|
});
|