@nzz/q-cli 1.10.3 → 2.0.0-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/dist/index.js +79 -0
  2. package/dist/interfaces.js +1 -0
  3. package/dist/newCustomCode.js +106 -0
  4. package/dist/updateItem.js +191 -0
  5. package/dist/utils.js +11 -0
  6. package/package.json +27 -36
  7. package/.nvmrc +0 -1
  8. package/.travis.yml +0 -17
  9. package/.vscode/launch.json +0 -36
  10. package/.vscode/settings.json +0 -5
  11. package/LICENSE +0 -21
  12. package/README.md +0 -360
  13. package/bin/commands/bootstrap.js +0 -68
  14. package/bin/commands/qItem/configStore.js +0 -144
  15. package/bin/commands/qItem/copyItem/copyItem.js +0 -103
  16. package/bin/commands/qItem/copyItem/copySchema.json +0 -37
  17. package/bin/commands/qItem/createCustomCodeItem/createCustomCodeItem.js +0 -81
  18. package/bin/commands/qItem/createCustomCodeItem/schema.json +0 -41
  19. package/bin/commands/qItem/helpers.js +0 -102
  20. package/bin/commands/qItem/itemService.js +0 -310
  21. package/bin/commands/qItem/resourcesService.js +0 -148
  22. package/bin/commands/qItem/schemaService.js +0 -65
  23. package/bin/commands/qItem/updateItem/updateItem.js +0 -64
  24. package/bin/commands/server.js +0 -80
  25. package/bin/q.js +0 -213
  26. package/dev-server/config/default.js +0 -51
  27. package/dev-server/public/favicon.ico +0 -0
  28. package/dev-server/public/style.css +0 -64
  29. package/dev-server/routes/dev-view.js +0 -52
  30. package/dev-server/routes/file.js +0 -10
  31. package/dev-server/routes/rendering-info.js +0 -130
  32. package/dev-server/routes/routes.js +0 -6
  33. package/dev-server/routes/tool-default.js +0 -108
  34. package/dev-server/server-plugins.js +0 -1
  35. package/dev-server/server.js +0 -18
  36. package/dev-server/views/index.html +0 -184
  37. package/skeletons/custom-code-skeleton/.nvmrc +0 -1
  38. package/skeletons/custom-code-skeleton/.vscode/settings.json +0 -5
  39. package/skeletons/custom-code-skeleton/README.md +0 -26
  40. package/skeletons/custom-code-skeleton/index.d.ts +0 -3
  41. package/skeletons/custom-code-skeleton/package-lock.json +0 -7355
  42. package/skeletons/custom-code-skeleton/package.json +0 -46
  43. package/skeletons/custom-code-skeleton/q.config.json +0 -60
  44. package/skeletons/custom-code-skeleton/rollup.config.js +0 -185
  45. package/skeletons/custom-code-skeleton/src/App.scss +0 -5
  46. package/skeletons/custom-code-skeleton/src/App.svelte +0 -7
  47. package/skeletons/custom-code-skeleton/src/enums.ts +0 -0
  48. package/skeletons/custom-code-skeleton/src/interfaces.ts +0 -0
  49. package/skeletons/custom-code-skeleton/src/main-prod.ts +0 -4
  50. package/skeletons/custom-code-skeleton/src/main.scss +0 -1
  51. package/skeletons/custom-code-skeleton/src/main.ts +0 -18
  52. package/skeletons/custom-code-skeleton/tsconfig.json +0 -16
  53. package/skeletons/et-utils-package-skeleton/.nvmrc +0 -1
  54. package/skeletons/et-utils-package-skeleton/README.md +0 -12
  55. package/skeletons/et-utils-package-skeleton/jest.config.ts +0 -17
  56. package/skeletons/et-utils-package-skeleton/package-lock.json +0 -3969
  57. package/skeletons/et-utils-package-skeleton/package.json +0 -40
  58. package/skeletons/et-utils-package-skeleton/scripts/package-fixup.sh +0 -13
  59. package/skeletons/et-utils-package-skeleton/src/Service.ts +0 -8
  60. package/skeletons/et-utils-package-skeleton/src/index.ts +0 -4
  61. package/skeletons/et-utils-package-skeleton/test/Service.spec.ts +0 -10
  62. package/skeletons/et-utils-package-skeleton/test/tsconfig.json +0 -8
  63. package/skeletons/et-utils-package-skeleton/tsconfig-base.json +0 -10
  64. package/skeletons/et-utils-package-skeleton/tsconfig-cjs.json +0 -8
  65. package/skeletons/et-utils-package-skeleton/tsconfig.json +0 -8
  66. package/skeletons/server-skeleton/.nvmrc +0 -1
  67. package/skeletons/server-skeleton/Dockerfile +0 -19
  68. package/skeletons/server-skeleton/auth/routes.js +0 -85
  69. package/skeletons/server-skeleton/auth/strategyOptions.js +0 -28
  70. package/skeletons/server-skeleton/config/base.js +0 -45
  71. package/skeletons/server-skeleton/config/db.js +0 -6
  72. package/skeletons/server-skeleton/config/editor.js +0 -105
  73. package/skeletons/server-skeleton/config/rendering-info.js +0 -70
  74. package/skeletons/server-skeleton/config/screenshot.js +0 -80
  75. package/skeletons/server-skeleton/config/targets.js +0 -31
  76. package/skeletons/server-skeleton/config/tools.js +0 -65
  77. package/skeletons/server-skeleton/files/favicon.png +0 -0
  78. package/skeletons/server-skeleton/files/system.js +0 -3612
  79. package/skeletons/server-skeleton/index.js +0 -106
  80. package/skeletons/server-skeleton/package-lock.json +0 -1825
  81. package/skeletons/server-skeleton/package.json +0 -29
  82. package/skeletons/tool-skeleton/.dockerignore +0 -1
  83. package/skeletons/tool-skeleton/.nvmrc +0 -1
  84. package/skeletons/tool-skeleton/.travis.yml +0 -26
  85. package/skeletons/tool-skeleton/.vscode/settings.json +0 -5
  86. package/skeletons/tool-skeleton/Dockerfile +0 -19
  87. package/skeletons/tool-skeleton/LICENSE +0 -20
  88. package/skeletons/tool-skeleton/README.md +0 -104
  89. package/skeletons/tool-skeleton/index.js +0 -32
  90. package/skeletons/tool-skeleton/package-lock.json +0 -10108
  91. package/skeletons/tool-skeleton/package.json +0 -45
  92. package/skeletons/tool-skeleton/resources/display-options-schema.json +0 -11
  93. package/skeletons/tool-skeleton/resources/fixtures/data/basic.json +0 -4
  94. package/skeletons/tool-skeleton/resources/locales/de/translation.json +0 -1
  95. package/skeletons/tool-skeleton/resources/locales/en/translation.json +0 -1
  96. package/skeletons/tool-skeleton/resources/locales/fr/translation.json +0 -1
  97. package/skeletons/tool-skeleton/resources/schema.json +0 -16
  98. package/skeletons/tool-skeleton/rollup.config.js +0 -75
  99. package/skeletons/tool-skeleton/routes/fixtures/data.js +0 -15
  100. package/skeletons/tool-skeleton/routes/health.js +0 -10
  101. package/skeletons/tool-skeleton/routes/locales.js +0 -21
  102. package/skeletons/tool-skeleton/routes/rendering-info/web.js +0 -97
  103. package/skeletons/tool-skeleton/routes/routes.js +0 -8
  104. package/skeletons/tool-skeleton/routes/schema.js +0 -19
  105. package/skeletons/tool-skeleton/routes/script.js +0 -17
  106. package/skeletons/tool-skeleton/routes/stylesheet.js +0 -17
  107. package/skeletons/tool-skeleton/sass.config.js +0 -66
  108. package/skeletons/tool-skeleton/scripts_src/default.js +0 -3
  109. package/skeletons/tool-skeleton/styles_src/_variables.scss +0 -1
  110. package/skeletons/tool-skeleton/styles_src/main.scss +0 -2
  111. package/skeletons/tool-skeleton/test/e2e-tests.js +0 -162
  112. package/skeletons/tool-skeleton/views/dynamic/YourTool.scss +0 -5
  113. package/skeletons/tool-skeleton/views/dynamic/YourTool.svelte +0 -19
  114. package/skeletons/tool-skeleton/views/static/App.scss +0 -5
  115. package/skeletons/tool-skeleton/views/static/App.svelte +0 -21
  116. package/skeletons/tool-skeleton/views/static/components/Footer.svelte +0 -31
  117. package/skeletons/tool-skeleton/views/static/components/Header.svelte +0 -7
  118. package/skeletons/toolv2-skeleton/.husky/pre-commit +0 -6
  119. package/skeletons/toolv2-skeleton/.nvmrc +0 -1
  120. package/skeletons/toolv2-skeleton/.prettierrc.cjs +0 -15
  121. package/skeletons/toolv2-skeleton/.travis.yml +0 -30
  122. package/skeletons/toolv2-skeleton/.vscode/settings.json +0 -6
  123. package/skeletons/toolv2-skeleton/Dockerfile +0 -19
  124. package/skeletons/toolv2-skeleton/LICENSE +0 -21
  125. package/skeletons/toolv2-skeleton/README.md +0 -99
  126. package/skeletons/toolv2-skeleton/dev.js +0 -7
  127. package/skeletons/toolv2-skeleton/index.js +0 -39
  128. package/skeletons/toolv2-skeleton/jest.config.ts +0 -39
  129. package/skeletons/toolv2-skeleton/nodemon.json +0 -4
  130. package/skeletons/toolv2-skeleton/package-lock.json +0 -21382
  131. package/skeletons/toolv2-skeleton/package.json +0 -80
  132. package/skeletons/toolv2-skeleton/resources/display-options-schema.json +0 -11
  133. package/skeletons/toolv2-skeleton/resources/locales/de/translation.json +0 -8
  134. package/skeletons/toolv2-skeleton/resources/locales/en/translation.json +0 -10
  135. package/skeletons/toolv2-skeleton/resources/locales/fr/translation.json +0 -10
  136. package/skeletons/toolv2-skeleton/resources/schema.json +0 -66
  137. package/skeletons/toolv2-skeleton/rollup.config.js +0 -48
  138. package/skeletons/toolv2-skeleton/scripts/postinstall.sh +0 -5
  139. package/skeletons/toolv2-skeleton/src/.eslintrc.cjs +0 -52
  140. package/skeletons/toolv2-skeleton/src/components/Main.spec.ts +0 -15
  141. package/skeletons/toolv2-skeleton/src/components/Main.svelte +0 -32
  142. package/skeletons/toolv2-skeleton/src/enums.ts +0 -11
  143. package/skeletons/toolv2-skeleton/src/helpers/fixture-generators.ts +0 -38
  144. package/skeletons/toolv2-skeleton/src/helpers/toolRuntimeConfig.ts +0 -15
  145. package/skeletons/toolv2-skeleton/src/interfaces.ts +0 -82
  146. package/skeletons/toolv2-skeleton/src/modules.d.ts +0 -8
  147. package/skeletons/toolv2-skeleton/src/routes/dynamic-schemas/exampleDynamicSchema.ts +0 -49
  148. package/skeletons/toolv2-skeleton/src/routes/dynamic-schemas/index.ts +0 -5
  149. package/skeletons/toolv2-skeleton/src/routes/health.ts +0 -14
  150. package/skeletons/toolv2-skeleton/src/routes/locales.ts +0 -31
  151. package/skeletons/toolv2-skeleton/src/routes/notifications/exampleNotification.ts +0 -46
  152. package/skeletons/toolv2-skeleton/src/routes/option-availability.ts +0 -27
  153. package/skeletons/toolv2-skeleton/src/routes/rendering-info/web.ts +0 -150
  154. package/skeletons/toolv2-skeleton/src/routes/routes.ts +0 -21
  155. package/skeletons/toolv2-skeleton/src/routes/schema.ts +0 -21
  156. package/skeletons/toolv2-skeleton/src/routes/stylesheet.ts +0 -31
  157. package/skeletons/toolv2-skeleton/src/styles/main.scss +0 -6
  158. package/skeletons/toolv2-skeleton/svelte.config.cjs +0 -6
  159. package/skeletons/toolv2-skeleton/tasks/compileStyleFiles.cjs +0 -101
  160. package/skeletons/toolv2-skeleton/tests/e2e-tests.spec.ts +0 -158
  161. package/skeletons/toolv2-skeleton/tests/helpers.ts +0 -21
  162. package/skeletons/toolv2-skeleton/tsconfig.json +0 -48
  163. /package/{bin/commands/qItem/updateItem → dist/assets}/updateSchema.json +0 -0
