sqlew 5.0.0 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/backend/backend-factory.js +1 -1
  3. package/dist/backend/backend-factory.js.map +1 -1
  4. package/dist/saas-connector/auth/auth-manager.d.ts.map +1 -0
  5. package/dist/saas-connector/auth/auth-manager.js +13 -0
  6. package/dist/saas-connector/auth/auth-manager.js.map +1 -0
  7. package/{saas-connector/dist → dist/saas-connector}/backend/saas-backend.d.ts +1 -1
  8. package/dist/saas-connector/backend/saas-backend.d.ts.map +1 -0
  9. package/dist/saas-connector/backend/saas-backend.js +71 -0
  10. package/dist/saas-connector/backend/saas-backend.js.map +1 -0
  11. package/{saas-connector/dist → dist/saas-connector}/client/http-client.d.ts +2 -2
  12. package/dist/saas-connector/client/http-client.d.ts.map +1 -0
  13. package/dist/saas-connector/client/http-client.js +196 -0
  14. package/dist/saas-connector/client/http-client.js.map +1 -0
  15. package/dist/saas-connector/client/types.d.ts.map +1 -0
  16. package/dist/saas-connector/client/types.js +2 -0
  17. package/dist/saas-connector/client/types.js.map +1 -0
  18. package/dist/saas-connector/config/constants.d.ts.map +1 -0
  19. package/dist/saas-connector/config/constants.js +37 -0
  20. package/dist/saas-connector/config/constants.js.map +1 -0
  21. package/dist/saas-connector/errors/api-error.d.ts.map +1 -0
  22. package/dist/saas-connector/errors/api-error.js +38 -0
  23. package/dist/saas-connector/errors/api-error.js.map +1 -0
  24. package/{saas-connector/dist → dist/saas-connector}/index.d.ts +4 -4
  25. package/dist/saas-connector/index.d.ts.map +1 -0
  26. package/dist/saas-connector/index.js +20 -0
  27. package/dist/saas-connector/index.js.map +1 -0
  28. package/package.json +1 -4
  29. package/saas-connector/LICENSE +0 -190
  30. package/saas-connector/README.md +0 -122
  31. package/saas-connector/dist/auth/auth-manager.d.ts.map +0 -1
  32. package/saas-connector/dist/auth/auth-manager.js +0 -39
  33. package/saas-connector/dist/auth/auth-manager.js.map +0 -7
  34. package/saas-connector/dist/backend/saas-backend.d.ts.map +0 -1
  35. package/saas-connector/dist/backend/saas-backend.js +0 -104
  36. package/saas-connector/dist/backend/saas-backend.js.map +0 -7
  37. package/saas-connector/dist/client/http-client.d.ts.map +0 -1
  38. package/saas-connector/dist/client/http-client.js +0 -226
  39. package/saas-connector/dist/client/http-client.js.map +0 -7
  40. package/saas-connector/dist/client/types.d.ts.map +0 -1
  41. package/saas-connector/dist/client/types.js +0 -17
  42. package/saas-connector/dist/client/types.js.map +0 -7
  43. package/saas-connector/dist/config/constants.d.ts.map +0 -1
  44. package/saas-connector/dist/config/constants.js +0 -68
  45. package/saas-connector/dist/config/constants.js.map +0 -7
  46. package/saas-connector/dist/errors/api-error.d.ts.map +0 -1
  47. package/saas-connector/dist/errors/api-error.js +0 -62
  48. package/saas-connector/dist/errors/api-error.js.map +0 -7
  49. package/saas-connector/dist/index.d.ts.map +0 -1
  50. package/saas-connector/dist/index.js +0 -51
  51. package/saas-connector/dist/index.js.map +0 -7
  52. package/saas-connector/package-lock.json +0 -518
  53. package/saas-connector/package.json +0 -34
  54. /package/{saas-connector/dist → dist/saas-connector}/auth/auth-manager.d.ts +0 -0
  55. /package/{saas-connector/dist → dist/saas-connector}/client/types.d.ts +0 -0
  56. /package/{saas-connector/dist → dist/saas-connector}/config/constants.d.ts +0 -0
  57. /package/{saas-connector/dist → dist/saas-connector}/errors/api-error.d.ts +0 -0
