@databasin/mcp-client 0.1.0 → 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 (86) hide show
  1. package/README.md +132 -61
  2. package/dist/auth-schema.d.ts +23 -0
  3. package/dist/auth-schema.d.ts.map +1 -0
  4. package/dist/auth-schema.js +42 -0
  5. package/dist/auth-schema.js.map +1 -0
  6. package/dist/auth-tools.d.ts +10 -0
  7. package/dist/auth-tools.d.ts.map +1 -0
  8. package/dist/auth-tools.js +60 -0
  9. package/dist/auth-tools.js.map +1 -0
  10. package/dist/auth.d.ts +22 -11
  11. package/dist/auth.d.ts.map +1 -1
  12. package/dist/auth.js +71 -71
  13. package/dist/auth.js.map +1 -1
  14. package/dist/browser.d.ts +20 -1
  15. package/dist/browser.d.ts.map +1 -1
  16. package/dist/browser.js +19 -17
  17. package/dist/browser.js.map +1 -1
  18. package/dist/cli.d.ts +31 -2
  19. package/dist/cli.d.ts.map +1 -1
  20. package/dist/cli.js +148 -67
  21. package/dist/cli.js.map +1 -1
  22. package/dist/config.js +2 -2
  23. package/dist/config.js.map +1 -1
  24. package/dist/correlation.d.ts +6 -0
  25. package/dist/correlation.d.ts.map +1 -0
  26. package/dist/correlation.js +15 -0
  27. package/dist/correlation.js.map +1 -0
  28. package/dist/credential-store.d.ts +21 -0
  29. package/dist/credential-store.d.ts.map +1 -0
  30. package/dist/credential-store.js +46 -0
  31. package/dist/credential-store.js.map +1 -0
  32. package/dist/errors.d.ts +17 -3
  33. package/dist/errors.d.ts.map +1 -1
  34. package/dist/errors.js +24 -6
  35. package/dist/errors.js.map +1 -1
  36. package/dist/index.d.ts +1 -1
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +1 -1
  39. package/dist/index.js.map +1 -1
  40. package/dist/login-url.d.ts +18 -0
  41. package/dist/login-url.d.ts.map +1 -0
  42. package/dist/login-url.js +82 -0
  43. package/dist/login-url.js.map +1 -0
  44. package/dist/mcp-endpoint.d.ts +5 -0
  45. package/dist/mcp-endpoint.d.ts.map +1 -0
  46. package/dist/mcp-endpoint.js +22 -0
  47. package/dist/mcp-endpoint.js.map +1 -0
  48. package/dist/proxy-tools.d.ts +5 -0
  49. package/dist/proxy-tools.d.ts.map +1 -0
  50. package/dist/proxy-tools.js +39 -0
  51. package/dist/proxy-tools.js.map +1 -0
  52. package/dist/remote-mcp.d.ts +27 -0
  53. package/dist/remote-mcp.d.ts.map +1 -0
  54. package/dist/remote-mcp.js +70 -0
  55. package/dist/remote-mcp.js.map +1 -0
  56. package/dist/safety.d.ts +4 -0
  57. package/dist/safety.d.ts.map +1 -1
  58. package/dist/safety.js +94 -10
  59. package/dist/safety.js.map +1 -1
  60. package/dist/server.d.ts +4 -6
  61. package/dist/server.d.ts.map +1 -1
  62. package/dist/server.js +32 -15
  63. package/dist/server.js.map +1 -1
  64. package/dist/token-validation.d.ts +5 -0
  65. package/dist/token-validation.d.ts.map +1 -0
  66. package/dist/token-validation.js +183 -0
  67. package/dist/token-validation.js.map +1 -0
  68. package/dist/version.d.ts +1 -1
  69. package/dist/version.js +1 -1
  70. package/package.json +12 -7
  71. package/dist/api-client.d.ts +0 -43
  72. package/dist/api-client.d.ts.map +0 -1
  73. package/dist/api-client.js +0 -154
  74. package/dist/api-client.js.map +0 -1
  75. package/dist/mappers.d.ts +0 -56
  76. package/dist/mappers.d.ts.map +0 -1
  77. package/dist/mappers.js +0 -171
  78. package/dist/mappers.js.map +0 -1
  79. package/dist/schemas.d.ts +0 -154
  80. package/dist/schemas.d.ts.map +0 -1
  81. package/dist/schemas.js +0 -102
  82. package/dist/schemas.js.map +0 -1
  83. package/dist/tools.d.ts +0 -17
  84. package/dist/tools.d.ts.map +0 -1
  85. package/dist/tools.js +0 -117
  86. package/dist/tools.js.map +0 -1
package/dist/cli.js CHANGED
@@ -1,91 +1,152 @@
1
1
  #!/usr/bin/env node
