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.
- package/LICENSE +1 -1
- package/README.md +2 -1
- package/dist/cli/banner.d.ts +2 -0
- package/dist/cli/banner.d.ts.map +1 -0
- package/dist/cli/build.d.ts +19 -0
- package/dist/cli/build.d.ts.map +1 -0
- package/dist/cli/deploy.d.ts +3 -0
- package/dist/cli/deploy.d.ts.map +1 -0
- package/dist/cli/dev.d.ts +3 -0
- package/dist/cli/dev.d.ts.map +1 -0
- package/dist/cli/format.d.ts +9 -0
- package/dist/cli/format.d.ts.map +1 -0
- package/dist/cli/init/index.d.ts +3 -0
- package/dist/cli/init/index.d.ts.map +1 -0
- package/dist/cli/init/templates.d.ts +196 -0
- package/dist/cli/init/templates.d.ts.map +1 -0
- package/dist/cli/init/utils.d.ts +21 -0
- package/dist/cli/init/utils.d.ts.map +1 -0
- package/dist/cli/init/utils.test.d.ts +2 -0
- package/dist/cli/init/utils.test.d.ts.map +1 -0
- package/dist/cli/init/walkthrough.d.ts +8 -0
- package/dist/cli/init/walkthrough.d.ts.map +1 -0
- package/dist/cli/init/walkthrough.test.d.ts +2 -0
- package/dist/cli/init/walkthrough.test.d.ts.map +1 -0
- package/dist/cli/kfc.d.ts +3 -0
- package/dist/cli/kfc.d.ts.map +1 -0
- package/dist/cli/monitor.d.ts +3 -0
- package/dist/cli/monitor.d.ts.map +1 -0
- package/dist/cli/root.d.ts +5 -0
- package/dist/cli/root.d.ts.map +1 -0
- package/dist/cli/update.d.ts +3 -0
- package/dist/cli/update.d.ts.map +1 -0
- package/dist/cli/uuid.d.ts +3 -0
- package/dist/cli/uuid.d.ts.map +1 -0
- package/dist/cli.js +66 -25
- package/dist/controller.js +1 -1
- package/dist/fixtures/loader.d.ts +5 -0
- package/dist/fixtures/loader.d.ts.map +1 -0
- package/dist/lib/assets/helm.d.ts +1 -0
- package/dist/lib/assets/helm.d.ts.map +1 -1
- package/dist/lib/assets/helm.test.d.ts +2 -0
- package/dist/lib/assets/helm.test.d.ts.map +1 -0
- package/dist/lib/assets/index.d.ts.map +1 -1
- package/dist/lib/assets/pods.d.ts +3 -0
- package/dist/lib/assets/pods.d.ts.map +1 -1
- package/dist/lib/assets/pods.test.d.ts +2 -0
- package/dist/lib/assets/pods.test.d.ts.map +1 -0
- package/dist/lib/assets/yaml.d.ts.map +1 -1
- package/dist/lib/controller/store.d.ts.map +1 -1
- package/dist/lib/errors.test.d.ts +2 -0
- package/dist/lib/errors.test.d.ts.map +1 -0
- package/dist/lib/filter.test.d.ts +2 -0
- package/dist/lib/filter.test.d.ts.map +1 -0
- package/dist/lib/helpers.test.d.ts +2 -0
- package/dist/lib/helpers.test.d.ts.map +1 -0
- package/dist/lib/included-files.test.d.ts +2 -0
- package/dist/lib/included-files.test.d.ts.map +1 -0
- package/dist/lib/logger.test.d.ts +2 -0
- package/dist/lib/logger.test.d.ts.map +1 -0
- package/dist/lib/metrics.d.ts +18 -0
- package/dist/lib/metrics.d.ts.map +1 -1
- package/dist/lib/metrics.test.d.ts +2 -0
- package/dist/lib/metrics.test.d.ts.map +1 -0
- package/dist/lib/module.test.d.ts +2 -0
- package/dist/lib/module.test.d.ts.map +1 -0
- package/dist/lib/mutate-request.test.d.ts +2 -0
- package/dist/lib/mutate-request.test.d.ts.map +1 -0
- package/dist/lib/queue.test.d.ts +2 -0
- package/dist/lib/queue.test.d.ts.map +1 -0
- package/dist/lib/schedule.test.d.ts +15 -0
- package/dist/lib/schedule.test.d.ts.map +1 -0
- package/dist/lib/storage.d.ts +2 -0
- package/dist/lib/storage.d.ts.map +1 -1
- package/dist/lib/storage.test.d.ts +2 -0
- package/dist/lib/storage.test.d.ts.map +1 -0
- package/dist/lib/tls.test.d.ts +2 -0
- package/dist/lib/tls.test.d.ts.map +1 -0
- package/dist/lib/utils.test.d.ts +2 -0
- package/dist/lib/utils.test.d.ts.map +1 -0
- package/dist/lib/validate-request.test.d.ts +2 -0
- package/dist/lib/validate-request.test.d.ts.map +1 -0
- package/dist/lib/watch-processor.d.ts.map +1 -1
- package/dist/lib/watch-processor.test.d.ts +2 -0
- package/dist/lib/watch-processor.test.d.ts.map +1 -0
- package/dist/lib.js +142 -20
- package/dist/lib.js.map +3 -3
- package/dist/sdk/sdk.test.d.ts +2 -0
- package/dist/sdk/sdk.test.d.ts.map +1 -0
- package/package.json +26 -17
- package/src/cli/banner.ts +63 -0
- package/src/cli/build.ts +370 -0
- package/src/cli/deploy.ts +105 -0
- package/src/cli/dev.ts +118 -0
- package/src/cli/format.ts +83 -0
- package/src/cli/init/index.ts +99 -0
- package/src/cli/init/templates.ts +124 -0
- package/src/cli/init/utils.test.ts +28 -0
- package/src/cli/init/utils.ts +55 -0
- package/src/cli/init/walkthrough.test.ts +21 -0
- package/src/cli/init/walkthrough.ts +96 -0
- package/src/cli/kfc.ts +45 -0
- package/src/cli/monitor.ts +101 -0
- package/src/cli/root.ts +12 -0
- package/src/cli/update.ts +95 -0
- package/src/cli/uuid.ts +44 -0
- package/src/fixtures/data/create-pod.json +271 -0
- package/src/fixtures/data/delete-pod.json +271 -0
- package/src/fixtures/loader.ts +18 -0
- package/src/lib/.prettierrc +14 -0
- package/src/lib/assets/helm.test.ts +64 -0
- package/src/lib/assets/helm.ts +35 -0
- package/src/lib/assets/index.ts +5 -1
- package/src/lib/assets/pods.test.ts +553 -0
- package/src/lib/assets/pods.ts +14 -6
- package/src/lib/assets/yaml.ts +15 -18
- package/src/lib/controller/index.ts +2 -2
- package/src/lib/controller/store.ts +88 -2
- package/src/lib/errors.test.ts +85 -0
- package/src/lib/filter.test.ts +384 -0
- package/src/lib/helpers.test.ts +1192 -0
- package/src/lib/included-files.test.ts +22 -0
- package/src/lib/logger.test.ts +18 -0
- package/src/lib/metrics.test.ts +132 -0
- package/src/lib/metrics.ts +68 -6
- package/src/lib/module.test.ts +126 -0
- package/src/lib/mutate-request.test.ts +188 -0
- package/src/lib/queue.test.ts +58 -0
- package/src/lib/schedule.test.ts +217 -0
- package/src/lib/storage.test.ts +203 -0
- package/src/lib/storage.ts +22 -9
- package/src/lib/tls.test.ts +18 -0
- package/src/lib/utils.test.ts +69 -0
- package/src/lib/validate-request.test.ts +124 -0
- package/src/lib/watch-processor.test.ts +322 -0
- package/src/lib/watch-processor.ts +20 -4
- package/src/sdk/sdk.test.ts +243 -0
- package/src/templates/.eslintrc.json +6 -0
- package/.prettierignore +0 -1
- package/CODE_OF_CONDUCT.md +0 -133
- package/SECURITY.md +0 -18
- package/SUPPORT.md +0 -16
- package/codecov.yaml +0 -19
- 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;
|
|
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 @@
|
|
|
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: "
|
|
97
|
-
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.#
|
|
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 =
|
|
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
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
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
|
-
|
|
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":
|