@tremho/mist-lift 2.4.0 → 2.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -0
- package/build/QSTest/functions/IntegrationTest/IntegrationTest.test.js +47 -0
- package/build/QSTest/functions/IntegrationTest/IntegrationTest.test.js.map +1 -0
- package/build/QSTest/functions/IntegrationTest/src/local.js +33 -0
- package/build/QSTest/functions/IntegrationTest/src/local.js.map +1 -0
- package/build/QSTest/functions/IntegrationTest/src/main.js +28 -0
- package/build/QSTest/functions/IntegrationTest/src/main.js.map +1 -0
- package/build/{commands → src/commands}/actions/initQuestions.js +18 -9
- package/build/src/commands/actions/initQuestions.js.map +1 -0
- package/build/src/commands/actions/makePackageJson.js.map +1 -0
- package/build/{commands → src/commands}/actions/setupPackageJson.js +20 -11
- package/build/src/commands/actions/setupPackageJson.js.map +1 -0
- package/build/{commands → src/commands}/actions/updateDeployedPermissions.js +22 -13
- package/build/src/commands/actions/updateDeployedPermissions.js.map +1 -0
- package/build/{commands → src/commands}/build.js +18 -9
- package/build/src/commands/build.js.map +1 -0
- package/build/{commands → src/commands}/builtin/ApiDocMaker.js +3 -4
- package/build/src/commands/builtin/ApiDocMaker.js.map +1 -0
- package/build/{commands → src/commands}/builtin/BuiltInHandler.js +20 -11
- package/build/src/commands/builtin/BuiltInHandler.js.map +1 -0
- package/build/{commands → src/commands}/builtin/DeployBuiltInZip.js +1 -2
- package/build/src/commands/builtin/DeployBuiltInZip.js.map +1 -0
- package/build/{commands → src/commands}/builtin/ExportWebroot.js +24 -13
- package/build/src/commands/builtin/ExportWebroot.js.map +1 -0
- package/build/{commands → src/commands}/builtin/StageWebrootZip.js +18 -9
- package/build/src/commands/builtin/StageWebrootZip.js.map +1 -0
- package/build/{commands → src/commands}/builtin/webroot-export/s3webroot.js +21 -10
- package/build/src/commands/builtin/webroot-export/s3webroot.js.map +1 -0
- package/build/{commands → src/commands}/create.js +18 -9
- package/build/src/commands/create.js.map +1 -0
- package/build/{commands → src/commands}/deploy.js +19 -10
- package/build/src/commands/deploy.js.map +1 -0
- package/build/{commands → src/commands}/doctor.js +19 -10
- package/build/src/commands/doctor.js.map +1 -0
- package/build/{commands → src/commands}/help.js +34 -24
- package/build/src/commands/help.js.map +1 -0
- package/build/{commands → src/commands}/info.js +18 -9
- package/build/src/commands/info.js.map +1 -0
- package/build/{commands → src/commands}/init.js +67 -18
- package/build/src/commands/init.js.map +1 -0
- package/build/{commands → src/commands}/package.js +21 -10
- package/build/src/commands/package.js.map +1 -0
- package/build/{commands → src/commands}/publish.js +19 -10
- package/build/src/commands/publish.js.map +1 -0
- package/build/{commands → src/commands}/settings.js +18 -9
- package/build/src/commands/settings.js.map +1 -0
- package/build/{commands → src/commands}/start.js +18 -9
- package/build/src/commands/start.js.map +1 -0
- package/build/{commands → src/commands}/test.js +18 -9
- package/build/src/commands/test.js.map +1 -0
- package/build/{commands → src/commands}/update.js +18 -9
- package/build/src/commands/update.js.map +1 -0
- package/build/src/commands/user.js.map +1 -0
- package/build/{expressRoutes → src/expressRoutes}/all.js +18 -9
- package/build/src/expressRoutes/all.js.map +1 -0
- package/build/src/expressRoutes/api.js.map +1 -0
- package/build/{expressRoutes → src/expressRoutes}/functionBinder.js +28 -15
- package/build/src/expressRoutes/functionBinder.js.map +1 -0
- package/build/{integration-tests → src/integration-tests}/quickstart-scenario.test.js +1 -1
- package/build/src/integration-tests/quickstart-scenario.test.js.map +1 -0
- package/build/{lib → src/lib}/CaseUtils.js +5 -6
- package/build/src/lib/CaseUtils.js.map +1 -0
- package/build/{lib → src/lib}/DirectoryUtils.js +2 -3
- package/build/src/lib/DirectoryUtils.js.map +1 -0
- package/build/{lib → src/lib}/ESBuild.js +19 -10
- package/build/src/lib/ESBuild.js.map +1 -0
- package/build/{lib → src/lib}/IdSrc.js +6 -6
- package/build/src/lib/IdSrc.js.map +1 -0
- package/build/{lib → src/lib}/LiftConfig.js +7 -7
- package/build/src/lib/LiftConfig.js.map +1 -0
- package/build/{lib → src/lib}/LiftVersion.js +21 -11
- package/build/src/lib/LiftVersion.js.map +1 -0
- package/build/{lib → src/lib}/Tests/fileCompare.test.js +17 -7
- package/build/src/lib/Tests/fileCompare.test.js.map +1 -0
- package/build/{lib → src/lib}/TypeCheck.js +8 -6
- package/build/src/lib/TypeCheck.js.map +1 -0
- package/build/{lib → src/lib}/askQuestion.js +18 -9
- package/build/src/lib/askQuestion.js.map +1 -0
- package/build/{lib → src/lib}/executeCommand.js +1 -2
- package/build/src/lib/executeCommand.js.map +1 -0
- package/build/{lib → src/lib}/fileCompare.js +2 -3
- package/build/src/lib/fileCompare.js.map +1 -0
- package/build/{lib → src/lib}/openAPI/ApiBuildCollector.js +1 -2
- package/build/src/lib/openAPI/ApiBuildCollector.js.map +1 -0
- package/build/{lib → src/lib}/openAPI/WebrootFileSupport.js +18 -9
- package/build/src/lib/openAPI/WebrootFileSupport.js.map +1 -0
- package/build/{lib → src/lib}/openAPI/openApiConstruction.js +46 -32
- package/build/src/lib/openAPI/openApiConstruction.js.map +1 -0
- package/build/{lib → src/lib}/pathResolve.js +1 -2
- package/build/src/lib/pathResolve.js.map +1 -0
- package/build/{lib → src/lib}/utils.js +20 -11
- package/build/src/lib/utils.js.map +1 -0
- package/build/{lift.js → src/lift.js} +18 -8
- package/build/src/lift.js.map +1 -0
- package/package.json +2 -3
- package/src/commands/actions/updateDeployedPermissions.ts +1 -1
- package/src/commands/builtin/ExportWebroot.ts +5 -5
- package/src/commands/builtin/webroot-export/s3webroot.ts +4 -0
- package/src/commands/help.ts +4 -2
- package/src/commands/init.ts +51 -8
- package/src/commands/package.ts +3 -1
- package/src/commands/publish.ts +4 -4
- package/src/expressRoutes/functionBinder.ts +14 -10
- package/src/integration-tests/quickstart-scenario.test.ts +1 -1
- package/src/lib/IdSrc.ts +2 -2
- package/src/lib/TypeCheck.ts +3 -0
- package/src/lib/openAPI/openApiConstruction.ts +37 -32
- package/src/lift.ts +1 -1
- package/templateData/app/MainPage.tsx +10 -0
- package/templateData/app/app.tsx +39 -0
- package/templateData/webroot/app.js +7 -7
- package/build/commands/actions/initQuestions.js.map +0 -1
- package/build/commands/actions/makePackageJson.js.map +0 -1
- package/build/commands/actions/setupPackageJson.js.map +0 -1
- package/build/commands/actions/updateDeployedPermissions.js.map +0 -1
- package/build/commands/build.js.map +0 -1
- package/build/commands/builtin/ApiDocMaker.js.map +0 -1
- package/build/commands/builtin/BuiltInHandler.js.map +0 -1
- package/build/commands/builtin/DeployBuiltInZip.js.map +0 -1
- package/build/commands/builtin/ExportWebroot.js.map +0 -1
- package/build/commands/builtin/StageWebrootZip.js.map +0 -1
- 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/builtin/webroot-export/s3webroot.js.map +0 -1
- package/build/commands/create.js.map +0 -1
- package/build/commands/deploy.js.map +0 -1
- package/build/commands/doctor.js.map +0 -1
- package/build/commands/help.js.map +0 -1
- package/build/commands/info.js.map +0 -1
- package/build/commands/init.js.map +0 -1
- package/build/commands/package.js.map +0 -1
- package/build/commands/publish.js.map +0 -1
- package/build/commands/settings.js.map +0 -1
- package/build/commands/start.js.map +0 -1
- package/build/commands/test.js.map +0 -1
- package/build/commands/update.js.map +0 -1
- package/build/commands/user.js.map +0 -1
- package/build/expressRoutes/all.js.map +0 -1
- package/build/expressRoutes/api.js.map +0 -1
- package/build/expressRoutes/functionBinder.js.map +0 -1
- package/build/integration-tests/quickstart-scenario.test.js.map +0 -1
- package/build/lib/CaseUtils.js.map +0 -1
- package/build/lib/DirectoryUtils.js.map +0 -1
- package/build/lib/ESBuild.js.map +0 -1
- package/build/lib/IdSrc.js.map +0 -1
- package/build/lib/LiftConfig.js.map +0 -1
- package/build/lib/LiftVersion.js.map +0 -1
- package/build/lib/Tests/fileCompare.test.js.map +0 -1
- package/build/lib/TypeCheck.js.map +0 -1
- package/build/lib/askQuestion.js.map +0 -1
- package/build/lib/executeCommand.js.map +0 -1
- package/build/lib/fileCompare.js.map +0 -1
- package/build/lib/openAPI/ApiBuildCollector.js.map +0 -1
- package/build/lib/openAPI/WebrootFileSupport.js.map +0 -1
- package/build/lib/openAPI/openApiConstruction.js.map +0 -1
- package/build/lib/pathResolve.js.map +0 -1
- package/build/lib/utils.js.map +0 -1
- package/build/lift.js.map +0 -1
- /package/build/{commands → src/commands}/actions/makePackageJson.js +0 -0
- /package/build/{commands → src/commands}/user.js +0 -0
- /package/build/{expressRoutes → src/expressRoutes}/api.js +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tremho/mist-lift",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.1",
|
|
4
4
|
"description": "lift command line utility for MistLift development",
|
|
5
5
|
"main": "build/lift.js",
|
|
6
6
|
"bin": {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"indev:nix": "echo nix",
|
|
21
21
|
"indev:windows": "echo windows",
|
|
22
22
|
"postbuild": "run-script-os",
|
|
23
|
-
"postbuild:nix": "cp -r src/commands/builtin/prebuilt-zips build/commands/builtin",
|
|
23
|
+
"postbuild:nix": "cp -r src/commands/builtin/prebuilt-zips build/commands/builtin && chmod +x build/src/lift.js",
|
|
24
24
|
"postbuild:windows": "robocopy src/commands/builtin/prebuilt-zips build/commands/builtin/prebuilt-zips /e > NUL 2>&1"
|
|
25
25
|
},
|
|
26
26
|
"files": [
|
|
@@ -74,7 +74,6 @@
|
|
|
74
74
|
"@types/node": "^20.14.2",
|
|
75
75
|
"@types/tap": "^15.0.11",
|
|
76
76
|
"@types/ws": "^8.5.10",
|
|
77
|
-
"axios": "^1.7.2",
|
|
78
77
|
"rimraf": "^5.0.7",
|
|
79
78
|
"run-script-os": "^1.1.6",
|
|
80
79
|
"tap": "^19.2.5",
|
|
@@ -28,7 +28,7 @@ export default async function updateDeployedPermissions (apiId: string): Promise
|
|
|
28
28
|
return false
|
|
29
29
|
})
|
|
30
30
|
|
|
31
|
-
const accountId: string = await getAccountId()
|
|
31
|
+
const accountId: string = await getAccountId() ?? ''
|
|
32
32
|
const region: string = getSettings().awsPreferredRegion ?? ''
|
|
33
33
|
|
|
34
34
|
const client = new LambdaClient(getAWSCredentials())
|
|
@@ -63,7 +63,7 @@ let basePath = ''
|
|
|
63
63
|
/**
|
|
64
64
|
* Exports the webroot according to configuration
|
|
65
65
|
*/
|
|
66
|
-
export async function ExportWebroot (): Promise<any> {
|
|
66
|
+
export async function ExportWebroot (): Promise<any> | never {
|
|
67
67
|
const projectPaths = resolvePaths()
|
|
68
68
|
basePath = projectPaths.basePath
|
|
69
69
|
const webrootConfig = readWebrootConfig(path.join(basePath, 'webrootConfig.json'))
|
|
@@ -81,7 +81,7 @@ export async function ExportWebroot (): Promise<any> {
|
|
|
81
81
|
await exportScript(fla, webrootConfig.options as WebrootScriptOptions)
|
|
82
82
|
break
|
|
83
83
|
default: {
|
|
84
|
-
throw new Error(
|
|
84
|
+
throw new Error('UNSUPPORTED WEBROOT EXPORT TYPE (must be SELF, S3, or SCRIPT)')
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
}
|
|
@@ -105,7 +105,7 @@ export async function getWebrootSettings (): Promise<{ webrootMethod: string, we
|
|
|
105
105
|
break
|
|
106
106
|
}
|
|
107
107
|
default: {
|
|
108
|
-
const unreachable:
|
|
108
|
+
const unreachable: string = webrootConfig.type ?? '<none?'
|
|
109
109
|
throw new Error(`UNSUPPORTED WEBROOT EXPORT ${unreachable}`)
|
|
110
110
|
}
|
|
111
111
|
}
|
|
@@ -144,7 +144,7 @@ async function exportSelf (): Promise<void> {
|
|
|
144
144
|
await DeployRootFileserves()
|
|
145
145
|
}
|
|
146
146
|
|
|
147
|
-
async function exportScript (fla: string[], options: WebrootScriptOptions) {
|
|
147
|
+
async function exportScript (fla: string[], options: WebrootScriptOptions): Promise<void> {
|
|
148
148
|
// console.log(">> exportScript")
|
|
149
149
|
// console.log(" >> DeployWebrootBuiltIn")
|
|
150
150
|
// await DeployWebrootBuiltIn(true)
|
|
@@ -175,7 +175,7 @@ async function getUpdatedExportFileList (): Promise<string[]> {
|
|
|
175
175
|
// enumerate at webroot and files from all non-root directories
|
|
176
176
|
const folder = path.join(basePath, 'webroot')
|
|
177
177
|
const rootpathsteps = folder.split(path.sep).length
|
|
178
|
-
const enumerating = true
|
|
178
|
+
// const enumerating = true
|
|
179
179
|
|
|
180
180
|
function gatherFiles (filepath: string, stats: fs.Stats): boolean {
|
|
181
181
|
// console.log(filepath, {steps:filepath.split(path.sep).length, rootpathsteps, isDir:stats.isDirectory()})
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
|
|
1
3
|
import { S3Client } from '@aws-sdk/client-s3'
|
|
2
4
|
import { s3ListObjects, s3CreateBucket, s3UploadFile, s3Delete, S3ActionsLog } from '@tremho/basic-s3-actions'
|
|
3
5
|
import * as fs from 'fs'
|
|
@@ -76,3 +78,5 @@ export function getS3Prefix () {
|
|
|
76
78
|
const name = determineBucketName()
|
|
77
79
|
return `https://${name}.s3.us-west-1.amazonaws.com/`
|
|
78
80
|
}
|
|
81
|
+
|
|
82
|
+
/* eslint-enable */
|
package/src/commands/help.ts
CHANGED
|
@@ -74,10 +74,12 @@ function helpHelp (): void {
|
|
|
74
74
|
}
|
|
75
75
|
export function helpInit (): void {
|
|
76
76
|
printBanner('init')
|
|
77
|
-
console.log('use ' + ac.bold('lift init .') + '
|
|
78
|
-
|
|
77
|
+
console.log('use ' + ac.bold('lift init ' + ac.grey.dim('projectPath') + ac.grey.dim('[, clientType]')) + ac.grey.italic(' where clientType is one of "js" or "react", default=js') +
|
|
78
|
+
' to create a new directory at ' +
|
|
79
79
|
ac.grey.dim('projectPath') + ' if it does not exist and init a MistLift project in that directory, if not already initialized')
|
|
80
80
|
console.log('')
|
|
81
|
+
console.log('Paths are relative. Use ' + ac.bold('.') + ' to init the current directory')
|
|
82
|
+
|
|
81
83
|
console.log('This will begin an interactive session where you will be asked questions about the project you are creating.')
|
|
82
84
|
console.log('The project will be complete and ready to run right away.')
|
|
83
85
|
console.log('You can then modify the application to your needs.')
|
package/src/commands/init.ts
CHANGED
|
@@ -22,12 +22,18 @@ import { addPackageScripts, installPackage, installDevPackage } from './actions/
|
|
|
22
22
|
|
|
23
23
|
export async function doInit (
|
|
24
24
|
folder?: string,
|
|
25
|
+
clientType?: string,
|
|
25
26
|
defaults?: boolean
|
|
26
27
|
): Promise<void> {
|
|
27
28
|
if (folder === undefined || folder === '') {
|
|
28
29
|
helpInit()
|
|
29
30
|
return
|
|
30
31
|
}
|
|
32
|
+
if (clientType?.length === 0) clientType = 'js'
|
|
33
|
+
if (clientType?.toLowerCase() !== 'react' && clientType?.toLowerCase() !== 'js') {
|
|
34
|
+
helpInit()
|
|
35
|
+
return
|
|
36
|
+
}
|
|
31
37
|
const cwd = process.cwd()
|
|
32
38
|
const refPath = path.isAbsolute(folder) ? path.normalize(folder) : path.normalize(path.join(cwd, folder))
|
|
33
39
|
if (!fs.existsSync(refPath)) {
|
|
@@ -62,14 +68,51 @@ export async function doInit (
|
|
|
62
68
|
fs.copyFileSync(path.join(webrootSrcDir, 'app.css'), path.join(webroot, 'app.css'))
|
|
63
69
|
fs.copyFileSync(path.join(webrootSrcDir, 'watcher.js'), path.join(webroot, 'watcher.js'))
|
|
64
70
|
|
|
65
|
-
|
|
71
|
+
localConfig(clientType, refPath)
|
|
72
|
+
|
|
73
|
+
if (clientType === 'react') {
|
|
74
|
+
const appPath = path.join(refPath, 'app')
|
|
75
|
+
const appSrc = path.join(swaggerSrcDir, 'app')
|
|
76
|
+
if (!fs.existsSync(appPath)) {
|
|
77
|
+
fs.mkdirSync(appPath)
|
|
78
|
+
fs.copyFileSync(path.join(appSrc, 'app.tsx'), path.join(appPath, 'app.tsx'))
|
|
79
|
+
fs.copyFileSync(path.join(appSrc, 'MainPage.tsx'), path.join(appPath, 'MainPage.tsx'))
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
await interrogateUserForPackageJsonSettings(refPath, defaults)
|
|
84
|
+
await addPackageScripts(refPath)
|
|
85
|
+
if (clientType === 'react') {
|
|
86
|
+
await installPackage(refPath, 'react')
|
|
87
|
+
await installPackage(refPath, 'react-dom')
|
|
88
|
+
await installPackage(refPath, 'react-router-dom')
|
|
89
|
+
await installDevPackage(refPath, '@types/react')
|
|
90
|
+
}
|
|
91
|
+
await installDevPackage(refPath, '@types/node')
|
|
92
|
+
await installDevPackage(refPath, 'typescript')
|
|
93
|
+
await installDevPackage(refPath, 'tap')
|
|
94
|
+
await installDevPackage(refPath, '@tremho/tap-assert')
|
|
95
|
+
await installPackage(refPath, '@tremho/inverse-y')
|
|
66
96
|
}
|
|
67
97
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
98
|
+
function localConfig (clientType: string, refpath: string): void {
|
|
99
|
+
const config: any = {
|
|
100
|
+
port: 8081,
|
|
101
|
+
rebuildFunctionsOnChange: false,
|
|
102
|
+
refreshBrowserOnFunctionChange: false,
|
|
103
|
+
refreshBrowserOnWebrootChange: false
|
|
104
|
+
}
|
|
105
|
+
if (clientType === 'react') {
|
|
106
|
+
config.esbuild = {
|
|
107
|
+
watch: false,
|
|
108
|
+
entryPoints: [
|
|
109
|
+
'app/app.tsx'
|
|
110
|
+
],
|
|
111
|
+
outdir: 'webroot'
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
const content = JSON.stringify(config, null, 2)
|
|
116
|
+
fs.writeFileSync(path.join(refpath, 'localServerConfig.json'), content)
|
|
117
|
+
}
|
|
75
118
|
}
|
package/src/commands/package.ts
CHANGED
|
@@ -169,7 +169,9 @@ async function packageFunction (funcName: string): Promise<number> {
|
|
|
169
169
|
}
|
|
170
170
|
const publishUrl = pubInfo.url ?? '/'
|
|
171
171
|
|
|
172
|
-
|
|
172
|
+
/* eslint-disable */
|
|
173
|
+
const stage = publishUrl.substring(publishUrl.lastIndexOf('/')) + 1
|
|
174
|
+
/* eslint-enable */
|
|
173
175
|
setWebroot(webrootExport.webrootMethod, webrootExport.webrootBaseUrl)
|
|
174
176
|
setAws(stage, publishUrl)
|
|
175
177
|
// console.log("getServiceSettings", getServiceSettings())
|
package/src/commands/publish.ts
CHANGED
|
@@ -25,7 +25,7 @@ import { resolvePaths } from '../lib/pathResolve'
|
|
|
25
25
|
import { gatherFunctionDefinitions } from '../lib/openAPI/ApiBuildCollector'
|
|
26
26
|
import { delay } from '../lib/utils'
|
|
27
27
|
import { addBuiltInDefinitions, MakeBuiltinApiDoc } from './builtin/ApiDocMaker'
|
|
28
|
-
import { DeployApiBuiltin
|
|
28
|
+
import { DeployApiBuiltin /*, DeployRootFileserves, DeployWebrootBuiltIn */ } from './builtin/BuiltInHandler'
|
|
29
29
|
import { esbuilder } from '../lib/ESBuild'
|
|
30
30
|
import { getIdSrc, getIdDelimiter } from '../lib/IdSrc'
|
|
31
31
|
import { ExportWebroot, getWebrootSettings } from './builtin/ExportWebroot'
|
|
@@ -35,9 +35,9 @@ import updateDeployedPermissions from './actions/updateDeployedPermissions'
|
|
|
35
35
|
let projectPaths: any
|
|
36
36
|
|
|
37
37
|
export async function doPublishAsync (args: string[] = []): Promise<number> {
|
|
38
|
-
const stageName = 'Dev'
|
|
39
|
-
const retCode = await doDeployAsync(args)
|
|
40
|
-
if (retCode) return retCode
|
|
38
|
+
const stageName: string = 'Dev'
|
|
39
|
+
const retCode: number | undefined = await doDeployAsync(args)
|
|
40
|
+
if (retCode !== undefined) return retCode
|
|
41
41
|
// const retCode = 0
|
|
42
42
|
|
|
43
43
|
projectPaths = resolvePaths()
|
|
@@ -7,7 +7,7 @@ import { resolvePaths } from '../lib/pathResolve'
|
|
|
7
7
|
import express from 'express'
|
|
8
8
|
import { gatherFunctionDefinitions } from '../lib/openAPI/ApiBuildCollector'
|
|
9
9
|
import { buildOpenApi } from '../lib/openAPI/openApiConstruction'
|
|
10
|
-
import {
|
|
10
|
+
import { Log } from '@tremho/inverse-y'
|
|
11
11
|
import { parseConstraints } from '../lib/TypeCheck'
|
|
12
12
|
|
|
13
13
|
const clearModule = require('clear-module')
|
|
@@ -46,14 +46,16 @@ export function functionBinder (): void {
|
|
|
46
46
|
if (n !== -1) entryRoot = entryRoot.substring(0, n) + '/*'
|
|
47
47
|
|
|
48
48
|
const callHandler = (def: any, req: any, res: any): void => {
|
|
49
|
-
console.log('>>>>>>> YES WE ARE HERE<<<<<<<<<')
|
|
49
|
+
// console.log('>>>>>>> YES WE ARE HERE<<<<<<<<<')
|
|
50
50
|
if (Buffer.isBuffer(req.body)) {
|
|
51
51
|
const buffer: Buffer = req.body
|
|
52
|
+
/* eslint-disable */
|
|
52
53
|
console.log('body is a buffer at callHandler. Length is ' + buffer.byteLength)
|
|
53
54
|
console.log('First 16 bytes:', buffer.subarray(0, 16).toString('hex'))
|
|
55
|
+
/* eslint-enable */
|
|
54
56
|
}
|
|
55
57
|
const message = testPathRoute(def, req)
|
|
56
|
-
if (message) {
|
|
58
|
+
if (message !== '') {
|
|
57
59
|
return handleResponse(res, { statusCode: 403, body: { error: message } })
|
|
58
60
|
}
|
|
59
61
|
const event = requestToEvent(def, req)
|
|
@@ -91,11 +93,11 @@ export function functionBinder (): void {
|
|
|
91
93
|
}
|
|
92
94
|
|
|
93
95
|
// compare request route to the definition of this function to see if it matches
|
|
94
|
-
function testPathRoute (def: any, req: any) {
|
|
96
|
+
function testPathRoute (def: any, req: any): string {
|
|
95
97
|
let path = req.path
|
|
96
98
|
let pathMap = def.pathMap
|
|
97
|
-
if (path.endsWith('/')) path = path.substring(0, path.length - 1)
|
|
98
|
-
if (pathMap.endsWith('/')) pathMap = pathMap.substring(0, path.length - 1)
|
|
99
|
+
if (path.endsWith('/') === true) path = path.substring(0, path.length - 1)
|
|
100
|
+
if (pathMap.endsWith('/') === true) pathMap = pathMap.substring(0, path.length - 1)
|
|
99
101
|
const defParts = pathMap.split('/')
|
|
100
102
|
const pathParts = path.split('/')
|
|
101
103
|
|
|
@@ -109,7 +111,7 @@ function testPathRoute (def: any, req: any) {
|
|
|
109
111
|
return message
|
|
110
112
|
}
|
|
111
113
|
|
|
112
|
-
function performParameterTesting (def: any, event: any) {
|
|
114
|
+
function performParameterTesting (def: any, event: any): void {
|
|
113
115
|
// for every parameter defined in def
|
|
114
116
|
// find the corresponding value in event.parameters (by name)
|
|
115
117
|
// find the constraints for that parameter in def
|
|
@@ -118,7 +120,7 @@ function performParameterTesting (def: any, event: any) {
|
|
|
118
120
|
const constraints = Array.isArray(pdef.constraints) ? parseConstraints(pdef.type, pdef.constraints.join('\n'), '\n') : undefined
|
|
119
121
|
let value: any = event.parameters[pdef.name]
|
|
120
122
|
if (value === undefined) {
|
|
121
|
-
if (
|
|
123
|
+
if (pdef.required !== true) return // okay to be undefined
|
|
122
124
|
}
|
|
123
125
|
if (pdef.type === 'number') value = Number(value) // TODO: Type coercion for all types
|
|
124
126
|
constraints?.test(value)
|
|
@@ -126,13 +128,13 @@ function performParameterTesting (def: any, event: any) {
|
|
|
126
128
|
}
|
|
127
129
|
|
|
128
130
|
// returns 'text', 'json', or undefined
|
|
129
|
-
function bodyTypeCollapse (type: string) {
|
|
131
|
+
function bodyTypeCollapse (type: string): string | undefined {
|
|
130
132
|
const options: any = {
|
|
131
133
|
text: 'text',
|
|
132
134
|
json: 'json',
|
|
133
135
|
'application/json': 'json'
|
|
134
136
|
}
|
|
135
|
-
if (type) {
|
|
137
|
+
if (type !== '') {
|
|
136
138
|
type = type.toLowerCase().trim()
|
|
137
139
|
if (type.substring(0, 5) === 'text/') return 'text'
|
|
138
140
|
return options[type]
|
|
@@ -189,11 +191,13 @@ function requestToEvent (def: any, req: any): any {
|
|
|
189
191
|
req.body = Buffer.from(req.body)
|
|
190
192
|
}
|
|
191
193
|
}
|
|
194
|
+
/* eslint-disable */
|
|
192
195
|
if (Buffer.isBuffer(req.body)) {
|
|
193
196
|
const buffer: Buffer = req.body
|
|
194
197
|
console.log('body is buffer eventToRequest, Length = ' + buffer.byteLength)
|
|
195
198
|
console.log('First 16 bytes:', buffer.subarray(0, 16).toString('hex'))
|
|
196
199
|
}
|
|
200
|
+
/* eslint-enable */
|
|
197
201
|
const template = def.pathMap
|
|
198
202
|
|
|
199
203
|
// unpack weird choice of express when passed from curl.
|
|
@@ -23,7 +23,7 @@ async function test (t: any): Promise<void> {
|
|
|
23
23
|
fs.rmSync('QSTest', { recursive: true })
|
|
24
24
|
}
|
|
25
25
|
// init
|
|
26
|
-
await doInit('QSTest', true)
|
|
26
|
+
await doInit('QSTest', '', true)
|
|
27
27
|
|
|
28
28
|
// verify project got made
|
|
29
29
|
assert.isTrue(fs.existsSync('QSTest'), 'created test project')
|
package/src/lib/IdSrc.ts
CHANGED
|
@@ -39,9 +39,9 @@ export function decoratedName (name: string): string {
|
|
|
39
39
|
return dname
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
export async function getAccountId () {
|
|
42
|
+
export async function getAccountId (): Promise<string | undefined> {
|
|
43
43
|
const client = new STSClient({} as any)
|
|
44
44
|
const command: any = new GetCallerIdentityCommand({})
|
|
45
45
|
const response: any = await client.send(command)
|
|
46
|
-
return response.Account // This is your AWS account ID
|
|
46
|
+
return response.Account ?? '' // This is your AWS account ID
|
|
47
47
|
}
|
package/src/lib/TypeCheck.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Module for Constraint definitions and TypeCheck support
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
+
/* eslint-disable */ // too screwed up. This file originated in an old JS project and was converted to TS quickly. TS-Standard is too restrictive for the style.
|
|
5
6
|
/**
|
|
6
7
|
* Enumeration of basic types
|
|
7
8
|
*
|
|
@@ -1166,3 +1167,5 @@ export function validate (
|
|
|
1166
1167
|
}
|
|
1167
1168
|
return ok
|
|
1168
1169
|
}
|
|
1170
|
+
|
|
1171
|
+
/* eslint-enable */
|
|
@@ -7,8 +7,8 @@ import path from 'path'
|
|
|
7
7
|
import { resolvePaths } from '../pathResolve'
|
|
8
8
|
import * as ac from 'ansi-colors'
|
|
9
9
|
import { decoratedName, getAccountId } from '../IdSrc'
|
|
10
|
-
import {
|
|
11
|
-
import { parseConstraints
|
|
10
|
+
import { getSettings } from '../LiftConfig'
|
|
11
|
+
import { parseConstraints } from '../TypeCheck'
|
|
12
12
|
import yaml from 'js-yaml'
|
|
13
13
|
|
|
14
14
|
export async function buildOpenApi (
|
|
@@ -117,14 +117,15 @@ export async function buildOpenApi (
|
|
|
117
117
|
}
|
|
118
118
|
|
|
119
119
|
function addTypeSchema (builder: any, schemaName: string, schema: any): void {
|
|
120
|
-
let primType = ''
|
|
121
|
-
let type = schema?.type ?? 'Empty'
|
|
120
|
+
let primType: string = ''
|
|
121
|
+
let type: string = schema?.type ?? 'Empty'
|
|
122
122
|
if (type === 'empty') type = 'Empty' // fix case
|
|
123
|
-
const isArray = (type.endsWith('[]'))
|
|
123
|
+
const isArray: boolean = (type.endsWith('[]'))
|
|
124
124
|
if (isArray) type = type.substring(0, type.length - 2)
|
|
125
125
|
if (type === 'string' || type === 'number' || type === 'object') primType = type
|
|
126
|
-
const
|
|
127
|
-
const
|
|
126
|
+
// const sm: string = schema?.mime
|
|
127
|
+
// const mime: string = sm !== '' ?? primType !== '' ? 'text/plain' : 'application/json'
|
|
128
|
+
const sref: any = primType !== '' ? { type: primType } : { $ref: '#/components/schemas/' + type }
|
|
128
129
|
let ref: any = {}
|
|
129
130
|
if (isArray) {
|
|
130
131
|
ref = { type: 'array', items: sref }
|
|
@@ -139,21 +140,22 @@ function addTypeSchema (builder: any, schemaName: string, schema: any): void {
|
|
|
139
140
|
const constraints = schema.type !== 'object' && Array.isArray(schema?.constraints) ? parseConstraints(schema.type, schema.constraints.join('\n'), '\n') : undefined
|
|
140
141
|
|
|
141
142
|
const cdesc = (constraints != null) ? '\n - ' + (constraints.describe() ?? '').split('\n').join('\n - ') : ''
|
|
142
|
-
let description = schema.description
|
|
143
|
-
if (cdesc) description += cdesc
|
|
143
|
+
let description: string = schema.description
|
|
144
|
+
if (cdesc !== '') description += cdesc
|
|
144
145
|
|
|
145
146
|
ref.description = description
|
|
146
147
|
|
|
147
148
|
const required: string[] = []
|
|
148
149
|
|
|
149
|
-
if (ref.properties) {
|
|
150
|
-
|
|
150
|
+
if ((ref.properties as boolean)) {
|
|
151
|
+
const sp: any = schema.properties ?? {}
|
|
152
|
+
for (const [propName, propDef] of Object.entries(sp)) {
|
|
151
153
|
const pda = propDef as any
|
|
152
154
|
const constraints = Array.isArray(pda?.constraints) ? parseConstraints(pda.type, pda.constraints.join('\n'), '\n') : undefined
|
|
153
155
|
|
|
154
156
|
const cdesc = (constraints != null) ? '\n - ' + (constraints.describe() ?? '').split('\n').join('\n - ') : ''
|
|
155
|
-
let description = (propDef as any).description
|
|
156
|
-
if (cdesc) description += cdesc
|
|
157
|
+
let description: string = (propDef as any).description
|
|
158
|
+
if (cdesc !== '') description += cdesc
|
|
157
159
|
|
|
158
160
|
// if(constraints) {
|
|
159
161
|
// console.log("schema definition for "+schemaName+', prop '+propName)
|
|
@@ -169,7 +171,8 @@ function addTypeSchema (builder: any, schemaName: string, schema: any): void {
|
|
|
169
171
|
ref.properties[propName] = propSchema
|
|
170
172
|
|
|
171
173
|
// Only mark as required if declared explicitly
|
|
172
|
-
|
|
174
|
+
const sr: string = schema.required ?? ''
|
|
175
|
+
if (sr !== '' && sr.includes(propName)) {
|
|
173
176
|
required.push(propName)
|
|
174
177
|
}
|
|
175
178
|
}
|
|
@@ -185,13 +188,14 @@ async function addFunctionMethod (pathDef: any, method: string, def: any, includ
|
|
|
185
188
|
const retDef: any = (def.returns)['200']
|
|
186
189
|
const content: any = {}
|
|
187
190
|
let primType = ''
|
|
188
|
-
let type = retDef?.type ?? 'Empty'
|
|
191
|
+
let type: string = retDef?.type ?? 'Empty'
|
|
189
192
|
if (type === 'empty') type = 'Empty' // fix case
|
|
190
|
-
const isArray = (type.endsWith('[]'))
|
|
193
|
+
const isArray: boolean = (type.endsWith('[]'))
|
|
191
194
|
if (isArray) type = type.substring(0, type.length - 2)
|
|
192
195
|
if (type === 'string' || type === 'number' || type === 'object') primType = type
|
|
193
|
-
const
|
|
194
|
-
const
|
|
196
|
+
const rdm: string = retDef?.mime ?? ''
|
|
197
|
+
const mime: string = rdm !== '' ? rdm : primType !== '' ? 'text/plain' : 'application/json'
|
|
198
|
+
const ref: any = primType !== '' ? { type: primType } : { $ref: '#/components/schemas/' + type }
|
|
195
199
|
let schema: any
|
|
196
200
|
if (isArray) {
|
|
197
201
|
schema = { type: 'array', items: ref }
|
|
@@ -202,11 +206,12 @@ async function addFunctionMethod (pathDef: any, method: string, def: any, includ
|
|
|
202
206
|
schema
|
|
203
207
|
}
|
|
204
208
|
|
|
205
|
-
const region = getSettings()?.awsPreferredRegion ?? ''
|
|
206
|
-
const accountId = await getAccountId()
|
|
207
|
-
const decName = decoratedName(def.name)
|
|
209
|
+
const region: string = getSettings()?.awsPreferredRegion ?? ''
|
|
210
|
+
const accountId: string = await getAccountId() ?? ''
|
|
211
|
+
const decName: string = decoratedName(def.name) ?? ''
|
|
208
212
|
|
|
209
|
-
const
|
|
213
|
+
const bodyType: string = def.bodyType ?? ''
|
|
214
|
+
const isBinary: boolean = bodyType.startsWith('text') && bodyType.endsWith('json')
|
|
210
215
|
|
|
211
216
|
const methData = {
|
|
212
217
|
summary: def.name,
|
|
@@ -251,18 +256,18 @@ async function addFunctionMethod (pathDef: any, method: string, def: any, includ
|
|
|
251
256
|
if (!includeCORS) {
|
|
252
257
|
// get the other response code declarations
|
|
253
258
|
for (const rcode of Object.getOwnPropertyNames(def.returns)) {
|
|
254
|
-
if (rcode
|
|
259
|
+
if (rcode !== '200') {
|
|
255
260
|
const retDef = def.returns[rcode] ?? {}
|
|
256
261
|
|
|
257
262
|
const content: any = {}
|
|
258
|
-
let primType = ''
|
|
259
|
-
let type = retDef?.type ?? 'Empty'
|
|
263
|
+
let primType: string = ''
|
|
264
|
+
let type: string = retDef?.type ?? 'Empty'
|
|
260
265
|
if (type === 'empty') type = 'Empty' // fix case
|
|
261
|
-
const isArray = (type.endsWith('[]'))
|
|
266
|
+
const isArray: boolean = (type.endsWith('[]'))
|
|
262
267
|
if (isArray) type = type.substring(0, type.length - 2)
|
|
263
268
|
if (type === 'string' || type === 'number' || type === 'object') primType = type
|
|
264
|
-
const mime = retDef?.mime
|
|
265
|
-
const ref = primType ? { type: primType } : { $ref: '#/components/schemas/' + type }
|
|
269
|
+
const mime: string = retDef?.mime.length > 0 ? primType?.length > 0 ? 'text/plain' : 'application/json' : ''
|
|
270
|
+
const ref: any = primType !== '' ? { type: primType } : { $ref: '#/components/schemas/' + type }
|
|
266
271
|
let schema: any
|
|
267
272
|
if (isArray) {
|
|
268
273
|
schema = { type: 'array', items: ref }
|
|
@@ -347,8 +352,8 @@ function addParameter (pathDef: any, param: any): void {
|
|
|
347
352
|
const constraints = Array.isArray(param.constraints) ? parseConstraints(param.type, param.constraints.join('\n'), '\n') : undefined
|
|
348
353
|
|
|
349
354
|
const cdesc = (constraints != null) ? '\n - ' + (constraints.describe() ?? '').split('\n').join('\n - ') : ''
|
|
350
|
-
let description = param.description
|
|
351
|
-
if (cdesc) description += cdesc
|
|
355
|
+
let description: string = param.description
|
|
356
|
+
if (cdesc !== '') description += cdesc
|
|
352
357
|
|
|
353
358
|
// don't declare parameters marked as 'body'. OpenAPI doesn't support that.
|
|
354
359
|
if (param.in === 'path' || param.in === 'query') {
|
|
@@ -356,7 +361,7 @@ function addParameter (pathDef: any, param: any): void {
|
|
|
356
361
|
in: param.in,
|
|
357
362
|
name: param.name,
|
|
358
363
|
description,
|
|
359
|
-
example: example
|
|
364
|
+
example: example ?? undefined,
|
|
360
365
|
required,
|
|
361
366
|
schema: schemaType(deflt, type, true)
|
|
362
367
|
})
|
|
@@ -387,6 +392,6 @@ function schemaType (deflt: string | undefined, namedType: string, innerOnly: bo
|
|
|
387
392
|
}
|
|
388
393
|
if (type === 'int') type = 'integer'
|
|
389
394
|
if (type === 'bool') type = 'boolean'
|
|
390
|
-
if (
|
|
395
|
+
if (deflt === null || deflt === '') deflt = undefined
|
|
391
396
|
return innerOnly ? { type, format, example: deflt } : { schema: { type, format, example: deflt } }
|
|
392
397
|
}
|
package/src/lift.ts
CHANGED
|
@@ -37,7 +37,7 @@ async function processCommand (): Promise<void> {
|
|
|
37
37
|
await doDoctor()
|
|
38
38
|
return
|
|
39
39
|
case 'init':
|
|
40
|
-
return await doInit(args[0] ?? '')
|
|
40
|
+
return await doInit(args[0] ?? '', args[1]) // folder, clientType (react or js default js)
|
|
41
41
|
case 'create':
|
|
42
42
|
return doCreate(args[0] ?? '')
|
|
43
43
|
case 'build': {
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import {createRoot} from 'react-dom/client'
|
|
3
|
+
import { BrowserRouter, Route, Routes } from 'react-router-dom'
|
|
4
|
+
|
|
5
|
+
import MainPage from './MainPage'
|
|
6
|
+
|
|
7
|
+
let pageComp = <MainPage />
|
|
8
|
+
|
|
9
|
+
const routes = {
|
|
10
|
+
home: <MainPage />
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// route to the page directed by the ?page= query parameter
|
|
14
|
+
const params = new URLSearchParams(document.location.search)
|
|
15
|
+
// console.log('search params', params)
|
|
16
|
+
let page = params.get("page")?.toLowerCase().trim()
|
|
17
|
+
// console.log('page='+page)
|
|
18
|
+
// if(!page && document.cookie.indexOf("idtbd=") !== -1) {
|
|
19
|
+
// (IDTBD as any).hasCookie = true
|
|
20
|
+
// }
|
|
21
|
+
pageComp = routes[page] ?? <MainPage />
|
|
22
|
+
|
|
23
|
+
const container = document.getElementById('root')
|
|
24
|
+
const root = createRoot(container)
|
|
25
|
+
|
|
26
|
+
root.render(
|
|
27
|
+
<>
|
|
28
|
+
<BrowserRouter>
|
|
29
|
+
<Routes>
|
|
30
|
+
<Route path = '/index.html' element= {pageComp} />
|
|
31
|
+
<Route path = '/' element= {pageComp} />
|
|
32
|
+
<Route path = '/Dev/index.html' element= {pageComp} />
|
|
33
|
+
<Route path = '/Dev/+' element= {pageComp} />
|
|
34
|
+
<Route path = '/vod/index.html' element= {pageComp} />
|
|
35
|
+
<Route path = '/vod/+' element= {pageComp} />
|
|
36
|
+
</Routes>
|
|
37
|
+
</BrowserRouter>
|
|
38
|
+
</>
|
|
39
|
+
)
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
const root = document.getElementById('root')
|
|
2
|
+
const label = document.createElement('H1');
|
|
3
|
+
const message = document.createElement('p');
|
|
3
4
|
|
|
4
|
-
|
|
5
|
+
label.innerText = 'Hello MistLift'
|
|
6
|
+
message.innerText = "This page content is generated from the default javascript MistLift page in webroot/app.js"
|
|
5
7
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
*/
|
|
8
|
+
root.appendChild(label);
|
|
9
|
+
root.appendChild(message)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"initQuestions.js","sourceRoot":"","sources":["../../../src/commands/actions/initQuestions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"makePackageJson.js","sourceRoot":"","sources":["../../../src/commands/actions/makePackageJson.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"setupPackageJson.js","sourceRoot":"","sources":["../../../src/commands/actions/setupPackageJson.ts"],"names":[],"mappings":";AAAA,6CAA6C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE7C,2CAA4B;AAC5B,uCAAwB;AACxB,6DAAyD;AAEzD;;GAEG;AACH,SAAgB,iBAAiB,CAC/B,WAAmB;;IAEnB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;IACtD,IAAI,OAAO,GAAQ,EAAE,CAAA;IACrB,IAAI,CAAC;QAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;IAAC,CAAC;IAAC,WAAM,CAAC,CAAA,CAAC;IAC1E,MAAM,MAAM,GAAG,MAAA,OAAO,CAAC,MAAM,mCAAI,EAAE,CAAA;IACnC,MAAM,CAAC,IAAI,GAAG,WAAW,CAAA;IACzB,OAAO,CAAC,MAAM,GAAG,MAAM,CAAA;AACzB,CAAC;AATD,8CASC;AACD,SAAsB,cAAc,CAClC,WAAmB,EACnB,WAAmB;;QAEnB,MAAM,IAAA,+BAAc,EAAC,KAAK,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,CAAA;IACpE,CAAC;CAAA;AALD,wCAKC;AAED,SAAsB,iBAAiB,CACrC,WAAmB,EACnB,WAAmB;;QAEnB,MAAM,IAAA,+BAAc,EAAC,KAAK,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,CAAA;IAClF,CAAC;CAAA;AALD,8CAKC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"updateDeployedPermissions.js","sourceRoot":"","sources":["../../../src/commands/actions/updateDeployedPermissions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
|