@salesforce/b2c-tooling-sdk 1.8.0 → 1.10.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 (226) hide show
  1. package/dist/cjs/auth/index.d.ts +3 -0
  2. package/dist/cjs/auth/index.js +2 -0
  3. package/dist/cjs/auth/index.js.map +1 -1
  4. package/dist/cjs/auth/jwt-utils.d.ts +25 -0
  5. package/dist/cjs/auth/jwt-utils.js +66 -0
  6. package/dist/cjs/auth/jwt-utils.js.map +1 -0
  7. package/dist/cjs/auth/oauth-implicit.js +4 -1
  8. package/dist/cjs/auth/oauth-implicit.js.map +1 -1
  9. package/dist/cjs/auth/oauth-jwt.d.ts +99 -0
  10. package/dist/cjs/auth/oauth-jwt.js +343 -0
  11. package/dist/cjs/auth/oauth-jwt.js.map +1 -0
  12. package/dist/cjs/auth/oauth.d.ts +42 -3
  13. package/dist/cjs/auth/oauth.js +90 -35
  14. package/dist/cjs/auth/oauth.js.map +1 -1
  15. package/dist/cjs/auth/stateful-oauth-strategy.js +3 -9
  16. package/dist/cjs/auth/stateful-oauth-strategy.js.map +1 -1
  17. package/dist/cjs/auth/stateful-store.js +33 -35
  18. package/dist/cjs/auth/stateful-store.js.map +1 -1
  19. package/dist/cjs/auth/types.d.ts +2 -1
  20. package/dist/cjs/auth/types.js +1 -1
  21. package/dist/cjs/auth/types.js.map +1 -1
  22. package/dist/cjs/cli/am-command.d.ts +1 -1
  23. package/dist/cjs/cli/am-command.js +3 -0
  24. package/dist/cjs/cli/am-command.js.map +1 -1
  25. package/dist/cjs/cli/base-command.js +4 -2
  26. package/dist/cjs/cli/base-command.js.map +1 -1
  27. package/dist/cjs/cli/columns.d.ts +128 -0
  28. package/dist/cjs/cli/columns.js +128 -0
  29. package/dist/cjs/cli/columns.js.map +1 -0
  30. package/dist/cjs/cli/config.js +4 -0
  31. package/dist/cjs/cli/config.js.map +1 -1
  32. package/dist/cjs/cli/details.d.ts +69 -0
  33. package/dist/cjs/cli/details.js +72 -0
  34. package/dist/cjs/cli/details.js.map +1 -0
  35. package/dist/cjs/cli/index.d.ts +4 -0
  36. package/dist/cjs/cli/index.js +2 -0
  37. package/dist/cjs/cli/index.js.map +1 -1
  38. package/dist/cjs/cli/instance-command.d.ts +3 -0
  39. package/dist/cjs/cli/oauth-command.d.ts +14 -2
  40. package/dist/cjs/cli/oauth-command.js +54 -3
  41. package/dist/cjs/cli/oauth-command.js.map +1 -1
  42. package/dist/cjs/cli/ods-command.d.ts +3 -0
  43. package/dist/cjs/cli/webdav-command.d.ts +3 -0
  44. package/dist/cjs/clients/cdn-zones.js +5 -2
  45. package/dist/cjs/clients/cdn-zones.js.map +1 -1
  46. package/dist/cjs/clients/cip.js +2 -1
  47. package/dist/cjs/clients/cip.js.map +1 -1
  48. package/dist/cjs/clients/custom-apis.js +5 -2
  49. package/dist/cjs/clients/custom-apis.js.map +1 -1
  50. package/dist/cjs/clients/granular-replications.js +4 -1
  51. package/dist/cjs/clients/granular-replications.js.map +1 -1
  52. package/dist/cjs/clients/mrt.generated.d.ts +1073 -41
  53. package/dist/cjs/clients/scapi-schemas.js +5 -2
  54. package/dist/cjs/clients/scapi-schemas.js.map +1 -1
  55. package/dist/cjs/clients/webdav.js +11 -3
  56. package/dist/cjs/clients/webdav.js.map +1 -1
  57. package/dist/cjs/config/dw-json.d.ts +17 -2
  58. package/dist/cjs/config/dw-json.js +4 -7
  59. package/dist/cjs/config/dw-json.js.map +1 -1
  60. package/dist/cjs/config/index.d.ts +2 -2
  61. package/dist/cjs/config/index.js +1 -1
  62. package/dist/cjs/config/index.js.map +1 -1
  63. package/dist/cjs/config/mapping.d.ts +7 -1
  64. package/dist/cjs/config/mapping.js +32 -0
  65. package/dist/cjs/config/mapping.js.map +1 -1
  66. package/dist/cjs/config/sources/env-source.js +13 -1
  67. package/dist/cjs/config/sources/env-source.js.map +1 -1
  68. package/dist/cjs/config/sources/package-json-source.js +2 -0
  69. package/dist/cjs/config/sources/package-json-source.js.map +1 -1
  70. package/dist/cjs/config/types.d.ts +35 -2
  71. package/dist/cjs/index.d.ts +2 -2
  72. package/dist/cjs/index.js +1 -1
  73. package/dist/cjs/index.js.map +1 -1
  74. package/dist/cjs/operations/bm-users/index.d.ts +50 -0
  75. package/dist/cjs/operations/bm-users/index.js +55 -0
  76. package/dist/cjs/operations/bm-users/index.js.map +1 -0
  77. package/dist/cjs/operations/bm-users/users.d.ts +189 -0
  78. package/dist/cjs/operations/bm-users/users.js +229 -0
  79. package/dist/cjs/operations/bm-users/users.js.map +1 -0
  80. package/dist/cjs/operations/code/deploy.js +19 -10
  81. package/dist/cjs/operations/code/deploy.js.map +1 -1
  82. package/dist/cjs/operations/code/download.js +50 -32
  83. package/dist/cjs/operations/code/download.js.map +1 -1
  84. package/dist/cjs/operations/debug/debug-session.js +23 -8
  85. package/dist/cjs/operations/debug/debug-session.js.map +1 -1
  86. package/dist/cjs/operations/debug/index.d.ts +3 -0
  87. package/dist/cjs/operations/debug/index.js +2 -0
  88. package/dist/cjs/operations/debug/index.js.map +1 -1
  89. package/dist/cjs/operations/debug/projections.d.ts +72 -0
  90. package/dist/cjs/operations/debug/projections.js +84 -0
  91. package/dist/cjs/operations/debug/projections.js.map +1 -0
  92. package/dist/cjs/operations/debug/resolve-path.d.ts +15 -0
  93. package/dist/cjs/operations/debug/resolve-path.js +52 -0
  94. package/dist/cjs/operations/debug/resolve-path.js.map +1 -0
  95. package/dist/cjs/operations/mrt/certificate.d.ts +60 -0
  96. package/dist/cjs/operations/mrt/certificate.js +76 -0
  97. package/dist/cjs/operations/mrt/certificate.js.map +1 -0
  98. package/dist/cjs/operations/mrt/env.d.ts +79 -0
  99. package/dist/cjs/operations/mrt/env.js +65 -3
  100. package/dist/cjs/operations/mrt/env.js.map +1 -1
  101. package/dist/cjs/operations/mrt/index.d.ts +8 -4
  102. package/dist/cjs/operations/mrt/index.js +6 -2
  103. package/dist/cjs/operations/mrt/index.js.map +1 -1
  104. package/dist/cjs/operations/mrt/organization-member.d.ts +68 -0
  105. package/dist/cjs/operations/mrt/organization-member.js +88 -0
  106. package/dist/cjs/operations/mrt/organization-member.js.map +1 -0
  107. package/dist/cjs/operations/mrt/push.d.ts +67 -0
  108. package/dist/cjs/operations/mrt/push.js +63 -0
  109. package/dist/cjs/operations/mrt/push.js.map +1 -1
  110. package/dist/cjs/ux/index.d.ts +1 -0
  111. package/dist/cjs/ux/index.js +7 -0
  112. package/dist/cjs/ux/index.js.map +1 -0
  113. package/dist/esm/auth/index.d.ts +3 -0
  114. package/dist/esm/auth/index.js +2 -0
  115. package/dist/esm/auth/index.js.map +1 -1
  116. package/dist/esm/auth/jwt-utils.d.ts +25 -0
  117. package/dist/esm/auth/jwt-utils.js +66 -0
  118. package/dist/esm/auth/jwt-utils.js.map +1 -0
  119. package/dist/esm/auth/oauth-implicit.js +4 -1
  120. package/dist/esm/auth/oauth-implicit.js.map +1 -1
  121. package/dist/esm/auth/oauth-jwt.d.ts +99 -0
  122. package/dist/esm/auth/oauth-jwt.js +343 -0
  123. package/dist/esm/auth/oauth-jwt.js.map +1 -0
  124. package/dist/esm/auth/oauth.d.ts +42 -3
  125. package/dist/esm/auth/oauth.js +90 -35
  126. package/dist/esm/auth/oauth.js.map +1 -1
  127. package/dist/esm/auth/stateful-oauth-strategy.js +3 -9
  128. package/dist/esm/auth/stateful-oauth-strategy.js.map +1 -1
  129. package/dist/esm/auth/stateful-store.js +33 -35
  130. package/dist/esm/auth/stateful-store.js.map +1 -1
  131. package/dist/esm/auth/types.d.ts +2 -1
  132. package/dist/esm/auth/types.js +1 -1
  133. package/dist/esm/auth/types.js.map +1 -1
  134. package/dist/esm/cli/am-command.d.ts +1 -1
  135. package/dist/esm/cli/am-command.js +3 -0
  136. package/dist/esm/cli/am-command.js.map +1 -1
  137. package/dist/esm/cli/base-command.js +4 -2
  138. package/dist/esm/cli/base-command.js.map +1 -1
  139. package/dist/esm/cli/columns.d.ts +128 -0
  140. package/dist/esm/cli/columns.js +128 -0
  141. package/dist/esm/cli/columns.js.map +1 -0
  142. package/dist/esm/cli/config.js +4 -0
  143. package/dist/esm/cli/config.js.map +1 -1
  144. package/dist/esm/cli/details.d.ts +69 -0
  145. package/dist/esm/cli/details.js +72 -0
  146. package/dist/esm/cli/details.js.map +1 -0
  147. package/dist/esm/cli/index.d.ts +4 -0
  148. package/dist/esm/cli/index.js +2 -0
  149. package/dist/esm/cli/index.js.map +1 -1
  150. package/dist/esm/cli/instance-command.d.ts +3 -0
  151. package/dist/esm/cli/oauth-command.d.ts +14 -2
  152. package/dist/esm/cli/oauth-command.js +54 -3
  153. package/dist/esm/cli/oauth-command.js.map +1 -1
  154. package/dist/esm/cli/ods-command.d.ts +3 -0
  155. package/dist/esm/cli/webdav-command.d.ts +3 -0
  156. package/dist/esm/clients/cdn-zones.js +5 -2
  157. package/dist/esm/clients/cdn-zones.js.map +1 -1
  158. package/dist/esm/clients/cip.js +2 -1
  159. package/dist/esm/clients/cip.js.map +1 -1
  160. package/dist/esm/clients/custom-apis.js +5 -2
  161. package/dist/esm/clients/custom-apis.js.map +1 -1
  162. package/dist/esm/clients/granular-replications.js +4 -1
  163. package/dist/esm/clients/granular-replications.js.map +1 -1
  164. package/dist/esm/clients/mrt.generated.d.ts +1073 -41
  165. package/dist/esm/clients/scapi-schemas.js +5 -2
  166. package/dist/esm/clients/scapi-schemas.js.map +1 -1
  167. package/dist/esm/clients/webdav.js +11 -3
  168. package/dist/esm/clients/webdav.js.map +1 -1
  169. package/dist/esm/config/dw-json.d.ts +17 -2
  170. package/dist/esm/config/dw-json.js +4 -7
  171. package/dist/esm/config/dw-json.js.map +1 -1
  172. package/dist/esm/config/index.d.ts +2 -2
  173. package/dist/esm/config/index.js +1 -1
  174. package/dist/esm/config/index.js.map +1 -1
  175. package/dist/esm/config/mapping.d.ts +7 -1
  176. package/dist/esm/config/mapping.js +32 -0
  177. package/dist/esm/config/mapping.js.map +1 -1
  178. package/dist/esm/config/sources/env-source.js +13 -1
  179. package/dist/esm/config/sources/env-source.js.map +1 -1
  180. package/dist/esm/config/sources/package-json-source.js +2 -0
  181. package/dist/esm/config/sources/package-json-source.js.map +1 -1
  182. package/dist/esm/config/types.d.ts +35 -2
  183. package/dist/esm/index.d.ts +2 -2
  184. package/dist/esm/index.js +1 -1
  185. package/dist/esm/index.js.map +1 -1
  186. package/dist/esm/operations/bm-users/index.d.ts +50 -0
  187. package/dist/esm/operations/bm-users/index.js +55 -0
  188. package/dist/esm/operations/bm-users/index.js.map +1 -0
  189. package/dist/esm/operations/bm-users/users.d.ts +189 -0
  190. package/dist/esm/operations/bm-users/users.js +229 -0
  191. package/dist/esm/operations/bm-users/users.js.map +1 -0
  192. package/dist/esm/operations/code/deploy.js +19 -10
  193. package/dist/esm/operations/code/deploy.js.map +1 -1
  194. package/dist/esm/operations/code/download.js +50 -32
  195. package/dist/esm/operations/code/download.js.map +1 -1
  196. package/dist/esm/operations/debug/debug-session.js +23 -8
  197. package/dist/esm/operations/debug/debug-session.js.map +1 -1
  198. package/dist/esm/operations/debug/index.d.ts +3 -0
  199. package/dist/esm/operations/debug/index.js +2 -0
  200. package/dist/esm/operations/debug/index.js.map +1 -1
  201. package/dist/esm/operations/debug/projections.d.ts +72 -0
  202. package/dist/esm/operations/debug/projections.js +84 -0
  203. package/dist/esm/operations/debug/projections.js.map +1 -0
  204. package/dist/esm/operations/debug/resolve-path.d.ts +15 -0
  205. package/dist/esm/operations/debug/resolve-path.js +52 -0
  206. package/dist/esm/operations/debug/resolve-path.js.map +1 -0
  207. package/dist/esm/operations/mrt/certificate.d.ts +60 -0
  208. package/dist/esm/operations/mrt/certificate.js +76 -0
  209. package/dist/esm/operations/mrt/certificate.js.map +1 -0
  210. package/dist/esm/operations/mrt/env.d.ts +79 -0
  211. package/dist/esm/operations/mrt/env.js +65 -3
  212. package/dist/esm/operations/mrt/env.js.map +1 -1
  213. package/dist/esm/operations/mrt/index.d.ts +8 -4
  214. package/dist/esm/operations/mrt/index.js +6 -2
  215. package/dist/esm/operations/mrt/index.js.map +1 -1
  216. package/dist/esm/operations/mrt/organization-member.d.ts +68 -0
  217. package/dist/esm/operations/mrt/organization-member.js +88 -0
  218. package/dist/esm/operations/mrt/organization-member.js.map +1 -0
  219. package/dist/esm/operations/mrt/push.d.ts +67 -0
  220. package/dist/esm/operations/mrt/push.js +63 -0
  221. package/dist/esm/operations/mrt/push.js.map +1 -1
  222. package/dist/esm/ux/index.d.ts +1 -0
  223. package/dist/esm/ux/index.js +7 -0
  224. package/dist/esm/ux/index.js.map +1 -0
  225. package/package.json +22 -2
  226. package/specs/mrt-api-v1.json +2192 -48
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Business Manager user operations for B2C Commerce instances.
3
+ *
4
+ * Provides functions for querying and managing instance-level users via OCAPI Data API.
5
+ * These are distinct from Account Manager users managed via {@link @salesforce/b2c-tooling-sdk/operations/users | operations/users}.
6
+ *
7
+ * On instances using SSO with Account Manager (the default for production), creating local
8
+ * BM users via the Data API is rejected with `LocalUserCreationException`. These operations
9
+ * focus on read/search/lifecycle of AM-managed users plus access-key administration.
10
+ *
11
+ * ## Core User Functions
12
+ *
13
+ * - {@link listBmUsers} - List all users on an instance
14
+ * - {@link getBmUser} - Get a user by login
15
+ * - {@link whoamiBmUser} - Get the currently authenticated user
16
+ * - {@link searchBmUsers} - Search users with filter expressions
17
+ * - {@link updateBmUser} - Update user attributes (locale, external_id, disabled)
18
+ * - {@link deleteBmUser} - Delete a user from the instance
19
+ *
20
+ * ## Access Keys (externally-managed users)
21
+ *
22
+ * - {@link getBmUserAccessKey} - Read access key details
23
+ * - {@link createBmUserAccessKey} - Create / rotate an access key
24
+ * - {@link setBmUserAccessKeyEnabled} - Enable / disable an access key
25
+ * - {@link deleteBmUserAccessKey} - Delete an access key
26
+ *
27
+ * ## Usage
28
+ *
29
+ * ```typescript
30
+ * import {listBmUsers, searchBmUsers, createBmUserAccessKey} from '@salesforce/b2c-tooling-sdk/operations/bm-users';
31
+ * import {resolveConfig} from '@salesforce/b2c-tooling-sdk/config';
32
+ *
33
+ * const config = resolveConfig();
34
+ * const instance = config.createB2CInstance();
35
+ *
36
+ * // List all users
37
+ * const users = await listBmUsers(instance);
38
+ *
39
+ * // Search for locked users
40
+ * const locked = await searchBmUsers(instance, {locked: true});
41
+ *
42
+ * // Provision a WebDAV access key for a user
43
+ * const key = await createBmUserAccessKey(instance, 'user@example.com', 'WEBDAV');
44
+ * console.log(key.access_key); // Only returned at creation time
45
+ * ```
46
+ *
47
+ * @module operations/bm-users
48
+ */
49
+ export { ACCESS_KEY_SCOPES, listBmUsers, getBmUser, whoamiBmUser, searchBmUsers, updateBmUser, deleteBmUser, getBmUserAccessKey, createBmUserAccessKey, setBmUserAccessKeyEnabled, deleteBmUserAccessKey, } from './users.js';
50
+ export type { AccessKeyScope, BmUser, BmUsers, BmUserSearchResult, BmAccessKeyDetails, ListBmUsersOptions, SearchBmUsersOptions, UpdateBmUserChanges, } from './users.js';
@@ -0,0 +1,55 @@
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
+ * Business Manager user operations for B2C Commerce instances.
8
+ *
9
+ * Provides functions for querying and managing instance-level users via OCAPI Data API.
10
+ * These are distinct from Account Manager users managed via {@link @salesforce/b2c-tooling-sdk/operations/users | operations/users}.
11
+ *
12
+ * On instances using SSO with Account Manager (the default for production), creating local
13
+ * BM users via the Data API is rejected with `LocalUserCreationException`. These operations
14
+ * focus on read/search/lifecycle of AM-managed users plus access-key administration.
15
+ *
16
+ * ## Core User Functions
17
+ *
18
+ * - {@link listBmUsers} - List all users on an instance
19
+ * - {@link getBmUser} - Get a user by login
20
+ * - {@link whoamiBmUser} - Get the currently authenticated user
21
+ * - {@link searchBmUsers} - Search users with filter expressions
22
+ * - {@link updateBmUser} - Update user attributes (locale, external_id, disabled)
23
+ * - {@link deleteBmUser} - Delete a user from the instance
24
+ *
25
+ * ## Access Keys (externally-managed users)
26
+ *
27
+ * - {@link getBmUserAccessKey} - Read access key details
28
+ * - {@link createBmUserAccessKey} - Create / rotate an access key
29
+ * - {@link setBmUserAccessKeyEnabled} - Enable / disable an access key
30
+ * - {@link deleteBmUserAccessKey} - Delete an access key
31
+ *
32
+ * ## Usage
33
+ *
34
+ * ```typescript
35
+ * import {listBmUsers, searchBmUsers, createBmUserAccessKey} from '@salesforce/b2c-tooling-sdk/operations/bm-users';
36
+ * import {resolveConfig} from '@salesforce/b2c-tooling-sdk/config';
37
+ *
38
+ * const config = resolveConfig();
39
+ * const instance = config.createB2CInstance();
40
+ *
41
+ * // List all users
42
+ * const users = await listBmUsers(instance);
43
+ *
44
+ * // Search for locked users
45
+ * const locked = await searchBmUsers(instance, {locked: true});
46
+ *
47
+ * // Provision a WebDAV access key for a user
48
+ * const key = await createBmUserAccessKey(instance, 'user@example.com', 'WEBDAV');
49
+ * console.log(key.access_key); // Only returned at creation time
50
+ * ```
51
+ *
52
+ * @module operations/bm-users
53
+ */
54
+ export { ACCESS_KEY_SCOPES, listBmUsers, getBmUser, whoamiBmUser, searchBmUsers, updateBmUser, deleteBmUser, getBmUserAccessKey, createBmUserAccessKey, setBmUserAccessKeyEnabled, deleteBmUserAccessKey, } from './users.js';
55
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/operations/bm-users/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,189 @@
1
+ /**
2
+ * Business Manager user operations for B2C Commerce instances.
3
+ *
4
+ * Provides functions for querying and managing instance-level users via OCAPI Data API.
5
+ *
6
+ * Note: Most production B2C Commerce instances delegate user identity to Account Manager
7
+ * (SSO), so creating local Business Manager users via the Data API typically fails with
8
+ * `LocalUserCreationException`. These operations focus on read/search/lifecycle of
9
+ * AM-managed users plus access-key administration.
10
+ */
11
+ import type { B2CInstance } from '../../instance/index.js';
12
+ import type { components } from '../../clients/ocapi.generated.js';
13
+ /**
14
+ * BM user from OCAPI.
15
+ */
16
+ export type BmUser = components['schemas']['user'];
17
+ /**
18
+ * BM users collection from OCAPI.
19
+ */
20
+ export type BmUsers = components['schemas']['users'];
21
+ /**
22
+ * BM user search result from OCAPI.
23
+ */
24
+ export type BmUserSearchResult = components['schemas']['user_search_result'];
25
+ /**
26
+ * Access key details for an externally-managed user.
27
+ */
28
+ export type BmAccessKeyDetails = components['schemas']['access_key_details'];
29
+ /**
30
+ * Valid access-key scopes accepted by the Data API
31
+ * `/users/{login}/access_key/{scope}` endpoints.
32
+ */
33
+ export declare const ACCESS_KEY_SCOPES: readonly ["WEBDAV_AND_STUDIO", "AGENT_USER_AND_OCAPI", "STOREFRONT"];
34
+ /**
35
+ * Access-key scope. One of {@link ACCESS_KEY_SCOPES}.
36
+ */
37
+ export type AccessKeyScope = (typeof ACCESS_KEY_SCOPES)[number];
38
+ /**
39
+ * Updatable user fields for `patch` operations.
40
+ *
41
+ * Note: `locked` and `password` cannot be modified via PATCH per the API spec.
42
+ */
43
+ export interface UpdateBmUserChanges {
44
+ disabled?: boolean;
45
+ email?: string;
46
+ external_id?: string;
47
+ first_name?: string;
48
+ last_name?: string;
49
+ preferred_data_locale?: string;
50
+ preferred_ui_locale?: string;
51
+ }
52
+ /**
53
+ * Options for listing BM users.
54
+ */
55
+ export interface ListBmUsersOptions {
56
+ /** Start index (default 0) */
57
+ start?: number;
58
+ /** Number of items to return (default 25) */
59
+ count?: number;
60
+ /** Property selector (default returns shallow user fields) */
61
+ select?: string;
62
+ }
63
+ /**
64
+ * Options for searching BM users.
65
+ *
66
+ * Searchable fields per the Data API spec: login, email, first_name, last_name,
67
+ * external_id, last_login_date, is_locked, is_disabled.
68
+ */
69
+ export interface SearchBmUsersOptions {
70
+ /**
71
+ * Pre-built OCAPI query object (e.g. `{text_query: {fields: ['login'], search_phrase: 'foo'}}`).
72
+ * If omitted, one is built from the convenience flags below.
73
+ */
74
+ query?: unknown;
75
+ /** Free-text phrase searched across login/email/first_name/last_name */
76
+ searchPhrase?: string;
77
+ /** Match users with a specific login */
78
+ login?: string;
79
+ /** Match users with a specific email */
80
+ email?: string;
81
+ /** Match locked users */
82
+ locked?: boolean;
83
+ /** Match disabled users */
84
+ disabled?: boolean;
85
+ /** Field to sort by (e.g. 'login', 'email', 'last_login_date') */
86
+ sortBy?: string;
87
+ /** Sort direction */
88
+ sortOrder?: 'asc' | 'desc';
89
+ /** Start index (default 0) */
90
+ start?: number;
91
+ /** Number of items to return (default 25) */
92
+ count?: number;
93
+ /** Property selector (default returns shallow user fields) */
94
+ select?: string;
95
+ }
96
+ /**
97
+ * Lists all users on a B2C Commerce instance.
98
+ *
99
+ * @param instance - B2C instance to query
100
+ * @param options - Pagination options
101
+ * @returns Users collection with pagination info
102
+ */
103
+ export declare function listBmUsers(instance: B2CInstance, options?: ListBmUsersOptions): Promise<BmUsers>;
104
+ /**
105
+ * Gets a single user by login (email).
106
+ *
107
+ * @param instance - B2C instance
108
+ * @param login - User login
109
+ * @returns User details
110
+ */
111
+ export declare function getBmUser(instance: B2CInstance, login: string): Promise<BmUser>;
112
+ /**
113
+ * Returns details for the currently authenticated user (the user the OAuth token resolves to).
114
+ *
115
+ * Useful for verifying which BM identity is in use on an instance.
116
+ *
117
+ * @param instance - B2C instance
118
+ * @returns Current user details (includes password expiration info)
119
+ */
120
+ export declare function whoamiBmUser(instance: B2CInstance): Promise<BmUser>;
121
+ /**
122
+ * Updates an existing user. The `locked` flag and the user `password` cannot be updated
123
+ * with this resource.
124
+ *
125
+ * @param instance - B2C instance
126
+ * @param login - User login
127
+ * @param changes - Fields to update
128
+ * @returns Updated user
129
+ */
130
+ export declare function updateBmUser(instance: B2CInstance, login: string, changes: UpdateBmUserChanges): Promise<BmUser>;
131
+ /**
132
+ * Deletes a user from an instance.
133
+ *
134
+ * @param instance - B2C instance
135
+ * @param login - User login
136
+ */
137
+ export declare function deleteBmUser(instance: B2CInstance, login: string): Promise<void>;
138
+ /**
139
+ * Searches users on an instance.
140
+ *
141
+ * Supports either a fully-formed OCAPI query (`options.query`) or convenience flags
142
+ * (`searchPhrase`, `login`, `email`, `locked`, `disabled`) which are combined into a
143
+ * `bool_query`. If no criteria are provided a `match_all_query` is used.
144
+ *
145
+ * @param instance - B2C instance
146
+ * @param options - Search options
147
+ * @returns User search result
148
+ */
149
+ export declare function searchBmUsers(instance: B2CInstance, options?: SearchBmUsersOptions): Promise<BmUserSearchResult>;
150
+ /**
151
+ * Gets a single access key for an externally-managed user.
152
+ *
153
+ * @param instance - B2C instance
154
+ * @param login - User login
155
+ * @param scope - Access key scope (one of {@link ACCESS_KEY_SCOPES})
156
+ * @returns Access key details
157
+ */
158
+ export declare function getBmUserAccessKey(instance: B2CInstance, login: string, scope: string): Promise<BmAccessKeyDetails>;
159
+ /**
160
+ * Creates a single access key for an externally-managed user (replaces any existing key
161
+ * for the same scope).
162
+ *
163
+ * The returned object includes the newly-generated `access_key` value — this is the only
164
+ * time it is returned, so callers should record it.
165
+ *
166
+ * @param instance - B2C instance
167
+ * @param login - User login
168
+ * @param scope - Access key scope
169
+ * @returns Access key details (including the secret `access_key` value)
170
+ */
171
+ export declare function createBmUserAccessKey(instance: B2CInstance, login: string, scope: string): Promise<BmAccessKeyDetails>;
172
+ /**
173
+ * Enables or disables an existing access key for an externally-managed user.
174
+ *
175
+ * @param instance - B2C instance
176
+ * @param login - User login
177
+ * @param scope - Access key scope
178
+ * @param enabled - Whether the access key should be enabled
179
+ * @returns Updated access key details
180
+ */
181
+ export declare function setBmUserAccessKeyEnabled(instance: B2CInstance, login: string, scope: string, enabled: boolean): Promise<BmAccessKeyDetails>;
182
+ /**
183
+ * Deletes a single access key for an externally-managed user.
184
+ *
185
+ * @param instance - B2C instance
186
+ * @param login - User login
187
+ * @param scope - Access key scope
188
+ */
189
+ export declare function deleteBmUserAccessKey(instance: B2CInstance, login: string, scope: string): Promise<void>;
@@ -0,0 +1,229 @@
1
+ import { getApiErrorMessage } from '../../clients/error-utils.js';
2
+ /**
3
+ * Valid access-key scopes accepted by the Data API
4
+ * `/users/{login}/access_key/{scope}` endpoints.
5
+ */
6
+ export const ACCESS_KEY_SCOPES = ['WEBDAV_AND_STUDIO', 'AGENT_USER_AND_OCAPI', 'STOREFRONT'];
7
+ /**
8
+ * Lists all users on a B2C Commerce instance.
9
+ *
10
+ * @param instance - B2C instance to query
11
+ * @param options - Pagination options
12
+ * @returns Users collection with pagination info
13
+ */
14
+ export async function listBmUsers(instance, options = {}) {
15
+ const { start, count, select } = options;
16
+ const { data, error, response } = await instance.ocapi.GET('/users', {
17
+ params: { query: { start, count, select: select ?? '(**)' } },
18
+ });
19
+ if (error) {
20
+ throw new Error(`Failed to list users: ${getApiErrorMessage(error, response)}`, { cause: error });
21
+ }
22
+ return data;
23
+ }
24
+ /**
25
+ * Gets a single user by login (email).
26
+ *
27
+ * @param instance - B2C instance
28
+ * @param login - User login
29
+ * @returns User details
30
+ */
31
+ export async function getBmUser(instance, login) {
32
+ const { data, error, response } = await instance.ocapi.GET('/users/{login}', {
33
+ params: { path: { login } },
34
+ });
35
+ if (error) {
36
+ throw new Error(`Failed to get user ${login}: ${getApiErrorMessage(error, response)}`, { cause: error });
37
+ }
38
+ return data;
39
+ }
40
+ /**
41
+ * Returns details for the currently authenticated user (the user the OAuth token resolves to).
42
+ *
43
+ * Useful for verifying which BM identity is in use on an instance.
44
+ *
45
+ * @param instance - B2C instance
46
+ * @returns Current user details (includes password expiration info)
47
+ */
48
+ export async function whoamiBmUser(instance) {
49
+ const { data, error, response } = await instance.ocapi.GET('/users/this');
50
+ if (error) {
51
+ throw new Error(`Failed to get current user: ${getApiErrorMessage(error, response)}`, { cause: error });
52
+ }
53
+ return data;
54
+ }
55
+ /**
56
+ * Updates an existing user. The `locked` flag and the user `password` cannot be updated
57
+ * with this resource.
58
+ *
59
+ * @param instance - B2C instance
60
+ * @param login - User login
61
+ * @param changes - Fields to update
62
+ * @returns Updated user
63
+ */
64
+ export async function updateBmUser(instance, login, changes) {
65
+ const { data, error, response } = await instance.ocapi.PATCH('/users/{login}', {
66
+ params: { path: { login } },
67
+ body: changes,
68
+ });
69
+ if (error) {
70
+ throw new Error(`Failed to update user ${login}: ${getApiErrorMessage(error, response)}`, { cause: error });
71
+ }
72
+ return data;
73
+ }
74
+ /**
75
+ * Deletes a user from an instance.
76
+ *
77
+ * @param instance - B2C instance
78
+ * @param login - User login
79
+ */
80
+ export async function deleteBmUser(instance, login) {
81
+ const { error, response } = await instance.ocapi.DELETE('/users/{login}', {
82
+ params: { path: { login } },
83
+ });
84
+ if (error) {
85
+ throw new Error(`Failed to delete user ${login}: ${getApiErrorMessage(error, response)}`, { cause: error });
86
+ }
87
+ }
88
+ /**
89
+ * Searches users on an instance.
90
+ *
91
+ * Supports either a fully-formed OCAPI query (`options.query`) or convenience flags
92
+ * (`searchPhrase`, `login`, `email`, `locked`, `disabled`) which are combined into a
93
+ * `bool_query`. If no criteria are provided a `match_all_query` is used.
94
+ *
95
+ * @param instance - B2C instance
96
+ * @param options - Search options
97
+ * @returns User search result
98
+ */
99
+ export async function searchBmUsers(instance, options = {}) {
100
+ const { query: providedQuery, searchPhrase, login, email, locked, disabled, sortBy, sortOrder, start, count, select, } = options;
101
+ let query = providedQuery;
102
+ if (!query) {
103
+ const queries = [];
104
+ if (searchPhrase) {
105
+ queries.push({
106
+ text_query: {
107
+ fields: ['login', 'email', 'first_name', 'last_name'],
108
+ search_phrase: searchPhrase,
109
+ },
110
+ });
111
+ }
112
+ if (login) {
113
+ queries.push({ term_query: { fields: ['login'], operator: 'is', values: [login] } });
114
+ }
115
+ if (email) {
116
+ queries.push({ term_query: { fields: ['email'], operator: 'is', values: [email] } });
117
+ }
118
+ if (locked !== undefined) {
119
+ queries.push({ term_query: { fields: ['is_locked'], operator: 'is', values: [locked] } });
120
+ }
121
+ if (disabled !== undefined) {
122
+ queries.push({ term_query: { fields: ['is_disabled'], operator: 'is', values: [disabled] } });
123
+ }
124
+ if (queries.length === 0) {
125
+ query = { match_all_query: {} };
126
+ }
127
+ else if (queries.length === 1) {
128
+ query = queries[0];
129
+ }
130
+ else {
131
+ query = { bool_query: { must: queries } };
132
+ }
133
+ }
134
+ const sorts = sortBy ? [{ field: sortBy, sort_order: sortOrder ?? 'asc' }] : undefined;
135
+ const { data, error, response } = await instance.ocapi.POST('/user_search', {
136
+ body: {
137
+ query,
138
+ start,
139
+ count,
140
+ sorts,
141
+ select: select ?? '(**)',
142
+ },
143
+ });
144
+ if (error) {
145
+ throw new Error(`Failed to search users: ${getApiErrorMessage(error, response)}`, { cause: error });
146
+ }
147
+ return data;
148
+ }
149
+ /**
150
+ * Gets a single access key for an externally-managed user.
151
+ *
152
+ * @param instance - B2C instance
153
+ * @param login - User login
154
+ * @param scope - Access key scope (one of {@link ACCESS_KEY_SCOPES})
155
+ * @returns Access key details
156
+ */
157
+ export async function getBmUserAccessKey(instance, login, scope) {
158
+ const { data, error, response } = await instance.ocapi.GET('/users/{login}/access_key/{scope}', {
159
+ params: { path: { login, scope } },
160
+ });
161
+ if (error) {
162
+ throw new Error(`Failed to get access key (${scope}) for ${login}: ${getApiErrorMessage(error, response)}`, {
163
+ cause: error,
164
+ });
165
+ }
166
+ return data;
167
+ }
168
+ /**
169
+ * Creates a single access key for an externally-managed user (replaces any existing key
170
+ * for the same scope).
171
+ *
172
+ * The returned object includes the newly-generated `access_key` value — this is the only
173
+ * time it is returned, so callers should record it.
174
+ *
175
+ * @param instance - B2C instance
176
+ * @param login - User login
177
+ * @param scope - Access key scope
178
+ * @returns Access key details (including the secret `access_key` value)
179
+ */
180
+ export async function createBmUserAccessKey(instance, login, scope) {
181
+ const { data, error, response } = await instance.ocapi.PUT('/users/{login}/access_key/{scope}', {
182
+ params: { path: { login, scope } },
183
+ });
184
+ if (error) {
185
+ throw new Error(`Failed to create access key (${scope}) for ${login}: ${getApiErrorMessage(error, response)}`, {
186
+ cause: error,
187
+ });
188
+ }
189
+ return data;
190
+ }
191
+ /**
192
+ * Enables or disables an existing access key for an externally-managed user.
193
+ *
194
+ * @param instance - B2C instance
195
+ * @param login - User login
196
+ * @param scope - Access key scope
197
+ * @param enabled - Whether the access key should be enabled
198
+ * @returns Updated access key details
199
+ */
200
+ export async function setBmUserAccessKeyEnabled(instance, login, scope, enabled) {
201
+ const { data, error, response } = await instance.ocapi.PATCH('/users/{login}/access_key/{scope}', {
202
+ params: { path: { login, scope } },
203
+ body: { enabled },
204
+ });
205
+ if (error) {
206
+ throw new Error(`Failed to update access key (${scope}) for ${login}: ${getApiErrorMessage(error, response)}`, {
207
+ cause: error,
208
+ });
209
+ }
210
+ return data;
211
+ }
212
+ /**
213
+ * Deletes a single access key for an externally-managed user.
214
+ *
215
+ * @param instance - B2C instance
216
+ * @param login - User login
217
+ * @param scope - Access key scope
218
+ */
219
+ export async function deleteBmUserAccessKey(instance, login, scope) {
220
+ const { error, response } = await instance.ocapi.DELETE('/users/{login}/access_key/{scope}', {
221
+ params: { path: { login, scope } },
222
+ });
223
+ if (error) {
224
+ throw new Error(`Failed to delete access key (${scope}) for ${login}: ${getApiErrorMessage(error, response)}`, {
225
+ cause: error,
226
+ });
227
+ }
228
+ }
229
+ //# sourceMappingURL=users.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"users.js","sourceRoot":"","sources":["../../../../src/operations/bm-users/users.ts"],"names":[],"mappings":"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"}
@@ -131,20 +131,29 @@ export async function uploadCartridges(instance, cartridges, options) {
131
131
  // Upload archive
132
132
  let stopProgress = startProgress('uploading');
133
133
  logger.debug({ uploadPath }, 'Uploading archive...');
134
- await webdav.put(uploadPath, buffer, 'application/zip');
135
- stopProgress();
134
+ try {
135
+ await webdav.put(uploadPath, buffer, 'application/zip');
136
+ }
137
+ finally {
138
+ stopProgress();
139
+ }
136
140
  logger.debug('Archive uploaded');
137
141
  // Unzip on server
138
142
  stopProgress = startProgress('unzipping');
139
143
  logger.debug('Unzipping archive on server...');
140
- const response = await webdav.request(uploadPath, {
141
- method: 'POST',
142
- body: UNZIP_BODY,
143
- headers: {
144
- 'Content-Type': 'application/x-www-form-urlencoded',
145
- },
146
- });
147
- stopProgress();
144
+ let response;
145
+ try {
146
+ response = await webdav.request(uploadPath, {
147
+ method: 'POST',
148
+ body: UNZIP_BODY,
149
+ headers: {
150
+ 'Content-Type': 'application/x-www-form-urlencoded',
151
+ },
152
+ });
153
+ }
154
+ finally {
155
+ stopProgress();
156
+ }
148
157
  if (!response.ok) {
149
158
  const text = await response.text();
150
159
  throw new Error(`Failed to unzip archive: ${response.status} ${response.statusText} - ${text}`);
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../../src/operations/code/deploy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,SAAS,EAAC,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAC,cAAc,EAAoD,MAAM,iBAAiB,CAAC;AAClG,OAAO,EAAC,mBAAmB,EAAE,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAErE,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC,EAAC,MAAM,EAAE,OAAO,EAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AA8CrE;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAAC,GAAU,EAAE,OAAe,EAAE,OAAe;IAC3E,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC,CAAC;IAE1E,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAEpD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,MAAM,iBAAiB,CAAC,GAAG,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;QACvD,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACrD,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,QAAqB,EAAE,UAA8B;IAC1F,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;IAEhD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAE/B,MAAM,CAAC,KAAK,CAAC,EAAC,KAAK,EAAE,UAAU,CAAC,MAAM,EAAC,EAAE,YAAY,UAAU,CAAC,MAAM,kBAAkB,CAAC,CAAC;IAC1F,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,aAAa,GAAG,cAAc,WAAW,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5D,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC,EAAC,aAAa,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,EAAC,EAAE,WAAW,aAAa,EAAE,CAAC,CAAC;QACzF,CAAC;QAAC,MAAM,CAAC;YACP,0CAA0C;YAC1C,MAAM,CAAC,KAAK,CAAC,EAAC,aAAa,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,EAAC,EAAE,oBAAoB,aAAa,kBAAkB,CAAC,CAAC;QAClH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAqB,EACrB,UAA8B,EAC9B,OAAuB;IAEvB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;IAEhD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,UAAU,GAAG,oBAAoB,GAAG,MAAM,CAAC;IACjD,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,CAAC;IAEvC,sEAAsE;IACtE,MAAM,oBAAoB,GAAG,KAAK,CAAC;IACnC,SAAS,aAAa,CAAC,KAAkC;QACvD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,UAAU,EAAE,CAAC,EAAC,KAAK,EAAE,cAAc,EAAE,CAAC,EAAC,CAAC,CAAC;QACzC,IAAI,CAAC,UAAU;YAAE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,UAAU,CAAC,EAAC,KAAK,EAAE,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,EAAC,CAAC,CAAC;QAC/E,CAAC,EAAE,oBAAoB,CAAC,CAAC;QACzB,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,qBAAqB;IACrB,UAAU,EAAE,CAAC,EAAC,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,EAAC,CAAC,CAAC;IACtD,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;IAExB,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC;QACrC,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,SAAS;QACtB,kBAAkB,EAAE,EAAC,KAAK,EAAE,CAAC,EAAC;KAC/B,CAAC,CAAC;IACH,MAAM,CAAC,KAAK,CAAC,EAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAC,EAAE,oBAAoB,MAAM,CAAC,MAAM,QAAQ,CAAC,CAAC;IAE/E,iBAAiB;IACjB,IAAI,YAAY,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,CAAC,EAAC,UAAU,EAAC,EAAE,sBAAsB,CAAC,CAAC;IACnD,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACxD,YAAY,EAAE,CAAC;IACf,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAEjC,kBAAkB;IAClB,YAAY,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE;QAChD,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE;YACP,cAAc,EAAE,mCAAmC;SACpD;KACF,CAAC,CAAC;IACH,YAAY,EAAE,CAAC;IAEf,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,MAAM,IAAI,EAAE,CAAC,CAAC;IAClG,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAEjC,iDAAiD;IACjD,UAAU,EAAE,CAAC,EAAC,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,EAAC,CAAC,CAAC;IACpD,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,uEAAuE;QACvE,MAAM,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,UAAU,EAAC,EAAE,kDAAkD,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,CAAC,KAAK,CACV,EAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,CAAC,MAAM,EAAC,EAClF,YAAY,UAAU,CAAC,MAAM,kBAAkB,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAC1E,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,QAAqB,EACrB,SAAiB,EACjB,UAAyB,EAAE;IAE3B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;IAEhD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,EAAC,SAAS,EAAC,EAAE,uBAAuB,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,cAAc,CAAC,SAAS,EAAE;QAC3C,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;IAEH,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,0BAA0B,SAAS,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,EAAC,KAAK,EAAE,UAAU,CAAC,MAAM,EAAC,EAAE,SAAS,UAAU,CAAC,MAAM,eAAe,CAAC,CAAC;IACpF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,CAAC,KAAK,CAAC,EAAC,aAAa,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,8CAA8C;IAC9C,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC/C,CAAC;IAED,oBAAoB;IACpB,MAAM,gBAAgB,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAC,UAAU,EAAE,OAAO,CAAC,UAAU,EAAC,CAAC,CAAC;IAE/E,gCAAgC;IAChC,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC3C,MAAM,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACjD,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;SAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC1C,MAAM,iBAAiB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC/C,SAAS,GAAG,IAAI,CAAC;QACjB,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,OAAO;QACL,UAAU;QACV,WAAW;QACX,SAAS;QACT,QAAQ;KACT,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../../src/operations/code/deploy.ts"],"names":[],"mappings":"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"}