@secondlayer/shared 0.5.0 → 0.6.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 (39) hide show
  1. package/dist/src/crypto/hmac.d.ts +1 -1
  2. package/dist/src/crypto/hmac.js.map +1 -1
  3. package/dist/src/db/index.d.ts +2 -2
  4. package/dist/src/db/queries/accounts.d.ts +2 -2
  5. package/dist/src/db/queries/integrity.d.ts +2 -2
  6. package/dist/src/db/queries/metrics.d.ts +2 -2
  7. package/dist/src/db/queries/subgraphs.d.ts +2 -2
  8. package/dist/src/db/queries/usage.d.ts +2 -2
  9. package/dist/src/db/schema.d.ts +2 -2
  10. package/dist/src/env.d.ts +1 -1
  11. package/dist/src/env.js +3 -3
  12. package/dist/src/env.js.map +3 -3
  13. package/dist/src/errors.d.ts +3 -3
  14. package/dist/src/errors.js +4 -4
  15. package/dist/src/errors.js.map +3 -3
  16. package/dist/src/index.d.ts +15 -15
  17. package/dist/src/index.js +16 -16
  18. package/dist/src/index.js.map +8 -8
  19. package/dist/src/logger.js +3 -3
  20. package/dist/src/logger.js.map +3 -3
  21. package/dist/src/node/hiro-client.js +4 -4
  22. package/dist/src/node/hiro-client.js.map +4 -4
  23. package/dist/src/node/hiro-pg-client.d.ts +21 -0
  24. package/dist/src/node/hiro-pg-client.js +439 -0
  25. package/dist/src/node/hiro-pg-client.js.map +10 -0
  26. package/dist/src/node/local-client.d.ts +2 -2
  27. package/dist/src/node/local-client.js.map +1 -1
  28. package/dist/src/schemas/filters.d.ts +1 -1
  29. package/dist/src/schemas/filters.js +2 -2
  30. package/dist/src/schemas/filters.js.map +2 -2
  31. package/dist/src/schemas/index.d.ts +10 -10
  32. package/dist/src/schemas/index.js +11 -11
  33. package/dist/src/schemas/index.js.map +5 -5
  34. package/dist/src/schemas/subgraphs.d.ts +1 -1
  35. package/dist/src/schemas/subgraphs.js +3 -3
  36. package/dist/src/schemas/subgraphs.js.map +3 -3
  37. package/dist/src/types.d.ts +2 -2
  38. package/migrations/0016_rename_webhook_to_endpoint.ts +12 -0
  39. package/package.json +7 -3
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Generate a random secret for webhook signing
2
+ * Generate a random secret for delivery signing
3
3
  * Returns 32 bytes as a 64-character hex string
4
4
  */
5
5
  declare function generateSecret(): string;
@@ -2,7 +2,7 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/crypto/hmac.ts"],
4
4
  "sourcesContent": [
5
- "import { createHmac, randomBytes } from \"crypto\";\n\n/**\n * Generate a random secret for webhook signing\n * Returns 32 bytes as a 64-character hex string\n */\nexport function generateSecret(): string {\n return 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 const hmac = createHmac(\"sha256\", secret);\n hmac.update(payload);\n return 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 payload: string,\n signature: string,\n secret: string\n): boolean {\n const expectedSignature = signPayload(payload, secret);\n\n // Constant-time comparison\n if (signature.length !== expectedSignature.length) {\n return false;\n }\n\n let result = 0;\n for (let i = 0; i < signature.length; i++) {\n result |= signature.charCodeAt(i) ^ expectedSignature.charCodeAt(i);\n }\n\n return result === 0;\n}\n\n/**\n * Create a Stripe-style signature header\n * Format: t=timestamp,v1=signature\n */\nexport function createSignatureHeader(\n payload: string,\n secret: string,\n timestamp?: number\n): string {\n const ts = timestamp ?? Math.floor(Date.now() / 1000);\n const signedPayload = `${ts}.${payload}`;\n const signature = signPayload(signedPayload, secret);\n\n return `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 payload: string,\n header: string,\n secret: string,\n toleranceSeconds = 300 // 5 minutes\n): boolean {\n // Parse header\n const parts = header.split(\",\");\n const timestamp = parts\n .find((p) => p.startsWith(\"t=\"))\n ?.slice(2);\n const signature = parts\n .find((p) => p.startsWith(\"v1=\"))\n ?.slice(3);\n\n if (!timestamp || !signature) {\n return false;\n }\n\n const ts = parseInt(timestamp, 10);\n if (isNaN(ts)) {\n return false;\n }\n\n // Check timestamp is within tolerance\n const now = Math.floor(Date.now() / 1000);\n if (Math.abs(now - ts) > toleranceSeconds) {\n return false;\n }\n\n // Verify signature\n const signedPayload = `${ts}.${payload}`;\n return verifySignature(signedPayload, signature, secret);\n}\n"
5
+ "import { createHmac, randomBytes } from \"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 return 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 const hmac = createHmac(\"sha256\", secret);\n hmac.update(payload);\n return 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 payload: string,\n signature: string,\n secret: string\n): boolean {\n const expectedSignature = signPayload(payload, secret);\n\n // Constant-time comparison\n if (signature.length !== expectedSignature.length) {\n return false;\n }\n\n let result = 0;\n for (let i = 0; i < signature.length; i++) {\n result |= signature.charCodeAt(i) ^ expectedSignature.charCodeAt(i);\n }\n\n return result === 0;\n}\n\n/**\n * Create a Stripe-style signature header\n * Format: t=timestamp,v1=signature\n */\nexport function createSignatureHeader(\n payload: string,\n secret: string,\n timestamp?: number\n): string {\n const ts = timestamp ?? Math.floor(Date.now() / 1000);\n const signedPayload = `${ts}.${payload}`;\n const signature = signPayload(signedPayload, secret);\n\n return `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 payload: string,\n header: string,\n secret: string,\n toleranceSeconds = 300 // 5 minutes\n): boolean {\n // Parse header\n const parts = header.split(\",\");\n const timestamp = parts\n .find((p) => p.startsWith(\"t=\"))\n ?.slice(2);\n const signature = parts\n .find((p) => p.startsWith(\"v1=\"))\n ?.slice(3);\n\n if (!timestamp || !signature) {\n return false;\n }\n\n const ts = parseInt(timestamp, 10);\n if (isNaN(ts)) {\n return false;\n }\n\n // Check timestamp is within tolerance\n const now = Math.floor(Date.now() / 1000);\n if (Math.abs(now - ts) > toleranceSeconds) {\n return false;\n }\n\n // Verify signature\n const signedPayload = `${ts}.${payload}`;\n return verifySignature(signedPayload, signature, secret);\n}\n"
6
6
  ],
