uikit 3.8.0 → 3.9.0

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 (77) hide show
  1. package/{.eslintrc.js → .eslintrc.json} +5 -5
  2. package/CHANGELOG.md +21 -0
  3. package/build/{.eslintrc.js → .eslintrc.json} +5 -5
  4. package/build/build.js +59 -80
  5. package/build/icons.js +2 -11
  6. package/build/less.js +23 -38
  7. package/build/package.json +4 -0
  8. package/build/prefix.js +38 -94
  9. package/build/publishDev.js +11 -18
  10. package/build/release.js +34 -60
  11. package/build/scope.js +49 -84
  12. package/build/scss.js +14 -16
  13. package/build/util.js +107 -81
  14. package/dist/css/uikit-core-rtl.css +10 -10
  15. package/dist/css/uikit-core-rtl.min.css +1 -1
  16. package/dist/css/uikit-core.css +10 -10
  17. package/dist/css/uikit-core.min.css +1 -1
  18. package/dist/css/uikit-rtl.css +10 -10
  19. package/dist/css/uikit-rtl.min.css +1 -1
  20. package/dist/css/uikit.css +10 -10
  21. package/dist/css/uikit.min.css +1 -1
  22. package/dist/js/components/countdown.js +1 -1
  23. package/dist/js/components/countdown.min.js +1 -1
  24. package/dist/js/components/filter.js +1 -1
  25. package/dist/js/components/filter.min.js +1 -1
  26. package/dist/js/components/lightbox-panel.js +1 -1
  27. package/dist/js/components/lightbox-panel.min.js +1 -1
  28. package/dist/js/components/lightbox.js +1 -1
  29. package/dist/js/components/lightbox.min.js +1 -1
  30. package/dist/js/components/notification.js +1 -1
  31. package/dist/js/components/notification.min.js +1 -1
  32. package/dist/js/components/parallax.js +1 -1
  33. package/dist/js/components/parallax.min.js +1 -1
  34. package/dist/js/components/slider-parallax.js +1 -1
  35. package/dist/js/components/slider-parallax.min.js +1 -1
  36. package/dist/js/components/slider.js +1 -1
  37. package/dist/js/components/slider.min.js +1 -1
  38. package/dist/js/components/slideshow-parallax.js +1 -1
  39. package/dist/js/components/slideshow-parallax.min.js +1 -1
  40. package/dist/js/components/slideshow.js +1 -1
  41. package/dist/js/components/slideshow.min.js +1 -1
  42. package/dist/js/components/sortable.js +1 -1
  43. package/dist/js/components/sortable.min.js +1 -1
  44. package/dist/js/components/tooltip.js +1 -1
  45. package/dist/js/components/tooltip.min.js +1 -1
  46. package/dist/js/components/upload.js +1 -1
  47. package/dist/js/components/upload.min.js +1 -1
  48. package/dist/js/uikit-core.js +23 -14
  49. package/dist/js/uikit-core.min.js +2 -2
  50. package/dist/js/uikit-icons.js +1 -1
  51. package/dist/js/uikit-icons.min.js +1 -1
  52. package/dist/js/uikit.js +23 -14
  53. package/dist/js/uikit.min.js +2 -2
  54. package/package.json +15 -14
  55. package/src/js/util/event.js +7 -7
  56. package/src/js/util/viewport.js +13 -7
  57. package/src/less/components/base.less +7 -4
  58. package/src/less/components/card.less +7 -7
  59. package/src/less/components/form-range.less +1 -1
  60. package/src/less/components/notification.less +1 -1
  61. package/src/less/components/padding.less +1 -1
  62. package/src/less/components/spinner.less +2 -2
  63. package/src/less/components/table.less +3 -3
  64. package/src/less/components/transition.less +4 -4
  65. package/src/less/components/utility.less +4 -4
  66. package/src/scss/components/base.scss +7 -4
  67. package/src/scss/components/card.scss +7 -7
  68. package/src/scss/components/form-range.scss +1 -1
  69. package/src/scss/components/notification.scss +1 -1
  70. package/src/scss/components/padding.scss +1 -1
  71. package/src/scss/components/spinner.scss +2 -2
  72. package/src/scss/components/table.scss +3 -3
  73. package/src/scss/components/transition.scss +4 -4
  74. package/src/scss/components/utility.scss +4 -4
  75. package/src/scss/variables-theme.scss +16 -13
  76. package/src/scss/variables.scss +16 -13
  77. package/tests/scroll.html +65 -1
