@bubblelab/bubble-core 0.1.271 → 0.1.272

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.
@@ -1 +1 @@
1
- {"version":3,"file":"snowflake.utils.d.ts","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/snowflake/snowflake.utils.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AA0CD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,oBAAoB,CAiB5E;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAsDxE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAChC,UAAU,EAAE,MAAM,GACjB,MAAM,CAIR;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,EACzB,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAChC,UAAU,EAAE,MAAM,GACjB,MAAM,GAAG,SAAS,CAIpB"}
1
+ {"version":3,"file":"snowflake.utils.d.ts","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/snowflake/snowflake.utils.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAsDD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,oBAAoB,CAgC5E;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAwExE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAChC,UAAU,EAAE,MAAM,GACjB,MAAM,CAIR;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,EACzB,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAChC,UAAU,EAAE,MAAM,GACjB,MAAM,GAAG,SAAS,CAIpB"}
@@ -13,6 +13,8 @@ import { decodeCredentialPayload } from '@bubblelab/shared-schemas';
13
13
  * - Keys that are already correctly formatted (no-op)
14
14
  */
15
15
  function normalizePemKey(key) {
16
+ const tag = '[Snowflake:PEM]';
17
+ console.log(`${tag} input: len=${key.length}, first80=${JSON.stringify(key.slice(0, 80))}, last40=${JSON.stringify(key.slice(-40))}`);
16
18
  // Strip BOM and outer whitespace
17
19
  let cleaned = key.replace(/^\uFEFF/, '').trim();
18
20
  // Replace literal backslash-n sequences with real newlines
@@ -22,6 +24,7 @@ function normalizePemKey(key) {
22
24
  // Extract header, body, footer — works for any PEM label
23
25
  const match = cleaned.match(/^(-----BEGIN [A-Z0-9 ]+-----)\s*([\s\S]*?)\s*(-----END [A-Z0-9 ]+-----)$/);
24
26
  if (!match) {
27
+ console.log(`${tag} NO PEM MATCH — returning as-is, first80=${JSON.stringify(cleaned.slice(0, 80))}`);
25
28
  return cleaned; // Not recognizable PEM — return as-is, let crypto throw a clear error
26
29
  }
27
30
  const header = match[1];
@@ -29,7 +32,9 @@ function normalizePemKey(key) {
29
32
  // Strip ALL whitespace from the base64 body then re-wrap at 64 chars
30
33
  const body = match[2].replace(/\s+/g, '');
31
34
  const wrapped = body.match(/.{1,64}/g)?.join('\n') ?? body;
32
- return `${header}\n${wrapped}\n${footer}\n`;
35
+ const result = `${header}\n${wrapped}\n${footer}\n`;
36
+ console.log(`${tag} normalized: header=${header}, bodyLen=${body.length}, totalLen=${result.length}, lines=${result.split('\n').length}`);
37
+ return result;
33
38
  }
34
39
  /**
35
40
  * Parse a multi-field credential value into typed Snowflake fields.
@@ -37,14 +42,19 @@ function normalizePemKey(key) {
37
42
  * base64 (injection path) and raw JSON (validator path).
38
43
  */
39
44
  export function parseSnowflakeCredential(value) {
45
+ const tag = '[Snowflake:parse]';
46
+ console.log(`${tag} raw value: len=${value.length}, isBase64=${!/^{/.test(value.trim())}, first40=${JSON.stringify(value.slice(0, 40))}`);
40
47
  const parsed = decodeCredentialPayload(value);
48
+ console.log(`${tag} decoded: account=${parsed.account}, username=${parsed.username}, hasPrivateKey=${!!parsed.privateKey}, pkLen=${parsed.privateKey?.length ?? 0}`);
41
49
  if (!parsed.account || !parsed.username || !parsed.privateKey) {
42
50
  throw new Error('Snowflake credential is missing required fields: account, username, privateKey');
43
51
  }
52
+ const normalizedKey = normalizePemKey(parsed.privateKey);
53
+ console.log(`${tag} after normalize: pkLen=${normalizedKey.length}, startsWithHeader=${normalizedKey.startsWith('-----BEGIN')}`);
44
54
  return {
45
55
  account: parsed.account,
46
56
  username: parsed.username,
47
- privateKey: normalizePemKey(parsed.privateKey),
57
+ privateKey: normalizedKey,
48
58
  privateKeyPassword: parsed.privateKeyPassword || undefined,
49
59
  warehouse: parsed.warehouse || undefined,
50
60
  database: parsed.database || undefined,
@@ -62,16 +72,26 @@ export function parseSnowflakeCredential(value) {
62
72
  * - exp: current timestamp + 1 hour
63
73
  */
64
74
  export function generateSnowflakeJWT(creds) {
75
+ const tag = '[Snowflake:JWT]';
65
76
  // Snowflake JWT requires the account identifier as-is (keep hyphens)
66
77
  const accountUpper = creds.account.toUpperCase();
67
78
  const userUpper = creds.username.toUpperCase();
79
+ console.log(`${tag} generating: account=${accountUpper}, user=${userUpper}, pkLen=${creds.privateKey.length}, hasPassphrase=${!!creds.privateKeyPassword}`);
68
80
  // Create key object from PEM private key
69
- const keyObject = crypto.createPrivateKey({
70
- key: creds.privateKey,
71
- ...(creds.privateKeyPassword && {
72
- passphrase: creds.privateKeyPassword,
73
- }),
74
- });
81
+ let keyObject;
82
+ try {
83
+ keyObject = crypto.createPrivateKey({
84
+ key: creds.privateKey,
85
+ ...(creds.privateKeyPassword && {
86
+ passphrase: creds.privateKeyPassword,
87
+ }),
88
+ });
89
+ console.log(`${tag} createPrivateKey succeeded: type=${keyObject.asymmetricKeyType}`);
90
+ }
91
+ catch (err) {
92
+ console.error(`${tag} createPrivateKey FAILED: ${err instanceof Error ? err.message : String(err)}`, `pkFirst80=${JSON.stringify(creds.privateKey.slice(0, 80))}`, `pkLast40=${JSON.stringify(creds.privateKey.slice(-40))}`);
93
+ throw err;
94
+ }
75
95
  // Extract public key and compute SHA-256 fingerprint
76
96
  const publicKey = crypto.createPublicKey(keyObject);
77
97
  const publicKeyDer = publicKey.export({ type: 'spki', format: 'der' });
@@ -1 +1 @@
1
- {"version":3,"file":"snowflake.utils.js","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/snowflake/snowflake.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snowflake.utils.js","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/snowflake/snowflake.utils.ts"],"names":[],"mappings":"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"}
package/dist/bubbles.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "2.0.0",
3
- "generatedAt": "2026-04-03T17:27:01.691Z",
3
+ "generatedAt": "2026-04-03T21:38:57.075Z",
4
4
  "totalCount": 81,
5
5
  "bubbles": [
6
6
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bubblelab/bubble-core",
3
- "version": "0.1.271",
3
+ "version": "0.1.272",
4
4
  "type": "module",
5
5
  "license": "Apache-2.0",
6
6
  "main": "./dist/index.js",
@@ -41,7 +41,7 @@
41
41
  "puppeteer-core": "^24.10.0",
42
42
  "resend": "^4.8.0",
43
43
  "zod": "^3.24.1",
44
- "@bubblelab/shared-schemas": "0.1.271"
44
+ "@bubblelab/shared-schemas": "0.1.272"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@types/node": "^20.12.12",