@salesforce/b2c-tooling-sdk 1.17.0 → 1.19.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 (94) hide show
  1. package/data/content-schemas/componenttype.json +79 -17
  2. package/data/content-schemas/pagetype.json +4 -0
  3. package/data/guides/enrichment.json +11264 -0
  4. package/data/guides/index.json +15166 -0
  5. package/data/job-steps/index.json +71 -1
  6. package/data/job-steps/job-steps.json +1 -1
  7. package/data/script-api/index.json +2145 -37
  8. package/data/tooling/index.json +222 -0
  9. package/data/xsd/index.json +1 -1
  10. package/dist/esm/auth/client-credentials.d.ts +27 -0
  11. package/dist/esm/auth/client-credentials.js +60 -0
  12. package/dist/esm/auth/client-credentials.js.map +1 -0
  13. package/dist/esm/auth/index.d.ts +1 -0
  14. package/dist/esm/auth/index.js +2 -0
  15. package/dist/esm/auth/index.js.map +1 -1
  16. package/dist/esm/auth/oauth.js +2 -1
  17. package/dist/esm/auth/oauth.js.map +1 -1
  18. package/dist/esm/cli/base-command.d.ts +40 -0
  19. package/dist/esm/cli/base-command.js +66 -5
  20. package/dist/esm/cli/base-command.js.map +1 -1
  21. package/dist/esm/cli/index.d.ts +2 -2
  22. package/dist/esm/cli/index.js +1 -1
  23. package/dist/esm/cli/index.js.map +1 -1
  24. package/dist/esm/cli/instance-command.d.ts +1 -1
  25. package/dist/esm/cli/instance-command.js +5 -3
  26. package/dist/esm/cli/instance-command.js.map +1 -1
  27. package/dist/esm/cli/oauth-command.d.ts +1 -1
  28. package/dist/esm/cli/oauth-command.js +5 -3
  29. package/dist/esm/cli/oauth-command.js.map +1 -1
  30. package/dist/esm/cli/ods-command.d.ts +1 -1
  31. package/dist/esm/cli/webdav-command.d.ts +1 -1
  32. package/dist/esm/clients/index.d.ts +2 -0
  33. package/dist/esm/clients/index.js +1 -0
  34. package/dist/esm/clients/index.js.map +1 -1
  35. package/dist/esm/clients/metrics.d.ts +123 -0
  36. package/dist/esm/clients/metrics.generated.d.ts +1016 -0
  37. package/dist/esm/clients/metrics.generated.js +6 -0
  38. package/dist/esm/clients/metrics.generated.js.map +1 -0
  39. package/dist/esm/clients/metrics.js +65 -0
  40. package/dist/esm/clients/metrics.js.map +1 -0
  41. package/dist/esm/clients/middleware-registry.d.ts +1 -1
  42. package/dist/esm/clients/middleware-registry.js.map +1 -1
  43. package/dist/esm/config/sources/env-source.js +1 -0
  44. package/dist/esm/config/sources/env-source.js.map +1 -1
  45. package/dist/esm/discovery/detector.d.ts +0 -5
  46. package/dist/esm/discovery/detector.js +24 -3
  47. package/dist/esm/discovery/detector.js.map +1 -1
  48. package/dist/esm/discovery/index.d.ts +1 -0
  49. package/dist/esm/discovery/index.js +1 -0
  50. package/dist/esm/discovery/index.js.map +1 -1
  51. package/dist/esm/discovery/patterns/index.d.ts +4 -2
  52. package/dist/esm/discovery/patterns/index.js +9 -3
  53. package/dist/esm/discovery/patterns/index.js.map +1 -1
  54. package/dist/esm/discovery/patterns/pwa-kit.d.ts +12 -0
  55. package/dist/esm/discovery/patterns/pwa-kit.js +18 -7
  56. package/dist/esm/discovery/patterns/pwa-kit.js.map +1 -1
  57. package/dist/esm/discovery/patterns/sfra.d.ts +5 -4
  58. package/dist/esm/discovery/patterns/sfra.js +1 -1
  59. package/dist/esm/discovery/patterns/sfra.js.map +1 -1
  60. package/dist/esm/discovery/patterns/storefront-next.js +18 -2
  61. package/dist/esm/discovery/patterns/storefront-next.js.map +1 -1
  62. package/dist/esm/discovery/types.d.ts +13 -4
  63. package/dist/esm/discovery/types.js +11 -1
  64. package/dist/esm/discovery/types.js.map +1 -1
  65. package/dist/esm/docs/index.d.ts +3 -3
  66. package/dist/esm/docs/index.js +1 -1
  67. package/dist/esm/docs/index.js.map +1 -1
  68. package/dist/esm/docs/search.d.ts +111 -38
  69. package/dist/esm/docs/search.js +402 -81
  70. package/dist/esm/docs/search.js.map +1 -1
  71. package/dist/esm/docs/types.d.ts +56 -6
  72. package/dist/esm/docs/types.js +2 -0
  73. package/dist/esm/docs/types.js.map +1 -1
  74. package/dist/esm/index.d.ts +4 -2
  75. package/dist/esm/index.js +3 -1
  76. package/dist/esm/index.js.map +1 -1
  77. package/dist/esm/operations/logs/filter.d.ts +6 -1
  78. package/dist/esm/operations/logs/filter.js +7 -2
  79. package/dist/esm/operations/logs/filter.js.map +1 -1
  80. package/dist/esm/operations/metrics/index.d.ts +371 -0
  81. package/dist/esm/operations/metrics/index.js +478 -0
  82. package/dist/esm/operations/metrics/index.js.map +1 -0
  83. package/dist/esm/operations/metrics/tags.d.ts +148 -0
  84. package/dist/esm/operations/metrics/tags.js +235 -0
  85. package/dist/esm/operations/metrics/tags.js.map +1 -0
  86. package/dist/esm/slas/token.d.ts +9 -2
  87. package/dist/esm/slas/token.js +25 -29
  88. package/dist/esm/slas/token.js.map +1 -1
  89. package/dist/esm/telemetry/telemetry.d.ts +1 -0
  90. package/dist/esm/telemetry/telemetry.js +32 -0
  91. package/dist/esm/telemetry/telemetry.js.map +1 -1
  92. package/dist/esm/telemetry/types.d.ts +6 -0
  93. package/package.json +12 -3
  94. package/specs/metrics-v1.json +1713 -0