@@ -1,65 +0,0 @@
1
- const Ajv = require("ajv");
2
- // Remove additional properties which are not defined by the json schema
3
- // See https://ajv.js.org/options.html#removeadditional for details
4
- const ajv = new Ajv({ schemaId: "auto", removeAdditional: true });
5
- ajv.addMetaSchema(require("ajv/lib/refs/json-schema-draft-04.json"));
6
- const fetch = require("node-fetch");
7
- const chalk = require("chalk");
8
- const errorColor = chalk.red;
9
-
10
- async function getToolSchema(qServer, tool) {
11
- try {
12
- const response = await fetch(`${qServer}tools/${tool}/schema.json`);
13
- if (response.ok) {
14
- return await response.json();
15
- } else {
16
- throw new Error(
17
- `A problem occured while getting the schema of the ${tool} tool. Please check your connection and try again.`
18
- );
19
- }
20
- } catch (error) {
21
- console.error(errorColor(error.message));
22
- process.exit(1);
23
- }
24
- }
25
-
26
- function getSchemaPathFor(commandName) {
27
- const pathFor = {
28
- createCustomCodeItem: "./createCustomCodeItem/schema.json",
29
- copyItem: "./copyItem/copySchema.json",
30
- updateItem: "./updateItem/updateSchema.json",
31
- };
32
-
33
- if (pathFor[commandName]) {
34
- return pathFor[commandName];
35
- } else {
36
- throw new Error(`Unhandled schema path for commandName: '${commandName}'`);
37
- }
38
- }
39
-
40
- function validateConfig(config, commandName = "updateItem") {
41
- const isValid = ajv.validate(require(getSchemaPathFor(commandName)), config);
42
- return {
43
- isValid: isValid,
44
- errorsText: ajv.errorsText(),
45
- };
46
- }
47
-
48
- function getNormalizedItem(schema, item, environment) {
49
- const isValid = ajv.validate(schema, item);
50
- if (!isValid) {
51
- throw new Error(
52
- `A problem occured while validating item with id ${environment.id} on ${
53
- environment.name
54
- } environment: ${ajv.errorsText()}`
55
- );
56
- }
57
-
58
- return item;
59
- }
60
-
61
- module.exports = {
62
- getToolSchema: getToolSchema,
63
- validateConfig: validateConfig,
64
- getNormalizedItem: getNormalizedItem,
65
- };
@@ -1,64 +0,0 @@
1
- const schemaService = require("./../schemaService.js");
2
- const configStore = require("./../configStore.js");
3
- const itemService = require("./../itemService.js");
4
- const fs = require("fs");
5
- const path = require("path");
6
- const chalk = require("chalk");
7
- const errorColor = chalk.red;
8
- const successColor = chalk.green;
9
-
10
- module.exports = async function (command) {
11
- try {
12
- const qConfigPath = path.resolve(command.config);
13
- if (fs.existsSync(qConfigPath)) {
14
- const qConfig = JSON.parse(fs.readFileSync(qConfigPath));
15
- const validationResult = schemaService.validateConfig(qConfig);
16
-
17
- if (validationResult.isValid) {
18
- const config = await configStore.setupStore(
19
- qConfig,
20
- command.environment,
21
- command.reset
22
- );
23
-
24
- for (const item of itemService.getItems(qConfig, command.environment)) {
25
- for (const environment of item.environments) {
26
- const result = await itemService.updateItem(
27
- item.item,
28
- environment,
29
- config,
30
- qConfigPath
31
- );
32
-
33
- if (result) {
34
- console.log(
35
- successColor(
36
- `Successfully updated item with id ${environment.id} on ${environment.name} environment`
37
- )
38
- );
39
- }
40
- }
41
- }
42
- } else {
43
- console.error(
44
- errorColor(
45
- `A problem occured while validating the config file: ${validationResult.errorsText}`
46
- )
47
- );
48
- process.exit(1);
49
- }
50
- } else {
51
- console.error(
52
- errorColor(
53
- "Couldn't find config file named q.config.json in the current directory. Create a config file in the current directory or pass the path to the config file with the option -c <path>"
54
- )
55
- );
56
- }
57
- } catch (error) {
58
- console.error(
59
- errorColor(
60
- `A problem occured while parsing the config file at ${command.config}. Please make sure it is valid JSON.`
61
- )
62
- );
63
- }
64
- };
@@ -1,80 +0,0 @@
1
- const path = require("path");
2
- const Nunjucks = require("nunjucks");
3
-
4
- async function startServer() {
5
- const server = require(path.join(__dirname, "../../dev-server/server.js"));
6
- const plugins = require(path.join(
7
- __dirname,
8
- "../../dev-server/server-plugins.js"
9
- ));
10
- const routes = require(path.join(
11
- __dirname,
12
- "../../dev-server/routes/routes.js"
13
- ));
14
- await server.register(plugins);
15
- server.views({
16
- engines: {
17
- html: {
18
- compile: (src, options) => {
19
- const template = Nunjucks.compile(src, options.environment);
20
- return (context) => {
21
- return template.render(context);
22
- };
23
- },
24
-
25
- prepare: (options, next) => {
26
- options.compileOptions.environment = Nunjucks.configure(
27
- options.path,
28
- { watch: false }
29
- );
30
- return next();
31
- },
32
- },
33
- },
34
- path: `${path.join(__dirname, "../../dev-server/views")}`,
35
- });
36
-
37
- server.route(routes);
38
-
39
- await server.start();
40
-
41
- console.log("Server running at: ", server.info.uri);
42
- console.log(`Target being used: ${process.env.TARGET || "nzz_ch"}`);
43
- console.log(
44
- `Tool base url being used: ${
45
- process.env.TOOL_BASE_URL || "http://localhost:3000"
46
- }`
47
- );
48
- if (process.env.CONFIG) {
49
- console.log(`Config module will be loaded from: ${process.env.CONFIG}`);
50
- }
51
- }
52
-
53
- module.exports = async function (command) {
54
- if (command.port) {
55
- process.env.PORT = command.port;
56
- }
57
-
58
- if (command.target) {
59
- process.env.TARGET = command.target;
60
- }
61
-
62
- if (command.toolBaseUrl) {
63
- process.env.TOOL_BASE_URL = command.toolBaseUrl;
64
- }
65
-
66
- if (command.config) {
67
- if (path.isAbsolute(command.config)) {
68
- process.env.CONFIG = command.config;
69
- } else {
70
- process.env.CONFIG = path.join(process.cwd(), command.config);
71
- }
72
- } else {
73
- process.env.CONFIG = path.join(
74
- __dirname,
75
- "../../dev-server/config/default.js"
76
- );
77
- }
78
-
79
- await startServer();
80
- };
package/bin/q.js DELETED
@@ -1,213 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- const { program } = require("commander");
4
- const chalk = require("chalk");
5
- const errorColor = chalk.red;
6
- const version = require("../package.json").version;
7
- const runServer = require("./commands/server.js");
8
- const bootstrap = require("./commands/bootstrap.js");
9
- const updateItem = require("./commands/qItem/updateItem/updateItem.js");
10
- const copyItem = require("./commands/qItem/copyItem/copyItem.js");
11
- const createCustomCodeItem = require("./commands/qItem/createCustomCodeItem/createCustomCodeItem.js");
12
-
13
- async function main() {
14
- program.version(version).description("Q Toolbox cli");
15
-
16
- program
17
- .command("server")
18
- .option("-p, --port [port]", "the port to start the server on")
19
- .option(
20
- "-t, --target [target]",
21
- "the target being used for rendering info route"
22
- )
23
- .option(
24
- "-b, --tool-base-url [url]",
25
- "the tool base url being set in rendering info route"
26
- )
27
- .option(
28
- "-c, --config [config]",
29
- "the config file name in which additional rendering info and tool runtime config is specified"
30
- )
31
- .description("start a simple server mocking a Q server for development")
32
- .action(async (command) => {
33
- await runServer(command);
34
- });
35
-
36
- program
37
- .command("new-server")
38
- .option(
39
- "-d, --dir [path]",
40
- "the base directory to bootstrap the new Q server implementation in, defaults to the name of Q server implementation"
41
- )
42
- .description("bootstrap a new Q server implementation")
43
- .action(async (command) => {
44
- const name = command.args[0];
45
- if (!name) {
46
- console.error(errorColor("no servername given"));
47
- process.exit(1);
48
- }
49
- const baseDir = program.dir || name;
50
- const textReplacements = [
51
- { regex: new RegExp(`server-skeleton`, "g"), replaceWith: name },
52
- ];
53
-
54
- await bootstrap("server", baseDir, textReplacements);
55
- });
56
-
57
- program
58
- .command("new-tool")
59
- .option(
60
- "-d, --dir <path>",
61
- "the base directory to bootstrap the new tool in, defaults to the tools name"
62
- )
63
- .description("bootstrap a new tool")
64
- .action(async (command) => {
65
- let name = command.args[0];
66
-
67
- if (!name) {
68
- console.error(errorColor("no toolname given"));
69
- process.exit(1);
70
- }
71
-
72
- // Make sure the name matches the spec.
73
- if (!name.match(/^(Q-|q-)\w+/g)) {
74
- console.error(errorColor("Tool must be named according to this format: Q-[a-z+]"));
75
- process.exit(1);
76
- }
77
-
78
- // Capitalize first letter.
79
- name = name[0].toUpperCase() + name.substring(1).toLowerCase();
80
-
81
- let nameNodashes = name.replace(/\-/g, '');
82
- toolnameCamelCase = nameNodashes[0].toUpperCase() + nameNodashes[1].toUpperCase() + nameNodashes.substring(2);
83
-
84
- const baseDir = program.dir || name;
85
- const textReplacements = [
86
- // deprecated.
87
- { regex: /tool-skeleton/g, replaceWith: name },
88
-
89
- // Replace all instance of tool name with underscore.
90
- { regex: /\[tool_name\]/g, replaceWith: name.toLowerCase().replace(/\-/g, '_') },
91
-
92
- // Replace all instances with minuses.
93
- { regex: /\[Tool-name\]/g, replaceWith: name },
94
- { regex: /\[tool-name\]/g, replaceWith: name.toLowerCase() },
95
-
96
- // Replace all CamelCase instances.
97
- { regex: /\[ToolName\]/g, replaceWith: toolnameCamelCase},
98
- ];
99
-
100
- await bootstrap("toolv2", baseDir, textReplacements);
101
- });
102
-
103
- program
104
- .command("new-custom-code")
105
- .option(
106
- "-d, --dir <path>",
107
- "the base directory to bootstrap the new tool in, defaults to the tools name"
108
- )
109
- .description("bootstrap a new custom code project")
110
- .action(async () => {
111
- const name = program.args[1];
112
- if (!name) {
113
- console.error(errorColor("no custom-code projectname given"));
114
- process.exit(1);
115
- }
116
- const baseDir = program.dir || name;
117
- const textReplacements = [
118
- { regex: new RegExp(`custom-code-skeleton`, "g"), replaceWith: name },
119
- ];
120
-
121
- await bootstrap("custom-code", baseDir, textReplacements);
122
- });
123
-
124
- program
125
- .command("new-et-utils-package")
126
- .option(
127
- "-d, --dir <path>",
128
- "the base directory to bootstrap the new tool in, defaults to the tools name"
129
- )
130
- .description("bootstrap a new ed-tech utility package")
131
- .action(async () => {
132
- const name = program.args[1];
133
- const author = program.args[2] || "TODO: Set package author name";
134
- const description =
135
- program.args[3] || "TODO: Write a package description";
136
-
137
- if (!name) {
138
- console.error(errorColor("no package name given"));
139
- process.exit(1);
140
- }
141
-
142
- const baseDir = program.dir || name;
143
- const textReplacements = [
144
- { regex: new RegExp("<package-name>", "g"), replaceWith: name },
145
- { regex: new RegExp("<author-name>", "g"), replaceWith: author },
146
- {
147
- regex: new RegExp("<package-description>", "g"),
148
- replaceWith: description,
149
- },
150
- ];
151
-
152
- await bootstrap("et-utils-package", baseDir, textReplacements);
153
- });
154
-
155
- program
156
- .command("update-item")
157
- .description("update q item")
158
- .option(
159
- "-c, --config [path]",
160
- "set config path which defines the q items to be updated. defaults to ./q.config.json",
161
- `${process.cwd()}/q.config.json`
162
- )
163
- .option(
164
- "-e, --environment [env]",
165
- "set environment which should be updated, defaults to update all items of all environments defined in config"
166
- )
167
- .option("-r, --reset", "reset stored configuration properties")
168
- .action(async (command) => {
169
- await updateItem(command);
170
- });
171
-
172
- program
173
- .command("copy-item")
174
- .description("copies an existing q item")
175
- .option(
176
- "-c, --config [path]",
177
- "set config path which defines the q items to be copied. defaults to ./q.config.json",
178
- `${process.cwd()}/q.config.json`
179
- )
180
- .option(
181
- "-e, --environment [env]",
182
- "set environment where the existing q item is found, defaults to copy all items of all environments defined in config"
183
- )
184
- .option("-r, --reset", "reset stored configuration properties")
185
- .action(async (command) => {
186
- await copyItem(command);
187
- });
188
-
189
- program
190
- .command("create-custom-code-item")
191
- .description("creates a new q custom code item in the db and adds it to the q config file")
192
- .option(
193
- "-c, --config [path]",
194
- "set config path to q.config.json. defaults to ./q.config.json",
195
- `${process.cwd()}/q.config.json`
196
- )
197
- .option(
198
- "-e, --environment [env]",
199
- "set environment where the new q custom code item should be created in"
200
- )
201
- .option(
202
- "-t, --title [title]",
203
- "set title of the new q custom code item"
204
- )
205
- .option("-r, --reset", "reset stored configuration properties")
206
- .action(async (command) => {
207
- await createCustomCodeItem(command);
208
- });
209
-
210
- await program.parseAsync(process.argv);
211
- }
212
-
213
- main();
@@ -1,51 +0,0 @@
1
- async function getConfig() {
2
- return {
3
- nzz_ch: {
4
- additionalRenderingInfo: {
5
- // additionalRenderingInfo is tool based
6
- stylesheets: [
7
- {
8
- url:
9
- "https://service.sophie.nzz.ch/bundle/sophie-q@1,sophie-font@1,sophie-color@1,sophie-viz-color@1,sophie-legend@1,sophie-input@1.css"
10
- }
11
- ]
12
- },
13
- context: {
14
- // context is target based
15
- stylesheets: [
16
- {
17
- url: "https://context-service.st.nzz.ch/stylesheet/all/nzz.ch.css"
18
- }
19
- ],
20
- background: {
21
- color: "#fff"
22
- }
23
- },
24
- toolRuntimeConfig: {}
25
- },
26
- nzzas: {
27
- additionalRenderingInfo: {
28
- stylesheets: [
29
- {
30
- url:
31
- "https://service.sophie.nzz.ch/bundle/sophie-nzzas-q@1,sophie-nzzas-font@1,sophie-nzzas-color@1,sophie-nzzas-viz-color@1,sophie-nzzas-input@1.css"
32
- }
33
- ]
34
- },
35
- context: {
36
- stylesheets: [
37
- {
38
- url:
39
- "https://context-service.st.nzz.ch/stylesheet/all/nzzas.nzz.ch.css"
40
- }
41
- ],
42
- background: {
43
- color: "#fff"
44
- }
45
- },
46
- toolRuntimeConfig: {}
47
- }
48
- };
49
- }
50
-
51
- module.exports = getConfig;
Binary file
@@ -1,64 +0,0 @@
1
- body {
2
- margin: 0;
3
- padding: 0;
4
- margin-top: 30px;
5
- }
6
- @media (min-width: 768px) {
7
- body {
8
- min-width: 100% !important;
9
- }
10
- .l--holder {
11
- padding: 0;
12
- margin: 0;
13
- width: 100%;
14
- }
15
- }
16
- .fixtures__container {
17
- display: flex;
18
- position: fixed;
19
- height: 30px;
20
- width: 100%;
21
- top: 0;
22
- z-index: 1000;
23
- }
24
- .fixtures__select {
25
- font-family: nzz-sans-serif, Helvetica, Arial;
26
- font-size: 13px;
27
- font-weight: 500;
28
- height: 100%;
29
- line-height: 30px;
30
- width: 100%;
31
- padding: 0px 10px;
32
- outline: none;
33
- border-radius: 0;
34
- border: 1px solid transparent;
35
- color: #fff;
36
- cursor: pointer;
37
- appearance: none;
38
- -webkit-appearance: none;
39
- -moz-appearance: none;
40
- background-color: #13175f;
41
- background-position: calc(100% - 10px) 11px;
42
- background-repeat: no-repeat;
43
- background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTFweCIgaGVpZ2h0PSI3cHgiIHZpZXdCb3g9IjAgMCAxMSA3IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPg0KICAgIDxnIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPg0KICAgICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjAyLCAtMTIyNikiIGZpbGw9IiNGRkYiPg0KICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNDY4LCAxMjA3KSI+DQogICAgICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxMzUuMDU5IDE5IDEzNCAyMC4wNjQgMTM5LjA3NCAyNS4xMjEgMTQ0LjEyMSAyMC4wOTEgMTQzLjA2MyAxOS4wMjggMTM5LjA3NCAyMy4wMDQiPjwvcG9seWdvbj4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgPC9nPg0KICAgIDwvZz4NCjwvc3ZnPg==");
44
- }
45
- .fixtures__reload-button {
46
- font-size: 13px;
47
- font-family: nzz-sans-serif, Helvetica, Arial;
48
- font-weight: 500;
49
- display: flex;
50
- flex-flow: row nowrap;
51
- justify-content: center;
52
- align-items: center;
53
- box-sizing: border-box;
54
- height: 30px;
55
- padding: 0 10px;
56
- color: #fff;
57
- background-color: #13175f;
58
- border-width: 0px;
59
- border-radius: 0px;
60
- }
61
- .fixtures__select:hover,
62
- .fixtures__reload-button:hover {
63
- background-color: #2c32bd;
64
- }
@@ -1,52 +0,0 @@
1
- module.exports = [
2
- {
3
- method: "GET",
4
- path: "/dev",
5
- handler: async (request, h) => {
6
- const target = process.env.TARGET || "nzz_ch";
7
-
8
- // add target and port
9
- const viewData = {
10
- port: process.env.PORT || 5000,
11
- target: target
12
- };
13
-
14
- // add context config if available
15
- if (process.env.CONFIG) {
16
- const getConfig = require(process.env.CONFIG);
17
- const config = await getConfig();
18
-
19
- if (config[target].context) {
20
- viewData.context = config[target].context;
21
- }
22
- }
23
-
24
- return h.view("index", viewData);
25
- }
26
- },
27
- {
28
- method: "GET",
29
- path: "/",
30
- handler: async (request, h) => {
31
- const target = process.env.TARGET || "nzz_ch";
32
-
33
- // add target and port
34
- const viewData = {
35
- port: process.env.PORT || 5000,
36
- target: target
37
- };
38
-
39
- // add context config if available
40
- if (process.env.CONFIG) {
41
- const getConfig = require(process.env.CONFIG);
42
- const config = await getConfig();
43
-
44
- if (config[target].context) {
45
- viewData.context = config[target].context;
46
- }
47
- }
48
-
49
- return h.view("index", viewData);
50
- }
51
- }
52
- ];
@@ -1,10 +0,0 @@
1
- module.exports = {
2
- method: "GET",
3
- path: "/{param*}",
4
- handler: {
5
- directory: {
6
- path: ".",
7
- redirectToSlash: true
8
- }
9
- }
10
- };