@nzz/q-cli 1.9.1 → 1.9.3

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.
@@ -194,10 +194,18 @@ async function getUpdatedItem(
194
194
  const toolSchema = await schemaService.getToolSchema(
195
195
  qServer,
196
196
  existingItem.tool
197
- );
198
- // Removes additional properties not defined in the schema on the top level object of the item
199
- toolSchema.additionalProperties = false;
200
- // If options object is available additional properties not defined in the schema are removed
197
+ );
198
+ // Removes additional properties not defined in the schema on the top level object of the item
199
+ toolSchema.additionalProperties = false;
200
+
201
+ if(existingItem.customSchema) {
202
+ toolSchema.properties = {...toolSchema.properties, ...existingItem.customSchema}
203
+ }
204
+
205
+ if(existingItem.customSchemaDefinitions) {
206
+ toolSchema.definitions = {...toolSchema.definitions, ...existingItem.customSchemaDefinitions}
207
+ }
208
+ // If options object is available additional properties not defined in the schema are removed
201
209
  if (toolSchema.properties && toolSchema.properties.options) {
202
210
  toolSchema.properties.options.additionalProperties = false;
203
211
  }
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@nzz/q-cli",
3
- "version": "1.9.1",
3
+ "version": "1.9.3",
4
+ "prettier": "@nzz/et-utils-config-prettier",
4
5
  "description": "Cli tool to setup new Q tools, new Q server implementations and start Q dev server to test developing Q tools",
5
6
  "main": "index.js",
6
7
  "scripts": {
@@ -21,7 +22,7 @@
21
22
  "homepage": "https://github.com/nzzdev/Q-cli#readme",
22
23
  "dependencies": {
23
24
  "@hapi/boom": "^9.1.1",
24
- "@hapi/hapi": "^20.1.3",
25
+ "@hapi/hapi": "^20.3.0",
25
26
  "@hapi/inert": "^6.0.3",
26
27
  "@hapi/mimos": "^5.0.0",
27
28
  "@hapi/vision": "^6.1.0",
@@ -30,14 +31,17 @@
30
31
  "chalk": "^4.1.1",
31
32
  "commander": "^5.1.0",
32
33
  "configstore": "^5.0.1",
33
- "deepmerge": "^4.2.2",
34
+ "deepmerge": "^4.3.1",
34
35
  "form-data": "^3.0.0",
35
36
  "fs-extra": "^9.0.1",
36
37
  "image-size": "^0.8.3",
37
- "joi": "^17.4.0",
38
- "node-fetch": "^2.6.1",
38
+ "joi": "^17.9.1",
39
+ "node-fetch": "^2.6.9",
39
40
  "nunjucks": "^3.2.2",
40
41
  "promptly": "^3.2.0",
41
42
  "replace-in-file": "^3.4.4"
43
+ },
44
+ "devDependencies": {
45
+ "@nzz/et-utils-config-prettier": "^1.0.6"
42
46
  }
43
- }
47
+ }
@@ -1,7 +1,9 @@
1
1
  {
2
2
  "name": "custom-code-skeleton",
3
3
  "version": "1.0.0",
4
+ "prettier": "@nzz/et-utils-config-prettier",
4
5
  "devDependencies": {
6
+ "@nzz/et-utils-config-prettier": "^1.0.6",
5
7
  "@nzz/nzz.ch-static": "github:nzzdev/ed-tech-nzz.ch-static#v1.0.0",
6
8
  "@nzz/q-cli": "^1.4.11",
7
9
  "@rollup/plugin-alias": "^3.1.9",
@@ -23,7 +25,7 @@
23
25
  "rollup-plugin-terser": "^7.0.2",
24
26
  "sass": "^1.43.4",
25
27
  "sirv-cli": "^1.0.12",
26
- "svelte": "^3.43.1",
28
+ "svelte": "^3.57.0",
27
29
  "svelte-preprocess": "^4.10.7",
28
30
  "typescript": "^4.6.4"
29
31
  },
@@ -40,4 +42,4 @@
40
42
  "rollup": "rollup -c -w",
41
43
  "serve": "sirv public --dev --port 5555 --host 0.0.0.0"
42
44
  }
43
- }
45
+ }
@@ -1,22 +1,28 @@
1
- import * as fs from "fs";
2
- import * as path from "path";
3
- import nodeResolve from "@rollup/plugin-node-resolve";
4
- import commonjs from "@rollup/plugin-commonjs";
5
- import json from "@rollup/plugin-json";
6
- import html from "@rollup/plugin-html";
7
- import svelte from "rollup-plugin-svelte";
8
- import { terser } from "rollup-plugin-terser";
9
- import livereload from "rollup-plugin-livereload";
10
- import scss from "rollup-plugin-scss";
11
- import postcss from "postcss";
12
- import cssnano from "cssnano";
13
- import autoprefixer from "autoprefixer";
14
- import qConfig from "./q.config.json";
1
+ import * as fs from 'fs';
2
+ import * as path from 'path';
3
+ import nodeResolve from '@rollup/plugin-node-resolve';
4
+ import commonjs from '@rollup/plugin-commonjs';
5
+ import json from '@rollup/plugin-json';
6
+ import html from '@rollup/plugin-html';
7
+ import svelte from 'rollup-plugin-svelte';
8
+ import { terser } from 'rollup-plugin-terser';
9
+ import livereload from 'rollup-plugin-livereload';
10
+ import scss from 'rollup-plugin-scss';
11
+ import postcss from 'postcss';
12
+ import cssnano from 'cssnano';
13
+ import autoprefixer from 'autoprefixer';
14
+ import qConfig from './q.config.json';
15
15
  import typescript from '@rollup/plugin-typescript';