7
7
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAMO,SAAS,cAAc,GAAW;AAAA,EACvC,OAAO,YAAY,EAAE,EAAE,SAAS,KAAK;AAAA;AAOhC,SAAS,WAAW,CAAC,SAAiB,QAAwB;AAAA,EACnE,MAAM,OAAO,WAAW,UAAU,MAAM;AAAA,EACxC,KAAK,OAAO,OAAO;AAAA,EACnB,OAAO,KAAK,OAAO,KAAK;AAAA;AAOnB,SAAS,eAAe,CAC7B,SACA,WACA,QACS;AAAA,EACT,MAAM,oBAAoB,YAAY,SAAS,MAAM;AAAA,EAGrD,IAAI,UAAU,WAAW,kBAAkB,QAAQ;AAAA,IACjD,OAAO;AAAA,EACT;AAAA,EAEA,IAAI,SAAS;AAAA,EACb,SAAS,IAAI,EAAG,IAAI,UAAU,QAAQ,KAAK;AAAA,IACzC,UAAU,UAAU,WAAW,CAAC,IAAI,kBAAkB,WAAW,CAAC;AAAA,EACpE;AAAA,EAEA,OAAO,WAAW;AAAA;AAOb,SAAS,qBAAqB,CACnC,SACA,QACA,WACQ;AAAA,EACR,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;AAOhB,SAAS,qBAAqB,CACnC,SACA,QACA,QACA,mBAAmB,KACV;AAAA,EAET,MAAM,QAAQ,OAAO,MAAM,GAAG;AAAA,EAC9B,MAAM,YAAY,MACf,KAAK,CAAC,MAAM,EAAE,WAAW,IAAI,CAAC,GAC7B,MAAM,CAAC;AAAA,EACX,MAAM,YAAY,MACf,KAAK,CAAC,MAAM,EAAE,WAAW,KAAK,CAAC,GAC9B,MAAM,CAAC;AAAA,EAEX,IAAI,CAAC,aAAa,CAAC,WAAW;AAAA,IAC5B,OAAO;AAAA,EACT;AAAA,EAEA,MAAM,KAAK,SAAS,WAAW,EAAE;AAAA,EACjC,IAAI,MAAM,EAAE,GAAG;AAAA,IACb,OAAO;AAAA,EACT;AAAA,EAGA,MAAM,MAAM,KAAK,MAAM,KAAK,IAAI,IAAI,IAAI;AAAA,EACxC,IAAI,KAAK,IAAI,MAAM,EAAE,IAAI,kBAAkB;AAAA,IACzC,OAAO;AAAA,EACT;AAAA,EAGA,MAAM,gBAAgB,GAAG,MAAM;AAAA,EAC/B,OAAO,gBAAgB,eAAe,WAAW,MAAM;AAAA;",
8
8
  "debugId": "A51CF8494ADEA11C64756E2164756E21",
