@crvouga/mockingbird-service-emqx 0.9.4 → 0.9.6
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/CHANGELOG.md +12 -0
- package/dist/{chunk-PYAPMHUE.js → chunk-6SILEQM5.js} +27 -15
- package/dist/chunk-6SILEQM5.js.map +7 -0
- package/dist/{chunk-HFZV5SWL.js → chunk-OAGNGYBE.js} +3 -3
- package/dist/cli.js +2 -2
- package/dist/index.js +1 -1
- package/dist/server.js +2 -2
- package/package.json +1 -1
- package/dist/chunk-PYAPMHUE.js.map +0 -7
- /package/dist/{chunk-HFZV5SWL.js.map → chunk-OAGNGYBE.js.map} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Changelog — @crvouga/mockingbird-service-emqx
|
|
2
2
|
|
|
3
|
+
## 0.9.6 (2026-11-02)
|
|
4
|
+
|
|
5
|
+
### Fixes and improvements
|
|
6
|
+
|
|
7
|
+
- save and replay a 500 the endpoint produced under an Idempotency-Key ([789bbcc](https://github.com/crvouga/mockingbird/commit/789bbcccb792cddaf27f4f6db6d2fcf2da1d07fe))
|
|
8
|
+
|
|
9
|
+
## 0.9.5 (2026-11-02)
|
|
10
|
+
|
|
11
|
+
### Fixes and improvements
|
|
12
|
+
|
|
13
|
+
- compare the admin key in constant time ([2a43141](https://github.com/crvouga/mockingbird/commit/2a43141f50dab41e698c3bbce0c69bf65b40e24e))
|
|
14
|
+
|
|
3
15
|
## 0.9.4 (2026-11-02)
|
|
4
16
|
|
|
5
17
|
### Fixes and improvements
|
|
@@ -4695,6 +4695,25 @@ var createNamespaceControls = (options) => {
|
|
|
4695
4695
|
};
|
|
4696
4696
|
};
|
|
4697
4697
|
|
|
4698
|
+
// ../core/dist/signing.js
|
|
4699
|
+
var encoder = new TextEncoder();
|
|
4700
|
+
var toBase64 = (bytes) => {
|
|
4701
|
+
let binary = "";
|
|
4702
|
+
for (const byte of bytes instanceof Uint8Array ? bytes : new Uint8Array(bytes)) {
|
|
4703
|
+
binary += String.fromCharCode(byte);
|
|
4704
|
+
}
|
|
4705
|
+
return btoa(binary);
|
|
4706
|
+
};
|
|
4707
|
+
var fromBase64 = (value) => Uint8Array.from(atob(value), (char) => char.charCodeAt(0));
|
|
4708
|
+
var timingSafeEqual = (a, b) => {
|
|
4709
|
+
if (a.length !== b.length)
|
|
4710
|
+
return false;
|
|
4711
|
+
let diff = 0;
|
|
4712
|
+
for (let i = 0; i < a.length; i++)
|
|
4713
|
+
diff |= a.charCodeAt(i) ^ b.charCodeAt(i);
|
|
4714
|
+
return diff === 0;
|
|
4715
|
+
};
|
|
4716
|
+
|
|
4698
4717
|
// ../core/dist/surface.js
|
|
4699
4718
|
var defineMock = (runtime) => runtime;
|
|
4700
4719
|
var ADMIN_ROUTE_REFERENCE = {
|
|
@@ -4813,6 +4832,10 @@ var assertAdminPrefixAvailable = (prefix, paths) => {
|
|
|
4813
4832
|
}
|
|
4814
4833
|
};
|
|
4815
4834
|
var ADMIN_KEY_HEADER = CONTROL_HEADERS.adminKey;
|
|
4835
|
+
var hasAdminKey = (headers, adminKey) => {
|
|
4836
|
+
const sent = headers.get(ADMIN_KEY_HEADER);
|
|
4837
|
+
return sent !== null && timingSafeEqual(sent, adminKey);
|
|
4838
|
+
};
|
|
4816
4839
|
var NAMESPACE_HEADER = CONTROL_HEADERS.namespace;
|
|
4817
4840
|
var ADMIN_DOCS_URL = "https://mockingbird.chrisvouga.dev/docs/admin-controls";
|
|
4818
4841
|
var ADMIN_CONTROL_PAGES = [
|
|
@@ -5286,7 +5309,7 @@ var createControlPlane = (context) => {
|
|
|
5286
5309
|
}
|
|
5287
5310
|
const path = url.pathname.slice(adminPrefix.length) || "/";
|
|
5288
5311
|
const shell = request.method === "GET" && (path === "/ui" || path === "/ui/");
|
|
5289
|
-
if (!shell && context.adminKey !== void 0 && request.headers
|
|
5312
|
+
if (!shell && context.adminKey !== void 0 && !hasAdminKey(request.headers, context.adminKey)) {
|
|
5290
5313
|
return adminError(401, `missing or wrong ${ADMIN_KEY_HEADER}`);
|
|
5291
5314
|
}
|
|
5292
5315
|
for (const route of routes) {
|
|
@@ -6065,18 +6088,7 @@ var stateAdminRoutes = (routes) => {
|
|
|
6065
6088
|
};
|
|
6066
6089
|
|
|
6067
6090
|
// ../core/dist/version.js
|
|
6068
|
-
var PACKAGE_VERSION = true ? "0.9.
|
|
6069
|
-
|
|
6070
|
-
// ../core/dist/signing.js
|
|
6071
|
-
var encoder = new TextEncoder();
|
|
6072
|
-
var toBase64 = (bytes) => {
|
|
6073
|
-
let binary = "";
|
|
6074
|
-
for (const byte of bytes instanceof Uint8Array ? bytes : new Uint8Array(bytes)) {
|
|
6075
|
-
binary += String.fromCharCode(byte);
|
|
6076
|
-
}
|
|
6077
|
-
return btoa(binary);
|
|
6078
|
-
};
|
|
6079
|
-
var fromBase64 = (value) => Uint8Array.from(atob(value), (char) => char.charCodeAt(0));
|
|
6091
|
+
var PACKAGE_VERSION = true ? "0.9.6" : UNRELEASED_VERSION;
|
|
6080
6092
|
|
|
6081
6093
|
// ../core/dist/webhooks.js
|
|
6082
6094
|
var json4 = (status, body) => new Response(JSON.stringify(body), {
|
|
@@ -7055,7 +7067,7 @@ var createRuntime = (options) => {
|
|
|
7055
7067
|
throw error;
|
|
7056
7068
|
}
|
|
7057
7069
|
const rewinds = at !== void 0 && selectedBranch === "main" && MUTATING_METHODS.has(request.method);
|
|
7058
|
-
if ((requested || rewinds) && options.adminKey !== void 0 && request.headers
|
|
7070
|
+
if ((requested || rewinds) && options.adminKey !== void 0 && !hasAdminKey(request.headers, options.adminKey))
|
|
7059
7071
|
return refuse(401, `control headers need ${ADMIN_KEY_HEADER}`);
|
|
7060
7072
|
controls.ensure(namespace);
|
|
7061
7073
|
if (requested?.restore !== void 0 && !snapshotStore.get(namespace, requested.restore))
|
|
@@ -9558,4 +9570,4 @@ export {
|
|
|
9558
9570
|
apiKeyCredential,
|
|
9559
9571
|
EmqxAPI
|
|
9560
9572
|
};
|
|
9561
|
-
//# sourceMappingURL=chunk-
|
|
9573
|
+
//# sourceMappingURL=chunk-6SILEQM5.js.map
|