docgen-tool 3.3.1 → 3.5.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.
Files changed (31) hide show
  1. package/dist/include/templates/main.html +2 -43
  2. package/dist/include/templates/pdfCover.html +2 -50
  3. package/dist/include/templates/pdfFooter.html +1 -14
  4. package/dist/include/templates/webCover.html +0 -30
  5. package/dist/package.json +74 -0
  6. package/dist/src/docgen/docgen.js +173 -0
  7. package/dist/src/docgen/execute/execute.js +63 -0
  8. package/dist/{docgen → src/docgen}/fs/fs.js +9 -9
  9. package/dist/src/docgen/fs/markdown.js +115 -0
  10. package/dist/src/docgen/fs/meta.js +113 -0
  11. package/dist/src/docgen/fs/templates.js +100 -0
  12. package/dist/src/docgen/fs/write-pages.js +113 -0
  13. package/dist/src/docgen/meta/derive-parameters.js +29 -0
  14. package/dist/src/docgen/meta/sort-pages.js +32 -0
  15. package/dist/src/docgen/pdf/wkhtmltopdf/wkhtmltopdf.js +186 -0
  16. package/dist/src/docgen/scaffold/scaffold.js +60 -0
  17. package/dist/src/docgen/types.js +2 -0
  18. package/dist/src/docgen/validation/validation.js +152 -0
  19. package/dist/src/docgen/views/components/copyright/copyright.js +17 -0
  20. package/dist/src/docgen/views/components/footer/footer.js +22 -0
  21. package/dist/src/docgen/views/components/pdf-footer/pdf-footer.js +30 -0
  22. package/dist/src/docgen/views/components/web-table-of-contents/web-table-of-contents.js +41 -0
  23. package/dist/src/docgen/views/html.js +11 -0
  24. package/dist/src/docgen/views/pages/cover/cover.js +71 -0
  25. package/dist/src/docgen/views/pages/cover/pdf-cover.js +24 -0
  26. package/dist/src/docgen/views/pages/main/main.js +59 -0
  27. package/dist/src/docgen/views/pages/process-pages.js +170 -0
  28. package/dist/src/docgen/views/redirect.js +83 -0
  29. package/package.json +11 -8
  30. package/dist/docgen/docgen.js +0 -1009
  31. /package/dist/{docgen.js → src/docgen.js} +0 -0
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.loadMarkdown = void 0;
43
+ var picocolors_1 = __importDefault(require("picocolors"));
44
+ var fs_1 = require("./fs");
45
+ var markdown_it_1 = __importDefault(require("markdown-it"));
46
+ var markdown = new markdown_it_1.default('commonmark').enable('table');
47
+ //Allow CommonMark links that use other protocols, such as file:///
48
+ //The markdown-it implementation is more restrictive than the CommonMark spec
49
+ //See https://github.com/markdown-it/markdown-it/issues/108
50
+ markdown.validateLink = function () {
51
+ return true;
52
+ };
53
+ var loadMarkdown = function (_a) {
54
+ var contents = _a.contents, options = _a.options, mainProcess = _a.mainProcess;
55
+ return __awaiter(void 0, void 0, void 0, function () {
56
+ var pages, keys_1, files_1, error_1;
57
+ return __generator(this, function (_b) {
58
+ switch (_b.label) {
59
+ case 0:
60
+ console.log(picocolors_1.default.green('Loading src files'));
61
+ pages = {};
62
+ _b.label = 1;
63
+ case 1:
64
+ _b.trys.push([1, 3, , 4]);
65
+ keys_1 = [];
66
+ files_1 = [];
67
+ contents.forEach(function (section) {
68
+ section.pages.forEach(function (page) {
69
+ keys_1.push(page);
70
+ files_1.push(options.input + '/' + page.source);
71
+ });
72
+ });
73
+ //add the release notes page
74
+ keys_1.push('ownership');
75
+ files_1.push(options.input + '/release-notes.md');
76
+ return [4 /*yield*/, Promise.all(files_1.map(function (f) { return (0, fs_1.readFile)(f); }))];
77
+ case 2:
78
+ files_1 = _b.sent();
79
+ files_1.forEach(function (page, index) {
80
+ var key = keys_1[index];
81
+ try {
82
+ if (key.html === true) {
83
+ //allow raw HTML input pages
84
+ pages[key.source] = page;
85
+ }
86
+ else {
87
+ //otherwise parse input from Markdown into HTML
88
+ var html = markdown.render(page);
89
+ pages[key.source] = html;
90
+ }
91
+ }
92
+ catch (error) {
93
+ console.log(picocolors_1.default.red('Error parsing Markdown file: ' + key.source));
94
+ if (options.verbose === true) {
95
+ console.log(picocolors_1.default.red(error));
96
+ }
97
+ mainProcess.exit(1);
98
+ }
99
+ });
100
+ return [2 /*return*/, pages];
101
+ case 3:
102
+ error_1 = _b.sent();
103
+ console.log(error_1);
104
+ console.log(picocolors_1.default.red('Error loading src files'));
105
+ if (options.verbose === true) {
106
+ console.log(picocolors_1.default.red(error_1));
107
+ }
108
+ mainProcess.exit(1);
109
+ return [3 /*break*/, 4];
110
+ case 4: return [2 /*return*/];
111
+ }
112
+ });
113
+ });
114
+ };
115
+ exports.loadMarkdown = loadMarkdown;
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.loadMeta = void 0;
43
+ var picocolors_1 = __importDefault(require("picocolors"));
44
+ var fs_1 = require("./fs");
45
+ var validation_1 = require("../validation/validation");
46
+ var loadMeta = function (_a) {
47
+ var inputPath = _a.inputPath, verbose = _a.verbose, mainProcess = _a.mainProcess;
48
+ return __awaiter(void 0, void 0, void 0, function () {
49
+ var meta, files, key, file, extra, error_1;
50
+ var _b;
51
+ return __generator(this, function (_c) {
52
+ switch (_c.label) {
53
+ case 0:
54
+ meta = {
55
+ parameters: null,
56
+ contents: null,
57
+ };
58
+ console.log(picocolors_1.default.green('Loading required JSON metadata files'));
59
+ _c.label = 1;
60
+ case 1:
61
+ _c.trys.push([1, 4, , 5]);
62
+ _b = {};
63
+ return [4 /*yield*/, (0, fs_1.readFile)(inputPath + '/parameters.json')];
64
+ case 2:
65
+ _b.parameters = _c.sent();
66
+ return [4 /*yield*/, (0, fs_1.readFile)(inputPath + '/contents.json')];
67
+ case 3:
68
+ files = (_b.contents = _c.sent(),
69
+ _b);
70
+ for (key in files) {
71
+ if (files.hasOwnProperty(key)) {
72
+ try {
73
+ file = JSON.parse(files[key]);
74
+ if ((0, validation_1.validateJSON)({ key: key, data: file, verbose: verbose })) {
75
+ meta[key] = file;
76
+ }
77
+ else {
78
+ mainProcess.exit(1);
79
+ }
80
+ }
81
+ catch (error) {
82
+ console.log(picocolors_1.default.red('Error parsing required file: ' + key + '.json (invalid JSON)'));
83
+ if (verbose === true) {
84
+ console.log(picocolors_1.default.red(error));
85
+ }
86
+ mainProcess.exit(1);
87
+ }
88
+ }
89
+ }
90
+ extra = {
91
+ heading: 'Extra',
92
+ column: 5,
93
+ pages: [{ title: 'Release notes', source: 'release-notes.md' }],
94
+ };
95
+ meta.contents.push(extra);
96
+ return [2 /*return*/, {
97
+ rawParameters: meta.parameters,
98
+ contents: meta.contents
99
+ }];
100
+ case 4:
101
+ error_1 = _c.sent();
102
+ console.log(picocolors_1.default.red('Error loading required JSON metadata files'));
103
+ if (verbose === true) {
104
+ console.log(picocolors_1.default.red(error_1));
105
+ }
106
+ mainProcess.exit(1);
107
+ return [3 /*break*/, 5];
108
+ case 5: return [2 /*return*/];
109
+ }
110
+ });
111
+ });
112
+ };
113
+ exports.loadMeta = loadMeta;
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.loadTemplates = void 0;
43
+ var picocolors_1 = __importDefault(require("picocolors"));
44
+ var cheerio_1 = __importDefault(require("cheerio"));
45
+ var fs_1 = require("./fs");
46
+ var loadTemplates = function (_a) {
47
+ var options = _a.options, mainProcess = _a.mainProcess;
48
+ return __awaiter(void 0, void 0, void 0, function () {
49
+ var templates, files, key, file, dom, error_1;
50
+ var _b;
51
+ return __generator(this, function (_c) {
52
+ switch (_c.label) {
53
+ case 0:
54
+ templates = {};
55
+ console.log(picocolors_1.default.green('Loading templates'));
56
+ _c.label = 1;
57
+ case 1:
58
+ _c.trys.push([1, 8, , 9]);
59
+ _b = {};
60
+ return [4 /*yield*/, (0, fs_1.readFile)(__dirname + '/../../include/templates/main.html')];
61
+ case 2:
62
+ _b.main = _c.sent();
63
+ return [4 /*yield*/, (0, fs_1.readFile)(__dirname + '/../../include/templates/redirect.html')];
64
+ case 3:
65
+ _b.redirect = _c.sent();
66
+ return [4 /*yield*/, (0, fs_1.readFile)(__dirname + '/../../include/templates/webCover.html')];
67
+ case 4:
68
+ _b.webCover = _c.sent();
69
+ return [4 /*yield*/, (0, fs_1.readFile)(__dirname + '/../../include/templates/pdfCover.html')];
70
+ case 5:
71
+ _b.pdfCover = _c.sent();
72
+ return [4 /*yield*/, (0, fs_1.readFile)(__dirname + '/../../include/templates/pdfHeader.html')];
73
+ case 6:
74
+ _b.pdfHeader = _c.sent();
75
+ return [4 /*yield*/, (0, fs_1.readFile)(__dirname + '/../../include/templates/pdfFooter.html')];
76
+ case 7:
77
+ files = (_b.pdfFooter = _c.sent(),
78
+ _b);
79
+ for (key in files) {
80
+ if (files.hasOwnProperty(key)) {
81
+ file = files[key];
82
+ dom = cheerio_1.default.load(file);
83
+ templates[key] = dom;
84
+ }
85
+ }
86
+ return [2 /*return*/, templates];
87
+ case 8:
88
+ error_1 = _c.sent();
89
+ console.log(picocolors_1.default.red('Error loading templates'));
90
+ if (options.verbose === true) {
91
+ console.log(picocolors_1.default.red(error_1));
92
+ }
93
+ mainProcess.exit(1);
94
+ return [3 /*break*/, 9];
95
+ case 9: return [2 /*return*/];
96
+ }
97
+ });
98
+ });
99
+ };
100
+ exports.loadTemplates = loadTemplates;
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.writePages = void 0;
43
+ var picocolors_1 = __importDefault(require("picocolors"));
44
+ var fs_1 = require("./fs");
45
+ var writePages = function (_a) {
46
+ var options = _a.options, hydratedPages = _a.hydratedPages, contents = _a.contents, mainProcess = _a.mainProcess;
47
+ return __awaiter(void 0, void 0, void 0, function () {
48
+ var promises, pdfTempDir, error_1;
49
+ return __generator(this, function (_b) {
50
+ switch (_b.label) {
51
+ case 0:
52
+ console.log(picocolors_1.default.green('Writing the web page files'));
53
+ _b.label = 1;
54
+ case 1:
55
+ _b.trys.push([1, 13, , 14]);
56
+ promises = contents.flatMap(function (section) {
57
+ return section.pages.map(function (page) {
58
+ var key = page.source;
59
+ var name = key.substr(0, page.source.lastIndexOf('.'));
60
+ var path = options.output + name + '.html';
61
+ var html = hydratedPages.pages[key];
62
+ return (0, fs_1.writeFile)(path, html);
63
+ });
64
+ });
65
+ return [4 /*yield*/, Promise.all(promises)];
66
+ case 2:
67
+ _b.sent();
68
+ //add extra files
69
+ return [4 /*yield*/, (0, fs_1.writeFile)(options.output + 'ownership.html', hydratedPages.webCover)];
70
+ case 3:
71
+ //add extra files
72
+ _b.sent();
73
+ if (!options.pdf) return [3 /*break*/, 8];
74
+ pdfTempDir = options.output + 'temp/';
75
+ return [4 /*yield*/, (0, fs_1.makeDirectory)(pdfTempDir)];
76
+ case 4:
77
+ _b.sent();
78
+ return [4 /*yield*/, (0, fs_1.writeFile)(pdfTempDir + 'pdfCover.html', hydratedPages.pdfCover)];
79
+ case 5:
80
+ _b.sent();
81
+ return [4 /*yield*/, (0, fs_1.writeFile)(pdfTempDir + 'pdfHeader.html', hydratedPages.pdfHeader)];
82
+ case 6:
83
+ _b.sent();
84
+ return [4 /*yield*/, (0, fs_1.writeFile)(pdfTempDir + 'pdfFooter.html', hydratedPages.pdfFooter)];
85
+ case 7:
86
+ _b.sent();
87
+ _b.label = 8;
88
+ case 8: return [4 /*yield*/, (0, fs_1.copyDirectory)(__dirname + '/../../include/require', options.output + 'require', options.verbose)];
89
+ case 9:
90
+ _b.sent(); //CSS, JavaScript
91
+ return [4 /*yield*/, (0, fs_1.copyDirectory)(options.input + 'files', options.output + 'files', options.verbose)];
92
+ case 10:
93
+ _b.sent(); //user-attached files and images
94
+ if (!(options.mathKatex === true)) return [3 /*break*/, 12];
95
+ return [4 /*yield*/, (0, fs_1.copyDirectory)(__dirname + '/../../include/optional/katex', options.output + 'require/katex', options.verbose)];
96
+ case 11:
97
+ _b.sent();
98
+ _b.label = 12;
99
+ case 12: return [3 /*break*/, 14];
100
+ case 13:
101
+ error_1 = _b.sent();
102
+ console.log(picocolors_1.default.red('Error writing the web page files'));
103
+ if (options.verbose === true) {
104
+ console.log(picocolors_1.default.red(error_1));
105
+ }
106
+ mainProcess.exit(1);
107
+ return [3 /*break*/, 14];
108
+ case 14: return [2 /*return*/];
109
+ }
110
+ });
111
+ });
112
+ };
113
+ exports.writePages = writePages;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.deriveParameters = void 0;
15
+ var deriveParameters = function (_a) {
16
+ var rawParameters = _a.rawParameters, setVersion = _a.setVersion, setReleaseDate = _a.setReleaseDate, homeLink = _a.homeLink;
17
+ var version = setVersion || rawParameters.version;
18
+ var releaseDate = setReleaseDate || rawParameters.date;
19
+ //the homepage is the first link in the first heading
20
+ var homePagePath = "".concat(homeLink.source.slice(0, homeLink.source.lastIndexOf('.')), ".html");
21
+ var currentDate = new Date();
22
+ var date = currentDate.toLocaleDateString('en-GB'); // 'DD/MM/YYYY'
23
+ var time = currentDate.toLocaleTimeString('en-US', { hour12: false }); // 'HH:mm:ss'
24
+ var year = currentDate.getFullYear().toString(); // 'YYYY'
25
+ var attribution = "Created by DocGen ".concat(version, " on ").concat(date, " at ").concat(time, ".");
26
+ var webFooter = "Version ".concat(version, " released on ").concat(releaseDate);
27
+ return __assign(__assign({}, rawParameters), { attribution: attribution, year: year, webFooter: webFooter, version: version, releaseDate: releaseDate, homePagePath: homePagePath });
28
+ };
29
+ exports.deriveParameters = deriveParameters;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
14
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
15
+ if (ar || !(i in from)) {
16
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
17
+ ar[i] = from[i];
18
+ }
19
+ }
20
+ return to.concat(ar || Array.prototype.slice.call(from));
21
+ };
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.sortPages = void 0;
24
+ var sortPages = function (_a) {
25
+ var contents = _a.contents;
26
+ return contents.reduce(function (acc, section) {
27
+ var _a;
28
+ var column = section.column;
29
+ return __assign(__assign({}, acc), (_a = {}, _a[column] = __spreadArray(__spreadArray([], (acc[column] || []), true), [section], false), _a));
30
+ }, { 1: [], 2: [], 3: [], 4: [], 5: [] });
31
+ };
32
+ exports.sortPages = sortPages;