@salesforce/b2c-tooling-sdk 1.14.1 → 1.15.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.
- package/dist/esm/operations/cap/install.d.ts +5 -0
- package/dist/esm/operations/cap/install.js +3 -1
- package/dist/esm/operations/cap/install.js.map +1 -1
- package/dist/esm/operations/mrt/deployment.d.ts +5 -0
- package/dist/esm/operations/mrt/deployment.js +7 -1
- package/dist/esm/operations/mrt/deployment.js.map +1 -1
- package/dist/esm/operations/mrt/push.d.ts +4 -0
- package/dist/esm/operations/mrt/push.js +4 -3
- package/dist/esm/operations/mrt/push.js.map +1 -1
- package/dist/esm/telemetry/app-insights-client.d.ts +82 -0
- package/dist/esm/telemetry/app-insights-client.js +229 -0
- package/dist/esm/telemetry/app-insights-client.js.map +1 -0
- package/dist/esm/telemetry/telemetry.d.ts +2 -0
- package/dist/esm/telemetry/telemetry.js +24 -34
- package/dist/esm/telemetry/telemetry.js.map +1 -1
- package/dist/esm/telemetry/types.d.ts +12 -0
- package/package.json +1 -2
|
@@ -9,6 +9,11 @@ export interface CommerceAppInstallOptions {
|
|
|
9
9
|
siteId: string;
|
|
10
10
|
/** Keep the uploaded zip on the instance after install (default: false). */
|
|
11
11
|
keepArchive?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Create a pull request against the connected Storefront Next repository
|
|
14
|
+
* when the app includes storefront content (default: false).
|
|
15
|
+
*/
|
|
16
|
+
shouldCreatePr?: boolean;
|
|
12
17
|
/** Wait options for job completion. */
|
|
13
18
|
waitOptions?: WaitForJobOptions;
|
|
14
19
|
}
|
|
@@ -39,7 +39,7 @@ const INSTALL_JOB_ID = 'sfcc-install-commerce-app';
|
|
|
39
39
|
*/
|
|
40
40
|
export async function commerceAppInstall(instance, target, options) {
|
|
41
41
|
const logger = getLogger();
|
|
42
|
-
const { siteId: rawSiteId, keepArchive = false, waitOptions } = options;
|
|
42
|
+
const { siteId: rawSiteId, keepArchive = false, shouldCreatePr = false, waitOptions } = options;
|
|
43
43
|
const siteId = normalizeSiteId(rawSiteId);
|
|
44
44
|
if (!fs.existsSync(target)) {
|
|
45
45
|
throw new Error(`Target not found: ${target}`);
|
|
@@ -81,6 +81,7 @@ export async function commerceAppInstall(instance, target, options) {
|
|
|
81
81
|
app_domain: manifest.domain,
|
|
82
82
|
site_id: siteId,
|
|
83
83
|
app_path: appPath,
|
|
84
|
+
should_create_pr: shouldCreatePr,
|
|
84
85
|
},
|
|
85
86
|
});
|
|
86
87
|
if (error?.fault?.type === 'UnknownPropertyException' &&
|
|
@@ -96,6 +97,7 @@ export async function commerceAppInstall(instance, target, options) {
|
|
|
96
97
|
{ name: 'AppDomain', value: manifest.domain },
|
|
97
98
|
{ name: 'SiteId', value: siteId },
|
|
98
99
|
{ name: 'AppPath', value: appPath },
|
|
100
|
+
{ name: 'ShouldCreatePR', value: String(shouldCreatePr) },
|
|
99
101
|
],
|
|
100
102
|
},
|
|
101
103
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../../src/operations/cap/install.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;;GAIG;AACH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAC,SAAS,EAAC,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAC,UAAU,EAAE,iBAAiB,EAAE,SAAS,EAA4C,MAAM,gBAAgB,CAAC;AACnH,OAAO,EAAC,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAA0B,MAAM,eAAe,CAAC;AAEvD,MAAM,cAAc,GAAG,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../../src/operations/cap/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -126,6 +126,11 @@ export interface CreateDeploymentResult {
|
|
|
126
126
|
* Initial deployment status.
|
|
127
127
|
*/
|
|
128
128
|
status: string;
|
|
129
|
+
/**
|
|
130
|
+
* Non-blocking warnings returned by MRT for this deployment (e.g. x86 deprecation).
|
|
131
|
+
* Optional — absent if the deploy endpoint returns no warnings.
|
|
132
|
+
*/
|
|
133
|
+
warnings?: string[];
|
|
129
134
|
}
|
|
130
135
|
/**
|
|
131
136
|
* Deploys a bundle to an MRT environment.
|
|
@@ -85,7 +85,7 @@ export async function createDeployment(options, auth) {
|
|
|
85
85
|
const { projectSlug, targetSlug, bundleId, origin } = options;
|
|
86
86
|
logger.debug({ projectSlug, targetSlug, bundleId }, '[MRT] Creating deployment');
|
|
87
87
|
const client = createMrtClient({ origin: origin || DEFAULT_MRT_ORIGIN }, auth);
|
|
88
|
-
const { error } = await client.POST('/api/projects/{project_slug}/target/{target_slug}/deploy/', {
|
|
88
|
+
const { data, error } = await client.POST('/api/projects/{project_slug}/target/{target_slug}/deploy/', {
|
|
89
89
|
params: {
|
|
90
90
|
path: { project_slug: projectSlug, target_slug: targetSlug },
|
|
91
91
|
},
|
|
@@ -99,11 +99,17 @@ export async function createDeployment(options, auth) {
|
|
|
99
99
|
: JSON.stringify(error);
|
|
100
100
|
throw new Error(`Failed to create deployment: ${errorMessage}`);
|
|
101
101
|
}
|
|
102
|
+
// Defensive: the deploy endpoint response shape is not strongly typed and may not
|
|
103
|
+
// include `warnings`; default to [] so nothing breaks. We return these for the caller
|
|
104
|
+
// (e.g. the CLI) to surface — we don't log them here, to avoid double-printing.
|
|
105
|
+
const deployData = (data ?? {});
|
|
106
|
+
const warnings = deployData.warnings ?? [];
|
|
102
107
|
logger.debug({ bundleId }, '[MRT] Deployment created');
|
|
103
108
|
return {
|
|
104
109
|
bundleId,
|
|
105
110
|
targetSlug,
|
|
106
111
|
status: 'pending',
|
|
112
|
+
warnings,
|
|
107
113
|
};
|
|
108
114
|
}
|
|
109
115
|
//# sourceMappingURL=deployment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployment.js","sourceRoot":"","sources":["../../../../src/operations/mrt/deployment.ts"],"names":[],"mappings":"AAaA,OAAO,EAAC,eAAe,EAAE,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAEzE,OAAO,EAAC,SAAS,EAAC,MAAM,yBAAyB,CAAC;AAoElD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAA+B,EAC/B,IAAkB;IAElB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,EAAC,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAC,GAAG,OAAO,CAAC;IAEjE,MAAM,CAAC,KAAK,CAAC,EAAC,WAAW,EAAE,UAAU,EAAC,EAAE,2BAA2B,CAAC,CAAC;IAErE,MAAM,MAAM,GAAG,eAAe,CAAC,EAAC,MAAM,EAAE,MAAM,IAAI,kBAAkB,EAAC,EAAE,IAAI,CAAC,CAAC;IAE7E,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,2DAA2D,EAAE;QAClG,MAAM,EAAE;YACN,IAAI,EAAE,EAAC,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAC;YAC1D,KAAK,EAAE;gBACL,KAAK;gBACL,MAAM;aACP;SACF;KACF,CAAC,CAAC;IAEH,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,YAAY,GAChB,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,SAAS,IAAI,KAAK;YAC/D,CAAC,CAAC,MAAM,CAAE,KAA4B,CAAC,OAAO,CAAC;YAC/C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,+BAA+B,YAAY,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAC,EAAE,0BAA0B,CAAC,CAAC;IAE9D,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC;QACtB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;QAC/B,WAAW,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;KAChC,CAAC;AACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"deployment.js","sourceRoot":"","sources":["../../../../src/operations/mrt/deployment.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,6 +47,10 @@ export interface PushResult {
|
|
|
47
47
|
* The bundle message.
|
|
48
48
|
*/
|
|
49
49
|
message: string;
|
|
50
|
+
/**
|
|
51
|
+
* Non-blocking warnings returned by MRT for this push/deploy (e.g. x86 deprecation).
|
|
52
|
+
*/
|
|
53
|
+
warnings?: string[];
|
|
50
54
|
}
|
|
51
55
|
/**
|
|
52
56
|
* Pushes a bundle to a Managed Runtime project.
|
|
@@ -90,6 +90,7 @@ export async function uploadBundle(client, projectSlug, bundle, target) {
|
|
|
90
90
|
target,
|
|
91
91
|
deployed: true,
|
|
92
92
|
message: bundle.message,
|
|
93
|
+
warnings: buildData.warnings ?? [],
|
|
93
94
|
};
|
|
94
95
|
}
|
|
95
96
|
else {
|
|
@@ -113,14 +114,14 @@ export async function uploadBundle(client, projectSlug, bundle, target) {
|
|
|
113
114
|
throw new Error(`Failed to push bundle: ${JSON.stringify(error)}`);
|
|
114
115
|
}
|
|
115
116
|
const buildData = data;
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
});
|
|
117
|
+
// Return warnings for the caller (e.g. the CLI) to surface — we don't log them
|
|
118
|
+
// here, to avoid double-printing.
|
|
119
119
|
return {
|
|
120
120
|
bundleId: buildData.bundle_id,
|
|
121
121
|
projectSlug,
|
|
122
122
|
deployed: false,
|
|
123
123
|
message: bundle.message,
|
|
124
|
+
warnings: buildData.warnings ?? [],
|
|
124
125
|
};
|
|
125
126
|
}
|
|
126
127
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../../../src/operations/mrt/push.ts"],"names":[],"mappings":"AAaA,OAAO,EAAC,eAAe,EAAE,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAEzE,OAAO,EAAC,SAAS,EAAC,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../../../src/operations/mrt/push.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context tag keys, mirroring `client.context.keys` from the SDK so callers can
|
|
3
|
+
* keep using the familiar `tags[keys.userId]` idiom.
|
|
4
|
+
*/
|
|
5
|
+
export declare const contextTagKeys: {
|
|
6
|
+
readonly userId: "ai.user.id";
|
|
7
|
+
readonly cloudRoleInstance: "ai.cloud.roleInstance";
|
|
8
|
+
};
|
|
9
|
+
/** Arguments for {@link AppInsightsClient.trackEvent}. */
|
|
10
|
+
export interface TrackEventArgs {
|
|
11
|
+
name: string;
|
|
12
|
+
properties?: Record<string, string>;
|
|
13
|
+
measurements?: Record<string, number>;
|
|
14
|
+
}
|
|
15
|
+
/** Arguments for {@link AppInsightsClient.trackException}. */
|
|
16
|
+
export interface TrackExceptionArgs {
|
|
17
|
+
exception: Error;
|
|
18
|
+
properties?: Record<string, string>;
|
|
19
|
+
measurements?: Record<string, number>;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Parse an Application Insights connection string into the instrumentation key
|
|
23
|
+
* and resolved ingestion `/v2.1/track` URL.
|
|
24
|
+
*
|
|
25
|
+
* The connection string is semicolon-delimited `key=value` pairs with
|
|
26
|
+
* case-insensitive keys, e.g.
|
|
27
|
+
* `InstrumentationKey=<guid>;IngestionEndpoint=https://<region>.in.applicationinsights.azure.com/`.
|
|
28
|
+
*
|
|
29
|
+
* Plain GUIDs (legacy instrumentation keys with no `=`) are also accepted.
|
|
30
|
+
*
|
|
31
|
+
* @returns the iKey and track URL, or `null` if no instrumentation key is present.
|
|
32
|
+
*/
|
|
33
|
+
export declare function parseConnectionString(connectionString: string): {
|
|
34
|
+
iKey: string;
|
|
35
|
+
trackUrl: string;
|
|
36
|
+
} | null;
|
|
37
|
+
/**
|
|
38
|
+
* A minimal, dependency-free Application Insights client.
|
|
39
|
+
*
|
|
40
|
+
* Construct with an instrumentation key or connection string, optionally set
|
|
41
|
+
* {@link AppInsightsClient.context} tags, then buffer telemetry via
|
|
42
|
+
* {@link AppInsightsClient.trackEvent}/{@link AppInsightsClient.trackException}
|
|
43
|
+
* and deliver it with {@link AppInsightsClient.flush}.
|
|
44
|
+
*
|
|
45
|
+
* If the connection string has no instrumentation key, the client becomes an
|
|
46
|
+
* inert no-op (every method silently does nothing) — it never throws into
|
|
47
|
+
* calling code.
|
|
48
|
+
*/
|
|
49
|
+
export declare class AppInsightsClient {
|
|
50
|
+
/**
|
|
51
|
+
* SDK-compatible config bag. Retained so callers can read
|
|
52
|
+
* `config.connectionString`; the SDK's auto-collection toggles are obsolete
|
|
53
|
+
* here (this client only does manual tracking) and are intentionally absent.
|
|
54
|
+
*/
|
|
55
|
+
readonly config: {
|
|
56
|
+
connectionString: string;
|
|
57
|
+
};
|
|
58
|
+
/** SDK-compatible context: per-envelope tags plus the canonical key names. */
|
|
59
|
+
readonly context: {
|
|
60
|
+
tags: Record<string, string>;
|
|
61
|
+
keys: typeof contextTagKeys;
|
|
62
|
+
};
|
|
63
|
+
private readonly iKey;
|
|
64
|
+
private readonly trackUrl;
|
|
65
|
+
private readonly timeoutMs;
|
|
66
|
+
private buffer;
|
|
67
|
+
constructor(connectionString: string, options?: {
|
|
68
|
+
timeoutMs?: number;
|
|
69
|
+
});
|
|
70
|
+
/** Buffer an event envelope. Delivered on the next {@link flush}. */
|
|
71
|
+
trackEvent(args: TrackEventArgs): void;
|
|
72
|
+
/** Buffer an exception envelope. Delivered on the next {@link flush}. */
|
|
73
|
+
trackException(args: TrackExceptionArgs): void;
|
|
74
|
+
/**
|
|
75
|
+
* POST all buffered envelopes to the ingestion endpoint in one request and
|
|
76
|
+
* clear the buffer. Best-effort: any network/HTTP error is swallowed (the
|
|
77
|
+
* buffer is still cleared) so telemetry never affects the caller.
|
|
78
|
+
*/
|
|
79
|
+
flush(): Promise<void>;
|
|
80
|
+
/** Build a Breeze envelope, stamping the current context tags and time. */
|
|
81
|
+
private envelope;
|
|
82
|
+
}
|
|
@@ -0,0 +1,229 @@
|
|
|
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
|
+
/**
|
|
7
|
+
* Zero-dependency Application Insights ingestion client.
|
|
8
|
+
*
|
|
9
|
+
* This is a deliberately tiny replacement for the `applicationinsights` npm
|
|
10
|
+
* package. We only ever did manual event/exception tracking (every
|
|
11
|
+
* auto-collection feature was disabled), so the full SDK — which in v3.x pulls
|
|
12
|
+
* in ~98 transitive packages (OpenTelemetry, the Azure SDK, gRPC/protobuf, DB
|
|
13
|
+
* instrumentations) — was vastly more than we needed.
|
|
14
|
+
*
|
|
15
|
+
* Instead we POST classic "Breeze" telemetry envelopes directly to the
|
|
16
|
+
* ingestion endpoint using Node's built-in global `fetch` (Node >= 22). The
|
|
17
|
+
* wire format and `/v2.1/track` endpoint were verified by capturing what the
|
|
18
|
+
* real v3 SDK emits and by a live round-trip against the ingestion endpoint
|
|
19
|
+
* (which returned `itemsAccepted` for these exact envelopes).
|
|
20
|
+
*
|
|
21
|
+
* Only the surface the {@link Telemetry} wrapper uses is implemented:
|
|
22
|
+
* {@link AppInsightsClient.trackEvent}, {@link AppInsightsClient.trackException},
|
|
23
|
+
* and {@link AppInsightsClient.flush}. The shape mirrors the SDK's
|
|
24
|
+
* `TelemetryClient` (`config`, `context.tags`/`context.keys`) so the wrapper
|
|
25
|
+
* stays a thin adapter.
|
|
26
|
+
*
|
|
27
|
+
* @module telemetry/app-insights-client
|
|
28
|
+
* @internal
|
|
29
|
+
*/
|
|
30
|
+
/** Path appended to the ingestion endpoint. The v3 SDK uses v2.1. */
|
|
31
|
+
const TRACK_PATH = '/v2.1/track';
|
|
32
|
+
/** Default ingestion endpoint when the connection string omits one. */
|
|
33
|
+
const DEFAULT_INGESTION_ENDPOINT = 'https://dc.services.visualstudio.com';
|
|
34
|
+
/** Envelope-level schema version (Breeze `ver`). */
|
|
35
|
+
const ENVELOPE_VERSION = 1;
|
|
36
|
+
/** baseData schema version (Breeze EventData/ExceptionData `ver`). */
|
|
37
|
+
const BASE_DATA_VERSION = 2;
|
|
38
|
+
/** We never sample client-side. */
|
|
39
|
+
const SAMPLE_RATE = 100;
|
|
40
|
+
/** Default request timeout so a hung endpoint never blocks CLI exit. */
|
|
41
|
+
const DEFAULT_TIMEOUT_MS = 5000;
|
|
42
|
+
/** Breeze property/measurement limits (server truncates beyond these). */
|
|
43
|
+
const MAX_KEY_LENGTH = 150;
|
|
44
|
+
const MAX_VALUE_LENGTH = 8192;
|
|
45
|
+
/**
|
|
46
|
+
* Context tag keys, mirroring `client.context.keys` from the SDK so callers can
|
|
47
|
+
* keep using the familiar `tags[keys.userId]` idiom.
|
|
48
|
+
*/
|
|
49
|
+
export const contextTagKeys = {
|
|
50
|
+
userId: 'ai.user.id',
|
|
51
|
+
cloudRoleInstance: 'ai.cloud.roleInstance',
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Parse an Application Insights connection string into the instrumentation key
|
|
55
|
+
* and resolved ingestion `/v2.1/track` URL.
|
|
56
|
+
*
|
|
57
|
+
* The connection string is semicolon-delimited `key=value` pairs with
|
|
58
|
+
* case-insensitive keys, e.g.
|
|
59
|
+
* `InstrumentationKey=<guid>;IngestionEndpoint=https://<region>.in.applicationinsights.azure.com/`.
|
|
60
|
+
*
|
|
61
|
+
* Plain GUIDs (legacy instrumentation keys with no `=`) are also accepted.
|
|
62
|
+
*
|
|
63
|
+
* @returns the iKey and track URL, or `null` if no instrumentation key is present.
|
|
64
|
+
*/
|
|
65
|
+
export function parseConnectionString(connectionString) {
|
|
66
|
+
const fields = {};
|
|
67
|
+
let bareKey;
|
|
68
|
+
for (const part of connectionString.split(';')) {
|
|
69
|
+
const trimmed = part.trim();
|
|
70
|
+
if (!trimmed)
|
|
71
|
+
continue;
|
|
72
|
+
const eq = trimmed.indexOf('=');
|
|
73
|
+
if (eq < 0) {
|
|
74
|
+
// A bare token with no '=' — treat as a legacy instrumentation key.
|
|
75
|
+
bareKey = trimmed;
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
fields[trimmed.slice(0, eq).trim().toLowerCase()] = trimmed.slice(eq + 1).trim();
|
|
79
|
+
}
|
|
80
|
+
const iKey = fields.instrumentationkey ?? bareKey;
|
|
81
|
+
if (!iKey)
|
|
82
|
+
return null;
|
|
83
|
+
let endpoint;
|
|
84
|
+
if (fields.ingestionendpoint) {
|
|
85
|
+
endpoint = fields.ingestionendpoint;
|
|
86
|
+
}
|
|
87
|
+
else if (fields.endpointsuffix) {
|
|
88
|
+
const locationPrefix = fields.location ? `${fields.location}.` : '';
|
|
89
|
+
endpoint = `https://${locationPrefix}dc.${fields.endpointsuffix}`;
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
endpoint = DEFAULT_INGESTION_ENDPOINT;
|
|
93
|
+
}
|
|
94
|
+
// Sanitize: upgrade http -> https and strip any trailing slash, matching the SDK.
|
|
95
|
+
endpoint = endpoint.replace(/^http:\/\//i, 'https://').replace(/\/+$/, '');
|
|
96
|
+
return { iKey, trackUrl: endpoint + TRACK_PATH };
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Truncate a string to a maximum length (Breeze enforces server-side; we mirror
|
|
100
|
+
* it to keep payloads tidy).
|
|
101
|
+
*/
|
|
102
|
+
function truncate(value, max) {
|
|
103
|
+
return value.length > max ? value.slice(0, max) : value;
|
|
104
|
+
}
|
|
105
|
+
/** Clamp a Record's keys/values to Breeze limits. */
|
|
106
|
+
function clampProperties(properties) {
|
|
107
|
+
const out = {};
|
|
108
|
+
for (const [key, value] of Object.entries(properties)) {
|
|
109
|
+
out[truncate(key, MAX_KEY_LENGTH)] = truncate(value, MAX_VALUE_LENGTH);
|
|
110
|
+
}
|
|
111
|
+
return out;
|
|
112
|
+
}
|
|
113
|
+
function clampMeasurementKeys(measurements) {
|
|
114
|
+
const out = {};
|
|
115
|
+
for (const [key, value] of Object.entries(measurements)) {
|
|
116
|
+
out[truncate(key, MAX_KEY_LENGTH)] = value;
|
|
117
|
+
}
|
|
118
|
+
return out;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* A minimal, dependency-free Application Insights client.
|
|
122
|
+
*
|
|
123
|
+
* Construct with an instrumentation key or connection string, optionally set
|
|
124
|
+
* {@link AppInsightsClient.context} tags, then buffer telemetry via
|
|
125
|
+
* {@link AppInsightsClient.trackEvent}/{@link AppInsightsClient.trackException}
|
|
126
|
+
* and deliver it with {@link AppInsightsClient.flush}.
|
|
127
|
+
*
|
|
128
|
+
* If the connection string has no instrumentation key, the client becomes an
|
|
129
|
+
* inert no-op (every method silently does nothing) — it never throws into
|
|
130
|
+
* calling code.
|
|
131
|
+
*/
|
|
132
|
+
export class AppInsightsClient {
|
|
133
|
+
/**
|
|
134
|
+
* SDK-compatible config bag. Retained so callers can read
|
|
135
|
+
* `config.connectionString`; the SDK's auto-collection toggles are obsolete
|
|
136
|
+
* here (this client only does manual tracking) and are intentionally absent.
|
|
137
|
+
*/
|
|
138
|
+
config;
|
|
139
|
+
/** SDK-compatible context: per-envelope tags plus the canonical key names. */
|
|
140
|
+
context;
|
|
141
|
+
iKey;
|
|
142
|
+
trackUrl;
|
|
143
|
+
timeoutMs;
|
|
144
|
+
buffer = [];
|
|
145
|
+
constructor(connectionString, options = {}) {
|
|
146
|
+
this.config = { connectionString };
|
|
147
|
+
this.context = { tags: {}, keys: contextTagKeys };
|
|
148
|
+
this.timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
149
|
+
const parsed = parseConnectionString(connectionString);
|
|
150
|
+
if (parsed) {
|
|
151
|
+
this.iKey = parsed.iKey;
|
|
152
|
+
this.trackUrl = parsed.trackUrl;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
/** Buffer an event envelope. Delivered on the next {@link flush}. */
|
|
156
|
+
trackEvent(args) {
|
|
157
|
+
if (!this.iKey)
|
|
158
|
+
return;
|
|
159
|
+
this.buffer.push(this.envelope('EventData', {
|
|
160
|
+
ver: BASE_DATA_VERSION,
|
|
161
|
+
name: args.name,
|
|
162
|
+
properties: clampProperties(args.properties ?? {}),
|
|
163
|
+
measurements: clampMeasurementKeys(args.measurements ?? {}),
|
|
164
|
+
}));
|
|
165
|
+
}
|
|
166
|
+
/** Buffer an exception envelope. Delivered on the next {@link flush}. */
|
|
167
|
+
trackException(args) {
|
|
168
|
+
if (!this.iKey)
|
|
169
|
+
return;
|
|
170
|
+
const { exception } = args;
|
|
171
|
+
const stack = exception.stack;
|
|
172
|
+
const details = {
|
|
173
|
+
typeName: truncate(exception.name || 'Error', 1024),
|
|
174
|
+
message: truncate(exception.message || '', 32768),
|
|
175
|
+
hasFullStack: Boolean(stack),
|
|
176
|
+
};
|
|
177
|
+
if (stack)
|
|
178
|
+
details.stack = truncate(stack, 32768);
|
|
179
|
+
this.buffer.push(this.envelope('ExceptionData', {
|
|
180
|
+
ver: BASE_DATA_VERSION,
|
|
181
|
+
exceptions: [details],
|
|
182
|
+
severityLevel: 'Error',
|
|
183
|
+
properties: clampProperties(args.properties ?? {}),
|
|
184
|
+
measurements: clampMeasurementKeys(args.measurements ?? {}),
|
|
185
|
+
}));
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* POST all buffered envelopes to the ingestion endpoint in one request and
|
|
189
|
+
* clear the buffer. Best-effort: any network/HTTP error is swallowed (the
|
|
190
|
+
* buffer is still cleared) so telemetry never affects the caller.
|
|
191
|
+
*/
|
|
192
|
+
async flush() {
|
|
193
|
+
if (!this.trackUrl || this.buffer.length === 0) {
|
|
194
|
+
this.buffer = [];
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
const body = JSON.stringify(this.buffer);
|
|
198
|
+
this.buffer = [];
|
|
199
|
+
const controller = new AbortController();
|
|
200
|
+
const timer = setTimeout(() => controller.abort(), this.timeoutMs);
|
|
201
|
+
try {
|
|
202
|
+
await fetch(this.trackUrl, {
|
|
203
|
+
method: 'POST',
|
|
204
|
+
headers: { 'Content-Type': 'application/json', Accept: 'application/json' },
|
|
205
|
+
body,
|
|
206
|
+
signal: controller.signal,
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
catch {
|
|
210
|
+
// best-effort: ignore network errors, timeouts, and abort
|
|
211
|
+
}
|
|
212
|
+
finally {
|
|
213
|
+
clearTimeout(timer);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
/** Build a Breeze envelope, stamping the current context tags and time. */
|
|
217
|
+
envelope(baseType, baseData) {
|
|
218
|
+
return {
|
|
219
|
+
ver: ENVELOPE_VERSION,
|
|
220
|
+
name: baseType === 'EventData' ? 'Microsoft.ApplicationInsights.Event' : 'Microsoft.ApplicationInsights.Exception',
|
|
221
|
+
time: new Date().toISOString(),
|
|
222
|
+
sampleRate: SAMPLE_RATE,
|
|
223
|
+
iKey: this.iKey,
|
|
224
|
+
tags: { ...this.context.tags },
|
|
225
|
+
data: { baseType, baseData },
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
//# sourceMappingURL=app-insights-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-insights-client.js","sourceRoot":"","sources":["../../../src/telemetry/app-insights-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,8 @@ export declare class Telemetry {
|
|
|
26
26
|
private version;
|
|
27
27
|
private appInsightsKey;
|
|
28
28
|
private traceLog;
|
|
29
|
+
private flushIntervalMs;
|
|
30
|
+
private flushTimer;
|
|
29
31
|
/**
|
|
30
32
|
* Check if telemetry is disabled via environment variables.
|
|
31
33
|
* Supports both SF_DISABLE_TELEMETRY (sf CLI standard) and SFCC_DISABLE_TELEMETRY.
|
|
@@ -6,12 +6,7 @@
|
|
|
6
6
|
import { randomBytes } from 'node:crypto';
|
|
7
7
|
import fs from 'node:fs';
|
|
8
8
|
import path from 'node:path';
|
|
9
|
-
|
|
10
|
-
// module whose default-export interop is not synthesized when the file is
|
|
11
|
-
// loaded as native ESM (e.g. mocha 11's tsx loader), leaving the default
|
|
12
|
-
// binding `undefined`. The namespace form resolves `TelemetryClient` correctly
|
|
13
|
-
// under every loader — mocha, tsx, and the production ESM build.
|
|
14
|
-
import * as appInsights from 'applicationinsights';
|
|
9
|
+
import { AppInsightsClient } from './app-insights-client.js';
|
|
15
10
|
import { getLogger } from '../logging/index.js';
|
|
16
11
|
const generateRandomId = () => randomBytes(20).toString('hex');
|
|
17
12
|
/**
|
|
@@ -120,6 +115,8 @@ export class Telemetry {
|
|
|
120
115
|
version;
|
|
121
116
|
appInsightsKey;
|
|
122
117
|
traceLog;
|
|
118
|
+
flushIntervalMs;
|
|
119
|
+
flushTimer;
|
|
123
120
|
/**
|
|
124
121
|
* Check if telemetry is disabled via environment variables.
|
|
125
122
|
* Supports both SF_DISABLE_TELEMETRY (sf CLI standard) and SFCC_DISABLE_TELEMETRY.
|
|
@@ -146,6 +143,7 @@ export class Telemetry {
|
|
|
146
143
|
this.sessionId = generateRandomId();
|
|
147
144
|
this.started = false;
|
|
148
145
|
this.version = options.version ?? '0.0.0';
|
|
146
|
+
this.flushIntervalMs = options.flushIntervalMs;
|
|
149
147
|
if (process.env.SFCC_TELEMETRY_LOG === 'true') {
|
|
150
148
|
this.traceLog = getLogger().child({ component: 'telemetry' });
|
|
151
149
|
}
|
|
@@ -225,6 +223,14 @@ export class Telemetry {
|
|
|
225
223
|
catch {
|
|
226
224
|
// best-effort — telemetry failure never impacts the application
|
|
227
225
|
}
|
|
226
|
+
// Long-lived hosts (e.g. the VS Code extension) buffer events for a whole
|
|
227
|
+
// session and may not get a clean shutdown flush. An opt-in periodic flush
|
|
228
|
+
// delivers events on a cadence so a dirty exit loses at most one interval.
|
|
229
|
+
// The timer is unref'd so it never keeps a short-lived process alive.
|
|
230
|
+
if (this.client && this.flushIntervalMs && this.flushIntervalMs > 0) {
|
|
231
|
+
this.flushTimer = setInterval(() => void this.flush(), this.flushIntervalMs);
|
|
232
|
+
this.flushTimer.unref?.();
|
|
233
|
+
}
|
|
228
234
|
}
|
|
229
235
|
/**
|
|
230
236
|
* Flush pending telemetry events without stopping the client.
|
|
@@ -233,7 +239,6 @@ export class Telemetry {
|
|
|
233
239
|
async flush() {
|
|
234
240
|
if (!this.started || !this.client)
|
|
235
241
|
return;
|
|
236
|
-
// applicationinsights 3.x: flush() returns a Promise and no longer takes a callback.
|
|
237
242
|
await this.client.flush();
|
|
238
243
|
}
|
|
239
244
|
/**
|
|
@@ -245,16 +250,16 @@ export class Telemetry {
|
|
|
245
250
|
return;
|
|
246
251
|
this.traceLog?.debug('telemetry stop');
|
|
247
252
|
this.started = false;
|
|
253
|
+
if (this.flushTimer) {
|
|
254
|
+
clearInterval(this.flushTimer);
|
|
255
|
+
this.flushTimer = undefined;
|
|
256
|
+
}
|
|
248
257
|
if (this.client) {
|
|
249
|
-
// applicationinsights 3.x: flush() returns a Promise and no longer takes a callback.
|
|
250
258
|
await this.client.flush();
|
|
251
259
|
this.client = undefined;
|
|
252
260
|
}
|
|
253
|
-
//
|
|
254
|
-
//
|
|
255
|
-
// a delay to ensure events reach the server on fast exits.
|
|
256
|
-
// 300ms gives enough time for the HTTP request to complete even on
|
|
257
|
-
// cold starts when establishing the initial connection.
|
|
261
|
+
// flush() awaits the ingestion POST directly, but keep a small drain delay
|
|
262
|
+
// so any in-flight request started elsewhere can settle before a fast exit.
|
|
258
263
|
await new Promise((resolve) => setTimeout(resolve, 300));
|
|
259
264
|
}
|
|
260
265
|
buildEventProperties(attributes = {}) {
|
|
@@ -275,28 +280,13 @@ export class Telemetry {
|
|
|
275
280
|
};
|
|
276
281
|
}
|
|
277
282
|
createClient() {
|
|
278
|
-
//
|
|
279
|
-
//
|
|
280
|
-
//
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
// Disable all auto-collection — we only do manual event tracking
|
|
284
|
-
client.config.enableAutoCollectConsole = false;
|
|
285
|
-
client.config.enableAutoCollectExceptions = false;
|
|
286
|
-
client.config.enableAutoCollectPerformance = false;
|
|
287
|
-
client.config.enableAutoCollectRequests = false;
|
|
288
|
-
client.config.enableAutoCollectDependencies = false;
|
|
289
|
-
client.config.enableAutoDependencyCorrelation = false;
|
|
290
|
-
client.config.enableAutoCollectHeartbeat = false;
|
|
291
|
-
client.config.enableAutoCollectPreAggregatedMetrics = false;
|
|
292
|
-
client.config.enableAutoCollectIncomingRequestAzureFunctions = false;
|
|
293
|
-
client.config.enableSendLiveMetrics = false;
|
|
294
|
-
client.config.enableUseDiskRetryCaching = false;
|
|
295
|
-
client.config.enableInternalDebugLogging = false;
|
|
296
|
-
client.config.enableInternalWarningLogging = false;
|
|
297
|
-
// Set user ID for session tracking
|
|
283
|
+
// Manual event tracking only — no auto-collection, no statsbeat, no
|
|
284
|
+
// background telemetry. This zero-dependency client POSTs Breeze envelopes
|
|
285
|
+
// directly, so there is nothing to opt out of.
|
|
286
|
+
const client = new AppInsightsClient(this.appInsightsKey);
|
|
287
|
+
// Set user ID for session tracking.
|
|
298
288
|
client.context.tags[client.context.keys.userId] = this.cliId;
|
|
299
|
-
// GDPR: hide machine-identifying cloud role instance
|
|
289
|
+
// GDPR: hide machine-identifying cloud role instance.
|
|
300
290
|
client.context.tags[client.context.keys.cloudRoleInstance] = '';
|
|
301
291
|
this.client = client;
|
|
302
292
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../../src/telemetry/telemetry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../../src/telemetry/telemetry.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,4 +59,16 @@ export interface TelemetryOptions {
|
|
|
59
59
|
* If not provided or non-writable, falls back to random ID.
|
|
60
60
|
*/
|
|
61
61
|
dataDir?: string;
|
|
62
|
+
/**
|
|
63
|
+
* Optional periodic auto-flush interval in milliseconds. When set (> 0),
|
|
64
|
+
* buffered events are delivered on this cadence in addition to explicit
|
|
65
|
+
* {@link Telemetry.flush}/{@link Telemetry.stop} calls.
|
|
66
|
+
*
|
|
67
|
+
* Intended for long-lived hosts (e.g. the VS Code extension) that buffer
|
|
68
|
+
* events for a whole session and cannot guarantee a clean shutdown flush.
|
|
69
|
+
* Short-lived processes (CLI, MCP) should leave this unset and flush
|
|
70
|
+
* deterministically. The interval timer is `unref`'d, so it never keeps a
|
|
71
|
+
* process alive on its own.
|
|
72
|
+
*/
|
|
73
|
+
flushIntervalMs?: number;
|
|
62
74
|
}
|
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.
|
|
4
|
+
"version": "1.15.1",
|
|
5
5
|
"author": "Charles Lavery",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"repository": "SalesforceCommerceCloud/b2c-developer-tooling",
|
|
@@ -215,7 +215,6 @@
|
|
|
215
215
|
},
|
|
216
216
|
"dependencies": {
|
|
217
217
|
"@vscode/debugadapter": "1.68.0",
|
|
218
|
-
"applicationinsights": "3.15.0",
|
|
219
218
|
"chokidar": "5.0.0",
|
|
220
219
|
"cliui": "9.0.1",
|
|
221
220
|
"ejs": "3.1.10",
|