@firela/billclaw-core 0.1.5 → 0.2.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 (96) hide show
  1. package/LICENSE +21 -0
  2. package/dist/billclaw.d.ts +8 -0
  3. package/dist/billclaw.d.ts.map +1 -1
  4. package/dist/billclaw.js +51 -1
  5. package/dist/billclaw.js.map +1 -1
  6. package/dist/config/config-manager.d.ts +127 -0
  7. package/dist/config/config-manager.d.ts.map +1 -0
  8. package/dist/config/config-manager.js +304 -0
  9. package/dist/config/config-manager.js.map +1 -0
  10. package/dist/config/env-loader.d.ts +33 -0
  11. package/dist/config/env-loader.d.ts.map +1 -0
  12. package/dist/config/env-loader.js +115 -0
  13. package/dist/config/env-loader.js.map +1 -0
  14. package/dist/config/index.d.ts +14 -0
  15. package/dist/config/index.d.ts.map +1 -0
  16. package/dist/config/index.js +14 -0
  17. package/dist/config/index.js.map +1 -0
  18. package/dist/index.d.ts +4 -1
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +7 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/models/config.d.ts +147 -0
  23. package/dist/models/config.d.ts.map +1 -1
  24. package/dist/models/config.js +36 -0
  25. package/dist/models/config.js.map +1 -1
  26. package/dist/oauth/index.d.ts +12 -0
  27. package/dist/oauth/index.d.ts.map +1 -0
  28. package/dist/oauth/index.js +13 -0
  29. package/dist/oauth/index.js.map +1 -0
  30. package/dist/oauth/providers/gmail.d.ts +63 -0
  31. package/dist/oauth/providers/gmail.d.ts.map +1 -0
  32. package/dist/oauth/providers/gmail.js +213 -0
  33. package/dist/oauth/providers/gmail.js.map +1 -0
  34. package/dist/oauth/providers/plaid.d.ts +40 -0
  35. package/dist/oauth/providers/plaid.d.ts.map +1 -0
  36. package/dist/oauth/providers/plaid.js +90 -0
  37. package/dist/oauth/providers/plaid.js.map +1 -0
  38. package/dist/oauth/types.d.ts +102 -0
  39. package/dist/oauth/types.d.ts.map +1 -0
  40. package/dist/oauth/types.js +10 -0
  41. package/dist/oauth/types.js.map +1 -0
  42. package/dist/runtime/types.d.ts +2 -0
  43. package/dist/runtime/types.d.ts.map +1 -1
  44. package/dist/runtime/types.js.map +1 -1
  45. package/dist/storage/locking.d.ts +4 -0
  46. package/dist/storage/locking.d.ts.map +1 -1
  47. package/dist/storage/locking.js +4 -0
  48. package/dist/storage/locking.js.map +1 -1
  49. package/dist/test-fixtures.d.ts.map +1 -1
  50. package/dist/test-fixtures.js +5 -0
  51. package/dist/test-fixtures.js.map +1 -1
  52. package/dist/webhooks/deduplication.d.ts +117 -0
  53. package/dist/webhooks/deduplication.d.ts.map +1 -0
  54. package/dist/webhooks/deduplication.js +258 -0
  55. package/dist/webhooks/deduplication.js.map +1 -0
  56. package/dist/webhooks/handlers/gmail.d.ts +39 -0
  57. package/dist/webhooks/handlers/gmail.d.ts.map +1 -0
  58. package/dist/webhooks/handlers/gmail.js +56 -0
  59. package/dist/webhooks/handlers/gmail.js.map +1 -0
  60. package/dist/webhooks/handlers/gocardless.d.ts +39 -0
  61. package/dist/webhooks/handlers/gocardless.d.ts.map +1 -0
  62. package/dist/webhooks/handlers/gocardless.js +73 -0
  63. package/dist/webhooks/handlers/gocardless.js.map +1 -0
  64. package/dist/webhooks/handlers/index.d.ts +10 -0
  65. package/dist/webhooks/handlers/index.d.ts.map +1 -0
  66. package/dist/webhooks/handlers/index.js +10 -0
  67. package/dist/webhooks/handlers/index.js.map +1 -0
  68. package/dist/webhooks/handlers/plaid.d.ts +73 -0
  69. package/dist/webhooks/handlers/plaid.d.ts.map +1 -0
  70. package/dist/webhooks/handlers/plaid.js +169 -0
  71. package/dist/webhooks/handlers/plaid.js.map +1 -0
  72. package/dist/webhooks/index.d.ts +15 -0
  73. package/dist/webhooks/index.d.ts.map +1 -0
  74. package/dist/webhooks/index.js +17 -0
  75. package/dist/webhooks/index.js.map +1 -0
  76. package/dist/webhooks/processor.d.ts +76 -0
  77. package/dist/webhooks/processor.d.ts.map +1 -0
  78. package/dist/webhooks/processor.js +116 -0
  79. package/dist/webhooks/processor.js.map +1 -0
  80. package/dist/webhooks/router.d.ts +80 -0
  81. package/dist/webhooks/router.d.ts.map +1 -0
  82. package/dist/webhooks/router.js +107 -0
  83. package/dist/webhooks/router.js.map +1 -0
  84. package/dist/webhooks/security.d.ts +90 -0
  85. package/dist/webhooks/security.d.ts.map +1 -0
  86. package/dist/webhooks/security.js +138 -0
  87. package/dist/webhooks/security.js.map +1 -0
  88. package/dist/webhooks/sync-rate-limiter.d.ts +138 -0
  89. package/dist/webhooks/sync-rate-limiter.d.ts.map +1 -0
  90. package/dist/webhooks/sync-rate-limiter.js +228 -0
  91. package/dist/webhooks/sync-rate-limiter.js.map +1 -0
  92. package/dist/webhooks/types.d.ts +140 -0
  93. package/dist/webhooks/types.d.ts.map +1 -0
  94. package/dist/webhooks/types.js +18 -0
  95. package/dist/webhooks/types.js.map +1 -0
  96. package/package.json +12 -12
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Environment variable loader for BillClaw configuration
3
+ *
4
+ * Maps environment variables to configuration paths with type conversion.
5
+ */
6
+ /**
7
+ * Environment variable mapping to config paths
8
+ *
9
+ * Format: "ENV_VAR_NAME" -> "config.path.to.value"
10
+ */
11
+ const ENV_MAPPINGS = {
12
+ // Connect service
13
+ PORT: "connect.port",
14
+ HOST: "connect.host",
15
+ PUBLIC_URL: "connect.publicUrl",
16
+ // TLS/SSL
17
+ TLS_ENABLED: "connect.tls.enabled",
18
+ TLS_KEY_PATH: "connect.tls.keyPath",
19
+ TLS_CERT_PATH: "connect.tls.certPath",
20
+ // Plaid
21
+ PLAID_CLIENT_ID: "plaid.clientId",
22
+ PLAID_SECRET: "plaid.secret",
23
+ PLAID_ENVIRONMENT: "plaid.environment",
24
+ // Gmail
25
+ GMAIL_CLIENT_ID: "gmail.clientId",
26
+ GMAIL_CLIENT_SECRET: "gmail.clientSecret",
27
+ };
28
+ /**
29
+ * Type conversion for environment variable values
30
+ */
31
+ function convertEnvValue(value, path) {
32
+ // Port number conversion
33
+ if (path.endsWith(".port")) {
34
+ const num = parseInt(value, 10);
35
+ if (isNaN(num)) {
36
+ throw new Error(`Invalid port number: ${value}`);
37
+ }
38
+ return num;
39
+ }
40
+ // Boolean conversion
41
+ if (value.toLowerCase() === "true")
42
+ return true;
43
+ if (value.toLowerCase() === "false")
44
+ return false;
45
+ // Number conversion
46
+ const num = Number(value);
47
+ if (!isNaN(num) && value !== "") {
48
+ return num;
49
+ }
50
+ // Default: string
51
+ return value;
52
+ }
53
+ /**
54
+ * Get configuration overrides from environment variables
55
+ *
56
+ * Returns a partial config object with values from environment variables.
57
+ * These values take precedence over config file values.
58
+ */
59
+ export function loadEnvOverrides() {
60
+ const overrides = {};
61
+ for (const [envVar, configPath] of Object.entries(ENV_MAPPINGS)) {
62
+ const envValue = process.env[envVar];
63
+ if (envValue !== undefined) {
64
+ // Convert path like "connect.port" to nested object
65
+ const pathParts = configPath.split(".");
66
+ let current = overrides;
67
+ for (let i = 0; i < pathParts.length - 1; i++) {
68
+ const part = pathParts[i];
69
+ if (!(part in current)) {
70
+ current[part] = {};
71
+ }
72
+ current = current[part];
73
+ }
74
+ const lastPart = pathParts[pathParts.length - 1];
75
+ current[lastPart] = convertEnvValue(envValue, configPath);
76
+ }
77
+ }
78
+ return overrides;
79
+ }
80
+ /**
81
+ * Get a specific environment variable value with type conversion
82
+ *
83
+ * @param envVar - Environment variable name
84
+ * @param configPath - Config path for type inference
85
+ * @returns The converted value or undefined if not set
86
+ */
87
+ export function getEnvValue(envVar, configPath) {
88
+ const envValue = process.env[envVar];
89
+ if (envValue === undefined) {
90
+ return undefined;
91
+ }
92
+ return convertEnvValue(envValue, configPath || envVar);
93
+ }
94
+ /**
95
+ * Check if any BillClaw-related environment variables are set
96
+ *
97
+ * Useful for determining if env var overrides are active.
98
+ */
99
+ export function hasEnvOverrides() {
100
+ for (const envVar of Object.keys(ENV_MAPPINGS)) {
101
+ if (process.env[envVar] !== undefined) {
102
+ return true;
103
+ }
104
+ }
105
+ return false;
106
+ }
107
+ /**
108
+ * Get all environment variable mappings
109
+ *
110
+ * Returns the mapping of env var names to config paths.
111
+ */
112
+ export function getEnvMappings() {
113
+ return { ...ENV_MAPPINGS };
114
+ }
115
+ //# sourceMappingURL=env-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-loader.js","sourceRoot":"","sources":["../../src/config/env-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Configuration management module
3
+ *
4
+ * Provides unified configuration management for BillClaw with:
5
+ * - Singleton ConfigManager
6
+ * - Environment variable overrides
7
+ * - File locking for concurrent access
8
+ * - Hybrid caching (TTL + mtime validation)
9
+ *
10
+ * @packageDocumentation
11
+ */
12
+ export { ConfigManager, type ConfigManagerOptions, } from "./config-manager.js";
13
+ export { loadEnvOverrides, getEnvValue, hasEnvOverrides, getEnvMappings, } from "./env-loader.js";
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,aAAa,EACb,KAAK,oBAAoB,GAC1B,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,cAAc,GACf,MAAM,iBAAiB,CAAA"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Configuration management module
3
+ *
4
+ * Provides unified configuration management for BillClaw with:
5
+ * - Singleton ConfigManager
6
+ * - Environment variable overrides
7
+ * - File locking for concurrent access
8
+ * - Hybrid caching (TTL + mtime validation)
9
+ *
10
+ * @packageDocumentation
11
+ */
12
+ export { ConfigManager, } from "./config-manager.js";
13
+ export { loadEnvOverrides, getEnvValue, hasEnvOverrides, getEnvMappings, } from "./env-loader.js";
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,aAAa,GAEd,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,cAAc,GACf,MAAM,iBAAiB,CAAA"}
package/dist/index.d.ts CHANGED
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * @packageDocumentation
8
8
  */