2
2
  import { realpathSync } from 'node:fs';
3
3
  import { fileURLToPath } from 'node:url';
4
+ import { AuthManager } from './auth.js';
4
5
  import { getProfile, resolveEnvironment } from './config.js';
5
- import { DataBasinError } from './errors.js';
6
+ import { mcpEndpointForProfile } from './mcp-endpoint.js';
7
+ import { serveDataBasinStdio } from './server.js';
6
8
  import { VERSION } from './version.js';
9
+ const COMMAND_FLAGS = Object.freeze({
10
+ '--help': 'help',
11
+ '-h': 'help',
12
+ '--version': 'version',
13
+ '-v': 'version'
14
+ });
7
15
  export function parseCliArgs(args) {
8
- let command = 'serve';
9
- let commandSet = false;
10
- let environmentValue;
16
+ const state = { command: 'serve', commandSet: false };
11
17
  for (let index = 0; index < args.length; index += 1) {
12
- const argument = args[index];
13
- if (argument === '--environment' || argument === '-e') {
14
- environmentValue = args[index + 1];
15
- if (!environmentValue)
16
- throw new Error(`${argument} requires prod or np.`);
17
- index += 1;
18
- continue;
19
- }
20
- if (argument.startsWith('--environment=')) {
21
- environmentValue = argument.slice('--environment='.length);
22
- continue;
23
- }
24
- if (argument === '--help' || argument === '-h') {
25
- command = 'help';
26
- commandSet = true;
27
- continue;
28
- }
29
- if (argument === '--version' || argument === '-v') {
30
- command = 'version';
31
- commandSet = true;
32
- continue;
33
- }
34
- if (!commandSet && isCommand(argument)) {
35
- command = argument;
36
- commandSet = true;
37
- continue;
38
- }
39
- throw new Error(`Unknown argument "${argument}".`);
40
- }
41
- return { command, environment: resolveEnvironment(environmentValue) };
18
+ index = consumeArgument(args, index, state);
19
+ }
20
+ return { command: state.command, environment: resolveEnvironment(state.environmentValue) };
21
+ }
22
+ function consumeArgument(args, index, state) {
23
+ const argument = args[index];
24
+ const environment = parseEnvironmentArgument(args, index);
25
+ if (environment) {
26
+ state.environmentValue = environment.value;
27
+ return environment.lastIndex;
28
+ }
29
+ const flagCommand = COMMAND_FLAGS[argument];
30
+ if (flagCommand) {
31
+ state.command = flagCommand;
32
+ state.commandSet = true;
33
+ return index;
34
+ }
35
+ if (!state.commandSet && isCommand(argument)) {
36
+ state.command = argument;
37
+ state.commandSet = true;
38
+ return index;
39
+ }
40
+ throw new Error(`Unknown argument "${argument}".`);
41
+ }
42
+ function parseEnvironmentArgument(args, index) {
43
+ const argument = args[index];
44
+ if (argument === '--environment' || argument === '-e') {
45
+ const value = args[index + 1];
46
+ if (!value)
47
+ throw new Error(`${argument} requires prod or np.`);
48
+ return { value, lastIndex: index + 1 };
49
+ }
50
+ if (!argument.startsWith('--environment='))
51
+ return undefined;
52
+ const value = argument.slice('--environment='.length);
53
+ if (!value)
54
+ throw new Error('--environment requires prod or np.');
55
+ return { value, lastIndex: index };
42
56
  }
