@nowline/export-msproj 0.8.6 → 0.9.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 +21 -9
- package/dist/calendar.d.ts +6 -1
- package/dist/calendar.d.ts.map +1 -1
- package/dist/calendar.js +54 -10
- package/dist/calendar.js.map +1 -1
- package/dist/duration.d.ts +5 -1
- package/dist/duration.d.ts.map +1 -1
- package/dist/duration.js +12 -43
- package/dist/duration.js.map +1 -1
- package/dist/index.d.ts +3 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +227 -94
- package/dist/index.js.map +1 -1
- package/dist/xml.d.ts +7 -0
- package/dist/xml.d.ts.map +1 -1
- package/dist/xml.js +9 -0
- package/dist/xml.js.map +1 -1
- package/package.json +6 -6
- package/src/calendar.ts +72 -10
- package/src/duration.ts +12 -39
- package/src/index.ts +302 -112
- package/src/xml.ts +10 -0
package/dist/index.js
CHANGED
|
@@ -3,16 +3,27 @@
|
|
|
3
3
|
//
|
|
4
4
|
// Spec: specs/handoffs/m2c.md § 8.
|
|
5
5
|
// Decisions:
|
|
6
|
-
// - Resolution 6: Standard calendar block (
|
|
6
|
+
// - Resolution 6: Standard calendar block (8h days, fixed UIDs 1/2). Its
|
|
7
|
+
// working weekdays and every task Duration come from engine C
|
|
8
|
+
// (`scheduleRoadmap`) under the file's calendar, so they match the chart
|
|
9
|
+
// (specs/working-calendar.md §8).
|
|
7
10
|
// - Resolution 9: single stderr summary line on lossy drops; never an error.
|
|
8
11
|
// - Lossy export policy: `--strict` does not escalate.
|
|
12
|
+
// - Waves (specs/waves.md §10): one wave-end milestone task per wave,
|
|
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).
|
|
9
17
|
//
|
|
10
18
|
// Determinism: no `new Date()`. Anchoring date comes from `options.startDate`
|
|
11
|
-
// or
|
|
19
|
+
// or the schedule's start (the roadmap's `start:`, else `inputs.today`);
|
|
20
|
+
// calendar UIDs are fixed; Tasks numbered sequentially.
|
|
21
|
+
import { ISO_DATE_RE } from '@nowline/core/internal';
|
|
12
22
|
import { displayLabel, getProp, getProps, hasProp, roadmapTitle } from '@nowline/export-core';
|
|
23
|
+
import { calendarExceptions, scheduleRoadmap } from '@nowline/layout';
|
|
13
24
|
import { buildCalendarsBlock, STANDARD_RESOURCE_CALENDAR_UID } from './calendar.js';
|
|
14
|
-
import {
|
|
15
|
-
import { escapeXml, tag } from './xml.js';
|
|
25
|
+
import { minutesToMsProjDuration, workingDaysToMinutes } from './duration.js';
|
|
26
|
+
import { escapeXml, singleLine, tag } from './xml.js';
|
|
16
27
|
const PROJECT_XMLNS = 'http://schemas.microsoft.com/project';
|
|
17
28
|
export function exportMsProjXml(inputs, options = {}) {
|
|
18
29
|
const ast = inputs.ast;
|
|
@@ -24,19 +35,27 @@ export function exportMsProjXml(inputs, options = {}) {
|
|
|
24
35
|
progress: 0,
|
|
25
36
|
before: 0,
|
|
26
37
|
description: 0,
|
|
38
|
+
waveNoId: 0,
|
|
39
|
+
waveFloor: 0,
|
|
27
40
|
};
|
|
28
41
|
const projectName = escapeXml(options.projectName ?? roadmapTitle(ast.roadmapDecl ?? undefined));
|
|
29
|
-
const
|
|
42
|
+
const schedule = inputs.schedule ?? scheduleRoadmap(ast, inputs.resolved, { today: inputs.today });
|
|
43
|
+
const startDate = resolveStartDate(options.startDate, schedule.startDate);
|
|
30
44
|
// Resources
|
|
31
45
|
const resources = collectResources(ast);
|
|
32
46
|
// Tasks (walk roadmap entries in source order)
|
|
33
|
-
const tasks = collectTasks(ast, drops,
|
|
47
|
+
const { tasks, parallelEnds } = collectTasks(ast, drops, schedule);
|
|
34
48
|
// Predecessor lookup uses Nowline ids → task UIDs.
|
|
35
49
|
const idToUid = new Map();
|
|
36
50
|
for (const t of tasks) {
|
|
37
51
|
if (t.nowlineId)
|
|
38
52
|
idToUid.set(t.nowlineId, t.uid);
|
|
39
53
|
}
|
|
54
|
+
// Undefined when the roadmap declares no waves: nothing below changes.
|
|
55
|
+
const wavePlan = schedule.plan;
|
|
56
|
+
if (wavePlan) {
|
|
57
|
+
addWaveTasks(ast, wavePlan, tasks, idToUid, drops);
|
|
58
|
+
}
|
|
40
59
|
const idToUidResource = new Map();
|
|
41
60
|
for (const r of resources) {
|
|
42
61
|
if (r.nowlineId)
|
|
@@ -51,11 +70,13 @@ export function exportMsProjXml(inputs, options = {}) {
|
|
|
51
70
|
lines.push(` <StartDate>${startDate}T08:00:00</StartDate>`);
|
|
52
71
|
lines.push(' <ScheduleFromStart>1</ScheduleFromStart>');
|
|
53
72
|
lines.push(' <CalendarUID>1</CalendarUID>');
|
|
54
|
-
|
|
73
|
+
const { working } = schedule.calendar;
|
|
74
|
+
const { startDate: windowStart, endDate: windowEnd } = inputs.model.timeline;
|
|
75
|
+
lines.push(buildCalendarsBlock(working.workingWeekdays, calendarExceptions(working, windowStart, windowEnd)));
|
|
55
76
|
// Tasks block
|
|
56
77
|
lines.push(' <Tasks>');
|
|
57
78
|
for (const t of tasks) {
|
|
58
|
-
emitTask(t, idToUid, lines);
|
|
79
|
+
emitTask(t, idToUid, parallelEnds, lines);
|
|
59
80
|
}
|
|
60
81
|
lines.push(' </Tasks>');
|
|
61
82
|
// Resources block
|
|
@@ -85,9 +106,9 @@ export function exportMsProjXml(inputs, options = {}) {
|
|
|
85
106
|
return lines.join('\n');
|
|
86
107
|
}
|
|
87
108
|
// ---------- Tasks ----------
|
|
88
|
-
function collectTasks(ast, drops,
|
|
109
|
+
function collectTasks(ast, drops, schedule) {
|
|
89
110
|
const tasks = [];
|
|
90
|
-
const ctx = { uid: 1, id: 1 };
|
|
111
|
+
const ctx = { uid: 1, id: 1, parallelEnds: new Map() };
|
|
91
112
|
for (const entry of ast.roadmapEntries) {
|
|
92
113
|
if (entry.$type === 'SwimlaneDeclaration') {
|
|
93
114
|
const lane = entry;
|
|
@@ -101,12 +122,12 @@ function collectTasks(ast, drops, startDate) {
|
|
|
101
122
|
isMilestone: false,
|
|
102
123
|
durationMinutes: 0,
|
|
103
124
|
predecessors: [],
|
|
125
|
+
chainUids: [],
|
|
104
126
|
nowlineId: lane.name,
|
|
105
127
|
ownerRefs: getProps(lane, 'owner'),
|
|
106
128
|
});
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
}
|
|
129
|
+
// A lane's first node links to nothing: it starts on the project start.
|
|
130
|
+
walkSequence(lane.content, [], 2, ctx, drops, tasks, schedule);
|
|
110
131
|
// Summary spans all child rows — implicit in MSProject by id ranges,
|
|
111
132
|
// but we don't bother computing FinishDate / actuals.
|
|
112
133
|
void summaryUid;
|
|
@@ -122,6 +143,7 @@ function collectTasks(ast, drops, startDate) {
|
|
|
122
143
|
isMilestone: true,
|
|
123
144
|
durationMinutes: 0,
|
|
124
145
|
predecessors: getProps(m, 'after'),
|
|
146
|
+
chainUids: [],
|
|
125
147
|
nowlineId: m.name,
|
|
126
148
|
ownerRefs: [],
|
|
127
149
|
startsAt: getProp(m, 'date'),
|
|
@@ -140,99 +162,110 @@ function collectTasks(ast, drops, startDate) {
|
|
|
140
162
|
isMilestone: true, // Anchors → milestones in MS Project
|
|
141
163
|
durationMinutes: 0,
|
|
142
164
|
predecessors: [],
|
|
165
|
+
chainUids: [],
|
|
143
166
|
nowlineId: a.name,
|
|
144
167
|
ownerRefs: [],
|
|
145
168
|
startsAt: getProp(a, 'date'),
|
|
146
169
|
});
|
|
147
170
|
}
|
|
148
171
|
}
|
|
149
|
-
return tasks;
|
|
172
|
+
return { tasks, parallelEnds: ctx.parallelEnds };
|
|
173
|
+
}
|
|
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;
|
|
150
185
|
}
|
|
151
|
-
|
|
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) {
|
|
152
192
|
if (child.$type === 'ItemDeclaration') {
|
|
153
|
-
emitTaskRow(child, outline, ctx, drops, tasks);
|
|
193
|
+
return [emitTaskRow(child, entry, inheritedAfter, outline, ctx, drops, tasks, schedule)];
|
|
154
194
|
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
tasks.push({
|
|
158
|
-
uid: ctx.uid++,
|
|
159
|
-
id: ctx.id++,
|
|
160
|
-
name: displayLabel(group),
|
|
161
|
-
outlineLevel: outline,
|
|
162
|
-
isSummary: true,
|
|
163
|
-
isMilestone: false,
|
|
164
|
-
durationMinutes: 0,
|
|
165
|
-
predecessors: [],
|
|
166
|
-
nowlineId: group.name,
|
|
167
|
-
ownerRefs: [],
|
|
168
|
-
});
|
|
169
|
-
for (const grandchild of group.content) {
|
|
170
|
-
walkGroupChild(grandchild, outline + 1, ctx, drops, tasks, startDate);
|
|
171
|
-
}
|
|
195
|
+
if (child.$type === 'GroupBlock') {
|
|
196
|
+
return [emitGroup(child, entry, inheritedAfter, outline, ctx, drops, tasks, schedule)];
|
|
172
197
|
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
for (const grandchild of parallel.content) {
|
|
176
|
-
if (grandchild.$type === 'ItemDeclaration') {
|
|
177
|
-
emitTaskRow(grandchild, outline, ctx, drops, tasks);
|
|
178
|
-
}
|
|
179
|
-
else if (grandchild.$type === 'GroupBlock') {
|
|
180
|
-
walkSwimlaneChild(grandchild, outline, ctx, drops, tasks, startDate);
|
|
181
|
-
}
|
|
182
|
-
}
|
|
198
|
+
if (child.$type === 'ParallelBlock') {
|
|
199
|
+
return walkParallel(child, entry, outline, ctx, drops, tasks, schedule);
|
|
183
200
|
}
|
|
184
|
-
|
|
201
|
+
if (child.$type === 'DescriptionDirective') {
|
|
185
202
|
drops.description += 1;
|
|
186
203
|
}
|
|
204
|
+
return entry;
|
|
187
205
|
}
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
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++;
|
|
215
|
+
tasks.push({
|
|
216
|
+
uid,
|
|
217
|
+
id: ctx.id++,
|
|
218
|
+
name: displayLabel(group),
|
|
219
|
+
outlineLevel: outline,
|
|
220
|
+
isSummary: true,
|
|
221
|
+
isMilestone: false,
|
|
222
|
+
durationMinutes: 0,
|
|
223
|
+
predecessors: [...getProps(group, 'after'), ...inheritedAfter],
|
|
224
|
+
chainUids: entry,
|
|
225
|
+
nowlineId: group.name,
|
|
226
|
+
ownerRefs: [],
|
|
227
|
+
});
|
|
228
|
+
walkSequence(group.content, [], outline + 1, ctx, drops, tasks, schedule);
|
|
229
|
+
return uid;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
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.
|
|
238
|
+
*/
|
|
239
|
+
function walkParallel(parallel, entry, outline, ctx, drops, tasks, schedule) {
|
|
240
|
+
const after = getProps(parallel, 'after');
|
|
241
|
+
const ends = [];
|
|
242
|
+
for (const track of parallel.content) {
|
|
243
|
+
if (track.$type === 'ItemDeclaration' || track.$type === 'GroupBlock') {
|
|
244
|
+
ends.push(...walkNode(track, entry, after, outline, ctx, drops, tasks, schedule));
|
|
216
245
|
}
|
|
217
246
|
}
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
247
|
+
if (parallel.name)
|
|
248
|
+
ctx.parallelEnds.set(parallel.name, ends);
|
|
249
|
+
return ends.length > 0 ? ends : entry;
|
|
221
250
|
}
|
|
222
|
-
function emitTaskRow(item, outline, ctx, drops, tasks) {
|
|
251
|
+
function emitTaskRow(item, entry, inheritedAfter, outline, ctx, drops, tasks, schedule) {
|
|
223
252
|
countDrops(item, drops);
|
|
253
|
+
const uid = ctx.uid++;
|
|
224
254
|
tasks.push({
|
|
225
|
-
uid
|
|
255
|
+
uid,
|
|
226
256
|
id: ctx.id++,
|
|
227
257
|
name: displayLabel(item),
|
|
228
258
|
outlineLevel: outline,
|
|
229
259
|
isSummary: false,
|
|
230
260
|
isMilestone: false,
|
|
231
|
-
durationMinutes:
|
|
232
|
-
predecessors: getProps(item, 'after'),
|
|
261
|
+
durationMinutes: workingDaysToMinutes(schedule.byNode.get(item)?.days),
|
|
262
|
+
predecessors: [...getProps(item, 'after'), ...inheritedAfter],
|
|
263
|
+
chainUids: entry,
|
|
233
264
|
nowlineId: item.name,
|
|
234
265
|
ownerRefs: getProps(item, 'owner'),
|
|
266
|
+
node: item,
|
|
235
267
|
});
|
|
268
|
+
return uid;
|
|
236
269
|
}
|
|
237
270
|
function countDrops(item, drops) {
|
|
238
271
|
if (getProps(item, 'labels').length > 0)
|
|
@@ -246,11 +279,11 @@ function countDrops(item, drops) {
|
|
|
246
279
|
if (item.description)
|
|
247
280
|
drops.description += 1;
|
|
248
281
|
}
|
|
249
|
-
function emitTask(t, idToUid, lines) {
|
|
282
|
+
function emitTask(t, idToUid, parallelEnds, lines) {
|
|
250
283
|
lines.push(' <Task>');
|
|
251
284
|
lines.push(` ${tag('UID', t.uid)}`);
|
|
252
285
|
lines.push(` ${tag('ID', t.id)}`);
|
|
253
|
-
lines.push(` ${tag('Name', t.name)}`);
|
|
286
|
+
lines.push(` ${tag('Name', singleLine(t.name))}`);
|
|
254
287
|
if (t.isSummary)
|
|
255
288
|
lines.push(` <Summary>1</Summary>`);
|
|
256
289
|
if (t.isMilestone) {
|
|
@@ -264,17 +297,111 @@ function emitTask(t, idToUid, lines) {
|
|
|
264
297
|
if (t.startsAt) {
|
|
265
298
|
lines.push(` <Start>${t.startsAt}T08:00:00</Start>`);
|
|
266
299
|
}
|
|
300
|
+
const linked = new Set();
|
|
267
301
|
for (const pred of t.predecessors) {
|
|
268
302
|
const uid = idToUid.get(pred);
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
lines
|
|
303
|
+
// A parallel has no task of its own: link to each track's end.
|
|
304
|
+
for (const end of uid !== undefined ? [uid] : (parallelEnds.get(pred) ?? [])) {
|
|
305
|
+
if (linked.has(end))
|
|
306
|
+
continue;
|
|
307
|
+
emitPredecessorLink(end, lines);
|
|
308
|
+
linked.add(end);
|
|
274
309
|
}
|
|
275
310
|
}
|
|
311
|
+
for (const uid of [...t.chainUids, ...(t.extraPredecessorUids ?? [])]) {
|
|
312
|
+
if (linked.has(uid))
|
|
313
|
+
continue;
|
|
314
|
+
emitPredecessorLink(uid, lines);
|
|
315
|
+
linked.add(uid);
|
|
316
|
+
}
|
|
276
317
|
lines.push(' </Task>');
|
|
277
318
|
}
|
|
319
|
+
function emitPredecessorLink(uid, lines) {
|
|
320
|
+
lines.push(' <PredecessorLink>');
|
|
321
|
+
lines.push(` ${tag('PredecessorUID', uid)}`);
|
|
322
|
+
lines.push(' <Type>1</Type>'); // FS
|
|
323
|
+
lines.push(' </PredecessorLink>');
|
|
324
|
+
}
|
|
325
|
+
// ---------- Waves ----------
|
|
326
|
+
/**
|
|
327
|
+
* Waves (specs/waves.md §10). Appends one zero-duration milestone task per
|
|
328
|
+
* wave, `{title} (wave end)`, after every other task (so existing UIDs and
|
|
329
|
+
* IDs never renumber), and wires the barrier as FS links:
|
|
330
|
+
* - wave-end task k <- every member of wave k with an id, and wave k-1's end;
|
|
331
|
+
* - every member of wave k >= 2 <- wave k-1's end task;
|
|
332
|
+
* - a floor (`after:` on the wave naming an anchor or a dated milestone)
|
|
333
|
+
* <- every member of wave k and wave k's end task (the end task covers an
|
|
334
|
+
* empty wave); an inline-date floor is dropped and counted.
|
|
335
|
+
* Wave ids join `idToUid`, so `after:<wave>` links to the wave-end task.
|
|
336
|
+
* Background work gets nothing.
|
|
337
|
+
*/
|
|
338
|
+
function addWaveTasks(ast, plan, tasks, idToUid, drops) {
|
|
339
|
+
const datedTargets = new Set();
|
|
340
|
+
for (const entry of ast.roadmapEntries) {
|
|
341
|
+
if (entry.$type === 'AnchorDeclaration') {
|
|
342
|
+
const a = entry;
|
|
343
|
+
if (a.name)
|
|
344
|
+
datedTargets.add(a.name);
|
|
345
|
+
}
|
|
346
|
+
else if (entry.$type === 'MilestoneDeclaration') {
|
|
347
|
+
const m = entry;
|
|
348
|
+
if (m.name && getProp(m, 'date') !== undefined)
|
|
349
|
+
datedTargets.add(m.name);
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
const last = tasks[tasks.length - 1];
|
|
353
|
+
let uid = (last?.uid ?? 0) + 1;
|
|
354
|
+
let id = (last?.id ?? 0) + 1;
|
|
355
|
+
const endUids = plan.waves.map(() => uid++);
|
|
356
|
+
const floorUids = plan.waves.map((wave) => {
|
|
357
|
+
const out = [];
|
|
358
|
+
for (const ref of getProps(wave, 'after')) {
|
|
359
|
+
if (ISO_DATE_RE.test(ref)) {
|
|
360
|
+
drops.waveFloor += 1;
|
|
361
|
+
continue;
|
|
362
|
+
}
|
|
363
|
+
const target = datedTargets.has(ref) ? idToUid.get(ref) : undefined;
|
|
364
|
+
if (target !== undefined)
|
|
365
|
+
out.push(target);
|
|
366
|
+
}
|
|
367
|
+
return out;
|
|
368
|
+
});
|
|
369
|
+
const memberUids = plan.waves.map(() => []);
|
|
370
|
+
for (const t of tasks) {
|
|
371
|
+
const k = t.node ? plan.memberWave(t.node) : undefined;
|
|
372
|
+
if (k === undefined)
|
|
373
|
+
continue;
|
|
374
|
+
const extra = [...floorUids[k - 1]];
|
|
375
|
+
if (k >= 2)
|
|
376
|
+
extra.unshift(endUids[k - 2]);
|
|
377
|
+
if (extra.length > 0)
|
|
378
|
+
t.extraPredecessorUids = extra;
|
|
379
|
+
if (t.nowlineId)
|
|
380
|
+
memberUids[k - 1].push(t.uid);
|
|
381
|
+
else
|
|
382
|
+
drops.waveNoId += 1;
|
|
383
|
+
}
|
|
384
|
+
plan.waves.forEach((wave, i) => {
|
|
385
|
+
const preds = [...memberUids[i], ...floorUids[i]];
|
|
386
|
+
if (i > 0)
|
|
387
|
+
preds.push(endUids[i - 1]);
|
|
388
|
+
tasks.push({
|
|
389
|
+
uid: endUids[i],
|
|
390
|
+
id: id++,
|
|
391
|
+
name: `${displayLabel(wave)} (wave end)`,
|
|
392
|
+
outlineLevel: 1,
|
|
393
|
+
isSummary: false,
|
|
394
|
+
isMilestone: true,
|
|
395
|
+
durationMinutes: 0,
|
|
396
|
+
predecessors: [],
|
|
397
|
+
chainUids: [],
|
|
398
|
+
ownerRefs: [],
|
|
399
|
+
extraPredecessorUids: preds,
|
|
400
|
+
});
|
|
401
|
+
if (wave.name && !idToUid.has(wave.name))
|
|
402
|
+
idToUid.set(wave.name, endUids[i]);
|
|
403
|
+
});
|
|
404
|
+
}
|
|
278
405
|
// ---------- Resources ----------
|
|
279
406
|
function collectResources(ast) {
|
|
280
407
|
const out = [];
|
|
@@ -312,7 +439,7 @@ function emitResource(r, lines) {
|
|
|
312
439
|
lines.push(' <Resource>');
|
|
313
440
|
lines.push(` ${tag('UID', r.uid)}`);
|
|
314
441
|
lines.push(` ${tag('ID', r.id)}`);
|
|
315
|
-
lines.push(` ${tag('Name', r.name)}`);
|
|
442
|
+
lines.push(` ${tag('Name', singleLine(r.name))}`);
|
|
316
443
|
lines.push(` <CalendarUID>${STANDARD_RESOURCE_CALENDAR_UID}</CalendarUID>`);
|
|
317
444
|
lines.push(' </Resource>');
|
|
318
445
|
}
|
|
@@ -347,23 +474,29 @@ function formatDrops(drops) {
|
|
|
347
474
|
'progress',
|
|
348
475
|
'before',
|
|
349
476
|
'description',
|
|
477
|
+
'waveNoId',
|
|
478
|
+
'waveFloor',
|
|
350
479
|
];
|
|
351
|
-
const parts = order.filter((k) => drops[k] > 0).map((k) => `${k} (${drops[k]})`);
|
|
480
|
+
const parts = order.filter((k) => drops[k] > 0).map((k) => `${formatDropKey(k)} (${drops[k]})`);
|
|
352
481
|
if (parts.length === 0)
|
|
353
482
|
return null;
|
|
354
483
|
return `nowline: msproj export dropped ${parts.length} feature kinds: ${parts.join(', ')}`;
|
|
355
484
|
}
|
|
485
|
+
function formatDropKey(key) {
|
|
486
|
+
if (key === 'waveNoId')
|
|
487
|
+
return 'wave-member-no-id';
|
|
488
|
+
if (key === 'waveFloor')
|
|
489
|
+
return 'wave-floor';
|
|
490
|
+
return key;
|
|
491
|
+
}
|
|
356
492
|
// ---------- helpers ----------
|
|
357
|
-
function resolveStartDate(option,
|
|
493
|
+
function resolveStartDate(option, scheduleStart) {
|
|
358
494
|
if (option) {
|
|
359
|
-
if (
|
|
495
|
+
if (!ISO_DATE_RE.test(option)) {
|
|
360
496
|
throw new Error(`invalid msproj startDate "${option}": expected YYYY-MM-DD`);
|
|
361
497
|
}
|
|
362
498
|
return option;
|
|
363
499
|
}
|
|
364
|
-
|
|
365
|
-
return today.toISOString().slice(0, 10);
|
|
366
|
-
}
|
|
367
|
-
return '2026-01-05'; // a deterministic Monday for tests
|
|
500
|
+
return scheduleStart.toISOString().slice(0, 10);
|
|
368
501
|
}
|
|
369
502
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/xml.d.ts
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
export declare function escapeXml(value: string): string;
|
|
2
|
+
/**
|
|
3
|
+
* Collapse explicit line breaks (a `\n` in an item title) to a single
|
|
4
|
+
* space. MS Project task and resource names are single-line fields, so a
|
|
5
|
+
* raw line feed in `<Name>` would import as a stray control character
|
|
6
|
+
* instead of a break; a space keeps the words apart.
|
|
7
|
+
*/
|
|
8
|
+
export declare function singleLine(value: string): string;
|
|
2
9
|
export declare function tag(name: string, value: string | number | boolean): string;
|
|
3
10
|
export declare function selfTag(name: string): string;
|
|
4
11
|
//# sourceMappingURL=xml.d.ts.map
|
package/dist/xml.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xml.d.ts","sourceRoot":"","sources":["../src/xml.ts"],"names":[],"mappings":"AAIA,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAO/C;AAED,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAE1E;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C"}
|
|
1
|
+
{"version":3,"file":"xml.d.ts","sourceRoot":"","sources":["../src/xml.ts"],"names":[],"mappings":"AAIA,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAO/C;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAE1E;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C"}
|
package/dist/xml.js
CHANGED
|
@@ -9,6 +9,15 @@ export function escapeXml(value) {
|
|
|
9
9
|
.replace(/"/g, '"')
|
|
10
10
|
.replace(/'/g, ''');
|
|
11
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* Collapse explicit line breaks (a `\n` in an item title) to a single
|
|
14
|
+
* space. MS Project task and resource names are single-line fields, so a
|
|
15
|
+
* raw line feed in `<Name>` would import as a stray control character
|
|
16
|
+
* instead of a break; a space keeps the words apart.
|
|
17
|
+
*/
|
|
18
|
+
export function singleLine(value) {
|
|
19
|
+
return /[\r\n]/.test(value) ? value.replace(/\s*[\r\n]+\s*/g, ' ').trim() : value;
|
|
20
|
+
}
|
|
12
21
|
export function tag(name, value) {
|
|
13
22
|
return `<${name}>${escapeXml(String(value))}</${name}>`;
|
|
14
23
|
}
|
package/dist/xml.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xml.js","sourceRoot":"","sources":["../src/xml.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,yEAAyE;AACzE,oCAAoC;AAEpC,MAAM,UAAU,SAAS,CAAC,KAAa;IACnC,OAAO,KAAK;SACP,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,KAAgC;IAC9D,OAAO,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAY;IAChC,OAAO,IAAI,IAAI,IAAI,CAAC;AACxB,CAAC"}
|
|
1
|
+
{"version":3,"file":"xml.js","sourceRoot":"","sources":["../src/xml.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,yEAAyE;AACzE,oCAAoC;AAEpC,MAAM,UAAU,SAAS,CAAC,KAAa;IACnC,OAAO,KAAK;SACP,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa;IACpC,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,KAAgC;IAC9D,OAAO,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAY;IAChC,OAAO,IAAI,IAAI,IAAI,CAAC;AACxB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nowline/export-msproj",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
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,15 +21,15 @@
|
|
|
21
21
|
"src/"
|
|
22
22
|
],
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@nowline/core": "0.
|
|
25
|
-
"@nowline/export-core": "0.
|
|
26
|
-
"@nowline/layout": "0.
|
|
24
|
+
"@nowline/core": "0.9.0",
|
|
25
|
+
"@nowline/export-core": "0.9.0",
|
|
26
|
+
"@nowline/layout": "0.9.0"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"@types/node": "^26.6.
|
|
29
|
+
"@types/node": "^26.6.5",
|
|
30
30
|
"langium": "~4.4.0",
|
|
31
31
|
"typescript": "^7.0.2",
|
|
32
|
-
"vitest": "^5.0.
|
|
32
|
+
"vitest": "^5.0.5"
|
|
33
33
|
},
|
|
34
34
|
"scripts": {
|
|
35
35
|
"build": "tsc -b tsconfig.json",
|