@sfdxy/anypoint-connect 0.16.3 → 0.18.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 (197) hide show
  1. package/README.md +17 -6
  2. package/dist/analysis/audit-actors.d.ts +36 -0
  3. package/dist/analysis/audit-actors.d.ts.map +1 -0
  4. package/dist/analysis/audit-actors.js +93 -0
  5. package/dist/analysis/audit-actors.js.map +1 -0
  6. package/dist/analysis/credentials.d.ts +49 -0
  7. package/dist/analysis/credentials.d.ts.map +1 -0
  8. package/dist/analysis/credentials.js +118 -0
  9. package/dist/analysis/credentials.js.map +1 -0
  10. package/dist/analysis/parser.d.ts +5 -0
  11. package/dist/analysis/parser.d.ts.map +1 -1
  12. package/dist/analysis/parser.js +10 -1
  13. package/dist/analysis/parser.js.map +1 -1
  14. package/dist/api/AlertsApi.d.ts +138 -0
  15. package/dist/api/AlertsApi.d.ts.map +1 -0
  16. package/dist/api/AlertsApi.js +168 -0
  17. package/dist/api/AlertsApi.js.map +1 -0
  18. package/dist/api/LogsApi.d.ts +88 -12
  19. package/dist/api/LogsApi.d.ts.map +1 -1
  20. package/dist/api/LogsApi.js +335 -31
  21. package/dist/api/LogsApi.js.map +1 -1
  22. package/dist/auth/BearerProvider.d.ts +12 -0
  23. package/dist/auth/BearerProvider.d.ts.map +1 -0
  24. package/dist/auth/BearerProvider.js +18 -0
  25. package/dist/auth/BearerProvider.js.map +1 -0
  26. package/dist/auth/ClientCredentialsProvider.d.ts +23 -0
  27. package/dist/auth/ClientCredentialsProvider.d.ts.map +1 -0
  28. package/dist/auth/ClientCredentialsProvider.js +59 -0
  29. package/dist/auth/ClientCredentialsProvider.js.map +1 -0
  30. package/dist/auth/TokenProvider.d.ts +12 -0
  31. package/dist/auth/TokenProvider.d.ts.map +1 -0
  32. package/dist/auth/TokenProvider.js +2 -0
  33. package/dist/auth/TokenProvider.js.map +1 -0
  34. package/dist/auth/index.d.ts +1 -0
  35. package/dist/auth/index.d.ts.map +1 -1
  36. package/dist/cli.js +8 -0
  37. package/dist/cli.js.map +1 -1
  38. package/dist/client/AnypointClient.d.ts +22 -0
  39. package/dist/client/AnypointClient.d.ts.map +1 -1
  40. package/dist/client/AnypointClient.js +82 -12
  41. package/dist/client/AnypointClient.js.map +1 -1
  42. package/dist/client/HttpClient.d.ts +3 -3
  43. package/dist/client/HttpClient.d.ts.map +1 -1
  44. package/dist/client/HttpClient.js +13 -3
  45. package/dist/client/HttpClient.js.map +1 -1
  46. package/dist/commands/alerts.d.ts +16 -0
  47. package/dist/commands/alerts.d.ts.map +1 -0
  48. package/dist/commands/alerts.js +375 -0
  49. package/dist/commands/alerts.js.map +1 -0
  50. package/dist/commands/api.d.ts.map +1 -1
  51. package/dist/commands/api.js +8 -3
  52. package/dist/commands/api.js.map +1 -1
  53. package/dist/commands/app-change-cli.d.ts +5 -2
  54. package/dist/commands/app-change-cli.d.ts.map +1 -1
  55. package/dist/commands/app-change-cli.js +19 -5
  56. package/dist/commands/app-change-cli.js.map +1 -1
  57. package/dist/commands/apps.d.ts.map +1 -1
  58. package/dist/commands/apps.js +69 -22
  59. package/dist/commands/apps.js.map +1 -1
  60. package/dist/commands/auth.d.ts.map +1 -1
  61. package/dist/commands/auth.js +21 -0
  62. package/dist/commands/auth.js.map +1 -1
  63. package/dist/commands/config.d.ts.map +1 -1
  64. package/dist/commands/config.js +20 -1
  65. package/dist/commands/config.js.map +1 -1
  66. package/dist/commands/deploy.d.ts.map +1 -1
  67. package/dist/commands/deploy.js +17 -6
  68. package/dist/commands/deploy.js.map +1 -1
  69. package/dist/commands/index.d.ts +1 -0
  70. package/dist/commands/index.d.ts.map +1 -1
  71. package/dist/commands/index.js +1 -0
  72. package/dist/commands/index.js.map +1 -1
  73. package/dist/commands/logs.d.ts +2 -1
  74. package/dist/commands/logs.d.ts.map +1 -1
  75. package/dist/commands/logs.js +105 -10
  76. package/dist/commands/logs.js.map +1 -1
  77. package/dist/commands/monitor.d.ts.map +1 -1
  78. package/dist/commands/monitor.js +29 -1
  79. package/dist/commands/monitor.js.map +1 -1
  80. package/dist/commands/runtimes.d.ts.map +1 -1
  81. package/dist/commands/runtimes.js +38 -5
  82. package/dist/commands/runtimes.js.map +1 -1
  83. package/dist/commands/shared.d.ts.map +1 -1
  84. package/dist/commands/shared.js +1 -7
  85. package/dist/commands/shared.js.map +1 -1
  86. package/dist/config/auth-modes.d.ts +11 -0
  87. package/dist/config/auth-modes.d.ts.map +1 -0
  88. package/dist/config/auth-modes.js +18 -0
  89. package/dist/config/auth-modes.js.map +1 -0
  90. package/dist/config/profiles.d.ts +19 -2
  91. package/dist/config/profiles.d.ts.map +1 -1
  92. package/dist/config/profiles.js +68 -24
  93. package/dist/config/profiles.js.map +1 -1
  94. package/dist/index.d.ts +12 -1
  95. package/dist/index.d.ts.map +1 -1
  96. package/dist/index.js +10 -0
  97. package/dist/index.js.map +1 -1
  98. package/dist/mcp/server.d.ts.map +1 -1
  99. package/dist/mcp/server.js +4 -9
  100. package/dist/mcp/server.js.map +1 -1
  101. package/dist/mcp/tools/alerts.d.ts +82 -0
  102. package/dist/mcp/tools/alerts.d.ts.map +1 -0
  103. package/dist/mcp/tools/alerts.js +423 -0
  104. package/dist/mcp/tools/alerts.js.map +1 -0
  105. package/dist/mcp/tools/api-manager.d.ts.map +1 -1
  106. package/dist/mcp/tools/api-manager.js +6 -1
  107. package/dist/mcp/tools/api-manager.js.map +1 -1
  108. package/dist/mcp/tools/app-inputs.d.ts +20 -2
  109. package/dist/mcp/tools/app-inputs.d.ts.map +1 -1
  110. package/dist/mcp/tools/app-inputs.js +40 -2
  111. package/dist/mcp/tools/app-inputs.js.map +1 -1
  112. package/dist/mcp/tools/apps-deploy.d.ts.map +1 -1
  113. package/dist/mcp/tools/apps-deploy.js +65 -13
  114. package/dist/mcp/tools/apps-deploy.js.map +1 -1
  115. package/dist/mcp/tools/apps-lifecycle.d.ts.map +1 -1
  116. package/dist/mcp/tools/apps-lifecycle.js +37 -15
  117. package/dist/mcp/tools/apps-lifecycle.js.map +1 -1
  118. package/dist/mcp/tools/apps-read.d.ts.map +1 -1
  119. package/dist/mcp/tools/apps-read.js +11 -5
  120. package/dist/mcp/tools/apps-read.js.map +1 -1
  121. package/dist/mcp/tools/audit.d.ts.map +1 -1
  122. package/dist/mcp/tools/audit.js +17 -4
  123. package/dist/mcp/tools/audit.js.map +1 -1
  124. package/dist/mcp/tools/exchange.d.ts.map +1 -1
  125. package/dist/mcp/tools/exchange.js +38 -18
  126. package/dist/mcp/tools/exchange.js.map +1 -1
  127. package/dist/mcp/tools/identity.d.ts.map +1 -1
  128. package/dist/mcp/tools/identity.js +29 -2
  129. package/dist/mcp/tools/identity.js.map +1 -1
  130. package/dist/mcp/tools/index.d.ts +1 -0
  131. package/dist/mcp/tools/index.d.ts.map +1 -1
  132. package/dist/mcp/tools/index.js +1 -0
  133. package/dist/mcp/tools/index.js.map +1 -1
  134. package/dist/mcp/tools/logs.d.ts +1 -1
  135. package/dist/mcp/tools/logs.d.ts.map +1 -1
  136. package/dist/mcp/tools/logs.js +34 -1
  137. package/dist/mcp/tools/logs.js.map +1 -1
  138. package/dist/mcp/tools/monitoring.d.ts.map +1 -1
  139. package/dist/mcp/tools/monitoring.js +5 -3
  140. package/dist/mcp/tools/monitoring.js.map +1 -1
  141. package/dist/mcp/tools/output-schemas.d.ts +83 -0
  142. package/dist/mcp/tools/output-schemas.d.ts.map +1 -0
  143. package/dist/mcp/tools/output-schemas.js +81 -0
  144. package/dist/mcp/tools/output-schemas.js.map +1 -0
  145. package/dist/mcp/tools/profile.d.ts +17 -3
  146. package/dist/mcp/tools/profile.d.ts.map +1 -1
  147. package/dist/mcp/tools/profile.js +122 -10
  148. package/dist/mcp/tools/profile.js.map +1 -1
  149. package/dist/mcp/tools/shared.d.ts +34 -2
  150. package/dist/mcp/tools/shared.d.ts.map +1 -1
  151. package/dist/mcp/tools/shared.js +37 -4
  152. package/dist/mcp/tools/shared.js.map +1 -1
  153. package/dist/safety/artifact.d.ts +45 -0
  154. package/dist/safety/artifact.d.ts.map +1 -1
  155. package/dist/safety/artifact.js +109 -0
  156. package/dist/safety/artifact.js.map +1 -1
  157. package/dist/safety/guards.d.ts +10 -0
  158. package/dist/safety/guards.d.ts.map +1 -1
  159. package/dist/safety/guards.js +16 -0
  160. package/dist/safety/guards.js.map +1 -1
  161. package/dist/safety/plan-binding.d.ts +21 -0
  162. package/dist/safety/plan-binding.d.ts.map +1 -0
  163. package/dist/safety/plan-binding.js +61 -0
  164. package/dist/safety/plan-binding.js.map +1 -0
  165. package/dist/safety/preapproval.d.ts +102 -0
  166. package/dist/safety/preapproval.d.ts.map +1 -0
  167. package/dist/safety/preapproval.js +251 -0
  168. package/dist/safety/preapproval.js.map +1 -0
  169. package/dist/safety/secrets.d.ts +7 -0
  170. package/dist/safety/secrets.d.ts.map +1 -1
  171. package/dist/safety/secrets.js +16 -0
  172. package/dist/safety/secrets.js.map +1 -1
  173. package/dist/utils/formatter.d.ts +2 -0
  174. package/dist/utils/formatter.d.ts.map +1 -1
  175. package/dist/utils/formatter.js +4 -0
  176. package/dist/utils/formatter.js.map +1 -1
  177. package/dist/utils/logger.d.ts +2 -0
  178. package/dist/utils/logger.d.ts.map +1 -1
  179. package/dist/utils/logger.js +23 -13
  180. package/dist/utils/logger.js.map +1 -1
  181. package/dist/workflows/alerts.d.ts +309 -0
  182. package/dist/workflows/alerts.d.ts.map +1 -0
  183. package/dist/workflows/alerts.js +631 -0
  184. package/dist/workflows/alerts.js.map +1 -0
  185. package/dist/workflows/app-change.d.ts +32 -1
  186. package/dist/workflows/app-change.d.ts.map +1 -1
  187. package/dist/workflows/app-change.js +57 -2
  188. package/dist/workflows/app-change.js.map +1 -1
  189. package/dist/workflows/artifact-verification.d.ts +52 -0
  190. package/dist/workflows/artifact-verification.d.ts.map +1 -0
  191. package/dist/workflows/artifact-verification.js +85 -0
  192. package/dist/workflows/artifact-verification.js.map +1 -0
  193. package/dist/workflows/jar-deployment.d.ts +37 -10
  194. package/dist/workflows/jar-deployment.d.ts.map +1 -1
  195. package/dist/workflows/jar-deployment.js +44 -13
  196. package/dist/workflows/jar-deployment.js.map +1 -1
  197. package/package.json +1 -1