@@ -0,0 +1,235 @@
1
+ /*
2
+ * Copyright (c) 2025, Salesforce, Inc.
3
+ * SPDX-License-Identifier: Apache-2
4
+ * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
5
+ */
6
+ import { normalizeTenantId } from '../../clients/custom-apis.js';
7
+ import { getLogger } from '../../logging/logger.js';
8
+ /**
9
+ * Maps a {@link MetricsTagContext} filter field to the tag key it authoritatively
10
+ * sets when present. These override any value the string heuristics would infer.
11
+ */
12
+ const FILTER_TAG_KEYS = [
13
+ ['apiFamily', 'apiFamily'],
14
+ ['apiName', 'apiName'],
15
+ ['ocapiCategory', 'ocapiCategory'],
16
+ ['ocapiApi', 'ocapiApi'],
17
+ ['thirdPartyServiceId', 'thirdPartyServiceId'],
18
+ ];
19
+ /**
20
+ * Splits a normalized tenant id (`bdpx_prd`) into its realm and environment.
21
+ * The environment is the final underscore-delimited segment; everything before
22
+ * it is the realm. Ids without an underscore yield just a realm.
23
+ */
24
+ function splitRealmEnvironment(tenantId) {
25
+ const normalized = normalizeTenantId(tenantId);
26
+ const lastUnderscore = normalized.lastIndexOf('_');
27
+ if (lastUnderscore <= 0 || lastUnderscore === normalized.length - 1) {
28
+ return { realm: normalized };
29
+ }
30
+ return {
31
+ realm: normalized.slice(0, lastUnderscore),
32
+ environment: normalized.slice(lastUnderscore + 1),
33
+ };
34
+ }
35
+ /**
36
+ * Strips a leading `realm.` or `realm ` prefix from a packed series id, if
37
+ * present. The Metrics API prefixes most ids with the realm using either a `.`
38
+ * or a space; this removes whichever is found so the category rule sees only the
39
+ * dimension remainder. Returns the input unchanged when no realm prefix matches.
40
+ */
41
+ function stripRealmPrefix(seriesId, realm) {
42
+ if (seriesId.startsWith(`${realm}.`))
43
+ return seriesId.slice(realm.length + 1);
44
+ if (seriesId.startsWith(`${realm} `))
45
+ return seriesId.slice(realm.length + 1);
46
+ return seriesId;
47
+ }
48
+ /**
49
+ * Extractor for series whose remainder is a bare API family (`product`,
50
+ * `custom`, …) — but which may instead be an HTTP status class (`2xx`) or the
51
+ * metric's own fallback id. SCAPI mixes these within a single metric.
52
+ */
53
+ const scapiFamilyOrStatus = (remainder) => {
54
+ if (/^[1-5]xx$/.test(remainder))
55
+ return { statusClass: remainder };
56
+ return { apiFamily: remainder };
57
+ };
58
+ /**
59
+ * Per-category, per-metric extraction rules. Keyed by `category` then
60
+ * `metricId`; a category-level `*` entry applies to any metric not explicitly
61
+ * listed. Rules operate on the realm-stripped remainder (see
62
+ * {@link stripRealmPrefix}); returning `{}` means "no extra dimensions, just the
63
+ * context tags."
64
+ */
65
+ const EXTRACTORS = {
66
+ scapi: {
67
+ // `bdpx.product` → apiFamily=product; `bdpx 2xx`/`bdpx 3xx` → statusClass
68
+ totalCalls: scapiFamilyOrStatus,
69
+ requestLatency: (remainder) => {
70
+ // `Average overall latency` is a rollup, not a per-family series.
71
+ if (/overall/i.test(remainder))
72
+ return { aggregation: 'overall' };
73
+ return { apiFamily: remainder };
74
+ },
75
+ responseCount: scapiFamilyOrStatus,
76
+ errors4xx: (remainder) => ({ apiFamily: remainder }),
77
+ // `bdpx.product HIT` / `bdpx.custom MISS` → apiFamily + cacheStatus
78
+ cacheHitRate: (remainder) => {
79
+ const spaceIdx = remainder.lastIndexOf(' ');
80
+ if (spaceIdx > 0) {
81
+ return { apiFamily: remainder.slice(0, spaceIdx), cacheStatus: remainder.slice(spaceIdx + 1) };
82
+ }
83
+ return { apiFamily: remainder };
84
+ },
85
+ },
86
+ ocapi: {
87
+ // `bdpx.shop` → ocapiCategory=shop
88
+ totalCalls: (remainder) => ({ ocapiCategory: remainder }),
89
+ callsMean: (remainder) => ({ ocapiCategory: remainder }),
90
+ },
91
+ controller: {
92
+ // `bdpx.Home-Show` → controller=Home-Show (applies to every controller metric)
93
+ '*': (remainder) => ({ controller: remainder }),
94
+ },
95
+ 'third-party': {
96
+ // `bdpx.login.salesforce.com` → host; the host itself contains dots, so we
97
+ // treat the whole remainder as the host for call/latency metrics.
98
+ callsCount: (remainder) => ({ host: remainder }),
99
+ callsP95: (remainder) => ({ host: remainder }),
100
+ // `bdpx.host.socketReadTimeout` → host + exceptionType. The exception type is
101
+ // the final dot-segment; everything before it is the (dotted) host. This is
102
+ // only unambiguous because we key on the remoteExceptions metric.
103
+ remoteExceptions: (remainder) => {
104
+ const lastDot = remainder.lastIndexOf('.');
105
+ if (lastDot > 0) {
106
+ return { host: remainder.slice(0, lastDot), exceptionType: remainder.slice(lastDot + 1) };
107
+ }
108
+ return { host: remainder };
109
+ },
110
+ },
111
+ ecdn: {
112
+ // `2xx bdpx.host` (status class BEFORE the realm) → statusClass + host; other
113
+ // eCDN metrics are just `bdpx.host` → host. Operates on the raw id because
114
+ // the realm is not a leading prefix here.
115
+ successAndError: (_remainder, rawId, realm) => {
116
+ const spaceIdx = rawId.indexOf(' ');
117
+ if (spaceIdx > 0) {
118
+ const statusClass = rawId.slice(0, spaceIdx);
119
+ const host = stripRealmPrefix(rawId.slice(spaceIdx + 1), realm);
120
+ return { statusClass, host };
121
+ }
122
+ return { host: stripRealmPrefix(rawId, realm) };
123
+ },
124
+ '*': (remainder) => ({ host: remainder }),
125
+ },
126
+ };
127
+ /**
128
+ * Extracts the dimension tags for a single series id.
129
+ *
130
+ * Combines three tiers, most-authoritative last:
131
+ * 1. **Request identity** — `realm`/`environment` from the tenant id (never parsed
132
+ * from the series string).
133
+ * 2. **String heuristics** — category/metric-specific dimensions parsed from the
134
+ * packed id (`apiFamily`, `host`, `cacheStatus`, …), or the raw remainder under
135
+ * `series` when no rule matches.
136
+ * 3. **Applied filters** — any filter that was sent with the request
137
+ * ({@link MetricsTagContext}) is stamped last, overriding a heuristic guess.
138
+ * This corrects drill-down ids: with `apiFamily=shopper` the server returns
139
+ * `bdpx.shopper.auth.v1`, which heuristics would mis-tag as
140
+ * `apiFamily: "shopper.auth.v1"`; the filter restores `apiFamily: "shopper"`.
141
+ *
142
+ * The result is always a superset of the request context and never throws.
143
+ *
144
+ * @param params - The series' category, metric id, series id, and request context
145
+ * @returns The extracted {@link MetricSeriesTags}
146
+ *
147
+ * @example
148
+ * ```typescript
149
+ * parseSeriesTags({
150
+ * category: 'scapi', metricId: 'cacheHitRate',
151
+ * seriesId: 'bdpx.product HIT', context: {tenantId: 'f_ecom_bdpx_prd'},
152
+ * });
153
+ * // → { realm: 'bdpx', environment: 'prd', apiFamily: 'product', cacheStatus: 'HIT' }
154
+ * ```
155
+ */
156
+ export function parseSeriesTags(params) {
157
+ const { category, metricId, seriesId, context } = params;
158
+ const { realm, environment } = splitRealmEnvironment(context.tenantId);
159
+ const tags = { realm };
160
+ if (environment)
161
+ tags.environment = environment;
162
+ const categoryRules = EXTRACTORS[category];
163
+ const extractor = categoryRules?.[metricId] ?? categoryRules?.['*'];
164
+ const remainder = stripRealmPrefix(seriesId, realm);
165
+ if (extractor) {
166
+ Object.assign(tags, extractor(remainder, seriesId, realm));
167
+ }
168
+ else if (remainder && remainder !== metricId) {
169
+ // No rule for this category/metric. Preserve the (realm-stripped) remainder
170
+ // so nothing is lost, unless it is just the metric id echoed back (a
171
+ // value-less fallback series).
172
+ tags.series = remainder;
173
+ }
174
+ // Applied filters are authoritative — stamp them last so they override any
175
+ // heuristic guess from a drilled-down id.
176
+ for (const [field, key] of FILTER_TAG_KEYS) {
177
+ const value = context[field];
178
+ if (value)
179
+ tags[key] = value;
180
+ }
181
+ return tags;
182
+ }
183
+ /**
184
+ * Enriches a metrics response by adding a structured `tags` map to every series,
185
+ * in place-safe fashion (returns a new response; the input is not mutated).
186
+ *
187
+ * This is the batch counterpart to {@link parseSeriesTags}: it walks every
188
+ * metric and series and attaches `series.tags` derived from the series id, the
189
+ * metric id, the category, and the request context. Existing fields (`id`,
190
+ * `name`, `data`) are preserved exactly, so the enriched response is a
191
+ * structural superset — consumers that ignore `tags` are unaffected. The
192
+ * category must be supplied because a {@link MetricsDataResponse} does not carry
193
+ * it (it is implied by the endpoint that produced the response).
194
+ *
195
+ * @param response - The metrics response to enrich
196
+ * @param category - The metric category the response was fetched for
197
+ * @param context - The request identity used to derive `realm`/`environment`
198
+ * @returns A new response with `tags` added to each series
199
+ *
200
+ * @example
201
+ * ```typescript
202
+ * const raw = await getScapiMetrics(client, tenantId);
203
+ * const enriched = enrichMetricsTags(raw, 'scapi', {tenantId});
204
+ * for (const metric of enriched.data) {
205
+ * for (const series of metric.dataSeries) {
206
+ * console.log(series.tags, series.data);
207
+ * }
208
+ * }
209
+ * ```
210
+ */
211
+ export function enrichMetricsTags(response, category, context) {
212
+ let unparsed = 0;
213
+ const data = (response.data ?? []).map((metric) => ({
214
+ ...metric,
215
+ dataSeries: (metric.dataSeries ?? []).map((series) => {
216
+ const tags = parseSeriesTags({
217
+ category,
218
+ metricId: metric.metricId,
219
+ seriesId: series.id,
220
+ context,
221
+ });
222
+ // Count series where no dimension beyond identity was recovered, to log
223
+ // once about incomplete coverage without failing.
224
+ const hasDimension = Object.keys(tags).some((k) => k !== 'realm' && k !== 'environment');
225
+ if (!hasDimension)
226
+ unparsed++;
227
+ return { ...series, tags };
228
+ }),
229
+ }));
230
+ if (unparsed > 0) {
231
+ getLogger().debug({ unparsed, category, tenantId: context.tenantId }, 'enrichMetricsTags: some series yielded only identity tags (no category dimensions)');
232
+ }
233
+ return { ...response, data };
234
+ }
235
+ //# sourceMappingURL=tags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags.js","sourceRoot":"","sources":["../../../../src/operations/metrics/tags.ts"],"names":[],"mappings":"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"}
@@ -15,8 +15,15 @@ export declare function getGuestToken(config: SlasTokenConfig): Promise<SlasToke
15
15
  * Uses the `/oauth2/login` endpoint with shopper credentials, then exchanges
