@secondlayer/shared 11.7.1 → 11.8.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/dist/src/archive/copy-loader.d.ts +1 -1
- package/dist/src/archive/copy-loader.js +4 -20
- package/dist/src/archive/copy-loader.js.map +2 -2
- package/dist/src/archive/derived-stage-report.d.ts +1 -1
- package/dist/src/archive/derived-stage-report.js +3 -19
- package/dist/src/archive/derived-stage-report.js.map +2 -2
- package/dist/src/archive/disk-guard.d.ts +1 -1
- package/dist/src/archive/disk-guard.js +3 -19
- package/dist/src/archive/disk-guard.js.map +2 -2
- package/dist/src/archive/instance-diagnosis.d.ts +1 -1
- package/dist/src/archive/instance-diagnosis.js +6 -22
- package/dist/src/archive/instance-diagnosis.js.map +2 -2
- package/dist/src/archive/key-registry.d.ts +1 -1
- package/dist/src/archive/key-registry.js +12 -12
- package/dist/src/archive/key-registry.js.map +1 -1
- package/dist/src/archive/per-height-digest.d.ts +1 -1
- package/dist/src/archive/per-height-digest.js +3 -17
- package/dist/src/archive/per-height-digest.js.map +5 -5
- package/dist/src/archive/progress.d.ts +1 -1
- package/dist/src/archive/progress.js +4 -20
- package/dist/src/archive/progress.js.map +2 -2
- package/dist/src/archive/range-digest.d.ts +2 -3
- package/dist/src/archive/range-digest.js +4 -20
- package/dist/src/archive/range-digest.js.map +2 -2
- package/dist/src/archive/reference.d.ts +1 -1
- package/dist/src/archive/reference.js +14 -12
- package/dist/src/archive/reference.js.map +5 -5
- package/dist/src/archive/root-key.d.ts +1 -1
- package/dist/src/archive/root-key.js +3 -19
- package/dist/src/archive/root-key.js.map +2 -2
- package/dist/src/archive/semantic-digest-builder.d.ts +2 -3
- package/dist/src/archive/semantic-digest-builder.js +5 -19
- package/dist/src/archive/semantic-digest-builder.js.map +5 -5
- package/dist/src/archive/semantic-digest.d.ts +1 -1
- package/dist/src/archive/semantic-digest.js +4 -20
- package/dist/src/archive/semantic-digest.js.map +2 -2
- package/dist/src/archive/status.d.ts +1 -1
- package/dist/src/archive/status.js +4 -20
- package/dist/src/archive/status.js.map +2 -2
- package/dist/src/coverage/index.d.ts +1 -2
- package/dist/src/coverage/index.js +80 -96
- package/dist/src/coverage/index.js.map +2 -2
- package/dist/src/crypto/ed25519.d.ts +1 -1
- package/dist/src/crypto/ed25519.js +13 -13
- package/dist/src/crypto/ed25519.js.map +1 -1
- package/dist/src/crypto/hmac.d.ts +1 -1
- package/dist/src/crypto/hmac.js +9 -9
- package/dist/src/crypto/hmac.js.map +1 -1
- package/dist/src/crypto/secondlayer-webhook.d.ts +1 -1
- package/dist/src/crypto/secondlayer-webhook.js +14 -14
- package/dist/src/crypto/secondlayer-webhook.js.map +2 -2
- package/dist/src/crypto/secrets.d.ts +1 -1
- package/dist/src/crypto/secrets.js +15 -29
- package/dist/src/crypto/secrets.js.map +5 -5
- package/dist/src/crypto/standard-webhooks.d.ts +1 -1
- package/dist/src/crypto/standard-webhooks.js +3 -19
- package/dist/src/crypto/standard-webhooks.js.map +2 -2
- package/dist/src/db/index.d.ts +18 -19
- package/dist/src/db/index.js +40 -55
- package/dist/src/db/index.js.map +5 -5
- package/dist/src/db/jsonb.d.ts +1 -1
- package/dist/src/db/jsonb.js +3 -19
- package/dist/src/db/jsonb.js.map +2 -2
- package/dist/src/db/queries/chain-reorgs.d.ts +1 -2
- package/dist/src/db/queries/chain-reorgs.js +27 -42
- package/dist/src/db/queries/chain-reorgs.js.map +5 -5
- package/dist/src/db/queries/contracts.d.ts +1 -2
- package/dist/src/db/queries/contracts.js +9 -23
- package/dist/src/db/queries/contracts.js.map +5 -5
- package/dist/src/db/queries/instance.d.ts +1 -2
- package/dist/src/db/queries/instance.js +7 -23
- package/dist/src/db/queries/instance.js.map +2 -2
- package/dist/src/db/queries/integrity.d.ts +1 -2
- package/dist/src/db/queries/integrity.js +5 -21
- package/dist/src/db/queries/integrity.js.map +2 -2
- package/dist/src/db/queries/subgraph-gaps.d.ts +1 -2
- package/dist/src/db/queries/subgraph-gaps.js +5 -21
- package/dist/src/db/queries/subgraph-gaps.js.map +2 -2
- package/dist/src/db/queries/subgraph-operations.d.ts +1 -2
- package/dist/src/db/queries/subgraph-operations.js +17 -33
- package/dist/src/db/queries/subgraph-operations.js.map +2 -2
- package/dist/src/db/queries/subgraphs.d.ts +2 -14
- package/dist/src/db/queries/subgraphs.js +15 -37
- package/dist/src/db/queries/subgraphs.js.map +5 -5
- package/dist/src/db/queries/sync-scope.d.ts +1 -2
- package/dist/src/db/queries/sync-scope.js +6 -22
- package/dist/src/db/queries/sync-scope.js.map +2 -2
- package/dist/src/db/queries/webhooks.d.ts +1 -2
- package/dist/src/db/queries/webhooks.js +54 -50
- package/dist/src/db/queries/webhooks.js.map +5 -5
- package/dist/src/db/schema.d.ts +1 -2
- package/dist/src/env.d.ts +1 -1
- package/dist/src/env.js +7 -23
- package/dist/src/env.js.map +2 -2
- package/dist/src/errors.d.ts +1 -1
- package/dist/src/errors.js +15 -31
- package/dist/src/errors.js.map +2 -2
- package/dist/src/index-http.d.ts +1 -1
- package/dist/src/index-http.js +3 -19
- package/dist/src/index-http.js.map +2 -2
- package/dist/src/index-internal-auth.d.ts +1 -1
- package/dist/src/index-internal-auth.js +7 -23
- package/dist/src/index-internal-auth.js.map +2 -2
- package/dist/src/index.d.ts +136 -149
- package/dist/src/index.js +259 -313
- package/dist/src/index.js.map +12 -12
- package/dist/src/leader.d.ts +1 -1
- package/dist/src/leader.js +7 -21
- package/dist/src/leader.js.map +5 -5
- package/dist/src/logger.js +1 -17
- package/dist/src/logger.js.map +2 -2
- package/dist/src/mode.d.ts +1 -1
- package/dist/src/mode.js +5 -21
- package/dist/src/mode.js.map +2 -2
- package/dist/src/node/archive-client.d.ts +1 -1
- package/dist/src/node/archive-client.js +9 -23
- package/dist/src/node/archive-client.js.map +5 -5
- package/dist/src/node/client.d.ts +1 -1
- package/dist/src/node/client.js +4 -18
- package/dist/src/node/client.js.map +5 -5
- package/dist/src/node/consensus.d.ts +1 -1
- package/dist/src/node/consensus.js +5 -21
- package/dist/src/node/consensus.js.map +2 -2
- package/dist/src/node/hiro-client.d.ts +1 -1
- package/dist/src/node/hiro-client.js +1 -17
- package/dist/src/node/hiro-client.js.map +2 -2
- package/dist/src/node/hiro-pg-client.js +1 -17
- package/dist/src/node/hiro-pg-client.js.map +2 -2
- package/dist/src/node/local-client.d.ts +1 -2
- package/dist/src/node/local-client.js +3 -19
- package/dist/src/node/local-client.js.map +2 -2
- package/dist/src/node/nakamoto.d.ts +1 -1
- package/dist/src/node/nakamoto.js +12 -28
- package/dist/src/node/nakamoto.js.map +2 -2
- package/dist/src/queue/listener.d.ts +1 -1
- package/dist/src/queue/listener.js +4 -20
- package/dist/src/queue/listener.js.map +2 -2
- package/dist/src/runtime/index.d.ts +1 -1
- package/dist/src/runtime/index.js +51 -67
- package/dist/src/runtime/index.js.map +2 -2
- package/dist/src/schemas/index.d.ts +1 -4
- package/dist/src/schemas/index.js +19 -37
- package/dist/src/schemas/index.js.map +3 -3
- package/dist/src/schemas/subgraphs.d.ts +1 -4
- package/dist/src/schemas/subgraphs.js +1 -18
- package/dist/src/schemas/subgraphs.js.map +3 -3
- package/dist/src/schemas/webhooks.d.ts +1 -1
- package/dist/src/schemas/webhooks.js +21 -37
- package/dist/src/schemas/webhooks.js.map +2 -2
- package/dist/src/streams-bulk-manifest.d.ts +1 -1
- package/dist/src/streams-bulk-manifest.js +9 -9
- package/dist/src/streams-bulk-manifest.js.map +1 -1
- package/dist/src/streams-rows/index.d.ts +1 -1
- package/dist/src/streams-rows/index.js +32 -48
- package/dist/src/streams-rows/index.js.map +2 -2
- package/dist/src/subgraphs/spec.d.ts +1 -11
- package/dist/src/subgraphs/spec.js +27 -93
- package/dist/src/subgraphs/spec.js.map +3 -3
- package/dist/src/types.d.ts +1 -1
- package/migrations/0136_drop_subgraph_visibility.ts +34 -0
- package/package.json +1 -1
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"/**\n * Repair SAFETY GATE — decides whether a proposed repair is allowed to run.\n * Only registered safe modes pass; unsafe ranges and mode/defect mismatches are\n * refused.\n *\n * This file plans and refuses. It does not repair. The executor that actually\n * writes is `secondlayer repair --apply` (packages/cli/src/commands/repair.ts),\n * which rewrites blocks from a signed archive inside a transaction.\n *\n * There used to be an `applyRepair` here that returned `{applied: true}`\n * without touching anything. It was removed in 2026-08 rather than\n * implemented: a second executor would have been a fake one, and drills that\n * \"recovered\" through it would have proven nothing.\n */\n\nimport type { RepairMode } from \"./constraints.ts\";\nimport type { CoverageRange } from \"./constraints.ts\";\n\nexport const SAFE_REPAIR_MODES: readonly RepairMode[] = [\n\t\"range_safe\",\n\t\"full_reindex\",\n\t\"archive_replay\",\n];\n\nexport type RepairDefect =\n\t| \"gap\"\n\t| \"digest_mismatch\"\n\t| \"omission\"\n\t| \"version\"\n\t| \"reorg\"\n\t| \"source_gap\";\n\nexport type RepairPlan = {\n\tstage_id: string;\n\trange: CoverageRange;\n\tmode: RepairMode;\n\tdefect: RepairDefect;\n\tsafe: boolean;\n\treason: string;\n};\n\nexport function planRepair(input: {\n\tstage_id: string;\n\trange: CoverageRange;\n\tmode: RepairMode;\n\tdefect: RepairDefect;\n\trange_safe_proven?: boolean;\n}): RepairPlan {\n\tif (input.range.from_height > input.range.to_height) {\n\t\treturn {\n\t\t\t...input,\n\t\t\tsafe: false,\n\t\t\treason: \"inverted range\",\n\t\t};\n\t}\n\tif (!(SAFE_REPAIR_MODES as readonly string[]).includes(input.mode)) {\n\t\treturn {\n\t\t\t...input,\n\t\t\tsafe: false,\n\t\t\treason: `mode ${input.mode} is not registered`,\n\t\t};\n\t}\n\tif (input.mode === \"range_safe\" && !input.range_safe_proven) {\n\t\treturn {\n\t\t\t...input,\n\t\t\tsafe: false,\n\t\t\treason: \"range_safe requires a proven range\",\n\t\t};\n\t}\n\tif (input.defect === \"source_gap\" && input.mode !== \"archive_replay\") {\n\t\treturn {\n\t\t\t...input,\n\t\t\tsafe: false,\n\t\t\treason: \"raw/source gaps require archive_replay\",\n\t\t};\n\t}\n\treturn {\n\t\t...input,\n\t\tsafe: true,\n\t\treason: `dry-run ${input.mode} for ${input.defect}`,\n\t};\n}\n",
|
|
18
18
|
"/**\n * Unified verify targets — library used by CLI (and REST later).\n * Exit codes match `sl verify`: 0 clean, 1 diverged, 2 unanchored.\n */\n\nexport const VERIFY_EXIT = {\n\tCLEAN: 0,\n\tDIVERGED: 1,\n\tUNANCHORED: 2,\n} as const;\nexport type VerifyExit = (typeof VERIFY_EXIT)[keyof typeof VERIFY_EXIT];\n\nexport type VerifyTarget =\n\t| { kind: \"all\" }\n\t| { kind: \"raw\" }\n\t| { kind: \"decode\"; name: string }\n\t| { kind: \"subgraph\"; name: string };\n\nexport type VerifyMode = \"quick\" | \"deep\" | \"anchor\";\n\nexport function parseVerifyTarget(value: string | undefined): VerifyTarget {\n\tconst raw = (value ?? \"raw\").trim();\n\tif (raw === \"all\") return { kind: \"all\" };\n\tif (raw === \"raw\" || raw === \"\") return { kind: \"raw\" };\n\tif (raw.startsWith(\"decode:\")) {\n\t\tconst name = raw.slice(\"decode:\".length).trim();\n\t\tif (!name) throw new Error(\"decode: target needs a decoder name\");\n\t\treturn { kind: \"decode\", name };\n\t}\n\tif (raw.startsWith(\"subgraph:\")) {\n\t\tconst name = raw.slice(\"subgraph:\".length).trim();\n\t\tif (!name) throw new Error(\"subgraph: target needs a subgraph name\");\n\t\treturn { kind: \"subgraph\", name };\n\t}\n\tthrow new Error(\n\t\t`verify target must be all | raw | decode:<name> | subgraph:<name> (got ${value})`,\n\t);\n}\n\nconst RAW_DATASETS = new Set([\"blocks\", \"transactions\", \"events\"]);\n\n/** Whether an archive/coverage dataset belongs to this verify target. */\nexport function datasetMatchesTarget(\n\tdataset: string,\n\ttarget: VerifyTarget,\n): boolean {\n\tif (target.kind === \"all\") return true;\n\tconst name = dataset.toLowerCase();\n\tif (target.kind === \"raw\") return RAW_DATASETS.has(name);\n\tif (target.kind === \"decode\") {\n\t\treturn (\n\t\t\tname === target.name.toLowerCase() ||\n\t\t\tname === `decode:${target.name.toLowerCase()}` ||\n\t\t\tname.endsWith(`_${target.name.toLowerCase()}`)\n\t\t);\n\t}\n\treturn (\n\t\tname === target.name.toLowerCase() ||\n\t\tname === `subgraph:${target.name.toLowerCase()}` ||\n\t\tname.startsWith(`${target.name.toLowerCase()}_`)\n\t);\n}\n\nexport type VerifyReport = {\n\ttarget: VerifyTarget;\n\tmode: VerifyMode;\n\texit: VerifyExit;\n\tstatus: \"clean\" | \"diverged\" | \"unanchored\";\n\tdetail: string;\n};\n\nexport function reportVerify(opts: {\n\ttarget: VerifyTarget;\n\tmode?: VerifyMode;\n\tanchored?: boolean;\n\tdiverged?: boolean;\n\tdetail?: string;\n}): VerifyReport {\n\tconst mode = opts.mode ?? \"quick\";\n\tif (opts.anchored === false) {\n\t\treturn {\n\t\t\ttarget: opts.target,\n\t\t\tmode,\n\t\t\texit: VERIFY_EXIT.UNANCHORED,\n\t\t\tstatus: \"unanchored\",\n\t\t\tdetail: opts.detail ?? \"reference unavailable or unverifiable\",\n\t\t};\n\t}\n\tif (opts.diverged) {\n\t\treturn {\n\t\t\ttarget: opts.target,\n\t\t\tmode,\n\t\t\texit: VERIFY_EXIT.DIVERGED,\n\t\t\tstatus: \"diverged\",\n\t\t\tdetail: opts.detail ?? \"coverage or archive diverged\",\n\t\t};\n\t}\n\tconst label =\n\t\topts.target.kind === \"decode\"\n\t\t\t? `decode:${opts.target.name}`\n\t\t\t: opts.target.kind === \"subgraph\"\n\t\t\t\t? `subgraph:${opts.target.name}`\n\t\t\t\t: opts.target.kind;\n\treturn {\n\t\ttarget: opts.target,\n\t\tmode,\n\t\texit: VERIFY_EXIT.CLEAN,\n\t\tstatus: \"clean\",\n\t\tdetail: opts.detail ?? `${label} ${mode} is clean`,\n\t};\n}\n"
|
|
19
19
|
],
|
|
20
|
-
"mappings": "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",
|
|
21
|
-
"debugId": "
|
|
20
|
+
"mappings": "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",
|
|
21
|
+
"debugId": "EA2A528F4821830864756E2164756E21",
|
|
22
22
|
"names": []
|
|
23
23
|
}
|
|
@@ -19,4 +19,4 @@ declare function publicKeyPemFromPrivate(privateKeyPem: string): string;
|
|
|
19
19
|
declare function ed25519KeyId(publicKeyPem: string): string;
|
|
20
20
|
declare function signEd25519(payload: string, privateKey: KeyObject): string;
|
|
21
21
|
declare function verifyEd25519(payload: string, signatureBase64: string, publicKey: KeyObject): boolean;
|
|
22
|
-
export {
|
|
22
|
+
export { ed25519KeyId, generateEd25519KeyPair, loadEd25519PrivateKey, loadEd25519PublicKey, publicKeyPemFromPrivate, signEd25519, verifyEd25519 };
|
|
@@ -17,13 +17,13 @@ var __export = (target, all) => {
|
|
|
17
17
|
// src/crypto/ed25519.ts
|
|
18
18
|
var exports_ed25519 = {};
|
|
19
19
|
__export(exports_ed25519, {
|
|
20
|
-
|
|
21
|
-
signEd25519: () => signEd25519,
|
|
22
|
-
publicKeyPemFromPrivate: () => publicKeyPemFromPrivate,
|
|
23
|
-
loadEd25519PublicKey: () => loadEd25519PublicKey,
|
|
24
|
-
loadEd25519PrivateKey: () => loadEd25519PrivateKey,
|
|
20
|
+
ed25519KeyId: () => ed25519KeyId,
|
|
25
21
|
generateEd25519KeyPair: () => generateEd25519KeyPair,
|
|
26
|
-
|
|
22
|
+
loadEd25519PrivateKey: () => loadEd25519PrivateKey,
|
|
23
|
+
loadEd25519PublicKey: () => loadEd25519PublicKey,
|
|
24
|
+
publicKeyPemFromPrivate: () => publicKeyPemFromPrivate,
|
|
25
|
+
signEd25519: () => signEd25519,
|
|
26
|
+
verifyEd25519: () => verifyEd25519
|
|
27
27
|
});
|
|
28
28
|
import {
|
|
29
29
|
createHash,
|
|
@@ -67,14 +67,14 @@ function verifyEd25519(payload, signatureBase64, publicKey) {
|
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
export {
|
|
70
|
-
|
|
71
|
-
signEd25519,
|
|
72
|
-
publicKeyPemFromPrivate,
|
|
73
|
-
loadEd25519PublicKey,
|
|
74
|
-
loadEd25519PrivateKey,
|
|
70
|
+
ed25519KeyId,
|
|
75
71
|
generateEd25519KeyPair,
|
|
76
|
-
|
|
72
|
+
loadEd25519PrivateKey,
|
|
73
|
+
loadEd25519PublicKey,
|
|
74
|
+
publicKeyPemFromPrivate,
|
|
75
|
+
signEd25519,
|
|
76
|
+
verifyEd25519
|
|
77
77
|
};
|
|
78
78
|
|
|
79
|
-
//# debugId=
|
|
79
|
+
//# debugId=C8D1818D3A76BD7364756E2164756E21
|
|
80
80
|
//# sourceMappingURL=ed25519.js.map
|
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
"import {\n\ttype KeyObject,\n\tcreateHash,\n\tcreatePrivateKey,\n\tcreatePublicKey,\n\tgenerateKeyPairSync,\n\tsign as nodeSign,\n\tverify as nodeVerify,\n} from \"node:crypto\";\n\n/**\n * Asymmetric ed25519 signing for Streams response proofs.\n *\n * Asymmetric (not HMAC) so the proof is real: only the server holds the private\n * key, and any consumer verifies with the published public key — no shared\n * secret to leak. ed25519 uses node's `sign`/`verify` with a `null` algorithm.\n * Keys are PEM (PKCS8 private / SPKI public) for env transport; load once and\n * reuse the KeyObject on hot paths.\n */\n\nexport function generateEd25519KeyPair(): {\n\tprivateKeyPem: string;\n\tpublicKeyPem: string;\n} {\n\tconst { privateKey, publicKey } = generateKeyPairSync(\"ed25519\");\n\treturn {\n\t\tprivateKeyPem: privateKey\n\t\t\t.export({ format: \"pem\", type: \"pkcs8\" })\n\t\t\t.toString(),\n\t\tpublicKeyPem: publicKey.export({ format: \"pem\", type: \"spki\" }).toString(),\n\t};\n}\n\nexport function loadEd25519PrivateKey(pem: string): KeyObject {\n\treturn createPrivateKey(pem);\n}\n\nexport function loadEd25519PublicKey(pem: string): KeyObject {\n\treturn createPublicKey(pem);\n}\n\nexport function publicKeyPemFromPrivate(privateKeyPem: string): string {\n\treturn createPublicKey(createPrivateKey(privateKeyPem))\n\t\t.export({ format: \"pem\", type: \"spki\" })\n\t\t.toString();\n}\n\n/** Stable short id for a public key (rotation hint via X-Signature-KeyId). */\nexport function ed25519KeyId(publicKeyPem: string): string {\n\tconst der = createPublicKey(publicKeyPem).export({\n\t\tformat: \"der\",\n\t\ttype: \"spki\",\n\t});\n\treturn createHash(\"sha256\").update(der).digest(\"base64url\").slice(0, 16);\n}\n\nexport function signEd25519(payload: string, privateKey: KeyObject): string {\n\treturn nodeSign(null, Buffer.from(payload, \"utf8\"), privateKey).toString(\n\t\t\"base64\",\n\t);\n}\n\nexport function verifyEd25519(\n\tpayload: string,\n\tsignatureBase64: string,\n\tpublicKey: KeyObject,\n): boolean {\n\ttry {\n\t\treturn nodeVerify(\n\t\t\tnull,\n\t\t\tBuffer.from(payload, \"utf8\"),\n\t\t\tpublicKey,\n\t\t\tBuffer.from(signatureBase64, \"base64\"),\n\t\t);\n\t} catch {\n\t\treturn false;\n\t}\n}\n"
|
|
6
6
|
],
|
|
7
7
|
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAMC;AAAA,YACA;AAAA;AAaM,SAAS,sBAAsB,GAGpC;AAAA,EACD,QAAQ,YAAY,cAAc,oBAAoB,SAAS;AAAA,EAC/D,OAAO;AAAA,IACN,eAAe,WACb,OAAO,EAAE,QAAQ,OAAO,MAAM,QAAQ,CAAC,EACvC,SAAS;AAAA,IACX,cAAc,UAAU,OAAO,EAAE,QAAQ,OAAO,MAAM,OAAO,CAAC,EAAE,SAAS;AAAA,EAC1E;AAAA;AAGM,SAAS,qBAAqB,CAAC,KAAwB;AAAA,EAC7D,OAAO,iBAAiB,GAAG;AAAA;AAGrB,SAAS,oBAAoB,CAAC,KAAwB;AAAA,EAC5D,OAAO,gBAAgB,GAAG;AAAA;AAGpB,SAAS,uBAAuB,CAAC,eAA+B;AAAA,EACtE,OAAO,gBAAgB,iBAAiB,aAAa,CAAC,EACpD,OAAO,EAAE,QAAQ,OAAO,MAAM,OAAO,CAAC,EACtC,SAAS;AAAA;AAIL,SAAS,YAAY,CAAC,cAA8B;AAAA,EAC1D,MAAM,MAAM,gBAAgB,YAAY,EAAE,OAAO;AAAA,IAChD,QAAQ;AAAA,IACR,MAAM;AAAA,EACP,CAAC;AAAA,EACD,OAAO,WAAW,QAAQ,EAAE,OAAO,GAAG,EAAE,OAAO,WAAW,EAAE,MAAM,GAAG,EAAE;AAAA;AAGjE,SAAS,WAAW,CAAC,SAAiB,YAA+B;AAAA,EAC3E,OAAO,SAAS,MAAM,OAAO,KAAK,SAAS,MAAM,GAAG,UAAU,EAAE,SAC/D,QACD;AAAA;AAGM,SAAS,aAAa,CAC5B,SACA,iBACA,WACU;AAAA,EACV,IAAI;AAAA,IACH,OAAO,WACN,MACA,OAAO,KAAK,SAAS,MAAM,GAC3B,WACA,OAAO,KAAK,iBAAiB,QAAQ,CACtC;AAAA,IACC,MAAM;AAAA,IACP,OAAO;AAAA;AAAA;",
|
|
8
|
-
"debugId": "
|
|
8
|
+
"debugId": "C8D1818D3A76BD7364756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
|
@@ -23,4 +23,4 @@ declare function createSignatureHeader(payload: string, secret: string, timestam
|
|
|
23
23
|
* Returns true if valid, false otherwise
|
|
24
24
|
*/
|
|
25
25
|
declare function verifySignatureHeader(payload: string, header: string, secret: string, toleranceSeconds?: number): boolean;
|
|
26
|
-
export {
|
|
26
|
+
export { createSignatureHeader, generateSecret, signPayload, verifySignature, verifySignatureHeader };
|
package/dist/src/crypto/hmac.js
CHANGED
|
@@ -17,11 +17,11 @@ var __export = (target, all) => {
|
|
|
17
17
|
// src/crypto/hmac.ts
|
|
18
18
|
var exports_hmac = {};
|
|
19
19
|
__export(exports_hmac, {
|
|
20
|
-
|
|
21
|
-
verifySignature: () => verifySignature,
|
|
22
|
-
signPayload: () => signPayload,
|
|
20
|
+
createSignatureHeader: () => createSignatureHeader,
|
|
23
21
|
generateSecret: () => generateSecret,
|
|
24
|
-
|
|
22
|
+
signPayload: () => signPayload,
|
|
23
|
+
verifySignature: () => verifySignature,
|
|
24
|
+
verifySignatureHeader: () => verifySignatureHeader
|
|
25
25
|
});
|
|
26
26
|
import { createHmac, randomBytes } from "node:crypto";
|
|
27
27
|
function generateSecret() {
|
|
@@ -68,12 +68,12 @@ function verifySignatureHeader(payload, header, secret, toleranceSeconds = 300)
|
|
|
68
68
|
return verifySignature(signedPayload, signature, secret);
|
|
69
69
|
}
|
|
70
70
|
export {
|
|
71
|
-
|
|
72
|
-
verifySignature,
|
|
73
|
-
signPayload,
|
|
71
|
+
createSignatureHeader,
|
|
74
72
|
generateSecret,
|
|
75
|
-
|
|
73
|
+
signPayload,
|
|
74
|
+
verifySignature,
|
|
75
|
+
verifySignatureHeader
|
|
76
76
|
};
|
|
77
77
|
|
|
78
|
-
//# debugId=
|
|
78
|
+
//# debugId=362DA4F2CFC73E9464756E2164756E21
|
|
79
79
|
//# sourceMappingURL=hmac.js.map
|
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
"import { createHmac, randomBytes } from \"node:crypto\";\n\n/**\n * Generate a random secret for delivery signing\n * Returns 32 bytes as a 64-character hex string\n */\nexport function generateSecret(): string {\n\treturn randomBytes(32).toString(\"hex\");\n}\n\n/**\n * Sign a payload with HMAC-SHA256\n * Returns the signature as a hex string\n */\nexport function signPayload(payload: string, secret: string): string {\n\tconst hmac = createHmac(\"sha256\", secret);\n\thmac.update(payload);\n\treturn hmac.digest(\"hex\");\n}\n\n/**\n * Verify an HMAC signature\n * Uses constant-time comparison to prevent timing attacks\n */\nexport function verifySignature(\n\tpayload: string,\n\tsignature: string,\n\tsecret: string,\n): boolean {\n\tconst expectedSignature = signPayload(payload, secret);\n\n\t// Constant-time comparison\n\tif (signature.length !== expectedSignature.length) {\n\t\treturn false;\n\t}\n\n\tlet result = 0;\n\tfor (let i = 0; i < signature.length; i++) {\n\t\tresult |= signature.charCodeAt(i) ^ expectedSignature.charCodeAt(i);\n\t}\n\n\treturn result === 0;\n}\n\n/**\n * Create a Stripe-style signature header\n * Format: t=timestamp,v1=signature\n */\nexport function createSignatureHeader(\n\tpayload: string,\n\tsecret: string,\n\ttimestamp?: number,\n): string {\n\tconst ts = timestamp ?? Math.floor(Date.now() / 1000);\n\tconst signedPayload = `${ts}.${payload}`;\n\tconst signature = signPayload(signedPayload, secret);\n\n\treturn `t=${ts},v1=${signature}`;\n}\n\n/**\n * Parse and verify a Stripe-style signature header\n * Returns true if valid, false otherwise\n */\nexport function verifySignatureHeader(\n\tpayload: string,\n\theader: string,\n\tsecret: string,\n\ttoleranceSeconds = 300, // 5 minutes\n): boolean {\n\t// Parse header\n\tconst parts = header.split(\",\");\n\tconst timestamp = parts.find((p) => p.startsWith(\"t=\"))?.slice(2);\n\tconst signature = parts.find((p) => p.startsWith(\"v1=\"))?.slice(3);\n\n\tif (!timestamp || !signature) {\n\t\treturn false;\n\t}\n\n\tconst ts = Number.parseInt(timestamp, 10);\n\tif (Number.isNaN(ts)) {\n\t\treturn false;\n\t}\n\n\t// Check timestamp is within tolerance\n\tconst now = Math.floor(Date.now() / 1000);\n\tif (Math.abs(now - ts) > toleranceSeconds) {\n\t\treturn false;\n\t}\n\n\t// Verify signature\n\tconst signedPayload = `${ts}.${payload}`;\n\treturn verifySignature(signedPayload, signature, secret);\n}\n"
|
|
6
6
|
],
|
|
7
7
|
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAMO,SAAS,cAAc,GAAW;AAAA,EACxC,OAAO,YAAY,EAAE,EAAE,SAAS,KAAK;AAAA;AAO/B,SAAS,WAAW,CAAC,SAAiB,QAAwB;AAAA,EACpE,MAAM,OAAO,WAAW,UAAU,MAAM;AAAA,EACxC,KAAK,OAAO,OAAO;AAAA,EACnB,OAAO,KAAK,OAAO,KAAK;AAAA;AAOlB,SAAS,eAAe,CAC9B,SACA,WACA,QACU;AAAA,EACV,MAAM,oBAAoB,YAAY,SAAS,MAAM;AAAA,EAGrD,IAAI,UAAU,WAAW,kBAAkB,QAAQ;AAAA,IAClD,OAAO;AAAA,EACR;AAAA,EAEA,IAAI,SAAS;AAAA,EACb,SAAS,IAAI,EAAG,IAAI,UAAU,QAAQ,KAAK;AAAA,IAC1C,UAAU,UAAU,WAAW,CAAC,IAAI,kBAAkB,WAAW,CAAC;AAAA,EACnE;AAAA,EAEA,OAAO,WAAW;AAAA;AAOZ,SAAS,qBAAqB,CACpC,SACA,QACA,WACS;AAAA,EACT,MAAM,KAAK,aAAa,KAAK,MAAM,KAAK,IAAI,IAAI,IAAI;AAAA,EACpD,MAAM,gBAAgB,GAAG,MAAM;AAAA,EAC/B,MAAM,YAAY,YAAY,eAAe,MAAM;AAAA,EAEnD,OAAO,KAAK,SAAS;AAAA;AAOf,SAAS,qBAAqB,CACpC,SACA,QACA,QACA,mBAAmB,KACT;AAAA,EAEV,MAAM,QAAQ,OAAO,MAAM,GAAG;AAAA,EAC9B,MAAM,YAAY,MAAM,KAAK,CAAC,MAAM,EAAE,WAAW,IAAI,CAAC,GAAG,MAAM,CAAC;AAAA,EAChE,MAAM,YAAY,MAAM,KAAK,CAAC,MAAM,EAAE,WAAW,KAAK,CAAC,GAAG,MAAM,CAAC;AAAA,EAEjE,IAAI,CAAC,aAAa,CAAC,WAAW;AAAA,IAC7B,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,KAAK,OAAO,SAAS,WAAW,EAAE;AAAA,EACxC,IAAI,OAAO,MAAM,EAAE,GAAG;AAAA,IACrB,OAAO;AAAA,EACR;AAAA,EAGA,MAAM,MAAM,KAAK,MAAM,KAAK,IAAI,IAAI,IAAI;AAAA,EACxC,IAAI,KAAK,IAAI,MAAM,EAAE,IAAI,kBAAkB;AAAA,IAC1C,OAAO;AAAA,EACR;AAAA,EAGA,MAAM,gBAAgB,GAAG,MAAM;AAAA,EAC/B,OAAO,gBAAgB,eAAe,WAAW,MAAM;AAAA;",
|
|
8
|
-
"debugId": "
|
|
8
|
+
"debugId": "362DA4F2CFC73E9464756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
|
@@ -51,4 +51,4 @@ declare function signSecondlayerWebhook(webhookId: string, body: string): Record
|
|
|
51
51
|
* `verifySecondlayerSignature`, which extracts the headers ergonomically.
|
|
52
52
|
*/
|
|
53
53
|
declare function verifySecondlayerSignatureValues(rawBody: string, webhookId: string | undefined, signatureBase64: string | undefined, publicKeyPem: string): boolean;
|
|
54
|
-
export {
|
|
54
|
+
export { SECONDLAYER_KEY_ID_HEADER, SECONDLAYER_SIGNATURE_HEADER, SecondlayerWebhookSigner, WEBHOOK_ID_HEADER, assertWebhookSigningConfigured, getSecondlayerWebhookSigner, resetSecondlayerWebhookSignerForTest, signSecondlayerWebhook, verifySecondlayerSignatureValues };
|
|
@@ -75,13 +75,13 @@ function isBnsDecoderEnabled(env = process.env) {
|
|
|
75
75
|
// src/crypto/ed25519.ts
|
|
76
76
|
var exports_ed25519 = {};
|
|
77
77
|
__export(exports_ed25519, {
|
|
78
|
-
|
|
79
|
-
signEd25519: () => signEd25519,
|
|
80
|
-
publicKeyPemFromPrivate: () => publicKeyPemFromPrivate,
|
|
81
|
-
loadEd25519PublicKey: () => loadEd25519PublicKey,
|
|
82
|
-
loadEd25519PrivateKey: () => loadEd25519PrivateKey,
|
|
78
|
+
ed25519KeyId: () => ed25519KeyId,
|
|
83
79
|
generateEd25519KeyPair: () => generateEd25519KeyPair,
|
|
84
|
-
|
|
80
|
+
loadEd25519PrivateKey: () => loadEd25519PrivateKey,
|
|
81
|
+
loadEd25519PublicKey: () => loadEd25519PublicKey,
|
|
82
|
+
publicKeyPemFromPrivate: () => publicKeyPemFromPrivate,
|
|
83
|
+
signEd25519: () => signEd25519,
|
|
84
|
+
verifyEd25519: () => verifyEd25519
|
|
85
85
|
});
|
|
86
86
|
import {
|
|
87
87
|
createHash,
|
|
@@ -190,15 +190,15 @@ function verifySecondlayerSignatureValues(rawBody, webhookId, signatureBase64, p
|
|
|
190
190
|
return verifyEd25519(signedContent(webhookId, rawBody), signatureBase64, publicKey);
|
|
191
191
|
}
|
|
192
192
|
export {
|
|
193
|
-
|
|
194
|
-
signSecondlayerWebhook,
|
|
195
|
-
resetSecondlayerWebhookSignerForTest,
|
|
196
|
-
getSecondlayerWebhookSigner,
|
|
197
|
-
assertWebhookSigningConfigured,
|
|
198
|
-
WEBHOOK_ID_HEADER,
|
|
193
|
+
SECONDLAYER_KEY_ID_HEADER,
|
|
199
194
|
SECONDLAYER_SIGNATURE_HEADER,
|
|
200
|
-
|
|
195
|
+
WEBHOOK_ID_HEADER,
|
|
196
|
+
assertWebhookSigningConfigured,
|
|
197
|
+
getSecondlayerWebhookSigner,
|
|
198
|
+
resetSecondlayerWebhookSignerForTest,
|
|
199
|
+
signSecondlayerWebhook,
|
|
200
|
+
verifySecondlayerSignatureValues
|
|
201
201
|
};
|
|
202
202
|
|
|
203
|
-
//# debugId=
|
|
203
|
+
//# debugId=25C3E81B2F21031364756E2164756E21
|
|
204
204
|
//# sourceMappingURL=secondlayer-webhook.js.map
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"import {\n\ttype KeyObject,\n\tcreateHash,\n\tcreatePrivateKey,\n\tcreatePublicKey,\n\tgenerateKeyPairSync,\n\tsign as nodeSign,\n\tverify as nodeVerify,\n} from \"node:crypto\";\n\n/**\n * Asymmetric ed25519 signing for Streams response proofs.\n *\n * Asymmetric (not HMAC) so the proof is real: only the server holds the private\n * key, and any consumer verifies with the published public key — no shared\n * secret to leak. ed25519 uses node's `sign`/`verify` with a `null` algorithm.\n * Keys are PEM (PKCS8 private / SPKI public) for env transport; load once and\n * reuse the KeyObject on hot paths.\n */\n\nexport function generateEd25519KeyPair(): {\n\tprivateKeyPem: string;\n\tpublicKeyPem: string;\n} {\n\tconst { privateKey, publicKey } = generateKeyPairSync(\"ed25519\");\n\treturn {\n\t\tprivateKeyPem: privateKey\n\t\t\t.export({ format: \"pem\", type: \"pkcs8\" })\n\t\t\t.toString(),\n\t\tpublicKeyPem: publicKey.export({ format: \"pem\", type: \"spki\" }).toString(),\n\t};\n}\n\nexport function loadEd25519PrivateKey(pem: string): KeyObject {\n\treturn createPrivateKey(pem);\n}\n\nexport function loadEd25519PublicKey(pem: string): KeyObject {\n\treturn createPublicKey(pem);\n}\n\nexport function publicKeyPemFromPrivate(privateKeyPem: string): string {\n\treturn createPublicKey(createPrivateKey(privateKeyPem))\n\t\t.export({ format: \"pem\", type: \"spki\" })\n\t\t.toString();\n}\n\n/** Stable short id for a public key (rotation hint via X-Signature-KeyId). */\nexport function ed25519KeyId(publicKeyPem: string): string {\n\tconst der = createPublicKey(publicKeyPem).export({\n\t\tformat: \"der\",\n\t\ttype: \"spki\",\n\t});\n\treturn createHash(\"sha256\").update(der).digest(\"base64url\").slice(0, 16);\n}\n\nexport function signEd25519(payload: string, privateKey: KeyObject): string {\n\treturn nodeSign(null, Buffer.from(payload, \"utf8\"), privateKey).toString(\n\t\t\"base64\",\n\t);\n}\n\nexport function verifyEd25519(\n\tpayload: string,\n\tsignatureBase64: string,\n\tpublicKey: KeyObject,\n): boolean {\n\ttry {\n\t\treturn nodeVerify(\n\t\t\tnull,\n\t\t\tBuffer.from(payload, \"utf8\"),\n\t\t\tpublicKey,\n\t\t\tBuffer.from(signatureBase64, \"base64\"),\n\t\t);\n\t} catch {\n\t\treturn false;\n\t}\n}\n",
|
|
7
7
|
"import { isProductionEnv } from \"../env.ts\";\nimport {\n\ted25519KeyId,\n\tloadEd25519PrivateKey,\n\tloadEd25519PublicKey,\n\tpublicKeyPemFromPrivate,\n\tsignEd25519,\n\tverifyEd25519,\n} from \"./ed25519.ts\";\n\n/**\n * Universal Secondlayer webhook authenticity — an ed25519 signature attached to\n * EVERY delivery regardless of body format.\n *\n * Only the `standard-webhooks` format carries an HMAC; `raw`/`cloudevents`/etc.\n * carried no Secondlayer proof, so a receiver had no way to know a payload came\n * from us. This signs each delivery with a single platform ed25519 key so any\n * receiver verifies with the published public key — no per-webhook secret,\n * and the body shape stays format-specific.\n *\n * Header names are lowercase to match the format builders' header maps (HTTP\n * header names are case-insensitive on the wire).\n */\nexport const WEBHOOK_ID_HEADER = \"webhook-id\";\nexport const SECONDLAYER_SIGNATURE_HEADER = \"x-secondlayer-signature\";\nexport const SECONDLAYER_KEY_ID_HEADER = \"x-secondlayer-signature-keyid\";\n\nexport type SecondlayerWebhookSigner = {\n\tkeyId: string;\n\tpublicKeyPem: string;\n\tsign(payload: string): string;\n};\n\nlet cached: SecondlayerWebhookSigner | null | undefined;\n\nfunction signingKeyFromEnv(): string | undefined {\n\t// A dedicated webhook key if provided, else the platform Streams key — both\n\t// are the same ed25519 \"single platform identity\", so reusing it keeps key\n\t// distribution to one published public key.\n\treturn (\n\t\tprocess.env.SECONDLAYER_WEBHOOK_SIGNING_PRIVATE_KEY ||\n\t\tprocess.env.STREAMS_SIGNING_PRIVATE_KEY ||\n\t\tundefined\n\t);\n}\n\n/**\n * Memoized webhook signer, or null when no key is configured (signing is then a\n * no-op, so the universal header is safe to ship before a key is provisioned).\n */\nexport function getSecondlayerWebhookSigner(): SecondlayerWebhookSigner | null {\n\tif (cached !== undefined) return cached;\n\tconst raw = signingKeyFromEnv();\n\tif (!raw) {\n\t\tcached = null;\n\t\treturn null;\n\t}\n\t// Env transport often escapes newlines; restore real PEM line breaks.\n\tconst pem = raw.includes(\"\\\\n\") ? raw.replace(/\\\\n/g, \"\\n\") : raw;\n\tconst privateKey = loadEd25519PrivateKey(pem);\n\tconst publicKeyPem = publicKeyPemFromPrivate(pem);\n\tcached = {\n\t\tkeyId: ed25519KeyId(publicKeyPem),\n\t\tpublicKeyPem,\n\t\tsign: (payload) => signEd25519(payload, privateKey),\n\t};\n\treturn cached;\n}\n\n/** Reset the memoized signer. Tests only. */\nexport function resetSecondlayerWebhookSignerForTest(): void {\n\tcached = undefined;\n}\n\n/**\n * Boot-time guard for any service whose job is to DELIVER signed webhooks (the\n * webhook-processor). We market every delivery as carrying a verifiable\n * ed25519 signature; if no signing key is configured the signer is a silent\n * no-op and deliveries ship UNSIGNED. That's worse than a missing feature — a\n * partner's verify step fails on data we told them was signed.\n *\n * Unlike `assertDbSplit` (fail-soft: only ever logs), this is fail-HARD in prod:\n * refuse to boot so the misconfig surfaces as a crash-loop instead of unsigned\n * traffic. Keep the throw — don't \"soften\" it back to a warning. Set\n * `ALLOW_UNSIGNED_WEBHOOKS=true` to opt out (self-host / intentional unsigned),\n * which logs the posture loudly in every env so it's never silent.\n */\nexport function assertWebhookSigningConfigured(): void {\n\tif (getSecondlayerWebhookSigner()) return;\n\n\tconst optedOut = process.env.ALLOW_UNSIGNED_WEBHOOKS === \"true\";\n\t// isProductionEnv() reads NODE_ENV at runtime; do NOT inline a\n\t// `process.env.NODE_ENV` check — the bundler constant-folds it and the prod\n\t// throw would silently die in the shipped dist. See env.ts for the why.\n\tconst isProd = isProductionEnv();\n\tconst msg =\n\t\t\"No webhook signing key (SECONDLAYER_WEBHOOK_SIGNING_PRIVATE_KEY / STREAMS_SIGNING_PRIVATE_KEY) — deliveries would ship UNSIGNED while we market signed webhooks\";\n\n\tif (optedOut) {\n\t\tconsole.warn(`⚠️ ${msg}; continuing because ALLOW_UNSIGNED_WEBHOOKS=true`);\n\t\treturn;\n\t}\n\tif (isProd) {\n\t\tthrow new Error(\n\t\t\t`${msg}. Refusing to boot. Set the signing key, or ALLOW_UNSIGNED_WEBHOOKS=true to override.`,\n\t\t);\n\t}\n\tconsole.warn(`⚠️ ${msg} (non-prod: continuing)`);\n}\n\n/**\n * The exact bytes the signature covers: `${webhookId}.${body}`. Binding the id\n * into the signed content stops a captured body from being replayed under a\n * different delivery id.\n */\nfunction signedContent(webhookId: string, body: string): string {\n\treturn `${webhookId}.${body}`;\n}\n\n/**\n * Build the universal authenticity headers for a delivery. Returns null when no\n * signing key is configured (caller leaves the delivery unsigned).\n */\nexport function signSecondlayerWebhook(\n\twebhookId: string,\n\tbody: string,\n): Record<string, string> | null {\n\tconst signer = getSecondlayerWebhookSigner();\n\tif (!signer) return null;\n\treturn {\n\t\t[WEBHOOK_ID_HEADER]: webhookId,\n\t\t[SECONDLAYER_SIGNATURE_HEADER]: signer.sign(signedContent(webhookId, body)),\n\t\t[SECONDLAYER_KEY_ID_HEADER]: signer.keyId,\n\t};\n}\n\n/**\n * Verify a delivery's ed25519 signature over `${webhookId}.${rawBody}` against\n * the published public key. Low-level (raw values); receivers use the SDK's\n * `verifySecondlayerSignature`, which extracts the headers ergonomically.\n */\nexport function verifySecondlayerSignatureValues(\n\trawBody: string,\n\twebhookId: string | undefined,\n\tsignatureBase64: string | undefined,\n\tpublicKeyPem: string,\n): boolean {\n\tif (!webhookId || !signatureBase64) return false;\n\tconst publicKey = loadEd25519PublicKey(publicKeyPem);\n\treturn verifyEd25519(\n\t\tsignedContent(webhookId, rawBody),\n\t\tsignatureBase64,\n\t\tpublicKey,\n\t);\n}\n"
|
|
8
8
|
],
|
|
9
|
-
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAGA,IAAM,iBAAiB,EAAE,OAAO,EAAE,UAAU,CAAC,QAAQ;AAAA,EACpD,MAAM,WAAW,IACf,MAAM,GAAG,EACT,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EACnB,OAAO,OAAO;AAAA,EAChB,MAAM,QAAQ,CAAC,WAAW,SAAS;AAAA,EACnC,WAAW,KAAK,UAAU;AAAA,IACzB,IAAI,CAAC,MAAM,SAAS,CAAC,GAAG;AAAA,MACvB,MAAM,IAAI,MACT,oBAAoB,sBAAsB,MAAM,KAAK,IAAI,GAC1D;AAAA,IACD;AAAA,EACD;AAAA,EACA,OAAO;AAAA,CACP;AAsBD,IAAM,YAAwC,EAAE,OAAO;AAAA,EACtD,cAAc,EAAE,WACf,CAAC,QAAS,OAAO,QAAQ,YAAY,IAAI,WAAW,IAAI,YAAY,KACpE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,CAC3B;AAAA,EACA,qBAAqB,EAAE,WACtB,CAAC,QAAS,OAAO,QAAQ,YAAY,IAAI,WAAW,IAAI,YAAY,KACpE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,CAC3B;AAAA,EACA,qBAAqB,EAAE,WACtB,CAAC,QAAS,OAAO,QAAQ,YAAY,IAAI,WAAW,IAAI,YAAY,KACpE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,CAC3B;AAAA,EACA,SAAS,EAAE,KAAK,CAAC,WAAW,SAAS,CAAC,EAAE,SAAS;AAAA,EACjD,UAAU,eAAe,SAAS;AAAA,EAClC,WAAW,EAAE,KAAK,CAAC,SAAS,QAAQ,QAAQ,OAAO,CAAC,EAAE,QAAQ,MAAM;AAAA,EACpE,UAAU,EACR,KAAK,CAAC,eAAe,cAAc,MAAM,CAAC,EAC1C,QAAQ,aAAa;AACxB,CAAC;AAMD,IAAI,YAAwB;AAErB,SAAS,MAAM,GAAQ;AAAA,EAC7B,IAAI,WAAW;AAAA,IACd,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,SAAS,UAAU,UAAU,QAAQ,GAAG;AAAA,EAE9C,IAAI,CAAC,OAAO,SAAS;AAAA,IACpB,QAAQ,MAAM,
|
|
10
|
-
"debugId": "
|
|
9
|
+
"mappings": "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",
|
|
10
|
+
"debugId": "25C3E81B2F21031364756E2164756E21",
|
|
11
11
|
"names": []
|
|
12
12
|
}
|
|
@@ -11,4 +11,4 @@ declare function encryptSecret(plaintext: string): Buffer;
|
|
|
11
11
|
declare function decryptSecret(envelope: Buffer): string;
|
|
12
12
|
/** Generate a fresh 32-byte hex key suitable for `SECONDLAYER_SECRETS_KEY`. */
|
|
13
13
|
declare function generateSecretsKey(): string;
|
|
14
|
-
export {
|
|
14
|
+
export { decryptSecret, encryptSecret, generateSecretsKey, secretsKeyAvailable };
|
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
configurable: true,
|
|
13
|
-
set: __exportSetter.bind(all, name)
|
|
14
|
-
});
|
|
15
|
-
};
|
|
1
|
+
// src/crypto/secrets.ts
|
|
2
|
+
import { createCipheriv, createDecipheriv, randomBytes } from "node:crypto";
|
|
3
|
+
import {
|
|
4
|
+
appendFileSync,
|
|
5
|
+
closeSync,
|
|
6
|
+
existsSync,
|
|
7
|
+
openSync,
|
|
8
|
+
readFileSync,
|
|
9
|
+
unlinkSync
|
|
10
|
+
} from "node:fs";
|
|
11
|
+
import { resolve } from "node:path";
|
|
16
12
|
|
|
17
13
|
// src/mode.ts
|
|
18
14
|
var VALID_MODES = [
|
|
@@ -50,16 +46,6 @@ function isOssMode() {
|
|
|
50
46
|
}
|
|
51
47
|
|
|
52
48
|
// src/crypto/secrets.ts
|
|
53
|
-
import { createCipheriv, createDecipheriv, randomBytes } from "node:crypto";
|
|
54
|
-
import {
|
|
55
|
-
appendFileSync,
|
|
56
|
-
closeSync,
|
|
57
|
-
existsSync,
|
|
58
|
-
openSync,
|
|
59
|
-
readFileSync,
|
|
60
|
-
unlinkSync
|
|
61
|
-
} from "node:fs";
|
|
62
|
-
import { resolve } from "node:path";
|
|
63
49
|
var KEY_ENV = "SECONDLAYER_SECRETS_KEY";
|
|
64
50
|
var IV_LEN = 12;
|
|
65
51
|
var TAG_LEN = 16;
|
|
@@ -173,11 +159,11 @@ function generateSecretsKey() {
|
|
|
173
159
|
return randomBytes(32).toString("hex");
|
|
174
160
|
}
|
|
175
161
|
export {
|
|
176
|
-
|
|
177
|
-
generateSecretsKey,
|
|
162
|
+
decryptSecret,
|
|
178
163
|
encryptSecret,
|
|
179
|
-
|
|
164
|
+
generateSecretsKey,
|
|
165
|
+
secretsKeyAvailable
|
|
180
166
|
};
|
|
181
167
|
|
|
182
|
-
//# debugId=
|
|
168
|
+
//# debugId=38F3B263F0011FBC64756E2164756E21
|
|
183
169
|
//# sourceMappingURL=secrets.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/
|
|
3
|
+
"sources": ["../src/crypto/secrets.ts", "../src/mode.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"/**\n *
|
|
6
|
-
"
|
|
5
|
+
"import { createCipheriv, createDecipheriv, randomBytes } from \"node:crypto\";\nimport {\n\tappendFileSync,\n\tcloseSync,\n\texistsSync,\n\topenSync,\n\treadFileSync,\n\tunlinkSync,\n} from \"node:fs\";\nimport { resolve } from \"node:path\";\nimport { getInstanceMode } from \"../mode.ts\";\n\n/**\n * AES-256-GCM symmetric envelope for encrypted secrets at rest (tenant keys,\n * webhook signing secrets, etc.).\n *\n * Ciphertext layout: `iv (12 bytes) || authTag (16 bytes) || ciphertext`\n *\n * The key comes from `SECONDLAYER_SECRETS_KEY` — 32 bytes hex. In OSS mode,\n * if the env var is unset on first use we autogenerate a key and persist it\n * to `.env.local` in the current working directory so subsequent restarts\n * pick it up without user intervention. Dedicated/platform modes throw —\n * those runtimes must provision the key explicitly.\n *\n * Rotation strategy: re-encrypt all rows with the new key and swap the env\n * var. Not zero-downtime, but acceptable at v2 scale. For real KMS (AWS\n * KMS, Vault, GCP KMS), wrap the same byte layout behind an\n * `EncryptSecret`/`DecryptSecret` interface and swap at startup.\n */\n\nconst KEY_ENV = \"SECONDLAYER_SECRETS_KEY\";\nconst IV_LEN = 12;\nconst TAG_LEN = 16;\n\nfunction readExistingKey(envPath: string): string | null {\n\tif (!existsSync(envPath)) return null;\n\tconst contents = readFileSync(envPath, \"utf8\");\n\tconst match = contents.match(/^SECONDLAYER_SECRETS_KEY=([a-fA-F0-9]{64})/m);\n\t// biome-ignore lint/style/noNonNullAssertion: value is non-null after preceding check or by construction; TS narrowing limitation\n\treturn match ? match[1]! : null;\n}\n\n/**\n * Atomic file lock via `openSync(..., \"wx\")` — O_CREAT | O_EXCL. If two\n * processes race on cold-compose start, exactly one creates the lock\n * file; the loser polls until the winner finishes writing `.env.local`,\n * then reads the winner's key. Stale locks (process crashed mid-write)\n * are cleaned after `STALE_LOCK_MS`.\n */\nconst STALE_LOCK_MS = 10_000;\nconst POLL_MS = 25;\n\nfunction bootstrapOssKey(): string {\n\tconst envPath = resolve(process.cwd(), \".env.local\");\n\n\t// Fast path — key already on disk from a prior run.\n\tconst existing = readExistingKey(envPath);\n\tif (existing) {\n\t\tprocess.env[KEY_ENV] = existing;\n\t\treturn existing;\n\t}\n\n\tconst lockPath = `${envPath}.secret-bootstrap.lock`;\n\tlet lockFd: number | null = null;\n\ttry {\n\t\tlockFd = openSync(lockPath, \"wx\", 0o600);\n\t} catch (err) {\n\t\tconst e = err as NodeJS.ErrnoException;\n\t\tif (e.code !== \"EEXIST\") throw err;\n\t}\n\n\tif (lockFd === null) {\n\t\t// Another process is bootstrapping. Poll for its result.\n\t\tconst deadline = Date.now() + STALE_LOCK_MS;\n\t\twhile (Date.now() < deadline) {\n\t\t\tconst key = readExistingKey(envPath);\n\t\t\tif (key) {\n\t\t\t\tprocess.env[KEY_ENV] = key;\n\t\t\t\treturn key;\n\t\t\t}\n\t\t\tBun.sleepSync(POLL_MS);\n\t\t}\n\t\t// Lock holder died mid-write — force-clean and retry once.\n\t\ttry {\n\t\t\tunlinkSync(lockPath);\n\t\t} catch {}\n\t\treturn bootstrapOssKey();\n\t}\n\n\ttry {\n\t\tconst hex = randomBytes(32).toString(\"hex\");\n\t\tconst line = `${existsSync(envPath) ? \"\\n\" : \"\"}${KEY_ENV}=${hex}\\n`;\n\t\tappendFileSync(envPath, line, { mode: 0o600 });\n\t\tprocess.env[KEY_ENV] = hex;\n\t\tconsole.log(\n\t\t\t`[secondlayer] generated ${KEY_ENV}; saved to ${envPath} (mode 0600)`,\n\t\t);\n\t\treturn hex;\n\t} finally {\n\t\tcloseSync(lockFd);\n\t\ttry {\n\t\t\tunlinkSync(lockPath);\n\t\t} catch {}\n\t}\n}\n\nfunction loadKey(): Buffer {\n\tlet hex = process.env[KEY_ENV];\n\tif (!hex) {\n\t\tif (getInstanceMode() === \"oss\") {\n\t\t\thex = bootstrapOssKey();\n\t\t} else {\n\t\t\tthrow new Error(\n\t\t\t\t`${KEY_ENV} not set. Generate one with: openssl rand -hex 32`,\n\t\t\t);\n\t\t}\n\t}\n\tconst key = Buffer.from(hex, \"hex\");\n\tif (key.length !== 32) {\n\t\tthrow new Error(`${KEY_ENV} must be 32 bytes hex (got ${key.length})`);\n\t}\n\treturn key;\n}\n\nlet _cachedKey: Buffer | null = null;\nfunction getKey(): Buffer {\n\tif (!_cachedKey) _cachedKey = loadKey();\n\treturn _cachedKey;\n}\n\n/**\n * Non-throwing check for whether a secrets key is currently resolvable —\n * same resolution order as {@link loadKey} (env var, then the OSS\n * `.env.local` fallback), but never bootstraps a new key (that would\n * generate+persist a key as a side effect of a mere existence check), never\n * throws, and never returns or logs the key itself. Used by callers that\n * need to fail loud on a missing key BEFORE attempting a decrypt (f072).\n */\nexport function secretsKeyAvailable(): boolean {\n\tif (process.env[KEY_ENV]) return true;\n\tif (getInstanceMode() === \"oss\") {\n\t\tconst envPath = resolve(process.cwd(), \".env.local\");\n\t\treturn readExistingKey(envPath) !== null;\n\t}\n\treturn false;\n}\n\nexport function encryptSecret(plaintext: string): Buffer {\n\tconst key = getKey();\n\tconst iv = randomBytes(IV_LEN);\n\tconst cipher = createCipheriv(\"aes-256-gcm\", key, iv);\n\tconst ciphertext = Buffer.concat([\n\t\tcipher.update(plaintext, \"utf8\"),\n\t\tcipher.final(),\n\t]);\n\tconst tag = cipher.getAuthTag();\n\treturn Buffer.concat([iv, tag, ciphertext]);\n}\n\nexport function decryptSecret(envelope: Buffer): string {\n\tconst key = getKey();\n\tconst iv = envelope.subarray(0, IV_LEN);\n\tconst tag = envelope.subarray(IV_LEN, IV_LEN + TAG_LEN);\n\tconst ciphertext = envelope.subarray(IV_LEN + TAG_LEN);\n\tconst decipher = createDecipheriv(\"aes-256-gcm\", key, iv);\n\tdecipher.setAuthTag(tag);\n\treturn decipher.update(ciphertext).toString(\"utf8\") + decipher.final(\"utf8\");\n}\n\n/** Generate a fresh 32-byte hex key suitable for `SECONDLAYER_SECRETS_KEY`. */\nexport function generateSecretsKey(): string {\n\treturn randomBytes(32).toString(\"hex\");\n}\n",
|
|
6
|
+
"/**\n * Instance modes for the Secondlayer platform.\n *\n * - `oss`: self-hosted, single-tenant. No auth middleware, no platform routes\n * (projects, admin). Everything runs against a single `DATABASE_URL`.\n * Intended for `docker compose up`.\n *\n * - `platform`: the metered archive deployment. Magic-link auth, API keys,\n * accounts, credits, and metered `/v1` reads (Index + Streams + subgraphs)\n * against a single shared DB. No paid tier ladder — one metered `free`\n * tier plus first-party internal service credentials.\n */\n\nexport type InstanceMode = \"oss\" | \"platform\";\n\n/** What the operator wrote in the env — `archive` is the honest name for the\n * metered public-archive deployment and aliases `platform` behaviorally. */\nexport type DeclaredInstanceMode = InstanceMode | \"archive\";\n\nconst VALID_MODES: readonly DeclaredInstanceMode[] = [\n\t\"oss\",\n\t\"platform\",\n\t\"archive\",\n];\n\nfunction declaredMode(): DeclaredInstanceMode {\n\tconst raw = process.env.INSTANCE_MODE?.trim().toLowerCase();\n\tif (raw && (VALID_MODES as readonly string[]).includes(raw)) {\n\t\treturn raw as DeclaredInstanceMode;\n\t}\n\treturn \"oss\";\n}\n\n/**\n * Resolve the active instance mode from `process.env.INSTANCE_MODE`.\n * Defaults to `\"oss\"` — the safest default for self-hosters who deploy\n * without setting the variable. `archive` normalizes to `platform` here so\n * every behavioral branch stays a two-way choice; use\n * `getDeclaredInstanceMode()` for display surfaces.\n */\nexport function getInstanceMode(): InstanceMode {\n\tconst declared = declaredMode();\n\treturn declared === \"archive\" ? \"platform\" : declared;\n}\n\n/** The mode as declared in the env, for status/identity surfaces. */\nexport function getDeclaredInstanceMode(): DeclaredInstanceMode {\n\treturn declaredMode();\n}\n\n/**\n * True when public reads are credit-metered (the free window, retention, and\n * credits gates arm). Platform/archive deployments meter by default;\n * self-host never does unless the operator explicitly sets\n * `METERED_READS=true`. `METERED_READS=false` disarms a metered deployment.\n */\nexport function isMeteredReads(): boolean {\n\tconst override = process.env.METERED_READS?.trim().toLowerCase();\n\tif (override === \"true\") return true;\n\tif (override === \"false\") return false;\n\treturn getInstanceMode() === \"platform\";\n}\n\n/** True when the active mode is `\"platform\"` (shared multi-tenant). */\nexport function isPlatformMode(): boolean {\n\treturn getInstanceMode() === \"platform\";\n}\n\n/** True when the active mode is `\"oss\"` (self-hosted). */\nexport function isOssMode(): boolean {\n\treturn getInstanceMode() === \"oss\";\n}\n"
|
|
7
7
|
],
|
|
8
|
-
"mappings": "
|
|
9
|
-
"debugId": "
|
|
8
|
+
"mappings": "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",
|
|
9
|
+
"debugId": "38F3B263F0011FBC64756E2164756E21",
|
|
10
10
|
"names": []
|
|
11
11
|
}
|
|
@@ -30,4 +30,4 @@ interface VerifyOptions {
|
|
|
30
30
|
nowSeconds?: number;
|
|
31
31
|
}
|
|
32
32
|
declare function verify(body: string, headers: StandardWebhooksHeaders | Record<string, string | string[] | undefined>, secret: string, opts?: VerifyOptions): boolean;
|
|
33
|
-
export {
|
|
33
|
+
export { SignOptions, StandardWebhooksHeaders, VerifyOptions, sign, verify };
|