@@ -0,0 +1,168 @@
1
+ /**
2
+ * Alerts API
3
+ * Anypoint Monitoring alerts (the observability family behind the Monitoring UI) and a read of
4
+ * Runtime Manager event alerts.
5
+ *
6
+ * These endpoints are not publicly documented. Shapes follow observed responses and may change; a
7
+ * family that answers 404 or 403 on list is reported as unsupported (AlertsUnsupportedError) rather
8
+ * than as "no alerts".
9
+ */
10
+ import { AxiosError } from 'axios';
11
+ import { sanitizePlatformText } from '../safety/secrets.js';
12
+ import { errorMessage } from '../utils/errors.js';
13
+ export const ALERT_METRIC_IDS = [
14
+ 'cpu_utilization',
15
+ 'memory_utilization',
16
+ 'thread_count',
17
+ 'message_count',
18
+ 'message_error_count',
19
+ 'message_response_time',
20
+ 'api_request_count',
21
+ 'api_response_time',
22
+ 'api_response_code_count',
23
+ 'api_policy_violation_count',
24
+ ];
25
+ export const ALERT_OPERATORS = [
26
+ 'GREATER_THAN',
27
+ 'LESS_THAN',
28
+ 'GREATER_THAN_EQUAL_TO',
29
+ 'LESS_THAN_EQUAL_TO',
30
+ 'EQUALS',
31
+ ];
32
+ export class AlertsUnsupportedError extends Error {
33
+ family;
34
+ status;
35
+ constructor(family, status) {
36
+ super(`${family} alerts are not available for this organization or token (HTTP ${status})`);
37
+ this.family = family;
38
+ this.status = status;
39
+ this.name = 'AlertsUnsupportedError';
40
+ }
41
+ }
42
+ export class AlertPendingError extends Error {
43
+ constructor(id) {
44
+ super(`Alert ${id} is still PENDING (being provisioned or deleted), and the platform refuses changes until it is ACTIVE. Retry in a minute or two.`);
45
+ this.name = 'AlertPendingError';
46
+ }
47
+ }
48
+ const BASE = '/observability/api/v1';
49
+ const PAGE_SIZE = 100;
50
+ /** Hard stop for pagination: 2,000 alerts. */
51
+ const MAX_PAGES = 20;
52
+ function status(error) {
53
+ return error instanceof AxiosError ? error.response?.status : undefined;
54
+ }
55
+ /**
56
+ * Map platform errors to messages that say what happened. Platform text is sanitized first: an alert
57
+ * error can echo recipients or tokens, and it ends up in MCP responses and CLI output.
58
+ */
59
+ export function alertError(error, id) {
60
+ const code = status(error);
61
+ const detail = sanitizePlatformText(errorMessage(error));
62
+ if (code === 404)
63
+ return new Error(`${id ? `Alert ${id}` : 'Alert'} not found (it may have been deleted)`);
64
+ if (code === 400 && /not present or deleted/i.test(detail) && id)
65
+ return new AlertPendingError(id);
66
+ if (code === 400)
67
+ return new Error(`The alert was rejected (HTTP 400): ${detail}`);
68
+ return new Error(code ? `Alert request failed (HTTP ${code}): ${detail}` : detail);
69
+ }
70
+ export class AlertsApi {
71
+ http;
72
+ constructor(http) {
73
+ this.http = http;
74
+ }
75
+ url(orgId, id) {
76
+ return `${BASE}/organizations/${orgId}/alerts${id ? `/${encodeURIComponent(id)}` : ''}`;
77
+ }
78
+ /** Every Monitoring alert of the organization, optionally narrowed by environment ID and exact name. */
79
+ async list(orgId, filter = {}) {
80
+ return (await this.listAll(orgId, filter)).alerts;
81
+ }
82
+ /**
83
+ * Like {@link list}, and says whether the listing is complete. It is not when the page cap was
84
+ * reached with more pages left; callers must not infer that an alert is absent from such a listing.
85
+ */
86
+ async listAll(orgId, filter = {}) {
87
+ const alerts = [];
88
+ for (let page = 0; page < MAX_PAGES; page++) {
89
+ const params = new URLSearchParams({ limit: String(PAGE_SIZE), offset: String(page * PAGE_SIZE) });
90
+ if (filter.environmentId)
91
+ params.set('environmentId', filter.environmentId);
92
+ if (filter.name)
93
+ params.set('name', filter.name);
94
+ let response;
95
+ try {
96
+ response = await this.http.get(`${this.url(orgId)}?${params}`);
97
+ }
98
+ catch (error) {
99
+ const code = status(error);
100
+ if (code === 404 || code === 403)
101
+ throw new AlertsUnsupportedError('Monitoring', code);
102
+ throw alertError(error);
103
+ }
104
+ const batch = response.data ?? [];
105
+ alerts.push(...batch);
106
+ if (batch.length < PAGE_SIZE || !response.metadata?.pagination?.next)
107
+ return { alerts, complete: true };
108
+ }
109
+ return { alerts, complete: false };
110
+ }
111
+ /** One alert, or null when it does not exist (any more). */
112
+ async get(orgId, id) {
113
+ try {
114
+ const response = await this.http.get(this.url(orgId, id));
115
+ return response.data ?? null;
116
+ }
117
+ catch (error) {
118
+ if (status(error) === 404)
119
+ return null;
120
+ throw alertError(error, id);
121
+ }
122
+ }
123
+ async create(orgId, body) {
124
+ try {
125
+ const response = await this.http.post(this.url(orgId), body);
126
+ return response && 'data' in response ? response.data : response;
127
+ }
128
+ catch (error) {
129
+ throw alertError(error);
130
+ }
131
+ }
132
+ /** Replace an alert. The platform needs the full body; a partial one is rejected. */
133
+ async update(orgId, id, body) {
134
+ try {
135
+ await this.http.patch(this.url(orgId, id), { ...body, id });
136
+ }
137
+ catch (error) {
138
+ throw alertError(error, id);
139
+ }
140
+ }
141
+ /** Request deletion. It is asynchronous: the alert can stay PENDING for a while before it is gone. */
142
+ async delete(orgId, id) {
143
+ try {
144
+ await this.http.delete(this.url(orgId, id));
145
+ return 'accepted';
146
+ }
147
+ catch (error) {
148
+ // The platform also answers 404 while a change is still PENDING; callers check the list.
149
+ if (status(error) === 404)
150
+ return 'not-found';
151
+ throw alertError(error, id);
152
+ }
153
+ }
154
+ /** Runtime Manager event alerts (deployment failed and similar) for one environment. Read only. */
155
+ async listRuntimeManager(orgId, envId) {
156
+ try {
157
+ const response = await this.http.get('/armui/api/v1/alerts', { headers: { 'X-ANYPNT-ORG-ID': orgId, 'X-ANYPNT-ENV-ID': envId } });
158
+ return Array.isArray(response) ? response : (response.data ?? []);
159
+ }
160
+ catch (error) {
161
+ const code = status(error);
162
+ if (code === 404 || code === 403)
163
+ throw new AlertsUnsupportedError('Runtime Manager', code);
164
+ throw alertError(error);
165
+ }
166
+ }
167
+ }
168
+ //# sourceMappingURL=AlertsApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlertsApi.js","sourceRoot":"","sources":["../../src/api/AlertsApi.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,8 @@ export interface LogReadOptions {
26
26
  * replaced by an update stays visible. Default 0: the desired spec, or the last successful one.
