hof 23.0.0-frontend-v4-beta.15 → 23.0.2-vite-sourcemap-beta
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/CHANGELOG.md +12 -1
- package/README.md +7 -18
- package/build/tasks/images/index.js +2 -3
- package/build/tasks/index.js +1 -1
- package/build/tasks/vite/index.js +25 -0
- package/build/tasks/vite/vite.config.js +105 -0
- package/build/tasks/watch/index.js +0 -1
- package/config/builder-defaults.js +3 -8
- package/frontend/govuk-template/build/config.js +1 -0
- package/frontend/govuk-template/build/govuk_template.html +9 -9
- package/frontend/govuk-template/govuk_template_generated.html +9 -9
- package/frontend/template-mixins/mixins/template-mixins.js +1 -1
- package/frontend/template-mixins/partials/forms/checkbox.html +1 -1
- package/frontend/themes/gov-uk/styles/govuk.scss +1 -1
- package/package.json +9 -12
- package/sandbox/public/css/app.css +50 -50
- package/sandbox/public/css/app.css.map +1 -0
- package/sandbox/public/js/bundle.js +44 -39242
- package/sandbox/public/js/bundle.js.map +1 -0
- package/sandbox/server.js +12 -1
- package/build/tasks/browserify/compress.js +0 -15
- package/build/tasks/browserify/index.js +0 -48
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,15 @@
|
|
|
1
|
-
## 2025-12-
|
|
1
|
+
## 2025-12-16, Version 23.0.0 (Stable), @PaolaDMadd-Pro @Rhodine-orleans-lindsay
|
|
2
|
+
### Changed
|
|
3
|
+
- Replaced Browserify with Vite
|
|
4
|
+
- removed browserify dependencies including in tests
|
|
5
|
+
- added vite configuration and related tests
|
|
6
|
+
- Updated readme.md
|
|
7
|
+
- Potential **breaking changes**:
|
|
8
|
+
- Node version required for Vite is `20.19.0 || >=22.12.0`
|
|
9
|
+
- Updated engine requirements to use node to `>=20.19.0`
|
|
10
|
+
- Vite uses Rollup in production and requires optional rollup dependencies to be loaded. Setting `--ignore-optional flag` in Dockerfiles will result in "Module not found" errors in CI/CD or Docker.
|
|
11
|
+
|
|
12
|
+
## 2025-12-09, Version 22.13.0 (Stable), @Rhodine-orleans-lindsay
|
|
2
13
|
### Changed
|
|
3
14
|
- Updated cookie banner view to follow GOV.UK design system. Updated cookieSettings.js to allow for different confirmation text based on whether cookies were accepted or rejected
|
|
4
15
|
- Added inputmode='numeric' to date component
|
package/README.md
CHANGED
|
@@ -60,7 +60,7 @@ It is recommended to alias `hof-build` to an npm script in your package.json.
|
|
|
60
60
|
|
|
61
61
|
## Tasks
|
|
62
62
|
|
|
63
|
-
- `
|
|
63
|
+
- `vite` - compiles client-side js with vite in development and rollup in production. Requires node version `^20.19.0 || >=22.12.0`.
|
|
64
64
|
- `sass` - compiles sass
|
|
65
65
|
- `images` - copies images from ./assets/images directory to ./public/images
|
|
66
66
|
- `translate` - compiles translation files
|
|
@@ -69,21 +69,18 @@ Note: For SASS compilation it's possible to additionally configure the following
|
|
|
69
69
|
- `outputStyle` - Controls whether the CSS output is compressed or not, expanded (default) = non compressed and compressed = compressed CSS output.
|
|
70
70
|
- `quietDeps` - This controls whether you get deprecation warning shown in the console output, if set to false (default) SASS deprecation warnings will be shown in the console, if set to true then deprecation warnings will not be shown in the console output.
|
|
71
71
|
- `sourceMaps` - This controls whether the build will output css sourcemaps to help with debugging. These will be output to the same directory as the css output as a .map file. This option is not currently available in production.
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
Debugging example (in hof.settings or your build config)
|
|
72
|
+
For JavaScript compilation, Vite outputs JavaScript sourcemaps as a .js.map file to the same directory as the js bundle.
|
|
73
|
+
You can change sourcemaps' default settings in hof.settings or your build config as follows:
|
|
76
74
|
```
|
|
77
75
|
"build": {
|
|
78
76
|
"sass": {
|
|
79
77
|
"sourceMaps": true
|
|
80
78
|
},
|
|
81
|
-
|
|
82
|
-
"
|
|
79
|
+
"js": {
|
|
80
|
+
"sourceMaps": true
|
|
83
81
|
}
|
|
84
82
|
}
|
|
85
83
|
```
|
|
86
|
-
|
|
87
84
|
## Watch
|
|
88
85
|
|
|
89
86
|
You can additionally run a `watch` task to start a server instance, which will automatically restart based on changes to files. This will also re-perform the tasks above when relevant files change.
|
|
@@ -109,7 +106,7 @@ hof-build watch --env .envdev
|
|
|
109
106
|
|
|
110
107
|
## Configuration
|
|
111
108
|
|
|
112
|
-
The default settings will match those for an app generated using [`hof-generator`](https://npmjs.com/hof-generator).
|
|
109
|
+
The default settings will match those for an app generated using [`hof-generator`](https://npmjs.com/hof-generator) (⚠️ This package has been deprecated).
|
|
113
110
|
|
|
114
111
|
If a `hof.settings.json` file is found in the application root, then the `build` section of the settings file will be used to override [the default configuration](./defaults.js).
|
|
115
112
|
|
|
@@ -119,17 +116,9 @@ Alternatively you can define a path to a local config file by passing a `--confi
|
|
|
119
116
|
hof-build --config /path/to/my/config.js
|
|
120
117
|
```
|
|
121
118
|
|
|
122
|
-
Any task can be disabled by setting its configuration to `false` (or any falsy value).
|
|
123
|
-
|
|
124
|
-
```js
|
|
125
|
-
module.exports = {
|
|
126
|
-
browserify: false,
|
|
127
|
-
};
|
|
128
|
-
```
|
|
129
|
-
|
|
130
119
|
### Configuration options
|
|
131
120
|
|
|
132
|
-
Each task has a common configuration format with the following options:
|
|
121
|
+
Each task (except Vite) has a common configuration format with the following options:
|
|
133
122
|
|
|
134
123
|
- `src` - defines the input file or files for the build task
|
|
135
124
|
- `out` - defines the output location of the built code where relevant
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
const fs = require('fs');
|
|
5
5
|
const chalk = require('chalk');
|
|
6
6
|
const spawn = require('../../lib/spawn');
|
|
7
|
-
const mkdir = require('../../lib/mkdir');
|
|
8
7
|
|
|
9
8
|
module.exports = config => {
|
|
10
9
|
if (!config.images) {
|
|
@@ -28,11 +27,11 @@ module.exports = config => {
|
|
|
28
27
|
console.log(`${chalk.yellow('warning')}: Skipping missing images folder: ${src}`);
|
|
29
28
|
return Promise.resolve();
|
|
30
29
|
}
|
|
31
|
-
return
|
|
32
|
-
.then(() => spawn('cp', ['-r', `${src}/.`, imagesOutput]));
|
|
30
|
+
return spawn('cp', ['-r', `${src}/.`, imagesOutput]);
|
|
33
31
|
}))
|
|
34
32
|
.catch(e => {
|
|
35
33
|
if (e.code !== 'ENOENT') {
|
|
34
|
+
console.error(`${chalk.red('error')}: Failed to copy images - ${e.message}`);
|
|
36
35
|
throw e;
|
|
37
36
|
} else {
|
|
38
37
|
console.log(`${chalk.yellow('warning')}: no images directory found at ${config.images.src}`);
|
package/build/tasks/index.js
CHANGED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const fs = require('fs');
|
|
4
|
+
const path = require('path');
|
|
5
|
+
const vite = require('vite');
|
|
6
|
+
const viteConfig = path.resolve(__dirname, './vite.config.js');
|
|
7
|
+
const hofDefaults = require('../../../config/hof-defaults');
|
|
8
|
+
|
|
9
|
+
module.exports = config => {
|
|
10
|
+
process.env.NODE_ENV = hofDefaults.env;
|
|
11
|
+
fs.writeFileSync(
|
|
12
|
+
path.resolve(__dirname, './hof-vite-config.json'),
|
|
13
|
+
JSON.stringify(config, null, 2)
|
|
14
|
+
);
|
|
15
|
+
if(!config.production) {
|
|
16
|
+
return vite.build({
|
|
17
|
+
configFile: viteConfig,
|
|
18
|
+
mode: 'development'
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
return vite.build({
|
|
22
|
+
configFile: viteConfig
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
module.exports.task = 'vite';
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/* eslint-disable no-console */
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
import { defineConfig } from 'vite';
|
|
5
|
+
import { resolve } from 'path';
|
|
6
|
+
import fs from 'fs';
|
|
7
|
+
import { nodeResolve } from '@rollup/plugin-node-resolve';
|
|
8
|
+
import commonjs from '@rollup/plugin-commonjs';
|
|
9
|
+
// import hofDefaults from '../../../config/hof-defaults';
|
|
10
|
+
|
|
11
|
+
let tempConfig = {};
|
|
12
|
+
try {
|
|
13
|
+
tempConfig = JSON.parse(
|
|
14
|
+
fs.readFileSync(resolve(__dirname, './hof-vite-config.json'), 'utf8')
|
|
15
|
+
);
|
|
16
|
+
}catch (e) {
|
|
17
|
+
console.warn('Could not load hof-vite-config.json. ' + e.message);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const publicDirectory = resolve(process.cwd(), 'public');
|
|
21
|
+
// const config = require('../../../config/builder-defaults.js');
|
|
22
|
+
const entryFile = (() => {
|
|
23
|
+
const src = resolve(process.cwd(), 'assets/js/index.js');
|
|
24
|
+
if (fs.existsSync(src)) return src;
|
|
25
|
+
|
|
26
|
+
throw new Error(`vite: entry file not found. Checked: ${src}`);
|
|
27
|
+
})();
|
|
28
|
+
|
|
29
|
+
console.log('5555555555 Vite build -in vite.config.js file :', tempConfig);
|
|
30
|
+
export default defineConfig({
|
|
31
|
+
plugins: [
|
|
32
|
+
commonjs({
|
|
33
|
+
include: [/node_modules/, /assets\/js/, /frontend/]
|
|
34
|
+
}),
|
|
35
|
+
nodeResolve({ browser: true, preferBuiltins: false }),
|
|
36
|
+
// Intercept all console warnings printed during build
|
|
37
|
+
// Custom plugin to suppress specific resolve warnings.
|
|
38
|
+
// Vite does not process and optimise static images and assets files, it uses a src/ folder.
|
|
39
|
+
// the images and assets folders are therefore loaded at runtime from the public/ folder.
|
|
40
|
+
// This should be resolved with the v5/nunjucks work so we can ignore these warnings for now.
|
|
41
|
+
// TODO: Remove this when v5/nunjucks is implemented.
|
|
42
|
+
{
|
|
43
|
+
name: 'suppress-resolve-warnings',
|
|
44
|
+
apply: 'build',
|
|
45
|
+
configResolved() {
|
|
46
|
+
const originalWarning = console.warn;
|
|
47
|
+
console.warn = (...args) => {
|
|
48
|
+
if (
|
|
49
|
+
args.some(arg =>
|
|
50
|
+
typeof arg === 'string' &&
|
|
51
|
+
arg.includes("didn't resolve at build time")
|
|
52
|
+
)
|
|
53
|
+
) {
|
|
54
|
+
return; // skip this specific warning
|
|
55
|
+
}
|
|
56
|
+
originalWarning(...args);
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: 'delete-hof-vite-config',
|
|
62
|
+
closeBundle() {
|
|
63
|
+
const configPath = resolve(__dirname, './hof-vite-config.json');
|
|
64
|
+
if (fs.existsSync(configPath)) {
|
|
65
|
+
try {
|
|
66
|
+
fs.unlinkSync(configPath);
|
|
67
|
+
console.log('.hof-vite-config.json deleted after build');
|
|
68
|
+
} catch (err) {
|
|
69
|
+
console.warn('Failed to delete .hof-vite-config.json:', err);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
],
|
|
75
|
+
base: '/assets/',
|
|
76
|
+
publicDir: 'static', // static files copied as-is
|
|
77
|
+
build: {
|
|
78
|
+
outDir: publicDirectory,
|
|
79
|
+
emptyOutDir: false,
|
|
80
|
+
sourcemap: tempConfig.js && tempConfig.js.sourceMaps,
|
|
81
|
+
rollupOptions: {
|
|
82
|
+
input: {
|
|
83
|
+
index: entryFile
|
|
84
|
+
},
|
|
85
|
+
output: {
|
|
86
|
+
entryFileNames: 'js/bundle.js',
|
|
87
|
+
chunkFileNames: 'js/[name]-[hash].js',
|
|
88
|
+
assetFileNames: assetInfo => {
|
|
89
|
+
const ext = assetInfo.name && assetInfo.name.split('.').pop();
|
|
90
|
+
if (/css/i.test(ext)) return 'css/[name]-[hash][extname]';
|
|
91
|
+
if (/svg|png|jpg|jpeg|gif|webp|ico/i.test(ext)) return 'images/[name]-[hash][extname]';
|
|
92
|
+
return 'assets/[name]-[hash][extname]';
|
|
93
|
+
},
|
|
94
|
+
format: 'iife'
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
css: {
|
|
98
|
+
preprocessorOptions: {
|
|
99
|
+
scss: {
|
|
100
|
+
includes: ['node_modules']
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
});
|
|
@@ -125,7 +125,6 @@ module.exports = config => {
|
|
|
125
125
|
const rootDir = require('path').resolve(__dirname, '../../../');
|
|
126
126
|
ignored.push(`${rootDir}/frontend/govuk-template/govuk_template_generated.html`);
|
|
127
127
|
watchLocation = [rootDir, '.'];
|
|
128
|
-
process.env.SESSION_SECRET = require('crypto').randomBytes(16).toString('hex');
|
|
129
128
|
}
|
|
130
129
|
|
|
131
130
|
const watcher = chokidar.watch(watchLocation, { ignored });
|
|
@@ -5,14 +5,6 @@ const toolkitImages =
|
|
|
5
5
|
: 'node_modules/hof/frontend/toolkit/assets/rebrand/images';
|
|
6
6
|
|
|
7
7
|
module.exports = {
|
|
8
|
-
browserify: {
|
|
9
|
-
src: 'assets/js/index.js',
|
|
10
|
-
out: 'public/js/bundle.js',
|
|
11
|
-
match: 'assets/js/**/*.js',
|
|
12
|
-
restart: false,
|
|
13
|
-
compress: false,
|
|
14
|
-
debug: false
|
|
15
|
-
},
|
|
16
8
|
sass: {
|
|
17
9
|
src: 'assets/scss/app.scss',
|
|
18
10
|
out: 'public/css/app.css',
|
|
@@ -22,6 +14,9 @@ module.exports = {
|
|
|
22
14
|
outputStyle: 'expanded',
|
|
23
15
|
sourceMaps: false
|
|
24
16
|
},
|
|
17
|
+
js: {
|
|
18
|
+
sourceMaps: false
|
|
19
|
+
},
|
|
25
20
|
translate: {
|
|
26
21
|
src: 'apps/**/translations/src',
|
|
27
22
|
match: 'apps/**/translations/src/**/*.json',
|
|
@@ -4,6 +4,7 @@ module.exports = {
|
|
|
4
4
|
htmlLang: '{{htmlLang}}',
|
|
5
5
|
assetPath: '{{govukAssetPath}}',
|
|
6
6
|
assetRebrandPath: '{{govukAssetPath}}rebrand/',
|
|
7
|
+
themeColour: '#1d70b8',
|
|
7
8
|
afterHeader: '{{$afterHeader}}{{/afterHeader}}',
|
|
8
9
|
bodyClasses: '{{$bodyClasses}}{{/bodyClasses}}',
|
|
9
10
|
bodyStart: '{{$bodyStart}}{{/bodyStart}}',
|
|
@@ -6,15 +6,15 @@
|
|
|
6
6
|
<meta charset="utf-8" />
|
|
7
7
|
<title>{{ pageTitle }}</title>
|
|
8
8
|
{{{ head }}}
|
|
9
|
-
|
|
10
|
-
<meta name="theme-color" content="
|
|
11
|
-
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
12
|
-
<link rel="icon" sizes="48x48" href="{{assetRebrandPath}}images/favicon.ico">
|
|
13
|
-
<link rel="icon" sizes="any" href="{{assetRebrandPath}}images/favicon.svg" type="image/svg+xml">
|
|
14
|
-
<link rel="mask-icon" href="{{assetRebrandPath}}images/govuk-icon-mask.svg" color="
|
|
15
|
-
<link rel="apple-touch-icon" href="{{assetRebrandPath}}images/govuk-icon-180.png">
|
|
16
|
-
<link rel="manifest" href="{{assetRebrandPath}}manifest.json">
|
|
17
|
-
<meta property="og:image" content="{{assetRebrandPath}}images/govuk-opengraph-image.png">
|
|
9
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
|
|
10
|
+
<meta name="theme-color" content="{{themeColour}}">
|
|
11
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
12
|
+
<link rel="icon" sizes="48x48" href="{{assetRebrandPath}}images/favicon.ico">
|
|
13
|
+
<link rel="icon" sizes="any" href="{{assetRebrandPath}}images/favicon.svg" type="image/svg+xml">
|
|
14
|
+
<link rel="mask-icon" href="{{assetRebrandPath}}images/govuk-icon-mask.svg" color="{{themeColour}}">
|
|
15
|
+
<link rel="apple-touch-icon" href="{{assetRebrandPath}}images/govuk-icon-180.png">
|
|
16
|
+
<link rel="manifest" href="{{assetRebrandPath}}manifest.json">
|
|
17
|
+
<meta property="og:image" content="{{assetRebrandPath}}images/govuk-opengraph-image.png">
|
|
18
18
|
</head>
|
|
19
19
|
|
|
20
20
|
<body class="{{ bodyClasses }} govuk-template__body js-enabled" >
|
|
@@ -6,15 +6,15 @@
|
|
|
6
6
|
<meta charset="utf-8" />
|
|
7
7
|
<title>{{$pageTitle}}{{/pageTitle}}</title>
|
|
8
8
|
{{$head}}{{/head}}
|
|
9
|
-
|
|
10
|
-
<meta name="theme-color" content="#1d70b8">
|
|
11
|
-
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
12
|
-
<link rel="icon" sizes="48x48" href="{{govukAssetPath}}rebrand/images/favicon.ico">
|
|
13
|
-
<link rel="icon" sizes="any" href="{{govukAssetPath}}rebrand/images/favicon.svg" type="image/svg+xml">
|
|
14
|
-
<link rel="mask-icon" href="{{govukAssetPath}}rebrand/images/govuk-icon-mask.svg" color="#1d70b8">
|
|
15
|
-
<link rel="apple-touch-icon" href="{{govukAssetPath}}rebrand/images/govuk-icon-180.png">
|
|
16
|
-
<link rel="manifest" href="{{govukAssetPath}}rebrand/manifest.json">
|
|
17
|
-
<meta property="og:image" content="{{govukAssetPath}}rebrand/images/govuk-opengraph-image.png">
|
|
9
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
|
|
10
|
+
<meta name="theme-color" content="#1d70b8">
|
|
11
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
12
|
+
<link rel="icon" sizes="48x48" href="{{govukAssetPath}}rebrand/images/favicon.ico">
|
|
13
|
+
<link rel="icon" sizes="any" href="{{govukAssetPath}}rebrand/images/favicon.svg" type="image/svg+xml">
|
|
14
|
+
<link rel="mask-icon" href="{{govukAssetPath}}rebrand/images/govuk-icon-mask.svg" color="#1d70b8">
|
|
15
|
+
<link rel="apple-touch-icon" href="{{govukAssetPath}}rebrand/images/govuk-icon-180.png">
|
|
16
|
+
<link rel="manifest" href="{{govukAssetPath}}rebrand/manifest.json">
|
|
17
|
+
<meta property="og:image" content="{{govukAssetPath}}rebrand/images/govuk-opengraph-image.png">
|
|
18
18
|
</head>
|
|
19
19
|
|
|
20
20
|
<body class="{{$bodyClasses}}{{/bodyClasses}} govuk-template__body js-enabled" >
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<div id="{{key}}-group" class="govuk-form-group {{#compound}} form-group-compound{{/compound}}{{#formGroupClassName}} {{formGroupClassName}}{{/formGroupClassName}}{{#error}} govuk-form-group--error{{/error}}">
|
|
2
2
|
{{#error}}
|
|
3
|
-
<p class="govuk-error-message" aria-hidden="true">
|
|
3
|
+
<p id="{{key}}-error" class="govuk-error-message" aria-hidden="true">
|
|
4
4
|
<span class="govuk-visually-hidden">Error:</span> {{error.message}}
|
|
5
5
|
</p>
|
|
6
6
|
{{/error}}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hof",
|
|
3
3
|
"description": "A bootstrap for HOF projects",
|
|
4
|
-
"version": "23.0.
|
|
4
|
+
"version": "23.0.2-vite-sourcemap-beta",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "index.js",
|
|
7
7
|
"author": "HomeOffice",
|
|
8
8
|
"engines": {
|
|
9
|
-
"node": ">=
|
|
9
|
+
"node": ">=20.19.0"
|
|
10
10
|
},
|
|
11
11
|
"bin": {
|
|
12
12
|
"hof-build": "./bin/hof-build",
|
|
@@ -20,12 +20,12 @@
|
|
|
20
20
|
"url": "https://github.com/UKHomeOfficeForms/hof/issues"
|
|
21
21
|
},
|
|
22
22
|
"scripts": {
|
|
23
|
-
"test": "yarn run unit && yarn run test:jest && yarn run test:functional && yarn run test:
|
|
23
|
+
"test": "yarn run unit && yarn run test:jest && yarn run test:functional && yarn run test:vite && yarn run test:lint",
|
|
24
24
|
"unit": "LOG_LEVEL=error nyc _mocha \"test/**/*.spec.js\" \"sandbox/test/**/*.spec.js\"",
|
|
25
25
|
"unit:nocov": "LOG_LEVEL=error mocha \"test/**/*.spec.js\" \"sandbox/test/**/*.spec.js\"",
|
|
26
26
|
"test:lint": "eslint . --config ./node_modules/eslint-config-hof/default.js",
|
|
27
27
|
"test:functional": "funkie mocha ./test/functional-tests --timeout 20000 --exit",
|
|
28
|
-
"test:
|
|
28
|
+
"test:vite": "vitest run --config test/frontend/toolkit/vitest.config.js",
|
|
29
29
|
"test:jest": "jest test/frontend/jest test/integration/index test/utilities/helpers/jest",
|
|
30
30
|
"test:acceptance": "TAGS=\"${TAGS:=@feature}\" yarn run test:cucumber",
|
|
31
31
|
"test:acceptance_browser": "ACCEPTANCE_WITH_BROWSER=true TAGS=\"${TAGS:=@feature}\" yarn run test:cucumber",
|
|
@@ -34,11 +34,12 @@
|
|
|
34
34
|
"postversion": "git push && git push --tags"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
+
"@rollup/plugin-commonjs": "^29.0.0",
|
|
38
|
+
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
37
39
|
"aliasify": "^2.1.0",
|
|
38
40
|
"axios": "^1.12.2",
|
|
39
41
|
"bluebird": "^3.7.2",
|
|
40
42
|
"body-parser": "^1.20.3",
|
|
41
|
-
"browserify": "^17.0.1",
|
|
42
43
|
"callsite": "^1.0.0",
|
|
43
44
|
"chalk": "^2.4.2",
|
|
44
45
|
"chokidar": "^3.6.0",
|
|
@@ -51,7 +52,6 @@
|
|
|
51
52
|
"dialog-polyfill": "^0.5.6",
|
|
52
53
|
"dotenv": "^4.0.0",
|
|
53
54
|
"duplexify": "^3.7.1",
|
|
54
|
-
"exorcist": "^2.0.0",
|
|
55
55
|
"express": "^4.21.2",
|
|
56
56
|
"express-healthcheck": "^0.1.0",
|
|
57
57
|
"express-partial-templates": "^0.2.1",
|
|
@@ -91,12 +91,14 @@
|
|
|
91
91
|
"underscore": "^1.13.7",
|
|
92
92
|
"urijs": "^1.19.11",
|
|
93
93
|
"uuid": "^8.3.2",
|
|
94
|
+
"vite": "^7.1.12",
|
|
94
95
|
"winston": "^3.18.3"
|
|
95
96
|
},
|
|
96
97
|
"devDependencies": {
|
|
97
98
|
"@cucumber/cucumber": "^7.3.2",
|
|
98
99
|
"@cucumber/pretty-formatter": "^1.0.1",
|
|
99
100
|
"@types/jest": "^26.0.24",
|
|
101
|
+
"@vitest/coverage-v8": "^4.0.8",
|
|
100
102
|
"@xmldom/xmldom": "~0.8.11",
|
|
101
103
|
"chai": "^3.5.0",
|
|
102
104
|
"chai-as-promised": "^7.1.2",
|
|
@@ -110,12 +112,6 @@
|
|
|
110
112
|
"istanbul": "^0.4.5",
|
|
111
113
|
"jest": "^26.6.3",
|
|
112
114
|
"jquery": "^3.7.1",
|
|
113
|
-
"karma": "^6.4.4",
|
|
114
|
-
"karma-browserify": "^8.1.0",
|
|
115
|
-
"karma-chai": "^0.1.0",
|
|
116
|
-
"karma-cli": "^2.0.0",
|
|
117
|
-
"karma-mocha": "^2.0.1",
|
|
118
|
-
"karma-phantomjs-launcher": "^1.0.4",
|
|
119
115
|
"mocha": "^8.4.0",
|
|
120
116
|
"mocha-sandbox": "^1.0.0",
|
|
121
117
|
"node-mocks-http": "^1.17.2",
|
|
@@ -129,6 +125,7 @@
|
|
|
129
125
|
"sinon-chai": "^3.7.0",
|
|
130
126
|
"supertest": "^3.4.2",
|
|
131
127
|
"travis-conditions": "0.0.0",
|
|
128
|
+
"vitest": "^4.0.8",
|
|
132
129
|
"watchify": "^4.0.0",
|
|
133
130
|
"webdriverio": "^4.14.4"
|
|
134
131
|
},
|