pepr 0.32.7 → 0.34.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 (143) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +2 -1
  3. package/dist/cli/banner.d.ts +2 -0
  4. package/dist/cli/banner.d.ts.map +1 -0
  5. package/dist/cli/build.d.ts +19 -0
  6. package/dist/cli/build.d.ts.map +1 -0
  7. package/dist/cli/deploy.d.ts +3 -0
  8. package/dist/cli/deploy.d.ts.map +1 -0
  9. package/dist/cli/dev.d.ts +3 -0
  10. package/dist/cli/dev.d.ts.map +1 -0
  11. package/dist/cli/format.d.ts +9 -0
  12. package/dist/cli/format.d.ts.map +1 -0
  13. package/dist/cli/init/index.d.ts +3 -0
  14. package/dist/cli/init/index.d.ts.map +1 -0
  15. package/dist/cli/init/templates.d.ts +196 -0
  16. package/dist/cli/init/templates.d.ts.map +1 -0
  17. package/dist/cli/init/utils.d.ts +21 -0
  18. package/dist/cli/init/utils.d.ts.map +1 -0
  19. package/dist/cli/init/utils.test.d.ts +2 -0
  20. package/dist/cli/init/utils.test.d.ts.map +1 -0
  21. package/dist/cli/init/walkthrough.d.ts +8 -0
  22. package/dist/cli/init/walkthrough.d.ts.map +1 -0
  23. package/dist/cli/init/walkthrough.test.d.ts +2 -0
  24. package/dist/cli/init/walkthrough.test.d.ts.map +1 -0
  25. package/dist/cli/kfc.d.ts +3 -0
  26. package/dist/cli/kfc.d.ts.map +1 -0
  27. package/dist/cli/monitor.d.ts +3 -0
  28. package/dist/cli/monitor.d.ts.map +1 -0
  29. package/dist/cli/root.d.ts +5 -0
  30. package/dist/cli/root.d.ts.map +1 -0
  31. package/dist/cli/update.d.ts +3 -0
  32. package/dist/cli/update.d.ts.map +1 -0
  33. package/dist/cli/uuid.d.ts +3 -0
  34. package/dist/cli/uuid.d.ts.map +1 -0
  35. package/dist/cli.js +66 -25
  36. package/dist/controller.js +1 -1
  37. package/dist/fixtures/loader.d.ts +5 -0
  38. package/dist/fixtures/loader.d.ts.map +1 -0
  39. package/dist/lib/assets/helm.d.ts +1 -0
  40. package/dist/lib/assets/helm.d.ts.map +1 -1
  41. package/dist/lib/assets/helm.test.d.ts +2 -0
  42. package/dist/lib/assets/helm.test.d.ts.map +1 -0
  43. package/dist/lib/assets/index.d.ts.map +1 -1
  44. package/dist/lib/assets/pods.d.ts +3 -0
  45. package/dist/lib/assets/pods.d.ts.map +1 -1
  46. package/dist/lib/assets/pods.test.d.ts +2 -0
  47. package/dist/lib/assets/pods.test.d.ts.map +1 -0
  48. package/dist/lib/assets/yaml.d.ts.map +1 -1
  49. package/dist/lib/controller/store.d.ts.map +1 -1
  50. package/dist/lib/errors.test.d.ts +2 -0
  51. package/dist/lib/errors.test.d.ts.map +1 -0
  52. package/dist/lib/filter.test.d.ts +2 -0
  53. package/dist/lib/filter.test.d.ts.map +1 -0
  54. package/dist/lib/helpers.test.d.ts +2 -0
  55. package/dist/lib/helpers.test.d.ts.map +1 -0
  56. package/dist/lib/included-files.test.d.ts +2 -0
  57. package/dist/lib/included-files.test.d.ts.map +1 -0
  58. package/dist/lib/logger.test.d.ts +2 -0
  59. package/dist/lib/logger.test.d.ts.map +1 -0
  60. package/dist/lib/metrics.d.ts +18 -0
  61. package/dist/lib/metrics.d.ts.map +1 -1
  62. package/dist/lib/metrics.test.d.ts +2 -0
  63. package/dist/lib/metrics.test.d.ts.map +1 -0
  64. package/dist/lib/module.test.d.ts +2 -0
  65. package/dist/lib/module.test.d.ts.map +1 -0
  66. package/dist/lib/mutate-request.test.d.ts +2 -0
  67. package/dist/lib/mutate-request.test.d.ts.map +1 -0
  68. package/dist/lib/queue.test.d.ts +2 -0
  69. package/dist/lib/queue.test.d.ts.map +1 -0
  70. package/dist/lib/schedule.test.d.ts +15 -0
  71. package/dist/lib/schedule.test.d.ts.map +1 -0
  72. package/dist/lib/storage.d.ts +2 -0
  73. package/dist/lib/storage.d.ts.map +1 -1
  74. package/dist/lib/storage.test.d.ts +2 -0
  75. package/dist/lib/storage.test.d.ts.map +1 -0
  76. package/dist/lib/tls.test.d.ts +2 -0
  77. package/dist/lib/tls.test.d.ts.map +1 -0
  78. package/dist/lib/utils.test.d.ts +2 -0
  79. package/dist/lib/utils.test.d.ts.map +1 -0
  80. package/dist/lib/validate-request.test.d.ts +2 -0
  81. package/dist/lib/validate-request.test.d.ts.map +1 -0
  82. package/dist/lib/watch-processor.d.ts.map +1 -1
  83. package/dist/lib/watch-processor.test.d.ts +2 -0
  84. package/dist/lib/watch-processor.test.d.ts.map +1 -0
  85. package/dist/lib.js +142 -20
  86. package/dist/lib.js.map +3 -3
  87. package/dist/sdk/sdk.test.d.ts +2 -0
  88. package/dist/sdk/sdk.test.d.ts.map +1 -0
  89. package/package.json +26 -17
  90. package/src/cli/banner.ts +63 -0
  91. package/src/cli/build.ts +370 -0
  92. package/src/cli/deploy.ts +105 -0
  93. package/src/cli/dev.ts +118 -0
  94. package/src/cli/format.ts +83 -0
  95. package/src/cli/init/index.ts +99 -0
  96. package/src/cli/init/templates.ts +124 -0
  97. package/src/cli/init/utils.test.ts +28 -0
  98. package/src/cli/init/utils.ts +55 -0
  99. package/src/cli/init/walkthrough.test.ts +21 -0
  100. package/src/cli/init/walkthrough.ts +96 -0
  101. package/src/cli/kfc.ts +45 -0
  102. package/src/cli/monitor.ts +101 -0
  103. package/src/cli/root.ts +12 -0
  104. package/src/cli/update.ts +95 -0
  105. package/src/cli/uuid.ts +44 -0
  106. package/src/fixtures/data/create-pod.json +271 -0
  107. package/src/fixtures/data/delete-pod.json +271 -0
  108. package/src/fixtures/loader.ts +18 -0
  109. package/src/lib/.prettierrc +14 -0
  110. package/src/lib/assets/helm.test.ts +64 -0
  111. package/src/lib/assets/helm.ts +35 -0
  112. package/src/lib/assets/index.ts +5 -1
  113. package/src/lib/assets/pods.test.ts +553 -0
  114. package/src/lib/assets/pods.ts +14 -6
  115. package/src/lib/assets/yaml.ts +15 -18
  116. package/src/lib/controller/index.ts +2 -2
  117. package/src/lib/controller/store.ts +88 -2
  118. package/src/lib/errors.test.ts +85 -0
  119. package/src/lib/filter.test.ts +384 -0
  120. package/src/lib/helpers.test.ts +1192 -0
  121. package/src/lib/included-files.test.ts +22 -0
  122. package/src/lib/logger.test.ts +18 -0
  123. package/src/lib/metrics.test.ts +132 -0
  124. package/src/lib/metrics.ts +68 -6
  125. package/src/lib/module.test.ts +126 -0
  126. package/src/lib/mutate-request.test.ts +188 -0
  127. package/src/lib/queue.test.ts +58 -0
  128. package/src/lib/schedule.test.ts +217 -0
  129. package/src/lib/storage.test.ts +203 -0
  130. package/src/lib/storage.ts +22 -9
  131. package/src/lib/tls.test.ts +18 -0
  132. package/src/lib/utils.test.ts +69 -0
  133. package/src/lib/validate-request.test.ts +124 -0
  134. package/src/lib/watch-processor.test.ts +322 -0
  135. package/src/lib/watch-processor.ts +20 -4
  136. package/src/sdk/sdk.test.ts +243 -0
  137. package/src/templates/.eslintrc.json +6 -0
  138. package/.prettierignore +0 -1
  139. package/CODE_OF_CONDUCT.md +0 -133
  140. package/SECURITY.md +0 -18
  141. package/SUPPORT.md +0 -16
  142. package/codecov.yaml +0 -19
  143. package/commitlint.config.js +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-request.test.d.ts","sourceRoot":"","sources":["../../src/lib/validate-request.test.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"watch-processor.d.ts","sourceRoot":"","sources":["../../src/lib/watch-processor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAO,gBAAgB,EAAY,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEvF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAwB1C;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,YAAY,EAAE,UAAU,EAAE,QAMpD;AA6ED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,GAAE,MAAW,EAAE,GAAG,CAAC,EAAE,gBAAgB,QAOtF"}