27
27
  */
28
28
  previousSpecs?: number;
29
+ /** Cancels the request in flight. */
30
+ signal?: AbortSignal;
29
31
  }
30
32
  /** Where a log file came from. */
31
33
  export interface LogSource {
@@ -40,6 +42,15 @@ export interface LogSource {
40
42
  export interface LogFile extends LogSource {
41
43
  text: string;
42
44
  }
45
+ /** One spec's log text. */
46
+ export interface LogPart {
47
+ specId: string;
48
+ text: string;
49
+ }
50
+ /** The log text of every spec read, kept apart, oldest first. */
51
+ export interface LogParts extends LogSource {
52
+ parts: LogPart[];
53
+ }
43
54
  export interface LogSearchResponse {
44
55
  /** Matches before `limit` was applied */
45
56
  total: number;
@@ -50,6 +61,45 @@ export interface LogSearchResponse {
50
61
  entries: EnrichedLogEntry[];
51
62
  source: LogSource;
52
63
  }
64
+ /** What a followed log reports. */
65
+ export type TailEvent =
66
+ /** New records, oldest first, that pass the filters. */
67
+ {
68
+ type: 'records';
69
+ entries: EnrichedLogEntry[];
70
+ specId: string;
71
+ }
72
+ /** The spec being followed: first announced, then whenever it changes. */
73
+ | {
74
+ type: 'specChange';
75
+ from: string | null;
76
+ to: string;
77
+ fallbackFromSpecId?: string;
78
+ }
79
+ /** Records may have been missed: more arrived between reads than one read covers. */
80
+ | {
81
+ type: 'gap';
82
+ message: string;
83
+ }
84
+ /** A read failed; following continues. */
85
+ | {
86
+ type: 'error';
87
+ message: string;
88
+ }
89
+ /** How the log is read: `incremental` asks only for records after the last one seen; `file` downloads the whole file each time (the incremental endpoint was unavailable). */
90
+ | {
91
+ type: 'transport';
92
+ mode: 'incremental' | 'file';
93
+ reason?: string;
94
+ };
95
+ export interface TailOptions extends Pick<LogFilter, 'level' | 'search' | 'regex' | 'logger'> {
96
+ /** Milliseconds between reads (default 5000). */
97
+ intervalMs?: number;
98
+ /** Follow exactly this spec instead of the current one. */
99
+ specId?: string;
100
+ /** Stops following, including the wait and the request in flight. */
101
+ signal?: AbortSignal;
102
+ }
53
103
  /**
54
104
  * Parse a log file into entries, oldest first. A file read across several specs holds one
55
105
  * block per spec, and replicas of two generations can overlap in time, so entries are sorted.
@@ -63,7 +113,7 @@ export declare class LogsApi {
63
113
  * Download the full log file for a CH2 deployment.
64
114
  * Returns raw log text.
65
115
  */
66
- downloadLogFile(orgId: string, envId: string, deploymentId: string, specId: string): Promise<Buffer>;
116
+ downloadLogFile(orgId: string, envId: string, deploymentId: string, specId: string, signal?: AbortSignal): Promise<Buffer>;
67
117
  /**
68
118
  * Resolve an app name to its deployment and the specs whose logs to read, preferred first:
69
119
  * the desired spec, then the last successful one when it differs.
@@ -76,9 +126,12 @@ export declare class LogsApi {
76
126
  */
77
127
  getLogFile(orgId: string, envId: string, appName: string, read?: LogReadOptions): Promise<LogFile>;
78
128
  /**
79
- * Read the desired spec and up to `count` specs before it, joined oldest first.
80
- * Specs without a log file (never started, or expired) are skipped.
129
+ * The same read as {@link getLogFile}, with each spec's text kept apart, for callers that
130
+ * report per spec. With previousSpecs, specs without a log file (never started, or expired)
131
+ * are skipped.
81
132
  */
133
+ getLogParts(orgId: string, envId: string, appName: string, read?: LogReadOptions): Promise<LogParts>;
134
+ /** Read the desired spec and up to `count` specs before it, oldest first. */
82
135
  private readSpecs;
83
136
  /**
84
137
  * Get raw log text for a CH2 application (for analysis pipeline).
@@ -104,16 +157,39 @@ export declare class LogsApi {
104
157
  source: LogSource;
105
158
  }>;
106
159
  /**
107
- * Tail logs: a generator that yields new log entries.
108
- * Polls the log file and re-resolves the spec each time, so a restart is followed.
160
+ * Follow an app's log as typed events. Polls the log file; each poll yields only records not
161
+ * yielded before. Records that share a millisecond are all kept (and identical lines counted),
162
+ * the position advances past every record read before any filter hides some, and `signal`
163
+ * stops the wait and the request in flight.
164
+ *
165
+ * Without `specId` it follows the current spec (the desired one, or the last successful one
166
+ * with a notice) and says when that changes. With `specId` it follows exactly that spec: one
167
+ * that is not this app's is an error, never replaced by another; so is one with no log file when the
168
+ * log is read from the file. On the incremental endpoint a spec without records yet is simply
169
+ * followed until it has some.
170
+ */
171
+ tailEvents(orgId: string, envId: string, appName: string, options?: TailOptions): AsyncGenerator<TailEvent, void, undefined>;
172
+ /**
173
+ * Tail logs: a generator that yields new log entries. A view of {@link tailEvents} for callers
174
+ * that want only the records; read errors go to stderr and following continues.
175
+ */
176
+ tailLogs(orgId: string, envId: string, appName: string, options?: Omit<TailOptions, 'signal' | 'specId'>): AsyncGenerator<LogEntry[], void, unknown>;
177
+ /**
178
+ * The incremental read: records of one spec from `since` on, through the structured log endpoint.
179
+ * It returns 10 records per request, oldest first, with `startTime` inclusive, so the read walks
180
+ * forward by the last record's time and drops repeats by `docId`. At most MAX_INCREMENTAL_PAGES
181
+ * requests per read; when more remain the read says so and the caller reads again at once.
109
182
  */
110
- tailLogs(orgId: string, envId: string, appName: string, options?: {
111
- level?: string;
112
- intervalMs?: number;
113
- search?: string;
114
- regex?: boolean;
115
- logger?: string;
116
- }): AsyncGenerator<LogEntry[], void, unknown>;
183
+ private readStructured;
184
+ /** The incremental read of the current spec: the desired one, or the last successful one while the desired has no records. */
185
+ private readStructuredCurrent;
186
+ private fetchStructuredPage;
187
+ /** The full-file read: download the log file and parse its newest window. */
188
+ private readFileWindow;
189
+ /** The deployment of `appName` and `specId`, once the spec is known to belong to it. */
190
+ private resolvePinnedSpec;
191
+ private readPinnedSpec;
192
+ private readCurrentSpec;
117
193
  /**
118
194
  * Get all logs for a time range, newest first.
119
195
  */
@@ -1 +1 @@
1
- {"version":3,"file":"LogsApi.d.ts","sourceRoot":"","sources":["../../src/api/LogsApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LogsApi.d.ts","sourceRoot":"","sources":["../../src/api/LogsApi.ts"],"names":[],"mappings":"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"}