9
- export { Billclaw } from "./billclaw.js";
9
+ export { Billclaw, isTokenExpired } from "./billclaw.js";
10
10
  export * from "./models/index.js";
11
11
  export * from "./storage/index.js";
12
12
  export * from "./sync/index.js";
@@ -17,7 +17,10 @@ export { exportToLedger, exportStorageToLedger, transactionToLedger, getLedgerAc
17
17
  export * from "./errors/index.js";
18
18
  export * from "./credentials/index.js";
19
19
  export * from "./security/index.js";
20
+ export * from "./oauth/index.js";
20
21
  export * from "./runtime/index.js";
22
+ export * from "./config/index.js";
21
23
  export * from "./services/index.js";
24
+ export * from "./webhooks/index.js";
22
25
  export declare const VERSION: "0.0.1";
23
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAGxC,cAAc,mBAAmB,CAAA;AAGjC,cAAc,oBAAoB,CAAA;AAGlC,cAAc,iBAAiB,CAAA;AAG/B,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,eAAe,GACrB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,sBAAsB,EACtB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,eAAe,GACrB,MAAM,gCAAgC,CAAA;AAGvC,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,2BAA2B,EAC3B,KAAK,sBAAsB,GAC5B,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,EACxB,KAAK,mBAAmB,GACzB,MAAM,uBAAuB,CAAA;AAG9B,cAAc,mBAAmB,CAAA;AAGjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AAGnC,cAAc,oBAAoB,CAAA;AAGlC,cAAc,qBAAqB,CAAA;AAGnC,eAAO,MAAM,OAAO,EAAG,OAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAGxD,cAAc,mBAAmB,CAAA;AAGjC,cAAc,oBAAoB,CAAA;AAGlC,cAAc,iBAAiB,CAAA;AAG/B,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,eAAe,GACrB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,sBAAsB,EACtB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,eAAe,GACrB,MAAM,gCAAgC,CAAA;AAGvC,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,2BAA2B,EAC3B,KAAK,sBAAsB,GAC5B,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,EACxB,KAAK,mBAAmB,GACzB,MAAM,uBAAuB,CAAA;AAG9B,cAAc,mBAAmB,CAAA;AAGjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AAGnC,cAAc,kBAAkB,CAAA;AAGhC,cAAc,oBAAoB,CAAA;AAGlC,cAAc,mBAAmB,CAAA;AAGjC,cAAc,qBAAqB,CAAA;AAGnC,cAAc,qBAAqB,CAAA;AAGnC,eAAO,MAAM,OAAO,EAAG,OAAgB,CAAA"}
package/dist/index.js CHANGED
@@ -7,7 +7,7 @@
7
7
  * @packageDocumentation
8
8
  */
9
9
  // Main class
10
- export { Billclaw } from "./billclaw.js";
10
+ export { Billclaw, isTokenExpired } from "./billclaw.js";
11
11
  // Models and schemas
12
12
  export * from "./models/index.js";
13
13
  // Storage
@@ -25,10 +25,16 @@ export * from "./errors/index.js";
25
25
  // Credentials & Security
26
26
  export * from "./credentials/index.js";
27
27
  export * from "./security/index.js";
28
+ // OAuth (framework-agnostic)
29
+ export * from "./oauth/index.js";
28
30
  // Runtime abstractions
29
31
  export * from "./runtime/index.js";
32
+ // Configuration management
33
+ export * from "./config/index.js";
30
34
  // Services (event emission, webhooks)
31
35
  export * from "./services/index.js";
36
+ // Webhooks (inbound webhook processing)
37
+ export * from "./webhooks/index.js";
32
38
  // Version
33
39
  export const VERSION = "0.0.1";
34
40
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,aAAa;AACb,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,qBAAqB;AACrB,cAAc,mBAAmB,CAAA;AAEjC,UAAU;AACV,cAAc,oBAAoB,CAAA;AAElC,OAAO;AACP,cAAc,iBAAiB,CAAA;AAE/B,2DAA2D;AAC3D,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GAInB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,sBAAsB,GAOvB,MAAM,gCAAgC,CAAA;AAEvC,YAAY;AACZ,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,2BAA2B,GAE5B,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,GAEzB,MAAM,uBAAuB,CAAA;AAE9B,SAAS;AACT,cAAc,mBAAmB,CAAA;AAEjC,yBAAyB;AACzB,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AAEnC,uBAAuB;AACvB,cAAc,oBAAoB,CAAA;AAElC,sCAAsC;AACtC,cAAc,qBAAqB,CAAA;AAEnC,UAAU;AACV,MAAM,CAAC,MAAM,OAAO,GAAG,OAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,aAAa;AACb,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAExD,qBAAqB;AACrB,cAAc,mBAAmB,CAAA;AAEjC,UAAU;AACV,cAAc,oBAAoB,CAAA;AAElC,OAAO;AACP,cAAc,iBAAiB,CAAA;AAE/B,2DAA2D;AAC3D,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GAInB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,sBAAsB,GAOvB,MAAM,gCAAgC,CAAA;AAEvC,YAAY;AACZ,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,2BAA2B,GAE5B,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,GAEzB,MAAM,uBAAuB,CAAA;AAE9B,SAAS;AACT,cAAc,mBAAmB,CAAA;AAEjC,yBAAyB;AACzB,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AAEnC,6BAA6B;AAC7B,cAAc,kBAAkB,CAAA;AAEhC,uBAAuB;AACvB,cAAc,oBAAoB,CAAA;AAElC,2BAA2B;AAC3B,cAAc,mBAAmB,CAAA;AAEjC,sCAAsC;AACtC,cAAc,qBAAqB,CAAA;AAEnC,wCAAwC;AACxC,cAAc,qBAAqB,CAAA;AAEnC,UAAU;AACV,MAAM,CAAC,MAAM,OAAO,GAAG,OAAgB,CAAA"}
@@ -41,6 +41,9 @@ export declare const AccountConfigSchema: z.ZodObject<{
41
41
  gocardlessRequisitionId: z.ZodOptional<z.ZodString>;
42
42
  gocardlessAccessToken: z.ZodOptional<z.ZodString>;
43
43
  gmailEmailAddress: z.ZodOptional<z.ZodString>;
44
+ gmailAccessToken: z.ZodOptional<z.ZodString>;
45
+ gmailRefreshToken: z.ZodOptional<z.ZodString>;
46
+ gmailTokenExpiry: z.ZodOptional<z.ZodString>;
44
47
  gmailFilters: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
45
48
  }, "strip", z.ZodTypeAny, {
46
49
  type: "plaid" | "gocardless" | "gmail";
@@ -55,6 +58,9 @@ export declare const AccountConfigSchema: z.ZodObject<{
55
58
  gocardlessRequisitionId?: string | undefined;
56
59
  gocardlessAccessToken?: string | undefined;
57
60
  gmailEmailAddress?: string | undefined;
61
+ gmailAccessToken?: string | undefined;
62
+ gmailRefreshToken?: string | undefined;
63
+ gmailTokenExpiry?: string | undefined;
58
64
  gmailFilters?: string[] | undefined;
59
65
  }, {
60
66
  type: "plaid" | "gocardless" | "gmail";
@@ -69,6 +75,9 @@ export declare const AccountConfigSchema: z.ZodObject<{
69
75
  gocardlessRequisitionId?: string | undefined;
70
76
  gocardlessAccessToken?: string | undefined;
71
77
  gmailEmailAddress?: string | undefined;
78
+ gmailAccessToken?: string | undefined;
79
+ gmailRefreshToken?: string | undefined;
80
+ gmailTokenExpiry?: string | undefined;
72
81
  gmailFilters?: string[] | undefined;
73
82
  }>;
74
83
  export type AccountConfig = z.infer<typeof AccountConfigSchema>;
@@ -219,6 +228,58 @@ export declare const GmailConfigSchema: z.ZodObject<{
219
228
  billTypePatterns?: Record<string, string[]> | undefined;
220
229
  }>;
221
230
  export type GmailConfig = z.infer<typeof GmailConfigSchema>;
231
+ /**
232
+ * Connect service configuration
233
+ */
234
+ export declare const ConnectConfigSchema: z.ZodObject<{
235
+ port: z.ZodDefault<z.ZodNumber>;
236
+ host: z.ZodDefault<z.ZodString>;
237
+ /**
238
+ * Public URL for external access (required for production OAuth callbacks)
239
+ *
240
+ * Examples:
241
+ * - https://billclaw.yourdomain.com
242
+ * - https://abc123.ngrok.io (for tunneling)
243
+ *
244
+ * If not set, defaults to http://localhost:{port} for local development.
245
+ */
246
+ publicUrl: z.ZodOptional<z.ZodString>;
247
+ /**
248
+ * TLS/SSL configuration for HTTPS support
249
+ */
250
+ tls: z.ZodOptional<z.ZodDefault<z.ZodObject<{
251
+ enabled: z.ZodDefault<z.ZodBoolean>;
252
+ keyPath: z.ZodOptional<z.ZodString>;
253
+ certPath: z.ZodOptional<z.ZodString>;
254
+ }, "strip", z.ZodTypeAny, {
255
+ enabled: boolean;
256
+ keyPath?: string | undefined;
257
+ certPath?: string | undefined;
258
+ }, {
259
+ enabled?: boolean | undefined;
260
+ keyPath?: string | undefined;
261
+ certPath?: string | undefined;
262
+ }>>>;
263
+ }, "strip", z.ZodTypeAny, {
264
+ port: number;
265
+ host: string;
266
+ publicUrl?: string | undefined;
267
+ tls?: {
268
+ enabled: boolean;
269
+ keyPath?: string | undefined;
270
+ certPath?: string | undefined;
271
+ } | undefined;
272
+ }, {
273
+ port?: number | undefined;
274
+ host?: string | undefined;
275
+ publicUrl?: string | undefined;
276
+ tls?: {
277
+ enabled?: boolean | undefined;
278
+ keyPath?: string | undefined;
279
+ certPath?: string | undefined;
280
+ } | undefined;
281
+ }>;
282
+ export type ConnectConfig = z.infer<typeof ConnectConfigSchema>;
222
283
  /**
223
284
  * Sync configuration
224
285
  */
@@ -240,6 +301,7 @@ export type SyncConfig = z.infer<typeof SyncConfigSchema>;
240
301
  * Main BillClaw configuration schema
241
302
  */
242
303
  export declare const BillclawConfigSchema: z.ZodObject<{
304
+ version: z.ZodDefault<z.ZodNumber>;
243
305
  accounts: z.ZodDefault<z.ZodArray<z.ZodObject<{
244
306
  id: z.ZodString;
245
307
  type: z.ZodEnum<["plaid", "gocardless", "gmail"]>;
@@ -253,6 +315,9 @@ export declare const BillclawConfigSchema: z.ZodObject<{
253
315
  gocardlessRequisitionId: z.ZodOptional<z.ZodString>;
254
316
  gocardlessAccessToken: z.ZodOptional<z.ZodString>;
255
317
  gmailEmailAddress: z.ZodOptional<z.ZodString>;
318
+ gmailAccessToken: z.ZodOptional<z.ZodString>;
319
+ gmailRefreshToken: z.ZodOptional<z.ZodString>;
320
+ gmailTokenExpiry: z.ZodOptional<z.ZodString>;
256
321
  gmailFilters: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
257
322
  }, "strip", z.ZodTypeAny, {
258
323
  type: "plaid" | "gocardless" | "gmail";
@@ -267,6 +332,9 @@ export declare const BillclawConfigSchema: z.ZodObject<{
267
332
  gocardlessRequisitionId?: string | undefined;
268
333
  gocardlessAccessToken?: string | undefined;
269
334
  gmailEmailAddress?: string | undefined;
335
+ gmailAccessToken?: string | undefined;
336
+ gmailRefreshToken?: string | undefined;
337
+ gmailTokenExpiry?: string | undefined;
270
338
  gmailFilters?: string[] | undefined;
271
339
  }, {
272
340
  type: "plaid" | "gocardless" | "gmail";
@@ -281,6 +349,9 @@ export declare const BillclawConfigSchema: z.ZodObject<{
281
349
  gocardlessRequisitionId?: string | undefined;
282
350
  gocardlessAccessToken?: string | undefined;
283
351
  gmailEmailAddress?: string | undefined;
352
+ gmailAccessToken?: string | undefined;
353
+ gmailRefreshToken?: string | undefined;
354
+ gmailTokenExpiry?: string | undefined;
284
355
  gmailFilters?: string[] | undefined;
285
356
  }>, "many">>;
286
357
  webhooks: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -423,6 +494,54 @@ export declare const BillclawConfigSchema: z.ZodObject<{
423
494
  requireDate?: boolean | undefined;
424
495
  billTypePatterns?: Record<string, string[]> | undefined;
425
496
  }>>;
497
+ connect: z.ZodDefault<z.ZodObject<{
498
+ port: z.ZodDefault<z.ZodNumber>;
499
+ host: z.ZodDefault<z.ZodString>;
500
+ /**
501
+ * Public URL for external access (required for production OAuth callbacks)
502
+ *
503
+ * Examples:
504
+ * - https://billclaw.yourdomain.com
505
+ * - https://abc123.ngrok.io (for tunneling)
506
+ *
507
+ * If not set, defaults to http://localhost:{port} for local development.
508
+ */
509
+ publicUrl: z.ZodOptional<z.ZodString>;
510
+ /**
511
+ * TLS/SSL configuration for HTTPS support
512
+ */
513
+ tls: z.ZodOptional<z.ZodDefault<z.ZodObject<{
514
+ enabled: z.ZodDefault<z.ZodBoolean>;
515
+ keyPath: z.ZodOptional<z.ZodString>;
516
+ certPath: z.ZodOptional<z.ZodString>;
517
+ }, "strip", z.ZodTypeAny, {
518
+ enabled: boolean;
519
+ keyPath?: string | undefined;
520
+ certPath?: string | undefined;
521
+ }, {
522
+ enabled?: boolean | undefined;
523
+ keyPath?: string | undefined;
524
+ certPath?: string | undefined;
525
+ }>>>;
526
+ }, "strip", z.ZodTypeAny, {
527
+ port: number;
528
+ host: string;
529
+ publicUrl?: string | undefined;
530
+ tls?: {
531
+ enabled: boolean;
532
+ keyPath?: string | undefined;
533
+ certPath?: string | undefined;
534
+ } | undefined;
535
+ }, {
536
+ port?: number | undefined;
537
+ host?: string | undefined;
538
+ publicUrl?: string | undefined;
539
+ tls?: {
540
+ enabled?: boolean | undefined;
541
+ keyPath?: string | undefined;
542
+ certPath?: string | undefined;
543
+ } | undefined;
544
+ }>>;
426
545
  }, "strip", z.ZodTypeAny, {
427
546
  plaid: {
428
547
  environment: "sandbox" | "development" | "production";
@@ -430,6 +549,7 @@ export declare const BillclawConfigSchema: z.ZodObject<{
430
549
  clientId?: string | undefined;
431
550
  webhookUrl?: string | undefined;
432
551
  };
552
+ version: number;
433
553
  accounts: {
434
554
  type: "plaid" | "gocardless" | "gmail";
435
555
  id: string;
@@ -443,6 +563,9 @@ export declare const BillclawConfigSchema: z.ZodObject<{
443
563
  gocardlessRequisitionId?: string | undefined;
444
564
  gocardlessAccessToken?: string | undefined;
445
565
  gmailEmailAddress?: string | undefined;
566
+ gmailAccessToken?: string | undefined;
567
+ gmailRefreshToken?: string | undefined;
568
+ gmailTokenExpiry?: string | undefined;
446
569
  gmailFilters?: string[] | undefined;
447
570
  }[];
448
571
  webhooks: {
@@ -469,6 +592,16 @@ export declare const BillclawConfigSchema: z.ZodObject<{
469
592
  defaultFrequency: "realtime" | "hourly" | "daily" | "weekly" | "manual";
470
593
  retryOnFailure: boolean;
471
594
  };
595
+ connect: {
596
+ port: number;
597
+ host: string;
598
+ publicUrl?: string | undefined;
599
+ tls?: {
600
+ enabled: boolean;
601
+ keyPath?: string | undefined;
602
+ certPath?: string | undefined;
603
+ } | undefined;
604
+ };
472
605
  gocardless?: {
473
606
  environment: "sandbox" | "live";
474
607
  accessToken?: string | undefined;
@@ -508,6 +641,7 @@ export declare const BillclawConfigSchema: z.ZodObject<{
508
641
  requireDate?: boolean | undefined;
509
642
  billTypePatterns?: Record<string, string[]> | undefined;
510
643
  } | undefined;
644
+ version?: number | undefined;
511
645
  accounts?: {
512
646
  type: "plaid" | "gocardless" | "gmail";
513
647
  id: string;
@@ -521,6 +655,9 @@ export declare const BillclawConfigSchema: z.ZodObject<{
521
655
  gocardlessRequisitionId?: string | undefined;
522
656
  gocardlessAccessToken?: string | undefined;
523
657
  gmailEmailAddress?: string | undefined;
658
+ gmailAccessToken?: string | undefined;
659
+ gmailRefreshToken?: string | undefined;
660
+ gmailTokenExpiry?: string | undefined;
524
661
  gmailFilters?: string[] | undefined;
525
662
  }[] | undefined;
526
663
  webhooks?: {
@@ -547,6 +684,16 @@ export declare const BillclawConfigSchema: z.ZodObject<{
547
684
  defaultFrequency?: "realtime" | "hourly" | "daily" | "weekly" | "manual" | undefined;
548
685
  retryOnFailure?: boolean | undefined;
549
686
  } | undefined;
687
+ connect?: {
688
+ port?: number | undefined;
689
+ host?: string | undefined;
690
+ publicUrl?: string | undefined;
691
+ tls?: {
692
+ enabled?: boolean | undefined;
693
+ keyPath?: string | undefined;
694
+ certPath?: string | undefined;
695
+ } | undefined;
696
+ } | undefined;
550
697
  }>;
551
698
  export type BillclawConfig = z.infer<typeof BillclawConfigSchema>;
552
699
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/models/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;GAEG;AACH,eAAO,MAAM,iBAAiB,6CAA2C,CAAA;AACzE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D;;GAEG;AACH,eAAO,MAAM,mBAAmB,gEAM9B,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE/D;;GAEG;AACH,eAAO,MAAM,sBAAsB,qDAIjC,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAErE;;GAEG;AACH,eAAO,MAAM,sBAAsB,6MAWjC,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAErE;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiB9B,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE/D;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkB9B,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE/D;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW9B,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE/D;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EAK5B,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;EAGjC,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAErE;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe5B,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;EAI3B,CAAA;AACF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAEzD;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkB/B,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/models/config.ts"],"names":[],"mappings":"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"}
@@ -61,6 +61,9 @@ export const AccountConfigSchema = z.object({
61
61
  gocardlessAccessToken: z.string().optional(),
62
62
  // Gmail-specific
63
63
  gmailEmailAddress: z.string().email().optional(),
64
+ gmailAccessToken: z.string().optional(),
65
+ gmailRefreshToken: z.string().optional(),
66
+ gmailTokenExpiry: z.string().optional(), // ISO timestamp
64
67
  gmailFilters: z.array(z.string()).optional(),
65
68
  });
66
69
  /**
@@ -135,6 +138,34 @@ export const GmailConfigSchema = z.object({
135
138
  // Custom bill type patterns
136
139
  billTypePatterns: z.record(z.array(z.string())).optional(),
137
140
  });
141
+ /**
142
+ * Connect service configuration
143
+ */
144
+ export const ConnectConfigSchema = z.object({
145
+ port: z.number().int().min(1).max(65535).default(4456),
146
+ host: z.string().default("localhost"),
147
+ /**
148
+ * Public URL for external access (required for production OAuth callbacks)
149
+ *
150
+ * Examples:
151
+ * - https://billclaw.yourdomain.com
152
+ * - https://abc123.ngrok.io (for tunneling)
153
+ *
154
+ * If not set, defaults to http://localhost:{port} for local development.
155
+ */
156
+ publicUrl: z.string().url().optional(),
157
+ /**
158
+ * TLS/SSL configuration for HTTPS support
159
+ */
160
+ tls: z
161
+ .object({
162
+ enabled: z.boolean().default(false),
163
+ keyPath: z.string().optional(),
164
+ certPath: z.string().optional(),
165
+ })
166
+ .default({ enabled: false })
167
+ .optional(),
168
+ });
138
169
  /**
139
170
  * Sync configuration
140
171
  */
@@ -147,6 +178,7 @@ export const SyncConfigSchema = z.object({
147
178
  * Main BillClaw configuration schema
148
179
  */
149
180
  export const BillclawConfigSchema = z.object({
181
+ version: z.number().default(1),
150
182
  accounts: z.array(AccountConfigSchema).default([]),
151
183
  webhooks: z.array(WebhookConfigSchema).default([]),
152
184
  storage: StorageConfigSchema.default({
@@ -164,5 +196,9 @@ export const BillclawConfigSchema = z.object({
164
196
  }),
165
197
  gocardless: GoCardlessConfigSchema.optional(),
166
198
  gmail: GmailConfigSchema.optional(),
199
+ connect: ConnectConfigSchema.default({
200
+ port: 4456,
201
+ host: "localhost",
202
+ }),
167
203
  });
168
204
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/models/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/models/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,CAAA;AAGzE;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC;IACxC,UAAU;IACV,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,QAAQ;CACT,CAAC,CAAA;AAGF;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC3C,SAAS;IACT,aAAa;IACb,YAAY;CACb,CAAC,CAAA;AAGF;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC3C,iBAAiB;IACjB,qBAAqB;IACrB,qBAAqB;IACrB,cAAc;IACd,gBAAgB;IAChB,aAAa;IACb,mBAAmB;IACnB,sBAAsB;IACtB,eAAe;IACf,cAAc;CACf,CAAC,CAAA;AAGF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACnC,aAAa,EAAE,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC;IACnD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC9D,iBAAiB;IACjB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,sBAAsB;IACtB,uBAAuB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9C,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5C,iBAAiB;IACjB,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;IAChD,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,gBAAgB;IACzD,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAA;AAGF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACnC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAChC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,WAAW,EAAE,CAAC;SACX,MAAM,CAAC;QACN,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QACnD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;KACjD,CAAC;SACD,OAAO,CAAC;QACP,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,KAAK;KAChB,CAAC;IACJ,MAAM,EAAE,CAAC;SACN,KAAK,CAAC,sBAAsB,CAAC;SAC7B,OAAO,CAAC,CAAC,iBAAiB,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;CAChE,CAAC,CAAA;AAGF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC;IACvC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACvD,UAAU,EAAE,CAAC;SACV,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC/B,CAAC;SACD,OAAO,CAAC;QACP,OAAO,EAAE,KAAK;KACf,CAAC;CACL,CAAC,CAAA;AAGF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,WAAW,EAAE,sBAAsB,CAAC,OAAO,CAAC,SAAS,CAAC;IACtD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAA;AAGF;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;CAC5D,CAAC,CAAA;AAGF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAChD,QAAQ,EAAE,CAAC;SACR,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,OAAO,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAC1E,oBAAoB;IACpB,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IAC1D,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACzC,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACvC,4BAA4B;IAC5B,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC3D,CAAC,CAAA;AAGF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACtD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;IACrC;;;;;;;;OAQG;IACH,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACtC;;OAEG;IACH,GAAG,EAAE,CAAC;SACH,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAChC,CAAC;SACD,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;SAC3B,QAAQ,EAAE;CACd,CAAC,CAAA;AAGF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,gBAAgB,EAAE,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC;IACtD,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACzC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;CAC/C,CAAC,CAAA;AAGF;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAClD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAClD,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC;QACnC,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;KAC/B,CAAC;IACF,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC;QAC7B,gBAAgB,EAAE,OAAO;QACzB,cAAc,EAAE,IAAI;QACpB,UAAU,EAAE,CAAC;KACd,CAAC;IACF,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC;QAC/B,WAAW,EAAE,SAAS;KACvB,CAAC;IACF,UAAU,EAAE,sBAAsB,CAAC,QAAQ,EAAE;IAC7C,KAAK,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IACnC,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC;QACnC,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,WAAW;KAClB,CAAC;CACH,CAAC,CAAA"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Framework-agnostic OAuth module
3
+ *
4
+ * This module provides OAuth handlers for various financial data providers.
5
+ * All handlers are independent of any specific runtime framework.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ export type { PlaidConfig, GmailOAuthConfig, OAuthConfig, PlaidLinkTokenResult, PlaidTokenExchangeResult, PlaidOAuthResult, GmailAuthUrlResult, GmailTokenResult, GmailOAuthResult, OAuthContext, OAuthHandlerOptions, } from "./types.js";
10
+ export { createLinkToken, exchangePublicToken, plaidOAuthHandler, } from "./providers/plaid.js";
11
+ export { cleanupExpiredStates, generateAuthorizationUrl, exchangeCodeForToken, gmailOAuthHandler, refreshGmailToken, } from "./providers/gmail.js";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/oauth/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,oBAAoB,EACpB,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,GACpB,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,sBAAsB,CAAA;AAG7B,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,sBAAsB,CAAA"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Framework-agnostic OAuth module
3
+ *
4
+ * This module provides OAuth handlers for various financial data providers.
5
+ * All handlers are independent of any specific runtime framework.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ // Plaid
10
+ export { createLinkToken, exchangePublicToken, plaidOAuthHandler, } from "./providers/plaid.js";
11
+ // Gmail
12
+ export { cleanupExpiredStates, generateAuthorizationUrl, exchangeCodeForToken, gmailOAuthHandler, refreshGmailToken, } from "./providers/gmail.js";
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/oauth/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAiBH,QAAQ;AACR,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,sBAAsB,CAAA;AAE7B,QAAQ;AACR,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,sBAAsB,CAAA"}