@noodleseed/one 0.76.1 → 0.77.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 (90) hide show
  1. package/dist/commands/auth-live-doctor.d.ts +11 -0
  2. package/dist/commands/auth-live-doctor.d.ts.map +1 -0
  3. package/dist/commands/auth-live-doctor.js +97 -0
  4. package/dist/commands/auth-live-doctor.js.map +1 -0
  5. package/dist/commands/auth-metadata-readiness.d.ts +4 -1
  6. package/dist/commands/auth-metadata-readiness.d.ts.map +1 -1
  7. package/dist/commands/auth-metadata-readiness.js +234 -120
  8. package/dist/commands/auth-metadata-readiness.js.map +1 -1
  9. package/dist/commands/auth-ops.d.ts +16 -0
  10. package/dist/commands/auth-ops.d.ts.map +1 -1
  11. package/dist/commands/auth-ops.js +74 -109
  12. package/dist/commands/auth-ops.js.map +1 -1
  13. package/dist/commands/catalog-data-auth-discovery.d.ts.map +1 -1
  14. package/dist/commands/catalog-data-auth-discovery.js +1 -9
  15. package/dist/commands/catalog-data-auth-discovery.js.map +1 -1
  16. package/dist/commands/deploy-auth-readiness.d.ts +4 -0
  17. package/dist/commands/deploy-auth-readiness.d.ts.map +1 -0
  18. package/dist/commands/deploy-auth-readiness.js +41 -0
  19. package/dist/commands/deploy-auth-readiness.js.map +1 -0
  20. package/dist/commands/deploy-ops.d.ts +1 -6
  21. package/dist/commands/deploy-ops.d.ts.map +1 -1
  22. package/dist/commands/deploy-ops.js +14 -17
  23. package/dist/commands/deploy-ops.js.map +1 -1
  24. package/dist/commands/deploy-target.d.ts +2 -0
  25. package/dist/commands/deploy-target.d.ts.map +1 -1
  26. package/dist/commands/deploy-target.js +10 -0
  27. package/dist/commands/deploy-target.js.map +1 -1
  28. package/dist/deploy.d.ts +8 -1
  29. package/dist/deploy.d.ts.map +1 -1
  30. package/dist/deploy.js +20 -0
  31. package/dist/deploy.js.map +1 -1
  32. package/dist/project.d.ts +3 -1
  33. package/dist/project.d.ts.map +1 -1
  34. package/dist/project.js +13 -1
  35. package/dist/project.js.map +1 -1
  36. package/dist/saas-scaffold-template.d.ts.map +1 -1
  37. package/dist/saas-scaffold-template.js +20 -2
  38. package/dist/saas-scaffold-template.js.map +1 -1
  39. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +1 -1
  40. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js.map +1 -1
  41. package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.d.ts.map +1 -1
  42. package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js +7 -0
  43. package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js.map +1 -1
  44. package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js +1 -1
  45. package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js.map +1 -1
  46. package/node_modules/@noodle-borg/module/dist/contract.d.ts +8 -2
  47. package/node_modules/@noodle-borg/module/dist/contract.d.ts.map +1 -1
  48. package/node_modules/@noodle-borg/module/dist/contract.js.map +1 -1
  49. package/node_modules/@noodle-borg/service/dist/customer-verifier.js +6 -6
  50. package/node_modules/@noodle-borg/service/dist/customer-verifier.js.map +1 -1
  51. package/node_modules/@noodle-borg/service/dist/data-plane-membership.d.ts.map +1 -1
  52. package/node_modules/@noodle-borg/service/dist/data-plane-membership.js +7 -2
  53. package/node_modules/@noodle-borg/service/dist/data-plane-membership.js.map +1 -1
  54. package/node_modules/@noodle-borg/service/dist/registry-helpers.d.ts +12 -0
  55. package/node_modules/@noodle-borg/service/dist/registry-helpers.d.ts.map +1 -1
  56. package/node_modules/@noodle-borg/service/dist/registry-helpers.js +26 -0
  57. package/node_modules/@noodle-borg/service/dist/registry-helpers.js.map +1 -1
  58. package/node_modules/@noodle-borg/service/dist/registry-targets.d.ts.map +1 -1
  59. package/node_modules/@noodle-borg/service/dist/registry-targets.js +3 -0
  60. package/node_modules/@noodle-borg/service/dist/registry-targets.js.map +1 -1
  61. package/node_modules/@noodle-borg/service/dist/registry-types.d.ts +2 -1
  62. package/node_modules/@noodle-borg/service/dist/registry-types.d.ts.map +1 -1
  63. package/node_modules/@noodle-borg/service/dist/registry.d.ts.map +1 -1
  64. package/node_modules/@noodle-borg/service/dist/registry.js +10 -1
  65. package/node_modules/@noodle-borg/service/dist/registry.js.map +1 -1
  66. package/node_modules/@noodle-borg/service/dist/routes/control-plane.d.ts.map +1 -1
  67. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js +4 -0
  68. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js.map +1 -1
  69. package/node_modules/@noodle-borg/service/dist/store/postgres-deploy-records.d.ts.map +1 -1
  70. package/node_modules/@noodle-borg/service/dist/store/postgres-deploy-records.js +5 -3
  71. package/node_modules/@noodle-borg/service/dist/store/postgres-deploy-records.js.map +1 -1
  72. package/node_modules/@noodle-borg/service/dist/store/postgres-rows.d.ts +1 -0
  73. package/node_modules/@noodle-borg/service/dist/store/postgres-rows.d.ts.map +1 -1
  74. package/node_modules/@noodle-borg/service/dist/store/postgres-rows.js +18 -0
  75. package/node_modules/@noodle-borg/service/dist/store/postgres-rows.js.map +1 -1
  76. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.d.ts.map +1 -1
  77. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js +1 -0
  78. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js.map +1 -1
  79. package/node_modules/@noodle-borg/service/dist/store.d.ts +6 -0
  80. package/node_modules/@noodle-borg/service/dist/store.d.ts.map +1 -1
  81. package/node_modules/@noodle-borg/service/dist/store.js.map +1 -1
  82. package/node_modules/@noodle-borg/transport-http/dist/handler.d.ts +1 -1
  83. package/node_modules/@noodle-borg/transport-http/dist/handler.d.ts.map +1 -1
  84. package/node_modules/@noodle-borg/transport-http/dist/handler.js +4 -4
  85. package/node_modules/@noodle-borg/transport-http/dist/handler.js.map +1 -1
  86. package/node_modules/@noodle-borg/wire-contracts/dist/index.d.ts +14 -0
  87. package/node_modules/@noodle-borg/wire-contracts/dist/index.d.ts.map +1 -1
  88. package/node_modules/@noodle-borg/wire-contracts/dist/index.js +7 -0
  89. package/node_modules/@noodle-borg/wire-contracts/dist/index.js.map +1 -1
  90. package/package.json +1 -1
