wxt 0.17.2 → 0.17.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.
@@ -1,5 +1,5 @@
1
1
  // package.json
2
- var version = "0.17.2";
2
+ var version = "0.17.3";
3
3
 
4
4
  // src/core/utils/paths.ts
5
5
  import systemPath from "node:path";
package/dist/cli.js CHANGED
@@ -2181,7 +2181,7 @@ function getChunkSortWeight(filename) {
2181
2181
  import pc4 from "picocolors";
2182
2182
 
2183
2183
  // package.json
2184
- var version = "0.17.2";
2184
+ var version = "0.17.3";
2185
2185
 
2186
2186
  // src/core/utils/log/printHeader.ts
2187
2187
  import { consola as consola2 } from "consola";
package/dist/index.cjs CHANGED
@@ -2223,7 +2223,7 @@ function getChunkSortWeight(filename) {
2223
2223
  var import_picocolors4 = __toESM(require("picocolors"), 1);
2224
2224
 
2225
2225
  // package.json
2226
- var version = "0.17.2";
2226
+ var version = "0.17.3";
2227
2227
 
2228
2228
  // src/core/utils/log/printHeader.ts
2229
2229
  var import_consola2 = require("consola");
package/dist/index.d.cts CHANGED
@@ -64,6 +64,6 @@ declare function prepare(config: InlineConfig): Promise<void>;
64
64
  */
65
65
  declare function zip(config?: InlineConfig): Promise<string[]>;
66
66
 
67
- var version = "0.17.2";
67
+ var version = "0.17.3";
68
68
 
69
69
  export { BuildOutput, ExtensionRunnerConfig, InlineConfig, UserConfig, WxtDevServer, build, clean, createServer, defineConfig, defineRunnerConfig, initialize, prepare, version, zip };
package/dist/index.d.ts CHANGED
@@ -64,6 +64,6 @@ declare function prepare(config: InlineConfig): Promise<void>;
64
64
  */
65
65
  declare function zip(config?: InlineConfig): Promise<string[]>;
66
66
 
67
- var version = "0.17.2";
67
+ var version = "0.17.3";
68
68
 
69
69
  export { BuildOutput, ExtensionRunnerConfig, InlineConfig, UserConfig, WxtDevServer, build, clean, createServer, defineConfig, defineRunnerConfig, initialize, prepare, version, zip };
package/dist/index.js CHANGED
@@ -17,7 +17,7 @@ import {
17
17
  unnormalizePath,
18
18
  version,
19
19
  wxt
20
- } from "./chunk-OLUK5FJF.js";
20
+ } from "./chunk-ILVTCCLE.js";
21
21
 
22
22
  // src/core/build.ts
23
23
  async function build(config) {
package/dist/storage.cjs CHANGED
@@ -272,14 +272,14 @@ function createStorage() {
272
272
  );
273
273
  }
274
274
  const migrate = async () => {
275
- const [value, meta] = await Promise.all([
276
- // TODO: Optimize with getItems
277
- getItem(driver, driverKey, void 0),
278
- getMeta(driver, driverKey)
275
+ const driverMetaKey = getMetaKey(driverKey);
276
+ const [{ value }, { value: meta }] = await driver.getItems([
277
+ driverKey,
278
+ driverMetaKey
279
279
  ]);
280
280
  if (value == null)
281
281
  return;
282
- const currentVersion = meta.v ?? 1;
282
+ const currentVersion = meta?.v ?? 1;
283
283
  if (currentVersion > targetVersion) {
284
284
  throw Error(
285
285
  `Version downgrade detected (v${currentVersion} -> v${targetVersion}) for "${key}"`
@@ -296,36 +296,47 @@ function createStorage() {
296
296
  for (const migrateToVersion of migrationsToRun) {
297
297
  migratedValue = await migrations?.[migrateToVersion]?.(migratedValue) ?? migratedValue;
298
298
  }
299
- await Promise.all([
300
- // TODO: Optimize with `setItem`
301
- setItem(driver, driverKey, migratedValue),
302
- setMeta(driver, driverKey, { v: targetVersion })
299
+ await driver.setItems([
300
+ { key: driverKey, value: migratedValue },
301
+ { key: driverMetaKey, value: { ...meta, v: targetVersion } }
303
302
  ]);
304
303
  logger.debug(
305
304
  `Storage migration completed for ${key} v${targetVersion}`,
306
305
  { migratedValue }
307
306
  );
308
307
  };
309
- browser.runtime.onInstalled.addListener(async ({ reason }) => {
310
- if (reason !== "update")
311
- return;
312
- try {
313
- await migrate();
314
- } catch (err) {
315
- logger.error(`Migration failed for ${key}`, err);
316
- }
308
+ const migrationsDone = opts?.migrations == null ? Promise.resolve() : migrate().catch((err) => {
309
+ logger.error(`Migration failed for ${key}`, err);
317
310
  });
318
311
  const getDefaultValue = () => opts?.defaultValue ?? null;
319
312
  return {
320
313
  get defaultValue() {
321
314
  return getDefaultValue();
322
315
  },
323
- getValue: () => getItem(driver, driverKey, opts),
324
- getMeta: () => getMeta(driver, driverKey),
325
- setValue: (value) => setItem(driver, driverKey, value),
326
- setMeta: (properties) => setMeta(driver, driverKey, properties),
327
- removeValue: (opts2) => removeItem(driver, driverKey, opts2),
328
- removeMeta: (properties) => removeMeta(driver, driverKey, properties),
316
+ getValue: async () => {
317
+ await migrationsDone;
318
+ return await getItem(driver, driverKey, opts);
319
+ },
320
+ getMeta: async () => {
321
+ await migrationsDone;
322
+ return await getMeta(driver, driverKey);
323
+ },
324
+ setValue: async (value) => {
325
+ await migrationsDone;
326
+ return await setItem(driver, driverKey, value);
327
+ },
328
+ setMeta: async (properties) => {
329
+ await migrationsDone;
330
+ return await setMeta(driver, driverKey, properties);
331
+ },
332
+ removeValue: async (opts2) => {
333
+ await migrationsDone;
334
+ return await removeItem(driver, driverKey, opts2);
335
+ },
336
+ removeMeta: async (properties) => {
337
+ await migrationsDone;
338
+ return await removeMeta(driver, driverKey, properties);
339
+ },
329
340
  watch: (cb) => watch(
330
341
  driver,
331
342
  driverKey,
@@ -353,7 +364,10 @@ function createDriver(storageArea) {
353
364
  "You must add the 'storage' permission to your manifest to use 'wxt/storage'"
354
365
  );
355
366
  }
356
- return browser.storage[storageArea];
367
+ const area = browser.storage[storageArea];
368
+ if (area == null)
369
+ throw Error(`"browser.storage.${storageArea}" is undefined`);
370
+ return area;
357
371
  };
358
372
  const watchListeners = /* @__PURE__ */ new Set();
359
373
  return {
@@ -8,7 +8,8 @@ interface WxtStorage {
8
8
  */
9
9
  getItem<T>(key: string, opts?: GetItemOptions<T>): Promise<T | null>;
10
10
  /**
11
- * Get multiple items from storage. There is no guarantee of order in the returned array.
11
+ * Get multiple items from storage. The return order is guaranteed to be the same as the order
12
+ * requested.
12
13
  *
13
14
  * @example
14
15
  * await storage.getItems(["local:installDate", "session:someCounter"]);
package/dist/storage.d.ts CHANGED
@@ -8,7 +8,8 @@ interface WxtStorage {
8
8
  */
9
9
  getItem<T>(key: string, opts?: GetItemOptions<T>): Promise<T | null>;
10
10
  /**
11
- * Get multiple items from storage. There is no guarantee of order in the returned array.
11
+ * Get multiple items from storage. The return order is guaranteed to be the same as the order
12
+ * requested.
12
13
  *
13
14
  * @example
14
15
  * await storage.getItems(["local:installDate", "session:someCounter"]);
package/dist/storage.js CHANGED
@@ -235,14 +235,14 @@ function createStorage() {
235
235
  );
236
236
  }
237
237
  const migrate = async () => {
238
- const [value, meta] = await Promise.all([
239
- // TODO: Optimize with getItems
240
- getItem(driver, driverKey, void 0),
241
- getMeta(driver, driverKey)
238
+ const driverMetaKey = getMetaKey(driverKey);
239
+ const [{ value }, { value: meta }] = await driver.getItems([
240
+ driverKey,
241
+ driverMetaKey
242
242
  ]);
243
243
  if (value == null)
244
244
  return;
245
- const currentVersion = meta.v ?? 1;
245
+ const currentVersion = meta?.v ?? 1;
246
246
  if (currentVersion > targetVersion) {
247
247
  throw Error(
248
248
  `Version downgrade detected (v${currentVersion} -> v${targetVersion}) for "${key}"`
@@ -259,36 +259,47 @@ function createStorage() {
259
259
  for (const migrateToVersion of migrationsToRun) {
260
260
  migratedValue = await migrations?.[migrateToVersion]?.(migratedValue) ?? migratedValue;
261
261
  }
262
- await Promise.all([
263
- // TODO: Optimize with `setItem`
264
- setItem(driver, driverKey, migratedValue),
265
- setMeta(driver, driverKey, { v: targetVersion })
262
+ await driver.setItems([
263
+ { key: driverKey, value: migratedValue },
264
+ { key: driverMetaKey, value: { ...meta, v: targetVersion } }
266
265
  ]);
267
266
  logger.debug(
268
267
  `Storage migration completed for ${key} v${targetVersion}`,
269
268
  { migratedValue }
270
269
  );
271
270
  };
272
- browser.runtime.onInstalled.addListener(async ({ reason }) => {
273
- if (reason !== "update")
274
- return;
275
- try {
276
- await migrate();
277
- } catch (err) {
278
- logger.error(`Migration failed for ${key}`, err);
279
- }
271
+ const migrationsDone = opts?.migrations == null ? Promise.resolve() : migrate().catch((err) => {
272
+ logger.error(`Migration failed for ${key}`, err);
280
273
  });
281
274
  const getDefaultValue = () => opts?.defaultValue ?? null;
282
275
  return {
283
276
  get defaultValue() {
284
277
  return getDefaultValue();
285
278
  },
286
- getValue: () => getItem(driver, driverKey, opts),
287
- getMeta: () => getMeta(driver, driverKey),
288
- setValue: (value) => setItem(driver, driverKey, value),
289
- setMeta: (properties) => setMeta(driver, driverKey, properties),
290
- removeValue: (opts2) => removeItem(driver, driverKey, opts2),
291
- removeMeta: (properties) => removeMeta(driver, driverKey, properties),
279
+ getValue: async () => {
280
+ await migrationsDone;
281
+ return await getItem(driver, driverKey, opts);
282
+ },
283
+ getMeta: async () => {
284
+ await migrationsDone;
285
+ return await getMeta(driver, driverKey);
286
+ },
287
+ setValue: async (value) => {
288
+ await migrationsDone;
289
+ return await setItem(driver, driverKey, value);
290
+ },
291
+ setMeta: async (properties) => {
292
+ await migrationsDone;
293
+ return await setMeta(driver, driverKey, properties);
294
+ },
295
+ removeValue: async (opts2) => {
296
+ await migrationsDone;
297
+ return await removeItem(driver, driverKey, opts2);
298
+ },
299
+ removeMeta: async (properties) => {
300
+ await migrationsDone;
301
+ return await removeMeta(driver, driverKey, properties);
302
+ },
292
303
  watch: (cb) => watch(
293
304
  driver,
294
305
  driverKey,
@@ -316,7 +327,10 @@ function createDriver(storageArea) {
316
327
  "You must add the 'storage' permission to your manifest to use 'wxt/storage'"
317
328
  );
318
329
  }
319
- return browser.storage[storageArea];
330
+ const area = browser.storage[storageArea];
331
+ if (area == null)
332
+ throw Error(`"browser.storage.${storageArea}" is undefined`);
333
+ return area;
320
334
  };
321
335
  const watchListeners = /* @__PURE__ */ new Set();
322
336
  return {
package/dist/testing.js CHANGED
@@ -5,7 +5,7 @@ import {
5
5
  tsconfigPaths,
6
6
  unimport,
7
7
  webextensionPolyfillMock
8
- } from "./chunk-OLUK5FJF.js";
8
+ } from "./chunk-ILVTCCLE.js";
9
9
 
10
10
  // src/testing/fake-browser.ts
11
11
  import { fakeBrowser } from "@webext-core/fake-browser";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "wxt",
3
3
  "type": "module",
4
- "version": "0.17.2",
4
+ "version": "0.17.3",
5
5
  "description": "Next gen framework for developing web extensions",
6
6
  "engines": {
7
7
  "node": ">=18",