@@ -1,12 +1,12 @@
1
- module.exports = {
1
+ {
2
2
  "root":true,
3
3
  "env": {
4
4
  "es6": true,
5
5
  "browser": true,
6
- "commonjs": true,
6
+ "commonjs": true
7
7
  },
8
8
  "extends": [
9
- "eslint:recommended",
9
+ "eslint:recommended"
10
10
  ],
11
11
  "parserOptions": {
12
12
  "sourceType": "module"
@@ -59,6 +59,6 @@ module.exports = {
59
59
  "space-infix-ops": "error",
60
60
  "space-unary-ops": "error",
61
61
  "spaced-comment": "error",
62
- "template-curly-spacing": "error",
62
+ "template-curly-spacing": "error"
63
63
  }
64
- };
64
+ }
package/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # Changelog
2
2
 
3
+ ### WIP
4
+
5
+ ### Changed
6
+
7
+ - Upgrade LESS to version 4
8
+
9
+ ## 3.8.1 (November 5, 2021)
10
+
11
+ ### Added
12
+
13
+ - Add Less variables for outline style
14
+
15
+ ### Changed
16
+
17
+ - Make padding large a little bigger on small devices
18
+ - Change logo color to emphasis
19
+
20
+ ### Fixed
21
+
22
+ - Fix scrollIntoView function with offset argument provided
23
+
3
24
  ## 3.8.0 (October 28, 2021)
4
25
 
5
26
  ### Changed
@@ -1,13 +1,13 @@
1
- module.exports = {
1
+ {
2
2
  "root": true,
3
3
  "env": {
4
4
  "es6": true,
5
- "node": true,
5
+ "node": true
6
6
  },
7
7
  "extends": [
8
- "../.eslintrc.js",
8
+ "../.eslintrc.js"
9
9
  ],
10
10
  "parserOptions": {
11
- "ecmaVersion": 2018
11
+ "ecmaVersion": 2020
12
12
  }
13
- };
13
+ }
package/build/build.js CHANGED
@@ -1,58 +1,8 @@
1
- const path = require('path');
2
- const glob = require('glob');
3
- const util = require('./util');
4
- const camelize = require('camelcase');
5
- const argv = require('minimist')(process.argv.slice(2));
1
+ import path from 'path';
2
+ import camelize from 'camelcase';
3
+ import {__dirname, args, compile, glob, icons} from './util.js';
6
4
 
7
- argv._.forEach(arg => {
8
- const tokens = arg.split('=');
9
- argv[tokens[0]] = tokens[1] || true;
10
- });
11
-
12
- const numArgs = Object.keys(argv).length;
13
- argv.all = argv.all || numArgs <= 1; // no arguments passed, so compile all
14
-
15
- const minify = !(argv.debug || argv.nominify || argv.d);
16
-
17
- // -----
18
-
19
- // map component build jobs
20
- const components = glob.sync('src/js/components/!(index).js').reduce((components, file) => {
21
-
22
- const name = path.basename(file, '.js');
23
-
24
- components[name] = () =>
25
- util.compile(`${__dirname}/wrapper/component.js`, `dist/js/components/${name}`, {
26
- name,
27
- minify,
28
- external: ['uikit', 'uikit-util'],
29
- globals: {uikit: 'UIkit', 'uikit-util': 'UIkit.util'},
30
- aliases: {component: path.resolve(__dirname, '../src/js/components', name)},
31
- replaces: {NAME: `'${camelize(name)}'`}
32
- });
33
-
34
- return components;
35
-
36
- }, {});
37
-
38
- const steps = {
39
-
40
- core: () => util.compile('src/js/uikit-core.js', 'dist/js/uikit-core', {minify}),
41
- uikit: () => util.compile('src/js/uikit.js', 'dist/js/uikit', {minify}),
42
- icons: async () => util.compile('build/wrapper/icons.js', 'dist/js/uikit-icons', {
43
- minify,
44
- name: 'icons',
45
- replaces: {ICONS: await util.icons('{src/images,custom}/icons/*.svg')}}
46
- ),
47
- tests: async () => util.compile('tests/js/index.js', 'tests/js/test', {
48
- minify,
49
- name: 'test',
50
- replaces: {TESTS: await getTestFiles()}}
51
- )
52
-
53
- };
54
-
55
- if (argv.h || argv.help) {
5
+ if (args.h || args.help) {
56
6
 
57
7
  console.log(`
58
8
  usage:
@@ -71,46 +21,75 @@ if (argv.h || argv.help) {
71
21
  components: ${Object.keys(components).join(', ')}
72
22
 
73
23
  `);
24
+ process.exit(0);
25
+ }
74
26
 
27
+ const minify = !(args.d || args.debug || args.nominify);
28
+ const uikit = getUIkitTasks(minify);
29
+ const components = await getComponentTasks(minify);
30
+
31
+ let tasks;
32
+ const allTasks = {...uikit, ...components};
33
+ if (args.all || Object.keys(args).length <= 1) {
34
+ tasks = allTasks;
35
+ } else if (args.components) {
36
+ tasks = components;
75
37
  } else {
38
+ tasks = Object.keys(args)
39
+ .map(step => allTasks[step])
40
+ .filter(t => t)
41
+ }
76
42
 
77
- let jobs = collectJobs();
43
+ await Promise.all(Object.values(tasks).map(task => task()));
78
44
 
79
- if (jobs.length === 0) {
80
- argv.all = true;
81
- jobs = collectJobs();
82
- }
45
+ function getUIkitTasks(minify) {
46
+ return {
83
47
 
48
+ core: () => compile('src/js/uikit-core.js', 'dist/js/uikit-core', {minify}),
49
+
50
+ uikit: () => compile('src/js/uikit.js', 'dist/js/uikit', {minify}),
51
+
52
+ icons: async () => compile('build/wrapper/icons.js', 'dist/js/uikit-icons', {
53
+ minify,
54
+ name: 'icons',
55
+ replaces: {ICONS: await icons('{src/images,custom}/icons/*.svg')}
56
+ }
57
+ ),
58
+
59
+ tests: async () => compile('tests/js/index.js', 'tests/js/test', {
60
+ minify,
61
+ name: 'test',
62
+ replaces: {TESTS: await getTestFiles()}
63
+ }
64
+ ),
65
+
66
+ };
84
67
  }
85
68
 
86
- function collectJobs() {
69
+ async function getComponentTasks(minify) {
70
+
71
+ const components = await glob('src/js/components/!(index).js');
87
72
 
88
- // if parameter components is set or all or none(implicit all), add all components
89
- if (argv.components || argv.all) {
90
- Object.assign(argv, components);
91
- }
73
+ return components.reduce((components, file) => {
92
74
 
93
- // if parameter components is set or all or none(implicit all), add all steps
94
- if (argv.all) {
95
- Object.assign(argv, steps);
96
- }
75
+ const name = path.basename(file, '.js');
97
76
 
98
- Object.assign(steps, components);
77
+ components[name] = () =>
78
+ compile(`${__dirname}/wrapper/component.js`, `dist/js/components/${name}`, {
79
+ name,
80
+ minify,
81
+ external: ['uikit', 'uikit-util'],
82
+ globals: {uikit: 'UIkit', 'uikit-util': 'UIkit.util'},
83
+ aliases: {component: path.resolve(__dirname, '../src/js/components', name)},
84
+ replaces: {NAME: `'${camelize(name)}'`}
85
+ });
99
86
 
100
- // Object.keys(argv).forEach(step => components[step] && componentJobs.push(components[step]()));
101
- return Object.keys(argv)
102
- .filter(step => steps[step])
103
- .map(step =>
104
- steps[step]()
105
- .catch(({message}) => {
106
- console.error(message);
107
- process.exitCode = 1;
108
- })
109
- );
87
+ return components;
110
88
 
89
+ }, {});
111
90
  }
112
91
 
113
92
  async function getTestFiles() {
114
- const files = await util.glob('tests/!(index).html', {nosort: true});
93
+ const files = await glob('tests/!(index).html', {nosort: true});
115
94
  return JSON.stringify(files.map(file => path.basename(file, '.html')));
116
95
  }
package/build/icons.js CHANGED
@@ -1,18 +1,9 @@
1
- const {compile, glob, icons} = require('./util');
2
- const args = require('minimist')(process.argv);
1
+ import {args, compile, glob, icons} from './util.js';
3
2
 
4
3
  const path = args.c || args.custom || 'custom/*/icons';
5
4
  const match = args.n || args.name || '([a-z]+)/icons$';
6
5
 
7
- run().catch(({message}) => {
8
- console.error(message);
9
- process.exitCode = 1;
10
- });
11
-
12
- async function run() {
13
- const folders = await glob(path);
14
- return Promise.all(folders.map(compileIcons));
15
- }
6
+ await Promise.all((await glob(path)).map(compileIcons));
16
7
 
17
8
  async function compileIcons(folder) {
18
9
  const [, name] = folder.toString().match(new RegExp(match, 'i'));
package/build/less.js CHANGED
@@ -1,56 +1,41 @@
1
- const fs = require('fs');
2
- const glob = require('glob');
3
- const path = require('path');
4
- const util = require('./util');
5
- const rtlcss = require('rtlcss');
6
- const postcss = require('postcss');
7
- const argv = require('minimist')(process.argv);
8
- const args = argv._;
9
- const rtl = ~args.indexOf('rtl');
10
-
11
- argv._.forEach(arg => {
12
- const tokens = arg.split('=');
13
- argv[tokens[0]] = tokens[1] || true;
14
- });
15
-
16
- const develop = argv.develop || argv.debug || argv.d || argv.nominify;
17
-
18
- [
1
+ import {basename} from 'path';
2
+ import rtlcss from 'rtlcss';
3
+ import postcss from 'postcss';
4
+ import {args, banner, glob, minify, pathExists, read, readJson, renderLess, write} from './util.js';
5
+
6
+ const rtl = args.rtl;
7
+ const develop = args.develop || args.debug || args.d || args.nominify;
8
+ const sources = [
19
9
  {src: 'src/less/uikit.less', dist: `dist/css/uikit-core${rtl ? '-rtl' : ''}.css`},
20
10
  {src: 'src/less/uikit.theme.less', dist: `dist/css/uikit${rtl ? '-rtl' : ''}.css`}
11
+ ];
21
12
 
22
- ].forEach(config => compile(config.src, config.dist));
13
+ const themes = await pathExists('themes.json') ? await readJson('themes.json') : {};
23
14
 
24
- const themes = fs.existsSync('themes.json') ? JSON.parse(fs.readFileSync('themes.json')) : {};
25
-
26
- glob.sync('custom/*.less').forEach(file => {
27
-
28
- const theme = path.basename(file, '.less');
15
+ for (const src of await glob('custom/*.less')) {
16
+ const theme = basename(src, '.less');
29
17
  const dist = `dist/css/uikit.${theme}${rtl ? '-rtl' : ''}.css`;
30
18
 
31
19
  themes[theme] = {css: `../${dist}`};
32
20
 
33
- if (fs.existsSync(`dist/js/uikit-icons-${theme}.js`)) {
21
+ if (await pathExists(`dist/js/uikit-icons-${theme}.js`)) {
34
22
  themes[theme].icons = `../dist/js/uikit-icons-${theme}.js`;
35
23
  }
36
24
 
37
- compile(file, dist)
38
- .catch(({message}) => {
39
- console.error(message);
40
- process.exitCode = 1;
41
- });
25
+ sources.push({src, dist});
26
+ }
42
27
 
43
- });
28
+ await Promise.all(sources.map(({src, dist}) => compile(src, dist, develop, rtl)))
44
29
 
45
- if (!rtl && (Object.keys(themes).length || !fs.existsSync('themes.json'))) {
46
- util.write('themes.json', JSON.stringify(themes));
30
+ if (!rtl && (Object.keys(themes).length || !await pathExists('themes.json'))) {
31
+ await write('themes.json', JSON.stringify(themes));
47
32
  }
48
33
 
49
- async function compile(file, dist) {
34
+ async function compile(file, dist, develop, rtl) {
50
35
 
51
- const less = await util.read(file);
36
+ const less = await read(file);
52
37
 
53
- let output = (await util.renderLess(less, {
38
+ let output = (await renderLess(less, {
54
39
  relativeUrls: true,
55
40
  rootpath: '../../',
56
41
  paths: ['src/less/', 'custom/']
@@ -79,10 +64,10 @@ async function compile(file, dist) {
79
64
  output = output.replace(/stroke-dashoffset: (\d+)px/g, 'stroke-dashoffset: -$1px');
80
65
  }
81
66
 
82
- const res = await util.write(dist, util.banner + output);
67
+ await write(dist, banner + output);
83
68
 
84
69
  if (!develop) {
85
- await util.minify(res);
70
+ await minify(dist);
86
71
  }
87
72
 
88
73
  }
@@ -0,0 +1,4 @@
1
+ {
2
+ "private": true,
3
+ "type": "module"
4
+ }
package/build/prefix.js CHANGED
@@ -1,17 +1,7 @@
1
- const fs = require('fs');
2
- const glob = require('glob');
3
- const util = require('./util');
4
- const argv = require('minimist')(process.argv.slice(2));
5
- const prompt = require('inquirer').createPromptModule();
1
+ import inquirer from 'inquirer';
2
+ import {args, glob, read, replaceInFile, validClassName} from './util.js';
6
3
 
7
- argv._.forEach(arg => {
8
- const tokens = arg.split('=');
9
- argv[tokens[0]] = tokens[1] || true;
10
- });
11
-
12
- const allFiles = [];
13
-
14
- if (argv.h || argv.help) {
4
+ if (args.h || args.help) {
15
5
  console.log(`
16
6
  usage:
17
7
 
@@ -23,104 +13,58 @@ if (argv.h || argv.help) {
23
13
  prefix.js -p=xyz // will replace any existing prefix with xyz
24
14
 
25
15
  `);
26
- } else {
27
- readAllFiles()
28
- .then(startProcess)
29
- .catch(({message}) => {
30
- console.error(message);
31
- process.exitCode = 1;
32
- });
16
+ process.exit(0);
33
17
  }
34
18
 
35
- function startProcess() {
36
-
37
- const currentPrefix = findExistingPrefix();
38
- getPrefix().then(prefix => replacePrefix(currentPrefix, prefix));
19
+ const currentPrefix = await findExistingPrefix();
20
+ const prefix = await getPrefix();
39
21
 
22
+ if (currentPrefix === prefix) {
23
+ throw new Error(`already prefixed with: ${prefix}`);
40
24
  }
41
25
 
42
- function findExistingPrefix() {
43
-
44
- // find existing prefix
45
- let currentPrefix;
26
+ await replacePrefix(currentPrefix, prefix);
46
27
 
47
- allFiles.filter(({file}) => ~file.indexOf('uikit.css')).some(({data}) => {
28
+ async function findExistingPrefix() {
29
+ const data = await read('dist/css/uikit.css');
30
+ const res = data.match(new RegExp(`(${validClassName.source})(-[a-z]+)?-grid`));
31
+ return res && res[1];
32
+ }
48
33
 
49
- const res = data.match(new RegExp(`(${util.validClassName.source})(-[a-z]+)?-grid`));
50
- currentPrefix = res && res[1];
51
- return currentPrefix;
34
+ async function getPrefix() {
52
35
 
53
- });
54
- return currentPrefix;
36
+ const prefixFromInput = args.p || args.prefix;
55
37
 
56
- }
38
+ if (!prefixFromInput) {
57
39
 
58
- function getPrefix() {
40
+ const prompt = inquirer.createPromptModule();
59
41
 
60
- const prefixFromInput = argv.p || argv.prefix;
61
- if (!prefixFromInput) {
62
- return prompt({
42
+ return (await prompt({
63
43
  name: 'prefix',
64
44
  message: 'enter a prefix',
65
- validate: (val, res) => val.length && val.match(util.validClassName) ? !!(res.prefix = val) : 'invalid prefix'
66
- })
67
- .then(res => res.prefix);
68
- } else if (util.validClassName.test(prefixFromInput)) {
69
- return Promise.resolve(prefixFromInput);
70
- } else {
71
- throw 'illegal prefix: ' + prefixFromInput;
45
+ validate: (val, res) => val.length && val.match(validClassName) ? !!(res.prefix = val) : 'invalid prefix'
46
+ })).prefix;
72
47
  }
73
- }
74
-
75
- function replacePrefix(from, to) {
76
48
 
77
- if (from === to) {
78
- console.log('already prefixed with: ' + from);
49
+ if (validClassName.test(prefixFromInput)) {
50
+ return prefixFromInput;
79
51
  } else {
80
- allFiles.forEach(({file, data, replace}) => {
81
- data = replace(data, from, to);
82
- fs.writeFileSync(file, data);
83
- });
52
+ throw `illegal prefix: ${prefixFromInput}`;
84
53
  }
85
54
  }
86
55
 
87
- function readAllFiles() {
88
-
89
- const globs = [];
90
-
91
- globs.push(new Promise(res =>
92
- glob('dist/**/*.css', (err, files) => {
93
- const reads = [];
94
- files.forEach(file =>
95
- reads.push(util.read(file, data =>
96
- allFiles.push({
97
- file,
98
- data,
99
- replace: (data, needle, replace) => data.replace(new RegExp(`${needle}-` + /([a-z\d-]+)/.source, 'g'), `${replace}-$1`)
100
- })
101
- ))
102
- );
103
- Promise.all(reads).then(res);
104
- }
105
- )
106
- ));
107
-
108
- globs.push(new Promise(res =>
109
- glob('dist/**/*.js', (err, files) => {
110
- const reads = [];
111
- files.forEach(file =>
112
- reads.push(util.read(file, data =>
113
- allFiles.push({
114
- file,
115
- data,
116
- replace: (data, needle, replace) => data.replace(new RegExp(`${needle}-`, 'g'), `${replace}-`).replace(new RegExp(`(${needle})?UIkit`, 'g'), `${replace === 'uk' ? '' : replace}UIkit`)
117
- })
118
- ))
119
- );
120
- Promise.all(reads).then(res);
121
- }
122
- )
123
- ));
124
-
125
- return Promise.all(globs);
56
+ async function replacePrefix(from, to) {
57
+ for (const file of await glob('dist/**/*.css')) {
58
+ await replaceInFile(file, data => data.replace(
59
+ new RegExp(`${from}-${/([a-z\d-]+)/.source}`, 'g'),
60
+ `${to}-$1`
61
+ ));
62
+ }
63
+
64
+ for (const file of await glob('dist/**/*.js')) {
65
+ await replaceInFile(file, data => data
66
+ .replace(new RegExp(`${from}-`, 'g'),`${to}-`)
67
+ .replace(new RegExp(`(${from})?UIkit`, 'g'), `${to === 'uk' ? '' : to}UIkit`)
68
+ );
69
+ }
126
70
  }
@@ -1,39 +1,32 @@
1
- const {inc} = require('semver');
2
- const {resolve} = require('path');
3
- const {execSync} = require('child_process');
4
- const argv = require('minimist')(process.argv.slice(2));
5
-
6
- argv._.forEach(arg => {
7
- const tokens = arg.split('=');
8
- argv[tokens[0]] = tokens[1] || true;
9
- });
1
+ import {inc} from 'semver';
2
+ import {resolve} from 'path';
3
+ import {args, getVersion, run} from './util.js';
10
4
 
11
5
  // default exec options
12
6
  const options = {cwd: resolve(`${__dirname}/..`), encoding: 'utf8'};
13
-
14
- if (isDevCommit() || argv.f || argv.force) {
7
+ if (args.f || args.force || await isDevCommit()) {
15
8
 
16
9
  // increase version patch number
17
- const version = inc(require('../package.json').version, 'patch');
10
+ const version = inc(await getVersion(), 'patch');
18
11
 
19
12
  // get current git hash
20
- const hash = execSync('git rev-parse --short HEAD', options).trim();
13
+ const hash = (await run('git rev-parse --short HEAD', options)).trim();
21
14
 
22
15
  // set version of package.json
23
- execSync(`npm version ${version}-dev.${hash} --git-tag-version false`, {...options, stdio: 'inherit'});
16
+ await run(`npm version ${version}-dev.${hash} --git-tag-version false`, {...options, stdio: 'inherit'});
24
17
 
25
18
  // create dist files
26
- execSync('yarn compile && yarn compile-rtl && yarn build-scss', {...options, stdio: 'inherit'});
19
+ await run('yarn compile && yarn compile-rtl && yarn build-scss', {...options, stdio: 'inherit'});
27
20
 
28
21
  // publish to dev tag
29
- execSync('npm publish --tag dev', options);
22
+ await run('npm publish --tag dev', options);
30
23
 
31
24
  }
32
25
 
33
- function isDevCommit() {
26
+ async function isDevCommit() {
34
27
 
35
28
  // check for changes to publish (%B: raw body (unwrapped subject and body)
36
- const message = execSync('git log -1 --pretty=%B', options);
29
+ const message = await run('git log -1 --pretty=%B', options);
37
30
 
38
31
  const type = message.match(/^(revert: )?(feat|fix|polish|docs|style|refactor|perf|test|workflow|ci|chore|types)(\(.+\))?: .{1,50}/);
39
32