@@ -0,0 +1,11 @@
1
+ import type { ConfigLocation } from '../config.js';
2
+ import type { AuthDoctorCheck } from './auth-metadata-readiness.js';
3
+ interface LiveAuthDoctorArgs {
4
+ readonly org?: string;
5
+ readonly app?: string;
6
+ readonly targetEnv?: string;
7
+ readonly service?: string;
8
+ }
9
+ export declare function liveAuthDoctorChecks(args: LiveAuthDoctorArgs, env: NodeJS.ProcessEnv, home: ConfigLocation): Promise<AuthDoctorCheck[]>;
10
+ export {};
11
+ //# sourceMappingURL=auth-live-doctor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-live-doctor.d.ts","sourceRoot":"","sources":["../../src/commands/auth-live-doctor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAInD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAGpE,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAgBD,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,eAAe,EAAE,CAAC,CA8F5B"}
@@ -0,0 +1,97 @@
1
+ import { readConfig, resolveServiceUrl } from '../config.js';
2
+ import { DEFAULT_SERVICE_URL } from '../deploy.js';
3
+ import { currentCliVersion } from '../update.js';
4
+ import { resolveTenantTarget } from './shared.js';
5
+ export async function liveAuthDoctorChecks(args, env, home) {
6
+ const target = resolveTenantTarget(args, home);
7
+ if (!target.ok) {
8
+ return [
9
+ {
10
+ code: 'live_target',
11
+ level: 'FAIL',
12
+ name: 'Live exchange',
13
+ message: target.error.message,
14
+ fix: target.error.fix,
15
+ },
16
+ ];
17
+ }
18
+ const token = env.NOODLE_CUSTOMER_TOKEN;
19
+ if (!token) {
20
+ return [
21
+ {
22
+ code: 'live_customer_token',
23
+ level: 'FAIL',
24
+ name: 'Live customer token',
25
+ message: 'NOODLE_CUSTOMER_TOKEN is not set',
26
+ fix: 'Set NOODLE_CUSTOMER_TOKEN to a short-lived bearer token for a real customer caller.',
27
+ },
28
+ ];
29
+ }
30
+ const service = target.serviceUrl ??
31
+ resolveServiceUrl(args.service, env, readConfig(home)) ??
32
+ DEFAULT_SERVICE_URL;
33
+ const url = `${service.replace(/\/+$/, '')}/v1/orgs/${encodeURIComponent(target.org)}` +
34
+ `/apps/${encodeURIComponent(target.app)}/envs/${encodeURIComponent(target.env)}/auth/doctor`;
35
+ let response;
36
+ try {
37
+ response = await fetch(url, {
38
+ method: 'POST',
39
+ headers: {
40
+ authorization: `Bearer ${token}`,
41
+ accept: 'application/json',
42
+ 'x-noodle-cli-version': currentCliVersion(),
43
+ },
44
+ });
45
+ }
46
+ catch (error) {
47
+ return [
48
+ {
49
+ code: 'live_exchange',
50
+ level: 'FAIL',
51
+ name: 'Live exchange',
52
+ message: error instanceof Error ? error.message : String(error),
53
+ fix: 'Check the service URL and network connection.',
54
+ },
55
+ ];
56
+ }
57
+ const body = (await response.json().catch(() => ({})));
58
+ if (!response.ok) {
59
+ return [
60
+ {
61
+ code: 'live_exchange',
62
+ level: 'FAIL',
63
+ name: 'Live exchange',
64
+ message: body.error ?? `HTTP ${response.status}`,
65
+ fix: response.status === 401
66
+ ? 'Mint a fresh customer token for the deployed MCP audience.'
67
+ : 'Check the deployed customer auth and delegated connector configuration.',
68
+ },
69
+ ];
70
+ }
71
+ const checks = (body.checks ?? []).map((check) => ({
72
+ code: 'live_delegated_exchange',
73
+ level: check.ok ? 'PASS' : 'FAIL',
74
+ name: `Live ${check.authKind ?? 'delegated credential'}`,
75
+ message: [check.connectorId, check.operation].filter(Boolean).join('.') +
76
+ (check.reason ? `: ${check.reason}` : ''),
77
+ ...(check.fix ? { fix: check.fix } : {}),
78
+ }));
79
+ if (checks.length === 0) {
80
+ checks.push({
81
+ code: 'live_exchange',
82
+ level: 'PASS',
83
+ name: 'Live exchange',
84
+ message: 'customer identity verified; no delegated connector bindings are configured',
85
+ });
86
+ }
87
+ if (body.audience) {
88
+ checks.unshift({
89
+ code: 'live_customer_audience',
90
+ level: 'PASS',
91
+ name: 'Live customer audience',
92
+ message: body.audience,
93
+ });
94
+ }
95
+ return checks;
96
+ }
97
+ //# sourceMappingURL=auth-live-doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-live-doctor.js","sourceRoot":"","sources":["../../src/commands/auth-live-doctor.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,11 @@
1
1
  export interface AuthDoctorCheck {
2
+ readonly code: string;
2
3
  readonly level: 'PASS' | 'WARN' | 'FAIL';
3
4
  readonly name: string;
5
+ readonly issuer?: string;
4
6
  readonly message: string;
5
7
  readonly fix?: string;
6
8
  }