16
16
  import image from '@rollup/plugin-image';
17
17
  import alias from '@rollup/plugin-alias';
18
18
  import sveltePreprocess from 'svelte-preprocess';
19
- import { createContentWidthQElement, createFullwidthQElement, getHtml, createSubtitle, createParagraph } from '@nzz/nzz.ch-static';
19
+ import {
20
+ createContentWidthQElement,
21
+ createFullwidthQElement,
22
+ getHtml,
23
+ createSubtitle,
24
+ createParagraph,
25
+ } from '@nzz/nzz.ch-static';
20
26
 
21
27
  // Which nzz layout to use?
22
28
  const LAYOUT = process.env.LAYOUT;
@@ -29,10 +35,10 @@ function getOutputConfigs() {
29
35
  const outputConfigs = [];
30
36
  for (let item of qConfig.items) {
31
37
  for (let environment of item.environments) {
32
- if (environment.id !== "") {
38
+ if (environment.id !== '') {
33
39
  outputConfigs.push({
34
40
  sourcemap: production ? false : true,
35
- format: "iife",
41
+ format: 'iife',
36
42
  name: `window._q_custom_code_${environment.id}.App`,
37
43
  file: `public/bundle-${environment.id}.js`,
38
44
  });
@@ -45,40 +51,40 @@ function getOutputConfigs() {
45
51
 
46
52
  function getHtmlOptions() {
47
53
  return {
48
- fileName: 'index.html',
49
- template: function (options) {
50
- return getHtml({
51
- // These 3 options are the most important. Without them the static website will not function.
52
- layout: LAYOUT, // Type of layout.
53
- builtCssFilename, // Will be appended at the end of <head>.
54
- builtJsFilename: options.files.js[0].fileName, // Will appended to the end of <body>.
55
-
56
- // Create mock elements to simulate your article.
57
- content: `
54
+ fileName: 'index.html',
55
+ template: function (options) {
56
+ return getHtml({
57
+ // These 3 options are the most important. Without them the static website will not function.
58
+ layout: LAYOUT, // Type of layout.
59
+ builtCssFilename, // Will be appended at the end of <head>.
60
+ builtJsFilename: options.files.js[0].fileName, // Will appended to the end of <body>.
61
+
62
+ // Create mock elements to simulate your article.
63
+ content: `
58
64
  ${createSubtitle('Test Subtitle')}
59
65
  ${createParagraph('Test paragraph')}
60
66
  ${createFullwidthQElement('custom-code-fw')}
61
67
  ${createContentWidthQElement('custom-code-cw')}
62
68
  `,
63
69
 
64
- // Other options.
65
- author: 'Max Musterman',
66
- lead: 'Test lead.',
67
- title: 'Test title',
68
-
69
- // Links to other css files that need to be loaded.
70
- // Will be appended to <head> but before the bundled css file of your app.
71
- customCssLinks: [
72
- 'https://service.sophie.nzz.ch/bundle/sophie-q@^1,sophie-input@^1,sophie-font@^1,sophie-color@^1,sophie-viz-color@^1,sophie-legend@^1.css',
73
- ],
74
-
75
- // Links to other js filed that need to be loaded.
76
- // Will be appended at the end of the body, but before the built js file for the app.
77
- customJsLinks: [
78
- 'https://cdn.polyfill.io/v2/polyfill.min.js?features=Map,URL,Promise,fetch,URLSearchParams,Array.prototype.find,Array.prototype.findIndex,Object.entries,Array.prototype.includes,CustomEvent,Array.from,String.prototype.startsWith&flags=gated&unknown=polyfill'
79
- ],
80
- });
81
- },
70
+ // Other options.
71
+ author: 'Max Musterman',
72
+ lead: 'Test lead.',
73
+ title: 'Test title',
74
+
75
+ // Links to other css files that need to be loaded.
76
+ // Will be appended to <head> but before the bundled css file of your app.
77
+ customCssLinks: [
78
+ 'https://service.sophie.nzz.ch/bundle/sophie-q@^1,sophie-input@^1,sophie-font@^1,sophie-color@^1,sophie-viz-color@^1,sophie-legend@^1.css',
79
+ ],
80
+
81
+ // Links to other js filed that need to be loaded.
82
+ // Will be appended at the end of the body, but before the built js file for the app.
83
+ customJsLinks: [
84
+ 'https://cdn.polyfill.io/v2/polyfill.min.js?features=Map,URL,Promise,fetch,URLSearchParams,Array.prototype.find,Array.prototype.findIndex,Object.entries,Array.prototype.includes,CustomEvent,Array.from,String.prototype.startsWith&flags=gated&unknown=polyfill',
85
+ ],
86
+ });
87
+ },
82
88
  };
83
89
  }
84
90
 
@@ -94,7 +100,7 @@ function getPostcssPlugins(isProduction) {
94
100
 
95
101
  function createOutputCssFunction() {
96
102
  const outputCssFunction = (styles, styleNodes) => {
97
- const publicDir = "public";
103
+ const publicDir = 'public';
98
104
 
99
105
  if (!fs.existsSync(publicDir)) {
100
106
  fs.mkdirSync(publicDir);
@@ -108,14 +114,14 @@ function createOutputCssFunction() {
108
114
 
109
115
  function getSassConfig(isProduction) {
110
116
  const config = {
111
- outputStyle: isProduction ? "compressed" : "expanded",
117
+ outputStyle: isProduction ? 'compressed' : 'expanded',
112
118
  // Sourcemap generation (specifically writing the file to system) is currently not supported by rollup-plugin-sass (but soon!)
113
119
  // See: https://github.com/thgh/rollup-plugin-scss/issues/7
114
120
  // outFile: path.join(__dirname, "/public/default.css"), // <- Uncomment after: https://github.com/thgh/rollup-plugin-scss/issues/7
115
121
  sourceMap: !isProduction,
116
122
  sourceMapEmbed: !isProduction, // Remove after: https://github.com/thgh/rollup-plugin-scss/issues/7
117
123
  failOnError: !isProduction,
118
- watch: [path.join(__dirname, "/src")],
124
+ watch: [path.join(__dirname, '/src')],
119
125
  processor: (css) =>
120
126
  postcss(getPostcssPlugins(isProduction))
121
127
  .process(css, {
@@ -131,14 +137,15 @@ function getSassConfig(isProduction) {
131
137
  }
132
138
 
133
139
  export default {
134
- input: production ? "src/main-prod.ts" : "src/main.ts",
140
+ input: production ? 'src/main-prod.ts' : 'src/main.ts',
135
141
  output: getOutputConfigs(),
136
142
  plugins: [
137
143
  alias({
138
144
  entries: [
139
145
  { find: '@src', replacement: path.resolve(projectRootDir, 'src') },
140
146
  { find: '@interfaces', replacement: path.resolve(projectRootDir, 'src/interfaces.ts') },
141
- ]
147
+ { find: '@enums', replacement: path.resolve(projectRootDir, 'src/enums.ts') },
148
+ ],
142
149
  }),
143
150
 
144
151
  typescript({ sourceMap: !production }),
@@ -171,14 +178,14 @@ export default {
171
178
 
172
179
  // Watch the `public` directory and refresh the
173
180
  // browser on changes when not in production
174
- !production && livereload({ watch: ["public"], delay: 800 }),
181
+ !production && livereload({ watch: ['public'], delay: 800 }),
175
182
  production && terser(),
176
183
  ],
177
184
  watch: {
178
185
  clearScreen: false,
179
186
  },
180
187
  onwarn: function (warning, warn) {
181
- if (warning.code === "CIRCULAR_DEPENDENCY") return;
188
+ if (warning.code === 'CIRCULAR_DEPENDENCY') return;
182
189
  warn(warning);
183
190
  },
184
191
  };
File without changes
@@ -1,4 +1,4 @@
1
1
  // file is used for the production since the initializing of the app will happen in Q
2
- import App from "./App.svelte";
3
- import "./main.scss";
2
+ import App from './App.svelte';
3
+ import './main.scss';
4
4
  export default App;
@@ -1 +1 @@
1
- @use "App.scss";
1
+ @use 'App.scss';
@@ -1,17 +1,17 @@
1
- import App from "./App.svelte";
2
- import "./main.scss";
1
+ import App from './App.svelte';
2
+ import './main.scss';
3
3
 
4
4
  const app = new App({
5
- target: document.querySelector("#custom-code-fw"),
5
+ target: document.querySelector('#custom-code-fw'),
6
6
  props: {
7
- name: "custom-code-skeleton - Fullwidth",
7
+ name: 'custom-code-skeleton - Fullwidth',
8
8
  },
9
9
  });
10
10
 
11
11
  new App({
12
- target: document.querySelector("#custom-code-cw"),
12
+ target: document.querySelector('#custom-code-cw'),
13
13
  props: {
14
- name: "custom-code-skeleton - Content Width",
14
+ name: 'custom-code-skeleton - Content Width',
15
15
  },
16
16
  });
17
17
 
@@ -9,7 +9,8 @@
9
9
  "declaration": false,
10
10
  "paths": {
11
11
  "@src": ["./src/"],
12
- "@interfaces": ["./src/interfaces.ts"]
12
+ "@interfaces": ["./src/interfaces.ts"],
13
+ "@enums": ["./src/enums.ts"]
13
14
  }
14
15
  }
15
16
  }