@tremho/mist-lift 1.0.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/LICENSE +21 -0
- package/README.md +37 -0
- package/build/commands/actions/initQuestions.js +136 -0
- package/build/commands/actions/initQuestions.js.map +1 -0
- package/build/commands/actions/makePackageJson.js +2 -0
- package/build/commands/actions/makePackageJson.js.map +1 -0
- package/build/commands/actions/setupPackageJson.js +68 -0
- package/build/commands/actions/setupPackageJson.js.map +1 -0
- package/build/commands/build.js +191 -0
- package/build/commands/build.js.map +1 -0
- package/build/commands/builtin/ApiDocMaker.js +72 -0
- package/build/commands/builtin/ApiDocMaker.js.map +1 -0
- package/build/commands/builtin/BuiltInHandler.js +62 -0
- package/build/commands/builtin/BuiltInHandler.js.map +1 -0
- package/build/commands/builtin/DeployBuiltInZip.js +57 -0
- package/build/commands/builtin/DeployBuiltInZip.js.map +1 -0
- package/build/commands/builtin/StageWebrootZip.js +70 -0
- package/build/commands/builtin/StageWebrootZip.js.map +1 -0
- package/build/commands/builtin/prebuilt-zips/API.zip +0 -0
- package/build/commands/builtin/prebuilt-zips/FileServe.zip +0 -0
- package/build/commands/builtin/prebuilt-zips/Webroot.zip +0 -0
- package/build/commands/create.js +75 -0
- package/build/commands/create.js.map +1 -0
- package/build/commands/deploy.js +187 -0
- package/build/commands/deploy.js.map +1 -0
- package/build/commands/doctor.js +137 -0
- package/build/commands/doctor.js.map +1 -0
- package/build/commands/help.js +205 -0
- package/build/commands/help.js.map +1 -0
- package/build/commands/init.js +92 -0
- package/build/commands/init.js.map +1 -0
- package/build/commands/package.js +249 -0
- package/build/commands/package.js.map +1 -0
- package/build/commands/publish.js +344 -0
- package/build/commands/publish.js.map +1 -0
- package/build/commands/settings.js +95 -0
- package/build/commands/settings.js.map +1 -0
- package/build/commands/start.js +66 -0
- package/build/commands/start.js.map +1 -0
- package/build/commands/test.js +52 -0
- package/build/commands/test.js.map +1 -0
- package/build/commands/user.js +20 -0
- package/build/commands/user.js.map +1 -0
- package/build/expressRoutes/all.js +129 -0
- package/build/expressRoutes/all.js.map +1 -0
- package/build/expressRoutes/api.js +22 -0
- package/build/expressRoutes/api.js.map +1 -0
- package/build/expressRoutes/functionBinder.js +191 -0
- package/build/expressRoutes/functionBinder.js.map +1 -0
- package/build/lib/CaseUtils.js +57 -0
- package/build/lib/CaseUtils.js.map +1 -0
- package/build/lib/DirectoryUtils.js +37 -0
- package/build/lib/DirectoryUtils.js.map +1 -0
- package/build/lib/LiftConfig.js +83 -0
- package/build/lib/LiftConfig.js.map +1 -0
- package/build/lib/LiftVersion.js +117 -0
- package/build/lib/LiftVersion.js.map +1 -0
- package/build/lib/Tests/fileCompare.test.js +55 -0
- package/build/lib/Tests/fileCompare.test.js.map +1 -0
- package/build/lib/askQuestion.js +41 -0
- package/build/lib/askQuestion.js.map +1 -0
- package/build/lib/executeCommand.js +45 -0
- package/build/lib/executeCommand.js.map +1 -0
- package/build/lib/fileCompare.js +48 -0
- package/build/lib/fileCompare.js.map +1 -0
- package/build/lib/openAPI/ApiBuildCollector.js +58 -0
- package/build/lib/openAPI/ApiBuildCollector.js.map +1 -0
- package/build/lib/openAPI/WebrootFileSupport.js +44 -0
- package/build/lib/openAPI/WebrootFileSupport.js.map +1 -0
- package/build/lib/openAPI/openApiConstruction.js +203 -0
- package/build/lib/openAPI/openApiConstruction.js.map +1 -0
- package/build/lib/pathResolve.js +27 -0
- package/build/lib/pathResolve.js.map +1 -0
- package/build/lib/utils.js +76 -0
- package/build/lib/utils.js.map +1 -0
- package/build/lift.js +124 -0
- package/build/lift.js.map +1 -0
- package/package.json +69 -0
- package/src/commands/actions/initQuestions.ts +131 -0
- package/src/commands/actions/makePackageJson.ts +0 -0
- package/src/commands/actions/setupPackageJson.ts +36 -0
- package/src/commands/build.ts +165 -0
- package/src/commands/builtin/ApiDocMaker.ts +70 -0
- package/src/commands/builtin/BuiltInHandler.ts +51 -0
- package/src/commands/builtin/DeployBuiltInZip.ts +27 -0
- package/src/commands/builtin/StageWebrootZip.ts +39 -0
- package/src/commands/builtin/prebuilt-zips/API.zip +0 -0
- package/src/commands/builtin/prebuilt-zips/FileServe.zip +0 -0
- package/src/commands/builtin/prebuilt-zips/Webroot.zip +0 -0
- package/src/commands/create.ts +55 -0
- package/src/commands/deploy.ts +171 -0
- package/src/commands/doctor.ts +102 -0
- package/src/commands/help.ts +171 -0
- package/src/commands/init.ts +62 -0
- package/src/commands/package.ts +228 -0
- package/src/commands/publish.ts +350 -0
- package/src/commands/settings.ts +76 -0
- package/src/commands/start.ts +46 -0
- package/src/commands/test.ts +38 -0
- package/src/commands/user.ts +20 -0
- package/src/expressRoutes/all.ts +104 -0
- package/src/expressRoutes/api.ts +24 -0
- package/src/expressRoutes/functionBinder.ts +169 -0
- package/src/lib/CaseUtils.ts +68 -0
- package/src/lib/DirectoryUtils.ts +36 -0
- package/src/lib/LiftConfig.ts +83 -0
- package/src/lib/LiftVersion.ts +95 -0
- package/src/lib/Tests/dir1/file.1 +0 -0
- package/src/lib/Tests/dir1/file.2 +0 -0
- package/src/lib/Tests/dir2/file.1 +0 -0
- package/src/lib/Tests/fileCompare.test.ts +34 -0
- package/src/lib/askQuestion.ts +18 -0
- package/src/lib/executeCommand.ts +38 -0
- package/src/lib/fileCompare.ts +46 -0
- package/src/lib/openAPI/ApiBuildCollector.ts +47 -0
- package/src/lib/openAPI/WebrootFileSupport.ts +21 -0
- package/src/lib/openAPI/openApiConstruction.ts +202 -0
- package/src/lib/pathResolve.ts +32 -0
- package/src/lib/utils.ts +45 -0
- package/src/lift.ts +82 -0
- package/tsconfig.json +28 -0
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.getProjectName = exports.getProjectVersion = exports.getLiftVersion = exports.VersionInfo = void 0;
|
|
27
|
+
const path = __importStar(require("path"));
|
|
28
|
+
const fs = __importStar(require("fs"));
|
|
29
|
+
const pathResolve_1 = require("./pathResolve");
|
|
30
|
+
class VersionInfo {
|
|
31
|
+
constructor(vstr) {
|
|
32
|
+
this.major = 0;
|
|
33
|
+
this.minor = 0;
|
|
34
|
+
this.revision = 0;
|
|
35
|
+
this.suffix = "";
|
|
36
|
+
this.toString = () => {
|
|
37
|
+
return `${this.major}.${this.minor}.${this.revision}` + (this.suffix ? "-" + this.suffix : "");
|
|
38
|
+
};
|
|
39
|
+
this.parse = (vstr) => {
|
|
40
|
+
let sn = vstr.indexOf('-');
|
|
41
|
+
let suffix = "";
|
|
42
|
+
if (sn !== -1) {
|
|
43
|
+
suffix = vstr.substring(sn + 1);
|
|
44
|
+
vstr = vstr.substring(0, sn);
|
|
45
|
+
}
|
|
46
|
+
let parts = vstr.split('.');
|
|
47
|
+
while (parts.length < 3)
|
|
48
|
+
parts.push("0");
|
|
49
|
+
this.major = parseInt(parts[0]);
|
|
50
|
+
this.minor = parseInt(parts[1]);
|
|
51
|
+
this.revision = parseInt(parts[2]);
|
|
52
|
+
if (!isFinite(this.major))
|
|
53
|
+
this.major = 0;
|
|
54
|
+
if (!isFinite(this.minor))
|
|
55
|
+
this.minor = 0;
|
|
56
|
+
if (!isFinite(this.revision))
|
|
57
|
+
this.revision = 0;
|
|
58
|
+
this.suffix = suffix;
|
|
59
|
+
};
|
|
60
|
+
this.parse(vstr);
|
|
61
|
+
}
|
|
62
|
+
equals(other) {
|
|
63
|
+
// Note: not really a valid SemVer comparison
|
|
64
|
+
if (typeof other === 'string')
|
|
65
|
+
other = new VersionInfo(other);
|
|
66
|
+
return this.major === other.major
|
|
67
|
+
&& this.minor === other.minor
|
|
68
|
+
&& this.revision === other.revision;
|
|
69
|
+
}
|
|
70
|
+
isGreaterThan(other) {
|
|
71
|
+
// Note: not really a valid SemVer comparison
|
|
72
|
+
if (typeof other === 'string')
|
|
73
|
+
other = new VersionInfo(other);
|
|
74
|
+
if (this.major > other.major)
|
|
75
|
+
return true;
|
|
76
|
+
if (this.major < other.major)
|
|
77
|
+
return false;
|
|
78
|
+
if (this.minor > other.minor)
|
|
79
|
+
return true;
|
|
80
|
+
if (this.minor < other.minor)
|
|
81
|
+
return false;
|
|
82
|
+
return (this.revision > other.revision);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
exports.VersionInfo = VersionInfo;
|
|
86
|
+
// read version from Lift's package.json
|
|
87
|
+
function getLiftVersion() {
|
|
88
|
+
let pkg = path.join(__dirname, '..', '..', 'package.json');
|
|
89
|
+
return readPackageVersion(pkg);
|
|
90
|
+
}
|
|
91
|
+
exports.getLiftVersion = getLiftVersion;
|
|
92
|
+
// read version from project's package.json
|
|
93
|
+
function getProjectVersion() {
|
|
94
|
+
const projectPaths = (0, pathResolve_1.resolvePaths)();
|
|
95
|
+
return readPackageVersion(projectPaths.packagePath);
|
|
96
|
+
}
|
|
97
|
+
exports.getProjectVersion = getProjectVersion;
|
|
98
|
+
function getProjectName() {
|
|
99
|
+
const projectPaths = (0, pathResolve_1.resolvePaths)();
|
|
100
|
+
let pkgJson = {};
|
|
101
|
+
try {
|
|
102
|
+
pkgJson = JSON.parse(fs.readFileSync(projectPaths.packagePath).toString());
|
|
103
|
+
}
|
|
104
|
+
catch (e) { }
|
|
105
|
+
return pkgJson.name;
|
|
106
|
+
}
|
|
107
|
+
exports.getProjectName = getProjectName;
|
|
108
|
+
function readPackageVersion(pkgPath) {
|
|
109
|
+
var _a;
|
|
110
|
+
let pkgJson = {};
|
|
111
|
+
try {
|
|
112
|
+
pkgJson = JSON.parse(fs.readFileSync(pkgPath).toString());
|
|
113
|
+
}
|
|
114
|
+
catch (e) { }
|
|
115
|
+
return new VersionInfo((_a = pkgJson.version) !== null && _a !== void 0 ? _a : "");
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=LiftVersion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiftVersion.js","sourceRoot":"","sources":["../../src/lib/LiftVersion.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,2CAA4B;AAC5B,uCAAwB;AACxB,+CAA2C;AAE3C,MAAa,WAAW;IAOpB,YAAY,IAAW;QALhB,UAAK,GAAU,CAAC,CAAA;QAChB,UAAK,GAAU,CAAC,CAAA;QAChB,aAAQ,GAAU,CAAC,CAAA;QACnB,WAAM,GAAU,EAAE,CAAC;QAMnB,aAAQ,GAAG,GAAG,EAAE;YACnB,OAAO,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAC,CAAC,IAAI,CAAC,MAAM,CAAA,CAAC,CAAC,GAAG,GAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAC7F,CAAC,CAAA;QACM,UAAK,GAAG,CAAC,IAAW,EAAE,EAAE;YAC3B,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,MAAM,GAAG,EAAE,CAAA;YACf,IAAG,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;gBACX,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAC,CAAC,CAAC,CAAC;gBAC9B,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC;YAChC,CAAC;YACD,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAM,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YAC/B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,IAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YACzC,IAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YACzC,IAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YAC/C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC,CAAA;QAtBG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAsBM,MAAM,CAAC,KAA2B;QAErC,6CAA6C;QAC7C,IAAG,OAAO,KAAK,KAAK,QAAQ;YAAE,KAAK,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;eAC1B,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;eAC1B,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAA;IAC3C,CAAC;IACM,aAAa,CAAC,KAA0B;QAE3C,6CAA6C;QAC7C,IAAG,OAAO,KAAK,KAAK,QAAQ;YAAE,KAAK,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;QAC7D,IAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACzC,IAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QAC1C,IAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACzC,IAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;CACJ;AAjDD,kCAiDC;AAED,wCAAwC;AACxC,SAAgB,cAAc;IAE1B,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IAC3D,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;AAEnC,CAAC;AALD,wCAKC;AACD,2CAA2C;AAC3C,SAAgB,iBAAiB;IAE7B,MAAM,YAAY,GAAG,IAAA,0BAAY,GAAE,CAAC;IACpC,OAAO,kBAAkB,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;AAEvD,CAAC;AALD,8CAKC;AAED,SAAgB,cAAc;IAE1B,MAAM,YAAY,GAAG,IAAA,0BAAY,GAAE,CAAC;IACpC,IAAI,OAAO,GAAkB,EAAE,CAAA;IAC/B,IAAI,CAAC;QACD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC9E,CAAC;IACD,OAAM,CAAC,EAAE,CAAC,CAAA,CAAC;IACX,OAAO,OAAO,CAAC,IAAI,CAAC;AACxB,CAAC;AATD,wCASC;AAED,SAAS,kBAAkB,CAAC,OAAc;;IAEtC,IAAI,OAAO,GAAqB,EAAE,CAAA;IAClC,IAAI,CAAC;QACD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC7D,CAAC;IACD,OAAM,CAAC,EAAE,CAAC,CAAA,CAAC;IAEX,OAAO,IAAI,WAAW,CAAC,MAAA,OAAO,CAAC,OAAO,mCAAI,EAAE,CAAC,CAAA;AAEjD,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
const tap_1 = __importDefault(require("tap"));
|
|
30
|
+
const path = __importStar(require("path"));
|
|
31
|
+
const fileCompare_1 = require("../fileCompare");
|
|
32
|
+
function test(t) {
|
|
33
|
+
// ./dir1/file.1 551 < ./dir2/file.1 552
|
|
34
|
+
// ./dir1/file.2 553 > ./dir2/file.1 552
|
|
35
|
+
// ./dir1 553 > ./dir2 552
|
|
36
|
+
// .dir1 (.1) 552 < ./dir2 552
|
|
37
|
+
const dir1 = path.join(__dirname, "dir1");
|
|
38
|
+
const dir2 = path.join(__dirname, "dir2");
|
|
39
|
+
const dir1File1 = path.join(dir1, "file.1");
|
|
40
|
+
const dir1File2 = path.join(dir1, "file.2");
|
|
41
|
+
const dir2File1 = path.join(dir2, "file.1");
|
|
42
|
+
let newer = (0, fileCompare_1.isNewerFile)(dir1File1, dir2File1);
|
|
43
|
+
t.equal(newer, false, "./dir1/file.1 < ./dir2/file.1");
|
|
44
|
+
newer = (0, fileCompare_1.isNewerFile)(dir1File2, dir2File1);
|
|
45
|
+
t.equal(newer, true, "./dir1/file.2 > ./dir2/file.1");
|
|
46
|
+
newer = (0, fileCompare_1.isNewerFile)(dir1, dir2);
|
|
47
|
+
t.ok(newer, "dir1 > dir2");
|
|
48
|
+
newer = (0, fileCompare_1.isNewerFile)(dir1, dir2, ".1");
|
|
49
|
+
t.ok(!newer, "./dir1 (.1) < ./dir2");
|
|
50
|
+
t.end();
|
|
51
|
+
}
|
|
52
|
+
tap_1.default.test('IsNewer', t => {
|
|
53
|
+
test(t);
|
|
54
|
+
});
|
|
55
|
+
//# sourceMappingURL=fileCompare.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileCompare.test.js","sourceRoot":"","sources":["../../../src/lib/Tests/fileCompare.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,8CAAqB;AAErB,2CAA4B;AAC5B,gDAAoD;AAEpD,SAAS,IAAI,CAAC,CAAK;IAEnB,wCAAwC;IACxC,wCAAwC;IACxC,2BAA2B;IAC3B,8BAA8B;IAE1B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAE5C,IAAI,KAAK,GAAG,IAAA,yBAAW,EAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IAC7C,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,+BAA+B,CAAC,CAAA;IACtD,KAAK,GAAG,IAAA,yBAAW,EAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IACzC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,+BAA+B,CAAC,CAAA;IACrD,KAAK,GAAG,IAAA,yBAAW,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAC3B,KAAK,GAAG,IAAA,yBAAW,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAA;IAGpC,CAAC,CAAC,GAAG,EAAE,CAAA;AACX,CAAC;AACD,aAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE;IACpB,IAAI,CAAC,CAAC,CAAC,CAAA;AACX,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/** handles interaction for asking a question */
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
20
|
+
if (mod && mod.__esModule) return mod;
|
|
21
|
+
var result = {};
|
|
22
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
23
|
+
__setModuleDefault(result, mod);
|
|
24
|
+
return result;
|
|
25
|
+
};
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.ask = void 0;
|
|
28
|
+
const ac = __importStar(require("ansi-colors"));
|
|
29
|
+
const readlineSync = require("readline-sync");
|
|
30
|
+
function ask(desc, // describes the context
|
|
31
|
+
query, // asks the actual question
|
|
32
|
+
def // default answer
|
|
33
|
+
) {
|
|
34
|
+
console.log(ac.dim.blue.italic(desc));
|
|
35
|
+
let answer = readlineSync.question(ac.bold.green(query) + ac.dim.grey(` [${def}] `) + '? ');
|
|
36
|
+
if (!answer)
|
|
37
|
+
answer = def;
|
|
38
|
+
return answer;
|
|
39
|
+
}
|
|
40
|
+
exports.ask = ask;
|
|
41
|
+
//# sourceMappingURL=askQuestion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"askQuestion.js","sourceRoot":"","sources":["../../src/lib/askQuestion.ts"],"names":[],"mappings":";AAAA,gDAAgD;;;;;;;;;;;;;;;;;;;;;;;;;;AAEhD,gDAAiC;AACjC,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;AAE7C,SAAgB,GAAG,CACf,IAAW,EAAE,wBAAwB;AACrC,KAAY,EAAG,2BAA2B;AAC1C,GAAU,CAAC,iBAAiB;;IAI5B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;IACrC,IAAI,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAE,IAAI,CAAC,CAAA;IAC1F,IAAG,CAAC,MAAM;QAAE,MAAM,GAAG,GAAG,CAAA;IACxB,OAAO,MAAM,CAAA;AACjB,CAAC;AAXD,kBAWC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.executeCommand = void 0;
|
|
4
|
+
const child_process_1 = require("child_process");
|
|
5
|
+
function executeCommand(cmd, args, cwd = '', consolePass = false, env = {}) {
|
|
6
|
+
const out = {
|
|
7
|
+
stdStr: '',
|
|
8
|
+
errStr: '',
|
|
9
|
+
retcode: 0
|
|
10
|
+
};
|
|
11
|
+
return new Promise(resolve => {
|
|
12
|
+
let cmdstr = cmd + ' ' + args.join(' ');
|
|
13
|
+
// console.log('executing ', cmdstr, 'at', cwd)
|
|
14
|
+
const opts = {
|
|
15
|
+
cwd: cwd,
|
|
16
|
+
env: Object.assign(env, process.env)
|
|
17
|
+
};
|
|
18
|
+
const proc = (0, child_process_1.exec)(cmdstr, opts);
|
|
19
|
+
if (proc.stdout)
|
|
20
|
+
proc.stdout.on('data', data => {
|
|
21
|
+
out.stdStr += data.toString();
|
|
22
|
+
if (consolePass)
|
|
23
|
+
process.stdout.write(data.toString());
|
|
24
|
+
});
|
|
25
|
+
if (proc.stderr)
|
|
26
|
+
proc.stderr.on('data', data => {
|
|
27
|
+
out.errStr += data.toString();
|
|
28
|
+
if (consolePass)
|
|
29
|
+
process.stdout.write(data.toString());
|
|
30
|
+
});
|
|
31
|
+
proc.on('error', error => {
|
|
32
|
+
console.error(error);
|
|
33
|
+
if (!out.errStr)
|
|
34
|
+
out.errStr = error.message;
|
|
35
|
+
out.retcode = -1;
|
|
36
|
+
resolve(out);
|
|
37
|
+
});
|
|
38
|
+
proc.on('close', code => {
|
|
39
|
+
out.retcode = code === null ? -1 : code;
|
|
40
|
+
resolve(out);
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
exports.executeCommand = executeCommand;
|
|
45
|
+
//# sourceMappingURL=executeCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executeCommand.js","sourceRoot":"","sources":["../../src/lib/executeCommand.ts"],"names":[],"mappings":";;;AACA,iDAAkC;AAGlC,SAAgB,cAAc,CAAC,GAAU,EAAE,IAAU,EAAG,GAAG,GAAG,EAAE,EAAE,WAAW,GAAG,KAAK,EAAE,MAAU,EAAE;IAC/F,MAAM,GAAG,GAAG;QACR,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,CAAC;KACb,CAAA;IACD,OAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QAC1B,IAAI,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACvC,+CAA+C;QAC/C,MAAM,IAAI,GAAG;YACT,GAAG,EAAC,GAAG;YACP,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC;SACvC,CAAA;QACD,MAAM,IAAI,GAAG,IAAA,oBAAI,EAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAC/B,IAAG,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;gBAC1C,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAA;gBAC7B,IAAG,WAAW;oBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;YACzD,CAAC,CAAC,CAAA;QACF,IAAG,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;gBAC1C,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAA;gBAC7B,IAAG,WAAW;oBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;YACzD,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;YACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YACpB,IAAG,CAAC,GAAG,CAAC,MAAM;gBAAE,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAA;YAC1C,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAA;YAChB,OAAO,CAAC,GAAG,CAAC,CAAA;QAChB,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;YACpB,GAAG,CAAC,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YACvC,OAAO,CAAC,GAAG,CAAC,CAAA;QAChB,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC;AAjCD,wCAiCC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.isNewerFile = exports.isNewer = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const DirectoryUtils_1 = require("./DirectoryUtils");
|
|
10
|
+
// true if filepath > mapped file in outDir (i.e. .ts > .js)
|
|
11
|
+
function isNewer(filepath, outDir, mappingObj = { ".ts": ".js" }) {
|
|
12
|
+
let basename = path_1.default.basename(filepath);
|
|
13
|
+
let ext = path_1.default.extname(filepath);
|
|
14
|
+
basename = basename.substring(0, basename.lastIndexOf(ext));
|
|
15
|
+
let newExt = "";
|
|
16
|
+
if (mappingObj[ext])
|
|
17
|
+
newExt = mappingObj[ext];
|
|
18
|
+
let outfile = path_1.default.join(outDir, basename + newExt);
|
|
19
|
+
return isNewerFile(filepath, outfile);
|
|
20
|
+
}
|
|
21
|
+
exports.isNewer = isNewer;
|
|
22
|
+
// true if filepath is newer than destpath
|
|
23
|
+
function isNewerFile(filepath, destpath, srcFilter = "", dstFilter = "") {
|
|
24
|
+
const sstat = fs_1.default.statSync(filepath);
|
|
25
|
+
const srcTime = sstat.isDirectory() ? latestInDirectory(filepath, srcFilter) : fs_1.default.statSync(filepath).mtime;
|
|
26
|
+
let destTime = new Date(0);
|
|
27
|
+
if (fs_1.default.existsSync((destpath))) {
|
|
28
|
+
const dstat = fs_1.default.statSync(destpath);
|
|
29
|
+
destTime = dstat.isDirectory() ? latestInDirectory(destpath, dstFilter) : fs_1.default.statSync(destpath).mtime;
|
|
30
|
+
}
|
|
31
|
+
return (srcTime >= destTime);
|
|
32
|
+
}
|
|
33
|
+
exports.isNewerFile = isNewerFile;
|
|
34
|
+
function latestInDirectory(dirPath, extFilter = "") {
|
|
35
|
+
let newestTime = new Date(0);
|
|
36
|
+
(0, DirectoryUtils_1.recurseDirectory)(dirPath, (filepath, stats) => {
|
|
37
|
+
if (stats.isFile()) {
|
|
38
|
+
const ext = path_1.default.extname(filepath);
|
|
39
|
+
if (!extFilter || ext === extFilter) {
|
|
40
|
+
if (stats.mtime > newestTime) {
|
|
41
|
+
newestTime = stats.mtime;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
return newestTime;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=fileCompare.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileCompare.js","sourceRoot":"","sources":["../../src/lib/fileCompare.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,4CAAoB;AACpB,qDAAkD;AAElD,4DAA4D;AAC5D,SAAgB,OAAO,CAAC,QAAe,EAAE,MAAa,EAAE,aAAiB,EAAC,KAAK,EAAE,KAAK,EAAC;IAEnF,IAAI,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAChC,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5D,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,IAAG,UAAU,CAAC,GAAG,CAAC;QAAE,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAE7C,IAAI,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAC,MAAM,CAAC,CAAC;IACjD,OAAO,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC;AAXD,0BAWC;AAED,0CAA0C;AAC1C,SAAgB,WAAW,CAAC,QAAe,EAAE,QAAe,EAAE,YAAmB,EAAE,EAAE,YAAmB,EAAE;IAEtG,MAAM,KAAK,GAAG,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;IAC3G,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAG,YAAE,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpC,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;IAC1G,CAAC;IACD,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAA;AAChC,CAAC;AAVD,kCAUC;AACD,SAAS,iBAAiB,CAAC,OAAc,EAAE,YAAmB,EAAE;IAE5D,IAAI,UAAU,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAA,iCAAgB,EAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;QAC1C,IAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YAChB,MAAM,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACnC,IAAG,CAAC,SAAS,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACjC,IAAG,KAAK,CAAC,KAAK,GAAG,UAAU,EAAE,CAAC;oBAC1B,UAAU,GAAG,KAAK,CAAC,KAAK,CAAA;gBAC5B,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC,CAAC,CAAA;IACF,OAAO,UAAU,CAAC;AAEtB,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.gatherFunctionDefinitions = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Part 1 of two steps to build openApi docs.
|
|
9
|
+
* This reads values from our "definitions.json" format and creates a single array that step 2 will turn into
|
|
10
|
+
* openApi specifications.
|
|
11
|
+
*/
|
|
12
|
+
const fs_1 = __importDefault(require("fs"));
|
|
13
|
+
const path_1 = __importDefault(require("path"));
|
|
14
|
+
const DirectoryUtils_1 = require("../DirectoryUtils");
|
|
15
|
+
const pathResolve_1 = require("../pathResolve");
|
|
16
|
+
function gatherFunctionDefinitions() {
|
|
17
|
+
const defs = [];
|
|
18
|
+
try {
|
|
19
|
+
const projectPaths = (0, pathResolve_1.resolvePaths)();
|
|
20
|
+
if (!projectPaths.verified)
|
|
21
|
+
return [];
|
|
22
|
+
const funcNames = [];
|
|
23
|
+
if (!fs_1.default.existsSync(projectPaths.functionPath))
|
|
24
|
+
return [];
|
|
25
|
+
let firstDepth = 0;
|
|
26
|
+
(0, DirectoryUtils_1.recurseDirectory)(projectPaths.functionPath, (filepath, stats) => {
|
|
27
|
+
if (stats.isDirectory()) {
|
|
28
|
+
let depth = filepath.split(path_1.default.sep).length;
|
|
29
|
+
if (!firstDepth)
|
|
30
|
+
firstDepth = depth;
|
|
31
|
+
if (firstDepth == depth) {
|
|
32
|
+
funcNames.push(path_1.default.basename(filepath));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
if (projectPaths.functionPath.indexOf('functions') !== -1) {
|
|
37
|
+
for (let name of funcNames) {
|
|
38
|
+
let defPath = path_1.default.join(projectPaths.functionPath, name, 'src', 'definition.json');
|
|
39
|
+
if (fs_1.default.existsSync(defPath)) {
|
|
40
|
+
const content = fs_1.default.readFileSync(defPath).toString();
|
|
41
|
+
let buildPath = path_1.default.join(projectPaths.buildPath, 'functions', name, 'src', 'definition.json');
|
|
42
|
+
// fs.writeFileSync(buildPath, content); // use this opportunity to copy to build folder before we use it.
|
|
43
|
+
defs.push(JSON.parse(content));
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
console.error(`Definition file not found at ${defPath}`);
|
|
47
|
+
return [];
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
console.error("Exception in ApiBuildCollector", e);
|
|
54
|
+
}
|
|
55
|
+
return defs;
|
|
56
|
+
}
|
|
57
|
+
exports.gatherFunctionDefinitions = gatherFunctionDefinitions;
|
|
58
|
+
//# sourceMappingURL=ApiBuildCollector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiBuildCollector.js","sourceRoot":"","sources":["../../../src/lib/openAPI/ApiBuildCollector.ts"],"names":[],"mappings":";;;;;;AAAA;;;;GAIG;AACH,4CAAmB;AACnB,gDAAuB;AACvB,sDAAmD;AACnD,gDAA4C;AAG5C,SAAgB,yBAAyB;IACrC,MAAM,IAAI,GAAO,EAAE,CAAA;IACnB,IAAI,CAAC;QACD,MAAM,YAAY,GAAG,IAAA,0BAAY,GAAE,CAAC;QACpC,IAAG,CAAC,YAAY,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QACrC,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,IAAG,CAAC,YAAE,CAAC,UAAU,CAAC,YAAY,CAAC,YAAY,CAAC;YAAE,OAAO,EAAE,CAAC;QACxD,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAA,iCAAgB,EAAC,YAAY,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;YAC5D,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACtB,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,cAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAA;gBAC3C,IAAG,CAAC,UAAU;oBAAE,UAAU,GAAG,KAAK,CAAA;gBAClC,IAAG,UAAU,IAAI,KAAK,EAAE,CAAC;oBACrB,SAAS,CAAC,IAAI,CAAC,cAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC5C,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAA;QACF,IAAG,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAG,CAAC;YACxD,KAAK,IAAI,IAAI,IAAI,SAAS,EAAE,CAAC;gBACzB,IAAI,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAA;gBAClF,IAAI,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBACzB,MAAM,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAA;oBACnD,IAAI,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAA;oBAC9F,0GAA0G;oBAC1G,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;gBAClC,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,KAAK,CAAC,gCAAgC,OAAO,EAAE,CAAC,CAAC;oBACzD,OAAO,EAAE,CAAC;gBACd,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAAC,OAAM,CAAM,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,CAAC,CAAC,CAAA;IACtD,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAnCD,8DAmCC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.GetWebrootServePaths = void 0;
|
|
27
|
+
const path = __importStar(require("path"));
|
|
28
|
+
const pathResolve_1 = require("../pathResolve");
|
|
29
|
+
const DirectoryUtils_1 = require("../DirectoryUtils");
|
|
30
|
+
function GetWebrootServePaths() {
|
|
31
|
+
const projectPaths = (0, pathResolve_1.resolvePaths)();
|
|
32
|
+
const webroot = path.join(projectPaths.basePath, "webroot");
|
|
33
|
+
const list = [''];
|
|
34
|
+
(0, DirectoryUtils_1.recurseDirectory)(webroot, (filepath, stats) => {
|
|
35
|
+
if (stats.isDirectory()) {
|
|
36
|
+
let relpath = filepath.substring(webroot.length);
|
|
37
|
+
if (list.indexOf(relpath) === -1)
|
|
38
|
+
list.push(relpath);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
return list;
|
|
42
|
+
}
|
|
43
|
+
exports.GetWebrootServePaths = GetWebrootServePaths;
|
|
44
|
+
//# sourceMappingURL=WebrootFileSupport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebrootFileSupport.js","sourceRoot":"","sources":["../../../src/lib/openAPI/WebrootFileSupport.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,2CAA4B;AAC5B,gDAA4C;AAC5C,sDAAmD;AAGnD,SAAgB,oBAAoB;IAEhC,MAAM,YAAY,GAAG,IAAA,0BAAY,GAAE,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;IAE3D,MAAM,IAAI,GAAY,CAAC,EAAE,CAAC,CAAC;IAC3B,IAAA,iCAAgB,EAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;QAC1C,IAAG,KAAK,CAAC,WAAW,EAAE,EACtB,CAAC;YACG,IAAI,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACjD,IAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxD,CAAC;IACL,CAAC,CAAC,CAAA;IACF,OAAO,IAAI,CAAC;AAChB,CAAC;AAdD,oDAcC"}
|
|
@@ -0,0 +1,203 @@
|
|
|
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 __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.buildOpenApi = void 0;
|
|
16
|
+
/**
|
|
17
|
+
* This is part 2 of 2 -- we take our pre-built json array of definitions and apply them to openApi in this phase.
|
|
18
|
+
*/
|
|
19
|
+
const oas30_1 = require("openapi3-ts/oas30");
|
|
20
|
+
const fs_1 = __importDefault(require("fs"));
|
|
21
|
+
const path_1 = __importDefault(require("path"));
|
|
22
|
+
const pathResolve_1 = require("../pathResolve");
|
|
23
|
+
const LiftConfig_1 = require("../LiftConfig");
|
|
24
|
+
function buildOpenApi(defs_1) {
|
|
25
|
+
return __awaiter(this, arguments, void 0, function* (defs, includePrivate = false, yamlFile) {
|
|
26
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
27
|
+
const builder = new oas30_1.OpenApiBuilder();
|
|
28
|
+
const projectPaths = yield (0, pathResolve_1.resolvePaths)();
|
|
29
|
+
if (!projectPaths.verified)
|
|
30
|
+
return new Uint8Array(0); // don't continue if not valid
|
|
31
|
+
// Read our package.json and construct info from that
|
|
32
|
+
const pkgFile = projectPaths.packagePath;
|
|
33
|
+
let pkg = {};
|
|
34
|
+
try {
|
|
35
|
+
pkg = JSON.parse(fs_1.default.readFileSync(pkgFile).toString());
|
|
36
|
+
}
|
|
37
|
+
catch (_j) { }
|
|
38
|
+
let title = pkg.name;
|
|
39
|
+
// let summary = pkg.description;
|
|
40
|
+
let spdx = pkg.license;
|
|
41
|
+
let contactName = pkg.author;
|
|
42
|
+
let version = pkg.version;
|
|
43
|
+
// license and version definitely come from package.json
|
|
44
|
+
// description and title might get overridden by service.info file
|
|
45
|
+
const infoFile = path_1.default.join(projectPaths.functionPath, "apiService.info.json");
|
|
46
|
+
var svcInfo = {};
|
|
47
|
+
if (fs_1.default.existsSync(infoFile)) {
|
|
48
|
+
svcInfo = JSON.parse(fs_1.default.readFileSync(infoFile).toString());
|
|
49
|
+
}
|
|
50
|
+
spdx = (_b = (_a = svcInfo.contact) === null || _a === void 0 ? void 0 : _a.spdx) !== null && _b !== void 0 ? _b : spdx;
|
|
51
|
+
const info = {
|
|
52
|
+
title: (_c = svcInfo.name) !== null && _c !== void 0 ? _c : title,
|
|
53
|
+
// summary: summary,
|
|
54
|
+
description: svcInfo.description,
|
|
55
|
+
version: (_e = (_d = svcInfo.version) !== null && _d !== void 0 ? _d : version) !== null && _e !== void 0 ? _e : new Date().toUTCString()
|
|
56
|
+
};
|
|
57
|
+
builder.addInfo(info);
|
|
58
|
+
// map our defs into openApi values
|
|
59
|
+
for (let def of defs) {
|
|
60
|
+
let pathDef = {};
|
|
61
|
+
if (def.private && !includePrivate)
|
|
62
|
+
continue; // skip private
|
|
63
|
+
const parameters = (_f = def.parameters) !== null && _f !== void 0 ? _f : [];
|
|
64
|
+
const methods = def.allowedMethods.split(',');
|
|
65
|
+
const schemas = (_g = def.schemas) !== null && _g !== void 0 ? _g : {};
|
|
66
|
+
for (let schemaName of Object.getOwnPropertyNames(schemas)) {
|
|
67
|
+
const schema = schemas[schemaName];
|
|
68
|
+
addTypeSchema(builder, schemaName, schema);
|
|
69
|
+
}
|
|
70
|
+
for (let method of methods) {
|
|
71
|
+
method = method.trim().toLowerCase();
|
|
72
|
+
addFunctionMethod(pathDef, method, def);
|
|
73
|
+
for (let param of parameters) {
|
|
74
|
+
addParameter(pathDef, param);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
addCORSOptionMethod(pathDef);
|
|
78
|
+
builder.addPath(((_h = def.pathMap) !== null && _h !== void 0 ? _h : "/" + def.name), pathDef);
|
|
79
|
+
builder.addSchema("Empty", {
|
|
80
|
+
title: "Empty Schema",
|
|
81
|
+
type: "object"
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
const outFile = yamlFile !== null && yamlFile !== void 0 ? yamlFile : path_1.default.join(projectPaths.basePath, 'webroot', 'docs', 'apidoc.yaml');
|
|
85
|
+
const str2ab = (str) => {
|
|
86
|
+
var buf = new ArrayBuffer(str.length * 2); // 2 bytes for each char
|
|
87
|
+
var bufView = new Uint8Array(buf);
|
|
88
|
+
for (var i = 0, strLen = str.length; i < strLen; i++) {
|
|
89
|
+
bufView[i] = str.charCodeAt(i);
|
|
90
|
+
}
|
|
91
|
+
return bufView;
|
|
92
|
+
};
|
|
93
|
+
const yaml = builder.getSpecAsYaml();
|
|
94
|
+
const bytes = str2ab(yaml);
|
|
95
|
+
if (!includePrivate) {
|
|
96
|
+
fs_1.default.writeFileSync(outFile, yaml);
|
|
97
|
+
}
|
|
98
|
+
return bytes;
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
exports.buildOpenApi = buildOpenApi;
|
|
102
|
+
function addTypeSchema(builder, schemaName, schema) {
|
|
103
|
+
const ref = { title: schemaName, type: "object", properties: {} };
|
|
104
|
+
for (let prop of Object.getOwnPropertyNames(schema)) {
|
|
105
|
+
const scType = schemaType("", schema[prop], false);
|
|
106
|
+
ref.properties[prop] = scType;
|
|
107
|
+
}
|
|
108
|
+
builder.addSchema(schemaName, ref);
|
|
109
|
+
}
|
|
110
|
+
function addFunctionMethod(pathDef, method, def) {
|
|
111
|
+
var _a, _b, _c;
|
|
112
|
+
// TODO: Define a return schema and put that here
|
|
113
|
+
const retDef = def.returns["200"];
|
|
114
|
+
const content = {};
|
|
115
|
+
const mime = (_b = (_a = retDef === null || retDef === void 0 ? void 0 : retDef.content) !== null && _a !== void 0 ? _a : retDef === null || retDef === void 0 ? void 0 : retDef.mime) !== null && _b !== void 0 ? _b : "text/plain";
|
|
116
|
+
content[mime] = {};
|
|
117
|
+
const region = (0, LiftConfig_1.getSettings)().awsPreferredRegion;
|
|
118
|
+
const accountId = "545650260286";
|
|
119
|
+
const methData = {
|
|
120
|
+
summary: def.name,
|
|
121
|
+
description: def.description,
|
|
122
|
+
responses: {
|
|
123
|
+
"200": {
|
|
124
|
+
description: (_c = retDef === null || retDef === void 0 ? void 0 : retDef.description) !== null && _c !== void 0 ? _c : "Success Response",
|
|
125
|
+
content
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
pathDef[method] = methData;
|
|
130
|
+
}
|
|
131
|
+
function addCORSOptionMethod(pathDef) {
|
|
132
|
+
if (pathDef["options"])
|
|
133
|
+
return; // already assinged by definition
|
|
134
|
+
// add options for CORS
|
|
135
|
+
pathDef["options"] = {
|
|
136
|
+
"responses": {
|
|
137
|
+
"200": {
|
|
138
|
+
"description": "200 response",
|
|
139
|
+
"content": {
|
|
140
|
+
"application/json": {
|
|
141
|
+
"schema": {
|
|
142
|
+
"$ref": "#/components/schemas/Empty"
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
"x-amazon-apigateway-integration": {
|
|
149
|
+
"responses": {
|
|
150
|
+
"default": {
|
|
151
|
+
"statusCode": "200"
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
"requestTemplates": {
|
|
155
|
+
"application/json": "{\"statusCode\": 200}"
|
|
156
|
+
},
|
|
157
|
+
"passthroughBehavior": "when_no_match",
|
|
158
|
+
"type": "mock"
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
function addParameter(pathDef, param) {
|
|
163
|
+
var _a, _b, _c, _d;
|
|
164
|
+
if (!pathDef.parameters)
|
|
165
|
+
pathDef.parameters = [];
|
|
166
|
+
const parameters = pathDef.parameters;
|
|
167
|
+
const example = (_b = (_a = param.example) !== null && _a !== void 0 ? _a : param.default) !== null && _b !== void 0 ? _b : "";
|
|
168
|
+
const type = (_c = param.type) !== null && _c !== void 0 ? _c : typeof example;
|
|
169
|
+
let deflt = (_d = param.default) !== null && _d !== void 0 ? _d : example;
|
|
170
|
+
parameters.push({
|
|
171
|
+
in: param.in,
|
|
172
|
+
name: param.name,
|
|
173
|
+
description: param.description,
|
|
174
|
+
example: example,
|
|
175
|
+
required: param.required,
|
|
176
|
+
schema: schemaType(deflt, type, true)
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
function schemaType(deflt, namedType, innerOnly) {
|
|
180
|
+
if (typeof namedType == "object")
|
|
181
|
+
return namedType;
|
|
182
|
+
const typeFormat = namedType.split(':');
|
|
183
|
+
let type = typeFormat[0];
|
|
184
|
+
const format = typeFormat.length > 1 ? typeFormat[1] : undefined;
|
|
185
|
+
if (!(type === "string"
|
|
186
|
+
|| type === "number"
|
|
187
|
+
|| type === "integer"
|
|
188
|
+
|| type === "boolean"
|
|
189
|
+
|| type === "int"
|
|
190
|
+
|| type === "bool")) {
|
|
191
|
+
return innerOnly ? {
|
|
192
|
+
$ref: `#/components/schemas/${type}`
|
|
193
|
+
} : { schema: {
|
|
194
|
+
$ref: `#/components/schemas/${type}`
|
|
195
|
+
} };
|
|
196
|
+
}
|
|
197
|
+
if (type === 'int')
|
|
198
|
+
type = 'integer';
|
|
199
|
+
if (type === 'bool')
|
|
200
|
+
type = 'boolean';
|
|
201
|
+
return innerOnly ? { type, format, example: deflt } : { schema: { type, format, example: deflt } };
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=openApiConstruction.js.map
|