7
- export declare function oidcMetadataChecks(issuer: string, requireGenericHost?: boolean): Promise<AuthDoctorCheck[]>;
9
+ export declare function oidcMetadataChecks(issuer: string): Promise<AuthDoctorCheck[]>;
10
+ export declare function authDiagnosticUrl(value: string): string;
8
11
  //# sourceMappingURL=auth-metadata-readiness.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-metadata-readiness.d.ts","sourceRoot":"","sources":["../../src/commands/auth-metadata-readiness.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,kBAAkB,UAAQ,GACzB,OAAO,CAAC,eAAe,EAAE,CAAC,CAqF5B"}
1
+ {"version":3,"file":"auth-metadata-readiness.d.ts","sourceRoot":"","sources":["../../src/commands/auth-metadata-readiness.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAiHnF;AAyTD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvD"}
@@ -1,164 +1,278 @@
1
- import { discoverIssuerMetadata, issuerMetadataCandidates, } from '@noodle-borg/auth';
2
- export async function oidcMetadataChecks(issuer, requireGenericHost = false) {
3
- let metadata;
4
- let candidate;
5
- if (requireGenericHost) {
6
- const primary = issuerMetadataCandidates(issuer)[0];
7
- if (primary === undefined)
8
- return [metadataFailure('no issuer metadata candidate')];
9
- const loaded = await loadStrictHostMetadata(primary, issuer);
10
- if (!loaded.ok)
11
- return [loaded.check];
12
- metadata = loaded.metadata;
13
- candidate = primary;
14
- }
15
- else {
16
- try {
17
- const discovered = await discoverIssuerMetadata(issuer, loadMetadata);
18
- metadata = discovered.metadata;
19
- candidate = discovered;
20
- }
21
- catch (error) {
22
- return [metadataFailure(error instanceof Error ? error.message : String(error))];
23
- }
24
- }
1
+ import { issuerMetadataCandidates } from '@noodle-borg/auth';
2
+ const MAX_JSON_BYTES = 256 * 1024;
3
+ const FETCH_TIMEOUT_MS = 5_000;
4
+ export async function oidcMetadataChecks(issuer) {
5
+ const primary = issuerMetadataCandidates(issuer)[0];
6
+ if (primary === undefined)
7
+ return [metadataFailure(issuer, 'no issuer metadata candidate')];
8
+ const loaded = await loadStrictHostMetadata(primary, issuer);
9
+ if (!loaded.ok)
10
+ return [loaded.check];
11
+ const metadata = loaded.metadata;
12
+ const issuerMatches = metadata.issuer === issuer;
25
13
  const checks = [
26
- {
27
- level: 'PASS',
28
- name: requireGenericHost ? 'MCP host discovery' : 'OIDC metadata',
29
- message: `${candidate.kind === 'oauth-authorization-server' ? 'RFC 8414 authorization-server metadata' : 'OpenID Connect discovery'} (${candidate.url})`,
30
- },
14
+ pass('oauth_metadata_discovery', 'MCP host discovery', issuer, `RFC 8414 authorization-server metadata (${safeUrl(primary.url)})`),
15
+ issuerMatches
16
+ ? pass('oauth_issuer_match', 'Issuer metadata', issuer, 'issuer matches exactly')
17
+ : fail('oauth_issuer_match', 'Issuer metadata', issuer, 'configured issuer and metadata issuer do not match exactly', 'Publish the exact configured issuer value in the RFC 8414 metadata response.'),
18
+ endpointCheck(metadata, 'authorization_endpoint', 'oauth_authorization_endpoint', 'Authorization endpoint', issuer, 'Publish an HTTPS authorization_endpoint in RFC 8414 metadata.'),
19
+ endpointCheck(metadata, 'token_endpoint', 'oauth_token_endpoint', 'Token endpoint', issuer, 'Publish an HTTPS token_endpoint in RFC 8414 metadata.'),
20
+ endpointCheck(metadata, 'registration_endpoint', 'oauth_registration_endpoint', 'Dynamic client registration', issuer, 'Publish an HTTPS RFC 7591 registration_endpoint so remote MCP clients can register a public OAuth client.'),
21
+ supportedValueCheck(metadata, 'response_types_supported', 'code', 'oauth_response_type_code', 'Authorization code flow', issuer, 'Advertise "code" in response_types_supported.'),
22
+ supportedValueCheck(metadata, 'grant_types_supported', 'authorization_code', 'oauth_authorization_code', 'Authorization code grant', issuer, 'Advertise "authorization_code" in grant_types_supported.'),
23
+ supportedValueCheck(metadata, 'grant_types_supported', 'refresh_token', 'oauth_refresh_token', 'Refresh token grant', issuer, 'Advertise and implement "refresh_token" in grant_types_supported.'),
24
+ supportedValueCheck(metadata, 'code_challenge_methods_supported', 'S256', 'oauth_pkce_s256', 'PKCE', issuer, 'Advertise and require "S256" in code_challenge_methods_supported.'),
25
+ supportedValueCheck(metadata, 'token_endpoint_auth_methods_supported', 'none', 'oauth_public_client', 'Public OAuth clients', issuer, 'Advertise and accept "none" in token_endpoint_auth_methods_supported for PKCE public clients.'),
31
26
  ];
32
- if (requireGenericHost) {
33
- const registrationEndpoint = typeof metadata.registration_endpoint === 'string' &&
34
- metadata.registration_endpoint.trim().length > 0
35
- ? metadata.registration_endpoint
36
- : undefined;
37
- checks.push(registrationEndpoint === undefined
38
- ? {
39
- level: 'FAIL',
40
- name: 'Dynamic client registration',
41
- message: 'missing registration_endpoint',
42
- fix: 'Publish an RFC 7591 registration_endpoint so generic MCP hosts such as ChatGPT and Claude can create an OAuth client.',
43
- }
44
- : {
45
- level: 'PASS',
46
- name: 'Dynamic client registration',
47
- message: registrationEndpoint,
48
- });
49
- }
50
- const jwksUri = typeof metadata.jwks_uri === 'string' ? metadata.jwks_uri : undefined;
27
+ // Do not follow a JWKS URL supplied by metadata that does not belong to the configured issuer.
28
+ if (!issuerMatches)
29
+ return checks;
30
+ const jwksUri = httpsEndpoint(metadata.jwks_uri);
51
31
  if (jwksUri === undefined) {
52
- checks.push({
53
- level: 'FAIL',
54
- name: 'JWKS',
55
- message: 'missing jwks_uri',
56
- fix: 'Publish a public JWKS URI in issuer metadata.',
57
- });
32
+ checks.push(fail('oauth_jwks', 'JWKS', issuer, 'missing or invalid HTTPS jwks_uri', 'Publish an HTTPS jwks_uri and a public JSON Web Key Set in issuer metadata.'));
58
33
  return checks;
59
34
  }
60
- try {
61
- const response = await fetch(jwksUri, {
62
- headers: { accept: 'application/json' },
63
- redirect: 'manual',
64
- });
65
- checks.push(response.ok
66
- ? { level: 'PASS', name: 'JWKS', message: jwksUri }
67
- : {
68
- level: 'FAIL',
69
- name: 'JWKS',
70
- message: `HTTP ${response.status}`,
71
- fix: 'Make the JWKS endpoint publicly reachable.',
72
- });
73
- }
74
- catch (error) {
75
- checks.push({
76
- level: 'FAIL',
77
- name: 'JWKS',
78
- message: error instanceof Error ? error.message : String(error),
79
- fix: 'Make the JWKS endpoint publicly reachable.',
80
- });
81
- }
35
+ checks.push(await jwksCheck(jwksUri, issuer));
82
36
  return checks;
83
37
  }
84
- async function loadMetadata(url) {
85
- const response = await fetch(url, {
86
- headers: { accept: 'application/json' },
87
- redirect: 'manual',
88
- });
89
- if (!response.ok)
90
- throw new Error(`${url}: HTTP ${response.status}`);
91
- const metadata = (await response.json());
92
- if (typeof metadata !== 'object' || metadata === null || Array.isArray(metadata)) {
93
- throw new Error(`${url}: metadata must be a JSON object`);
94
- }
95
- return metadata;
96
- }
97
38
  async function loadStrictHostMetadata(candidate, issuer) {
98
39
  let response;
99
40
  try {
100
- response = await fetch(candidate.url, {
101
- headers: { accept: 'application/json' },
102
- redirect: 'manual',
103
- });
41
+ response = await fetch(candidate.url, requestInit());
104
42
  }
105
43
  catch (error) {
106
44
  return {
107
45
  ok: false,
108
- check: hostFailure(candidate.url, error instanceof Error ? error.message : String(error)),
46
+ check: hostFailure(issuer, candidate.url, safeErrorMessage(error, 'metadata request failed')),
109
47
  };
110
48
  }
111
49
  if (response.status !== 200) {
112
50
  const location = safeRedirectLocation(response.headers.get('location'), candidate.url);
51
+ await cancelResponseBody(response);
113
52
  return {
114
53
  ok: false,
115
- check: hostFailure(candidate.url, `HTTP ${response.status}${location === undefined ? '' : ` → ${location}`}`),
54
+ check: hostFailure(issuer, candidate.url, `HTTP ${response.status}${location === undefined ? '' : ` → ${location}`}`),
116
55
  };
117
56
  }
118
- let metadata;
57
+ const parsed = await readJsonObject(response);
58
+ if (!parsed.ok) {
59
+ return { ok: false, check: hostFailure(issuer, candidate.url, parsed.reason) };
60
+ }
61
+ return { ok: true, metadata: parsed.value };
62
+ }
63
+ async function jwksCheck(jwksUri, issuer) {
64
+ let response;
65
+ try {
66
+ response = await fetch(jwksUri, requestInit());
67
+ }
68
+ catch (error) {
69
+ return fail('oauth_jwks', 'JWKS', issuer, safeErrorMessage(error, 'JWKS request failed'), 'Make the public JWKS endpoint directly reachable as HTTP 200 JSON.');
70
+ }
71
+ if (response.status !== 200) {
72
+ await cancelResponseBody(response);
73
+ return fail('oauth_jwks', 'JWKS', issuer, `${safeUrl(jwksUri)}: HTTP ${response.status}`, 'Make the public JWKS endpoint directly reachable as HTTP 200 JSON.');
74
+ }
75
+ const parsed = await readJsonObject(response);
76
+ if (!parsed.ok) {
77
+ return fail('oauth_jwks', 'JWKS', issuer, `${safeUrl(jwksUri)}: ${parsed.reason}`, 'Return a bounded JSON Web Key Set with at least one public signing key.');
78
+ }
79
+ const keys = Array.isArray(parsed.value.keys) ? parsed.value.keys : [];
80
+ const publicKeys = keys.filter(isPublicJwk);
81
+ if (publicKeys.length === 0) {
82
+ return fail('oauth_jwks', 'JWKS', issuer, `${safeUrl(jwksUri)}: no valid public signing keys`, 'Publish at least one public RSA, EC, or OKP signing key; never publish private key material.');
83
+ }
84
+ return pass('oauth_jwks', 'JWKS', issuer, `${safeUrl(jwksUri)} (${publicKeys.length} public signing key${publicKeys.length === 1 ? '' : 's'})`);
85
+ }
86
+ function endpointCheck(metadata, field, code, name, issuer, fix) {
87
+ const endpoint = httpsEndpoint(metadata[field]);
88
+ return endpoint === undefined
89
+ ? fail(code, name, issuer, `missing or invalid HTTPS ${field}`, fix)
90
+ : pass(code, name, issuer, safeUrl(endpoint));
91
+ }
92
+ function supportedValueCheck(metadata, field, required, code, name, issuer, fix) {
93
+ const values = Array.isArray(metadata[field])
94
+ ? metadata[field].filter((value) => typeof value === 'string')
95
+ : [];
96
+ return values.includes(required)
97
+ ? pass(code, name, issuer, `${field} includes "${required}"`)
98
+ : fail(code, name, issuer, `${field} does not include "${required}"`, fix);
99
+ }
100
+ async function readJsonObject(response) {
101
+ const contentLength = response.headers.get('content-length');
102
+ const declaredLength = contentLength === null ? undefined : Number(contentLength);
103
+ if (declaredLength !== undefined &&
104
+ Number.isFinite(declaredLength) &&
105
+ declaredLength > MAX_JSON_BYTES) {
106
+ await cancelResponseBody(response);
107
+ return { ok: false, reason: `JSON response exceeds ${MAX_JSON_BYTES} bytes` };
108
+ }
109
+ const loaded = await readBoundedText(response);
110
+ if (!loaded.ok)
111
+ return loaded;
112
+ let value;
119
113
  try {
120
- metadata = await response.json();
114
+ value = JSON.parse(loaded.text);
121
115
  }
122
116
  catch {
123
- return { ok: false, check: hostFailure(candidate.url, 'metadata is not valid JSON') };
117
+ return { ok: false, reason: 'response is not valid JSON' };
118
+ }
119
+ if (typeof value !== 'object' || value === null || Array.isArray(value)) {
120
+ return { ok: false, reason: 'JSON response must be an object' };
124
121
  }
125
- if (typeof metadata !== 'object' || metadata === null || Array.isArray(metadata)) {
126
- return { ok: false, check: hostFailure(candidate.url, 'metadata must be a JSON object') };
122
+ return { ok: true, value: value };
123
+ }
124
+ async function readBoundedText(response) {
125
+ if (response.body === null)
126
+ return { ok: true, text: '' };
127
+ const reader = response.body.getReader();
128
+ const decoder = new TextDecoder();
129
+ const chunks = [];
130
+ let bytes = 0;
131
+ try {
132
+ while (true) {
133
+ const chunk = await reader.read();
134
+ if (chunk.done)
135
+ break;
136
+ bytes += chunk.value.byteLength;
137
+ if (bytes > MAX_JSON_BYTES) {
138
+ await reader.cancel().catch(() => undefined);
139
+ return { ok: false, reason: `JSON response exceeds ${MAX_JSON_BYTES} bytes` };
140
+ }
141
+ chunks.push(decoder.decode(chunk.value, { stream: true }));
142
+ }
143
+ chunks.push(decoder.decode());
144
+ return { ok: true, text: chunks.join('') };
145
+ }
146
+ catch {
147
+ await reader.cancel().catch(() => undefined);
148
+ return { ok: false, reason: 'could not read JSON response' };
127
149
  }
128
- const record = metadata;
129
- if (typeof record.issuer !== 'string' ||
130
- record.issuer.replace(/\/+$/, '') !== issuer.replace(/\/+$/, '')) {
131
- return { ok: false, check: hostFailure(candidate.url, 'issuer metadata mismatch') };
150
+ finally {
151
+ reader.releaseLock();
132
152
  }
133
- return { ok: true, metadata: record };
134
153
  }
135
- function metadataFailure(message) {
136
- return {
137
- level: 'FAIL',
138
- name: 'OIDC metadata',
139
- message,
140
- fix: 'Expose OpenID Connect or RFC 8414 issuer metadata over HTTPS.',
141
- };
154
+ async function cancelResponseBody(response) {
155
+ await response.body?.cancel().catch(() => undefined);
156
+ }
157
+ function isPublicJwk(value) {
158
+ if (typeof value !== 'object' || value === null || Array.isArray(value))
159
+ return false;
160
+ const key = value;
161
+ if (['d', 'p', 'q', 'dp', 'dq', 'qi', 'oth', 'k'].some((field) => field in key))
162
+ return false;
163
+ if (key.use !== undefined && key.use !== 'sig')
164
+ return false;
165
+ if (key.key_ops !== undefined &&
166
+ (!Array.isArray(key.key_ops) || !key.key_ops.includes('verify'))) {
167
+ return false;
168
+ }
169
+ if (key.kty === 'RSA')
170
+ return validRsaPublicKey(key.n, key.e);
171
+ if (key.kty === 'EC') {
172
+ const coordinateBytes = key.crv === 'P-256' ? 32 : key.crv === 'P-384' ? 48 : key.crv === 'P-521' ? 66 : undefined;
173
+ return (coordinateBytes !== undefined &&
174
+ base64UrlBytes(key.x)?.byteLength === coordinateBytes &&
175
+ base64UrlBytes(key.y)?.byteLength === coordinateBytes);
176
+ }
177
+ if (key.kty === 'OKP') {
178
+ const coordinateBytes = key.crv === 'Ed25519' ? 32 : key.crv === 'Ed448' ? 57 : undefined;
179
+ return coordinateBytes !== undefined && base64UrlBytes(key.x)?.byteLength === coordinateBytes;
180
+ }
181
+ return false;
182
+ }
183
+ function validRsaPublicKey(modulusValue, exponentValue) {
184
+ const modulus = base64UrlBytes(modulusValue);
185
+ const exponent = base64UrlBytes(exponentValue);
186
+ if (modulus === undefined || exponent === undefined || exponent.byteLength > 8)
187
+ return false;
188
+ if (modulus.byteLength < 256)
189
+ return false;
190
+ if (modulus.byteLength === 256 && (modulus[0] ?? 0) < 0x80)
191
+ return false;
192
+ if (((modulus.at(-1) ?? 0) & 1) === 0)
193
+ return false;
194
+ let exponentNumber = 0n;
195
+ for (const byte of exponent)
196
+ exponentNumber = (exponentNumber << 8n) | BigInt(byte);
197
+ return exponentNumber >= 3n && (exponentNumber & 1n) === 1n;
198
+ }
199
+ function base64UrlBytes(value) {
200
+ if (!nonEmpty(value) || !/^[A-Za-z0-9_-]+$/u.test(value) || value.length % 4 === 1) {
201
+ return undefined;
202
+ }
203
+ const decoded = Buffer.from(value, 'base64url');
204
+ return decoded.byteLength > 0 && decoded.toString('base64url') === value ? decoded : undefined;
205
+ }
206
+ function httpsEndpoint(value) {
207
+ if (!nonEmpty(value))
208
+ return undefined;
209
+ try {
210
+ const parsed = new URL(value);
211
+ if (parsed.protocol !== 'https:' || parsed.username || parsed.password)
212
+ return undefined;
213
+ return parsed.toString();
214
+ }
215
+ catch {
216
+ return undefined;
217
+ }
142
218
  }
143
- function hostFailure(url, reason) {
219
+ function nonEmpty(value) {
220
+ return typeof value === 'string' && value.trim().length > 0;
221
+ }
222
+ function requestInit() {
144
223
  return {
145
- level: 'FAIL',
146
- name: 'MCP host discovery',
147
- message: `${url}: ${reason}`,
148
- fix: 'Serve this path-inserted RFC 8414 metadata URL directly as HTTP 200 JSON without redirecting to login.',
224
+ headers: { accept: 'application/json' },
225
+ redirect: 'manual',
226
+ signal: AbortSignal.timeout(FETCH_TIMEOUT_MS),
149
227
  };
150
228
  }
229
+ function pass(code, name, issuer, message) {
230
+ return { code, level: 'PASS', name, issuer: authDiagnosticUrl(issuer), message };
231
+ }
232
+ function fail(code, name, issuer, message, fix) {
233
+ return { code, level: 'FAIL', name, issuer: authDiagnosticUrl(issuer), message, fix };
234
+ }
235
+ function metadataFailure(issuer, message) {
236
+ return hostFailure(issuer, issuer, message);
237
+ }
238
+ function hostFailure(issuer, url, reason) {
239
+ return fail('oauth_metadata_discovery', 'MCP host discovery', issuer, `${safeUrl(url)}: ${reason}`, 'Serve this path-inserted RFC 8414 metadata URL directly as HTTP 200 JSON without redirecting to login.');
240
+ }
151
241
  function safeRedirectLocation(location, base) {
152
242
  if (location === null)
153
243
  return undefined;
154
244
  try {
155
- const parsed = new URL(location, base);
245
+ return safeUrl(new URL(location, base).toString());
246
+ }
247
+ catch {
248
+ return undefined;
249
+ }
250
+ }
251
+ function safeUrl(value) {
252
+ try {
253
+ const parsed = new URL(value);
254
+ const hadCredentials = parsed.username.length > 0 || parsed.password.length > 0;
255
+ parsed.username = '';
256
+ parsed.password = '';
156
257
  parsed.search = '';
157
258
  parsed.hash = '';
158
- return parsed.toString();
259
+ const sanitized = parsed.toString();
260
+ const firstSensitiveDelimiter = value.search(/[?#]/u);
261
+ const originalWithoutQuery = firstSensitiveDelimiter === -1 ? value : value.slice(0, firstSensitiveDelimiter);
262
+ return !hadCredentials && sanitized === `${originalWithoutQuery}/`
263
+ ? originalWithoutQuery
264
+ : sanitized;
159
265
  }
160
266
  catch {
161
- return undefined;
267
+ return 'invalid URL';
162
268
  }
163
269
  }
270
+ export function authDiagnosticUrl(value) {
271
+ return safeUrl(value);
272
+ }
273
+ function safeErrorMessage(error, fallback) {
274
+ const message = error instanceof Error ? error.message : String(error);
275
+ const withoutUrls = message.replace(/https?:\/\/\S+/gu, '[URL]');
276
+ return withoutUrls.trim().slice(0, 240) || fallback;
277
+ }
164
278
  //# sourceMappingURL=auth-metadata-readiness.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-metadata-readiness.js","sourceRoot":"","sources":["../../src/commands/auth-metadata-readiness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth-metadata-readiness.js","sourceRoot":"","sources":["../../src/commands/auth-metadata-readiness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAE3F,MAAM,cAAc,GAAG,GAAG,GAAG,IAAI,CAAC;AAClC,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAW/B,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAc;IACrD,MAAM,OAAO,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC,CAAC;IAC5F,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7D,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEtC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACjC,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC;IACjD,MAAM,MAAM,GAAsB;QAChC,IAAI,CACF,0BAA0B,EAC1B,oBAAoB,EACpB,MAAM,EACN,2CAA2C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CACnE;QACD,aAAa;YACX,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,EAAE,wBAAwB,CAAC;YACjF,CAAC,CAAC,IAAI,CACF,oBAAoB,EACpB,iBAAiB,EACjB,MAAM,EACN,4DAA4D,EAC5D,8EAA8E,CAC/E;QACL,aAAa,CACX,QAAQ,EACR,wBAAwB,EACxB,8BAA8B,EAC9B,wBAAwB,EACxB,MAAM,EACN,+DAA+D,CAChE;QACD,aAAa,CACX,QAAQ,EACR,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,MAAM,EACN,uDAAuD,CACxD;QACD,aAAa,CACX,QAAQ,EACR,uBAAuB,EACvB,6BAA6B,EAC7B,6BAA6B,EAC7B,MAAM,EACN,2GAA2G,CAC5G;QACD,mBAAmB,CACjB,QAAQ,EACR,0BAA0B,EAC1B,MAAM,EACN,0BAA0B,EAC1B,yBAAyB,EACzB,MAAM,EACN,+CAA+C,CAChD;QACD,mBAAmB,CACjB,QAAQ,EACR,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,EAC1B,0BAA0B,EAC1B,MAAM,EACN,0DAA0D,CAC3D;QACD,mBAAmB,CACjB,QAAQ,EACR,uBAAuB,EACvB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,MAAM,EACN,mEAAmE,CACpE;QACD,mBAAmB,CACjB,QAAQ,EACR,kCAAkC,EAClC,MAAM,EACN,iBAAiB,EACjB,MAAM,EACN,MAAM,EACN,mEAAmE,CACpE;QACD,mBAAmB,CACjB,QAAQ,EACR,uCAAuC,EACvC,MAAM,EACN,qBAAqB,EACrB,sBAAsB,EACtB,MAAM,EACN,+FAA+F,CAChG;KACF,CAAC;IAEF,+FAA+F;IAC/F,IAAI,CAAC,aAAa;QAAE,OAAO,MAAM,CAAC;IAElC,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CACT,IAAI,CACF,YAAY,EACZ,MAAM,EACN,MAAM,EACN,mCAAmC,EACnC,6EAA6E,CAC9E,CACF,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,MAAM,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,SAAkC,EAClC,MAAc;IAKd,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,EAAE,gBAAgB,CAAC,KAAK,EAAE,yBAAyB,CAAC,CAAC;SAC9F,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,oBAAoB,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;QACvF,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACnC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,WAAW,CAChB,MAAM,EACN,SAAS,CAAC,GAAG,EACb,QAAQ,QAAQ,CAAC,MAAM,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,QAAQ,EAAE,EAAE,CAC3E;SACF,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IACjF,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;AAC9C,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,OAAe,EAAE,MAAc;IACtD,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,IAAI,CACT,YAAY,EACZ,MAAM,EACN,MAAM,EACN,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,CAAC,EAC9C,oEAAoE,CACrE,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACnC,OAAO,IAAI,CACT,YAAY,EACZ,MAAM,EACN,MAAM,EACN,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,QAAQ,CAAC,MAAM,EAAE,EAC9C,oEAAoE,CACrE,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,IAAI,CACT,YAAY,EACZ,MAAM,EACN,MAAM,EACN,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,EACvC,yEAAyE,CAC1E,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CACT,YAAY,EACZ,MAAM,EACN,MAAM,EACN,GAAG,OAAO,CAAC,OAAO,CAAC,gCAAgC,EACnD,8FAA8F,CAC/F,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CACT,YAAY,EACZ,MAAM,EACN,MAAM,EACN,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,UAAU,CAAC,MAAM,sBAAsB,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CACrG,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,QAAiC,EACjC,KAAa,EACb,IAAY,EACZ,IAAY,EACZ,MAAc,EACd,GAAW;IAEX,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAChD,OAAO,QAAQ,KAAK,SAAS;QAC3B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,4BAA4B,KAAK,EAAE,EAAE,GAAG,CAAC;QACpE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,mBAAmB,CAC1B,QAAiC,EACjC,KAAa,EACb,QAAgB,EAChB,IAAY,EACZ,IAAY,EACZ,MAAc,EACd,GAAW;IAEX,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;QAC/E,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC9B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,cAAc,QAAQ,GAAG,CAAC;QAC7D,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,sBAAsB,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAC;AAC/E,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,QAAkB;IAKlB,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC7D,MAAM,cAAc,GAAG,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAClF,IACE,cAAc,KAAK,SAAS;QAC5B,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC/B,cAAc,GAAG,cAAc,EAC/B,CAAC;QACD,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACnC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAyB,cAAc,QAAQ,EAAE,CAAC;IAChF,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC;IAC9B,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC;IAC7D,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,iCAAiC,EAAE,CAAC;IAClE,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAgC,EAAE,CAAC;AAC/D,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,QAAkB;IAIlB,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAC1D,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAClC,IAAI,KAAK,CAAC,IAAI;gBAAE,MAAM;YACtB,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;YAChC,IAAI,KAAK,GAAG,cAAc,EAAE,CAAC;gBAC3B,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAC7C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAyB,cAAc,QAAQ,EAAE,CAAC;YAChF,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC7C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,8BAA8B,EAAE,CAAC;IAC/D,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,QAAkB;IAClD,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtF,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9F,IAAI,GAAG,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,GAAG,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IAC7D,IACE,GAAG,CAAC,OAAO,KAAK,SAAS;QACzB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAChE,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,GAAG,CAAC,GAAG,KAAK,KAAK;QAAE,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC9D,IAAI,GAAG,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;QACrB,MAAM,eAAe,GACnB,GAAG,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7F,OAAO,CACL,eAAe,KAAK,SAAS;YAC7B,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,KAAK,eAAe;YACrD,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,KAAK,eAAe,CACtD,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;QACtB,MAAM,eAAe,GAAG,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1F,OAAO,eAAe,KAAK,SAAS,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,KAAK,eAAe,CAAC;IAChG,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CAAC,YAAqB,EAAE,aAAsB;IACtE,MAAM,OAAO,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;IAC/C,IAAI,OAAO,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,UAAU,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7F,IAAI,OAAO,CAAC,UAAU,GAAG,GAAG;QAAE,OAAO,KAAK,CAAC;IAC3C,IAAI,OAAO,CAAC,UAAU,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI;QAAE,OAAO,KAAK,CAAC;IACzE,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpD,IAAI,cAAc,GAAG,EAAE,CAAC;IACxB,KAAK,MAAM,IAAI,IAAI,QAAQ;QAAE,cAAc,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACpF,OAAO,cAAc,IAAI,EAAE,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;AAC9D,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACnF,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAChD,OAAO,OAAO,CAAC,UAAU,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACjG,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAC;QACzF,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,WAAW;IAClB,OAAO;QACL,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;QACvC,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED,SAAS,IAAI,CAAC,IAAY,EAAE,IAAY,EAAE,MAAc,EAAE,OAAe;IACvE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;AACnF,CAAC;AAED,SAAS,IAAI,CACX,IAAY,EACZ,IAAY,EACZ,MAAc,EACd,OAAe,EACf,GAAW;IAEX,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AACxF,CAAC;AAED,SAAS,eAAe,CAAC,MAAc,EAAE,OAAe;IACtD,OAAO,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,WAAW,CAAC,MAAc,EAAE,GAAW,EAAE,MAAc;IAC9D,OAAO,IAAI,CACT,0BAA0B,EAC1B,oBAAoB,EACpB,MAAM,EACN,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,EAAE,EAC5B,wGAAwG,CACzG,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAuB,EAAE,IAAY;IACjE,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACxC,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC5B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9B,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAChF,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;QACrB,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;QACrB,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,uBAAuB,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,oBAAoB,GACxB,uBAAuB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC;QACnF,OAAO,CAAC,cAAc,IAAI,SAAS,KAAK,GAAG,oBAAoB,GAAG;YAChE,CAAC,CAAC,oBAAoB;YACtB,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,aAAa,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc,EAAE,QAAgB;IACxD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IACjE,OAAO,WAAW,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,QAAQ,CAAC;AACtD,CAAC"}
@@ -1,6 +1,22 @@
1
1
  import type { ConfigLocation } from '../config.js';
2
2
  import { type AuthDoctorCheck } from './auth-metadata-readiness.js';
3
+ interface AuthDoctorArgs {
4
+ readonly entrypoint?: string;
5
+ readonly json: boolean;
6
+ readonly live: boolean;
7
+ readonly org?: string;
8
+ readonly app?: string;
9
+ readonly targetEnv?: string;
10
+ readonly service?: string;
11
+ }
3
12
  export declare function runAuth(rest: readonly string[], env?: NodeJS.ProcessEnv, home?: ConfigLocation): Promise<number>;
13
+ export declare function staticAuthDoctor(args: AuthDoctorArgs): Promise<AuthDoctorCheck[]>;
4
14
  /** Failures that must be cleared before an interactive local host preview can claim OAuth readiness. */
5
15
  export declare function genericHostAuthReadiness(entrypoint: string): Promise<readonly AuthDoctorCheck[]>;
16
+ export interface AuthReadiness {
17
+ readonly ready: boolean;
18
+ readonly checks: readonly AuthDoctorCheck[];
19
+ }
20
+ export declare function authReadinessForEntrypoint(entrypoint: string): Promise<AuthReadiness>;
21
+ export {};
6
22
  //# sourceMappingURL=auth-ops.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-ops.d.ts","sourceRoot":"","sources":["../../src/commands/auth-ops.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAMnD,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,8BAA8B,CAAC;AAexF,wBAAsB,OAAO,CAC3B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,IAAI,CAAC,EAAE,cAAc,GACpB,OAAO,CAAC,MAAM,CAAC,CASjB;AAuPD,wGAAwG;AACxG,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC,CAQrC"}
1
+ {"version":3,"file":"auth-ops.d.ts","sourceRoot":"","sources":["../../src/commands/auth-ops.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAKnD,OAAO,EACL,KAAK,eAAe,EAGrB,MAAM,8BAA8B,CAAC;AAGtC,UAAU,cAAc;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAsB,OAAO,CAC3B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,IAAI,CAAC,EAAE,cAAc,GACpB,OAAO,CAAC,MAAM,CAAC,CASjB;AAeD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAqRvF;AAED,wGAAwG;AACxG,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC,CAGrC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;CAC7C;AAED,wBAAsB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAM3F"}