43
- export async function runCli(args) {
57
+ export async function runCli(args, dependencies = DEFAULT_DEPENDENCIES) {
44
58
  const options = parseCliArgs(args);
45
59
  if (options.command === 'help') {
46
- process.stdout.write(helpText());
60
+ dependencies.writeOutput(helpText());
47
61
  return;
48
62
  }
49
63
  if (options.command === 'version') {
50
- process.stdout.write(`${VERSION}\n`);
64
+ dependencies.writeOutput(`${VERSION}\n`);
51
65
  return;
52
66
  }
53
- const profile = getProfile(options.environment);
54
67
  if (options.command === 'serve') {
55
- const { serveDataBasinStdio } = await import('./server.js');
56
- const handle = serveDataBasinStdio({ profile });
57
- let closing = false;
58
- const close = async () => {
59
- if (closing)
60
- return;
61
- closing = true;
62
- await handle.close();
63
- };
64
- process.once('SIGINT', () => void close());
65
- process.once('SIGTERM', () => void close());
68
+ await runServer(options.environment, dependencies);
66
69
  return;
67
70
  }
68
- const { AuthManager } = await import('./auth.js');
69
- const auth = new AuthManager(profile);
71
+ await runAuthCommand(options, dependencies);
72
+ }
73
+ async function runServer(environment, dependencies) {
74
+ const handle = await dependencies.serve(environment);
75
+ let closing = false;
76
+ const close = async () => {
77
+ if (closing)
78
+ return;
79
+ closing = true;
80
+ await handle.close();
81
+ };
82
+ dependencies.onceSignal('SIGINT', () => void close());
83
+ dependencies.onceSignal('SIGTERM', () => void close());
84
+ }
85
+ async function runAuthCommand(options, dependencies) {
86
+ const profile = getProfile(options.environment);
87
+ const auth = await dependencies.createAuth(profile.environment);
70
88
  if (options.command === 'login') {
71
89
  const status = await auth.login();
72
- process.stdout.write(`Signed in to DataBasin ${profile.label}${status.username ? ` as ${status.username}` : ''}.\n`);
90
+ dependencies.writeOutput(`Signed in to DataBasin ${profile.label}${usernameSuffix(status.username)}.\n`);
73
91
  return;
74
92
  }
75
93
  if (options.command === 'logout') {
76
94
  const count = await auth.logout();
77
- process.stdout.write(count > 0
95
+ dependencies.writeOutput(count > 0
78
96
  ? `Signed out of DataBasin ${profile.label}.\n`
79
97
  : `No DataBasin ${profile.label} session was stored.\n`);
80
98
  return;
81
99
  }
100
+ if (options.command === 'doctor') {
101
+ await runDoctor(profile, auth, dependencies);
102
+ return;
103
+ }
82
104
  const status = await auth.status();
83
- process.stdout.write(status.authenticated
84
- ? `Signed in to DataBasin ${profile.label}${status.username ? ` as ${status.username}` : ''}.\n`
105
+ dependencies.writeOutput(status.authenticated
106
+ ? `Signed in to DataBasin ${profile.label}${usernameSuffix(status.username)}.\n`
85
107
  : `Not signed in to DataBasin ${profile.label}. Run: npx @databasin/mcp-client login${profile.environment === 'prod' ? '' : ` --environment ${profile.environment}`}\n`);
86
108
  }
109
+ async function runDoctor(profile, auth, dependencies) {
110
+ const runtimeVersion = dependencies.runtimeVersion ?? process.versions.node;
111
+ const runtimePlatform = dependencies.runtimePlatform ?? process.platform;
112
+ const supported = isSupportedNodeVersion(runtimeVersion);
113
+ const lines = [
114
+ `DataBasin MCP doctor ${VERSION}`,
115
+ `Environment: ${profile.label} (${profile.environment})`,
116
+ `Node.js: ${runtimeVersion} (${supported ? 'supported' : 'unsupported'})`,
117
+ `Platform: ${runtimePlatform}`,
118
+ `MCP endpoint: ${mcpEndpointForProfile(profile)}`
119
+ ];
120
+ try {
121
+ const status = await auth.status();
122
+ lines.push('Secure credential storage: available');
123
+ lines.push(`Authentication: ${status.authenticated ? 'signed in' : 'sign-in required'}`);
124
+ }
125
+ catch {
126
+ lines.push('Secure credential storage: unavailable');
127
+ lines.push('Result: blocked');
128
+ dependencies.writeOutput(`${lines.join('\n')}\n`);
129
+ throw new Error('DataBasin MCP requires an available OS-protected credential store.');
130
+ }
131
+ lines.push(`Result: ${supported ? 'ready' : 'blocked'}`);
132
+ dependencies.writeOutput(`${lines.join('\n')}\n`);
133
+ if (!supported) {
134
+ throw new Error('DataBasin MCP requires Node.js 22.20+ or Node.js 24.');
135
+ }
136
+ }
137
+ export function isSupportedNodeVersion(version) {
138
+ const match = /^(\d+)\.(\d+)\.(\d+)(?:[-+].*)?$/u.exec(version);
139
+ if (!match)
140
+ return false;
141
+ const major = Number(match[1]);
142
+ const minor = Number(match[2]);
143
+ return major === 24 || major === 22 && minor >= 20;
144
+ }
145
+ function usernameSuffix(username) {
146
+ return username ? ` as ${username}` : '';
147
+ }
87
148
  function isCommand(value) {
88
- return value === 'serve' || value === 'login' || value === 'logout' || value === 'status' || value === 'help' || value === 'version';
149
+ return value === 'serve' || value === 'login' || value === 'logout' || value === 'status' || value === 'doctor' || value === 'help' || value === 'version';
89
150
  }
90
151
  function helpText() {
91
152
  return `DataBasin local MCP client ${VERSION}
@@ -95,6 +156,7 @@ Usage:
95
156
  databasin-mcp login Sign in to production
96
157
  databasin-mcp logout Remove the production session
97
158
  databasin-mcp status Show production sign-in status
159
+ databasin-mcp doctor Check runtime, profile, and credential storage
98
160
  databasin-mcp <command> -e np Use the non-production environment
99
161
 
100
162
  Commands:
@@ -102,6 +164,7 @@ Commands:
102
164
  login Open Microsoft sign-in in the system browser
103
165
  logout Remove the locally cached DataBasin session
104
166
  status Show whether a session is available
167
+ doctor Check this host without printing account identity or credentials
105
168
 
106
169
  Options:
107
170
  -e, --environment <prod|np> Select an environment (default: prod)
@@ -109,23 +172,41 @@ Options:
109
172
  -v, --version Show the package version
110
173
  `;
111
174
  }
112
- if (isEntrypoint()) {
113
- runCli(process.argv.slice(2)).catch((error) => {
114
- const message = error instanceof DataBasinError || error instanceof Error
115
- ? error.message
116
- : 'DataBasin MCP failed.';
117
- process.stderr.write(`${message}\n`);
118
- process.exitCode = 1;
119
- });
175
+ const DEFAULT_DEPENDENCIES = Object.freeze({
176
+ writeOutput: (message) => process.stdout.write(message),
177
+ createAuth: async (environment) => new AuthManager(getProfile(environment)),
178
+ serve: async (environment) => serveDataBasinStdio({ environment }),
179
+ onceSignal: (signal, listener) => {
180
+ process.once(signal, listener);
181
+ }
182
+ });
183
+ export async function runEntrypoint(args, dependencies = DEFAULT_ENTRYPOINT_DEPENDENCIES) {
184
+ try {
185
+ await dependencies.run(args);
186
+ }
187
+ catch (error) {
188
+ const message = error instanceof Error ? error.message : 'DataBasin MCP failed.';
189
+ dependencies.writeError(`${message}\n`);
190
+ dependencies.fail();
191
+ }
120
192
  }
121
- function isEntrypoint() {
122
- if (!process.argv[1])
193
+ export function isEntrypoint(executablePath = process.argv[1], modulePath = fileURLToPath(import.meta.url)) {
194
+ if (!executablePath)
123
195
  return false;
124
196
  try {
125
- return realpathSync(process.argv[1]) === realpathSync(fileURLToPath(import.meta.url));
197
+ return realpathSync(executablePath) === realpathSync(modulePath);
126
198
  }
127
199
  catch {
128
200
  return false;
129
201
  }
130
202
  }
203
+ const DEFAULT_ENTRYPOINT_DEPENDENCIES = Object.freeze({
204
+ run: runCli,
205
+ writeError: (message) => process.stderr.write(message),
206
+ fail: () => {
207
+ process.exitCode = 1;
208
+ }
209
+ });
210
+ if (isEntrypoint())
211
+ void runEntrypoint(process.argv.slice(2));
131
212
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -3,7 +3,7 @@ const PROFILES = Object.freeze({
3
3
  prod: Object.freeze({
4
4
  environment: 'prod',
5
5
  label: 'production',
6
- apiBaseUrl: 'https://databasin-api.calmplant-7d6b6890.centralus.azurecontainerapps.io/api',
6
+ apiBaseUrl: 'https://databasin.cloud',
7
7
  tenantId: TENANT_ID,
8
8
  clientId: '74125794-c409-483c-97e9-13194e58abb3',
9
9
  scopes: Object.freeze(['api://2170da8e-41ff-422f-a759-2718336f40d7/Databasin.API'])
@@ -11,7 +11,7 @@ const PROFILES = Object.freeze({
11
11
  np: Object.freeze({
12
12
  environment: 'np',
13
13
  label: 'non-production',
14
- apiBaseUrl: 'https://databasin-api-np.grayriver-813df174.centralus.azurecontainerapps.io/api',
14
+ apiBaseUrl: 'https://databasin-ui-np.grayriver-813df174.centralus.azurecontainerapps.io',
15
15
  tenantId: TENANT_ID,
16
16
  clientId: '68f0487f-d03d-41dd-96df-3c3fbaf1f112',
17
17
  scopes: Object.freeze(['api://16b4e522-d051-4838-a0d7-75d246b8090c/Databasin.API'])
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAWA,MAAM,SAAS,GAAG,sCAAsC,CAAC;AAEzD,MAAM,QAAQ,GAA6D,MAAM,CAAC,MAAM,CAAC;IACvF,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM;QACnB,KAAK,EAAE,YAAY;QACnB,UAAU,EAAE,8EAA8E;QAC1F,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,sCAAsC;QAChD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,0DAA0D,CAAC,CAAC;KACpF,CAAC;IACF,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC;QAChB,WAAW,EAAE,IAAI;QACjB,KAAK,EAAE,gBAAgB;QACvB,UAAU,EAAE,iFAAiF;QAC7F,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,sCAAsC;QAChD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,0DAA0D,CAAC,CAAC;KACpF,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAmD,MAAM,CAAC,MAAM,CAAC;IACxF,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,MAAM;IAClB,EAAE,EAAE,IAAI;IACR,OAAO,EAAE,IAAI;IACb,gBAAgB,EAAE,IAAI;IACtB,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,IAAI;CACd,CAAC,CAAC;AAEH,MAAM,UAAU,kBAAkB,CAAC,KAAyB;IAC1D,IAAI,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IACpE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,kCAAkC,KAAK,oBAAoB,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,cAAoC,MAAM;IACnE,OAAO,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAyB;IACpD,OAAO,qCAAqC,OAAO,CAAC,QAAQ,EAAE,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,CAAU,CAAC,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAWA,MAAM,SAAS,GAAG,sCAAsC,CAAC;AAEzD,MAAM,QAAQ,GAA6D,MAAM,CAAC,MAAM,CAAC;IACvF,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM;QACnB,KAAK,EAAE,YAAY;QACnB,UAAU,EAAE,yBAAyB;QACrC,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,sCAAsC;QAChD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,0DAA0D,CAAC,CAAC;KACpF,CAAC;IACF,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC;QAChB,WAAW,EAAE,IAAI;QACjB,KAAK,EAAE,gBAAgB;QACvB,UAAU,EAAE,4EAA4E;QACxF,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,sCAAsC;QAChD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,0DAA0D,CAAC,CAAC;KACpF,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAmD,MAAM,CAAC,MAAM,CAAC;IACxF,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,MAAM;IAClB,EAAE,EAAE,IAAI;IACR,OAAO,EAAE,IAAI;IACb,gBAAgB,EAAE,IAAI;IACtB,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,IAAI;CACd,CAAC,CAAC;AAEH,MAAM,UAAU,kBAAkB,CAAC,KAAyB;IAC1D,IAAI,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IACpE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,kCAAkC,KAAK,oBAAoB,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,cAAoC,MAAM;IACnE,OAAO,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAyB;IACpD,OAAO,qCAAqC,OAAO,CAAC,QAAQ,EAAE,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,CAAU,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { z } from 'zod';
2
+ export declare const CorrelationIdSchema: z.ZodString;
3
+ export declare function freshCorrelationId(): string;
4
+ export declare function validCorrelationId(value: unknown): string | undefined;
5
+ export declare function safeCorrelationId(value: unknown): string;
6
+ //# sourceMappingURL=correlation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"correlation.d.ts","sourceRoot":"","sources":["../src/correlation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,mBAAmB,aAG/B,CAAC;AAEF,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAGrE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAExD"}
@@ -0,0 +1,15 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { z } from 'zod';
3
+ const CANONICAL_UUID_V4_OR_V7 = /^[0-9a-f]{8}-[0-9a-f]{4}-[47][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/u;
4
+ export const CorrelationIdSchema = z.string().regex(CANONICAL_UUID_V4_OR_V7, 'must be a canonical lowercase UUIDv4 or UUIDv7');
5
+ export function freshCorrelationId() {
6
+ return randomUUID();
7
+ }
8
+ export function validCorrelationId(value) {
9
+ const parsed = CorrelationIdSchema.safeParse(value);
10
+ return parsed.success ? parsed.data : undefined;
11
+ }
12
+ export function safeCorrelationId(value) {
13
+ return validCorrelationId(value) ?? freshCorrelationId();
14
+ }
15
+ //# sourceMappingURL=correlation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"correlation.js","sourceRoot":"","sources":["../src/correlation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,uBAAuB,GAAG,2EAA2E,CAAC;AAE5G,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CACjD,uBAAuB,EACvB,gDAAgD,CACjD,CAAC;AAEF,MAAM,UAAU,kBAAkB;IAChC,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACpD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,kBAAkB,EAAE,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { type Configuration, type ICachePlugin, type IPublicClientApplication } from '@azure/msal-node';
2
+ import { DataProtectionScope } from '@azure/msal-node-extensions';
3
+ import { type DataBasinProfile } from './config.js';
4
+ export interface PersistenceOptions {
5
+ cachePath: string;
6
+ dataProtectionScope: DataProtectionScope;
7
+ serviceName: string;
8
+ accountName: string;
9
+ usePlaintextFileOnLinux: false;
10
+ }
11
+ export interface CredentialStoreDependencies {
12
+ homeDirectory(): string;
13
+ createDirectory(path: string, options: {
14
+ recursive: true;
15
+ mode: number;
16
+ }): Promise<void>;
17
+ createCachePlugin(options: PersistenceOptions): Promise<ICachePlugin>;
18
+ createApplication(configuration: Configuration): IPublicClientApplication;
19
+ }
20
+ export declare function createSecurePublicClient(profile: DataBasinProfile, dependencies?: CredentialStoreDependencies): Promise<IPublicClientApplication>;
21
+ //# sourceMappingURL=credential-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credential-store.d.ts","sourceRoot":"","sources":["../src/credential-store.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,wBAAwB,EAC9B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,mBAAmB,EAGpB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAElE,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,uBAAuB,EAAE,KAAK,CAAC;CAChC;AAED,MAAM,WAAW,2BAA2B;IAC1C,aAAa,IAAI,MAAM,CAAC;IACxB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,SAAS,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzF,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACtE,iBAAiB,CAAC,aAAa,EAAE,aAAa,GAAG,wBAAwB,CAAC;CAC3E;AAED,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,gBAAgB,EACzB,YAAY,GAAE,2BAAkD,GAC/D,OAAO,CAAC,wBAAwB,CAAC,CAWnC"}
@@ -0,0 +1,46 @@
1
+ import { mkdir } from 'node:fs/promises';
2
+ import { homedir } from 'node:os';
3
+ import { join } from 'node:path';
4
+ import { PublicClientApplication } from '@azure/msal-node';
5
+ import { DataProtectionScope, PersistenceCachePlugin, PersistenceCreator } from '@azure/msal-node-extensions';
6
+ import { authorityFor } from './config.js';
7
+ export async function createSecurePublicClient(profile, dependencies = DEFAULT_DEPENDENCIES) {
8
+ const cacheDirectory = join(dependencies.homeDirectory(), '.databasin', 'mcp', 'auth', profile.environment);
9
+ await dependencies.createDirectory(cacheDirectory, { recursive: true, mode: 0o700 });
10
+ const cachePlugin = await dependencies.createCachePlugin({
11
+ cachePath: join(cacheDirectory, 'msal-cache.lock'),
12
+ dataProtectionScope: DataProtectionScope.CurrentUser,
13
+ serviceName: 'com.databasin.mcp',
14
+ accountName: profile.environment,
15
+ usePlaintextFileOnLinux: false
16
+ });
17
+ return dependencies.createApplication(configuration(profile, cachePlugin));
18
+ }
19
+ function configuration(profile, cachePlugin) {
20
+ return {
21
+ auth: {
22
+ clientId: profile.clientId,
23
+ authority: authorityFor(profile)
24
+ },
25
+ cache: { cachePlugin },
26
+ system: {
27
+ loggerOptions: {
28
+ piiLoggingEnabled: false,
29
+ logLevel: 0,
30
+ loggerCallback: () => undefined
31
+ }
32
+ }
33
+ };
34
+ }
35
+ const DEFAULT_DEPENDENCIES = Object.freeze({
36
+ homeDirectory: homedir,
37
+ createDirectory: async (path, options) => {
38
+ await mkdir(path, options);
39
+ },
40
+ createCachePlugin: async (options) => {
41
+ const persistence = await PersistenceCreator.createPersistence(options);
42
+ return new PersistenceCachePlugin(persistence);
43
+ },
44
+ createApplication: (config) => new PublicClientApplication(config)
45
+ });
46
+ //# sourceMappingURL=credential-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credential-store.js","sourceRoot":"","sources":["../src/credential-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EACL,uBAAuB,EAIxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,YAAY,EAAyB,MAAM,aAAa,CAAC;AAiBlE,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,OAAyB,EACzB,eAA4C,oBAAoB;IAEhE,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5G,MAAM,YAAY,CAAC,eAAe,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACrF,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,iBAAiB,CAAC;QACvD,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,iBAAiB,CAAC;QAClD,mBAAmB,EAAE,mBAAmB,CAAC,WAAW;QACpD,WAAW,EAAE,mBAAmB;QAChC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,uBAAuB,EAAE,KAAK;KAC/B,CAAC,CAAC;IACH,OAAO,YAAY,CAAC,iBAAiB,CAAC,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,aAAa,CAAC,OAAyB,EAAE,WAAyB;IACzE,OAAO;QACL,IAAI,EAAE;YACJ,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC;SACjC;QACD,KAAK,EAAE,EAAE,WAAW,EAAE;QACtB,MAAM,EAAE;YACN,aAAa,EAAE;gBACb,iBAAiB,EAAE,KAAK;gBACxB,QAAQ,EAAE,CAAC;gBACX,cAAc,EAAE,GAAG,EAAE,CAAC,SAAS;aAChC;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,oBAAoB,GAAgC,MAAM,CAAC,MAAM,CAAC;IACtE,aAAa,EAAE,OAAO;IACtB,eAAe,EAAE,KAAK,EAAE,IAAY,EAAE,OAA0C,EAAE,EAAE;QAClF,MAAM,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;IACD,iBAAiB,EAAE,KAAK,EAAE,OAA2B,EAAE,EAAE;QACvD,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACxE,OAAO,IAAI,sBAAsB,CAAC,WAAW,CAAC,CAAC;IACjD,CAAC;IACD,iBAAiB,EAAE,CAAC,MAAqB,EAAE,EAAE,CAAC,IAAI,uBAAuB,CAAC,MAAM,CAAC;CAClF,CAAC,CAAC"}
package/dist/errors.d.ts CHANGED
@@ -1,13 +1,27 @@
1
- export type DataBasinErrorCode = 'INVALID_ARGUMENT' | 'UNAUTHENTICATED' | 'NOT_FOUND' | 'POLICY_DENIED' | 'DEPENDENCY_UNAVAILABLE' | 'OPERATION_FAILED' | 'INTERNAL_ERROR';
1
+ export type DataBasinErrorCode = 'INVALID_ARGUMENT' | 'UNAUTHENTICATED' | 'NOT_FOUND' | 'POLICY_DENIED' | 'RATE_LIMITED' | 'REQUEST_ABORTED' | 'REQUEST_TIMEOUT' | 'DEPENDENCY_UNAVAILABLE' | 'OPERATION_FAILED' | 'INTERNAL_ERROR';
2
2
  export declare class DataBasinError extends Error {
3
3
  readonly code: DataBasinErrorCode;
4
- constructor(code: DataBasinErrorCode, message: string);
4
+ readonly details: {
5
+ correlationId: string;
6
+ retryAfterMs?: number;
7
+ reason?: string;
8
+ };
9
+ constructor(code: DataBasinErrorCode, message: string, details?: {
10
+ correlationId?: string;
11
+ retryAfterMs?: number;
12
+ reason?: string;
13
+ });
5
14
  }
6
15
  export declare class LoginRequiredError extends DataBasinError {
7
- constructor(environment: string);
16
+ constructor(environment: string, details?: {
17
+ correlationId?: string;
18
+ });
8
19
  }
9
20
  export declare function publicError(error: unknown): {
10
21
  code: DataBasinErrorCode;
11
22
  message: string;
23
+ correlationId?: string;
24
+ retryAfterMs?: number;
25
+ reason?: string;
12
26
  };
13
27
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAC1B,kBAAkB,GAClB,iBAAiB,GACjB,WAAW,GACX,eAAe,GACf,wBAAwB,GACxB,kBAAkB,GAClB,gBAAgB,CAAC;AAErB,qBAAa,cAAe,SAAQ,KAAK;IAErC,QAAQ,CAAC,IAAI,EAAE,kBAAkB;gBAAxB,IAAI,EAAE,kBAAkB,EACjC,OAAO,EAAE,MAAM;CAKlB;AAED,qBAAa,kBAAmB,SAAQ,cAAc;gBACxC,WAAW,EAAE,MAAM;CAOhC;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAGzF"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,kBAAkB,GAC1B,kBAAkB,GAClB,iBAAiB,GACjB,WAAW,GACX,eAAe,GACf,cAAc,GACd,iBAAiB,GACjB,iBAAiB,GACjB,wBAAwB,GACxB,kBAAkB,GAClB,gBAAgB,CAAC;AAErB,qBAAa,cAAe,SAAQ,KAAK;IAIrC,QAAQ,CAAC,IAAI,EAAE,kBAAkB;IAHnC,QAAQ,CAAC,OAAO,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;gBAGzE,IAAI,EAAE,kBAAkB,EACjC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO;CAUnF;AAED,qBAAa,kBAAmB,SAAQ,cAAc;gBACxC,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAO;CAQ1E;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAezJ"}
package/dist/errors.js CHANGED
@@ -1,20 +1,38 @@
1
+ import { safeCorrelationId } from './correlation.js';
1
2
  export class DataBasinError extends Error {
2
3
  code;
3
- constructor(code, message) {
4
+ details;
5
+ constructor(code, message, details = {}) {
4
6
  super(message);
5
7
  this.code = code;
6
8
  this.name = 'DataBasinError';
9
+ this.details = {
10
+ correlationId: safeCorrelationId(details.correlationId),
11
+ ...(details.retryAfterMs === undefined ? {} : { retryAfterMs: details.retryAfterMs }),
12
+ ...(details.reason === undefined ? {} : { reason: details.reason })
13
+ };
7
14
  }
8
15
  }
9
16
  export class LoginRequiredError extends DataBasinError {
10
- constructor(environment) {
11
- super('UNAUTHENTICATED', `DataBasin login is required for ${environment}. Call databasin_login, or run: npx @databasin/mcp-client login --environment ${environment}`);
17
+ constructor(environment, details = {}) {
18
+ super('UNAUTHENTICATED', `DataBasin login is required for ${environment}. Call databasin_login, or run: npx @databasin/mcp-client login --environment ${environment}`, details);
12
19
  this.name = 'LoginRequiredError';
13
20
  }
14
21
  }
15
22
  export function publicError(error) {
16
- if (error instanceof DataBasinError)
17
- return { code: error.code, message: error.message };
18
- return { code: 'INTERNAL_ERROR', message: 'The DataBasin operation could not be completed.' };
23
+ if (error instanceof DataBasinError) {
24
+ return {
25
+ code: error.code,
26
+ message: error.message,
27
+ correlationId: safeCorrelationId(error.details.correlationId),
28
+ ...(error.details.retryAfterMs !== undefined ? { retryAfterMs: error.details.retryAfterMs } : {}),
29
+ ...(error.details.reason !== undefined ? { reason: error.details.reason } : {})
30
+ };
31
+ }
32
+ return {
33
+ code: 'INTERNAL_ERROR',
34
+ message: 'The DataBasin operation could not be completed.',
35
+ correlationId: safeCorrelationId(undefined)
36
+ };
19
37
  }
20
38
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,cAAe,SAAQ,KAAK;IAE5B;IADX,YACW,IAAwB,EACjC,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAHN,SAAI,GAAJ,IAAI,CAAoB;QAIjC,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,cAAc;IACpD,YAAY,WAAmB;QAC7B,KAAK,CACH,iBAAiB,EACjB,mCAAmC,WAAW,iFAAiF,WAAW,EAAE,CAC7I,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,KAAK,YAAY,cAAc;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;IACzF,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,iDAAiD,EAAE,CAAC;AAChG,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAcrD,MAAM,OAAO,cAAe,SAAQ,KAAK;IAI5B;IAHF,OAAO,CAAoE;IAEpF,YACW,IAAwB,EACjC,OAAe,EACf,UAA8E,EAAE;QAEhF,KAAK,CAAC,OAAO,CAAC,CAAC;QAJN,SAAI,GAAJ,IAAI,CAAoB;QAKjC,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG;YACb,aAAa,EAAE,iBAAiB,CAAC,OAAO,CAAC,aAAa,CAAC;YACvD,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC;YACrF,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;SACpE,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,cAAc;IACpD,YAAY,WAAmB,EAAE,UAAsC,EAAE;QACvE,KAAK,CACH,iBAAiB,EACjB,mCAAmC,WAAW,iFAAiF,WAAW,EAAE,EAC5I,OAAO,CACR,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;QACpC,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,aAAa,EAAE,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;YAC7D,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChF,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,iDAAiD;QAC1D,aAAa,EAAE,iBAAiB,CAAC,SAAS,CAAC;KAC5C,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export { SUPPORTED_ENVIRONMENTS, type DataBasinEnvironment } from './config.js';
2
- export { TOOL_NAMES } from './tools.js';
2
+ export { LOCAL_AUTH_TOOL_NAMES } from './auth-tools.js';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  export { SUPPORTED_ENVIRONMENTS } from './config.js';
2
- export { TOOL_NAMES } from './tools.js';
2
+ export { LOCAL_AUTH_TOOL_NAMES } from './auth-tools.js';
3
3
  //# 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,OAAO,EAAE,sBAAsB,EAA6B,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAA6B,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { DataBasinProfile } from './config.js';
2
+ export interface SafeDevicePrompt {
3
+ readonly userCode: string;
4
+ readonly verificationUri: string;
5
+ readonly expiresIn: number;
6
+ }
7
+ export interface RawDeviceCodeResponse {
8
+ readonly userCode: unknown;
9
+ readonly deviceCode?: unknown;
10
+ readonly verificationUri: unknown;
11
+ readonly expiresIn: unknown;
12
+ readonly interval?: unknown;
13
+ readonly message?: unknown;
14
+ }
15
+ export declare function projectDevicePrompt(response: RawDeviceCodeResponse): SafeDevicePrompt;
16
+ export declare function validateDeviceLoginUrl(value: unknown): string;
17
+ export declare function validateInteractiveLoginUrl(rawUrl: string, profile?: DataBasinProfile): string;
18
+ //# sourceMappingURL=login-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login-url.d.ts","sourceRoot":"","sources":["../src/login-url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAkBD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,gBAAgB,CAKrF;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAS7D;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAgB9F"}