@crvouga/mockingbird-service-clerk 0.11.0 → 0.11.1
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 +7 -0
- package/dist/{chunk-6Z2MR3PO.js → chunk-JOPRLDGL.js} +5 -1
- package/dist/chunk-JOPRLDGL.js.map +7 -0
- package/dist/{chunk-HFWU46ZT.js → chunk-OZQVX3GC.js} +36 -17
- package/dist/chunk-OZQVX3GC.js.map +7 -0
- package/dist/{chunk-ASGMRJQK.js → chunk-TCQ4RQY2.js} +2 -2
- package/dist/{chunk-PPS35ZC2.js → chunk-WKF6HWAZ.js} +14 -10
- package/dist/chunk-WKF6HWAZ.js.map +7 -0
- package/dist/cli.js +4 -4
- package/dist/{crypto-II2ETGQQ.js → crypto-HFQET2PM.js} +2 -2
- package/dist/{helpers-5DNVTSLA.js → helpers-I2WDGZCA.js} +3 -3
- package/dist/index.js +3 -3
- package/dist/server.d.ts +61 -1805
- package/dist/server.js +4 -4
- package/package.json +1 -1
- package/dist/chunk-6Z2MR3PO.js.map +0 -7
- package/dist/chunk-HFWU46ZT.js.map +0 -7
- package/dist/chunk-PPS35ZC2.js.map +0 -7
- /package/dist/{chunk-ASGMRJQK.js.map → chunk-TCQ4RQY2.js.map} +0 -0
- /package/dist/{crypto-II2ETGQQ.js.map → crypto-HFQET2PM.js.map} +0 -0
- /package/dist/{helpers-5DNVTSLA.js.map → helpers-I2WDGZCA.js.map} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog — @crvouga/mockingbird-service-clerk
|
|
2
2
|
|
|
3
|
+
## 0.11.1 (2026-11-12)
|
|
4
|
+
|
|
5
|
+
### Fixes and improvements
|
|
6
|
+
|
|
7
|
+
- serve vendor brand data from each emulator instead of the docs site ([0c72a69](https://github.com/crvouga/mockingbird/commit/0c72a693fc76e612936150598faef9787ad1c824))
|
|
8
|
+
- take SIGINT/SIGTERM before readiness is published ([d5a98a0](https://github.com/crvouga/mockingbird/commit/d5a98a09a344e12818c5c94cbea03621b528f841))
|
|
9
|
+
|
|
3
10
|
## 0.11.0 (2026-11-11)
|
|
4
11
|
|
|
5
12
|
### Features
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
// <define:__MOCKINGBIRD_ADMIN_BRAND__>
|
|
2
|
+
var define_MOCKINGBIRD_ADMIN_BRAND_default = { vendor: "Clerk", website: "https://clerk.com", docs: "https://clerk.com/docs/reference/backend-api", guide: "https://mockingbird.chrisvouga.dev/services/clerk", logo: "data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjNkM0N0ZGIiByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+Q2xlcms8L3RpdGxlPjxwYXRoIGQ9Im0yMS40NyAyMC44MjktMi44ODEtMi44ODFhLjU3Mi41NzIgMCAwIDAtLjctLjA4NCA2Ljg1NCA2Ljg1NCAwIDAgMS03LjA4MSAwIC41NzYuNTc2IDAgMCAwLS43LjA4NGwtMi44ODEgMi44ODFhLjU3Ni41NzYgMCAwIDAtLjEwMy42OS41Ny41NyAwIDAgMCAuMTY2LjE4NiAxMiAxMiAwIDAgMCAxNC4xMTMgMCAuNTguNTggMCAwIDAgLjIzOS0uNDIzLjU3Ni41NzYgMCAwIDAtLjE3Mi0uNDUzWm0uMDAyLTE3LjY2OC0yLjg4IDIuODhhLjU2OS41NjkgMCAwIDEtLjcwMS4wODRBNi44NTcgNi44NTcgMCAwIDAgOC43MjQgOC4wOGE2Ljg2MiA2Ljg2MiAwIDAgMC0xLjIyMiAzLjY5MiA2Ljg2IDYuODYgMCAwIDAgLjk3OCAzLjc2NC41NzMuNTczIDAgMCAxLS4wODMuNjk5bC0yLjg4MSAyLjg4YS41NjcuNTY3IDAgMCAxLS44NjQtLjA2M0ExMS45OTMgMTEuOTkzIDAgMCAxIDYuNzcxIDIuN2ExMS45OSAxMS45OSAwIDAgMSAxNC42MzctLjQwNS41NjYuNTY2IDAgMCAxIC4yMzIuNDE4LjU3LjU3IDAgMCAxLS4xNjguNDQ4Wm0tNy4xMTggMTIuMjYxYTMuNDI3IDMuNDI3IDAgMSAwIDAtNi44NTQgMy40MjcgMy40MjcgMCAwIDAgMCA2Ljg1NFoiLz48L3N2Zz4=", color: "#6C47FF", description: "OIDC discovery, JWKS, OAuth authorize/token/userinfo, users, email addresses, organizations, memberships, invitations, sessions" };
|
|
3
|
+
|
|
1
4
|
// ../../http/provider/dist/vendor/core/crypto.js
|
|
2
5
|
import { hmac } from "@noble/hashes/hmac.js";
|
|
3
6
|
import { sha1 } from "@noble/hashes/legacy.js";
|
|
@@ -85,6 +88,7 @@ function timingSafeEqual(a, b) {
|
|
|
85
88
|
}
|
|
86
89
|
|
|
87
90
|
export {
|
|
91
|
+
define_MOCKINGBIRD_ADMIN_BRAND_default,
|
|
88
92
|
createHash,
|
|
89
93
|
createHmac,
|
|
90
94
|
useRandom,
|
|
@@ -94,4 +98,4 @@ export {
|
|
|
94
98
|
randomUUID,
|
|
95
99
|
timingSafeEqual
|
|
96
100
|
};
|
|
97
|
-
//# sourceMappingURL=chunk-
|
|
101
|
+
//# sourceMappingURL=chunk-JOPRLDGL.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["<define:__MOCKINGBIRD_ADMIN_BRAND__>", "../../../http/provider/src/vendor/core/crypto.ts"],
|
|
4
|
+
"sourcesContent": ["{\"vendor\":\"Clerk\",\"website\":\"https://clerk.com\",\"docs\":\"https://clerk.com/docs/reference/backend-api\",\"guide\":\"https://mockingbird.chrisvouga.dev/services/clerk\",\"logo\":\"data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjNkM0N0ZGIiByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+Q2xlcms8L3RpdGxlPjxwYXRoIGQ9Im0yMS40NyAyMC44MjktMi44ODEtMi44ODFhLjU3Mi41NzIgMCAwIDAtLjctLjA4NCA2Ljg1NCA2Ljg1NCAwIDAgMS03LjA4MSAwIC41NzYuNTc2IDAgMCAwLS43LjA4NGwtMi44ODEgMi44ODFhLjU3Ni41NzYgMCAwIDAtLjEwMy42OS41Ny41NyAwIDAgMCAuMTY2LjE4NiAxMiAxMiAwIDAgMCAxNC4xMTMgMCAuNTguNTggMCAwIDAgLjIzOS0uNDIzLjU3Ni41NzYgMCAwIDAtLjE3Mi0uNDUzWm0uMDAyLTE3LjY2OC0yLjg4IDIuODhhLjU2OS41NjkgMCAwIDEtLjcwMS4wODRBNi44NTcgNi44NTcgMCAwIDAgOC43MjQgOC4wOGE2Ljg2MiA2Ljg2MiAwIDAgMC0xLjIyMiAzLjY5MiA2Ljg2IDYuODYgMCAwIDAgLjk3OCAzLjc2NC41NzMuNTczIDAgMCAxLS4wODMuNjk5bC0yLjg4MSAyLjg4YS41NjcuNTY3IDAgMCAxLS44NjQtLjA2M0ExMS45OTMgMTEuOTkzIDAgMCAxIDYuNzcxIDIuN2ExMS45OSAxMS45OSAwIDAgMSAxNC42MzctLjQwNS41NjYuNTY2IDAgMCAxIC4yMzIuNDE4LjU3LjU3IDAgMCAxLS4xNjguNDQ4Wm0tNy4xMTggMTIuMjYxYTMuNDI3IDMuNDI3IDAgMSAwIDAtNi44NTQgMy40MjcgMy40MjcgMCAwIDAgMCA2Ljg1NFoiLz48L3N2Zz4=\",\"color\":\"#6C47FF\",\"description\":\"OIDC discovery, JWKS, OAuth authorize/token/userinfo, users, email addresses, organizations, memberships, invitations, sessions\"}", "import { hmac } from \"@noble/hashes/hmac.js\"\nimport { sha1 } from \"@noble/hashes/legacy.js\"\nimport { md5 } from \"@noble/hashes/legacy.js\"\nimport { sha256 } from \"@noble/hashes/sha2.js\"\nimport { Buffer } from \"buffer\"\n\nconst digest = (algorithm: string) => {\n if (algorithm === \"sha256\") return sha256\n if (algorithm === \"sha1\") return sha1\n if (algorithm === \"md5\") return md5\n throw new Error(`Unsupported digest ${algorithm}`)\n}\nconst bytes = (input: string | Uint8Array) => typeof input === \"string\" ? new TextEncoder().encode(input) : input\ninterface Hash {\n update(input: string | Uint8Array): Hash\n digest(): Buffer\n digest(encoding: string): string\n}\nexport function createHash(algorithm: string): Hash {\n const parts: Uint8Array[] = []\n const hash = {\n update(input: string | Uint8Array) { parts.push(bytes(input)); return hash },\n digest(encoding?: string): Buffer | string {\n const result = Buffer.from(digest(algorithm)(Buffer.concat(parts)))\n return encoding === \"base64url\" ? result.toString(\"base64\").replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/, \"\") : encoding ? result.toString(encoding as BufferEncoding) : result\n },\n }\n return hash as Hash\n}\nexport function createHmac(algorithm: string, key: string | Uint8Array): Hash {\n const parts: Uint8Array[] = []\n const hash = {\n update(input: string | Uint8Array) { parts.push(bytes(input)); return hash },\n digest(encoding?: string): Buffer | string {\n const result = Buffer.from(hmac(digest(algorithm), bytes(key), Buffer.concat(parts)))\n return encoding === \"base64url\" ? result.toString(\"base64\").replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/, \"\") : encoding ? result.toString(encoding as BufferEncoding) : result\n },\n }\n return hash as Hash\n}\n/**\n * Mockingbird: where ids and tokens come from. With a seeded stream in place, everything the\n * vendor code mints replays from the seed; without one it is the platform's own randomness.\n */\nlet source: (() => number) | undefined\n/** Mint from `next` (a seeded stream of `[0, 1)`) until told otherwise. */\nexport function useRandom(next: (() => number) | undefined): void { source = next }\n/** Mint from `next` for one synchronous section, then put the previous source back. */\nexport function withRandom<T>(next: (() => number) | undefined, run: () => T): T {\n const previous = source\n source = next\n try { return run() } finally { source = previous }\n}\n/** `Math.random`, from the seeded stream when one is in place. */\nexport function random(): number { return source ? source() : Math.random() }\nexport function randomBytes(length: number): Buffer {\n if (!source) return Buffer.from(crypto.getRandomValues(new Uint8Array(length)))\n const out = new Uint8Array(length)\n for (let i = 0; i < length; i++) out[i] = Math.floor(source() * 256)\n return Buffer.from(out)\n}\nexport function randomUUID(): string {\n if (!source) return crypto.randomUUID()\n const b = randomBytes(16)\n b[6] = (b[6] & 0x0f) | 0x40\n b[8] = (b[8] & 0x3f) | 0x80\n const hex = b.toString(\"hex\")\n return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`\n}\nexport function timingSafeEqual(a: Uint8Array, b: Uint8Array): boolean {\n if (a.length !== b.length) throw new Error(\"Buffers must have equal lengths\")\n let difference = 0\n for (let i = 0; i < a.length; i++) difference |= a[i] ^ b[i]\n return difference === 0\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
parseFaultHeader,
|
|
10
10
|
resolveAdminPrefix,
|
|
11
11
|
restoreClock
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-WKF6HWAZ.js";
|
|
13
13
|
|
|
14
14
|
// ../../adapters/node/dist/cli.js
|
|
15
15
|
import { readFile as readFile5 } from "node:fs/promises";
|
|
@@ -3079,7 +3079,7 @@ async function preflightFleet(config, options) {
|
|
|
3079
3079
|
break;
|
|
3080
3080
|
}
|
|
3081
3081
|
}
|
|
3082
|
-
targets.set(name, { ...target, packageVersion: packageVersion ?? "0.11.
|
|
3082
|
+
targets.set(name, { ...target, packageVersion: packageVersion ?? "0.11.1" });
|
|
3083
3083
|
} catch (error) {
|
|
3084
3084
|
throw new Error(`service ${name}: ${error instanceof Error ? error.message : String(error)}`, { cause: error });
|
|
3085
3085
|
}
|
|
@@ -4937,20 +4937,35 @@ var start = async (target, values, config) => {
|
|
|
4937
4937
|
console.log(`${target.name} ${line.replaceAll("/__admin", adminPrefix)}`);
|
|
4938
4938
|
return listening;
|
|
4939
4939
|
};
|
|
4940
|
-
var
|
|
4941
|
-
|
|
4940
|
+
var watchSignals = () => {
|
|
4941
|
+
let received = false;
|
|
4942
|
+
let wake = () => {
|
|
4943
|
+
};
|
|
4944
|
+
const on = () => {
|
|
4945
|
+
received = true;
|
|
4946
|
+
wake();
|
|
4947
|
+
};
|
|
4948
|
+
const dispose = () => {
|
|
4942
4949
|
;
|
|
4943
|
-
process.removeListener("SIGINT",
|
|
4944
|
-
process.removeListener("SIGTERM",
|
|
4945
|
-
const results = await Promise.allSettled(servers.map((s) => s.close()));
|
|
4946
|
-
for (const result of results)
|
|
4947
|
-
if (result.status === "rejected")
|
|
4948
|
-
console.error(result.reason instanceof Error ? result.reason.message : String(result.reason));
|
|
4949
|
-
resolve4(results.some((r) => r.status === "rejected") ? 1 : 0);
|
|
4950
|
+
process.removeListener("SIGINT", on);
|
|
4951
|
+
process.removeListener("SIGTERM", on);
|
|
4950
4952
|
};
|
|
4951
|
-
process.once("SIGINT",
|
|
4952
|
-
process.once("SIGTERM",
|
|
4953
|
-
|
|
4953
|
+
process.once("SIGINT", on);
|
|
4954
|
+
process.once("SIGTERM", on);
|
|
4955
|
+
return {
|
|
4956
|
+
dispose,
|
|
4957
|
+
async untilSignal(servers) {
|
|
4958
|
+
if (!received)
|
|
4959
|
+
await new Promise((resolve4) => wake = resolve4);
|
|
4960
|
+
dispose();
|
|
4961
|
+
const results = await Promise.allSettled(servers.map((s) => s.close()));
|
|
4962
|
+
for (const result of results)
|
|
4963
|
+
if (result.status === "rejected")
|
|
4964
|
+
console.error(result.reason instanceof Error ? result.reason.message : String(result.reason));
|
|
4965
|
+
return results.some((r) => r.status === "rejected") ? 1 : 0;
|
|
4966
|
+
}
|
|
4967
|
+
};
|
|
4968
|
+
};
|
|
4954
4969
|
var serveCommand = (target) => ({
|
|
4955
4970
|
fleetTarget: target,
|
|
4956
4971
|
summary: `Serve the ${target.name} emulator or a configured fleet`,
|
|
@@ -4963,6 +4978,7 @@ var serveCommand = (target) => ({
|
|
|
4963
4978
|
}
|
|
4964
4979
|
const configPath = asString(values.config);
|
|
4965
4980
|
if (configPath !== void 0) {
|
|
4981
|
+
const signals2 = watchSignals();
|
|
4966
4982
|
try {
|
|
4967
4983
|
const config = JSON.parse(await readFile5(configPath, "utf8"));
|
|
4968
4984
|
config.adminPrefix = resolveAdminPrefix(config.adminPrefix ?? asString(values["admin-prefix"]) ?? process.env.MOCKINGBIRD_ADMIN_PREFIX);
|
|
@@ -4992,8 +5008,9 @@ var serveCommand = (target) => ({
|
|
|
4992
5008
|
console.log(`${name} emulator listening on ${endpoint.url}`);
|
|
4993
5009
|
}
|
|
4994
5010
|
});
|
|
4995
|
-
return untilSignal([fleet]);
|
|
5011
|
+
return signals2.untilSignal([fleet]);
|
|
4996
5012
|
} catch (error) {
|
|
5013
|
+
signals2.dispose();
|
|
4997
5014
|
console.error(error instanceof Error ? error.message : String(error));
|
|
4998
5015
|
return 1;
|
|
4999
5016
|
}
|
|
@@ -5006,6 +5023,7 @@ var serveCommand = (target) => ({
|
|
|
5006
5023
|
const adminKey = asString(values["admin-key"]) ?? process.env.MOCKINGBIRD_ADMIN_KEY;
|
|
5007
5024
|
const seed = asString(values.seed) ?? process.env.MOCKINGBIRD_SEED;
|
|
5008
5025
|
let listening;
|
|
5026
|
+
const signals = watchSignals();
|
|
5009
5027
|
try {
|
|
5010
5028
|
const adminControls = await resolveServeControls(values);
|
|
5011
5029
|
const idBase = resolveServeIdBase(values);
|
|
@@ -5022,10 +5040,11 @@ var serveCommand = (target) => ({
|
|
|
5022
5040
|
log
|
|
5023
5041
|
});
|
|
5024
5042
|
} catch (error) {
|
|
5043
|
+
signals.dispose();
|
|
5025
5044
|
console.error(error instanceof Error ? error.message : String(error));
|
|
5026
5045
|
return 1;
|
|
5027
5046
|
}
|
|
5028
|
-
return untilSignal([listening]);
|
|
5047
|
+
return signals.untilSignal([listening]);
|
|
5029
5048
|
}
|
|
5030
5049
|
});
|
|
5031
5050
|
|
|
@@ -5109,4 +5128,4 @@ export {
|
|
|
5109
5128
|
createServer2 as createServer,
|
|
5110
5129
|
serveTarget
|
|
5111
5130
|
};
|
|
5112
|
-
//# sourceMappingURL=chunk-
|
|
5131
|
+
//# sourceMappingURL=chunk-OZQVX3GC.js.map
|