particle-commands 1.0.4 → 1.0.5

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.
@@ -20,7 +20,7 @@ jobs:
20
20
  command: npm run test:ci
21
21
  publish-npm:
22
22
  docker:
23
- - image: cimg/node:16.15.0 # Primary execution image
23
+ - image: cimg/node:22.18.0 # Primary execution image
24
24
  auth:
25
25
  username: $DOCKERHUB_USERNAME
26
26
  password: $DOCKERHUB_PASSWORD
@@ -48,7 +48,7 @@ workflows:
48
48
  - particle-ci-private
49
49
  matrix:
50
50
  parameters:
51
- node-version: ["16.15.0"]
51
+ node-version: ["22.18.0"]
52
52
  # run tests for all branches and tags
53
53
  filters:
54
54
  tags:
@@ -65,4 +65,4 @@ workflows:
65
65
  tags:
66
66
  only: /^v.*/
67
67
  branches:
68
- ignore: /.*/
68
+ ignore: /.*/
package/.nvmrc CHANGED
@@ -1 +1 @@
1
- 16
1
+ 22
package/CHANGELOG.md CHANGED
@@ -3,6 +3,11 @@
3
3
  The format is based on [Keep a Changelog](http://keepachangelog.com/)
4
4
  and this project adheres to [Semantic Versioning](http://semver.org/).
5
5
 
6
+ ### 1.0.5 - 2025-10-21
7
+ - Bump to exclusive >= node 22
8
+ - Migrate to latest particle eslint config
9
+ - Update engines
10
+
6
11
  ### 1.0.4 - 2025-09-10
7
12
  - Update particle-library-manager dependency to 1.0.4
8
13
  - Update particle-api-js to 11.1.4
package/README.md CHANGED
@@ -7,11 +7,11 @@ UX-neutral commands for developer tools
7
7
 
8
8
  ## Installation
9
9
  1. Install Node.js [`node@16.x` and `npm@8.x` are required]
10
- 1. Clone this repository `$ git clone git@github.com:particle-iot/particle-commands.git && cd ./particle-commands`
11
- 1. Install dependencies `$ npm install`
12
- 1. View available commands `$ npm run`
13
- 1. Run the tests `$ npm test`
14
- 1. Start Hacking!
10
+ 2. Clone this repository `$ git clone git@github.com:particle-iot/particle-commands.git && cd ./particle-commands`
11
+ 3. Install dependencies `$ npm install`
12
+ 4. View available commands `$ npm run`
13
+ 5. Run the tests `$ npm test`
14
+ 6. Start Hacking!
15
15
 
16
16
  ## Development
17
17
 
@@ -91,4 +91,4 @@ Packages are only released from the `main` branch after peer review.
91
91
 
92
92
  ## License
93
93
 
94
- Copyright © 2016 Particle Industries, Inc. Released under the Apache 2.0 license. See [LICENSE](/LICENSE) for details.
94
+ Copyright © 2016 Particle Industries, Inc. Released under the Apache 2.0 license. See [LICENSE](/LICENSE) for details.
@@ -1,14 +1,13 @@
1
-
2
- import {Projects, Libraries} from '../src/cmd/Projects';
3
-
1
+ import { Projects, Libraries } from '../src/cmd/Projects';
4
2
 
5
3
  const projects = new Projects();
6
4
  const libraries = new Libraries();
7
5
 
8
-
9
- libraries.myLibrariesFolder().then(path => {
6
+ libraries.myLibrariesFolder().then((path) => {
7
+ // eslint-disable-next-line no-console
10
8
  console.log('my libraries:', path);
11
9
  });
12
- projects.myProjectsFolder().then(path => {
10
+ projects.myProjectsFolder().then((path) => {
11
+ // eslint-disable-next-line no-console
13
12
  console.log('my projects:', path);
14
- });
13
+ });
@@ -18,24 +18,24 @@ var CommandSite = function () {
18
18
 
19
19
  /**
20
20
  * @abstract
21
- * @param {object} state Conversation state
22
- * @param {object} cmd The command that was started
21
+ * @param {object} _state Conversation state
22
+ * @param {object} _cmd The command that was started
23
23
  */
24
24
 
25
25
 
26
26
  _createClass(CommandSite, [{
27
27
  key: 'begin',
28
- value: function begin(state, cmd) {}
28
+ value: function begin(_state, _cmd) {}
29
29
 
30
30
  /**
31
31
  * @abstract
32
- * @param {object} state Conversation state
33
- * @param {object} cmd The command that was finished
32
+ * @param {object} _state Conversation state
33
+ * @param {object} _cmd The command that was finished
34
34
  */
35
35
 
36
36
  }, {
37
37
  key: 'end',
38
- value: function end(state, cmd) {}
38
+ value: function end(_state, _cmd) {}
39
39
  }, {
40
40
  key: 'run',
41
41
  value: async function run(cmd) {
@@ -72,11 +72,11 @@ var Command = function () {
72
72
 
73
73
  /**
74
74
  * An async function/returns a promise for the command execution.
75
- * @param {object} state Conversation state
76
- * @param {CommandSite} site The command interaction site.
75
+ * @param {object} _state Conversation state
76
+ * @param {CommandSite} _site The command interaction site.
77
77
  * @abstract
78
78
  */
79
- value: function run(state, site) {}
79
+ value: function run(_state, _site) {}
80
80
  }]);
81
81
 
82
82
  return Command;
@@ -104,7 +104,7 @@ var AbstractStatefulCommand = function () {
104
104
  }
105
105
  }, {
106
106
  key: 'run',
107
- value: function run(state, site) {
107
+ value: function run(state, _site) {
108
108
  if (state === this) {
109
109
  return this.doRun();
110
110
  }
@@ -45,12 +45,12 @@ var LibraryAddCommandSite = exports.LibraryAddCommandSite = function (_CommandSi
45
45
  }
46
46
  }, {
47
47
  key: 'fetchingLibrary',
48
- value: function fetchingLibrary(promise, name) {
48
+ value: function fetchingLibrary(promise, _name) {
49
49
  return promise;
50
50
  }
51
51
  }, {
52
52
  key: 'addedLibrary',
53
- value: function addedLibrary(name, version) {}
53
+ value: function addedLibrary(_name, _version) {}
54
54
  }]);
55
55
 
56
56
  return LibraryAddCommandSite;
@@ -54,32 +54,32 @@ var LibraryContributeCommandSite = exports.LibraryContributeCommandSite = functi
54
54
 
55
55
  /**
56
56
  * Notification that the library directory is being checked. The library is validated and then loaded.
57
- * @param {Promise} promise The promise to validate the library
58
- * @param {string} directory The directory that contains the library to validate
57
+ * @param {Promise} _promise The promise to validate the library
58
+ * @param {string} _directory The directory that contains the library to validate
59
59
  */
60
60
 
61
61
  }, {
62
62
  key: 'validatingLibrary',
63
- value: function validatingLibrary(promise, directory) {}
63
+ value: function validatingLibrary(_promise, _directory) {}
64
64
 
65
65
  /**
66
66
  * Notification that library contribution is starting
67
- * @param {Promise} promise The promise that will contribute the library.
68
- * @param {Library} library The loaded library
67
+ * @param {Promise} _promise The promise that will contribute the library.
68
+ * @param {Library} _library The loaded library
69
69
  */
70
70
 
71
71
  }, {
72
72
  key: 'contributingLibrary',
73
- value: function contributingLibrary(promise, library) {}
73
+ value: function contributingLibrary(_promise, _library) {}
74
74
 
75
75
  /**
76
76
  * Notification that the library has been successfully contributed.
77
- * @param {Library} library the library that was contributed.
77
+ * @param {Library} _library the library that was contributed.
78
78
  */
79
79
 
80
80
  }, {
81
81
  key: 'contributeComplete',
82
- value: function contributeComplete(library) {}
82
+ value: function contributeComplete(_library) {}
83
83
  }]);
84
84
 
85
85
  return LibraryContributeCommandSite;
@@ -43,14 +43,14 @@ var LibraryDeleteCommandSite = exports.LibraryDeleteCommandSite = function (_Com
43
43
 
44
44
  /**
45
45
  * Notifies the site that the command is about to retrieve the libraries.
46
- * @param {Promise}promise The command to retrieve the libraries.
47
- * @param {string}libraryIdent the identifier of the library being deleted
46
+ * @param {Promise} promise The command to retrieve the libraries.
47
+ * @param {string} _libraryIdent the identifier of the library being deleted
48
48
  * @return {Promise} to list libraries
49
49
  */
50
50
 
51
51
  }, {
52
52
  key: 'notifyStart',
53
- value: function notifyStart(promise, libraryIdent) {
53
+ value: function notifyStart(promise, _libraryIdent) {
54
54
  return promise;
55
55
  }
56
56
  }, {
@@ -92,22 +92,22 @@ var LibraryInstallCommandSite = exports.LibraryInstallCommandSite = function (_C
92
92
  }
93
93
  }, {
94
94
  key: 'notifyIncorrectLayout',
95
- value: function notifyIncorrectLayout(actualLayout, expectedLayout, libName, targetDir) {
95
+ value: function notifyIncorrectLayout(_actualLayout, _expectedLayout, _libName, _targetDir) {
96
96
  return Promise.resolve();
97
97
  }
98
98
  }, {
99
99
  key: 'notifyCheckingLibrary',
100
- value: function notifyCheckingLibrary(libName) {
100
+ value: function notifyCheckingLibrary(_libName) {
101
101
  return Promise.resolve();
102
102
  }
103
103
  }, {
104
104
  key: 'notifyFetchingLibrary',
105
- value: function notifyFetchingLibrary(lib, targetDir) {
105
+ value: function notifyFetchingLibrary(_lib, _targetDir) {
106
106
  return Promise.resolve();
107
107
  }
108
108
  }, {
109
109
  key: 'notifyInstalledLibrary',
110
- value: function notifyInstalledLibrary(lib, targetDir) {
110
+ value: function notifyInstalledLibrary(_lib, _targetDir) {
111
111
  return Promise.resolve();
112
112
  }
113
113
  }]);
@@ -137,7 +137,7 @@ function buildAdapters(libDir, libName) {
137
137
  * @returns {function} A function that provides the target library directory
138
138
  */
139
139
  function vendoredInstallStrategy(project) {
140
- return function (name, version) {
140
+ return function (name, _version) {
141
141
  return project.libraryDirectory(true, name);
142
142
  };
143
143
  }
@@ -177,11 +177,11 @@ var LibraryInstallCommand = exports.LibraryInstallCommand = function (_Command)
177
177
 
178
178
 
179
179
  /**
180
- * @param {LibraryInstallCommandSite} site for the `findHomePath`
180
+ * @param {LibraryInstallCommandSite} _site for the `findHomePath`
181
181
  * @returns {Object|string|*|Promise} The location to store libraries centrally on this machine
182
182
  * @private
183
183
  */
184
- value: function _centralLibrariesDirectory(site) {
184
+ value: function _centralLibrariesDirectory(_site) {
185
185
  return new _projects.Libraries().communityLibrariesFolder();
186
186
  }
187
187
 
@@ -95,29 +95,29 @@ var LibraryListCommandSite = exports.LibraryListCommandSite = function (_Command
95
95
  /**
96
96
  * Notification of a promise to fetch a given library list. The result of the promise is the list of libraries.
97
97
  * NB: Currently unused.
98
- * @param {Promise} promise The promise to fetch the list of libraries
99
- * @param {String} name The configuration name
100
- * @param {Object} settings The final settings for fetching the list
98
+ * @param {Promise} _promise The promise to fetch the list of libraries
99
+ * @param {String} _name The configuration name
100
+ * @param {Object} _settings The final settings for fetching the list
101
101
  * @return {Promise|undefined} either a new promise (wrapping the original promise) or
102
102
  * undefined to use the original unmodified.
103
103
  */
104
104
 
105
105
  }, {
106
106
  key: 'notifyFetchList',
107
- value: function notifyFetchList(promise, name, settings) {
107
+ value: function notifyFetchList(_promise, _name, _settings) {
108
108
  return undefined;
109
109
  }
110
110
 
111
111
  /**
112
112
  * Notification that all the lists are being fetched. The result of the promise is an object, with each
113
113
  * list keyed by the name of the list.
114
- * @param {Promise} promise The promise to fetch all library lists
115
- * @param {Object} settings The settings used to fetch each list
114
+ * @param {Promise} _promise The promise to fetch all library lists
115
+ * @param {Object} _settings The settings used to fetch each list
116
116
  */
117
117
 
118
118
  }, {
119
119
  key: 'notifyFetchLists',
120
- value: function notifyFetchLists(promise, settings) {}
120
+ value: function notifyFetchLists(_promise, _settings) {}
121
121
  }, {
122
122
  key: 'error',
123
123
  value: function error(err) {
@@ -48,23 +48,23 @@ var LibraryMigrateCommandSite = exports.LibraryMigrateCommandSite = function (_C
48
48
 
49
49
  /**
50
50
  * Notify that the given library is being migrated.
51
- * @param {string} dir The directory containing the library
51
+ * @param {string} _dir The directory containing the library
52
52
  */
53
53
 
54
54
  }, {
55
55
  key: 'notifyStart',
56
- value: function notifyStart(dir) {}
56
+ value: function notifyStart(_dir) {}
57
57
 
58
58
  /**
59
59
  *
60
- * @param {string} lib The directory containing the library that migration was attempted on.
61
- * @param {object} result There result of the migration.
62
- * @param {object} err if defined, is the error that occurred migrating the library.
60
+ * @param {string} _lib The directory containing the library that migration was attempted on.
61
+ * @param {object} _result There result of the migration.
62
+ * @param {object} _err if defined, is the error that occurred migrating the library.
63
63
  */
64
64
 
65
65
  }, {
66
66
  key: 'notifyEnd',
67
- value: function notifyEnd(lib, result, err) {}
67
+ value: function notifyEnd(_lib, _result, _err) {}
68
68
  }, {
69
69
  key: 'isAdaptersRequired',
70
70
  value: function isAdaptersRequired() {
@@ -124,15 +124,15 @@ var AbstractLibraryMigrateCommand = function (_Command) {
124
124
 
125
125
  /**
126
126
  * Handle migration of a single library.
127
- * @param {FileSystemLibraryRepo} repo The filesystem repo containing the library.
128
- * @param {string} libname The identifier of the library
129
- * @param {object} state the current command state
130
- * @param {LibraryMigrateCommandSite} site the command site
127
+ * @param {FileSystemLibraryRepo} _repo The filesystem repo containing the library.
128
+ * @param {string} _libname The identifier of the library
129
+ * @param {object} _state the current command state
130
+ * @param {LibraryMigrateCommandSite} _site the command site
131
131
  */
132
132
 
133
133
  }, {
134
134
  key: 'processLibrary',
135
- value: function processLibrary(repo, libname, state, site) {}
135
+ value: function processLibrary(_repo, _libname, _state, _site) {}
136
136
  }]);
137
137
 
138
138
  return AbstractLibraryMigrateCommand;
@@ -157,7 +157,7 @@ var LibraryMigrateTestCommand = exports.LibraryMigrateTestCommand = function (_A
157
157
 
158
158
  _createClass(LibraryMigrateTestCommand, [{
159
159
  key: 'processLibrary',
160
- value: function processLibrary(repo, libname, state, site, libdir) {
160
+ value: function processLibrary(repo, libname, _state, _site, _libdir) {
161
161
  return resultError(repo.getLibraryLayout(libname));
162
162
  }
163
163
  }]);
@@ -51,22 +51,22 @@ var LibraryPublishCommandSite = exports.LibraryPublishCommandSite = function (_C
51
51
 
52
52
  /**
53
53
  * Notification that library publishing is starting
54
- * @param {Promise} promise The promise that will publish the library.
55
- * @param {string} ident The library identifier
54
+ * @param {Promise} _promise The promise that will publish the library.
55
+ * @param {string} _ident The library identifier
56
56
  */
57
57
 
58
58
  }, {
59
59
  key: 'publishingLibrary',
60
- value: function publishingLibrary(promise, ident) {}
60
+ value: function publishingLibrary(_promise, _ident) {}
61
61
 
62
62
  /**
63
63
  * Notification that the library publishing has completed.
64
- * @param {Library} library the library that was published.
64
+ * @param {Library} _library the library that was published.
65
65
  */
66
66
 
67
67
  }, {
68
68
  key: 'publishLibraryComplete',
69
- value: function publishLibraryComplete(library) {}
69
+ value: function publishLibraryComplete(_library) {}
70
70
  }]);
71
71
 
72
72
  return LibraryPublishCommandSite;
@@ -43,14 +43,14 @@ var LibrarySearchCommandSite = exports.LibrarySearchCommandSite = function (_Com
43
43
 
44
44
  /**
45
45
  * Notifies the site that the command is about to retrieve the libraries.
46
- * @param {Promise}promise The command to retrieve the libraries.
47
- * @param {string}filter Optional
46
+ * @param {Promise} promise The command to retrieve the libraries.
47
+ * @param {string} _filter Optional
48
48
  * @return {Promise} to list libraries
49
49
  */
50
50
 
51
51
  }, {
52
52
  key: 'notifyListLibrariesStart',
53
- value: function notifyListLibrariesStart(promise, filter) {
53
+ value: function notifyListLibrariesStart(promise, _filter) {
54
54
  return promise;
55
55
  }
56
56
  }, {
@@ -17,9 +17,9 @@ var _mkdirp = require('mkdirp');
17
17
 
18
18
  var _mkdirp2 = _interopRequireDefault(_mkdirp);
19
19
 
20
- var _path = require('path');
20
+ var _path2 = require('path');
21
21
 
22
- var _path2 = _interopRequireDefault(_path);
22
+ var _path3 = _interopRequireDefault(_path2);
23
23
 
24
24
  var _particleLibraryManager = require('particle-library-manager');
25
25
 
@@ -94,7 +94,7 @@ var ProjectInitCommandSite = function (_CommandSite) {
94
94
 
95
95
  }, {
96
96
  key: 'notifyDirectoryExists',
97
- value: function notifyDirectoryExists(dir) {}
97
+ value: function notifyDirectoryExists(_dir) {}
98
98
 
99
99
  /**
100
100
  * Notification of the entire project creation operation.
@@ -104,7 +104,7 @@ var ProjectInitCommandSite = function (_CommandSite) {
104
104
 
105
105
  }, {
106
106
  key: 'notifyCreatingProject',
107
- value: function notifyCreatingProject(path, promise) {}
107
+ value: function notifyCreatingProject(_path, _promise) {}
108
108
 
109
109
  /**
110
110
  * Notification that the command is creating a file or directory.
@@ -121,10 +121,10 @@ var ProjectInitCommandSite = function (_CommandSite) {
121
121
  }
122
122
  }, {
123
123
  key: 'notifyProjectNotCreated',
124
- value: function notifyProjectNotCreated(directory) {}
124
+ value: function notifyProjectNotCreated(_directory) {}
125
125
  }, {
126
126
  key: 'notifyProjectCreated',
127
- value: function notifyProjectCreated(directory) {}
127
+ value: function notifyProjectCreated(_directory) {}
128
128
  }, {
129
129
  key: 'error',
130
130
  value: function error(_error) {
@@ -296,19 +296,19 @@ var ProjectInitCommand = exports.ProjectInitCommand = function (_Command) {
296
296
  var properties = { name: name };
297
297
  var project = new _project_properties2.default(directory, { fs: _project_properties2.default.buildFs(fs) });
298
298
  return this.createNotifyDirectory(site, fs, directory).then(function () {
299
- return _this6.createNotifyTemplateIfNeeded(site, fs, _path2.default.join(directory, '.gitignore'), 'gitignorefile', properties);
299
+ return _this6.createNotifyTemplateIfNeeded(site, fs, _path3.default.join(directory, '.gitignore'), 'gitignorefile', properties);
300
300
  }).then(function () {
301
- return _this6.createNotifyFileIfNeeded(site, fs, _path2.default.join(directory, 'project.properties'), '');
301
+ return _this6.createNotifyFileIfNeeded(site, fs, _path3.default.join(directory, 'project.properties'), '');
302
302
  }).then(function () {
303
- return _this6.createNotifyDirectory(site, fs, _path2.default.join(directory, 'src'));
303
+ return _this6.createNotifyDirectory(site, fs, _path3.default.join(directory, 'src'));
304
304
  }).then(function () {
305
- return _this6.createNotifyDirectory(site, fs, _path2.default.join(directory, '.github', 'workflows'));
305
+ return _this6.createNotifyDirectory(site, fs, _path3.default.join(directory, '.github', 'workflows'));
306
306
  }).then(function () {
307
- return _this6.createNotifyTemplateIfNeeded(site, fs, _path2.default.join(directory, '.github', 'workflows', 'main.yaml'), '.github/workflows/main.yaml', properties);
307
+ return _this6.createNotifyTemplateIfNeeded(site, fs, _path3.default.join(directory, '.github', 'workflows', 'main.yaml'), '.github/workflows/main.yaml', properties);
308
308
  }).then(function () {
309
- return _this6.createNotifyTemplateIfNeeded(site, fs, _path2.default.join(directory, 'README.md'), 'README.md', properties);
309
+ return _this6.createNotifyTemplateIfNeeded(site, fs, _path3.default.join(directory, 'README.md'), 'README.md', properties);
310
310
  }).then(function () {
311
- return _this6.createNotifyTemplateIfNeeded(site, fs, _path2.default.join(directory, 'src', name + '.cpp'), 'src/project.cpp', properties);
311
+ return _this6.createNotifyTemplateIfNeeded(site, fs, _path3.default.join(directory, 'src', name + '.cpp'), 'src/project.cpp', properties);
312
312
  }).then(function () {
313
313
  return project.load();
314
314
  }).then(function () {
@@ -365,7 +365,7 @@ var ProjectInitCommand = exports.ProjectInitCommand = function (_Command) {
365
365
  }], [{
366
366
  key: 'templateFile',
367
367
  value: function templateFile(name) {
368
- return _path2.default.join(__dirname, 'templates', 'project', name);
368
+ return _path3.default.join(__dirname, 'templates', 'project', name);
369
369
  }
370
370
  }]);
371
371
 
@@ -107,7 +107,7 @@ var SystemFolders = function () {
107
107
  }, {
108
108
  key: 'windowsDocumentsFolder',
109
109
  value: function windowsDocumentsFolder() {
110
- return new Promise(function (fulfill, reject) {
110
+ return new Promise(function (fulfill, _rej) {
111
111
  var winreg = require('winreg');
112
112
  var regKey = winreg({
113
113
  hive: winreg.HKCU, // open registry hive HKEY_CURRENT_USER
@@ -0,0 +1,7 @@
1
+ import { particle } from 'eslint-config-particle';
2
+
3
+ export default particle({
4
+ rootDir: import.meta.dirname,
5
+ testGlobals: 'mocha',
6
+ sourceType: 'module'
7
+ });
package/package.json CHANGED
@@ -1,17 +1,48 @@
1
1
  {
2
2
  "name": "particle-commands",
3
3
  "description": "Library of UX-neutral commands that provide key functionality for developer tools",
4
- "version": "1.0.4",
4
+ "version": "1.0.5",
5
5
  "author": "Matthew McGowan",
6
- "bugs": {
7
- "url": "https://github.com/particle-iot/particle-commands/issues"
8
- },
9
6
  "contributors": [
10
7
  {
11
8
  "name": "Julien Vanier",
12
9
  "url": "https://github.com/monkbroc"
13
10
  }
14
11
  ],
12
+ "homepage": "https://github.com/particle-iot/particle-commands/",
13
+ "keywords": [
14
+ "cli",
15
+ "core",
16
+ "electron",
17
+ "iot",
18
+ "particle",
19
+ "photon",
20
+ "spark"
21
+ ],
22
+ "license": "Apache-2.0",
23
+ "main": "./dist/index.js",
24
+ "preferGlobal": false,
25
+ "repository": {
26
+ "type": "git",
27
+ "url": "https://github.com/particle-iot/particle-commands"
28
+ },
29
+ "scripts": {
30
+ "prepare": "npm run compile",
31
+ "preversion": "npm run lint && npm run test && npm run prepare",
32
+ "version": "npm run update-changelog",
33
+ "compile": "npm run compile:src && npm run copy:dotfiles",
34
+ "compile:src": "babel src -d dist --copy-files",
35
+ "copy:dotfiles": "copyfiles -u 4 src/cmd/templates/project/.github/**/* dist/cmd/templates/project/",
36
+ "babel-watch": "babel src -d dist --watch --source-maps --copy-files",
37
+ "doctoc": "doctoc --title '## Table of Contents' README.md",
38
+ "list-folders": "node --require babel-register bin/list_folders.js",
39
+ "test": "npm run lint && npm run test:unit",
40
+ "test:ci": "npm run lint && npm run coverage",
41
+ "test:unit": "mocha test test/cmd test/integration --compilers js:babel-register",
42
+ "lint": "eslint",
43
+ "coverage": "nyc --reporter=text --include='src/**/*.js' --temp-dir=./tmp/ --check-coverage --lines 50 npm run test:unit",
44
+ "update-changelog": "VERSION=`node -p -e \"require('./package.json').version\"` bash -c 'read -p \"Update CHANGELOG.md for version $VERSION and press ENTER when done.\"' && git add CHANGELOG.md"
45
+ },
15
46
  "dependencies": {
16
47
  "babel-runtime": "^6.9.2",
17
48
  "es6-promisify": "^4.1.0",
@@ -24,7 +55,6 @@
24
55
  },
25
56
  "devDependencies": {
26
57
  "babel-cli": "^6.10.1",
27
- "babel-eslint": "^5.0.0",
28
58
  "babel-plugin-add-module-exports": "^0.1.2",
29
59
  "babel-polyfill": "^6.9.1",
30
60
  "babel-preset-es2015": "^6.5.0",
@@ -35,8 +65,8 @@
35
65
  "copyfiles": "^2.4.1",
36
66
  "coveralls-next": "^4.2.1",
37
67
  "doctoc": "^0.15.0",
38
- "eslint": "~2.2.0",
39
- "eslint-config-particle": "^1.0.1",
68
+ "eslint": "~9.37.0",
69
+ "eslint-config-particle": "^3.0.2",
40
70
  "fs-extra": "^0.30.0",
41
71
  "mocha": "^3.0.2",
42
72
  "mock-fs": "^5.1.2",
@@ -50,49 +80,13 @@
50
80
  "testdouble-chai": "^0.2.2",
51
81
  "tmp": "0.0.28"
52
82
  },
53
- "homepage": "https://github.com/particle-iot/particle-commands/",
54
- "keywords": [
55
- "cli",
56
- "core",
57
- "electron",
58
- "iot",
59
- "particle",
60
- "photon",
61
- "spark"
62
- ],
63
- "license": "Apache-2.0",
64
- "main": "./dist/index.js",
65
- "preferGlobal": false,
66
- "repository": {
67
- "type": "git",
68
- "url": "https://github.com/particle-iot/particle-commands"
69
- },
70
- "scripts": {
71
- "prepare": "npm run compile",
72
- "preversion": "npm run lint && npm run test && npm run prepare",
73
- "version": "npm run update-changelog",
74
- "compile": "npm run compile:src && npm run copy:dotfiles",
75
- "compile:src": "babel src -d dist --copy-files",
76
- "copy:dotfiles": "copyfiles -u 4 src/cmd/templates/project/.github/**/* dist/cmd/templates/project/",
77
- "babel-watch": "babel src -d dist --watch --source-maps --copy-files",
78
- "doctoc": "doctoc --title '## Table of Contents' README.md",
79
- "list-folders": "node --require babel-register bin/list_folders.js",
80
- "test": "npm run lint && npm run test:unit",
81
- "test:ci": "npm run lint && npm run test:unit -- --forbid-only && npm run coverage",
82
- "test:unit": "mocha test test/cmd test/integration --compilers js:babel-register",
83
- "test:unit:silent": "npm run test:unit > tmp/test-unit-log.txt 2>&1",
84
- "lint": "eslint -f unix src/**/*.js",
85
- "lint:fix": "eslint --fix -f unix src/ test/",
86
- "coverage": "nyc --reporter=text --include='src/**/*.js' --temp-dir=./tmp/ --check-coverage --lines 50 npm run test:unit:silent",
87
- "update-changelog": "VERSION=`node -p -e \"require('./package.json').version\"` bash -c 'read -p \"Update CHANGELOG.md for version $VERSION and press ENTER when done.\"' && git add CHANGELOG.md"
88
- },
89
83
  "overrides": {
90
84
  "coveralls-next": {
91
85
  "form-data": "4.0.4"
92
86
  }
93
87
  },
94
88
  "engines": {
95
- "node": ">=16.x",
96
- "npm": "8.x"
89
+ "node": ">=22",
90
+ "npm": ">=10"
97
91
  }
98
92
  }