16
16
  * the authorization code for an access token.
17
17
  *
18
- * - **Public client**: Uses PKCE for code exchange.
19
- * - **Private client**: Uses client credentials (Basic auth) for code exchange.
18
+ * The registered-customer flow is PKCE-protected for **both** public and
19
+ * private clients: a `code_challenge` is always presented at the
20
+ * `/oauth2/login` step, so the matching `code_verifier` must always be sent at
21
+ * the token exchange with the `authorization_code_pkce` grant.
22
+ *
23
+ * - **Public client**: PKCE token exchange (no client secret).
24
+ * - **Private client**: PKCE token exchange, plus HTTP Basic authentication
25
+ * using the client secret. The client must NOT drop PKCE, or SLAS rejects the
26
+ * exchange with `400 code_verifier is required`.
20
27
  *
21
28
  * @param config - SLAS token configuration including shopper credentials
22
29
  * @returns The token response including access_token and refresh_token
@@ -11,6 +11,7 @@
11
11
  *
12
12
  * @module slas/token
13
13
  */
14
+ import { encodeBasicClientCredentials } from '../auth/client-credentials.js';
14
15
  import { wrapNetworkError } from '../errors/network-error.js';
15
16
  import { getLogger } from '../logging/logger.js';
16
17
  import { generateCodeChallenge, generateCodeVerifier } from './pkce.js';
