docgen-tool 3.3.0 → 3.4.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.
@@ -0,0 +1,72 @@
1
+ {
2
+ "name": "docgen-tool",
3
+ "version": "3.4.0",
4
+ "description": "A tool for creating HTML and PDF documentation",
5
+ "main": "dist/docgen.ts",
6
+ "bin": {
7
+ "docgen": "dist/docgen.ts"
8
+ },
9
+ "files": [
10
+ "dist/*"
11
+ ],
12
+ "scripts": {
13
+ "copy:files": "ncp src/include dist/include",
14
+ "dev": "ts-node src/docgen.ts run",
15
+ "build": "rimraf dist && tsc -p tsconfig.json && yarn copy:files",
16
+ "run:build": "dist/docgen.ts",
17
+ "build:docs": "ts-node src/docgen.ts run -m -n -r -p -d 40000 -i src/docs -o ./docs",
18
+ "build:docs:nopdf": "ts-node src/docgen.ts run -m -n -r -i src/docs -o ./docs",
19
+ "build:styles": "sass --no-source-map src/styles/main.scss src/include/require/styles/framework.css",
20
+ "test": "npm run prettier:check",
21
+ "test:run": "rimraf src/__test__/test-run-output && ts-node src/docgen.ts run -i src/__test__/test-run -o src/__test__/test-run-output -p -m -n -d 40000",
22
+ "test:scaffold": "rimraf src/__test__/test-run-output && ts-node src/docgen.ts scaffold -o src/__test__/test-run-output",
23
+ "test:prod:run": "rimraf src/__test__/test-run-output && ./dist/docgen.js run -i src/__test__/test-run -o ../source/__test__/test-run-output -p -m -n -d 40000",
24
+ "prettier:check": "prettier --check 'src/docgen.ts' '*.{ts,js,json,css,less}'",
25
+ "prettier:fix": "prettier --write 'src/docgen.ts' '*.{ts,js,json,css,less}'"
26
+ },
27
+ "husky": {
28
+ "hooks": {
29
+ "pre-commit": "lint-staged"
30
+ }
31
+ },
32
+ "lint-staged": {
33
+ "*.{js,json,css,less}": "prettier --write",
34
+ "docgen": "prettier --write"
35
+ },
36
+ "dependencies": {
37
+ "chalk": "^4.1.0",
38
+ "cheerio": "^1.0.0-rc.12",
39
+ "cli-spinner": "^0.2.10",
40
+ "commander": "^11.0.0",
41
+ "fs-extra": "^11.1.1",
42
+ "husky": "^4.3.0",
43
+ "image-size": "^1.0.2",
44
+ "lint-staged": "^10.5.1",
45
+ "markdown-it": "^13.0.1",
46
+ "moment": "^2.29.4",
47
+ "spawn-args": "^0.2.0",
48
+ "z-schema": "^6.0.1"
49
+ },
50
+ "devDependencies": {
51
+ "@types/node": "^20.3.1",
52
+ "eslint": "^8.43.0",
53
+ "eslint-config-prettier": "^8.8.0",
54
+ "ncp": "^2.0.0",
55
+ "prettier": "^2.1.2",
56
+ "rimraf": "^5.0.1",
57
+ "sass": "^1.66.1",
58
+ "ts-node": "^10.9.1",
59
+ "tslib": "^2.5.3",
60
+ "typescript": "^5.1.3"
61
+ },
62
+ "repository": {
63
+ "type": "git",
64
+ "url": "https://github.com/mtmacdonald/docgen"
65
+ },
66
+ "author": "Inkit Inc. and contributors",
67
+ "license": "MIT",
68
+ "bugs": {
69
+ "url": "https://github.com/mtmacdonald/docgen/issues"
70
+ },
71
+ "homepage": "https://mtmacdonald.github.io/docgen/docs/index.html"
72
+ }
@@ -0,0 +1,198 @@
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.DocGen = void 0;
43
+ var chalk_1 = __importDefault(require("chalk"));
44
+ var path_1 = __importDefault(require("path"));
45
+ var fs_1 = require("./fs/fs");
46
+ var meta_1 = require("./fs/meta");
47
+ var templates_1 = require("./fs/templates");
48
+ var markdown_1 = require("./fs/markdown");
49
+ var wkhtmltopdf_1 = require("./pdf/wkhtmltopdf/wkhtmltopdf");
50
+ var scaffold_1 = require("./scaffold/scaffold");
51
+ var sort_pages_1 = require("./meta/sort-pages");
52
+ var web_table_of_contents_1 = require("./html/web-table-of-contents");
53
+ var process_pages_1 = require("./html/process-pages");
54
+ var write_pages_1 = require("./fs/write-pages");
55
+ var redirect_1 = require("./html/redirect");
56
+ var package_json_1 = require("../../package.json");
57
+ function DocGen(process) {
58
+ var _this = this;
59
+ var mainProcess = process;
60
+ var options;
61
+ var templates = {
62
+ main: '',
63
+ redirect: '',
64
+ webCover: '',
65
+ pdfCover: '',
66
+ pdfHeader: '',
67
+ pdfFooter: '',
68
+ };
69
+ var meta = {};
70
+ var pages = {};
71
+ var sortedPages = {};
72
+ this.getVersion = function () {
73
+ return package_json_1.version;
74
+ };
75
+ this.setOptions = function (userOptions) {
76
+ options = userOptions;
77
+ //all user-specified paths must be normalized
78
+ if (options.input) {
79
+ options.input = path_1.default.normalize(options.input + '/');
80
+ }
81
+ if (options.output) {
82
+ options.output = path_1.default.normalize(options.output + '/');
83
+ }
84
+ //wkhtmltopdf path does not need a trailing slash
85
+ if (options.wkhtmltopdfPath && options.wkhtmltopdfPath !== '') {
86
+ options.wkhtmltopdfPath = path_1.default.normalize(options.wkhtmltopdfPath);
87
+ }
88
+ };
89
+ /*
90
+ copy the example src files (template) to any directory, when scaffold command is invoked
91
+ */
92
+ this.scaffold = function () { return __awaiter(_this, void 0, void 0, function () {
93
+ return __generator(this, function (_a) {
94
+ return [2 /*return*/, (0, scaffold_1.scaffold)({
95
+ outputDirectory: options.output,
96
+ verbose: options.verbose === true,
97
+ })];
98
+ });
99
+ }); };
100
+ this.run = function () { return __awaiter(_this, void 0, void 0, function () {
101
+ var _a;
102
+ return __generator(this, function (_b) {
103
+ switch (_b.label) {
104
+ case 0:
105
+ console.log(chalk_1.default.green.bold('DocGen version ' + package_json_1.version));
106
+ //delete and recreate the output directory
107
+ return [4 /*yield*/, (0, fs_1.cleanDirectory)(options.output, options.verbose)];
108
+ case 1:
109
+ //delete and recreate the output directory
110
+ _b.sent();
111
+ return [4 /*yield*/, (0, templates_1.loadTemplates)({
112
+ verbose: options.verbose,
113
+ mainProcess: mainProcess,
114
+ })];
115
+ case 2:
116
+ templates = _b.sent();
117
+ return [4 /*yield*/, (0, meta_1.loadMeta)({
118
+ inputPath: options.input,
119
+ verbose: options.verbose,
120
+ mainProcess: mainProcess,
121
+ })];
122
+ case 3:
123
+ meta = _b.sent();
124
+ sortedPages = (0, sort_pages_1.sortPages)({ tableOfContents: meta.contents });
125
+ return [4 /*yield*/, (0, markdown_1.loadMarkdown)({
126
+ verbose: options.verbose,
127
+ contents: meta.contents,
128
+ inputPath: options.input,
129
+ mainProcess: mainProcess,
130
+ })];
131
+ case 4:
132
+ pages = _b.sent();
133
+ templates.main = (0, web_table_of_contents_1.generateWebTableOfContents)({
134
+ sortedPages: sortedPages,
135
+ name: meta.parameters.name,
136
+ mainTemplate: templates.main,
137
+ pdfEnabled: options.pdf,
138
+ });
139
+ (0, process_pages_1.insertParameters)({
140
+ inputPath: options.input,
141
+ parameters: meta.parameters,
142
+ setVersion: options.setVersion,
143
+ setReleaseDate: options.setReleaseDate,
144
+ templates: templates,
145
+ mathMathjax: options.mathMathjax,
146
+ mathKatex: options.mathKatex,
147
+ version: package_json_1.version,
148
+ homeLink: meta.contents[0].pages[0],
149
+ });
150
+ _a = templates;
151
+ return [4 /*yield*/, (0, process_pages_1.processPages)({
152
+ pages: pages,
153
+ pageTableOfContentsEnabled: options.pageToc,
154
+ tableOfContents: meta.contents,
155
+ mainTemplate: templates.main,
156
+ webCover: templates.webCover,
157
+ })];
158
+ case 5:
159
+ _a.webCover = _b.sent();
160
+ return [4 /*yield*/, (0, write_pages_1.writePages)({
161
+ inputPath: options.input,
162
+ outputPath: options.output,
163
+ contents: meta.contents,
164
+ templates: templates,
165
+ pages: pages,
166
+ pdfEnabled: options.pdf,
167
+ mathKatex: options.mathKatex,
168
+ verbose: options.verbose,
169
+ mainProcess: mainProcess,
170
+ })];
171
+ case 6:
172
+ _b.sent();
173
+ return [4 /*yield*/, (0, redirect_1.createRedirect)({
174
+ isRedirectEnabled: options.redirect,
175
+ outputDirectory: options.output,
176
+ redirectTemplate: templates.redirect,
177
+ homePage: meta.contents[0].pages[0],
178
+ verbose: options.verbose,
179
+ })];
180
+ case 7:
181
+ _b.sent();
182
+ if (!(options.pdf === true)) return [3 /*break*/, 10];
183
+ return [4 /*yield*/, (0, wkhtmltopdf_1.checkPdfVersion)({ options: options, mainProcess: mainProcess })];
184
+ case 8:
185
+ _b.sent();
186
+ return [4 /*yield*/, (0, wkhtmltopdf_1.generatePdf)({ options: options, meta: meta, sortedPages: sortedPages, mainProcess: mainProcess })];
187
+ case 9:
188
+ _b.sent();
189
+ return [3 /*break*/, 11];
190
+ case 10:
191
+ console.log(chalk_1.default.green.bold('Done!'));
192
+ _b.label = 11;
193
+ case 11: return [2 /*return*/];
194
+ }
195
+ });
196
+ }); };
197
+ }
198
+ exports.DocGen = DocGen;
@@ -0,0 +1,63 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.execute = void 0;
40
+ var util_1 = require("util");
41
+ var child_process_1 = require("child_process");
42
+ var execPromise = (0, util_1.promisify)(child_process_1.exec);
43
+ function execute(command) {
44
+ return __awaiter(this, void 0, void 0, function () {
45
+ var _a, stdout, stderr, e_1;
46
+ return __generator(this, function (_b) {
47
+ switch (_b.label) {
48
+ case 0:
49
+ _b.trys.push([0, 2, , 3]);
50
+ return [4 /*yield*/, execPromise(command)];
51
+ case 1:
52
+ _a = _b.sent(), stdout = _a.stdout, stderr = _a.stderr;
53
+ return [2 /*return*/, { stdout: stdout, stderr: stderr }];
54
+ case 2:
55
+ e_1 = _b.sent();
56
+ console.error(e_1);
57
+ return [3 /*break*/, 3];
58
+ case 3: return [2 /*return*/];
59
+ }
60
+ });
61
+ });
62
+ }
63
+ exports.execute = execute;
@@ -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 chalk_1 = __importDefault(require("chalk"));
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, inputPath = _a.inputPath, verbose = _a.verbose, 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(chalk_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(inputPath + '/' + page.source);
71
+ });
72
+ });
73
+ //add the release notes page
74
+ keys_1.push('ownership');
75
+ files_1.push(inputPath + '/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(chalk_1.default.red('Error parsing Markdown file: ' + key.source));
94
+ if (verbose === true) {
95
+ console.log(chalk_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(chalk_1.default.red('Error loading src files'));
105
+ if (verbose === true) {
106
+ console.log(chalk_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,110 @@
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 chalk_1 = __importDefault(require("chalk"));
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(chalk_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(chalk_1.default.red('Error parsing required file: ' + key + '.json (invalid JSON)'));
83
+ if (verbose === true) {
84
+ console.log(chalk_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*/, meta];
97
+ case 4:
98
+ error_1 = _c.sent();
99
+ console.log(chalk_1.default.red('Error loading required JSON metadata files'));
100
+ if (verbose === true) {
101
+ console.log(chalk_1.default.red(error_1));
102
+ }
103
+ mainProcess.exit(1);
104
+ return [3 /*break*/, 5];
105
+ case 5: return [2 /*return*/];
106
+ }
107
+ });
108
+ });
109
+ };
110
+ 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 chalk_1 = __importDefault(require("chalk"));
44
+ var cheerio_1 = __importDefault(require("cheerio"));
45
+ var fs_1 = require("./fs");
46
+ var loadTemplates = function (_a) {
47
+ var verbose = _a.verbose, 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(chalk_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(chalk_1.default.red('Error loading templates'));
90
+ if (verbose === true) {
91
+ console.log(chalk_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;