cob-cli 2.25.0 → 2.27.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/bin/cob-cli.js +6 -7
- package/bin/handleAutoComplete.js +3 -4
- package/lib/commands/customize.js +216 -63
- package/package.json +3 -2
- package/.gitmodules +0 -27
- package/.vscode/launch.json +0 -106
- package/README.Development.md +0 -294
- package/README.publish.md +0 -10
- package/customizations/backend.email.js +0 -10
- package/customizations/backend.js +0 -14
- package/customizations/backend.updateField.js +0 -11
- package/customizations/backend.vuepress.js +0 -35
- package/customizations/dashboard.dash.js +0 -14
- package/customizations/dashboard.js +0 -14
- package/customizations/dashboard.simple.js +0 -12
- package/customizations/dashboard.vue.empty.js +0 -12
- package/customizations/dashboard.vue.grid.js +0 -10
- package/customizations/dashboard.vue.js +0 -14
- package/customizations/dashboard.vue.menuAndGrid.js +0 -10
- package/customizations/frontend.common.js +0 -16
- package/customizations/frontend.easy.js +0 -16
- package/customizations/frontend.formatList.currency.js +0 -17
- package/customizations/frontend.formatList.js +0 -13
- package/customizations/frontend.js +0 -14
- package/customizations/importer.js +0 -10
- package/customizations/keywords.audit.js +0 -18
- package/customizations/keywords.calc.js +0 -18
- package/customizations/keywords.image.js +0 -16
- package/customizations/keywords.js +0 -17
- package/customizations/keywords.kibana.js +0 -16
- package/customizations/keywords.log.js +0 -18
- package/customizations/keywords.styleResults.js +0 -18
- package/lib/task_lists/customize_copy.js +0 -51
- package/lib/task_lists/customize_mergeFiles.js +0 -42
- package/lib/task_lists/customize_questions.js +0 -40
- package/templates/backend/vuepress/integrationm/actions/getVuePressDoc.groovy +0 -74
- package/templates/backend/vuepress/integrationm/actions/getVuePressSidebarConfig.groovy +0 -42
- package/templates/backend/vuepress/integrationm/actions/getVuePressSidebarRootElements.groovy +0 -17
- package/templates/backend/vuepress/others/vuepress/definition_contents_v234.json +0 -619
- package/templates/backend/vuepress/others/vuepress/nginx/README.md +0 -28
- package/templates/backend/vuepress/others/vuepress/package-lock.json +0 -29656
- package/templates/backend/vuepress/others/vuepress/package.json +0 -24
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/components/DescriptVideo.vue +0 -22
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/components/Graph.vue +0 -124
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/components/ReadingTime.vue +0 -26
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/components/References.vue +0 -228
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/components/RestrictedContent.vue +0 -77
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/config.js +0 -101
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/config.json +0 -31
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/enhanceApp.js +0 -14
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/nav/getNavTranslated.js +0 -52
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/plugins/References.js +0 -96
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/public/Logo-Cult-of-Bits-400x400-1.png +0 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/public/favicon-cob.png +0 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/public/logo.png +0 -0
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/styles/index.styl +0 -39
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/styles/palette.styl +0 -17
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/LICENSE +0 -21
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/README.md +0 -11
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/AlgoliaSearchBox.vue +0 -172
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/DropdownLink.vue +0 -252
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/DropdownTransition.vue +0 -33
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/Home.vue +0 -134
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/NavLink.vue +0 -98
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/NavLinks.vue +0 -165
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/Navbar.vue +0 -140
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/Page.vue +0 -31
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/PageEdit.vue +0 -119
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/PageNav.vue +0 -163
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/Sidebar.vue +0 -64
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/SidebarButton.vue +0 -40
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/SidebarGroup.vue +0 -144
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/SidebarLink.vue +0 -140
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/SidebarLinks.vue +0 -114
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/global-components/Badge.vue +0 -44
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/global-components/CodeBlock.vue +0 -41
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/global-components/CodeGroup.vue +0 -120
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/index.js +0 -59
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/layouts/404.vue +0 -30
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/layouts/Layout.vue +0 -151
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/noopModule.js +0 -1
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/package.json +0 -44
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/styles/arrow.styl +0 -22
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/styles/code.styl +0 -137
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/styles/config.styl +0 -1
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/styles/custom-blocks.styl +0 -44
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/styles/index.styl +0 -202
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/styles/mobile.styl +0 -37
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/styles/toc.styl +0 -3
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/styles/wrapper.styl +0 -10
- package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/util/index.js +0 -244
- package/templates/dashboards/cob-dashboard-html/demoDashboard.html +0 -18
- package/templates/dashboards/cob-dashboard-vue/package-lock.json +0 -25020
- package/templates/dashboards/cob-dashboard-vue/package.json +0 -21
- package/templates/dashboards/cob-dashboard-vue/src/App.vue +0 -26
- package/templates/dashboards/cob-dashboard-vue/src/dashboard.html +0 -31
- package/templates/dashboards/cob-dashboard-vue/src/main.js +0 -12
- package/templates/dashboards/cob-dashboard-vue/src/plugins/cobUiVueComponents.js +0 -6
- package/templates/dashboards/cob-dashboard-vue/src/plugins/vuetify.js +0 -9
- package/templates/dashboards/cob-dashboard-vue/vue.config.js +0 -104
- package/templates/dashboards/dash/dist/css/app.7b16c01a.css +0 -11
- package/templates/dashboards/dash/dist/dashboard.html +0 -25
- package/templates/dashboards/dash/dist/fonts/fa-brands-400.a78ffbbe.ttf +0 -0
- package/templates/dashboards/dash/dist/fonts/fa-brands-400.cd2b4095.woff2 +0 -0
- package/templates/dashboards/dash/dist/fonts/fa-regular-400.b1a1bebb.ttf +0 -0
- package/templates/dashboards/dash/dist/fonts/fa-regular-400.e8a1ba41.woff2 +0 -0
- package/templates/dashboards/dash/dist/fonts/fa-solid-900.55b416a8.woff2 +0 -0
- package/templates/dashboards/dash/dist/fonts/fa-solid-900.73820155.ttf +0 -0
- package/templates/dashboards/dash/dist/fonts/fa-v4compatibility.0d6f5f18.ttf +0 -0
- package/templates/dashboards/dash/dist/fonts/fa-v4compatibility.786e6b33.woff2 +0 -0
- package/templates/dashboards/dash/dist/js/app.13b950c8.js +0 -199
- package/templates/dashboards/dash/dist/js/app.13b950c8.js.map +0 -1
- package/templates/dashboards/dash/package-lock.json +0 -22646
- package/templates/dashboards/dash/package.json +0 -27
- package/templates/dashboards/dash/src/App.vue +0 -124
- package/templates/dashboards/dash/src/assets/css/all.min.css +0 -6
- package/templates/dashboards/dash/src/assets/webfonts/fa-brands-400.ttf +0 -0
- package/templates/dashboards/dash/src/assets/webfonts/fa-brands-400.woff2 +0 -0
- package/templates/dashboards/dash/src/assets/webfonts/fa-regular-400.ttf +0 -0
- package/templates/dashboards/dash/src/assets/webfonts/fa-regular-400.woff2 +0 -0
- package/templates/dashboards/dash/src/assets/webfonts/fa-solid-900.ttf +0 -0
- package/templates/dashboards/dash/src/assets/webfonts/fa-solid-900.woff2 +0 -0
- package/templates/dashboards/dash/src/assets/webfonts/fa-v4compatibility.ttf +0 -0
- package/templates/dashboards/dash/src/assets/webfonts/fa-v4compatibility.woff2 +0 -0
- package/templates/dashboards/dash/src/collector.js +0 -222
- package/templates/dashboards/dash/src/components/Attention.vue +0 -30
- package/templates/dashboards/dash/src/components/Board.vue +0 -35
- package/templates/dashboards/dash/src/components/Calendar.vue +0 -422
- package/templates/dashboards/dash/src/components/Dashboard.vue +0 -27
- package/templates/dashboards/dash/src/components/Filter.vue +0 -68
- package/templates/dashboards/dash/src/components/Kibana.vue +0 -138
- package/templates/dashboards/dash/src/components/Label.vue +0 -15
- package/templates/dashboards/dash/src/components/Menu.vue +0 -44
- package/templates/dashboards/dash/src/components/Totals.vue +0 -49
- package/templates/dashboards/dash/src/components/TotalsValue.vue +0 -59
- package/templates/dashboards/dash/src/components/shared/Instance.vue +0 -64
- package/templates/dashboards/dash/src/components/shared/Waiting.vue +0 -25
- package/templates/dashboards/dash/src/dashboard.html +0 -39
- package/templates/dashboards/dash/src/definition_dashboard_v0.json +0 -924
- package/templates/dashboards/dash/src/definition_dashboard_v1.json +0 -1
- package/templates/dashboards/dash/src/input.css +0 -9
- package/templates/dashboards/dash/src/main.js +0 -11
- package/templates/dashboards/dash/src/model/ComponentStatePersistence.js +0 -66
- package/templates/dashboards/dash/src/output.css +0 -314245
- package/templates/dashboards/dash/src/test_collector.js +0 -3719
- package/templates/dashboards/dash/src/utils/EsInstanceUtils.js +0 -8
- package/templates/dashboards/dash/tailwind.config.js +0 -12
- package/templates/dashboards/dash/vue.config.js +0 -104
- package/templates/frontend/common/templates/frontend/common/css/_dualColumn.css +0 -46
- package/templates/frontend/common/templates/frontend/common/css/_global.css +0 -19
- package/templates/frontend/common/templates/frontend/common/css/_hidden.css +0 -13
- package/templates/frontend/common/templates/frontend/common/css/_history.css +0 -13
- package/templates/frontend/common/templates/frontend/common/css/_mobile.css +0 -125
- package/templates/frontend/common/templates/frontend/common/css/customizations.__MERGE__.css +0 -5
- package/templates/frontend/common/templates/frontend/common/js/cob/_disable_save_onSubdetail.js +0 -11
- package/templates/frontend/common/templates/frontend/common/js/cob/_group_references.js +0 -22
- package/templates/frontend/common/templates/frontend/common/js/cob/_show_hidden.js +0 -35
- package/templates/frontend/common/templates/frontend/common/js/customizations2.__MERGE__.js +0 -3
- package/templates/frontend/common/templates/frontend/common/package.json +0 -3
- package/templates/frontend/easy/css/_easy/googlefonts.css +0 -360
- package/templates/frontend/easy/css/_easy/vuetify.cob-scoped.css +0 -10488
- package/templates/frontend/easy/js/_easy/lib/axios.min.js +0 -9
- package/templates/frontend/easy/js/_easy/lib/marked.min.js +0 -6
- package/templates/frontend/easy/js/_easy/lib/vue.js +0 -11912
- package/templates/frontend/easy/js/_easy/lib/vue.min.js +0 -6
- package/templates/frontend/easy/js/_easy/lib/vuetify.min.js +0 -6
- package/templates/frontend/easy/js/customizations2.__MERGE__.js +0 -22
- package/templates/frontend/easy/webapp/.browserslistrc +0 -2
- package/templates/frontend/easy/webapp/.eslintrc.js +0 -17
- package/templates/frontend/easy/webapp/README.md +0 -60
- package/templates/frontend/easy/webapp/babel.config.js +0 -5
- package/templates/frontend/easy/webapp/dist/css/app.a4fb91f8.css +0 -1
- package/templates/frontend/easy/webapp/dist/dashboard.html +0 -13
- package/templates/frontend/easy/webapp/dist/js/app.63a57dcd.js +0 -2
- package/templates/frontend/easy/webapp/dist/js/app.63a57dcd.js.map +0 -1
- package/templates/frontend/easy/webapp/package-lock.json +0 -32986
- package/templates/frontend/easy/webapp/package.json +0 -32
- package/templates/frontend/easy/webapp/postcss.config.js +0 -5
- package/templates/frontend/easy/webapp/public/dashboard.html +0 -13
- package/templates/frontend/easy/webapp/src/App.vue +0 -181
- package/templates/frontend/easy/webapp/src/assets/logo.png +0 -0
- package/templates/frontend/easy/webapp/src/components/HelloWorld.vue +0 -59
- package/templates/frontend/easy/webapp/src/components/PermBuilder.vue +0 -163
- package/templates/frontend/easy/webapp/src/components/PlanExecutor.vue +0 -225
- package/templates/frontend/easy/webapp/src/components/ProductPermBuilder.vue +0 -95
- package/templates/frontend/easy/webapp/src/components/RmDefinitionChooser.vue +0 -59
- package/templates/frontend/easy/webapp/src/components/RmDomainChooser.vue +0 -60
- package/templates/frontend/easy/webapp/src/components/RoleBuilder.vue +0 -73
- package/templates/frontend/easy/webapp/src/main.js +0 -19
- package/templates/frontend/easy/webapp/src/perm-templates.js +0 -189
- package/templates/frontend/easy/webapp/src/perms.js +0 -197
- package/templates/frontend/easy/webapp/vue.config.js +0 -66
- package/templates/frontend/formatList/currency/css/_format_currency.css +0 -11
- package/templates/frontend/formatList/currency/css/customizations.__MERGE__.css +0 -1
- package/templates/frontend/formatList/currency/js/cob/_format_currency.js +0 -11
- package/templates/frontend/formatList/currency/js/customizations2.__MERGE__.js +0 -1
- package/templates/frontend/formatList/currency/package.json +0 -3
- package/templates/gitignore +0 -14
- package/templates/keywords/audit/backend/scripts/_audit.groovy +0 -78
- package/templates/keywords/audit/frontend/js/cob/_audit.js +0 -24
- package/templates/keywords/audit/frontend/js/customizations2.__MERGE__.js +0 -1
- package/templates/keywords/audit/package.json +0 -3
- package/templates/keywords/calc/backend/scripts/_calc.groovy +0 -151
- package/templates/keywords/calc/frontend/js/cob/_calc.js +0 -193
- package/templates/keywords/calc/frontend/js/customizations2.__MERGE__.js +0 -1
- package/templates/keywords/calc/package.json +0 -3
- package/templates/keywords/image/frontend/js/cob/_image.js +0 -30
- package/templates/keywords/image/frontend/js/customizations2.__MERGE__.js +0 -1
- package/templates/keywords/image/package.json +0 -3
- package/templates/keywords/kibana/frontend/js/cob/_kibana.js +0 -58
- package/templates/keywords/kibana/frontend/js/customizations2.__MERGE__.js +0 -1
- package/templates/keywords/kibana/package.json +0 -3
- package/templates/keywords/log/backend/scripts/_log.groovy +0 -95
- package/templates/keywords/log/frontend/css/_log.css +0 -5
- package/templates/keywords/log/frontend/css/customizations.__MERGE__.css +0 -1
- package/templates/keywords/log/package.json +0 -3
- package/templates/keywords/styleResults/frontend/css/_styleResults.css +0 -86
- package/templates/keywords/styleResults/frontend/css/customizations.__MERGE__.css +0 -1
- package/templates/keywords/styleResults/frontend/js/cob/_styleResults.js +0 -38
- package/templates/keywords/styleResults/frontend/js/customizations2.__MERGE__.js +0 -1
- package/templates/keywords/styleResults/package.json +0 -3
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
exports.option = {
|
|
2
|
-
name: 'Kibana - Allows for $kibana[dashboardId [,heigth])',
|
|
3
|
-
short: "Kibana",
|
|
4
|
-
questions: [
|
|
5
|
-
],
|
|
6
|
-
customization: async function (answers) {
|
|
7
|
-
console.log("\nApplying Kibana keyword customizations ...")
|
|
8
|
-
|
|
9
|
-
const { copy } = require("../lib/task_lists/customize_copy");
|
|
10
|
-
const { mergeFiles } = require("../lib/task_lists/customize_mergeFiles");
|
|
11
|
-
const fe_target = "./recordm/customUI/"
|
|
12
|
-
await copy("../../templates/keywords/kibana/frontend",fe_target)
|
|
13
|
-
await mergeFiles("Keyword.Kibana")
|
|
14
|
-
return require("../templates/keywords/kibana/package.json").version
|
|
15
|
-
}
|
|
16
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
exports.option = {
|
|
2
|
-
name: 'Log - Allows for $log in definitions (https://learning.cultofbits.com/docs/cob-platform/admins/managing-information/available-customizations/log/)',
|
|
3
|
-
short: "Log",
|
|
4
|
-
questions: [
|
|
5
|
-
],
|
|
6
|
-
customization: async function (answers) {
|
|
7
|
-
console.log("\nApplying Log keyword customizations ...")
|
|
8
|
-
|
|
9
|
-
const { copy } = require("../lib/task_lists/customize_copy");
|
|
10
|
-
const { mergeFiles } = require("../lib/task_lists/customize_mergeFiles");
|
|
11
|
-
const fe_target = "./recordm/customUI/"
|
|
12
|
-
await copy("../../templates/keywords/log/frontend",fe_target)
|
|
13
|
-
const be_target = "./integrationm/"
|
|
14
|
-
await copy("../../templates/keywords/log/backend",be_target)
|
|
15
|
-
await mergeFiles("Keyword.Log")
|
|
16
|
-
return require("../templates/keywords/log/package.json").version
|
|
17
|
-
}
|
|
18
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
exports.option = {
|
|
2
|
-
name: 'StyleResult - Allows for $styleResults in definitions (https://learning.cultofbits.com/docs/cob-platform/admins/managing-information/available-customizations/styleResults/)',
|
|
3
|
-
short: "StyleResults",
|
|
4
|
-
questions: [
|
|
5
|
-
],
|
|
6
|
-
customization: async function (answers) {
|
|
7
|
-
console.log("\nApplying StyleResults keyword customizations ...")
|
|
8
|
-
|
|
9
|
-
const { copy } = require("../lib/task_lists/customize_copy");
|
|
10
|
-
const { mergeFiles } = require("../lib/task_lists/customize_mergeFiles");
|
|
11
|
-
const fe_target = "./recordm/customUI/"
|
|
12
|
-
await copy("../../templates/keywords/styleResults/frontend",fe_target)
|
|
13
|
-
const be_target = "./integrationm/"
|
|
14
|
-
await copy("../../templates/keywords/styleResults/backend",be_target)
|
|
15
|
-
await mergeFiles("Keyword.StyleResults")
|
|
16
|
-
return require("../templates/keywords/styleResults/package.json").version
|
|
17
|
-
}
|
|
18
|
-
}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
const ncp = require('ncp');
|
|
2
|
-
const path = require('path');
|
|
3
|
-
const {Transform} = require('stream')
|
|
4
|
-
|
|
5
|
-
// https://www.npmtrends.com/copyfiles-vs-cpx-vs-ncp-vs-npm-build-tools
|
|
6
|
-
// https://www.npmjs.com/package/ncp
|
|
7
|
-
// https://www.npmjs.com/package/copyfiles
|
|
8
|
-
|
|
9
|
-
function copy(source, target, substitutions = {}) {
|
|
10
|
-
console.log(" Copying template files to '" + target + "'...")
|
|
11
|
-
|
|
12
|
-
let srcPath = path.resolve(__dirname,source)
|
|
13
|
-
let nodeModuleRegex = RegExp(srcPath+".*/node_modules/")
|
|
14
|
-
|
|
15
|
-
return new Promise(async (resolve) => {
|
|
16
|
-
// Source is on cob-cli repo and Destination on the server repo
|
|
17
|
-
await ncp(path.resolve(__dirname,source),
|
|
18
|
-
target,
|
|
19
|
-
{
|
|
20
|
-
clobber: true,
|
|
21
|
-
filter: (src) => src.match(nodeModuleRegex) == null,
|
|
22
|
-
// TODO: comentado porque não funciona a copiar os ficheiros binários (em concreto as font no template/dashboards/dash)
|
|
23
|
-
// transform(read, write) {
|
|
24
|
-
// const replaceVars = new Transform({
|
|
25
|
-
// transform: (chunk, encoding, done) => done(null,chunk.toString().replace(/__.+__/g, m => substitutions[m]))
|
|
26
|
-
// })
|
|
27
|
-
// read.pipe(replaceVars).pipe(write)
|
|
28
|
-
// }
|
|
29
|
-
},
|
|
30
|
-
(error,x) => {
|
|
31
|
-
if (error) {
|
|
32
|
-
// Error is an array of problems
|
|
33
|
-
resolve(error.map(e => e.message).join("\n"));
|
|
34
|
-
} else {
|
|
35
|
-
resolve();
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
);
|
|
39
|
-
|
|
40
|
-
const { renameSync } = require('fs');
|
|
41
|
-
const fg = require('fast-glob');
|
|
42
|
-
|
|
43
|
-
const files = await fg(['**/*.__*__.*'], { onlyFiles: true, dot: true });
|
|
44
|
-
files
|
|
45
|
-
.forEach(file => {
|
|
46
|
-
if(file.match(/__MERGE__/)) return
|
|
47
|
-
renameSync(file, file.replace(/__.+__/g, m => substitutions[m]));
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
exports.copy = copy;
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
async function mergeFiles(block) {
|
|
3
|
-
const fg = require('fast-glob');
|
|
4
|
-
const fs = require('fs-extra');
|
|
5
|
-
const mergeFiles = await fg(['**/*.__MERGE__.*'], { onlyFiles: false, dot: true });
|
|
6
|
-
for (let mergeFile of mergeFiles) {
|
|
7
|
-
let prodFile = mergeFile.replace(/\.__MERGE__/, "");
|
|
8
|
-
let blockMark = (block == undefined ? "" : block)
|
|
9
|
-
if (!fs.existsSync(prodFile)) {
|
|
10
|
-
// If prod file does not exist creates it
|
|
11
|
-
console.log(" Creating " + prodFile)
|
|
12
|
-
fs.closeSync(fs.openSync(prodFile, 'w'));
|
|
13
|
-
} else {
|
|
14
|
-
console.log(" Merging " + prodFile + " " + block)
|
|
15
|
-
}
|
|
16
|
-
let prodFileContent = fs.readFileSync(prodFile).toString();
|
|
17
|
-
let mergeFileContent = fs.readFileSync(mergeFile).toString();
|
|
18
|
-
let startStr = '/* COB-CLI START Customization ' + blockMark + ' */\n';
|
|
19
|
-
let endStr = '\n/* COB-CLI END Customization ' + blockMark + ' */\n';
|
|
20
|
-
|
|
21
|
-
if (prodFileContent.indexOf(startStr) < 0) {
|
|
22
|
-
// If previous customization does not exist
|
|
23
|
-
prodFileContent = startStr
|
|
24
|
-
+ mergeFileContent
|
|
25
|
-
+ endStr
|
|
26
|
-
+ prodFileContent;
|
|
27
|
-
} else {
|
|
28
|
-
// If previous customization exists
|
|
29
|
-
let beforeMerge = prodFileContent.indexOf(startStr);
|
|
30
|
-
let afterMerge = prodFileContent.indexOf(endStr) + endStr.length;
|
|
31
|
-
prodFileContent = prodFileContent.substring(0, beforeMerge)
|
|
32
|
-
+ startStr
|
|
33
|
-
+ mergeFileContent
|
|
34
|
-
+ endStr
|
|
35
|
-
+ prodFileContent.substring(afterMerge);
|
|
36
|
-
}
|
|
37
|
-
fs.writeFileSync(prodFile, prodFileContent);
|
|
38
|
-
|
|
39
|
-
fs.unlinkSync(mergeFile);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
exports.mergeFiles = mergeFiles;
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
exports.definitionNameQuestion = {
|
|
2
|
-
type: 'input',
|
|
3
|
-
name: 'name',
|
|
4
|
-
message: 'What\'s the name of the definition?',
|
|
5
|
-
description: 'the name of the definition listing to customize'
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
exports.dashboardNameQuestion = {
|
|
9
|
-
type: 'input',
|
|
10
|
-
name: 'name',
|
|
11
|
-
message: 'What name for the url?',
|
|
12
|
-
description: 'a valid name consist of one Word composed of letters and numbers',
|
|
13
|
-
validate: function (value) {
|
|
14
|
-
var pass = value.match(
|
|
15
|
-
/^[-0-9a-bA-Z]+$/i
|
|
16
|
-
);
|
|
17
|
-
if (pass) {
|
|
18
|
-
return true;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
return 'Only letters and numbers name, at least one';
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
exports.dashboardNameQuestion2 = {
|
|
26
|
-
type: 'input',
|
|
27
|
-
name: 'name2',
|
|
28
|
-
message: 'What name for the url2?',
|
|
29
|
-
description: 'a valid name consist of one Word composed of letters and numbers',
|
|
30
|
-
validate: function (value) {
|
|
31
|
-
var pass = value.match(
|
|
32
|
-
/^[-0-9a-bA-Z]+$/i
|
|
33
|
-
);
|
|
34
|
-
if (pass) {
|
|
35
|
-
return true;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
return 'Only letters and numbers name, at least one';
|
|
39
|
-
}
|
|
40
|
-
};
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import groovy.transform.Field;
|
|
2
|
-
import org.apache.commons.logging.*;
|
|
3
|
-
|
|
4
|
-
import static utils.CobUtils.*;
|
|
5
|
-
import groovy.json.JsonOutput
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
@Field log = LogFactory.getLog(getClass());
|
|
9
|
-
log.info("Building VuePress e-learning content part")
|
|
10
|
-
return JsonOutput.prettyPrint(JsonOutput.toJson( getVuePressDocs() ))
|
|
11
|
-
|
|
12
|
-
/********************************************************************************************/
|
|
13
|
-
|
|
14
|
-
def getVuePressDocs() {
|
|
15
|
-
def docs = [];
|
|
16
|
-
|
|
17
|
-
def contents = registosPaginadosAsMap(66,"*", actionPacks.get("rmRest"), "sortablefield", true)
|
|
18
|
-
contents.each { content ->
|
|
19
|
-
def langs = ["","pt","es"]
|
|
20
|
-
def contentLink = content["path"][0]
|
|
21
|
-
if( contentLink == "/site/home/" ) contentLink = "/";
|
|
22
|
-
|
|
23
|
-
if(!content["type"] || content["type"][0] == "SiteItem" && content["siteitemtype"][0] == "directory" ) return // No page for directories
|
|
24
|
-
|
|
25
|
-
langs.each { lang ->
|
|
26
|
-
def langPostfix = lang ? "-" + lang : ""
|
|
27
|
-
def contentMD = content["content"+langPostfix] ? content["content"+langPostfix][0] : content["content"] ? content["content"][0] : content["content-pt"] ? content["content-pt"][0] : content["content-es"] ? content["content-es"][0] : "";
|
|
28
|
-
|
|
29
|
-
contentMD = addToFrontmatter(contentMD, "id: " + content.id)
|
|
30
|
-
|
|
31
|
-
def isSitePath = contentLink =~ /^\/site\/([^\/]*)s\//
|
|
32
|
-
def isSolutionPath = contentLink =~ /^\/solutions\//
|
|
33
|
-
if( isSolutionPath ) {
|
|
34
|
-
contentMD = addToFrontmatter(contentMD, "target: Solution")
|
|
35
|
-
} else if( isSitePath ) {
|
|
36
|
-
// If the content link starts with /site/ then use the next path part as the type. This will enable NavBar activeLink.
|
|
37
|
-
// Notice we expect Types to be in the singular so we remove the 's' from the match on the type
|
|
38
|
-
contentMD = addToFrontmatter(contentMD, "target: " + isSitePath[0][1])
|
|
39
|
-
} else {
|
|
40
|
-
def target = ""
|
|
41
|
-
if(content && content["target"]) target = content["target"][0]
|
|
42
|
-
contentMD = addToFrontmatter(contentMD, "target: " + target)
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
if(content["visibility"][0] != "Public") {
|
|
46
|
-
contentMD = getJustFrontmatter(contentMD) + "<RestrictedContent/>"
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
def langPath = lang ? "/" + lang : ""
|
|
50
|
-
docs.push(["path": langPath + contentLink, "content": contentMD])
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
return docs
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
def addToFrontmatter(content,expression) {
|
|
57
|
-
// Acrescentado um \n à avaliação do conteúdo para compensar o caso em que,
|
|
58
|
-
// quando só há frontmatter no conteúdo, o RM remove os trailing \n
|
|
59
|
-
// (terminando o conteúdo em --- e por isso depois não fazia match no split)
|
|
60
|
-
def frontmatterEval = (content+"\n")?.split("---")
|
|
61
|
-
if(frontmatterEval?.size()>2) {
|
|
62
|
-
frontmatterEval[1] += expression + "\n"
|
|
63
|
-
content = frontmatterEval.join("---\n")
|
|
64
|
-
} else {
|
|
65
|
-
content = "---\n" + expression + "\n---\n" + content
|
|
66
|
-
}
|
|
67
|
-
return content
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
def getJustFrontmatter(content) {
|
|
71
|
-
def splitContent = content?.split("---\n")
|
|
72
|
-
if(splitContent?.size()<=2) return ""
|
|
73
|
-
return splitContent[0..1].join("---\n") + "---\n"
|
|
74
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import groovy.transform.Field;
|
|
2
|
-
import org.apache.commons.logging.*;
|
|
3
|
-
|
|
4
|
-
import static utils.CobUtils.*;
|
|
5
|
-
import groovy.json.JsonOutput
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
@Field log = LogFactory.getLog(getClass());
|
|
9
|
-
log.info("Building VuePress e-learning sidebar...")
|
|
10
|
-
|
|
11
|
-
def path = argsMap.path ;
|
|
12
|
-
def lang = (!argsMap.lang || argsMap.lang == "en") ? "" : argsMap.lang ;
|
|
13
|
-
def sidebarConfig = getVuePressSidebarConfig(path, lang, true)
|
|
14
|
-
return JsonOutput.prettyPrint(JsonOutput.toJson( sidebarConfig ))
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
/********************************************************************************************/
|
|
18
|
-
|
|
19
|
-
def getVuePressSidebarConfig(path, lang, isRoot) {
|
|
20
|
-
def sidebar = [];
|
|
21
|
-
def pathField = isRoot ? "path.raw" : "parent_path.raw"; // no caso dos conteúdos de topo é necessário processar o próprio primeiro e depois os seus filhos
|
|
22
|
-
def contents = registosPaginadosAsMap(66, pathField+":\""+path+"\"", actionPacks.get("rmRest"), "sortablefield", true)
|
|
23
|
-
|
|
24
|
-
contents.each { content ->
|
|
25
|
-
def node = [:]
|
|
26
|
-
def nameSufixForLang = (lang && content["name-"+lang]) ? ("-"+lang) : content["name"] ? "" : content["name-pt"] ? "-pt" : "-es" ; // sufix shoud be the one specified in lang, unless it's content does not exist and, in that case, it will defaul to EN, then PT, then ES
|
|
27
|
-
def pathForLang = (lang ? "/" + lang : "") + content["path"][0]
|
|
28
|
-
def titleForLang = content["name"+nameSufixForLang][0]
|
|
29
|
-
|
|
30
|
-
def children = getVuePressSidebarConfig(content["path"][0], lang, false)
|
|
31
|
-
if(children.size == 0) {
|
|
32
|
-
node = [ pathForLang, titleForLang ]
|
|
33
|
-
} else {
|
|
34
|
-
node["title"] = titleForLang
|
|
35
|
-
node["path"] = pathForLang
|
|
36
|
-
node["children"] = [ pathForLang, *children ] // o truque de ter um grupo com conteúdo está em adicionar o próprio como filho mas depois esconder no html e mostrar o link do grupo com estilo de conteúdo normal
|
|
37
|
-
node["sidebarDepth"] = isRoot ? 1 : 0
|
|
38
|
-
}
|
|
39
|
-
sidebar.push(node)
|
|
40
|
-
}
|
|
41
|
-
return sidebar
|
|
42
|
-
}
|
package/templates/backend/vuepress/integrationm/actions/getVuePressSidebarRootElements.groovy
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import static utils.CobUtils.*;
|
|
3
|
-
import groovy.json.JsonOutput
|
|
4
|
-
|
|
5
|
-
return JsonOutput.prettyPrint(JsonOutput.toJson( getVuePressSidebarRootElements() ))
|
|
6
|
-
|
|
7
|
-
/********************************************************************************************/
|
|
8
|
-
|
|
9
|
-
def getVuePressSidebarRootElements() {
|
|
10
|
-
def sidebarRootElements = [];
|
|
11
|
-
|
|
12
|
-
def contents = registosPaginadosAsMap(66, "format.raw:Book", actionPacks.get("rmRest"), "sortablefield", true)
|
|
13
|
-
contents.each { content ->
|
|
14
|
-
sidebarRootElements.push(content["path"][0])
|
|
15
|
-
}
|
|
16
|
-
return sidebarRootElements
|
|
17
|
-
}
|