@salesforce/b2c-tooling-sdk 0.7.0 → 0.8.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.
@@ -47,10 +47,13 @@ export class ResolvedConfigImpl {
47
47
  if (!this.hasOAuthConfig()) {
48
48
  throw new Error('OAuth requires clientId');
49
49
  }
50
+ const configScopes = this.values.scopes ?? [];
51
+ const additionalScopes = options?.scopes ?? [];
52
+ const mergedScopes = additionalScopes.length > 0 ? [...new Set([...configScopes, ...additionalScopes])] : configScopes;
50
53
  const credentials = {
51
54
  clientId: this.values.clientId,
52
55
  clientSecret: this.values.clientSecret,
53
- scopes: this.values.scopes,
56
+ scopes: mergedScopes.length > 0 ? mergedScopes : undefined,
54
57
  accountManagerHost: this.values.accountManagerHost,
55
58
  };
56
59
  return resolveAuthStrategy(credentials, { allowedMethods: options?.allowedMethods });
@@ -1 +1 @@
1
- {"version":3,"file":"resolved-config.js","sourceRoot":"","sources":["../../../src/config/resolved-config.ts"],"names":[],"mappings":"AAWA,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAC,mBAAmB,EAAC,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAC,wBAAwB,EAAC,MAAM,cAAc,CAAC;AAStD;;;;;GAKG;AACH,MAAM,OAAO,kBAAkB;IAElB;IACA;IACA;IAHX,YACW,MAAwB,EACxB,QAAyB,EACzB,OAA2B;QAF3B,WAAM,GAAN,MAAM,CAAkB;QACxB,aAAQ,GAAR,QAAQ,CAAiB;QACzB,YAAO,GAAP,OAAO,CAAoB;IACnC,CAAC;IAEJ,qBAAqB;IAErB,oBAAoB;QAClB,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,YAAY;QACV,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAED,cAAc;QACZ,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,kBAAkB;QAChB,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAED,kBAAkB;IAElB,iBAAiB;QACf,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,eAAe;QACb,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAS,EAAE,IAAI,CAAC,MAAM,CAAC,QAAS,CAAC,CAAC;IAC7E,CAAC;IAED,WAAW,CAAC,OAA4B;QACtC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,WAAW,GAAoB;YACnC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;YAC9B,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;YACtC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB;SACnD,CAAC;QACF,OAAO,mBAAmB,CAAC,WAAW,EAAE,EAAC,cAAc,EAAE,OAAO,EAAE,cAAc,EAAC,CAAC,CAAC;IACrF,CAAC;IAED,aAAa;QACX,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,SAAU,EAAE,eAAe,CAAC,CAAC;IACrE,CAAC;IAED,gBAAgB;QACd,6DAA6D;QAC7D,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;QAChC,CAAC;QACD,qBAAqB;QACrB,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;IAC7F,CAAC;CACF"}
1
+ {"version":3,"file":"resolved-config.js","sourceRoot":"","sources":["../../../src/config/resolved-config.ts"],"names":[],"mappings":"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"}
@@ -250,6 +250,8 @@ export interface ConfigSource {
250
250
  export interface CreateOAuthOptions {
251
251
  /** Allowed OAuth methods (default: ['client-credentials', 'implicit']) */
252
252
  allowedMethods?: AuthMethod[];
253
+ /** Additional OAuth scopes to request beyond those in config */
254
+ scopes?: string[];
253
255
  }
254
256
  /**
255
257
  * Result of configuration resolution with factory methods.
@@ -16,8 +16,9 @@ export { executeJob, getJobExecution, waitForJob, searchJobExecutions, findRunni
16
16
  export type { JobExecution, JobStepExecution, JobExecutionStatus, JobExecutionParameter, ExecuteJobOptions, WaitForJobOptions, SearchJobExecutionsOptions, JobExecutionSearchResult, SiteArchiveImportOptions, SiteArchiveImportResult, SiteArchiveExportOptions, SiteArchiveExportResult, ExportDataUnitsConfiguration, ExportSitesConfiguration, ExportGlobalDataConfiguration, } from './operations/jobs/index.js';
17
17
  export { searchDocs, readDoc, readDocByQuery, listDocs, loadSearchIndex, listSchemas, readSchema, readSchemaByQuery, searchSchemas, downloadDocs, } from './docs/index.js';
18
18
  export type { DocEntry, SearchIndex, SearchResult, SchemaEntry, SchemaIndex, SchemaSearchResult, DownloadDocsOptions, DownloadDocsResult, } from './docs/index.js';
19
- export { isUuid, isFriendlySandboxId, parseFriendlySandboxId, resolveSandboxId, SandboxNotFoundError, waitForSandbox, SandboxPollingTimeoutError, SandboxPollingError, SandboxTerminalStateError, } from './operations/ods/index.js';
19
+ export { isUuid, isFriendlySandboxId, parseFriendlySandboxId, resolveSandboxId, SandboxNotFoundError, waitForSandbox, SandboxPollingTimeoutError, SandboxPollingError, SandboxTerminalStateError, waitForClone, ClonePollingTimeoutError, ClonePollingError, CloneFailedError, } from './operations/ods/index.js';
20
20
  export type { SandboxState, WaitForSandboxOptions, WaitForSandboxPollInfo } from './operations/ods/index.js';
21
+ export type { CloneState, WaitForCloneOptions, WaitForClonePollInfo } from './operations/ods/index.js';
21
22
  export { buildCipReportSql, describeCipTable, executeCipReport, getCipReportByName, listCipReports, listCipTables, } from './operations/cip/index.js';
22
23
  export type { CipColumnMetadata, CipDescribeTableOptions, CipDescribeTableResult, CipListTablesOptions, CipListTablesResult, CipReportDefinition, CipReportExecutionOptions, CipReportParamType, CipReportParamDefinition, CipReportQueryExecutor, CipReportQueryResult, CipReportSqlResult, CipTableMetadata, } from './operations/cip/index.js';
23
24
  export { getUser, getUserByLogin, listUsers, createUser, updateUser, deleteUser, purgeUser, resetUser, grantRole, revokeRole, } from './operations/users/index.js';
package/dist/cjs/index.js CHANGED
@@ -21,7 +21,7 @@ export { executeJob, getJobExecution, waitForJob, searchJobExecutions, findRunni
21
21
  // Docs - Documentation search
22
22
  export { searchDocs, readDoc, readDocByQuery, listDocs, loadSearchIndex, listSchemas, readSchema, readSchemaByQuery, searchSchemas, downloadDocs, } from './docs/index.js';
23
23
  // Operations - ODS
24
- export { isUuid, isFriendlySandboxId, parseFriendlySandboxId, resolveSandboxId, SandboxNotFoundError, waitForSandbox, SandboxPollingTimeoutError, SandboxPollingError, SandboxTerminalStateError, } from './operations/ods/index.js';
24
+ export { isUuid, isFriendlySandboxId, parseFriendlySandboxId, resolveSandboxId, SandboxNotFoundError, waitForSandbox, SandboxPollingTimeoutError, SandboxPollingError, SandboxTerminalStateError, waitForClone, ClonePollingTimeoutError, ClonePollingError, CloneFailedError, } from './operations/ods/index.js';
25
25
  // Operations - CIP
26
26
  export { buildCipReportSql, describeCipTable, executeCipReport, getCipReportByName, listCipReports, listCipTables, } from './operations/cip/index.js';
27
27
  // Operations - Users
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAC,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAG7G,OAAO;AACP,OAAO,EAAC,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,oBAAoB,EAAE,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAGlH,SAAS;AACT,OAAO,EAAC,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,oBAAoB,EAAC,MAAM,mBAAmB,CAAC;AAe9G,yCAAyC;AACzC,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,cAAc,EACd,SAAS,EACT,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAiBzB,2BAA2B;AAC3B,OAAO,EAAC,WAAW,EAAC,MAAM,qBAAqB,CAAC;AAGhD,UAAU;AACV,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,2BAA2B,EAC3B,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,+BAA+B,EAC/B,+BAA+B,EAC/B,oCAAoC,EACpC,8BAA8B,EAC9B,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,0BAA0B,EAC1B,yBAAyB,EACzB,0BAA0B,EAC1B,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AA2E5B,oBAAoB;AACpB,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,GAChB,MAAM,4BAA4B,CAAC;AAYpC,oBAAoB;AACpB,OAAO,EACL,UAAU,EACV,eAAe,EACf,UAAU,EACV,mBAAmB,EACnB,uBAAuB,EACvB,SAAS,EACT,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AAmBpC,8BAA8B;AAC9B,OAAO,EACL,UAAU,EACV,OAAO,EACP,cAAc,EACd,QAAQ,EACR,eAAe,EACf,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,YAAY,GACb,MAAM,iBAAiB,CAAC;AAYzB,mBAAmB;AACnB,OAAO,EACL,MAAM,EACN,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACd,0BAA0B,EAC1B,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AAInC,mBAAmB;AACnB,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,aAAa,GACd,MAAM,2BAA2B,CAAC;AAiBnC,qBAAqB;AACrB,OAAO,EACL,OAAO,EACP,cAAc,EACd,SAAS,EACT,UAAU,EACV,UAAU,EACV,UAAU,EACV,SAAS,EACT,SAAS,EACT,SAAS,EACT,UAAU,GACX,MAAM,6BAA6B,CAAC;AAErC,qBAAqB;AACrB,OAAO,EAAC,OAAO,EAAE,SAAS,EAAC,MAAM,6BAA6B,CAAC;AAE/D,6BAA6B;AAC7B,OAAO,EAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAC,MAAM,4BAA4B,CAAC;AAE1E,WAAW;AACX,OAAO,EAAC,4BAA4B,EAAE,gBAAgB,EAAE,wBAAwB,EAAC,MAAM,eAAe,CAAC;AAEvG,eAAe;AACf,OAAO,EAAC,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAC,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -6,3 +6,5 @@
6
6
  export { isUuid, isFriendlySandboxId, parseFriendlySandboxId, resolveSandboxId, SandboxNotFoundError, } from './sandbox-lookup.js';
7
7
  export { waitForSandbox, SandboxPollingTimeoutError, SandboxPollingError, SandboxTerminalStateError, } from './wait-for-sandbox.js';
8
8
  export type { SandboxState, WaitForSandboxOptions, WaitForSandboxPollInfo } from './wait-for-sandbox.js';
9
+ export { waitForClone, ClonePollingTimeoutError, ClonePollingError, CloneFailedError } from './wait-for-clone.js';
10
+ export type { CloneState, WaitForCloneOptions, WaitForClonePollInfo } from './wait-for-clone.js';
@@ -10,4 +10,5 @@
10
10
  */
11
11
  export { isUuid, isFriendlySandboxId, parseFriendlySandboxId, resolveSandboxId, SandboxNotFoundError, } from './sandbox-lookup.js';
12
12
  export { waitForSandbox, SandboxPollingTimeoutError, SandboxPollingError, SandboxTerminalStateError, } from './wait-for-sandbox.js';
13
+ export { waitForClone, ClonePollingTimeoutError, ClonePollingError, CloneFailedError } from './wait-for-clone.js';
13
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/operations/ods/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;;GAIG;AAEH,OAAO,EACL,MAAM,EACN,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,cAAc,EACd,0BAA0B,EAC1B,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/operations/ods/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;;GAIG;AAEH,OAAO,EACL,MAAM,EACN,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,cAAc,EACd,0BAA0B,EAC1B,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EAAC,YAAY,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,gBAAgB,EAAC,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,46 @@
1
+ import type { OdsClient } from '../../clients/ods.js';
2
+ export type CloneState = 'COMPLETED' | 'FAILED' | 'IN_PROGRESS' | 'PENDING' | (string & {});
3
+ export declare class ClonePollingTimeoutError extends Error {
4
+ readonly sandboxId: string;
5
+ readonly cloneId: string;
6
+ readonly timeoutSeconds: number;
7
+ readonly lastStatus?: CloneState | undefined;
8
+ constructor(sandboxId: string, cloneId: string, timeoutSeconds: number, lastStatus?: CloneState | undefined);
9
+ }
10
+ export declare class ClonePollingError extends Error {
11
+ readonly sandboxId: string;
12
+ readonly cloneId: string;
13
+ constructor(sandboxId: string, cloneId: string, message: string);
14
+ }
15
+ export declare class CloneFailedError extends Error {
16
+ readonly sandboxId: string;
17
+ readonly cloneId: string;
18
+ readonly status: CloneState;
19
+ constructor(sandboxId: string, cloneId: string, status: CloneState);
20
+ }
21
+ export interface WaitForClonePollInfo {
22
+ sandboxId: string;
23
+ cloneId: string;
24
+ elapsedSeconds: number;
25
+ status: CloneState;
26
+ progressPercentage?: number;
27
+ }
28
+ export interface WaitForCloneOptions {
29
+ sandboxId: string;
30
+ cloneId: string;
31
+ pollIntervalSeconds: number;
32
+ timeoutSeconds: number;
33
+ onPoll?: (info: WaitForClonePollInfo) => void;
34
+ sleep?: (ms: number) => Promise<void>;
35
+ }
36
+ /**
37
+ * Waits for a sandbox clone to reach COMPLETED or FAILED state by polling its status.
38
+ *
39
+ * @param client - ODS client for API calls
40
+ * @param options - Polling configuration options
41
+ *
42
+ * @throws {ClonePollingTimeoutError} If the timeout is exceeded before completion
43
+ * @throws {ClonePollingError} If the API request fails
44
+ * @throws {CloneFailedError} If the clone enters the FAILED state
45
+ */
46
+ export declare function waitForClone(client: OdsClient, options: WaitForCloneOptions): Promise<void>;
@@ -0,0 +1,100 @@
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 { getLogger } from '../../logging/logger.js';
7
+ export class ClonePollingTimeoutError extends Error {
8
+ sandboxId;
9
+ cloneId;
10
+ timeoutSeconds;
11
+ lastStatus;
12
+ constructor(sandboxId, cloneId, timeoutSeconds, lastStatus) {
13
+ super(`Timeout waiting for clone ${cloneId} of sandbox ${sandboxId} after ${timeoutSeconds} seconds${lastStatus ? ` (lastStatus=${lastStatus})` : ''}`);
14
+ this.sandboxId = sandboxId;
15
+ this.cloneId = cloneId;
16
+ this.timeoutSeconds = timeoutSeconds;
17
+ this.lastStatus = lastStatus;
18
+ this.name = 'ClonePollingTimeoutError';
19
+ }
20
+ }
21
+ export class ClonePollingError extends Error {
22
+ sandboxId;
23
+ cloneId;
24
+ constructor(sandboxId, cloneId, message) {
25
+ super(`Failed to fetch clone status for ${cloneId} of sandbox ${sandboxId}: ${message}`);
26
+ this.sandboxId = sandboxId;
27
+ this.cloneId = cloneId;
28
+ this.name = 'ClonePollingError';
29
+ }
30
+ }
31
+ export class CloneFailedError extends Error {
32
+ sandboxId;
33
+ cloneId;
34
+ status;
35
+ constructor(sandboxId, cloneId, status) {
36
+ super(`Clone ${cloneId} of sandbox ${sandboxId} failed`);
37
+ this.sandboxId = sandboxId;
38
+ this.cloneId = cloneId;
39
+ this.status = status;
40
+ this.name = 'CloneFailedError';
41
+ }
42
+ }
43
+ async function defaultSleep(ms) {
44
+ await new Promise((resolve) => {
45
+ setTimeout(resolve, ms);
46
+ });
47
+ }
48
+ /**
49
+ * Waits for a sandbox clone to reach COMPLETED or FAILED state by polling its status.
50
+ *
51
+ * @param client - ODS client for API calls
52
+ * @param options - Polling configuration options
53
+ *
54
+ * @throws {ClonePollingTimeoutError} If the timeout is exceeded before completion
55
+ * @throws {ClonePollingError} If the API request fails
56
+ * @throws {CloneFailedError} If the clone enters the FAILED state
57
+ */
58
+ export async function waitForClone(client, options) {
59
+ const logger = getLogger();
60
+ const { sandboxId, cloneId, pollIntervalSeconds, timeoutSeconds } = options;
61
+ const sleepFn = options.sleep ?? defaultSleep;
62
+ const startTime = Date.now();
63
+ const pollIntervalMs = pollIntervalSeconds * 1000;
64
+ const timeoutMs = timeoutSeconds * 1000;
65
+ await sleepFn(pollIntervalMs);
66
+ let lastStatus;
67
+ while (true) {
68
+ const elapsedSeconds = Math.round((Date.now() - startTime) / 1000);
69
+ if (timeoutSeconds > 0 && Date.now() - startTime > timeoutMs) {
70
+ throw new ClonePollingTimeoutError(sandboxId, cloneId, timeoutSeconds, lastStatus);
71
+ }
72
+ const result = await client.GET('/sandboxes/{sandboxId}/clones/{cloneId}', {
73
+ params: {
74
+ path: { sandboxId, cloneId },
75
+ },
76
+ });
77
+ if (!result.data?.data) {
78
+ throw new ClonePollingError(sandboxId, cloneId, result.response?.statusText || 'Unknown error');
79
+ }
80
+ const clone = result.data.data;
81
+ const currentStatus = clone.status || 'unknown';
82
+ lastStatus = currentStatus;
83
+ logger.trace({ sandboxId, cloneId, elapsedSeconds, status: currentStatus }, '[ODS] Clone poll');
84
+ options.onPoll?.({
85
+ sandboxId,
86
+ cloneId,
87
+ elapsedSeconds,
88
+ status: currentStatus,
89
+ progressPercentage: clone.progressPercentage,
90
+ });
91
+ if (currentStatus === 'COMPLETED') {
92
+ return;
93
+ }
94
+ if (currentStatus === 'FAILED') {
95
+ throw new CloneFailedError(sandboxId, cloneId, currentStatus);
96
+ }
97
+ await sleepFn(pollIntervalMs);
98
+ }
99
+ }
100
+ //# sourceMappingURL=wait-for-clone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wait-for-clone.js","sourceRoot":"","sources":["../../../../src/operations/ods/wait-for-clone.ts"],"names":[],"mappings":"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"}
@@ -49,6 +49,31 @@ async function checkResponse(response, context) {
49
49
  }
50
50
  throw new Error(`SLAS ${context} failed (HTTP ${response.status})${detail}`);
51
51
  }
52
+ /**
53
+ * Helper to collect response headers as a plain object for logging.
54
+ */
55
+ function serializeHeaders(response) {
56
+ const headers = {};
57
+ response.headers.forEach((value, key) => {
58
+ headers[key] = value;
59
+ });
60
+ return headers;
61
+ }
62
+ /**
63
+ * Performs a logged fetch request following the Auth logging conventions.
64
+ * Returns the response (caller must check status).
65
+ */
66
+ async function loggedFetch(url, init) {
67
+ const logger = getLogger();
68
+ const method = init.method ?? 'GET';
69
+ logger.debug({ method, url }, `[SLAS REQ] ${method} ${url}`);
70
+ logger.trace({ method, url, headers: init.headers, body: init.body?.toString() }, `[SLAS REQ BODY] ${method} ${url}`);
71
+ const startTime = Date.now();
72
+ const response = await fetch(url, init);
73
+ const duration = Date.now() - startTime;
74
+ logger.debug({ method, url, status: response.status, duration }, `[SLAS RESP] ${method} ${url} ${response.status} ${duration}ms`);
75
+ return { response, duration };
76
+ }
52
77
  /**
53
78
  * Retrieves a guest shopper access token from SLAS.
54
79
  *
@@ -63,7 +88,7 @@ export async function getGuestToken(config) {
63
88
  if (config.slasClientSecret) {
64
89
  return getPrivateClientGuestToken(config);
65
90
  }
66
- logger.debug('Using public client PKCE guest flow');
91
+ logger.debug({ clientId: config.slasClientId }, '[SLAS] Using public client PKCE guest flow');
67
92
  const baseUrl = buildBaseUrl(config.shortCode, config.organizationId);
68
93
  const verifier = generateCodeVerifier();
69
94
  const challenge = generateCodeChallenge(verifier);
@@ -76,9 +101,10 @@ export async function getGuestToken(config) {
76
101
  code_challenge: challenge,
77
102
  });
78
103
  const authorizeUrl = `${baseUrl}/oauth2/authorize?${authorizeParams.toString()}`;
79
- logger.debug({ url: authorizeUrl }, 'SLAS authorize request');
80
- const authorizeResponse = await fetch(authorizeUrl, { redirect: 'manual' });
104
+ const { response: authorizeResponse } = await loggedFetch(authorizeUrl, { redirect: 'manual' });
81
105
  if (authorizeResponse.status !== 303) {
106
+ const respHeaders = serializeHeaders(authorizeResponse);
107
+ logger.trace({ headers: respHeaders }, `[SLAS RESP BODY] GET ${authorizeUrl}`);
82
108
  await checkResponse(authorizeResponse, 'authorize');
83
109
  throw new Error(`Expected 303 redirect from SLAS authorize, got ${authorizeResponse.status}`);
84
110
  }
@@ -87,7 +113,7 @@ export async function getGuestToken(config) {
87
113
  throw new Error('SLAS authorize response missing Location header');
88
114
  }
89
115
  const { code, usid } = parseRedirectCode(location);
90
- logger.debug({ usid }, 'Got authorization code from SLAS');
116
+ logger.debug({ usid }, '[SLAS] Got authorization code');
91
117
  // Step 2: Exchange code for token
92
118
  const tokenBody = new URLSearchParams({
93
119
  grant_type: 'authorization_code_pkce',
@@ -98,27 +124,32 @@ export async function getGuestToken(config) {
98
124
  channel_id: config.siteId,
99
125
  usid,
100
126
  });
101
- const tokenResponse = await fetch(`${baseUrl}/oauth2/token`, {
127
+ const tokenUrl = `${baseUrl}/oauth2/token`;
128
+ const { response: tokenResponse } = await loggedFetch(tokenUrl, {
102
129
  method: 'POST',
103
130
  headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
104
131
  body: tokenBody,
105
132
  });
106
133
  await checkResponse(tokenResponse, 'token exchange (authorization_code_pkce)');
107
- return (await tokenResponse.json());
134
+ const data = (await tokenResponse.json());
135
+ const respHeaders = serializeHeaders(tokenResponse);
136
+ logger.trace({ headers: respHeaders, body: data }, `[SLAS RESP BODY] POST ${tokenUrl}`);
137
+ return data;
108
138
  }
109
139
  /**
110
140
  * Private client guest token via client_credentials grant.
111
141
  */
112
142
  async function getPrivateClientGuestToken(config) {
113
143
  const logger = getLogger();
114
- logger.debug('Using private client client_credentials guest flow');
144
+ logger.debug({ clientId: config.slasClientId }, '[SLAS] Using private client client_credentials guest flow');
115
145
  const baseUrl = buildBaseUrl(config.shortCode, config.organizationId);
116
146
  const basicAuth = Buffer.from(`${config.slasClientId}:${config.slasClientSecret}`).toString('base64');
117
147
  const tokenBody = new URLSearchParams({
118
148
  grant_type: 'client_credentials',
119
149
  channel_id: config.siteId,
120
150
  });
121
- const tokenResponse = await fetch(`${baseUrl}/oauth2/token`, {
151
+ const tokenUrl = `${baseUrl}/oauth2/token`;
152
+ const { response: tokenResponse } = await loggedFetch(tokenUrl, {
122
153
  method: 'POST',
123
154
  headers: {
124
155
  'Content-Type': 'application/x-www-form-urlencoded',
@@ -127,7 +158,10 @@ async function getPrivateClientGuestToken(config) {
127
158
  body: tokenBody,
128
159
  });
129
160
  await checkResponse(tokenResponse, 'token (client_credentials)');
130
- return (await tokenResponse.json());
161
+ const data = (await tokenResponse.json());
162
+ const respHeaders = serializeHeaders(tokenResponse);
163
+ logger.trace({ headers: respHeaders, body: data }, `[SLAS RESP BODY] POST ${tokenUrl}`);
164
+ return data;
131
165
  }
132
166
  /**
133
167
  * Retrieves a registered customer access token from SLAS.
@@ -145,7 +179,7 @@ export async function getRegisteredToken(config) {
145
179
  const logger = getLogger();
146
180
  const baseUrl = buildBaseUrl(config.shortCode, config.organizationId);
147
181
  const isPrivate = Boolean(config.slasClientSecret);
148
- logger.debug({ isPrivate }, 'Using registered customer login flow');
182
+ logger.debug({ clientId: config.slasClientId, isPrivate }, '[SLAS] Using registered customer login flow');
149
183
  const verifier = generateCodeVerifier();
150
184
  const challenge = generateCodeChallenge(verifier);
151
185
  // Step 1: Login with shopper credentials
@@ -156,7 +190,8 @@ export async function getRegisteredToken(config) {
156
190
  code_challenge: challenge,
157
191
  redirect_uri: config.redirectUri,
158
192
  });
159
- const loginResponse = await fetch(`${baseUrl}/oauth2/login`, {
193
+ const loginUrl = `${baseUrl}/oauth2/login`;
194
+ const { response: loginResponse } = await loggedFetch(loginUrl, {
160
195
  method: 'POST',
161
196
  headers: {
162
197
  'Content-Type': 'application/x-www-form-urlencoded',
@@ -166,6 +201,8 @@ export async function getRegisteredToken(config) {
166
201
  redirect: 'manual',
167
202
  });
168
203
  if (loginResponse.status !== 303) {
204
+ const respHeaders = serializeHeaders(loginResponse);
205
+ logger.trace({ headers: respHeaders }, `[SLAS RESP BODY] POST ${loginUrl}`);
169
206
  await checkResponse(loginResponse, 'login');
170
207
  throw new Error(`Expected 303 redirect from SLAS login, got ${loginResponse.status}`);
171
208
  }
@@ -174,8 +211,9 @@ export async function getRegisteredToken(config) {
174
211
  throw new Error('SLAS login response missing Location header');
175
212
  }
176
213
  const { code, usid } = parseRedirectCode(location);
177
- logger.debug({ usid }, 'Got authorization code from SLAS login');
214
+ logger.debug({ usid }, '[SLAS] Got authorization code from login');
178
215
  // Step 2: Exchange code for token
216
+ const tokenUrl = `${baseUrl}/oauth2/token`;
179
217
  if (isPrivate) {
180
218
  const basicAuth = Buffer.from(`${config.slasClientId}:${config.slasClientSecret}`).toString('base64');
181
219
  const tokenBody = new URLSearchParams({
@@ -185,7 +223,7 @@ export async function getRegisteredToken(config) {
185
223
  channel_id: config.siteId,
186
224
  usid,
187
225
  });
188
- const tokenResponse = await fetch(`${baseUrl}/oauth2/token`, {
226
+ const { response: tokenResponse } = await loggedFetch(tokenUrl, {
189
227
  method: 'POST',
190
228
  headers: {
191
229
  'Content-Type': 'application/x-www-form-urlencoded',
@@ -194,7 +232,10 @@ export async function getRegisteredToken(config) {
194
232
  body: tokenBody,
195
233
  });
196
234
  await checkResponse(tokenResponse, 'token exchange (authorization_code)');
197
- return (await tokenResponse.json());
235
+ const data = (await tokenResponse.json());
236
+ const respHeaders = serializeHeaders(tokenResponse);
237
+ logger.trace({ headers: respHeaders, body: data }, `[SLAS RESP BODY] POST ${tokenUrl}`);
238
+ return data;
198
239
  }
199
240
  // Public client — use PKCE
200
241
  const tokenBody = new URLSearchParams({
@@ -206,12 +247,15 @@ export async function getRegisteredToken(config) {
206
247
  channel_id: config.siteId,
207
248
  usid,
208
249
  });
209
- const tokenResponse = await fetch(`${baseUrl}/oauth2/token`, {
250
+ const { response: tokenResponse } = await loggedFetch(tokenUrl, {
210
251
  method: 'POST',
211
252
  headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
212
253
  body: tokenBody,
213
254
  });
214
255
  await checkResponse(tokenResponse, 'token exchange (authorization_code_pkce)');
215
- return (await tokenResponse.json());
256
+ const data = (await tokenResponse.json());
257
+ const respHeaders = serializeHeaders(tokenResponse);
258
+ logger.trace({ headers: respHeaders, body: data }, `[SLAS RESP BODY] POST ${tokenUrl}`);
259
+ return data;
216
260
  }
217
261
  //# sourceMappingURL=token.js.map
@@ -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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"}
@@ -47,10 +47,13 @@ export class ResolvedConfigImpl {
47
47
  if (!this.hasOAuthConfig()) {
48
48
  throw new Error('OAuth requires clientId');
49
49
  }
50
+ const configScopes = this.values.scopes ?? [];
51
+ const additionalScopes = options?.scopes ?? [];
52
+ const mergedScopes = additionalScopes.length > 0 ? [...new Set([...configScopes, ...additionalScopes])] : configScopes;
50
53
  const credentials = {
51
54
  clientId: this.values.clientId,
52
55
  clientSecret: this.values.clientSecret,
53
- scopes: this.values.scopes,
56
+ scopes: mergedScopes.length > 0 ? mergedScopes : undefined,
54
57
  accountManagerHost: this.values.accountManagerHost,
55
58
  };
56
59
  return resolveAuthStrategy(credentials, { allowedMethods: options?.allowedMethods });
@@ -1 +1 @@
1
- {"version":3,"file":"resolved-config.js","sourceRoot":"","sources":["../../../src/config/resolved-config.ts"],"names":[],"mappings":"AAWA,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAC,mBAAmB,EAAC,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAC,wBAAwB,EAAC,MAAM,cAAc,CAAC;AAStD;;;;;GAKG;AACH,MAAM,OAAO,kBAAkB;IAElB;IACA;IACA;IAHX,YACW,MAAwB,EACxB,QAAyB,EACzB,OAA2B;QAF3B,WAAM,GAAN,MAAM,CAAkB;QACxB,aAAQ,GAAR,QAAQ,CAAiB;QACzB,YAAO,GAAP,OAAO,CAAoB;IACnC,CAAC;IAEJ,qBAAqB;IAErB,oBAAoB;QAClB,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,YAAY;QACV,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAED,cAAc;QACZ,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,kBAAkB;QAChB,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAED,kBAAkB;IAElB,iBAAiB;QACf,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,eAAe;QACb,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAS,EAAE,IAAI,CAAC,MAAM,CAAC,QAAS,CAAC,CAAC;IAC7E,CAAC;IAED,WAAW,CAAC,OAA4B;QACtC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,WAAW,GAAoB;YACnC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;YAC9B,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;YACtC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB;SACnD,CAAC;QACF,OAAO,mBAAmB,CAAC,WAAW,EAAE,EAAC,cAAc,EAAE,OAAO,EAAE,cAAc,EAAC,CAAC,CAAC;IACrF,CAAC;IAED,aAAa;QACX,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,SAAU,EAAE,eAAe,CAAC,CAAC;IACrE,CAAC;IAED,gBAAgB;QACd,6DAA6D;QAC7D,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;QAChC,CAAC;QACD,qBAAqB;QACrB,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;IAC7F,CAAC;CACF"}
1
+ {"version":3,"file":"resolved-config.js","sourceRoot":"","sources":["../../../src/config/resolved-config.ts"],"names":[],"mappings":"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"}
@@ -250,6 +250,8 @@ export interface ConfigSource {
250
250
  export interface CreateOAuthOptions {
251
251
  /** Allowed OAuth methods (default: ['client-credentials', 'implicit']) */
252
252
  allowedMethods?: AuthMethod[];
253
+ /** Additional OAuth scopes to request beyond those in config */
254
+ scopes?: string[];
253
255
  }
254
256
  /**
255
257
  * Result of configuration resolution with factory methods.
@@ -16,8 +16,9 @@ export { executeJob, getJobExecution, waitForJob, searchJobExecutions, findRunni
16
16
  export type { JobExecution, JobStepExecution, JobExecutionStatus, JobExecutionParameter, ExecuteJobOptions, WaitForJobOptions, SearchJobExecutionsOptions, JobExecutionSearchResult, SiteArchiveImportOptions, SiteArchiveImportResult, SiteArchiveExportOptions, SiteArchiveExportResult, ExportDataUnitsConfiguration, ExportSitesConfiguration, ExportGlobalDataConfiguration, } from './operations/jobs/index.js';
17
17
  export { searchDocs, readDoc, readDocByQuery, listDocs, loadSearchIndex, listSchemas, readSchema, readSchemaByQuery, searchSchemas, downloadDocs, } from './docs/index.js';
18
18
  export type { DocEntry, SearchIndex, SearchResult, SchemaEntry, SchemaIndex, SchemaSearchResult, DownloadDocsOptions, DownloadDocsResult, } from './docs/index.js';
19
- export { isUuid, isFriendlySandboxId, parseFriendlySandboxId, resolveSandboxId, SandboxNotFoundError, waitForSandbox, SandboxPollingTimeoutError, SandboxPollingError, SandboxTerminalStateError, } from './operations/ods/index.js';
19
+ export { isUuid, isFriendlySandboxId, parseFriendlySandboxId, resolveSandboxId, SandboxNotFoundError, waitForSandbox, SandboxPollingTimeoutError, SandboxPollingError, SandboxTerminalStateError, waitForClone, ClonePollingTimeoutError, ClonePollingError, CloneFailedError, } from './operations/ods/index.js';
20
20
  export type { SandboxState, WaitForSandboxOptions, WaitForSandboxPollInfo } from './operations/ods/index.js';
21
+ export type { CloneState, WaitForCloneOptions, WaitForClonePollInfo } from './operations/ods/index.js';
21
22
  export { buildCipReportSql, describeCipTable, executeCipReport, getCipReportByName, listCipReports, listCipTables, } from './operations/cip/index.js';
22
23
  export type { CipColumnMetadata, CipDescribeTableOptions, CipDescribeTableResult, CipListTablesOptions, CipListTablesResult, CipReportDefinition, CipReportExecutionOptions, CipReportParamType, CipReportParamDefinition, CipReportQueryExecutor, CipReportQueryResult, CipReportSqlResult, CipTableMetadata, } from './operations/cip/index.js';
23
24
  export { getUser, getUserByLogin, listUsers, createUser, updateUser, deleteUser, purgeUser, resetUser, grantRole, revokeRole, } from './operations/users/index.js';
package/dist/esm/index.js CHANGED
@@ -21,7 +21,7 @@ export { executeJob, getJobExecution, waitForJob, searchJobExecutions, findRunni
21
21
  // Docs - Documentation search
22
22
  export { searchDocs, readDoc, readDocByQuery, listDocs, loadSearchIndex, listSchemas, readSchema, readSchemaByQuery, searchSchemas, downloadDocs, } from './docs/index.js';
23
23
  // Operations - ODS
24
- export { isUuid, isFriendlySandboxId, parseFriendlySandboxId, resolveSandboxId, SandboxNotFoundError, waitForSandbox, SandboxPollingTimeoutError, SandboxPollingError, SandboxTerminalStateError, } from './operations/ods/index.js';
24
+ export { isUuid, isFriendlySandboxId, parseFriendlySandboxId, resolveSandboxId, SandboxNotFoundError, waitForSandbox, SandboxPollingTimeoutError, SandboxPollingError, SandboxTerminalStateError, waitForClone, ClonePollingTimeoutError, ClonePollingError, CloneFailedError, } from './operations/ods/index.js';
25
25
  // Operations - CIP
26
26
  export { buildCipReportSql, describeCipTable, executeCipReport, getCipReportByName, listCipReports, listCipTables, } from './operations/cip/index.js';
27
27
  // Operations - Users
@@ -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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"}
@@ -6,3 +6,5 @@
6
6
  export { isUuid, isFriendlySandboxId, parseFriendlySandboxId, resolveSandboxId, SandboxNotFoundError, } from './sandbox-lookup.js';
7
7
  export { waitForSandbox, SandboxPollingTimeoutError, SandboxPollingError, SandboxTerminalStateError, } from './wait-for-sandbox.js';
8
8
  export type { SandboxState, WaitForSandboxOptions, WaitForSandboxPollInfo } from './wait-for-sandbox.js';
9
+ export { waitForClone, ClonePollingTimeoutError, ClonePollingError, CloneFailedError } from './wait-for-clone.js';
10
+ export type { CloneState, WaitForCloneOptions, WaitForClonePollInfo } from './wait-for-clone.js';
@@ -10,4 +10,5 @@
10
10
  */
11
11
  export { isUuid, isFriendlySandboxId, parseFriendlySandboxId, resolveSandboxId, SandboxNotFoundError, } from './sandbox-lookup.js';
12
12
  export { waitForSandbox, SandboxPollingTimeoutError, SandboxPollingError, SandboxTerminalStateError, } from './wait-for-sandbox.js';
13
+ export { waitForClone, ClonePollingTimeoutError, ClonePollingError, CloneFailedError } from './wait-for-clone.js';
13
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/operations/ods/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;;GAIG;AAEH,OAAO,EACL,MAAM,EACN,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,cAAc,EACd,0BAA0B,EAC1B,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/operations/ods/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;;GAIG;AAEH,OAAO,EACL,MAAM,EACN,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,cAAc,EACd,0BAA0B,EAC1B,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EAAC,YAAY,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,gBAAgB,EAAC,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,46 @@
1
+ import type { OdsClient } from '../../clients/ods.js';
2
+ export type CloneState = 'COMPLETED' | 'FAILED' | 'IN_PROGRESS' | 'PENDING' | (string & {});
3
+ export declare class ClonePollingTimeoutError extends Error {
4
+ readonly sandboxId: string;
5
+ readonly cloneId: string;
6
+ readonly timeoutSeconds: number;
7
+ readonly lastStatus?: CloneState | undefined;
8
+ constructor(sandboxId: string, cloneId: string, timeoutSeconds: number, lastStatus?: CloneState | undefined);
9
+ }
10
+ export declare class ClonePollingError extends Error {
11
+ readonly sandboxId: string;
12
+ readonly cloneId: string;
13
+ constructor(sandboxId: string, cloneId: string, message: string);
14
+ }
15
+ export declare class CloneFailedError extends Error {
16
+ readonly sandboxId: string;
17
+ readonly cloneId: string;
18
+ readonly status: CloneState;
19
+ constructor(sandboxId: string, cloneId: string, status: CloneState);
20
+ }
21
+ export interface WaitForClonePollInfo {
22
+ sandboxId: string;
23
+ cloneId: string;
24
+ elapsedSeconds: number;
25
+ status: CloneState;
26
+ progressPercentage?: number;
27
+ }
28
+ export interface WaitForCloneOptions {
29
+ sandboxId: string;
30
+ cloneId: string;
31
+ pollIntervalSeconds: number;
32
+ timeoutSeconds: number;
33
+ onPoll?: (info: WaitForClonePollInfo) => void;
34
+ sleep?: (ms: number) => Promise<void>;
35
+ }
36
+ /**
37
+ * Waits for a sandbox clone to reach COMPLETED or FAILED state by polling its status.
38
+ *
39
+ * @param client - ODS client for API calls
40
+ * @param options - Polling configuration options
41
+ *
42
+ * @throws {ClonePollingTimeoutError} If the timeout is exceeded before completion
43
+ * @throws {ClonePollingError} If the API request fails
44
+ * @throws {CloneFailedError} If the clone enters the FAILED state
45
+ */
46
+ export declare function waitForClone(client: OdsClient, options: WaitForCloneOptions): Promise<void>;
@@ -0,0 +1,100 @@
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 { getLogger } from '../../logging/logger.js';
7
+ export class ClonePollingTimeoutError extends Error {
8
+ sandboxId;
9
+ cloneId;
10
+ timeoutSeconds;
11
+ lastStatus;
12
+ constructor(sandboxId, cloneId, timeoutSeconds, lastStatus) {
13
+ super(`Timeout waiting for clone ${cloneId} of sandbox ${sandboxId} after ${timeoutSeconds} seconds${lastStatus ? ` (lastStatus=${lastStatus})` : ''}`);
14
+ this.sandboxId = sandboxId;
15
+ this.cloneId = cloneId;
16
+ this.timeoutSeconds = timeoutSeconds;
17
+ this.lastStatus = lastStatus;
18
+ this.name = 'ClonePollingTimeoutError';
19
+ }
20
+ }
21
+ export class ClonePollingError extends Error {
22
+ sandboxId;
23
+ cloneId;
24
+ constructor(sandboxId, cloneId, message) {
25
+ super(`Failed to fetch clone status for ${cloneId} of sandbox ${sandboxId}: ${message}`);
26
+ this.sandboxId = sandboxId;
27
+ this.cloneId = cloneId;
28
+ this.name = 'ClonePollingError';
29
+ }
30
+ }
31
+ export class CloneFailedError extends Error {
32
+ sandboxId;
33
+ cloneId;
34
+ status;
35
+ constructor(sandboxId, cloneId, status) {
36
+ super(`Clone ${cloneId} of sandbox ${sandboxId} failed`);
37
+ this.sandboxId = sandboxId;
38
+ this.cloneId = cloneId;
39
+ this.status = status;
40
+ this.name = 'CloneFailedError';
41
+ }
42
+ }
43
+ async function defaultSleep(ms) {
44
+ await new Promise((resolve) => {
45
+ setTimeout(resolve, ms);
46
+ });
47
+ }
48
+ /**
49
+ * Waits for a sandbox clone to reach COMPLETED or FAILED state by polling its status.
50
+ *
51
+ * @param client - ODS client for API calls
52
+ * @param options - Polling configuration options
53
+ *
54
+ * @throws {ClonePollingTimeoutError} If the timeout is exceeded before completion
55
+ * @throws {ClonePollingError} If the API request fails
56
+ * @throws {CloneFailedError} If the clone enters the FAILED state
57
+ */
58
+ export async function waitForClone(client, options) {
59
+ const logger = getLogger();
60
+ const { sandboxId, cloneId, pollIntervalSeconds, timeoutSeconds } = options;
61
+ const sleepFn = options.sleep ?? defaultSleep;
62
+ const startTime = Date.now();
63
+ const pollIntervalMs = pollIntervalSeconds * 1000;
64
+ const timeoutMs = timeoutSeconds * 1000;
65
+ await sleepFn(pollIntervalMs);
66
+ let lastStatus;
67
+ while (true) {
68
+ const elapsedSeconds = Math.round((Date.now() - startTime) / 1000);
69
+ if (timeoutSeconds > 0 && Date.now() - startTime > timeoutMs) {
70
+ throw new ClonePollingTimeoutError(sandboxId, cloneId, timeoutSeconds, lastStatus);
71
+ }
72
+ const result = await client.GET('/sandboxes/{sandboxId}/clones/{cloneId}', {
73
+ params: {
74
+ path: { sandboxId, cloneId },
75
+ },
76
+ });
77
+ if (!result.data?.data) {
78
+ throw new ClonePollingError(sandboxId, cloneId, result.response?.statusText || 'Unknown error');
79
+ }
80
+ const clone = result.data.data;
81
+ const currentStatus = clone.status || 'unknown';
82
+ lastStatus = currentStatus;
83
+ logger.trace({ sandboxId, cloneId, elapsedSeconds, status: currentStatus }, '[ODS] Clone poll');
84
+ options.onPoll?.({
85
+ sandboxId,
86
+ cloneId,
87
+ elapsedSeconds,
88
+ status: currentStatus,
89
+ progressPercentage: clone.progressPercentage,
90
+ });
91
+ if (currentStatus === 'COMPLETED') {
92
+ return;
93
+ }
94
+ if (currentStatus === 'FAILED') {
95
+ throw new CloneFailedError(sandboxId, cloneId, currentStatus);
96
+ }
97
+ await sleepFn(pollIntervalMs);
98
+ }
99
+ }
100
+ //# sourceMappingURL=wait-for-clone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wait-for-clone.js","sourceRoot":"","sources":["../../../../src/operations/ods/wait-for-clone.ts"],"names":[],"mappings":"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"}
@@ -49,6 +49,31 @@ async function checkResponse(response, context) {
49
49
  }
50
50
  throw new Error(`SLAS ${context} failed (HTTP ${response.status})${detail}`);
51
51
  }
52
+ /**
53
+ * Helper to collect response headers as a plain object for logging.
54
+ */
55
+ function serializeHeaders(response) {
56
+ const headers = {};
57
+ response.headers.forEach((value, key) => {
58
+ headers[key] = value;
59
+ });
60
+ return headers;
61
+ }
62
+ /**
63
+ * Performs a logged fetch request following the Auth logging conventions.
64
+ * Returns the response (caller must check status).
65
+ */
66
+ async function loggedFetch(url, init) {
67
+ const logger = getLogger();
68
+ const method = init.method ?? 'GET';
69
+ logger.debug({ method, url }, `[SLAS REQ] ${method} ${url}`);
70
+ logger.trace({ method, url, headers: init.headers, body: init.body?.toString() }, `[SLAS REQ BODY] ${method} ${url}`);
71
+ const startTime = Date.now();
72
+ const response = await fetch(url, init);
73
+ const duration = Date.now() - startTime;
74
+ logger.debug({ method, url, status: response.status, duration }, `[SLAS RESP] ${method} ${url} ${response.status} ${duration}ms`);
75
+ return { response, duration };
76
+ }
52
77
  /**
53
78
  * Retrieves a guest shopper access token from SLAS.
54
79
  *
@@ -63,7 +88,7 @@ export async function getGuestToken(config) {
63
88
  if (config.slasClientSecret) {
64
89
  return getPrivateClientGuestToken(config);
65
90
  }
66
- logger.debug('Using public client PKCE guest flow');
91
+ logger.debug({ clientId: config.slasClientId }, '[SLAS] Using public client PKCE guest flow');
67
92
  const baseUrl = buildBaseUrl(config.shortCode, config.organizationId);
68
93
  const verifier = generateCodeVerifier();
69
94
  const challenge = generateCodeChallenge(verifier);
@@ -76,9 +101,10 @@ export async function getGuestToken(config) {
76
101
  code_challenge: challenge,
77
102
  });
78
103
  const authorizeUrl = `${baseUrl}/oauth2/authorize?${authorizeParams.toString()}`;
79
- logger.debug({ url: authorizeUrl }, 'SLAS authorize request');
80
- const authorizeResponse = await fetch(authorizeUrl, { redirect: 'manual' });
104
+ const { response: authorizeResponse } = await loggedFetch(authorizeUrl, { redirect: 'manual' });
81
105
  if (authorizeResponse.status !== 303) {
106
+ const respHeaders = serializeHeaders(authorizeResponse);
107
+ logger.trace({ headers: respHeaders }, `[SLAS RESP BODY] GET ${authorizeUrl}`);
82
108
  await checkResponse(authorizeResponse, 'authorize');
83
109
  throw new Error(`Expected 303 redirect from SLAS authorize, got ${authorizeResponse.status}`);
84
110
  }
@@ -87,7 +113,7 @@ export async function getGuestToken(config) {
87
113
  throw new Error('SLAS authorize response missing Location header');
88
114
  }
89
115
  const { code, usid } = parseRedirectCode(location);
90
- logger.debug({ usid }, 'Got authorization code from SLAS');
116
+ logger.debug({ usid }, '[SLAS] Got authorization code');
91
117
  // Step 2: Exchange code for token
92
118
  const tokenBody = new URLSearchParams({
93
119
  grant_type: 'authorization_code_pkce',
@@ -98,27 +124,32 @@ export async function getGuestToken(config) {
98
124
  channel_id: config.siteId,
99
125
  usid,
100
126
  });
101
- const tokenResponse = await fetch(`${baseUrl}/oauth2/token`, {
127
+ const tokenUrl = `${baseUrl}/oauth2/token`;
128
+ const { response: tokenResponse } = await loggedFetch(tokenUrl, {
102
129
  method: 'POST',
103
130
  headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
104
131
  body: tokenBody,
105
132
  });
106
133
  await checkResponse(tokenResponse, 'token exchange (authorization_code_pkce)');
107
- return (await tokenResponse.json());
134
+ const data = (await tokenResponse.json());
135
+ const respHeaders = serializeHeaders(tokenResponse);
136
+ logger.trace({ headers: respHeaders, body: data }, `[SLAS RESP BODY] POST ${tokenUrl}`);
137
+ return data;
108
138
  }
109
139
  /**
110
140
  * Private client guest token via client_credentials grant.
111
141
  */
112
142
  async function getPrivateClientGuestToken(config) {
113
143
  const logger = getLogger();
114
- logger.debug('Using private client client_credentials guest flow');
144
+ logger.debug({ clientId: config.slasClientId }, '[SLAS] Using private client client_credentials guest flow');
115
145
  const baseUrl = buildBaseUrl(config.shortCode, config.organizationId);
116
146
  const basicAuth = Buffer.from(`${config.slasClientId}:${config.slasClientSecret}`).toString('base64');
117
147
  const tokenBody = new URLSearchParams({
118
148
  grant_type: 'client_credentials',
119
149
  channel_id: config.siteId,
120
150
  });
121
- const tokenResponse = await fetch(`${baseUrl}/oauth2/token`, {
151
+ const tokenUrl = `${baseUrl}/oauth2/token`;
152
+ const { response: tokenResponse } = await loggedFetch(tokenUrl, {
122
153
  method: 'POST',
123
154
  headers: {
124
155
  'Content-Type': 'application/x-www-form-urlencoded',
@@ -127,7 +158,10 @@ async function getPrivateClientGuestToken(config) {
127
158
  body: tokenBody,
128
159
  });
129
160
  await checkResponse(tokenResponse, 'token (client_credentials)');
130
- return (await tokenResponse.json());
161
+ const data = (await tokenResponse.json());
162
+ const respHeaders = serializeHeaders(tokenResponse);
163
+ logger.trace({ headers: respHeaders, body: data }, `[SLAS RESP BODY] POST ${tokenUrl}`);
164
+ return data;
131
165
  }
132
166
  /**
133
167
  * Retrieves a registered customer access token from SLAS.
@@ -145,7 +179,7 @@ export async function getRegisteredToken(config) {
145
179
  const logger = getLogger();
146
180
  const baseUrl = buildBaseUrl(config.shortCode, config.organizationId);
147
181
  const isPrivate = Boolean(config.slasClientSecret);
148
- logger.debug({ isPrivate }, 'Using registered customer login flow');
182
+ logger.debug({ clientId: config.slasClientId, isPrivate }, '[SLAS] Using registered customer login flow');
149
183
  const verifier = generateCodeVerifier();
150
184
  const challenge = generateCodeChallenge(verifier);
151
185
  // Step 1: Login with shopper credentials
@@ -156,7 +190,8 @@ export async function getRegisteredToken(config) {
156
190
  code_challenge: challenge,
157
191
  redirect_uri: config.redirectUri,
158
192
  });
159
- const loginResponse = await fetch(`${baseUrl}/oauth2/login`, {
193
+ const loginUrl = `${baseUrl}/oauth2/login`;
194
+ const { response: loginResponse } = await loggedFetch(loginUrl, {
160
195
  method: 'POST',
161
196
  headers: {
162
197
  'Content-Type': 'application/x-www-form-urlencoded',
@@ -166,6 +201,8 @@ export async function getRegisteredToken(config) {
166
201
  redirect: 'manual',
167
202
  });
168
203
  if (loginResponse.status !== 303) {
204
+ const respHeaders = serializeHeaders(loginResponse);
205
+ logger.trace({ headers: respHeaders }, `[SLAS RESP BODY] POST ${loginUrl}`);
169
206
  await checkResponse(loginResponse, 'login');
170
207
  throw new Error(`Expected 303 redirect from SLAS login, got ${loginResponse.status}`);
171
208
  }
@@ -174,8 +211,9 @@ export async function getRegisteredToken(config) {
174
211
  throw new Error('SLAS login response missing Location header');
175
212
  }
176
213
  const { code, usid } = parseRedirectCode(location);
177
- logger.debug({ usid }, 'Got authorization code from SLAS login');
214
+ logger.debug({ usid }, '[SLAS] Got authorization code from login');
178
215
  // Step 2: Exchange code for token
216
+ const tokenUrl = `${baseUrl}/oauth2/token`;
179
217
  if (isPrivate) {
180
218
  const basicAuth = Buffer.from(`${config.slasClientId}:${config.slasClientSecret}`).toString('base64');
181
219
  const tokenBody = new URLSearchParams({
@@ -185,7 +223,7 @@ export async function getRegisteredToken(config) {
185
223
  channel_id: config.siteId,
186
224
  usid,
187
225
  });
188
- const tokenResponse = await fetch(`${baseUrl}/oauth2/token`, {
226
+ const { response: tokenResponse } = await loggedFetch(tokenUrl, {
189
227
  method: 'POST',
190
228
  headers: {
191
229
  'Content-Type': 'application/x-www-form-urlencoded',
@@ -194,7 +232,10 @@ export async function getRegisteredToken(config) {
194
232
  body: tokenBody,
195
233
  });
196
234
  await checkResponse(tokenResponse, 'token exchange (authorization_code)');
197
- return (await tokenResponse.json());
235
+ const data = (await tokenResponse.json());
236
+ const respHeaders = serializeHeaders(tokenResponse);
237
+ logger.trace({ headers: respHeaders, body: data }, `[SLAS RESP BODY] POST ${tokenUrl}`);
238
+ return data;
198
239
  }
199
240
  // Public client — use PKCE
200
241
  const tokenBody = new URLSearchParams({
@@ -206,12 +247,15 @@ export async function getRegisteredToken(config) {
206
247
  channel_id: config.siteId,
207
248
  usid,
208
249
  });
209
- const tokenResponse = await fetch(`${baseUrl}/oauth2/token`, {
250
+ const { response: tokenResponse } = await loggedFetch(tokenUrl, {
210
251
  method: 'POST',
211
252
  headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
212
253
  body: tokenBody,
213
254
  });
214
255
  await checkResponse(tokenResponse, 'token exchange (authorization_code_pkce)');
215
- return (await tokenResponse.json());
256
+ const data = (await tokenResponse.json());
257
+ const respHeaders = serializeHeaders(tokenResponse);
258
+ logger.trace({ headers: respHeaders, body: data }, `[SLAS RESP BODY] POST ${tokenUrl}`);
259
+ return data;
216
260
  }
217
261
  //# sourceMappingURL=token.js.map
@@ -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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"}
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": "0.7.0",
4
+ "version": "0.8.1",
5
5
  "author": "Charles Lavery",
6
6
  "license": "Apache-2.0",
7
7
  "repository": "SalesforceCommerceCloud/b2c-developer-tooling",