@37signals/basecamp 0.7.3 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/README.md +80 -1
  2. package/dist/client.d.ts +4 -4
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +30 -23
  5. package/dist/client.js.map +1 -1
  6. package/dist/download.d.ts.map +1 -1
  7. package/dist/errors.d.ts +10 -0
  8. package/dist/errors.d.ts.map +1 -1
  9. package/dist/errors.js +7 -1
  10. package/dist/errors.js.map +1 -1
  11. package/dist/generated/metadata.d.ts +32 -0
  12. package/dist/generated/metadata.d.ts.map +1 -0
  13. package/dist/generated/metadata.js +2670 -0
  14. package/dist/generated/metadata.js.map +1 -0
  15. package/dist/generated/{metadata.json → metadata.ts} +98 -45
  16. package/dist/generated/openapi-stripped.json +713 -440
  17. package/dist/generated/path-mapping.d.ts.map +1 -1
  18. package/dist/generated/path-mapping.js +6 -5
  19. package/dist/generated/path-mapping.js.map +1 -1
  20. package/dist/generated/path-mapping.ts +6 -5
  21. package/dist/generated/schema.d.ts +510 -297
  22. package/dist/generated/services/campfires.d.ts +22 -1
  23. package/dist/generated/services/campfires.d.ts.map +1 -1
  24. package/dist/generated/services/campfires.js +33 -1
  25. package/dist/generated/services/campfires.js.map +1 -1
  26. package/dist/generated/services/campfires.ts +46 -1
  27. package/dist/generated/services/card-columns.d.ts +31 -28
  28. package/dist/generated/services/card-columns.d.ts.map +1 -1
  29. package/dist/generated/services/card-columns.js +54 -51
  30. package/dist/generated/services/card-columns.js.map +1 -1
  31. package/dist/generated/services/card-columns.ts +62 -59
  32. package/dist/generated/services/index.d.ts +2 -2
  33. package/dist/generated/services/index.d.ts.map +1 -1
  34. package/dist/generated/services/index.js +2 -2
  35. package/dist/generated/services/index.js.map +1 -1
  36. package/dist/generated/services/index.ts +2 -2
  37. package/dist/generated/services/reports.d.ts +1 -1
  38. package/dist/generated/services/reports.js +1 -1
  39. package/dist/generated/services/reports.ts +1 -1
  40. package/dist/generated/services/todos.d.ts +8 -8
  41. package/dist/generated/services/todos.d.ts.map +1 -1
  42. package/dist/generated/services/todos.js +9 -6
  43. package/dist/generated/services/todos.js.map +1 -1
  44. package/dist/generated/services/todos.ts +12 -9
  45. package/dist/generated/services/tools.d.ts +11 -10
  46. package/dist/generated/services/tools.d.ts.map +1 -1
  47. package/dist/generated/services/tools.js +16 -8
  48. package/dist/generated/services/tools.js.map +1 -1
  49. package/dist/generated/services/tools.ts +21 -13
  50. package/dist/index.d.ts +6 -4
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +3 -3
  53. package/dist/index.js.map +1 -1
  54. package/dist/oauth/discovery.d.ts +105 -23
  55. package/dist/oauth/discovery.d.ts.map +1 -1
  56. package/dist/oauth/discovery.js +453 -61
  57. package/dist/oauth/discovery.js.map +1 -1
  58. package/dist/oauth/index.d.ts +2 -2
  59. package/dist/oauth/index.d.ts.map +1 -1
  60. package/dist/oauth/index.js +1 -1
  61. package/dist/oauth/index.js.map +1 -1
  62. package/dist/oauth/interactive-login.d.ts +20 -2
  63. package/dist/oauth/interactive-login.d.ts.map +1 -1
  64. package/dist/oauth/interactive-login.js +58 -4
  65. package/dist/oauth/interactive-login.js.map +1 -1
  66. package/dist/oauth/types.d.ts +54 -2
  67. package/dist/oauth/types.d.ts.map +1 -1
  68. package/dist/security.d.ts +22 -0
  69. package/dist/security.d.ts.map +1 -1
  70. package/dist/security.js +56 -1
  71. package/dist/security.js.map +1 -1
  72. package/dist/services/authorization.d.ts.map +1 -1
  73. package/dist/services/authorization.js +3 -0
  74. package/dist/services/authorization.js.map +1 -1
  75. package/dist/services/base.d.ts.map +1 -1
  76. package/dist/services/base.js +1 -3
  77. package/dist/services/base.js.map +1 -1
  78. package/dist/services/todos-extensions.d.ts +118 -0
  79. package/dist/services/todos-extensions.d.ts.map +1 -0
  80. package/dist/services/todos-extensions.js +113 -0
  81. package/dist/services/todos-extensions.js.map +1 -0
  82. package/dist/services/uploads-extensions.d.ts +33 -0
  83. package/dist/services/uploads-extensions.d.ts.map +1 -0
  84. package/dist/services/uploads-extensions.js +48 -0
  85. package/dist/services/uploads-extensions.js.map +1 -0
  86. package/package.json +7 -4
  87. package/src/generated/{metadata.json → metadata.ts} +98 -45
  88. package/src/generated/openapi-stripped.json +713 -440
  89. package/src/generated/path-mapping.ts +6 -5
  90. package/src/generated/schema.d.ts +510 -297
  91. package/src/generated/services/campfires.ts +46 -1
  92. package/src/generated/services/card-columns.ts +62 -59
  93. package/src/generated/services/index.ts +2 -2
  94. package/src/generated/services/reports.ts +1 -1
  95. package/src/generated/services/todos.ts +12 -9
  96. package/src/generated/services/tools.ts +21 -13