package/CHANGELOG.md CHANGED
@@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ---
9
9
 
10
+ ## [5.0.1] - 2026-02-02
11
+
12
+ ### Changed
13
+
14
+ **🔒 Security: saas-connector submodule integration (Issue #84)**
15
+
16
+ - Integrated saas-connector submodule directly into `src/saas-connector/`
17
+ - Removed `prebuild` script that triggered npm package scanner alerts
18
+ - Converted saas-connector from CommonJS to ESM for unified tsc build
19
+ - Eliminated separate esbuild step and `npm install` in subdirectory
20
+ - No functional changes - same SaaS backend behavior
21
+
22
+ **Rationale**: The `prebuild` script (`cd saas-connector && npm install && npm run build`) was flagged by npm security scanners as a potential risk. While the code itself was safe, the submodule architecture created unnecessary complexity and security perception issues.
23
+
24
+ ---
25
+
10
26
  ## [5.0.0] - 2026-01-31
11
27
 
12
28
  ### Added
@@ -7,7 +7,7 @@
7
7
  import { CLOUD_ENV_VARS } from '../config/types.js';
8
8
  import { LocalBackend } from './local-backend.js';
9
9
  import { TransformingBackend } from './transforming-backend.js';
10
- import { createBackend as createSaaSBackend, resolveProject, } from '@sqlew/saas-connector';
10
+ import { createBackend as createSaaSBackend, resolveProject, } from '../saas-connector/index.js';
11
11
  import { debugLog } from '../utils/debug-logger.js';
12
12
  import { loadCloudConfigFromGlobal, checkEnvFilePermissions, loadCachedProjectId, saveCachedProjectId, } from '../config/cloud-config-loader.js';
13
13
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"backend-factory.js","sourceRoot":"","sources":["../../src/backend/backend-factory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EACL,aAAa,IAAI,iBAAiB,EAClC,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,kCAAkC,CAAC;AAE1C;;GAEG;AACH,IAAI,aAAa,GAAuB,IAAI,CAAC;AAC7C,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,MAAmB;IAC7C,OAAO,MAAM,CAAC,QAAQ,EAAE,IAAI,KAAK,OAAO,CAAC;AAC3C,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,WAAoB;IACxD,iDAAiD;IACjD,MAAM,SAAS,GAAG,uBAAuB,EAAE,CAAC;IAC5C,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,OAAO,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,gEAAgE;IAChE,MAAM,UAAU,GAAG,yBAAyB,CAAC,WAAW,CAAC,CAAC;IAC1D,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4CAA4C;IAC5C,IAAI,SAA6B,CAAC;IAClC,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;QAC3B,iBAAiB;QACjB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC7D,IAAI,QAAQ,EAAE,CAAC;YACb,SAAS,GAAG,QAAQ,CAAC;YACrB,QAAQ,CAAC,MAAM,EAAE,yBAAyB,EAAE,EAAE,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;QACvF,CAAC;aAAM,CAAC;YACN,qBAAqB;YACrB,IAAI,CAAC;gBACH,QAAQ,CAAC,MAAM,EAAE,8BAA8B,EAAE,EAAE,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;gBAC1F,SAAS,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;gBAC5E,0BAA0B;gBAC1B,mBAAmB,CAAC,UAAU,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBACvD,QAAQ,CAAC,MAAM,EAAE,gCAAgC,EAAE,EAAE,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;YAC9F,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,qCAAqC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC5G,0DAA0D;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,GAAG,UAAU;QACb,SAAS;KACV,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAA0B;IAC5D,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,OAAO,6BAA6B,CAAC,CAAC;QACpE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAClC,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,OAAO,6BAA6B,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;AAChD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAmB,EAAE,WAAoB;IAC3E,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,kEAAkE;QAClE,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAEpD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAChD,CAAC;QAED,wDAAwD;QACxD,qEAAqE;QACrE,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,iBAAiB,CAAC,WAAY,CAAC,CAAC;YACpD,OAAO,IAAI,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,OAAO,IAAI,YAAY,EAAE,CAAC;AAC5B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAmB,EAAE,WAAoB;IAC/E,IAAI,WAAW,IAAI,aAAa,EAAE,CAAC;QACjC,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,aAAa,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACzD,WAAW,GAAG,IAAI,CAAC;IAEnB,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,KAAK,MAAM;QACnD,CAAC,CAAC,SAAS,aAAa,CAAC,UAAU,IAAI,gBAAgB,GAAG;QAC1D,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,qBAAqB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE5D,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;QACzE,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;IACrC,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,aAAa,EAAE,WAAW,IAAI,IAAI,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,aAAa,CAAC,UAAU,EAAE,CAAC;QACjC,aAAa,GAAG,IAAI,CAAC;IACvB,CAAC;IACD,WAAW,GAAG,KAAK,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"backend-factory.js","sourceRoot":"","sources":["../../src/backend/backend-factory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-manager.d.ts","sourceRoot":"","sources":["../../../src/saas-connector/auth/auth-manager.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAW;IACV,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAMlC,sBAAsB,IAAI,MAAM;CAGjC"}
@@ -0,0 +1,13 @@
1
+ export class AuthManager {
2
+ apiKey;
3
+ constructor(apiKey) {
4
+ this.apiKey = apiKey;
5
+ if (!apiKey || apiKey.trim() === '') {
6
+ throw new Error('API key is required');
7
+ }
8
+ }
9
+ getAuthorizationHeader() {
10
+ return `Bearer ${this.apiKey}`;
11
+ }
12
+ }
13
+ //# sourceMappingURL=auth-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-manager.js","sourceRoot":"","sources":["../../../src/saas-connector/auth/auth-manager.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,WAAW;IACF;IAApB,YAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QAChC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,sBAAsB;QACpB,OAAO,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC;IACjC,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import type { CloudConfig, ToolBackend, HealthCheckResult } from '../client/types';
1
+ import type { CloudConfig, ToolBackend, HealthCheckResult } from '../client/types.js';
2
2
  export declare class SaaSBackend implements ToolBackend {
3
3
  readonly backendType: "saas";
4
4
  readonly pluginName = "saas-connector";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"saas-backend.d.ts","sourceRoot":"","sources":["../../../src/saas-connector/backend/saas-backend.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAE5B,qBAAa,WAAY,YAAW,WAAW;IAC7C,QAAQ,CAAC,WAAW,EAAG,MAAM,CAAU;IACvC,QAAQ,CAAC,UAAU,oBAAoB;IAEvC,OAAO,CAAC,UAAU,CAAa;gBAEnB,MAAM,EAAE,WAAW;IAUzB,OAAO,CAAC,CAAC,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,CAAC,CAAC;IA2Bb;;;OAGG;IACH,OAAO,CAAC,eAAe;IAkBjB,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAiBzC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAGjC"}
@@ -0,0 +1,71 @@
1
+ import { HttpClient } from '../client/http-client.js';
2
+ import { AuthManager } from '../auth/auth-manager.js';
3
+ import { ApiError } from '../errors/api-error.js';
4
+ import { SUPPORTED_TOOLS, isLocalOnlyAction } from '../config/constants.js';
5
+ export class SaaSBackend {
6
+ backendType = 'saas';
7
+ pluginName = 'saas-connector';
8
+ httpClient;
9
+ constructor(config) {
10
+ const authManager = new AuthManager(config.apiKey);
11
+ this.httpClient = new HttpClient(authManager, config.projectName, config.projectId, config.connectionIdentity);
12
+ }
13
+ async execute(tool, action, params) {
14
+ // Check if this action should be handled locally (no DB access required)
15
+ if (isLocalOnlyAction(tool, action)) {
16
+ throw new ApiError('LOCAL_ONLY_ACTION', `Action '${tool}.${action}' should be handled locally (no DB access required)`, 200 // Not an error, just a signal to fallback
17
+ );
18
+ }
19
+ // Validate supported tools
20
+ if (!SUPPORTED_TOOLS.includes(tool)) {
21
+ throw new ApiError('UNSUPPORTED_TOOL', `Tool '${tool}' is not supported in SaaS mode. Supported tools: ${SUPPORTED_TOOLS.join(', ')}`, 400);
22
+ }
23
+ // Normalize params for SaaS API compatibility
24
+ const normalizedParams = this.normalizeParams(tool, action, params);
25
+ // Call SaaS API
26
+ const endpoint = `/api/v1/${tool}/${action}`;
27
+ return await this.httpClient.post(endpoint, normalizedParams);
28
+ }
29
+ /**
30
+ * Normalize params for SaaS API compatibility
31
+ * Maps client param names to SaaS API expected names
32
+ */
33
+ normalizeParams(tool, action, params) {
34
+ const result = { ...params };
35
+ // constraint.deactivate/activate: constraint_id → id
36
+ if (tool === 'constraint' && (action === 'deactivate' || action === 'activate')) {
37
+ if ('constraint_id' in result && !('id' in result)) {
38
+ result.id = result.constraint_id;
39
+ delete result.constraint_id;
40
+ }
41
+ }
42
+ return result;
43
+ }
44
+ async healthCheck() {
45
+ const start = Date.now();
46
+ try {
47
+ await this.httpClient.get('/health');
48
+ return {
49
+ ok: true,
50
+ latency: Date.now() - start,
51
+ };
52
+ }
53
+ catch (error) {
54
+ return {
55
+ ok: false,
56
+ latency: Date.now() - start,
57
+ message: error instanceof Error ? error.message : String(error),
58
+ };
59
+ }
60
+ }
61
+ async disconnect() {
62
+ // HTTP client doesn't need explicit disconnect
63
+ }
64
+ /**
65
+ * Set agent name for X-Agent header (called after MCP handshake)
66
+ */
67
+ setAgentName(name) {
68
+ this.httpClient.setAgentName(name);
69
+ }
70
+ }
71
+ //# sourceMappingURL=saas-backend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"saas-backend.js","sourceRoot":"","sources":["../../../src/saas-connector/backend/saas-backend.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { AuthManager } from '../auth/auth-manager';
2
- import type { ConnectionIdentity } from './types';
1
+ import { AuthManager } from '../auth/auth-manager.js';
2
+ import type { ConnectionIdentity } from './types.js';
3
3
  export declare class HttpClient {
4
4
  private authManager;
5
5
  private projectName?;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../../src/saas-connector/client/http-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAStD,OAAO,KAAK,EAAe,kBAAkB,EAA0B,MAAM,YAAY,CAAC;AAE1F,qBAAa,UAAU;IAInB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,WAAW,CAAC;IACpB,OAAO,CAAC,SAAS,CAAC;IAClB,OAAO,CAAC,kBAAkB,CAAC;IAN7B,OAAO,CAAC,SAAS,CAAC,CAAS;gBAGjB,WAAW,EAAE,WAAW,EACxB,WAAW,CAAC,EAAE,MAAM,YAAA,EACpB,SAAS,CAAC,EAAE,MAAM,YAAA,EAClB,kBAAkB,CAAC,EAAE,kBAAkB,YAAA;IAGjD;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI1B,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAuChE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;YAwBxB,gBAAgB;YAuChB,cAAc;IA4C5B,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,KAAK;CAGd;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,CAoDjB"}
@@ -0,0 +1,196 @@
1
+ import { ApiError } from '../errors/api-error.js';
2
+ import { API_ENDPOINT, MAX_RETRIES, INITIAL_RETRY_DELAY, MAX_RETRY_DELAY, REQUEST_TIMEOUT, } from '../config/constants.js';
3
+ export class HttpClient {
4
+ authManager;
5
+ projectName;
6
+ projectId;
7
+ connectionIdentity;
8
+ agentName;
9
+ constructor(authManager, projectName, projectId, connectionIdentity) {
10
+ this.authManager = authManager;
11
+ this.projectName = projectName;
12
+ this.projectId = projectId;
13
+ this.connectionIdentity = connectionIdentity;
14
+ }
15
+ /**
16
+ * Set agent name for X-Agent header (called after MCP handshake)
17
+ */
18
+ setAgentName(name) {
19
+ this.agentName = name;
20
+ }
21
+ async post(path, body) {
22
+ const url = `${API_ENDPOINT}${path}`;
23
+ const requestBody = {
24
+ project_id: this.projectId,
25
+ project_name: this.projectName,
26
+ // Connection identification for seat-based billing (v5.0.0+)
27
+ ...(this.connectionIdentity && {
28
+ connection_hash: this.connectionIdentity.connectionHash,
29
+ connection_display: {
30
+ environment: this.connectionIdentity.environment,
31
+ path_suffix: this.connectionIdentity.pathSuffix,
32
+ },
33
+ }),
34
+ ...body,
35
+ };
36
+ return await this.executeWithRetry(async () => {
37
+ const controller = new AbortController();
38
+ const timeoutId = setTimeout(() => controller.abort(), REQUEST_TIMEOUT);
39
+ try {
40
+ const response = await fetch(url, {
41
+ method: 'POST',
42
+ headers: {
43
+ Authorization: this.authManager.getAuthorizationHeader(),
44
+ 'Content-Type': 'application/json',
45
+ ...(this.agentName && { 'X-Agent': this.agentName }),
46
+ },
47
+ body: JSON.stringify(requestBody),
48
+ signal: controller.signal,
49
+ });
50
+ return await this.handleResponse(response);
51
+ }
52
+ finally {
53
+ clearTimeout(timeoutId);
54
+ }
55
+ });
56
+ }
57
+ async get(path) {
58
+ const url = `${API_ENDPOINT}${path}`;
59
+ return await this.executeWithRetry(async () => {
60
+ const controller = new AbortController();
61
+ const timeoutId = setTimeout(() => controller.abort(), REQUEST_TIMEOUT);
62
+ try {
63
+ const response = await fetch(url, {
64
+ method: 'GET',
65
+ headers: {
66
+ Authorization: this.authManager.getAuthorizationHeader(),
67
+ ...(this.agentName && { 'X-Agent': this.agentName }),
68
+ },
69
+ signal: controller.signal,
70
+ });
71
+ return await this.handleResponse(response);
72
+ }
73
+ finally {
74
+ clearTimeout(timeoutId);
75
+ }
76
+ });
77
+ }
78
+ async executeWithRetry(operation, retryCount = 0) {
79
+ try {
80
+ return await operation();
81
+ }
82
+ catch (error) {
83
+ // Handle abort error (timeout)
84
+ if (error instanceof Error && error.name === 'AbortError') {
85
+ throw new ApiError('TIMEOUT', 'Request timed out', 408);
86
+ }
87
+ // Handle network errors
88
+ if (error instanceof TypeError && error.message.includes('fetch')) {
89
+ throw new ApiError('NETWORK_ERROR', `Network error: ${error.message}`, 0);
90
+ }
91
+ // Retry only on 429 (rate limited)
92
+ if (error instanceof ApiError &&
93
+ error.statusCode === 429 &&
94
+ retryCount < MAX_RETRIES) {
95
+ const delay = this.calculateRetryDelay(retryCount, error.details?.retryAfter);
96
+ await this.sleep(delay);
97
+ return this.executeWithRetry(operation, retryCount + 1);
98
+ }
99
+ throw error;
100
+ }
101
+ }
102
+ async handleResponse(response) {
103
+ // Try to parse response body
104
+ let body;
105
+ try {
106
+ body = (await response.json());
107
+ }
108
+ catch {
109
+ // If response is not JSON
110
+ if (!response.ok) {
111
+ throw new ApiError('INTERNAL_ERROR', `HTTP ${response.status}: ${response.statusText}`, response.status);
112
+ }
113
+ throw new ApiError('INVALID_RESPONSE', 'Invalid JSON response from server', 500);
114
+ }
115
+ // Handle HTTP errors
116
+ if (!response.ok) {
117
+ const retryAfter = response.headers.get('Retry-After');
118
+ throw new ApiError(body.error?.code || 'UNKNOWN_ERROR', body.error?.message || `HTTP ${response.status}`, response.status, retryAfter ? { retryAfter } : undefined);
119
+ }
120
+ // Handle API-level errors
121
+ if (!body.success) {
122
+ throw new ApiError(body.error?.code || 'API_ERROR', body.error?.message || 'Unknown API error', 500);
123
+ }
124
+ return body.data;
125
+ }
126
+ calculateRetryDelay(retryCount, retryAfter) {
127
+ // Use Retry-After header if available
128
+ if (retryAfter) {
129
+ const seconds = parseInt(retryAfter, 10);
130
+ if (!isNaN(seconds) && seconds > 0) {
131
+ return Math.min(seconds * 1000, MAX_RETRY_DELAY);
132
+ }
133
+ }
134
+ // Exponential backoff: 1s, 2s, 4s, ...
135
+ return Math.min(INITIAL_RETRY_DELAY * Math.pow(2, retryCount), MAX_RETRY_DELAY);
136
+ }
137
+ sleep(ms) {
138
+ return new Promise((resolve) => setTimeout(resolve, ms));
139
+ }
140
+ }
141
+ /**
142
+ * Resolve project name to UUID via /api/v1/project/resolve
143
+ *
144
+ * This is a standalone function used before HttpClient is fully initialized,
145
+ * since we need the projectId to construct HttpClient.
146
+ *
147
+ * @param apiKey - API key for authentication
148
+ * @param projectName - Project name from config.toml
149
+ * @returns Resolved project UUID
150
+ * @throws ApiError on authentication or resolution failure
151
+ */
152
+ export async function resolveProject(apiKey, projectName) {
153
+ const url = `${API_ENDPOINT}/api/v1/project/resolve`;
154
+ const controller = new AbortController();
155
+ const timeoutId = setTimeout(() => controller.abort(), REQUEST_TIMEOUT);
156
+ try {
157
+ const response = await fetch(url, {
158
+ method: 'POST',
159
+ headers: {
160
+ Authorization: `Bearer ${apiKey}`,
161
+ 'Content-Type': 'application/json',
162
+ },
163
+ body: JSON.stringify({ project_name: projectName }),
164
+ signal: controller.signal,
165
+ });
166
+ if (!response.ok) {
167
+ let errorMessage = `HTTP ${response.status}: ${response.statusText}`;
168
+ try {
169
+ const body = (await response.json());
170
+ errorMessage = body.error?.message || errorMessage;
171
+ }
172
+ catch {
173
+ // Ignore JSON parse error
174
+ }
175
+ throw new ApiError('PROJECT_RESOLVE_FAILED', errorMessage, response.status);
176
+ }
177
+ const body = (await response.json());
178
+ if (!body.success || !body.data?.project_id) {
179
+ throw new ApiError('PROJECT_RESOLVE_FAILED', body.error?.message || 'Failed to resolve project', 500);
180
+ }
181
+ return body.data.project_id;
182
+ }
183
+ catch (error) {
184
+ if (error instanceof ApiError) {
185
+ throw error;
186
+ }
187
+ if (error instanceof Error && error.name === 'AbortError') {
188
+ throw new ApiError('TIMEOUT', 'Project resolve request timed out', 408);
189
+ }
190
+ throw new ApiError('NETWORK_ERROR', `Failed to resolve project: ${error instanceof Error ? error.message : String(error)}`, 0);
191
+ }
192
+ finally {
193
+ clearTimeout(timeoutId);
194
+ }
195
+ }
196
+ //# sourceMappingURL=http-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../../src/saas-connector/client/http-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/saas-connector/client/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,OAAO,GACP,OAAO,GACP,KAAK,GACL,QAAQ,GACR,SAAS,CAAC;AAEd;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,oEAAoE;IACpE,cAAc,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,WAAW,EAAE,WAAW,CAAC;IACzB,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAG3C,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,SAAS,GAAG,OAAO,EACzB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,SAAS,CAAC,CAAC;IACtB,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC1C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAGD,MAAM,WAAW,YAAY;IAC3B,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAAC;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/saas-connector/client/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/saas-connector/config/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,yBAAyB,CAAC;AAGnD,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,mBAAmB,OAAO,CAAC;AACxC,eAAO,MAAM,eAAe,QAAQ,CAAC;AACrC,eAAO,MAAM,eAAe,QAAQ,CAAC;AAIrC,eAAO,MAAM,eAAe,gDAIlB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAI7D,eAAO,MAAM,kBAAkB,mLAYrB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAEvE"}
@@ -0,0 +1,37 @@
1
+ // API endpoint is determined at build time for security
2
+ // OSS side cannot modify this value
3
+ export const API_ENDPOINT = 'https://api.sqlew.io';
4
+ // Retry configuration
5
+ export const MAX_RETRIES = 3;
6
+ export const INITIAL_RETRY_DELAY = 1000; // 1 second
7
+ export const MAX_RETRY_DELAY = 30000; // 30 seconds
8
+ export const REQUEST_TIMEOUT = 30000; // 30 seconds
9
+ // Supported tools for SaaS backend
10
+ // help, example, use_case are handled locally (TOML files, no DB access)
11
+ export const SUPPORTED_TOOLS = [
12
+ 'decision',
13
+ 'constraint',
14
+ 'suggest',
15
+ ];
16
+ // Actions that should be handled locally (no DB access required)
17
+ // Format: "tool.action"
18
+ export const LOCAL_ONLY_ACTIONS = [
19
+ // decision - TOML/hardcoded help
20
+ 'decision.help',
21
+ 'decision.example',
22
+ 'decision.use_case',
23
+ // constraint - plan TOML cache + help
24
+ 'constraint.suggest_pending',
25
+ 'constraint.help',
26
+ 'constraint.example',
27
+ 'constraint.use_case',
28
+ // suggest - help only
29
+ 'suggest.help',
30
+ ];
31
+ /**
32
+ * Check if a tool.action combination should be handled locally
33
+ */
34
+ export function isLocalOnlyAction(tool, action) {
35
+ return LOCAL_ONLY_ACTIONS.includes(`${tool}.${action}`);
36
+ }
37
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/saas-connector/config/constants.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,oCAAoC;AACpC,MAAM,CAAC,MAAM,YAAY,GAAG,sBAAsB,CAAC;AAEnD,sBAAsB;AACtB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC;AAC7B,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,CAAC,WAAW;AACpD,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,aAAa;AACnD,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,aAAa;AAEnD,mCAAmC;AACnC,yEAAyE;AACzE,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,UAAU;IACV,YAAY;IACZ,SAAS;CACD,CAAC;AAIX,iEAAiE;AACjE,wBAAwB;AACxB,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,iCAAiC;IACjC,eAAe;IACf,kBAAkB;IAClB,mBAAmB;IACnB,sCAAsC;IACtC,4BAA4B;IAC5B,iBAAiB;IACjB,oBAAoB;IACpB,qBAAqB;IACrB,sBAAsB;IACtB,cAAc;CACN,CAAC;AAIX;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,MAAc;IAC5D,OAAO,kBAAkB,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI,MAAM,EAAqB,CAAC,CAAC;AAC7E,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-error.d.ts","sourceRoot":"","sources":["../../../src/saas-connector/errors/api-error.ts"],"names":[],"mappings":"AAAA,qBAAa,QAAS,SAAQ,KAAK;IAExB,IAAI,EAAE,MAAM;IAEZ,UAAU,EAAE,MAAM;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAHjC,IAAI,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACR,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;IAU1C,MAAM;;;;;;;CASP;AAGD,eAAO,MAAM,WAAW;;;;;;;;;;CAUd,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,WAAW,CAAC"}
@@ -0,0 +1,38 @@
1
+ export class ApiError extends Error {
2
+ code;
3
+ statusCode;
4
+ details;
5
+ constructor(code, message, statusCode, details) {
6
+ super(message);
7
+ this.code = code;
8
+ this.statusCode = statusCode;
9
+ this.details = details;
10
+ this.name = 'ApiError';
11
+ // Maintain proper stack trace in V8 environments
12
+ if (Error.captureStackTrace) {
13
+ Error.captureStackTrace(this, ApiError);
14
+ }
15
+ }
16
+ toJSON() {
17
+ return {
18
+ name: this.name,
19
+ code: this.code,
20
+ message: this.message,
21
+ statusCode: this.statusCode,
22
+ details: this.details,
23
+ };
24
+ }
25
+ }
26
+ // Error codes mapping
27
+ export const ERROR_CODES = {
28
+ INVALID_REQUEST: 400,
29
+ UNAUTHORIZED: 401,
30
+ FORBIDDEN: 403,
31
+ NOT_FOUND: 404,
32
+ RATE_LIMITED: 429,
33
+ INTERNAL_ERROR: 500,
34
+ UNSUPPORTED_TOOL: 400,
35
+ NETWORK_ERROR: 0,
36
+ TIMEOUT: 408,
37
+ };
38
+ //# sourceMappingURL=api-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-error.js","sourceRoot":"","sources":["../../../src/saas-connector/errors/api-error.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,QAAS,SAAQ,KAAK;IAExB;IAEA;IACA;IAJT,YACS,IAAY,EACnB,OAAe,EACR,UAAkB,EAClB,OAAiC;QAExC,KAAK,CAAC,OAAO,CAAC,CAAC;QALR,SAAI,GAAJ,IAAI,CAAQ;QAEZ,eAAU,GAAV,UAAU,CAAQ;QAClB,YAAO,GAAP,OAAO,CAA0B;QAGxC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,iDAAiD;QACjD,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;IACJ,CAAC;CACF;AAED,sBAAsB;AACtB,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,eAAe,EAAE,GAAG;IACpB,YAAY,EAAE,GAAG;IACjB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,YAAY,EAAE,GAAG;IACjB,cAAc,EAAE,GAAG;IACnB,gBAAgB,EAAE,GAAG;IACrB,aAAa,EAAE,CAAC;IAChB,OAAO,EAAE,GAAG;CACJ,CAAC"}
@@ -1,5 +1,5 @@
1
- import { resolveProject } from './client/http-client';
2
- import type { CloudConfig, ToolBackend } from './client/types';
1
+ import { resolveProject } from './client/http-client.js';
2
+ import type { CloudConfig, ToolBackend } from './client/types.js';
3
3
  export { resolveProject };
4
4
  /**
5
5
  * Create a SaaS backend instance
@@ -13,6 +13,6 @@ export declare const version = "1.0.0";
13
13
  * Minimum compatible mcp-sqlew version
14
14
  */
15
15
  export declare const minVersion = "4.4.0";
16
- export type { CloudConfig, ConnectionIdentity, Environment, ToolBackend, HealthCheckResult, } from './client/types';
17
- export { ApiError } from './errors/api-error';
16
+ export type { CloudConfig, ConnectionIdentity, Environment, ToolBackend, HealthCheckResult, } from './client/types.js';
17
+ export { ApiError } from './errors/api-error.js';
18
18
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/saas-connector/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGlE,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAE9D;AAED;;GAEG;AACH,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B;;GAEG;AACH,eAAO,MAAM,UAAU,UAAU,CAAC;AAGlC,YAAY,EACV,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,WAAW,EACX,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { SaaSBackend } from './backend/saas-backend.js';
2
+ import { resolveProject } from './client/http-client.js';
3
+ // Re-export resolveProject for use by mcp-sqlew
4
+ export { resolveProject };
5
+ /**
6
+ * Create a SaaS backend instance
7
+ */
8
+ export function createBackend(config) {
9
+ return new SaaSBackend(config);
10
+ }
11
+ /**
12
+ * Plugin version (SemVer)
13
+ */
14
+ export const version = '1.0.0';
15
+ /**
16
+ * Minimum compatible mcp-sqlew version
17
+ */
18
+ export const minVersion = '4.4.0';
19
+ export { ApiError } from './errors/api-error.js';
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/saas-connector/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGzD,gDAAgD;AAChD,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAmB;IAC/C,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC;AAUlC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "sqlew",
3
3
  "description": "Automated ADR (Architecture Decision Records) for Claude Code - MCP server with SQL-backed decision repository",
4
- "version": "5.0.0",
4
+ "version": "5.0.1",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
7
7
  "bin": {
@@ -9,7 +9,6 @@
9
9
  },
10
10
  "files": [
11
11
  "dist/",
12
- "saas-connector/",
13
12
  "scripts/",
14
13
  "assets/",
15
14
  "docs/",
@@ -20,7 +19,6 @@
20
19
  "MIGRATION_v2.md"
21
20
  ],
22
21
  "scripts": {
23
- "prebuild": "cd saas-connector && npm install && npm run build",
24
22
  "build": "tsc && node scripts/copy-help-data.js",
25
23
  "start": "node dist/index.js",
26
24
  "dev": "tsc --watch",
@@ -66,7 +64,6 @@
66
64
  "author": "sqlew-io",
67
65
  "license": "Apache-2.0",
68
66
  "dependencies": {
69
- "@sqlew/saas-connector": "file:./saas-connector",
70
67
  "@modelcontextprotocol/sdk": "^1.21.1",
71
68
  "better-sqlite3": "^12.4.1",
72
69
  "chokidar": "^4.0.3",