@@ -151,7 +152,7 @@ async function getPrivateClientGuestToken(config) {
151
152
  const logger = getLogger();
152
153
  logger.debug({ clientId: config.slasClientId }, '[SLAS] Using private client client_credentials guest flow');
153
154
  const baseUrl = buildBaseUrl(config.shortCode, config.organizationId);
154
- const basicAuth = Buffer.from(`${config.slasClientId}:${config.slasClientSecret}`).toString('base64');
155
+ const basicAuth = encodeBasicClientCredentials(config.slasClientId, config.slasClientSecret);
155
156
  const tokenBody = new URLSearchParams({
156
157
  grant_type: 'client_credentials',
157
158
  channel_id: config.siteId,
@@ -177,8 +178,15 @@ async function getPrivateClientGuestToken(config) {
177
178
  * Uses the `/oauth2/login` endpoint with shopper credentials, then exchanges
178
179
  * the authorization code for an access token.
179
180
  *
180
- * - **Public client**: Uses PKCE for code exchange.
181
- * - **Private client**: Uses client credentials (Basic auth) for code exchange.
181
+ * The registered-customer flow is PKCE-protected for **both** public and
182
+ * private clients: a `code_challenge` is always presented at the
183
+ * `/oauth2/login` step, so the matching `code_verifier` must always be sent at
184
+ * the token exchange with the `authorization_code_pkce` grant.
185
+ *
186
+ * - **Public client**: PKCE token exchange (no client secret).
187
+ * - **Private client**: PKCE token exchange, plus HTTP Basic authentication
188
+ * using the client secret. The client must NOT drop PKCE, or SLAS rejects the
189
+ * exchange with `400 code_verifier is required`.
182
190
  *
183
191
  * @param config - SLAS token configuration including shopper credentials
184
192
  * @returns The token response including access_token and refresh_token
@@ -220,32 +228,15 @@ export async function getRegisteredToken(config) {
220
228
  }
221
229
  const { code, usid } = parseRedirectCode(location);
222
230
  logger.debug({ usid }, '[SLAS] Got authorization code from login');
223
- // Step 2: Exchange code for token
231
+ // Step 2: Exchange code for token.
232
+ //
233
+ // The login step always presents a `code_challenge`, so the token exchange
234
+ // must always send the matching `code_verifier` with the
235
+ // `authorization_code_pkce` grant — for both public and private clients.
236
+ // A private client additionally authenticates with HTTP Basic using its
237
+ // secret; it must NOT downgrade to the plain `authorization_code` grant or
238
+ // SLAS rejects the exchange with `400 code_verifier is required`.
224
239
  const tokenUrl = `${baseUrl}/oauth2/token`;
225
- if (isPrivate) {
226
- const basicAuth = Buffer.from(`${config.slasClientId}:${config.slasClientSecret}`).toString('base64');
227
- const tokenBody = new URLSearchParams({
228
- grant_type: 'authorization_code',
229
- code,
230
- redirect_uri: config.redirectUri,
231
- channel_id: config.siteId,
232
- usid,
233
- });
234
- const { response: tokenResponse } = await loggedFetch(tokenUrl, {
235
- method: 'POST',
236
- headers: {
237
- 'Content-Type': 'application/x-www-form-urlencoded',
238
- Authorization: `Basic ${basicAuth}`,
239
- },
240
- body: tokenBody,
241
- });
242
- await checkResponse(tokenResponse, 'token exchange (authorization_code)');
243
- const data = (await tokenResponse.json());
244
- const respHeaders = serializeHeaders(tokenResponse);
245
- logger.trace({ headers: respHeaders, body: data }, `[SLAS RESP BODY] POST ${tokenUrl}`);
246
- return data;
247
- }
248
- // Public client — use PKCE
249
240
  const tokenBody = new URLSearchParams({
250
241
  grant_type: 'authorization_code_pkce',
251
242
  client_id: config.slasClientId,
@@ -255,9 +246,14 @@ export async function getRegisteredToken(config) {
255
246
  channel_id: config.siteId,
256
247
  usid,
257
248
  });
249
+ const tokenHeaders = { 'Content-Type': 'application/x-www-form-urlencoded' };
250
+ if (isPrivate) {
251
+ const basicAuth = encodeBasicClientCredentials(config.slasClientId, config.slasClientSecret);
252
+ tokenHeaders.Authorization = `Basic ${basicAuth}`;
253
+ }
258
254
  const { response: tokenResponse } = await loggedFetch(tokenUrl, {
259
255
  method: 'POST',
260
- headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
256
+ headers: tokenHeaders,
261
257
  body: tokenBody,
262
258
  });
263
259
  await checkResponse(tokenResponse, 'token exchange (authorization_code_pkce)');
@@ -1 +1 @@
1
- {"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/slas/token.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/slas/token.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,7 @@ export declare class Telemetry {
28
28
  private traceLog;
29
29
  private flushIntervalMs;
30
30
  private flushTimer;
31
+ private isCI;
31
32
  /**
32
33
  * Check if telemetry is disabled via environment variables.
33
34
  * Supports both SF_DISABLE_TELEMETRY (sf CLI standard) and SFCC_DISABLE_TELEMETRY.
@@ -9,6 +9,35 @@ import path from 'node:path';
9
9
  import { AppInsightsClient } from './app-insights-client.js';
10
10
  import { getLogger } from '../logging/index.js';
11
11
  const generateRandomId = () => randomBytes(20).toString('hex');
12
+ /**
13
+ * Best-effort detection of a CI / non-interactive automation environment.
14
+ *
15
+ * Telemetry analysis showed a small number of automation installs can account
16
+ * for a large share of events, skewing blended KPIs (e.g. error rates). Tagging
17
+ * every event with `isCI` lets analytics separate human-developer traffic from
18
+ * CI without resorting to fragile cliId/IP heuristics after the fact.
19
+ *
20
+ * Recognizes the generic `CI` convention plus common provider-specific vars.
21
+ */
22
+ function detectCI() {
23
+ const env = process.env;
24
+ // Generic convention honored by most CI providers (GitHub Actions, GitLab,
25
+ // CircleCI, Travis, etc.). `CI=false`/`CI=0`/empty explicitly opt out.
26
+ if (env.CI !== undefined && env.CI !== 'false' && env.CI !== '0' && env.CI !== '') {
27
+ return true;
28
+ }
29
+ return Boolean(env.CONTINUOUS_INTEGRATION ||
30
+ env.BUILD_NUMBER ||
31
+ env.GITHUB_ACTIONS ||
32
+ env.GITLAB_CI ||
33
+ env.CIRCLECI ||
34
+ env.TRAVIS ||
35
+ env.JENKINS_URL ||
36
+ env.TEAMCITY_VERSION ||
37
+ env.TF_BUILD ||
38
+ env.BITBUCKET_BUILD_NUMBER ||
39
+ env.CODEBUILD_BUILD_ID);
40
+ }
12
41
  /**
13
42
  * Sanitize attributes to only include string, number, boolean (App Insights–safe).
14
43
  * Aligns with sf CLI telemetry record() validation.
@@ -117,6 +146,7 @@ export class Telemetry {
117
146
  traceLog;
118
147
  flushIntervalMs;
119
148
  flushTimer;
149
+ isCI;
120
150
  /**
121
151
  * Check if telemetry is disabled via environment variables.
122
152
  * Supports both SF_DISABLE_TELEMETRY (sf CLI standard) and SFCC_DISABLE_TELEMETRY.
@@ -144,6 +174,7 @@ export class Telemetry {
144
174
  this.started = false;
145
175
  this.version = options.version ?? '0.0.0';
146
176
  this.flushIntervalMs = options.flushIntervalMs;
177
+ this.isCI = detectCI();
147
178
  if (process.env.SFCC_TELEMETRY_LOG === 'true') {
148
179
  this.traceLog = getLogger().child({ component: 'telemetry' });
149
180
  }
@@ -277,6 +308,7 @@ export class Telemetry {
277
308
  date: new Date().toUTCString(),
278
309
  timestamp: String(Date.now()),
279
310
  processUptime: process.uptime() * 1000,
311
+ isCI: this.isCI,
280
312
  };
281
313
  }
282
314
  createClient() {
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../../src/telemetry/telemetry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../../src/telemetry/telemetry.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,12 @@ export interface TelemetryEventProperties extends TelemetryAttributes {
30
30
  timestamp: string;
31
31
  /** Process uptime in milliseconds */
32
32
  processUptime: number;
33
+ /**
34
+ * Whether the event originated from a CI / automation environment.
35
+ * Allows analytics to separate human-developer traffic from CI runs, which
36
+ * can otherwise dominate volume and skew blended KPIs.
37
+ */
38
+ isCI: boolean;
33
39
  }
34
40
  /**
35
41
  * Options for creating a Telemetry instance.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@salesforce/b2c-tooling-sdk",
3
3
  "description": "Core tooling library for Salesforce B2C Commerce CLI",
4
- "version": "1.17.0",
4
+ "version": "1.19.0",
5
5
  "author": "Charles Lavery",
6
6
  "license": "Apache-2.0",
7
7
  "repository": "SalesforceCommerceCloud/b2c-developer-tooling",
@@ -96,6 +96,10 @@
96
96
  "types": "./dist/esm/operations/cip/index.d.ts",
97
97
  "default": "./dist/esm/operations/cip/index.js"
98
98
  },
99
+ "./operations/metrics": {
100
+ "types": "./dist/esm/operations/metrics/index.d.ts",
101
+ "default": "./dist/esm/operations/metrics/index.js"
102
+ },
99
103
  "./slas": {
100
104
  "types": "./dist/esm/slas/index.d.ts",
101
105
  "default": "./dist/esm/slas/index.js"
@@ -225,6 +229,7 @@
225
229
  "jsonschema": "1.5.0",
226
230
  "jszip": "3.10.1",
227
231
  "minimatch": "10.2.4",
232
+ "minisearch": "7.2.0",
228
233
  "open": "11.0.0",
229
234
  "openapi-fetch": "0.15.0",
230
235
  "pino": "10.1.0",
@@ -235,7 +240,7 @@
235
240
  "xml2js": "0.6.2"
236
241
  },
237
242
  "scripts": {
238
- "generate:types": "openapi-typescript specs/data-api.json -o src/clients/ocapi.generated.ts && openapi-typescript specs/slas-admin-v1.yaml -o src/clients/slas-admin.generated.ts && openapi-typescript specs/ods-api-v1.json -o src/clients/ods.generated.ts && openapi-typescript specs/mrt-api-v1.json -o src/clients/mrt.generated.ts && openapi-typescript specs/mrt-b2c.json -o src/clients/mrt-b2c.generated.ts && openapi-typescript specs/custom-apis-v1.yaml -o src/clients/custom-apis.generated.ts && openapi-typescript specs/scapi-schemas-v1.yaml -o src/clients/scapi-schemas.generated.ts && openapi-typescript specs/cdn-zones-v1.yaml -o src/clients/cdn-zones.generated.ts && openapi-typescript specs/am-users-api-v1.yaml -o src/clients/am-users-api.generated.ts && openapi-typescript specs/am-roles-api-v1.yaml -o src/clients/am-roles-api.generated.ts && openapi-typescript specs/am-apiclients-api-v1.yaml -o src/clients/am-apiclients-api.generated.ts && openapi-typescript specs/granular-replications-v1.yaml -o src/clients/granular-replications.generated.ts",
243
+ "generate:types": "openapi-typescript specs/data-api.json -o src/clients/ocapi.generated.ts && openapi-typescript specs/slas-admin-v1.yaml -o src/clients/slas-admin.generated.ts && openapi-typescript specs/ods-api-v1.json -o src/clients/ods.generated.ts && openapi-typescript specs/mrt-api-v1.json -o src/clients/mrt.generated.ts && openapi-typescript specs/mrt-b2c.json -o src/clients/mrt-b2c.generated.ts && openapi-typescript specs/custom-apis-v1.yaml -o src/clients/custom-apis.generated.ts && openapi-typescript specs/scapi-schemas-v1.yaml -o src/clients/scapi-schemas.generated.ts && openapi-typescript specs/cdn-zones-v1.yaml -o src/clients/cdn-zones.generated.ts && openapi-typescript specs/am-users-api-v1.yaml -o src/clients/am-users-api.generated.ts && openapi-typescript specs/am-roles-api-v1.yaml -o src/clients/am-roles-api.generated.ts && openapi-typescript specs/am-apiclients-api-v1.yaml -o src/clients/am-apiclients-api.generated.ts && openapi-typescript specs/granular-replications-v1.yaml -o src/clients/granular-replications.generated.ts && openapi-typescript specs/metrics-v1.json -o src/clients/metrics.generated.ts",
239
244
  "build": "pnpm run generate:types && pnpm run build:esm",
240
245
  "build:esm": "tsc -p tsconfig.esm.json",
241
246
  "clean": "shx rm -rf dist",
@@ -255,6 +260,10 @@
255
260
  "posttest": "pnpm run lint",
256
261
  "generate:docs-index": "tsx scripts/generate-docs-index.ts",
257
262
  "build:job-steps-dataset": "tsx scripts/build-job-steps-dataset.ts",
258
- "generate:job-steps-docs": "tsx scripts/generate-job-steps-docs.ts"
263
+ "generate:job-steps-docs": "tsx scripts/generate-job-steps-docs.ts",
264
+ "refresh:docs-data": "tsx scripts/refresh-docs-data.ts",
265
+ "generate:guides-index": "tsx scripts/generate-guides-index.ts",
266
+ "generate:tooling-index": "tsx scripts/generate-tooling-index.ts",
267
+ "enrich:docs": "tsx scripts/enrich-docs.ts"
259
268
  }
260
269
  }