extension-develop 2.1.1 → 2.1.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.
package/dist/module.js CHANGED
@@ -314,6 +314,16 @@ var __webpack_modules__ = {
314
314
  });
315
315
  }
316
316
  }
317
+ async ensureDataDirectory() {
318
+ const dataDir = this.getDataDirectory();
319
+ try {
320
+ await fs_promises__WEBPACK_IMPORTED_MODULE_0__.access(dataDir);
321
+ } catch {
322
+ await fs_promises__WEBPACK_IMPORTED_MODULE_0__.mkdir(dataDir, {
323
+ recursive: true
324
+ });
325
+ }
326
+ }
317
327
  async loadRegistry() {
318
328
  try {
319
329
  await this.ensureRegistryDir();
@@ -495,6 +505,7 @@ var __webpack_modules__ = {
495
505
  if ('development' === process.env.EXTENSION_ENV) console.log(_webpack_webpack_lib_messages__WEBPACK_IMPORTED_MODULE_5__.JJ());
496
506
  }
497
507
  async createInstance(browser, projectPath, requestedPort) {
508
+ await this.ensureDataDirectory();
498
509
  const lockPath = path__WEBPACK_IMPORTED_MODULE_1__.join(this.getDataDirectory(), 'instances.lock');
499
510
  let lockHandle = null;
500
511
  for(let attempt = 0; attempt < 10; attempt++)try {
@@ -507,6 +518,7 @@ var __webpack_modules__ = {
507
518
  }
508
519
  throw err;
509
520
  }
521
+ if (!lockHandle) throw new Error('Failed to acquire instance lock after 10 attempts');
510
522
  if ('development' === process.env.EXTENSION_ENV) console.log(_webpack_webpack_lib_messages__WEBPACK_IMPORTED_MODULE_5__.jE({
511
523
  browser,
512
524
  projectPath,
@@ -3325,7 +3337,16 @@ var __webpack_modules__ = {
3325
3337
  return `${getLoggingPrefix('Firefox Detector', 'info')} Firefox version is: ${pintor__WEBPACK_IMPORTED_MODULE_1___default().gray(version)}`;
3326
3338
  }
3327
3339
  function portManagerErrorAllocatingPorts(error) {
3328
- return `${getLoggingPrefix('Port Manager', 'error')} Failed to allocate ports.\n${pintor__WEBPACK_IMPORTED_MODULE_1___default().red(String(error))}`;
3340
+ let errorMessage = String(error);
3341
+ if (errorMessage.includes('ENOENT')) {
3342
+ errorMessage += '\n\nThis usually means the extension-js data directory could not be created.';
3343
+ errorMessage += '\nPossible solutions:';
3344
+ errorMessage += '\n1. Check if you have write permissions to your home directory';
3345
+ errorMessage += '\n2. Try running: extension cleanup';
3346
+ errorMessage += '\n3. Manually delete: ~/Library/Application Support/extension-js (macOS)';
3347
+ errorMessage += '\n4. Restart your terminal and try again';
3348
+ }
3349
+ return `${getLoggingPrefix('Port Manager', 'error')} Failed to allocate ports.\n${pintor__WEBPACK_IMPORTED_MODULE_1___default().red(errorMessage)}`;
3329
3350
  }
3330
3351
  function browserPluginFailedToLoad(browser, error) {
3331
3352
  return `${getLoggingPrefix('Browser Plugin', 'error')} Failed to load the ${pintor__WEBPACK_IMPORTED_MODULE_1___default().gray(browser)} plugin.\n${pintor__WEBPACK_IMPORTED_MODULE_1___default().red(String(error))}`;
@@ -3425,7 +3446,7 @@ var __webpack_modules__ = {
3425
3446
  module.exports = require("util");
3426
3447
  },
3427
3448
  "./package.json": function(module) {
3428
- module.exports = JSON.parse('{"i8":"2.1.1","HO":{"@rspack/core":"^1.4.8","@rspack/dev-server":"^1.1.3","@swc/helpers":"^0.5.15","@types/webextension-polyfill":"0.12.3","@vue/compiler-sfc":"^3.5.13","adm-zip":"^0.5.16","axios":"^1.9.0","case-sensitive-paths-webpack-plugin":"^2.4.0","chokidar":"^4.0.1","chrome-location2":"2.0.0","content-security-policy-parser":"^0.6.0","cross-spawn":"^7.0.6","dotenv":"^16.4.7","dotenv-webpack":"^8.1.0","edge-location":"^1.1.1","firefox-location2":"1.0.0","firefox-profile":"^4.7.0","go-git-it":"^5.0.0","ignore":"^6.0.2","loader-utils":"^3.3.1","locate-path":"^7.2.0","micromatch":"^4.0.8","package-manager-detector":"^0.2.7","parse5":"^7.2.1","parse5-utilities":"^1.0.0","pintor":"0.3.0","postcss":"^8.4.49","preact":"^10.22.0","progress":"^2.0.3","schema-utils":"^4.2.0","slugify":"^1.6.6","tiny-glob":"^0.2.9","webextension-polyfill":"^0.12.0","webpack-merge":"^6.0.1","webpack-target-webextension":"^2.1.3","ws":"^8.18.0"},"Lq":{"@prefresh/core":"^1.5.2","@prefresh/utils":"^1.2.0","@prefresh/webpack":"^4.0.1","@rspack/plugin-preact-refresh":"^1.1.2","@rspack/plugin-react-refresh":"^1.0.1","babel-loader":"^9.2.1","less-loader":"^12.2.0","postcss-loader":"^8.1.1","postcss-preset-env":"^10.1.1","react-refresh":"^0.14.2","sass-loader":"^16.0.4","svelte-loader":"^3.2.4","vue-loader":"^17.4.2","vue-style-loader":"^4.1.3"}}');
3449
+ module.exports = JSON.parse('{"i8":"2.1.3","HO":{"@rspack/core":"^1.4.8","@rspack/dev-server":"^1.1.3","@swc/helpers":"^0.5.15","@types/webextension-polyfill":"0.12.3","@vue/compiler-sfc":"^3.5.13","adm-zip":"^0.5.16","axios":"^1.9.0","case-sensitive-paths-webpack-plugin":"^2.4.0","chokidar":"^4.0.1","chrome-location2":"2.0.0","content-security-policy-parser":"^0.6.0","cross-spawn":"^7.0.6","dotenv":"^16.4.7","dotenv-webpack":"^8.1.0","edge-location":"^1.1.1","firefox-location2":"1.0.0","firefox-profile":"^4.7.0","go-git-it":"^5.0.0","ignore":"^6.0.2","loader-utils":"^3.3.1","locate-path":"^7.2.0","micromatch":"^4.0.8","package-manager-detector":"^0.2.7","parse5":"^7.2.1","parse5-utilities":"^1.0.0","pintor":"0.3.0","postcss":"^8.4.49","preact":"^10.22.0","progress":"^2.0.3","schema-utils":"^4.2.0","slugify":"^1.6.6","tiny-glob":"^0.2.9","webextension-polyfill":"^0.12.0","webpack-merge":"^6.0.1","webpack-target-webextension":"^2.1.3","ws":"^8.18.0"},"Lq":{"@prefresh/core":"^1.5.2","@prefresh/utils":"^1.2.0","@prefresh/webpack":"^4.0.1","@rspack/plugin-preact-refresh":"^1.1.2","@rspack/plugin-react-refresh":"^1.0.1","babel-loader":"^9.2.1","less-loader":"^12.2.0","postcss-loader":"^8.1.1","postcss-preset-env":"^10.1.1","react-refresh":"^0.14.2","sass-loader":"^16.0.4","svelte-loader":"^3.2.4","vue-loader":"^17.4.2","vue-style-loader":"^4.1.3"}}');
3429
3450
  }
3430
3451
  };
3431
3452
  var __webpack_module_cache__ = {};
@@ -10502,6 +10523,7 @@ var __webpack_exports__ = {};
10502
10523
  class PortManager {
10503
10524
  async allocatePorts(browser, projectPath, requestedPort) {
10504
10525
  try {
10526
+ await this.instanceManager.ensureDataDirectory();
10505
10527
  const instance = await this.instanceManager.createInstance(browser, projectPath, requestedPort);
10506
10528
  this.currentInstance = instance;
10507
10529
  return {
@@ -29,6 +29,7 @@ export declare class InstanceManager {
29
29
  private generateInstanceId;
30
30
  private generateManagerExtensionId;
31
31
  private ensureRegistryDir;
32
+ ensureDataDirectory(): Promise<void>;
32
33
  private loadRegistry;
33
34
  private saveRegistry;
34
35
  private isPortAvailable;
package/package.json CHANGED
@@ -21,7 +21,7 @@
21
21
  "dist"
22
22
  ],
23
23
  "name": "extension-develop",
24
- "version": "2.1.1",
24
+ "version": "2.1.3",
25
25
  "description": "The develop step of Extension.js",
26
26
  "author": {
27
27
  "name": "Cezar Augusto",