@@ -16,12 +16,12 @@ import { Errors } from "../../errors.js";
16
16
  export type Tool = components["schemas"]["Tool"];
17
17
 
18
18
  /**
19
- * Request parameters for clone.
19
+ * Request parameters for create.
20
20
  */
21
- export interface CloneToolRequest {
22
- /** Source recording id */
23
- sourceRecordingId: number;
24
- /** Title */
21
+ export interface CreateToolRequest {
22
+ /** Tool type to add to the project dock. Values: Chat::Transcript|Inbox|Kanban::Board|Message::Board|Questionnaire|Schedule|Todoset|Vault. */
23
+ toolType: string;
24
+ /** Title for the new tool. When omitted, Basecamp assigns the next available default title for the tool type. */
25
25
  title?: string;
26
26
  }
27
27
 
@@ -52,28 +52,36 @@ export interface RepositionToolRequest {
52
52
  export class ToolsService extends BaseService {
53
53
 
54
54
  /**
55
- * Clone an existing tool to create a new one
56
- * @param req - Tool request parameters
55
+ * Create a tool in a project dock
56
+ * @param bucketId - The bucket ID
57
+ * @param req - Tool creation parameters
57
58
  * @returns The Tool
58
- * @throws {BasecampError} If the request fails
59
+ * @throws {BasecampError} If required fields are missing or invalid
59
60
  *
60
61
  * @example
61
62
  * ```ts
62
- * const result = await client.tools.clone({ sourceRecordingId: 1 });
63
+ * const result = await client.tools.create(123, { toolType: "example" });
63
64
  * ```
64
65
  */
65
- async clone(req: CloneToolRequest): Promise<Tool> {
66
+ async create(bucketId: number, req: CreateToolRequest): Promise<Tool> {
67
+ if (!req.toolType) {
68
+ throw Errors.validation("Tool type is required");
69
+ }
66
70
  const response = await this.request(
67
71
  {
68
72
  service: "Tools",
69
- operation: "CloneTool",
73
+ operation: "CreateTool",
70
74
  resourceType: "tool",
71
75
  isMutation: true,
76
+ resourceId: bucketId,
72
77
  },
73
78
  () =>
74
- this.client.POST("/dock/tools.json", {
79
+ this.client.POST("/buckets/{bucketId}/dock/tools.json", {
80
+ params: {
81
+ path: { bucketId },
82
+ },
75
83
  body: {
76
- source_recording_id: req.sourceRecordingId,
84
+ tool_type: req.toolType,
77
85
  title: req.title,
78
86
  },
79
87
  })
package/dist/index.d.ts CHANGED
@@ -40,7 +40,8 @@ export { chainHooks, consoleHooks, noopHooks, safeInvoke, type BasecampHooks, ty
40
40
  export { BaseService, type FetchResponse } from "./services/base.js";
41
41
  export { AuthorizationService, type Identity, type AuthorizedAccount, type AuthorizationInfo, type GetAuthorizationInfoOptions, } from "./services/authorization.js";
42
42
  export { ProjectsService, type Project, type ListProjectOptions, type CreateProjectRequest, type UpdateProjectRequest, } from "./generated/services/projects.js";
43
- export { TodosService, type Todo, type ListTodoOptions, type CreateTodoRequest, type UpdateTodoRequest, type RepositionTodoRequest, } from "./generated/services/todos.js";
43
+ export { TodosService, type UpdateTodoRequest, type TodoFields, } from "./services/todos-extensions.js";
44
+ export { type Todo, type ListTodoOptions, type CreateTodoRequest, type ReplaceTodoRequest, type RepositionTodoRequest, } from "./generated/services/todos.js";
44
45
  export { TodolistsService, type Todolist, type ListTodolistOptions, type CreateTodolistRequest, type UpdateTodolistRequest, } from "./generated/services/todolists.js";
45
46
  export { TodosetsService, type Todoset, } from "./generated/services/todosets.js";
46
47
  export { HillChartsService, type UpdateSettingsHillChartRequest, } from "./generated/services/hill-charts.js";
@@ -70,7 +71,8 @@ export { EventsService, type Event, } from "./generated/services/events.js";
70
71
  export { AttachmentsService, } from "./generated/services/attachments.js";
71
72
  export { VaultsService, type Vault, type CreateVaultRequest, type UpdateVaultRequest, } from "./generated/services/vaults.js";
72
73
  export { DocumentsService, type Document, type CreateDocumentRequest, type UpdateDocumentRequest, } from "./generated/services/documents.js";
73
- export { UploadsService, type Upload, type CreateUploadRequest, type UpdateUploadRequest, } from "./generated/services/uploads.js";
74
+ export { UploadsService } from "./services/uploads-extensions.js";
75
+ export { type Upload, type CreateUploadRequest, type UpdateUploadRequest, } from "./generated/services/uploads.js";
74
76
  export { SchedulesService, type Schedule, type ScheduleEntry, type CreateEntryScheduleRequest, type UpdateEntryScheduleRequest, type UpdateSettingsScheduleRequest, type ListEntriesScheduleOptions, } from "./generated/services/schedules.js";
75
77
  export { TimesheetsService, type ForRecordingTimesheetOptions, type ForProjectTimesheetOptions, type ReportTimesheetOptions, } from "./generated/services/timesheets.js";
76
78
  export { TimelineService, } from "./generated/services/timeline.js";
@@ -88,8 +90,8 @@ export { GaugesService, } from "./generated/services/gauges.js";
88
90
  export { MyAssignmentsService, } from "./generated/services/my-assignments.js";
89
91
  export { MyNotificationsService, } from "./generated/services/my-notifications.js";
90
92
  export { otelHooks, type OtelHooksOptions, } from "./hooks/otel.js";
91
- export type { OAuthConfig, OAuthToken, ExchangeRequest, RefreshRequest, RawTokenResponse, OAuthErrorResponse, } from "./oauth/types.js";
92
- export { discover, discoverLaunchpad, LAUNCHPAD_BASE_URL, type DiscoverOptions, } from "./oauth/discovery.js";
93
+ export type { OAuthConfig, OAuthToken, ExchangeRequest, RefreshRequest, RawTokenResponse, OAuthErrorResponse, ProtectedResourceMetadata, FallbackReason, DiscoverySelectionErrorReason, DiscoverFromResourceResult, } from "./oauth/types.js";
94
+ export { discover, discoverProtectedResource, discoverFromResource, discoverLaunchpad, requireOriginRoot, DiscoverySelectionError, LAUNCHPAD_BASE_URL, type DiscoverOptions, type DiscoverFromResourceOptions, } from "./oauth/discovery.js";
93
95
  export { exchangeCode, refreshToken, isTokenExpired, type TokenOptions, } from "./oauth/exchange.js";
94
96
  export { generatePKCE, generateState, type PKCE, } from "./oauth/pkce.js";
95
97
  export { redactHeaders, redactHeadersRecord, } from "./security.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -53,7 +53,7 @@ export { BaseService } from "./services/base.js";
53
53
  export { AuthorizationService, } from "./services/authorization.js";
54
54
  // Core services - generated
55
55
  export { ProjectsService, } from "./generated/services/projects.js";
56
- export { TodosService, } from "./generated/services/todos.js";
56
+ export { TodosService, } from "./services/todos-extensions.js";
57
57
  export { TodolistsService, } from "./generated/services/todolists.js";
58
58
  export { TodosetsService, } from "./generated/services/todosets.js";
59
59
  export { HillChartsService, } from "./generated/services/hill-charts.js";
@@ -92,7 +92,7 @@ export { EventsService, } from "./generated/services/events.js";
92
92
  export { AttachmentsService, } from "./generated/services/attachments.js";
93
93
  export { VaultsService, } from "./generated/services/vaults.js";
94
94
  export { DocumentsService, } from "./generated/services/documents.js";
95
- export { UploadsService, } from "./generated/services/uploads.js";
95
+ export { UploadsService } from "./services/uploads-extensions.js";
96
96
  // Schedule & Time services - generated
97
97
  export { SchedulesService, } from "./generated/services/schedules.js";
98
98
  export { TimesheetsService, } from "./generated/services/timesheets.js";
@@ -124,7 +124,7 @@ export { MyNotificationsService, } from "./generated/services/my-notifications.j
124
124
  // OpenTelemetry hooks
125
125
  export { otelHooks, } from "./hooks/otel.js";
126
126
  // OAuth functions
127
- export { discover, discoverLaunchpad, LAUNCHPAD_BASE_URL, } from "./oauth/discovery.js";
127
+ export { discover, discoverProtectedResource, discoverFromResource, discoverLaunchpad, requireOriginRoot, DiscoverySelectionError, LAUNCHPAD_BASE_URL, } from "./oauth/discovery.js";
128
128
  export { exchangeCode, refreshToken, isTokenExpired, } from "./oauth/exchange.js";
129
129
  // PKCE utilities
130
130
  export { generatePKCE, generateState, } from "./oauth/pkce.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,18 @@
1
1
  /**
2
2
  * OAuth 2.0 discovery for Basecamp SDK.
3
3
  *
4
- * Fetches OAuth server configuration from the well-known discovery endpoint.
4
+ * Two composable operations plus an orchestrator (SPEC.md §16, communique §2/§3):
5
+ * - discover(issuerURL) — RFC 8414 AS metadata + issuer binding
6
+ * - discoverProtectedResource(origin) — RFC 9728 resource metadata
7
+ * - discoverFromResource(origin, opts) — resource-first selection + fallback
8
+ *
9
+ * All fetches are SSRF-hardened: HTTPS-only origins (localhost exempt), origin
10
+ * parsed/validated with the platform URL parser before any socket opens,
11
+ * redirects suppressed, timeouts bounded, and bodies read under a genuine
12
+ * bounded cap that aborts before the whole oversized body is buffered.
5
13
  */
6
- import type { OAuthConfig } from "./types.js";
14
+ import { BasecampError } from "../errors.js";
15
+ import type { OAuthConfig, ProtectedResourceMetadata, DiscoverySelectionErrorReason, DiscoverFromResourceResult } from "./types.js";
7
16
  /**
8
17
  * Options for OAuth discovery.
9
18
  */
@@ -12,43 +21,116 @@ export interface DiscoverOptions {
12
21
  fetch?: typeof globalThis.fetch;
13
22
  /** Request timeout in milliseconds (default: 10000) */
14
23
  timeoutMs?: number;
24
+ /**
25
+ * Maximum discovery response body size in bytes (default: 1 MiB). Must be a
26
+ * finite, non-negative number; Infinity/NaN/negative values are ignored and
27
+ * the default cap applies (the bound cannot be disabled).
28
+ */
29
+ maxBodyBytes?: number;
15
30
  }
16
31
  /**
17
- * Discovers OAuth server configuration from the well-known endpoint.
32
+ * Options for {@link discoverFromResource}.
33
+ */
34
+ export interface DiscoverFromResourceOptions extends DiscoverOptions {
35
+ /**
36
+ * Explicit, authoritative issuer selection. When provided, the advertised
37
+ * member equal by code-point is selected; if none matches, discovery raises
38
+ * `expected_issuer_unavailable` (never falls back). Omit to use the
39
+ * Basecamp-profile exclusion heuristic.
40
+ */
41
+ expectedIssuer?: string;
42
+ }
43
+ /**
44
+ * Hard resource-first selection/validation failure. Thrown — never returned as a
45
+ * fallback — so no consumer can convert it into a Launchpad request.
46
+ */
47
+ export declare class DiscoverySelectionError extends BasecampError {
48
+ readonly reason: DiscoverySelectionErrorReason;
49
+ constructor(reason: DiscoverySelectionErrorReason, message: string, options?: {
50
+ cause?: Error;
51
+ httpStatus?: number;
52
+ });
53
+ }
54
+ /**
55
+ * Default Basecamp/Launchpad OAuth server URL.
56
+ */
57
+ export declare const LAUNCHPAD_BASE_URL = "https://launchpad.37signals.com";
58
+ /**
59
+ * Parses a caller- or metadata-supplied origin and enforces the origin-root
60
+ * profile: https (or http+localhost), host present, optional valid port, path
61
+ * empty or exactly "/", and no query/fragment/userinfo. Uses the platform URL
62
+ * parser (never a regex) so bracketed IPv6 and ports agree with the host the
63
+ * client actually dials.
64
+ *
65
+ * Throws `BasecampError("usage")` on violation — a bad *caller* origin is a
66
+ * usage error. Callers validating an *advertised* origin catch and reclassify.
67
+ *
68
+ * @returns the normalized origin (scheme://host[:port], no trailing slash)
69
+ */
70
+ export declare function requireOriginRoot(raw: string, label?: string): string;
71
+ /**
72
+ * True when an issuer string is a valid origin root equal to Launchpad's.
18
73
  *
19
- * Fetches the OAuth 2.0 Authorization Server Metadata from:
20
- * `{baseUrl}/.well-known/oauth-authorization-server`
74
+ * The comparison runs both sides through {@link requireOriginRoot}, so an
75
+ * advertised look-alike that is *not* a clean origin root — e.g.
76
+ * `https://launchpad.37signals.com/path` (path), userinfo, or a query — is not
77
+ * treated as Launchpad. It stays a non-Launchpad candidate and later fails hard
78
+ * (`ambiguous_issuers` / `invalid_issuer_origin`) rather than being silently
79
+ * excluded from selection. A trailing-slash-only origin root still matches
80
+ * because `requireOriginRoot` normalizes it away.
21
81
  *
22
- * @param baseUrl - The OAuth server's base URL (e.g., "https://launchpad.37signals.com")
23
- * @param options - Optional configuration
24
- * @returns The OAuth server configuration
25
- * @throws BasecampError on network or parsing errors
82
+ * Exported so the login orchestrator derives the legacy-token decision from the
83
+ * same predicate the selection heuristic uses.
84
+ */
85
+ export declare function isLaunchpadIssuer(issuer: string): boolean;
86
+ /**
87
+ * Reads a Response body under a bounded, streaming cap. Aborts (cancels the
88
+ * stream) the moment the accumulated size exceeds `maxBytes`, so an oversized
89
+ * body is never fully buffered — real memory bounding, not a post-hoc check.
90
+ *
91
+ * Exported for reuse by the device-flow transport (same bounding, different
92
+ * `label` in the error message); not re-exported from the package index.
93
+ */
94
+ export declare function readBodyBounded(response: Response, maxBytes: number, label?: string): Promise<string>;
95
+ /**
96
+ * Discovers OAuth 2.0 Authorization Server Metadata (RFC 8414) from
97
+ * `{issuerURL}/.well-known/oauth-authorization-server`, and binds it: the
98
+ * returned `issuer` must equal the requested issuer by code-point (no
99
+ * normalization beyond origin-root parsing). `token_endpoint` is required;
100
+ * `authorization_endpoint` is optional (device-only servers omit it).
101
+ *
102
+ * @param baseUrl - The OAuth server's issuer origin (e.g. "https://launchpad.37signals.com")
103
+ * @throws BasecampError("usage") on a malformed origin, api_error on invalid metadata
26
104
  *
27
105
  * @example
28
106
  * ```ts
29
107
  * const config = await discover("https://launchpad.37signals.com");
30
108
  * console.log(config.tokenEndpoint);
31
- * // => "https://launchpad.37signals.com/authorization/token"
32
109
  * ```
33
110
  */
34
111
  export declare function discover(baseUrl: string, options?: DiscoverOptions): Promise<OAuthConfig>;
35
112
  /**
36
- * Default Basecamp/Launchpad OAuth server URL.
113
+ * Discovers RFC 9728 protected-resource metadata from
114
+ * `{resourceOrigin}/.well-known/oauth-protected-resource`. `resource` is
115
+ * required and must equal the requested origin by code-point.
116
+ * `authorization_servers` is preserved distinctly as absent vs `[]`.
117
+ *
118
+ * @throws BasecampError("usage") on a malformed caller origin, api_error on
119
+ * invalid metadata
37
120
  */
38
- export declare const LAUNCHPAD_BASE_URL = "https://launchpad.37signals.com";
121
+ export declare function discoverProtectedResource(resourceOrigin: string, options?: DiscoverOptions): Promise<ProtectedResourceMetadata>;
39
122
  /**
40
- * Discovers OAuth configuration from Basecamp's Launchpad server.
123
+ * Resource-first discovery orchestrator (SPEC.md §16). Composes RFC 9728 + RFC
124
+ * 8414 and applies the stage-sensitive fallback state machine.
41
125
  *
42
- * Convenience function that calls discover() with the Launchpad base URL.
43
- *
44
- * @param options - Optional configuration
45
- * @returns The OAuth server configuration
46
- *
47
- * @example
48
- * ```ts
49
- * const config = await discoverLaunchpad();
50
- * // Use config.authorizationEndpoint to start OAuth flow
51
- * ```
126
+ * Returns `{ kind: "selected", config, issuer }` or `{ kind: "fallback", reason }`
127
+ * where `reason ∈ {resource_discovery_failed, no_as_advertised}`. Every hard
128
+ * failure throws {@link DiscoverySelectionError} callers MUST NOT convert a
129
+ * throw into a Launchpad request.
130
+ */
131
+ export declare function discoverFromResource(resourceOrigin: string, options?: DiscoverFromResourceOptions): Promise<DiscoverFromResourceResult>;
132
+ /**
133
+ * Discovers OAuth configuration from Basecamp's Launchpad server.
52
134
  */
53
135
  export declare function discoverLaunchpad(options?: DiscoverOptions): Promise<OAuthConfig>;
54
136
  //# sourceMappingURL=discovery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/oauth/discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAc9C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,WAAW,CAAC,CAmFtB;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,oCAAoC,CAAC;AAEpE;;;;;;;;;;;;;GAaG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,WAAW,CAAC,CAEtB"}
1
+ {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/oauth/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,aAAa,EAAwB,MAAM,cAAc,CAAC;AAEnE,OAAO,KAAK,EACV,WAAW,EACX,yBAAyB,EAEzB,6BAA6B,EAC7B,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AAwCpB;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,eAAe;IAClE;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,qBAAa,uBAAwB,SAAQ,aAAa;IACxD,QAAQ,CAAC,MAAM,EAAE,6BAA6B,CAAC;gBAG7C,MAAM,EAAE,6BAA6B,EACrC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;CAcnD;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,oCAAoC,CAAC;AAEpE;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,SAAW,GAAG,MAAM,CA6EvE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAMzD;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,EAChB,KAAK,SAAoB,GACxB,OAAO,CAAC,MAAM,CAAC,CA0CjB;AAuED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,WAAW,CAAC,CAKtB;AAmHD;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAC7C,cAAc,EAAE,MAAM,EACtB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,yBAAyB,CAAC,CA0CpC;AAED;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACxC,cAAc,EAAE,MAAM,EACtB,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,0BAA0B,CAAC,CA4ErC;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,WAAW,CAAC,CAEtB"}