1
+ {"version":3,"file":"watch-processor.d.ts","sourceRoot":"","sources":["../../src/lib/watch-processor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAO,gBAAgB,EAAY,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEvF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AA4B1C;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,YAAY,EAAE,UAAU,EAAE,QAMpD;AAyFD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,GAAE,MAAW,EAAE,GAAG,CAAC,EAAE,gBAAgB,QAOtF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=watch-processor.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch-processor.test.d.ts","sourceRoot":"","sources":["../../src/lib/watch-processor.test.ts"],"names":[],"mappings":""}
package/dist/lib.js CHANGED
@@ -88,13 +88,17 @@ var loggingPrefix = "MetricsCollector";
88
88
  var MetricsCollector = class {
89
89
  #registry;
90
90
  #counters = /* @__PURE__ */ new Map();
91
+ #gauges = /* @__PURE__ */ new Map();
91
92
  #summaries = /* @__PURE__ */ new Map();
92
93
  #prefix;
94
+ #cacheMissWindows = /* @__PURE__ */ new Map();
93
95
  #metricNames = {
94
96
  errors: "errors",
95
97
  alerts: "alerts",
96
- mutate: "Mutate",
97
- validate: "Validate"
98
+ mutate: "mutate",
99
+ validate: "validate",
100
+ cacheMiss: "cache_miss",
101
+ resyncFailureCount: "resync_failure_count"
98
102
  };
99
103
  /**
100
104
  * Creates a MetricsCollector instance with prefixed metrics.
@@ -107,9 +111,11 @@ var MetricsCollector = class {
107
111
  this.addCounter(this.#metricNames.alerts, "Mutation/Validate bad api token received");
108
112
  this.addSummary(this.#metricNames.mutate, "Mutation operation summary");
109
113
  this.addSummary(this.#metricNames.validate, "Validation operation summary");
114
+ this.addGauge(this.#metricNames.cacheMiss, "Number of cache misses per window", ["window"]);
115
+ this.addGauge(this.#metricNames.resyncFailureCount, "Number of failures per resync operation", ["count"]);
110
116
  }
111
117
  #getMetricName = (name) => `${this.#prefix}_${name}`;
112
- #addMetric = (collection, MetricType, name, help) => {
118
+ #addMetric = (collection, MetricType, name, help, labelNames) => {
113
119
  if (collection.has(this.#getMetricName(name))) {
114
120
  logger_default.debug(`Metric for ${name} already exists`, loggingPrefix);
115
121
  return;
@@ -117,19 +123,26 @@ var MetricsCollector = class {
117
123
  const metric = new MetricType({
118
124
  name: this.#getMetricName(name),
119
125
  help,
120
- registers: [this.#registry]
126
+ registers: [this.#registry],
127
+ labelNames
121
128
  });
122
129
  collection.set(this.#getMetricName(name), metric);
123
130
  };
124
131
  addCounter = (name, help) => {
125
- this.#addMetric(this.#counters, import_prom_client.default.Counter, name, help);
132
+ this.#addMetric(this.#counters, import_prom_client.default.Counter, name, help, []);
126
133
  };
127
134
  addSummary = (name, help) => {
128
- this.#addMetric(this.#summaries, import_prom_client.default.Summary, name, help);
135
+ this.#addMetric(this.#summaries, import_prom_client.default.Summary, name, help, []);
136
+ };
137
+ addGauge = (name, help, labelNames) => {
138
+ this.#addMetric(this.#gauges, import_prom_client.default.Gauge, name, help, labelNames);
129
139
  };
130
140
  incCounter = (name) => {
131
141
  this.#counters.get(this.#getMetricName(name))?.inc();
132
142
  };
143
+ incGauge = (name, labels, value = 1) => {
144
+ this.#gauges.get(this.#getMetricName(name))?.inc(labels || {}, value);
145
+ };
133
146
  /**
134
147
  * Increments the error counter.
135
148
  */
@@ -158,7 +171,42 @@ var MetricsCollector = class {
158
171
  static observeStart() {
159
172
  return import_perf_hooks.performance.now();
160
173
  }
174
+ /**
175
+ * Increments the cache miss gauge for a given label.
176
+ * @param label - The label for the cache miss.
177
+ */
178
+ incCacheMiss = (window) => {
179
+ this.incGauge(this.#metricNames.cacheMiss, { window });
180
+ };
181
+ /**
182
+ * Increments the retry count gauge.
183
+ * @param count - The count to increment by.
184
+ */
185
+ incRetryCount = (count) => {
186
+ this.incGauge(this.#metricNames.resyncFailureCount, { count });
187
+ };
188
+ /**
189
+ * Initializes the cache miss gauge for a given label.
190
+ * @param label - The label for the cache miss.
191
+ */
192
+ initCacheMissWindow = (window) => {
193
+ this.#rollCacheMissWindows();
194
+ this.#gauges.get(this.#getMetricName(this.#metricNames.cacheMiss))?.set({ window }, 0);
195
+ this.#cacheMissWindows.set(window, 0);
196
+ };
197
+ /**
198
+ * Manages the size of the cache miss gauge map.
199
+ */
200
+ #rollCacheMissWindows = () => {
201
+ const maxCacheMissWindows = process.env.PEPR_MAX_CACHE_MISS_WINDOWS ? parseInt(process.env.PEPR_MAX_CACHE_MISS_WINDOWS, 10) : void 0;
202
+ if (maxCacheMissWindows !== void 0 && this.#cacheMissWindows.size >= maxCacheMissWindows) {
203
+ const firstKey = this.#cacheMissWindows.keys().next().value;
204
+ this.#cacheMissWindows.delete(firstKey);
205
+ this.#gauges.get(this.#getMetricName(this.#metricNames.cacheMiss))?.remove({ window: firstKey });
206
+ }
207
+ };
161
208
  };
209
+ var metricsCollector = new MetricsCollector("pepr");
162
210
 
163
211
  // src/lib/mutate-processor.ts
164
212
  var import_fast_json_patch = __toESM(require("fast-json-patch"));
@@ -665,7 +713,7 @@ var PeprControllerStore = class {
665
713
  }
666
714
  }
667
715
  setTimeout(
668
- () => (0, import_kubernetes_fluent_client2.K8s)(PeprStore).InNamespace(namespace).Get(this.#name).then(this.#setupWatch).catch(this.#createStoreResource),
716
+ () => (0, import_kubernetes_fluent_client2.K8s)(PeprStore).InNamespace(namespace).Get(this.#name).then(async (store) => await this.#migrateAndSetupWatch(store)).catch(this.#createStoreResource),
669
717
  Math.random() * 3e3
670
718
  );
671
719
  }
@@ -673,6 +721,62 @@ var PeprControllerStore = class {
673
721
  const watcher = (0, import_kubernetes_fluent_client2.K8s)(PeprStore, { name: this.#name, namespace }).Watch(this.#receive);
674
722
  watcher.start().catch((e) => logger_default.error(e, "Error starting Pepr store watch"));
675
723
  };
724
+ #migrateAndSetupWatch = async (store) => {
725
+ logger_default.debug(store, "Pepr Store migration");
726
+ const data = store.data || {};
727
+ const migrateCache = {};
728
+ const flushCache = async () => {
729
+ const indexes = Object.keys(migrateCache);
730
+ const payload = Object.values(migrateCache);
731
+ for (const idx of indexes) {
732
+ delete migrateCache[idx];
733
+ }
734
+ try {
735
+ await (0, import_kubernetes_fluent_client2.K8s)(PeprStore, { namespace, name: this.#name }).Patch(payload);
736
+ } catch (err) {
737
+ logger_default.error(err, "Pepr store update failure");
738
+ if (err.status === 422) {
739
+ Object.keys(migrateCache).forEach((key) => delete migrateCache[key]);
740
+ } else {
741
+ for (const idx of indexes) {
742
+ migrateCache[idx] = payload[Number(idx)];
743
+ }
744
+ }
745
+ }
746
+ };
747
+ const fillCache = (name, op, key, val) => {
748
+ if (op === "add") {
749
+ const path = `/data/${name}-v2-${key}`;
750
+ const value = val || "";
751
+ const cacheIdx = [op, path, value].join(":");
752
+ migrateCache[cacheIdx] = { op, path, value };
753
+ return;
754
+ }
755
+ if (op === "remove") {
756
+ if (key.length < 1) {
757
+ throw new Error(`Key is required for REMOVE operation`);
758
+ }
759
+ for (const k of key) {
760
+ const path = `/data/${name}-${k}`;
761
+ const cacheIdx = [op, path].join(":");
762
+ migrateCache[cacheIdx] = { op, path };
763
+ }
764
+ return;
765
+ }
766
+ throw new Error(`Unsupported operation: ${op}`);
767
+ };
768
+ for (const name of Object.keys(this.#stores)) {
769
+ const offset = `${name}-`.length;
770
+ for (const key of Object.keys(data)) {
771
+ if ((0, import_ramda3.startsWith)(name, key) && !(0, import_ramda3.startsWith)(`${name}-v2`, key)) {
772
+ fillCache(name, "remove", [key.slice(offset)], data[key]);
773
+ fillCache(name, "add", [key.slice(offset)], data[key]);
774
+ }
775
+ }
776
+ }
777
+ await flushCache();
778
+ this.#setupWatch();
779
+ };
676
780
  #receive = (store) => {
677
781
  logger_default.debug(store, "Pepr Store update");
678
782
  const debounced = () => {
@@ -774,7 +878,7 @@ var Controller = class _Controller {
774
878
  // Track whether the server is running
775
879
  #running = false;
776
880
  // Metrics collector
777
- #metricsCollector = new MetricsCollector("pepr");
881
+ #metricsCollector = metricsCollector;
778
882
  // The token used to authenticate requests
779
883
  #token = "";
780
884
  // The express app instance
@@ -1178,9 +1282,10 @@ var Queue = class {
1178
1282
 
1179
1283
  // src/lib/watch-processor.ts
1180
1284
  var watchCfg = {
1181
- retryMax: process.env.PEPR_RETRYMAX ? parseInt(process.env.PEPR_RETRYMAX, 10) : 5,
1182
- retryDelaySec: process.env.PEPR_RETRYDELAYSECONDS ? parseInt(process.env.PEPR_RETRYDELAYSECONDS, 10) : 5,
1183
- resyncIntervalSec: process.env.PEPR_RESYNCINTERVALSECONDS ? parseInt(process.env.PEPR_RESYNCINTERVALSECONDS, 10) : 300
1285
+ resyncFailureMax: process.env.PEPR_RESYNC_FAILURE_MAX ? parseInt(process.env.PEPR_RESYNC_FAILURE_MAX, 10) : 5,
1286
+ resyncDelaySec: process.env.PEPR_RESYNC_DELAY_SECONDS ? parseInt(process.env.PEPR_RESYNC_DELAY_SECONDS, 10) : 5,
1287
+ lastSeenLimitSeconds: process.env.PEPR_LAST_SEEN_LIMIT_SECONDS ? parseInt(process.env.PEPR_LAST_SEEN_LIMIT_SECONDS, 10) : 300,
1288
+ relistIntervalSec: process.env.PEPR_RELIST_INTERVAL_SECONDS ? parseInt(process.env.PEPR_RELIST_INTERVAL_SECONDS, 10) : 1800
1184
1289
  };
1185
1290
  var eventToPhaseMap = {
1186
1291
  ["CREATE" /* Create */]: [import_types2.WatchPhase.Added],
@@ -1238,6 +1343,15 @@ async function runBinding(binding, capabilityNamespaces) {
1238
1343
  watcher.events.on(import_kubernetes_fluent_client5.WatchEvent.NETWORK_ERROR, (err) => logEvent(import_kubernetes_fluent_client5.WatchEvent.NETWORK_ERROR, err.message));
1239
1344
  watcher.events.on(import_kubernetes_fluent_client5.WatchEvent.LIST_ERROR, (err) => logEvent(import_kubernetes_fluent_client5.WatchEvent.LIST_ERROR, err.message));
1240
1345
  watcher.events.on(import_kubernetes_fluent_client5.WatchEvent.LIST, (list) => logEvent(import_kubernetes_fluent_client5.WatchEvent.LIST, JSON.stringify(list, void 0, 2)));
1346
+ watcher.events.on(import_kubernetes_fluent_client5.WatchEvent.CACHE_MISS, (windowName) => {
1347
+ metricsCollector.incCacheMiss(windowName);
1348
+ });
1349
+ watcher.events.on(import_kubernetes_fluent_client5.WatchEvent.INIT_CACHE_MISS, (windowName) => {
1350
+ metricsCollector.initCacheMissWindow(windowName);
1351
+ });
1352
+ watcher.events.on(import_kubernetes_fluent_client5.WatchEvent.INC_RESYNC_FAILURE_COUNT, (retryCount) => {
1353
+ metricsCollector.incRetryCount(retryCount);
1354
+ });
1241
1355
  try {
1242
1356
  await watcher.start();
1243
1357
  } catch (err) {
@@ -1316,7 +1430,12 @@ var PeprModule = class {
1316
1430
 
1317
1431
  // src/lib/storage.ts
1318
1432
  var import_ramda5 = require("ramda");
1433
+ var import_json_pointer = __toESM(require("json-pointer"));
1319
1434
  var MAX_WAIT_TIME = 15e3;
1435
+ var STORE_VERSION_PREFIX = "v2";
1436
+ function v2StoreKey(key) {
1437
+ return `${STORE_VERSION_PREFIX}-${import_json_pointer.default.escape(key)}`;
1438
+ }
1320
1439
  var Storage = class {
1321
1440
  #store = {};
1322
1441
  #send;
@@ -1335,16 +1454,20 @@ var Storage = class {
1335
1454
  }
1336
1455
  };
1337
1456
  getItem = (key) => {
1338
- return this.#store[key] || null;
1457
+ const result = this.#store[v2StoreKey(key)] || null;
1458
+ if (result !== null && typeof result !== "function" && typeof result !== "object") {
1459
+ return result;
1460
+ }
1461
+ return null;
1339
1462
  };
1340
1463
  clear = () => {
1341
1464
  this.#dispatchUpdate("remove", Object.keys(this.#store));
1342
1465
  };
1343
1466
  removeItem = (key) => {
1344
- this.#dispatchUpdate("remove", [key]);
1467
+ this.#dispatchUpdate("remove", [v2StoreKey(key)]);
1345
1468
  };
1346
1469
  setItem = (key, value) => {
1347
- this.#dispatchUpdate("add", [key], value);
1470
+ this.#dispatchUpdate("add", [v2StoreKey(key)], value);
1348
1471
  };
1349
1472
  /**
1350
1473
  * Creates a promise and subscribes to the store, the promise resolves when
@@ -1355,10 +1478,10 @@ var Storage = class {
1355
1478
  * @returns
1356
1479
  */
1357
1480
  setItemAndWait = (key, value) => {
1358
- this.#dispatchUpdate("add", [key], value);
1481
+ this.#dispatchUpdate("add", [v2StoreKey(key)], value);
1359
1482
  return new Promise((resolve, reject) => {
1360
1483
  const unsubscribe = this.subscribe((data) => {
1361
- if (data[key] === value) {
1484
+ if (data[`${v2StoreKey(key)}`] === value) {
1362
1485
  unsubscribe();
1363
1486
  resolve();
1364
1487
  }
@@ -1377,10 +1500,10 @@ var Storage = class {
1377
1500
  * @returns
1378
1501
  */
1379
1502
  removeItemAndWait = (key) => {
1380
- this.#dispatchUpdate("remove", [key]);
1503
+ this.#dispatchUpdate("remove", [v2StoreKey(key)]);
1381
1504
  return new Promise((resolve, reject) => {
1382
1505
  const unsubscribe = this.subscribe((data) => {
1383
- if (!Object.hasOwn(data, key)) {
1506
+ if (!Object.hasOwn(data, `${v2StoreKey(key)}`)) {
1384
1507
  unsubscribe();
1385
1508
  resolve();
1386
1509
  }
@@ -1485,8 +1608,7 @@ var OnSchedule = class {
1485
1608
  getDuration() {
1486
1609
  switch (this.unit) {
1487
1610
  case "seconds":
1488
- if (this.every < 10)
1489
- throw new Error("10 Seconds in the smallest interval allowed");
1611
+ if (this.every < 10) throw new Error("10 Seconds in the smallest interval allowed");
1490
1612
  this.duration = 1e3 * this.every;
1491
1613
  break;
1492
1614
  case "minutes":