@@ -50,8 +50,8 @@ interface StreamsTable {
50
50
  status: Generated<string>;
51
51
  filters: unknown;
52
52
  options: Generated<unknown>;
53
- webhook_url: string;
54
- webhook_secret: string | null;
53
+ endpoint_url: string;
54
+ signing_secret: string | null;
55
55
  api_key_id: string | null;
56
56
  created_at: Generated<Date>;
57
57
  updated_at: Generated<Date>;
@@ -36,8 +36,8 @@ interface StreamsTable {
36
36
  status: Generated<string>;
37
37
  filters: unknown;
38
38
  options: Generated<unknown>;
39
- webhook_url: string;
40
- webhook_secret: string | null;
39
+ endpoint_url: string;
40
+ signing_secret: string | null;
41
41
  api_key_id: string | null;
42
42
  created_at: Generated<Date>;
43
43
  updated_at: Generated<Date>;
@@ -36,8 +36,8 @@ interface StreamsTable {
36
36
  status: Generated<string>;
37
37
  filters: unknown;
38
38
  options: Generated<unknown>;
39
- webhook_url: string;
40
- webhook_secret: string | null;
39
+ endpoint_url: string;
40
+ signing_secret: string | null;
41
41
  api_key_id: string | null;
42
42
  created_at: Generated<Date>;
43
43
  updated_at: Generated<Date>;
@@ -36,8 +36,8 @@ interface StreamsTable {
36
36
  status: Generated<string>;
37
37
  filters: unknown;
38
38
  options: Generated<unknown>;
39
- webhook_url: string;
40
- webhook_secret: string | null;
39
+ endpoint_url: string;
40
+ signing_secret: string | null;
41
41
  api_key_id: string | null;
42
42
  created_at: Generated<Date>;
43
43
  updated_at: Generated<Date>;
@@ -36,8 +36,8 @@ interface StreamsTable {
36
36
  status: Generated<string>;
37
37
  filters: unknown;
38
38
  options: Generated<unknown>;
39
- webhook_url: string;
40
- webhook_secret: string | null;
39
+ endpoint_url: string;
40
+ signing_secret: string | null;
41
41
  api_key_id: string | null;
42
42
  created_at: Generated<Date>;
43
43
  updated_at: Generated<Date>;
@@ -44,8 +44,8 @@ interface StreamsTable {
44
44
  status: Generated<string>;
45
45
  filters: unknown;
46
46
  options: Generated<unknown>;
47
- webhook_url: string;
48
- webhook_secret: string | null;
47
+ endpoint_url: string;
48
+ signing_secret: string | null;
49
49
  api_key_id: string | null;
50
50
  created_at: Generated<Date>;
51
51
  updated_at: Generated<Date>;
@@ -35,8 +35,8 @@ interface StreamsTable {
35
35
  status: Generated<string>;
36
36
  filters: unknown;
37
37
  options: Generated<unknown>;
38
- webhook_url: string;
39
- webhook_secret: string | null;
38
+ endpoint_url: string;
39
+ signing_secret: string | null;
40
40
  api_key_id: string | null;
41
41
  created_at: Generated<Date>;
42
42
  updated_at: Generated<Date>;
package/dist/src/env.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { z } from "zod";
1
+ import { z } from "zod/v4";
2
2
  interface EnvSchemaOutput {
3
3
  DATABASE_URL?: string;
4
4
  NETWORK?: "mainnet" | "testnet";
package/dist/src/env.js CHANGED
@@ -15,7 +15,7 @@ var __export = (target, all) => {
15
15
  };
16
16
 
17
17
  // src/env.ts
18
- import { z } from "zod";
18
+ import { z } from "zod/v4";
19
19
  var networksSchema = z.string().transform((val) => {
20
20
  const networks = val.split(",").map((n) => n.trim()).filter(Boolean);
21
21
  const valid = ["mainnet", "testnet"];
@@ -41,7 +41,7 @@ function getEnv() {
41
41
  const result = envSchema.safeParse(process.env);
42
42
  if (!result.success) {
43
43
  console.error("❌ Invalid environment configuration:");
44
- console.error(result.error.format());
44
+ console.error(z.treeifyError(result.error));
45
45
  throw new Error("Invalid environment configuration");
46
46
  }
47
47
  let enabledNetworks;
@@ -60,5 +60,5 @@ export {
60
60
  envSchema
61
61
  };
62
62
 
63
- //# debugId=2CB7FF251202EACC64756E2164756E21
63
+ //# debugId=F91178E691D405D264756E2164756E21
64
64
  //# sourceMappingURL=env.js.map
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/env.ts"],
4
4
  "sourcesContent": [
5
- "import { z } from \"zod\";\n\n// Parse comma-separated networks\nconst networksSchema = z.string().transform((val) => {\n const networks = val.split(\",\").map((n) => n.trim()).filter(Boolean);\n const valid = [\"mainnet\", \"testnet\"];\n for (const n of networks) {\n if (!valid.includes(n)) {\n throw new Error(`Invalid network: ${n}. Must be one of: ${valid.join(\", \")}`);\n }\n }\n return networks as (\"mainnet\" | \"testnet\")[];\n});\n\ninterface EnvSchemaOutput {\n DATABASE_URL?: string;\n NETWORK?: \"mainnet\" | \"testnet\";\n NETWORKS?: (\"mainnet\" | \"testnet\")[];\n LOG_LEVEL: \"debug\" | \"info\" | \"warn\" | \"error\";\n NODE_ENV: \"development\" | \"production\" | \"test\";\n}\n\n// Cast needed: z.preprocess / z.default create different _input vs _output types\n// that z.ZodType<T> can't represent without explicit input type param\nconst envSchema: z.ZodType<EnvSchemaOutput> = z.object({\n DATABASE_URL: z.preprocess(\n (val) => (typeof val === \"string\" && val.length === 0) ? undefined : val,\n z.string().url().optional(),\n ),\n NETWORK: z.enum([\"mainnet\", \"testnet\"]).optional(),\n NETWORKS: networksSchema.optional(),\n LOG_LEVEL: z.enum([\"debug\", \"info\", \"warn\", \"error\"]).default(\"info\"),\n NODE_ENV: z.enum([\"development\", \"production\", \"test\"]).default(\"development\"),\n}) as unknown as z.ZodType<EnvSchemaOutput>;\n\nexport type Env = EnvSchemaOutput & {\n enabledNetworks: (\"mainnet\" | \"testnet\")[];\n};\n\nlet cachedEnv: Env | null = null;\n\nexport function getEnv(): Env {\n if (cachedEnv) {\n return cachedEnv;\n }\n\n const result = envSchema.safeParse(process.env);\n\n if (!result.success) {\n console.error(\"❌ Invalid environment configuration:\");\n console.error(result.error.format());\n throw new Error(\"Invalid environment configuration\");\n }\n\n // Compute enabled networks from NETWORKS or NETWORK\n let enabledNetworks: (\"mainnet\" | \"testnet\")[];\n if (result.data.NETWORKS && result.data.NETWORKS.length > 0) {\n enabledNetworks = result.data.NETWORKS;\n } else if (result.data.NETWORK) {\n enabledNetworks = [result.data.NETWORK];\n } else {\n enabledNetworks = [\"mainnet\"]; // Default\n }\n\n cachedEnv = { ...result.data, enabledNetworks };\n return cachedEnv;\n}\n\n// Export for testing\nexport { envSchema };\n"
5
+ "import { z } from \"zod/v4\";\n\n// Parse comma-separated networks\nconst networksSchema = z.string().transform((val) => {\n const networks = val.split(\",\").map((n) => n.trim()).filter(Boolean);\n const valid = [\"mainnet\", \"testnet\"];\n for (const n of networks) {\n if (!valid.includes(n)) {\n throw new Error(`Invalid network: ${n}. Must be one of: ${valid.join(\", \")}`);\n }\n }\n return networks as (\"mainnet\" | \"testnet\")[];\n});\n\ninterface EnvSchemaOutput {\n DATABASE_URL?: string;\n NETWORK?: \"mainnet\" | \"testnet\";\n NETWORKS?: (\"mainnet\" | \"testnet\")[];\n LOG_LEVEL: \"debug\" | \"info\" | \"warn\" | \"error\";\n NODE_ENV: \"development\" | \"production\" | \"test\";\n}\n\n// Cast needed: z.preprocess / z.default create different _input vs _output types\n// that z.ZodType<T> can't represent without explicit input type param\nconst envSchema: z.ZodType<EnvSchemaOutput> = z.object({\n DATABASE_URL: z.preprocess(\n (val) => (typeof val === \"string\" && val.length === 0) ? undefined : val,\n z.string().url().optional(),\n ),\n NETWORK: z.enum([\"mainnet\", \"testnet\"]).optional(),\n NETWORKS: networksSchema.optional(),\n LOG_LEVEL: z.enum([\"debug\", \"info\", \"warn\", \"error\"]).default(\"info\"),\n NODE_ENV: z.enum([\"development\", \"production\", \"test\"]).default(\"development\"),\n}) as unknown as z.ZodType<EnvSchemaOutput>;\n\nexport type Env = EnvSchemaOutput & {\n enabledNetworks: (\"mainnet\" | \"testnet\")[];\n};\n\nlet cachedEnv: Env | null = null;\n\nexport function getEnv(): Env {\n if (cachedEnv) {\n return cachedEnv;\n }\n\n const result = envSchema.safeParse(process.env);\n\n if (!result.success) {\n console.error(\"❌ Invalid environment configuration:\");\n console.error(z.treeifyError(result.error));\n throw new Error(\"Invalid environment configuration\");\n }\n\n // Compute enabled networks from NETWORKS or NETWORK\n let enabledNetworks: (\"mainnet\" | \"testnet\")[];\n if (result.data.NETWORKS && result.data.NETWORKS.length > 0) {\n enabledNetworks = result.data.NETWORKS;\n } else if (result.data.NETWORK) {\n enabledNetworks = [result.data.NETWORK];\n } else {\n enabledNetworks = [\"mainnet\"]; // Default\n }\n\n cachedEnv = { ...result.data, enabledNetworks };\n return cachedEnv;\n}\n\n// Export for testing\nexport { envSchema };\n"
6
6
  ],
7
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAGA,IAAM,iBAAiB,EAAE,OAAO,EAAE,UAAU,CAAC,QAAQ;AAAA,EACnD,MAAM,WAAW,IAAI,MAAM,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,OAAO;AAAA,EACnE,MAAM,QAAQ,CAAC,WAAW,SAAS;AAAA,EACnC,WAAW,KAAK,UAAU;AAAA,IACxB,IAAI,CAAC,MAAM,SAAS,CAAC,GAAG;AAAA,MACtB,MAAM,IAAI,MAAM,oBAAoB,sBAAsB,MAAM,KAAK,IAAI,GAAG;AAAA,IAC9E;AAAA,EACF;AAAA,EACA,OAAO;AAAA,CACR;AAYD,IAAM,YAAwC,EAAE,OAAO;AAAA,EACrD,cAAc,EAAE,WACd,CAAC,QAAS,OAAO,QAAQ,YAAY,IAAI,WAAW,IAAK,YAAY,KACrE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,CAC5B;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,EAAE,KAAK,CAAC,eAAe,cAAc,MAAM,CAAC,EAAE,QAAQ,aAAa;AAC/E,CAAC;AAMD,IAAI,YAAwB;AAErB,SAAS,MAAM,GAAQ;AAAA,EAC5B,IAAI,WAAW;AAAA,IACb,OAAO;AAAA,EACT;AAAA,EAEA,MAAM,SAAS,UAAU,UAAU,QAAQ,GAAG;AAAA,EAE9C,IAAI,CAAC,OAAO,SAAS;AAAA,IACnB,QAAQ,MAAM,sCAAqC;AAAA,IACnD,QAAQ,MAAM,OAAO,MAAM,OAAO,CAAC;AAAA,IACnC,MAAM,IAAI,MAAM,mCAAmC;AAAA,EACrD;AAAA,EAGA,IAAI;AAAA,EACJ,IAAI,OAAO,KAAK,YAAY,OAAO,KAAK,SAAS,SAAS,GAAG;AAAA,IAC3D,kBAAkB,OAAO,KAAK;AAAA,EAChC,EAAO,SAAI,OAAO,KAAK,SAAS;AAAA,IAC9B,kBAAkB,CAAC,OAAO,KAAK,OAAO;AAAA,EACxC,EAAO;AAAA,IACL,kBAAkB,CAAC,SAAS;AAAA;AAAA,EAG9B,YAAY,KAAK,OAAO,MAAM,gBAAgB;AAAA,EAC9C,OAAO;AAAA;",
8
- "debugId": "2CB7FF251202EACC64756E2164756E21",
7
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAGA,IAAM,iBAAiB,EAAE,OAAO,EAAE,UAAU,CAAC,QAAQ;AAAA,EACnD,MAAM,WAAW,IAAI,MAAM,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,OAAO;AAAA,EACnE,MAAM,QAAQ,CAAC,WAAW,SAAS;AAAA,EACnC,WAAW,KAAK,UAAU;AAAA,IACxB,IAAI,CAAC,MAAM,SAAS,CAAC,GAAG;AAAA,MACtB,MAAM,IAAI,MAAM,oBAAoB,sBAAsB,MAAM,KAAK,IAAI,GAAG;AAAA,IAC9E;AAAA,EACF;AAAA,EACA,OAAO;AAAA,CACR;AAYD,IAAM,YAAwC,EAAE,OAAO;AAAA,EACrD,cAAc,EAAE,WACd,CAAC,QAAS,OAAO,QAAQ,YAAY,IAAI,WAAW,IAAK,YAAY,KACrE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,CAC5B;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,EAAE,KAAK,CAAC,eAAe,cAAc,MAAM,CAAC,EAAE,QAAQ,aAAa;AAC/E,CAAC;AAMD,IAAI,YAAwB;AAErB,SAAS,MAAM,GAAQ;AAAA,EAC5B,IAAI,WAAW;AAAA,IACb,OAAO;AAAA,EACT;AAAA,EAEA,MAAM,SAAS,UAAU,UAAU,QAAQ,GAAG;AAAA,EAE9C,IAAI,CAAC,OAAO,SAAS;AAAA,IACnB,QAAQ,MAAM,sCAAqC;AAAA,IACnD,QAAQ,MAAM,EAAE,aAAa,OAAO,KAAK,CAAC;AAAA,IAC1C,MAAM,IAAI,MAAM,mCAAmC;AAAA,EACrD;AAAA,EAGA,IAAI;AAAA,EACJ,IAAI,OAAO,KAAK,YAAY,OAAO,KAAK,SAAS,SAAS,GAAG;AAAA,IAC3D,kBAAkB,OAAO,KAAK;AAAA,EAChC,EAAO,SAAI,OAAO,KAAK,SAAS;AAAA,IAC9B,kBAAkB,CAAC,OAAO,KAAK,OAAO;AAAA,EACxC,EAAO;AAAA,IACL,kBAAkB,CAAC,SAAS;AAAA;AAAA,EAG9B,YAAY,KAAK,OAAO,MAAM,gBAAgB;AAAA,EAC9C,OAAO;AAAA;",
8
+ "debugId": "F91178E691D405D264756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -32,9 +32,9 @@ declare class DatabaseError extends StreamsError {
32
32
  constructor(message: string, cause?: unknown);
33
33
  }
34
34
  /**
35
- * Webhook delivery error
35
+ * Delivery error
36
36
  */
37
- declare class WebhookDeliveryError extends StreamsError {
37
+ declare class DeliveryError extends StreamsError {
38
38
  statusCode?: number;
39
39
  constructor(message: string, statusCode?: number, cause?: unknown);
40
40
  toJSON(): {
@@ -68,4 +68,4 @@ declare class ForbiddenError extends StreamsError {
68
68
  * Safely extract error message from unknown error value
69
69
  */
70
70
  declare function getErrorMessage(err: unknown): string;
71
- export { getErrorMessage, WebhookDeliveryError, ValidationError, StreamsError, StreamNotFoundError, RateLimitError, ForbiddenError, FilterEvaluationError, DatabaseError, AuthorizationError, AuthenticationError };
71
+ export { getErrorMessage, ValidationError, StreamsError, StreamNotFoundError, RateLimitError, ForbiddenError, FilterEvaluationError, DeliveryError, DatabaseError, AuthorizationError, AuthenticationError };
@@ -54,10 +54,10 @@ class DatabaseError extends StreamsError {
54
54
  }
55
55
  }
56
56
 
57
- class WebhookDeliveryError extends StreamsError {
57
+ class DeliveryError extends StreamsError {
58
58
  statusCode;
59
59
  constructor(message, statusCode, cause) {
60
- super("WEBHOOK_DELIVERY_ERROR", message, cause);
60
+ super("DELIVERY_ERROR", message, cause);
61
61
  this.statusCode = statusCode;
62
62
  }
63
63
  toJSON() {
@@ -107,17 +107,17 @@ function getErrorMessage(err) {
107
107
  }
108
108
  export {
109
109
  getErrorMessage,
110
- WebhookDeliveryError,
111
110
  ValidationError,
112
111
  StreamsError,
113
112
  StreamNotFoundError,
114
113
  RateLimitError,
115
114
  ForbiddenError,
116
115
  FilterEvaluationError,
116
+ DeliveryError,
117
117
  DatabaseError,
118
118
  AuthorizationError,
119
119
  AuthenticationError
120
120
  };
121
121
 
122
- //# debugId=7794573A4C7CB51D64756E2164756E21
122
+ //# debugId=42FBAE7EC051820B64756E2164756E21
123
123
  //# sourceMappingURL=errors.js.map
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/errors.ts"],
4
4
  "sourcesContent": [
5
- "/**\n * Base error class for all Stacks Streams errors\n */\nexport class StreamsError extends Error {\n public code: string;\n public override cause?: unknown;\n\n constructor(\n code: string,\n message: string,\n cause?: unknown\n ) {\n super(message);\n this.code = code;\n this.cause = cause;\n this.name = this.constructor.name;\n Error.captureStackTrace?.(this, this.constructor);\n }\n\n toJSON(): { name: string; code: string; message: string; stack: string | undefined; cause: unknown } {\n return {\n name: this.name,\n code: this.code,\n message: this.message,\n stack: this.stack,\n cause: this.cause,\n };\n }\n}\n\n/**\n * Stream not found error\n */\nexport class StreamNotFoundError extends StreamsError {\n constructor(streamId: string) {\n super(\"STREAM_NOT_FOUND\", `Stream not found: ${streamId}`);\n }\n}\n\n/**\n * Validation error for invalid input\n */\nexport class ValidationError extends StreamsError {\n constructor(message: string, cause?: unknown) {\n super(\"VALIDATION_ERROR\", message, cause);\n }\n}\n\n/**\n * Database operation error\n */\nexport class DatabaseError extends StreamsError {\n constructor(message: string, cause?: unknown) {\n super(\"DATABASE_ERROR\", message, cause);\n }\n}\n\n/**\n * Webhook delivery error\n */\nexport class WebhookDeliveryError extends StreamsError {\n constructor(\n message: string,\n public statusCode?: number,\n cause?: unknown\n ) {\n super(\"WEBHOOK_DELIVERY_ERROR\", message, cause);\n }\n\n override toJSON(): { name: string; code: string; message: string; stack: string | undefined; cause: unknown; statusCode: number | undefined } {\n const base = super.toJSON();\n return {\n name: base.name,\n code: base.code,\n message: base.message,\n stack: base.stack,\n cause: base.cause,\n statusCode: this.statusCode,\n };\n }\n}\n\n/**\n * Filter evaluation error\n */\nexport class FilterEvaluationError extends StreamsError {\n constructor(message: string, cause?: unknown) {\n super(\"FILTER_EVALUATION_ERROR\", message, cause);\n }\n}\n\nexport class AuthenticationError extends StreamsError {\n constructor(message: string) {\n super(\"AUTHENTICATION_ERROR\", message);\n }\n}\n\nexport class AuthorizationError extends StreamsError {\n constructor(message: string) {\n super(\"AUTHORIZATION_ERROR\", message);\n }\n}\n\nexport class RateLimitError extends StreamsError {\n constructor(message: string) {\n super(\"RATE_LIMIT_ERROR\", message);\n }\n}\n\nexport class ForbiddenError extends StreamsError {\n constructor(message = \"Forbidden\") {\n super(\"FORBIDDEN\", message);\n }\n}\n\n/**\n * Safely extract error message from unknown error value\n */\nexport function getErrorMessage(err: unknown): string {\n return err instanceof Error ? err.message : String(err);\n}\n"
5
+ "/**\n * Base error class for all Stacks Streams errors\n */\nexport class StreamsError extends Error {\n public code: string;\n public override cause?: unknown;\n\n constructor(\n code: string,\n message: string,\n cause?: unknown\n ) {\n super(message);\n this.code = code;\n this.cause = cause;\n this.name = this.constructor.name;\n Error.captureStackTrace?.(this, this.constructor);\n }\n\n toJSON(): { name: string; code: string; message: string; stack: string | undefined; cause: unknown } {\n return {\n name: this.name,\n code: this.code,\n message: this.message,\n stack: this.stack,\n cause: this.cause,\n };\n }\n}\n\n/**\n * Stream not found error\n */\nexport class StreamNotFoundError extends StreamsError {\n constructor(streamId: string) {\n super(\"STREAM_NOT_FOUND\", `Stream not found: ${streamId}`);\n }\n}\n\n/**\n * Validation error for invalid input\n */\nexport class ValidationError extends StreamsError {\n constructor(message: string, cause?: unknown) {\n super(\"VALIDATION_ERROR\", message, cause);\n }\n}\n\n/**\n * Database operation error\n */\nexport class DatabaseError extends StreamsError {\n constructor(message: string, cause?: unknown) {\n super(\"DATABASE_ERROR\", message, cause);\n }\n}\n\n/**\n * Delivery error\n */\nexport class DeliveryError extends StreamsError {\n constructor(\n message: string,\n public statusCode?: number,\n cause?: unknown\n ) {\n super(\"DELIVERY_ERROR\", message, cause);\n }\n\n override toJSON(): { name: string; code: string; message: string; stack: string | undefined; cause: unknown; statusCode: number | undefined } {\n const base = super.toJSON();\n return {\n name: base.name,\n code: base.code,\n message: base.message,\n stack: base.stack,\n cause: base.cause,\n statusCode: this.statusCode,\n };\n }\n}\n\n/**\n * Filter evaluation error\n */\nexport class FilterEvaluationError extends StreamsError {\n constructor(message: string, cause?: unknown) {\n super(\"FILTER_EVALUATION_ERROR\", message, cause);\n }\n}\n\nexport class AuthenticationError extends StreamsError {\n constructor(message: string) {\n super(\"AUTHENTICATION_ERROR\", message);\n }\n}\n\nexport class AuthorizationError extends StreamsError {\n constructor(message: string) {\n super(\"AUTHORIZATION_ERROR\", message);\n }\n}\n\nexport class RateLimitError extends StreamsError {\n constructor(message: string) {\n super(\"RATE_LIMIT_ERROR\", message);\n }\n}\n\nexport class ForbiddenError extends StreamsError {\n constructor(message = \"Forbidden\") {\n super(\"FORBIDDEN\", message);\n }\n}\n\n/**\n * Safely extract error message from unknown error value\n */\nexport function getErrorMessage(err: unknown): string {\n return err instanceof Error ? err.message : String(err);\n}\n"
6
6
  ],
7
- "mappings": ";;;;;;;;;;;;;;;;;AAGO,MAAM,qBAAqB,MAAM;AAAA,EAC/B;AAAA,EACS;AAAA,EAEhB,WAAW,CACT,MACA,SACA,OACA;AAAA,IACA,MAAM,OAAO;AAAA,IACb,KAAK,OAAO;AAAA,IACZ,KAAK,QAAQ;AAAA,IACb,KAAK,OAAO,KAAK,YAAY;AAAA,IAC7B,MAAM,oBAAoB,MAAM,KAAK,WAAW;AAAA;AAAA,EAGlD,MAAM,GAA+F;AAAA,IACnG,OAAO;AAAA,MACL,MAAM,KAAK;AAAA,MACX,MAAM,KAAK;AAAA,MACX,SAAS,KAAK;AAAA,MACd,OAAO,KAAK;AAAA,MACZ,OAAO,KAAK;AAAA,IACd;AAAA;AAEJ;AAAA;AAKO,MAAM,4BAA4B,aAAa;AAAA,EACpD,WAAW,CAAC,UAAkB;AAAA,IAC5B,MAAM,oBAAoB,qBAAqB,UAAU;AAAA;AAE7D;AAAA;AAKO,MAAM,wBAAwB,aAAa;AAAA,EAChD,WAAW,CAAC,SAAiB,OAAiB;AAAA,IAC5C,MAAM,oBAAoB,SAAS,KAAK;AAAA;AAE5C;AAAA;AAKO,MAAM,sBAAsB,aAAa;AAAA,EAC9C,WAAW,CAAC,SAAiB,OAAiB;AAAA,IAC5C,MAAM,kBAAkB,SAAS,KAAK;AAAA;AAE1C;AAAA;AAKO,MAAM,6BAA6B,aAAa;AAAA,EAG5C;AAAA,EAFT,WAAW,CACT,SACO,YACP,OACA;AAAA,IACA,MAAM,0BAA0B,SAAS,KAAK;AAAA,IAHvC;AAAA;AAAA,EAMA,MAAM,GAA+H;AAAA,IAC5I,MAAM,OAAO,MAAM,OAAO;AAAA,IAC1B,OAAO;AAAA,MACL,MAAM,KAAK;AAAA,MACX,MAAM,KAAK;AAAA,MACX,SAAS,KAAK;AAAA,MACd,OAAO,KAAK;AAAA,MACZ,OAAO,KAAK;AAAA,MACZ,YAAY,KAAK;AAAA,IACnB;AAAA;AAEJ;AAAA;AAKO,MAAM,8BAA8B,aAAa;AAAA,EACtD,WAAW,CAAC,SAAiB,OAAiB;AAAA,IAC5C,MAAM,2BAA2B,SAAS,KAAK;AAAA;AAEnD;AAAA;AAEO,MAAM,4BAA4B,aAAa;AAAA,EACpD,WAAW,CAAC,SAAiB;AAAA,IAC3B,MAAM,wBAAwB,OAAO;AAAA;AAEzC;AAAA;AAEO,MAAM,2BAA2B,aAAa;AAAA,EACnD,WAAW,CAAC,SAAiB;AAAA,IAC3B,MAAM,uBAAuB,OAAO;AAAA;AAExC;AAAA;AAEO,MAAM,uBAAuB,aAAa;AAAA,EAC/C,WAAW,CAAC,SAAiB;AAAA,IAC3B,MAAM,oBAAoB,OAAO;AAAA;AAErC;AAAA;AAEO,MAAM,uBAAuB,aAAa;AAAA,EAC/C,WAAW,CAAC,UAAU,aAAa;AAAA,IACjC,MAAM,aAAa,OAAO;AAAA;AAE9B;AAKO,SAAS,eAAe,CAAC,KAAsB;AAAA,EACpD,OAAO,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAAA;",
8
- "debugId": "7794573A4C7CB51D64756E2164756E21",
7
+ "mappings": ";;;;;;;;;;;;;;;;;AAGO,MAAM,qBAAqB,MAAM;AAAA,EAC/B;AAAA,EACS;AAAA,EAEhB,WAAW,CACT,MACA,SACA,OACA;AAAA,IACA,MAAM,OAAO;AAAA,IACb,KAAK,OAAO;AAAA,IACZ,KAAK,QAAQ;AAAA,IACb,KAAK,OAAO,KAAK,YAAY;AAAA,IAC7B,MAAM,oBAAoB,MAAM,KAAK,WAAW;AAAA;AAAA,EAGlD,MAAM,GAA+F;AAAA,IACnG,OAAO;AAAA,MACL,MAAM,KAAK;AAAA,MACX,MAAM,KAAK;AAAA,MACX,SAAS,KAAK;AAAA,MACd,OAAO,KAAK;AAAA,MACZ,OAAO,KAAK;AAAA,IACd;AAAA;AAEJ;AAAA;AAKO,MAAM,4BAA4B,aAAa;AAAA,EACpD,WAAW,CAAC,UAAkB;AAAA,IAC5B,MAAM,oBAAoB,qBAAqB,UAAU;AAAA;AAE7D;AAAA;AAKO,MAAM,wBAAwB,aAAa;AAAA,EAChD,WAAW,CAAC,SAAiB,OAAiB;AAAA,IAC5C,MAAM,oBAAoB,SAAS,KAAK;AAAA;AAE5C;AAAA;AAKO,MAAM,sBAAsB,aAAa;AAAA,EAC9C,WAAW,CAAC,SAAiB,OAAiB;AAAA,IAC5C,MAAM,kBAAkB,SAAS,KAAK;AAAA;AAE1C;AAAA;AAKO,MAAM,sBAAsB,aAAa;AAAA,EAGrC;AAAA,EAFT,WAAW,CACT,SACO,YACP,OACA;AAAA,IACA,MAAM,kBAAkB,SAAS,KAAK;AAAA,IAH/B;AAAA;AAAA,EAMA,MAAM,GAA+H;AAAA,IAC5I,MAAM,OAAO,MAAM,OAAO;AAAA,IAC1B,OAAO;AAAA,MACL,MAAM,KAAK;AAAA,MACX,MAAM,KAAK;AAAA,MACX,SAAS,KAAK;AAAA,MACd,OAAO,KAAK;AAAA,MACZ,OAAO,KAAK;AAAA,MACZ,YAAY,KAAK;AAAA,IACnB;AAAA;AAEJ;AAAA;AAKO,MAAM,8BAA8B,aAAa;AAAA,EACtD,WAAW,CAAC,SAAiB,OAAiB;AAAA,IAC5C,MAAM,2BAA2B,SAAS,KAAK;AAAA;AAEnD;AAAA;AAEO,MAAM,4BAA4B,aAAa;AAAA,EACpD,WAAW,CAAC,SAAiB;AAAA,IAC3B,MAAM,wBAAwB,OAAO;AAAA;AAEzC;AAAA;AAEO,MAAM,2BAA2B,aAAa;AAAA,EACnD,WAAW,CAAC,SAAiB;AAAA,IAC3B,MAAM,uBAAuB,OAAO;AAAA;AAExC;AAAA;AAEO,MAAM,uBAAuB,aAAa;AAAA,EAC/C,WAAW,CAAC,SAAiB;AAAA,IAC3B,MAAM,oBAAoB,OAAO;AAAA;AAErC;AAAA;AAEO,MAAM,uBAAuB,aAAa;AAAA,EAC/C,WAAW,CAAC,UAAU,aAAa;AAAA,IACjC,MAAM,aAAa,OAAO;AAAA;AAE9B;AAKO,SAAS,eAAe,CAAC,KAAsB;AAAA,EACpD,OAAO,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAAA;",
8
+ "debugId": "42FBAE7EC051820B64756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -35,8 +35,8 @@ interface StreamsTable {
35
35
  status: Generated<string>;
36
36
  filters: unknown;
37
37
  options: Generated<unknown>;
38
- webhook_url: string;
39
- webhook_secret: string | null;
38
+ endpoint_url: string;
39
+ signing_secret: string | null;
40
40
  api_key_id: string | null;
41
41
  created_at: Generated<Date>;
42
42
  updated_at: Generated<Date>;
@@ -355,9 +355,9 @@ declare class DatabaseError extends StreamsError {
355
355
  constructor(message: string, cause?: unknown);
356
356
  }
357
357
  /**
358
- * Webhook delivery error
358
+ * Delivery error
359
359
  */
360
- declare class WebhookDeliveryError extends StreamsError {
360
+ declare class DeliveryError extends StreamsError {
361
361
  statusCode?: number;
362
362
  constructor(message: string, statusCode?: number, cause?: unknown);
363
363
  toJSON(): {
@@ -443,7 +443,7 @@ declare function stats(): Promise<QueueStats2>;
443
443
  * Get worker ID for this process
444
444
  */
445
445
  declare function getWorkerId(): string;
446
- import { z as z2 } from "zod";
446
+ import { z as z2 } from "zod/v4";
447
447
  interface StxTransferFilter {
448
448
  type: "stx_transfer";
449
449
  sender?: string;
@@ -536,7 +536,7 @@ declare const ContractCallFilterSchema: z2.ZodType<ContractCallFilter>;
536
536
  declare const ContractDeployFilterSchema: z2.ZodType<ContractDeployFilter>;
537
537
  declare const PrintEventFilterSchema: z2.ZodType<PrintEventFilter>;
538
538
  declare const StreamFilterSchema: z2.ZodType<StreamFilter>;
539
- import { z as z3 } from "zod";
539
+ import { z as z3 } from "zod/v4";
540
540
  interface DeploySubgraphRequest {
541
541
  name: string;
542
542
  version?: string;
@@ -597,7 +597,7 @@ interface SubgraphQueryParams {
597
597
  fields?: string;
598
598
  filters?: Record<string, string>;
599
599
  }
600
- import { z as z4 } from "zod";
600
+ import { z as z4 } from "zod/v4";
601
601
  interface StreamOptions {
602
602
  decodeClarityValues: boolean;
603
603
  includeRawTx: boolean;
@@ -608,7 +608,7 @@ interface StreamOptions {
608
608
  }
609
609
  interface CreateStream {
610
610
  name: string;
611
- webhookUrl: string;
611
+ endpointUrl: string;
612
612
  filters: StreamFilter[];
613
613
  options?: StreamOptions;
614
614
  startBlock?: number;
@@ -616,11 +616,11 @@ interface CreateStream {
616
616
  }
617
617
  interface UpdateStream {
618
618
  name?: string;
619
- webhookUrl?: string;
619
+ endpointUrl?: string;
620
620
  filters?: StreamFilter[];
621
621
  options?: Partial<StreamOptions>;
622
622
  }
623
- interface WebhookPayload {
623
+ interface DeliveryPayload {
624
624
  streamId: string;
625
625
  streamName: string;
626
626
  block: {
@@ -661,7 +661,7 @@ interface StreamResponse {
661
661
  id: string;
662
662
  name: string;
663
663
  status: "inactive" | "active" | "paused" | "failed";
664
- webhookUrl: string;
664
+ endpointUrl: string;
665
665
  filters: StreamFilter[];
666
666
  options: StreamOptions;
667
667
  totalDeliveries: number;
@@ -675,12 +675,12 @@ interface StreamResponse {
675
675
  declare const StreamOptionsSchema: z4.ZodType<StreamOptions>;
676
676
  declare const CreateStreamSchema: z4.ZodType<CreateStream>;
677
677
  declare const UpdateStreamSchema: z4.ZodType<UpdateStream>;
678
- declare const WebhookPayloadSchema: z4.ZodType<WebhookPayload>;
678
+ declare const DeliveryPayloadSchema: z4.ZodType<DeliveryPayload>;
679
679
  declare const StreamMetricsSchema: z4.ZodType<StreamMetricsResponse>;
680
680
  declare const StreamResponseSchema: z4.ZodType<StreamResponse>;
681
681
  interface CreateStreamResponse {
682
682
  stream: StreamResponse;
683
- webhookSecret: string;
683
+ signingSecret: string;
684
684
  }
685
685
  interface ListStreamsResponse {
686
686
  streams: StreamResponse[];
@@ -698,7 +698,7 @@ declare namespace exports_hmac {
698
698
  export { verifySignatureHeader, verifySignature, signPayload, generateSecret, createSignatureHeader };
699
699
  }
700
700
  /**
701
- * Generate a random secret for webhook signing
701
+ * Generate a random secret for delivery signing
702
702
  * Returns 32 bytes as a 64-character hex string
703
703
  */
704
704
  declare function generateSecret(): string;
@@ -722,4 +722,4 @@ declare function createSignatureHeader(payload: string, secret: string, timestam
722
722
  * Returns true if valid, false otherwise
723
723
  */
724
724
  declare function verifySignatureHeader(payload: string, header: string, secret: string, toleranceSeconds?: number): boolean;
725
- export { sql, exports_queue as queue, parseJsonb, logger, jsonb, getRawClient, getErrorMessage, getEnv, getDb, exports_hmac as crypto, closeDb, WebhookPayloadSchema, WebhookPayload, WebhookDeliveryError, WaitlistTable, ValidationError, UsageSnapshotsTable, UsageSnapshot, UsageDailyTable, UsageDaily, UpdateTransaction, UpdateSubgraph, UpdateStreamSchema, UpdateStreamRow, UpdateStreamMetrics, UpdateStream, UpdateJob, UpdateIndexProgress, UpdateEvent, UpdateDelivery, UpdateBlock, UpdateApiKey, TransactionsTable, Transaction, SubgraphsTable, SubgraphTableSnapshotsTable, SubgraphSummary, SubgraphQueryParams, SubgraphProcessingStatsTable, SubgraphHealthSnapshotsTable, SubgraphHealthSnapshot, SubgraphDetail, Subgraph, StxTransferFilterSchema, StxTransferFilter, StxMintFilterSchema, StxMintFilter, StxLockFilterSchema, StxLockFilter, StxBurnFilterSchema, StxBurnFilter, StreamsTable, StreamsError, StreamResponseSchema, StreamResponse, StreamOptionsSchema, StreamOptions, StreamNotFoundError, StreamMetricsTable, StreamMetricsSchema, StreamMetricsResponse, StreamMetrics, StreamFilterSchema, StreamFilter, Stream, SessionsTable, Session, ReindexResponse, RateLimitError, QueueStats, PrintEventFilterSchema, PrintEventFilter, NftTransferFilterSchema, NftTransferFilter, NftMintFilterSchema, NftMintFilter, NftBurnFilterSchema, NftBurnFilter, MagicLinksTable, MagicLink, ListStreamsResponse, JobsTable, Job, InsertTransaction, InsertSubgraphHealthSnapshot, InsertSubgraph, InsertStreamMetrics, InsertStream, InsertSession, InsertMagicLink, InsertJob, InsertIndexProgress, InsertEvent, InsertDelivery, InsertBlock, InsertApiKey, InsertAccountInsight, InsertAccountAgentRun, InsertAccount, IndexProgressTable, IndexProgress, FtTransferFilterSchema, FtTransferFilter, FtMintFilterSchema, FtMintFilter, FtBurnFilterSchema, FtBurnFilter, ForbiddenError, FilterEvaluationError, EventsTable, Event, Env, DeploySubgraphResponse, DeploySubgraphRequestSchema, DeploySubgraphRequest, Delivery, DeliveriesTable, DatabaseError, Database, CreateStreamSchema, CreateStreamResponse, CreateStream, ContractDeployFilterSchema, ContractDeployFilter, ContractCallFilterSchema, ContractCallFilter, BulkResumeResponse, BulkPauseResponse, BlocksTable, Block, AuthorizationError, AuthenticationError, ApiKeysTable, ApiKey, AccountsTable, AccountInsightsTable, AccountInsight, AccountAgentRunsTable, AccountAgentRun, Account };
725
+ export { sql, exports_queue as queue, parseJsonb, logger, jsonb, getRawClient, getErrorMessage, getEnv, getDb, exports_hmac as crypto, closeDb, WaitlistTable, ValidationError, UsageSnapshotsTable, UsageSnapshot, UsageDailyTable, UsageDaily, UpdateTransaction, UpdateSubgraph, UpdateStreamSchema, UpdateStreamRow, UpdateStreamMetrics, UpdateStream, UpdateJob, UpdateIndexProgress, UpdateEvent, UpdateDelivery, UpdateBlock, UpdateApiKey, TransactionsTable, Transaction, SubgraphsTable, SubgraphTableSnapshotsTable, SubgraphSummary, SubgraphQueryParams, SubgraphProcessingStatsTable, SubgraphHealthSnapshotsTable, SubgraphHealthSnapshot, SubgraphDetail, Subgraph, StxTransferFilterSchema, StxTransferFilter, StxMintFilterSchema, StxMintFilter, StxLockFilterSchema, StxLockFilter, StxBurnFilterSchema, StxBurnFilter, StreamsTable, StreamsError, StreamResponseSchema, StreamResponse, StreamOptionsSchema, StreamOptions, StreamNotFoundError, StreamMetricsTable, StreamMetricsSchema, StreamMetricsResponse, StreamMetrics, StreamFilterSchema, StreamFilter, Stream, SessionsTable, Session, ReindexResponse, RateLimitError, QueueStats, PrintEventFilterSchema, PrintEventFilter, NftTransferFilterSchema, NftTransferFilter, NftMintFilterSchema, NftMintFilter, NftBurnFilterSchema, NftBurnFilter, MagicLinksTable, MagicLink, ListStreamsResponse, JobsTable, Job, InsertTransaction, InsertSubgraphHealthSnapshot, InsertSubgraph, InsertStreamMetrics, InsertStream, InsertSession, InsertMagicLink, InsertJob, InsertIndexProgress, InsertEvent, InsertDelivery, InsertBlock, InsertApiKey, InsertAccountInsight, InsertAccountAgentRun, InsertAccount, IndexProgressTable, IndexProgress, FtTransferFilterSchema, FtTransferFilter, FtMintFilterSchema, FtMintFilter, FtBurnFilterSchema, FtBurnFilter, ForbiddenError, FilterEvaluationError, EventsTable, Event, Env, DeploySubgraphResponse, DeploySubgraphRequestSchema, DeploySubgraphRequest, DeliveryPayloadSchema, DeliveryPayload, DeliveryError, Delivery, DeliveriesTable, DatabaseError, Database, CreateStreamSchema, CreateStreamResponse, CreateStream, ContractDeployFilterSchema, ContractDeployFilter, ContractCallFilterSchema, ContractCallFilter, BulkResumeResponse, BulkPauseResponse, BlocksTable, Block, AuthorizationError, AuthenticationError, ApiKeysTable, ApiKey, AccountsTable, AccountInsightsTable, AccountInsight, AccountAgentRunsTable, AccountAgentRun, Account };
package/dist/src/index.js CHANGED
@@ -105,10 +105,10 @@ class DatabaseError extends StreamsError {
105
105
  }
106
106
  }
107
107
 
108
- class WebhookDeliveryError extends StreamsError {
108
+ class DeliveryError extends StreamsError {
109
109
  statusCode;
110
110
  constructor(message, statusCode, cause) {
111
- super("WEBHOOK_DELIVERY_ERROR", message, cause);
111
+ super("DELIVERY_ERROR", message, cause);
112
112
  this.statusCode = statusCode;
113
113
  }
114
114
  toJSON() {
@@ -158,7 +158,7 @@ function getErrorMessage(err) {
158
158
  }
159
159
 
160
160
  // src/env.ts
161
- import { z } from "zod";
161
+ import { z } from "zod/v4";
162
162
  var networksSchema = z.string().transform((val) => {
163
163
  const networks = val.split(",").map((n) => n.trim()).filter(Boolean);
164
164
  const valid = ["mainnet", "testnet"];
@@ -184,7 +184,7 @@ function getEnv() {
184
184
  const result = envSchema.safeParse(process.env);
185
185
  if (!result.success) {
186
186
  console.error("❌ Invalid environment configuration:");
187
- console.error(result.error.format());
187
+ console.error(z.treeifyError(result.error));
188
188
  throw new Error("Invalid environment configuration");
189
189
  }
190
190
  let enabledNetworks;
@@ -371,7 +371,7 @@ function getWorkerId() {
371
371
  return WORKER_ID;
372
372
  }
373
373
  // src/schemas/filters.ts
374
- import { z as z2 } from "zod";
374
+ import { z as z2 } from "zod/v4";
375
375
  import { isValidAddress as _isValidAddress } from "@secondlayer/stacks";
376
376
  var isValidAddress = _isValidAddress;
377
377
  var stacksPrincipal = z2.string().refine((val) => {
@@ -475,18 +475,18 @@ var StreamFilterSchema = z2.discriminatedUnion("type", [
475
475
  ]);
476
476
 
477
477
  // src/schemas/subgraphs.ts
478
- import { z as z3 } from "zod";
478
+ import { z as z3 } from "zod/v4";
479
479
  var DeploySubgraphRequestSchema = z3.object({
480
480
  name: z3.string().regex(/^[a-z0-9-]+$/, "lowercase alphanumeric + hyphens only").max(63),
481
481
  version: z3.string().optional(),
482
482
  description: z3.string().optional(),
483
483
  sources: z3.array(z3.string()).min(1),
484
- schema: z3.record(z3.unknown()),
484
+ schema: z3.record(z3.string(), z3.unknown()),
485
485
  handlerCode: z3.string().max(1048576, "handler code exceeds 1MB limit"),
486
486
  reindex: z3.boolean().optional()
487
487
  });
488
488
  // src/schemas/stream.ts
489
- import { z as z4 } from "zod";
489
+ import { z as z4 } from "zod/v4";
490
490
  var streamOptionsShape = z4.object({
491
491
  decodeClarityValues: z4.boolean().default(true),
492
492
  includeRawTx: z4.boolean().default(false),
@@ -498,19 +498,19 @@ var streamOptionsShape = z4.object({
498
498
  var StreamOptionsSchema = streamOptionsShape;
499
499
  var CreateStreamSchema = z4.object({
500
500
  name: z4.string().min(1).max(255),
501
- webhookUrl: z4.string().url(),
501
+ endpointUrl: z4.string().url(),
502
502
  filters: z4.array(StreamFilterSchema).min(1),
503
- options: streamOptionsShape.optional().default({}),
503
+ options: streamOptionsShape.optional(),
504
504
  startBlock: z4.number().int().positive().optional(),
505
505
  endBlock: z4.number().int().positive().optional()
506
506
  });
507
507
  var UpdateStreamSchema = z4.object({
508
508
  name: z4.string().min(1).max(255).optional(),
509
- webhookUrl: z4.string().url().optional(),
509
+ endpointUrl: z4.string().url().optional(),
510
510
  filters: z4.array(StreamFilterSchema).min(1).optional(),
511
511
  options: streamOptionsShape.partial().optional()
512
512
  }).refine((data) => Object.keys(data).length > 0, { message: "At least one field must be provided for update" });
513
- var WebhookPayloadSchema = z4.object({
513
+ var DeliveryPayloadSchema = z4.object({
514
514
  streamId: z4.string().uuid(),
515
515
  streamName: z4.string(),
516
516
  block: z4.object({
@@ -551,7 +551,7 @@ var StreamResponseSchema = z4.object({
551
551
  id: z4.string().uuid(),
552
552
  name: z4.string(),
553
553
  status: z4.enum(["inactive", "active", "paused", "failed"]),
554
- webhookUrl: z4.string().url(),
554
+ endpointUrl: z4.string().url(),
555
555
  filters: z4.array(StreamFilterSchema),
556
556
  options: streamOptionsShape,
557
557
  totalDeliveries: z4.number().int().default(0),
@@ -627,8 +627,6 @@ export {
627
627
  getDb,
628
628
  exports_hmac as crypto,
629
629
  closeDb,
630
- WebhookPayloadSchema,
631
- WebhookDeliveryError,
632
630
  ValidationError,
633
631
  UpdateStreamSchema,
634
632
  StxTransferFilterSchema,
@@ -652,6 +650,8 @@ export {
652
650
  ForbiddenError,
653
651
  FilterEvaluationError,
654
652
  DeploySubgraphRequestSchema,
653
+ DeliveryPayloadSchema,
654
+ DeliveryError,
655
655
  DatabaseError,
656
656
  CreateStreamSchema,
657
657
  ContractDeployFilterSchema,
@@ -660,5 +660,5 @@ export {
660
660
  AuthenticationError
661
661
  };
662
662
 
663
- //# debugId=360F9F394016C38364756E2164756E21
663
+ //# debugId=D2BBFAFE2AAED10A64756E2164756E21
664
664
  //# sourceMappingURL=index.js.map