@salesforce/b2c-cli 1.17.3 → 1.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/dist/commands/auth/client/index.js +2 -2
  2. package/dist/commands/auth/client/index.js.map +1 -1
  3. package/dist/commands/auth/login.js +2 -2
  4. package/dist/commands/auth/login.js.map +1 -1
  5. package/dist/commands/cap/install.d.ts +1 -1
  6. package/dist/commands/cap/list.d.ts +1 -1
  7. package/dist/commands/cap/pull.d.ts +1 -1
  8. package/dist/commands/cap/tasks.d.ts +1 -1
  9. package/dist/commands/cap/uninstall.d.ts +1 -1
  10. package/dist/commands/cip/describe.d.ts +1 -1
  11. package/dist/commands/cip/query.d.ts +1 -1
  12. package/dist/commands/cip/report/bot-traffic-share.d.ts +1 -1
  13. package/dist/commands/cip/report/checkout-funnel-dropoff.d.ts +1 -1
  14. package/dist/commands/cip/report/controller-error-rate-trend.d.ts +1 -1
  15. package/dist/commands/cip/report/controller-health-scorecard.d.ts +1 -1
  16. package/dist/commands/cip/report/customer-registration-trends.d.ts +1 -1
  17. package/dist/commands/cip/report/discount-depth-breakdown.d.ts +1 -1
  18. package/dist/commands/cip/report/inventory-stockout-by-location.d.ts +1 -1
  19. package/dist/commands/cip/report/new-vs-returning-buyer-revenue.d.ts +1 -1
  20. package/dist/commands/cip/report/ocapi-client-usage.d.ts +1 -1
  21. package/dist/commands/cip/report/ocapi-requests.d.ts +1 -1
  22. package/dist/commands/cip/report/payment-method-performance.d.ts +1 -1
  23. package/dist/commands/cip/report/product-co-purchase-analysis.d.ts +1 -1
  24. package/dist/commands/cip/report/promotion-discount-analysis.d.ts +1 -1
  25. package/dist/commands/cip/report/promotion-roi-leaderboard.d.ts +1 -1
  26. package/dist/commands/cip/report/recommender-effectiveness.d.ts +1 -1
  27. package/dist/commands/cip/report/remote-include-performance.d.ts +1 -1
  28. package/dist/commands/cip/report/revenue-by-channel.d.ts +1 -1
  29. package/dist/commands/cip/report/sales-analytics.d.ts +1 -1
  30. package/dist/commands/cip/report/sales-summary.d.ts +1 -1
  31. package/dist/commands/cip/report/scapi-cache-hit-ratio.d.ts +1 -1
  32. package/dist/commands/cip/report/scapi-error-rate-by-status.d.ts +1 -1
  33. package/dist/commands/cip/report/scapi-latency-distribution.d.ts +1 -1
  34. package/dist/commands/cip/report/scapi-traffic-latency.d.ts +1 -1
  35. package/dist/commands/cip/report/search-query-performance.d.ts +1 -1
  36. package/dist/commands/cip/report/top-referrers.d.ts +1 -1
  37. package/dist/commands/cip/report/top-selling-products.d.ts +1 -1
  38. package/dist/commands/cip/report/zero-result-searches.d.ts +1 -1
  39. package/dist/commands/cip/tables.d.ts +1 -1
  40. package/dist/commands/code/activate.d.ts +1 -1
  41. package/dist/commands/code/delete.d.ts +1 -1
  42. package/dist/commands/code/deploy.d.ts +1 -1
  43. package/dist/commands/code/download.d.ts +1 -1
  44. package/dist/commands/code/watch.d.ts +1 -1
  45. package/dist/commands/content/export.d.ts +1 -1
  46. package/dist/commands/content/list.d.ts +1 -1
  47. package/dist/commands/debug/cli.d.ts +1 -1
  48. package/dist/commands/debug/index.d.ts +1 -1
  49. package/dist/commands/docs/download.d.ts +1 -1
  50. package/dist/commands/docs/read.d.ts +1 -0
  51. package/dist/commands/docs/read.js +10 -2
  52. package/dist/commands/docs/read.js.map +1 -1
  53. package/dist/commands/docs/search.d.ts +16 -0
  54. package/dist/commands/docs/search.js +137 -16
  55. package/dist/commands/docs/search.js.map +1 -1
  56. package/dist/commands/ecdn/cache/purge.d.ts +1 -1
  57. package/dist/commands/ecdn/certificates/add.d.ts +1 -1
  58. package/dist/commands/ecdn/certificates/delete.d.ts +1 -1
  59. package/dist/commands/ecdn/certificates/list.d.ts +1 -1
  60. package/dist/commands/ecdn/certificates/update.d.ts +1 -1
  61. package/dist/commands/ecdn/certificates/validate.d.ts +1 -1
  62. package/dist/commands/ecdn/cipher-suites/get.d.ts +1 -1
  63. package/dist/commands/ecdn/cipher-suites/update.d.ts +1 -1
  64. package/dist/commands/ecdn/firewall/create.d.ts +1 -1
  65. package/dist/commands/ecdn/firewall/delete.d.ts +1 -1
  66. package/dist/commands/ecdn/firewall/get.d.ts +1 -1
  67. package/dist/commands/ecdn/firewall/list.d.ts +1 -1
  68. package/dist/commands/ecdn/firewall/reorder.d.ts +1 -1
  69. package/dist/commands/ecdn/firewall/update.d.ts +1 -1
  70. package/dist/commands/ecdn/logpush/jobs/create.d.ts +1 -1
  71. package/dist/commands/ecdn/logpush/jobs/delete.d.ts +1 -1
  72. package/dist/commands/ecdn/logpush/jobs/get.d.ts +1 -1
  73. package/dist/commands/ecdn/logpush/jobs/list.d.ts +1 -1
  74. package/dist/commands/ecdn/logpush/jobs/update.d.ts +1 -1
  75. package/dist/commands/ecdn/logpush/ownership.d.ts +1 -1
  76. package/dist/commands/ecdn/mrt-rules/create.d.ts +1 -1
  77. package/dist/commands/ecdn/mrt-rules/delete.d.ts +1 -1
  78. package/dist/commands/ecdn/mrt-rules/get.d.ts +1 -1
  79. package/dist/commands/ecdn/mrt-rules/rules/delete.d.ts +1 -1
  80. package/dist/commands/ecdn/mrt-rules/rules/update.d.ts +1 -1
  81. package/dist/commands/ecdn/mrt-rules/update.d.ts +1 -1
  82. package/dist/commands/ecdn/mtls/create.d.ts +1 -1
  83. package/dist/commands/ecdn/mtls/delete.d.ts +1 -1
  84. package/dist/commands/ecdn/mtls/get.d.ts +1 -1
  85. package/dist/commands/ecdn/mtls/list.d.ts +1 -1
  86. package/dist/commands/ecdn/origin-headers/delete.d.ts +1 -1
  87. package/dist/commands/ecdn/origin-headers/get.d.ts +1 -1
  88. package/dist/commands/ecdn/origin-headers/set.d.ts +1 -1
  89. package/dist/commands/ecdn/page-shield/notifications/create.d.ts +1 -1
  90. package/dist/commands/ecdn/page-shield/notifications/delete.d.ts +1 -1
  91. package/dist/commands/ecdn/page-shield/notifications/list.d.ts +1 -1
  92. package/dist/commands/ecdn/page-shield/policies/create.d.ts +1 -1
  93. package/dist/commands/ecdn/page-shield/policies/delete.d.ts +1 -1
  94. package/dist/commands/ecdn/page-shield/policies/get.d.ts +1 -1
  95. package/dist/commands/ecdn/page-shield/policies/list.d.ts +1 -1
  96. package/dist/commands/ecdn/page-shield/policies/update.d.ts +1 -1
  97. package/dist/commands/ecdn/page-shield/scripts/get.d.ts +1 -1
  98. package/dist/commands/ecdn/page-shield/scripts/list.d.ts +1 -1
  99. package/dist/commands/ecdn/rate-limit/create.d.ts +1 -1
  100. package/dist/commands/ecdn/rate-limit/delete.d.ts +1 -1
  101. package/dist/commands/ecdn/rate-limit/get.d.ts +1 -1
  102. package/dist/commands/ecdn/rate-limit/list.d.ts +1 -1
  103. package/dist/commands/ecdn/rate-limit/update.d.ts +1 -1
  104. package/dist/commands/ecdn/security/get.d.ts +1 -1
  105. package/dist/commands/ecdn/security/update.d.ts +1 -1
  106. package/dist/commands/ecdn/speed/get.d.ts +1 -1
  107. package/dist/commands/ecdn/speed/update.d.ts +1 -1
  108. package/dist/commands/ecdn/waf/groups/list.d.ts +1 -1
  109. package/dist/commands/ecdn/waf/groups/update.d.ts +1 -1
  110. package/dist/commands/ecdn/waf/managed-rules/list.d.ts +1 -1
  111. package/dist/commands/ecdn/waf/managed-rules/update.d.ts +1 -1
  112. package/dist/commands/ecdn/waf/migrate.d.ts +1 -1
  113. package/dist/commands/ecdn/waf/owasp/get.d.ts +1 -1
  114. package/dist/commands/ecdn/waf/owasp/update.d.ts +1 -1
  115. package/dist/commands/ecdn/waf/rules/get.d.ts +1 -1
  116. package/dist/commands/ecdn/waf/rules/list.d.ts +1 -1
  117. package/dist/commands/ecdn/waf/rules/update.d.ts +1 -1
  118. package/dist/commands/ecdn/waf/rulesets/list.d.ts +1 -1
  119. package/dist/commands/ecdn/waf/rulesets/update.d.ts +1 -1
  120. package/dist/commands/ecdn/zones/create.d.ts +1 -1
  121. package/dist/commands/ecdn/zones/list.d.ts +1 -1
  122. package/dist/commands/job/export.d.ts +1 -1
  123. package/dist/commands/job/import.d.ts +1 -1
  124. package/dist/commands/job/log.d.ts +1 -1
  125. package/dist/commands/job/run.d.ts +1 -1
  126. package/dist/commands/job/search.d.ts +1 -1
  127. package/dist/commands/job/wait.d.ts +1 -1
  128. package/dist/commands/logs/get.d.ts +1 -1
  129. package/dist/commands/logs/list.d.ts +1 -1
  130. package/dist/commands/logs/tail.d.ts +1 -1
  131. package/dist/commands/metrics/controller.d.ts +39 -0
  132. package/dist/commands/metrics/controller.js +24 -0
  133. package/dist/commands/metrics/controller.js.map +1 -0
  134. package/dist/commands/metrics/ecdn.d.ts +39 -0
  135. package/dist/commands/metrics/ecdn.js +24 -0
  136. package/dist/commands/metrics/ecdn.js.map +1 -0
  137. package/dist/commands/metrics/list.d.ts +21 -0
  138. package/dist/commands/metrics/list.js +58 -0
  139. package/dist/commands/metrics/list.js.map +1 -0
  140. package/dist/commands/metrics/mrt.d.ts +39 -0
  141. package/dist/commands/metrics/mrt.js +24 -0
  142. package/dist/commands/metrics/mrt.js.map +1 -0
  143. package/dist/commands/metrics/ocapi.d.ts +42 -0
  144. package/dist/commands/metrics/ocapi.js +26 -0
  145. package/dist/commands/metrics/ocapi.js.map +1 -0
  146. package/dist/commands/metrics/overall.d.ts +39 -0
  147. package/dist/commands/metrics/overall.js +24 -0
  148. package/dist/commands/metrics/overall.js.map +1 -0
  149. package/dist/commands/metrics/sales.d.ts +39 -0
  150. package/dist/commands/metrics/sales.js +24 -0
  151. package/dist/commands/metrics/sales.js.map +1 -0
  152. package/dist/commands/metrics/scapi-hooks.d.ts +39 -0
  153. package/dist/commands/metrics/scapi-hooks.js +24 -0
  154. package/dist/commands/metrics/scapi-hooks.js.map +1 -0
  155. package/dist/commands/metrics/scapi.d.ts +42 -0
  156. package/dist/commands/metrics/scapi.js +27 -0
  157. package/dist/commands/metrics/scapi.js.map +1 -0
  158. package/dist/commands/metrics/third-party.d.ts +41 -0
  159. package/dist/commands/metrics/third-party.js +25 -0
  160. package/dist/commands/metrics/third-party.js.map +1 -0
  161. package/dist/commands/scapi/custom/status.d.ts +1 -1
  162. package/dist/commands/scapi/schemas/get.d.ts +1 -1
  163. package/dist/commands/scapi/schemas/list.d.ts +1 -1
  164. package/dist/commands/slas/client/create.d.ts +1 -1
  165. package/dist/commands/slas/client/delete.d.ts +1 -1
  166. package/dist/commands/slas/client/get.d.ts +1 -1
  167. package/dist/commands/slas/client/list.d.ts +1 -1
  168. package/dist/commands/slas/client/open.d.ts +1 -1
  169. package/dist/commands/slas/client/open.js +1 -0
  170. package/dist/commands/slas/client/open.js.map +1 -1
  171. package/dist/commands/slas/client/update.d.ts +1 -1
  172. package/dist/commands/slas/token.d.ts +1 -1
  173. package/dist/commands/webdav/get.d.ts +1 -1
  174. package/dist/commands/webdav/rm.d.ts +1 -1
  175. package/dist/i18n/locales/en.d.ts +4 -0
  176. package/dist/i18n/locales/en.js +6 -2
  177. package/dist/i18n/locales/en.js.map +1 -1
  178. package/dist/i18n/locales/index.d.ts +4 -0
  179. package/dist/utils/cip/command.d.ts +1 -1
  180. package/dist/utils/cip/command.js +2 -2
  181. package/dist/utils/cip/command.js.map +1 -1
  182. package/dist/utils/ecdn/base-command.js +3 -3
  183. package/dist/utils/ecdn/base-command.js.map +1 -1
  184. package/dist/utils/ecdn/zone-command.d.ts +1 -1
  185. package/dist/utils/metrics/category-command.d.ts +86 -0
  186. package/dist/utils/metrics/category-command.js +248 -0
  187. package/dist/utils/metrics/category-command.js.map +1 -0
  188. package/dist/utils/metrics/index.d.ts +14 -0
  189. package/dist/utils/metrics/index.js +32 -0
  190. package/dist/utils/metrics/index.js.map +1 -0
  191. package/dist/utils/scapi/schemas.js +3 -3
  192. package/dist/utils/scapi/schemas.js.map +1 -1
  193. package/oclif.manifest.json +15724 -12528
  194. package/package.json +5 -2
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/utils/cip/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/utils/cip/command.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
5
5
  */
6
6
  import { Command } from '@oclif/core';
7
- import { OAuthCommand } from '@salesforce/b2c-tooling-sdk/cli';
7
+ import { ERROR_CODE, OAuthCommand } from '@salesforce/b2c-tooling-sdk/cli';
8
8
  import { createCdnZonesClient } from '@salesforce/b2c-tooling-sdk/clients';
9
9
  import { t } from '../../i18n/index.js';
10
10
  /**
@@ -48,10 +48,10 @@ export class EcdnCommand extends OAuthCommand {
48
48
  requireScapiCoordinates() {
49
49
  const { shortCode, tenantId } = this.resolvedConfig.values;
50
50
  if (!shortCode) {
51
- this.error(t('error.shortCodeRequired', 'SCAPI short code required. Provide --short-code, set SFCC_SHORTCODE, or configure short-code in dw.json.'));
51
+ this.error(t('error.shortCodeRequired', 'SCAPI short code required. Provide --short-code, set SFCC_SHORTCODE, or configure short-code in dw.json.') + this.configDocsHint(), { code: ERROR_CODE.VALIDATION });
52
52
  }
53
53
  if (!tenantId) {
54
- this.error(t('error.tenantIdRequired', 'tenant-id is required. Provide via --tenant-id flag, SFCC_TENANT_ID env var, or tenant-id in dw.json.'));
54
+ this.error(t('error.tenantIdRequired', 'tenant-id is required. Provide via --tenant-id flag, SFCC_TENANT_ID env var, or tenant-id in dw.json.') + this.configDocsHint(), { code: ERROR_CODE.VALIDATION });
55
55
  }
56
56
  return { shortCode, tenantId };
57
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base-command.js","sourceRoot":"","sources":["../../../src/utils/ecdn/base-command.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAC,OAAO,EAAC,MAAM,aAAa,CAAC;AACpC,OAAO,EAAC,YAAY,EAAC,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAC,oBAAoB,EAAsB,MAAM,qCAAqC,CAAC;AAC9F,OAAO,EAAC,CAAC,EAAC,MAAM,qBAAqB,CAAC;AAEtC;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3E,CAAC;AAED;;;GAGG;AACH,MAAM,OAAgB,WAAsC,SAAQ,YAAe;IACzE,eAAe,CAAkB;IACjC,iBAAiB,CAAkB;IAE3C;;OAEG;IACO,iBAAiB;QACzB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,MAAM,EAAC,SAAS,EAAE,QAAQ,EAAC,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC7D,IAAI,CAAC,eAAe,GAAG,oBAAoB,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC9F,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;OAEG;IACO,mBAAmB;QAC3B,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,MAAM,EAAC,SAAS,EAAE,QAAQ,EAAC,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC7D,IAAI,CAAC,iBAAiB,GAAG,oBAAoB,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;QACnH,CAAC;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED;;;OAGG;IACK,uBAAuB;QAC7B,MAAM,EAAC,SAAS,EAAE,QAAQ,EAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;QACzD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CACR,CAAC,CACC,yBAAyB,EACzB,0GAA0G,CAC3G,CACF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,CACR,CAAC,CACC,wBAAwB,EACxB,uGAAuG,CACxG,CACF,CAAC;QACJ,CAAC;QACD,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAC,CAAC;IAC/B,CAAC;CACF"}
1
+ {"version":3,"file":"base-command.js","sourceRoot":"","sources":["../../../src/utils/ecdn/base-command.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAC,OAAO,EAAC,MAAM,aAAa,CAAC;AACpC,OAAO,EAAC,UAAU,EAAE,YAAY,EAAC,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAC,oBAAoB,EAAsB,MAAM,qCAAqC,CAAC;AAC9F,OAAO,EAAC,CAAC,EAAC,MAAM,qBAAqB,CAAC;AAEtC;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3E,CAAC;AAED;;;GAGG;AACH,MAAM,OAAgB,WAAsC,SAAQ,YAAe;IACzE,eAAe,CAAkB;IACjC,iBAAiB,CAAkB;IAE3C;;OAEG;IACO,iBAAiB;QACzB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,MAAM,EAAC,SAAS,EAAE,QAAQ,EAAC,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC7D,IAAI,CAAC,eAAe,GAAG,oBAAoB,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC9F,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;OAEG;IACO,mBAAmB;QAC3B,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,MAAM,EAAC,SAAS,EAAE,QAAQ,EAAC,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC7D,IAAI,CAAC,iBAAiB,GAAG,oBAAoB,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;QACnH,CAAC;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED;;;OAGG;IACK,uBAAuB;QAC7B,MAAM,EAAC,SAAS,EAAE,QAAQ,EAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;QACzD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CACR,CAAC,CACC,yBAAyB,EACzB,0GAA0G,CAC3G,GAAG,IAAI,CAAC,cAAc,EAAE,EACzB,EAAC,IAAI,EAAE,UAAU,CAAC,UAAU,EAAC,CAC9B,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,CACR,CAAC,CACC,wBAAwB,EACxB,uGAAuG,CACxG,GAAG,IAAI,CAAC,cAAc,EAAE,EACzB,EAAC,IAAI,EAAE,UAAU,CAAC,UAAU,EAAC,CAC9B,CAAC;QACJ,CAAC;QACD,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAC,CAAC;IAC/B,CAAC;CACF"}
@@ -11,7 +11,7 @@ export declare abstract class EcdnZoneCommand<T extends typeof Command> extends
11
11
  'client-id': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
12
12
  'client-secret': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
13
13
  'auth-scope': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
- 'short-code': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
+ 'short-code': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
15
15
  'tenant-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
16
16
  'auth-methods': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
17
17
  'user-auth': import("@oclif/core/interfaces").BooleanFlag<boolean>;
@@ -0,0 +1,86 @@
1
+ import { Command } from '@oclif/core';
2
+ import { type MetricCategory, type MetricsDataResponse } from '@salesforce/b2c-tooling-sdk';
3
+ import { MetricsCommand } from './index.js';
4
+ /**
5
+ * The effective query parameters echoed back to the caller (JSON mode) so the
6
+ * resolved time bounds and filters actually sent to the API are always visible.
7
+ * Both `from` and `to` are always present: the resolver derives whichever bound
8
+ * was left open from the 24-hour default window. Filter fields appear only when
9
+ * the command defines and receives them.
10
+ */
11
+ interface MetricsQueryEcho {
12
+ category: MetricCategory;
13
+ /** Resolved start bound (ISO 8601). */
14
+ from: string;
15
+ /** Resolved end bound (ISO 8601). */
16
+ to: string;
17
+ /** Resolved start bound (epoch seconds — the API wire unit). */
18
+ fromEpochSeconds: number;
19
+ /** Resolved end bound (epoch seconds — the API wire unit). */
20
+ toEpochSeconds: number;
21
+ /** True when a bound was derived from the 24-hour default window. */
22
+ defaultedWindow?: boolean;
23
+ /** True when `from` was clamped forward to stay within the 30-day retention window. */
24
+ clampedFrom?: boolean;
25
+ thirdPartyServiceId?: string;
26
+ apiFamily?: string;
27
+ apiName?: string;
28
+ ocapiCategory?: string;
29
+ ocapiApi?: string;
30
+ }
31
+ /**
32
+ * Command output: the metrics response plus the effective query parameters.
33
+ */
34
+ export interface MetricsGetOutput extends MetricsDataResponse {
35
+ query: MetricsQueryEcho;
36
+ }
37
+ /**
38
+ * SCAPI-only filter flags (`b2c metrics scapi`).
39
+ */
40
+ export declare const scapiFilterFlags: {
41
+ 'api-family': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
42
+ 'api-name': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
43
+ };
44
+ /**
45
+ * OCAPI-only filter flags (`b2c metrics ocapi`).
46
+ */
47
+ export declare const ocapiFilterFlags: {
48
+ 'ocapi-category': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
49
+ 'ocapi-api': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
50
+ };
51
+ /**
52
+ * Third-party-only filter flag (`b2c metrics third-party`).
53
+ */
54
+ export declare const thirdPartyFilterFlags: {
55
+ 'third-party-service-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
56
+ };
57
+ /**
58
+ * Base command for a single metric category (`b2c metrics <category>`).
59
+ *
60
+ * Each category is a first-class command — mirroring `b2c cip report <name>` —
61
+ * so its `--help` shows only the flags that actually apply to it. The base holds
62
+ * the shared time-window/output flags and the entire run() body (resolve window
63
+ * → fetch → enrich tags → render); a subclass only declares its `category` and
64
+ * spreads in any category-specific filter flags. Because filter flags live on the
65
+ * subclasses, passing e.g. `--api-family` to `b2c metrics overall` is a
66
+ * "Nonexistent flag" error rather than a silently-ignored no-op.
67
+ */
68
+ export declare abstract class MetricsCategoryCommand<T extends typeof Command> extends MetricsCommand<T> {
69
+ static enableJsonFlag: boolean;
70
+ /**
71
+ * The time-window, tag, and column flags shared by every category command.
72
+ * Subclasses spread this in and add their own filter flags.
73
+ */
74
+ static timeWindowFlags: {
75
+ columns: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
76
+ extended: import("@oclif/core/interfaces").BooleanFlag<boolean>;
77
+ from: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
78
+ to: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
79
+ window: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
80
+ tags: import("@oclif/core/interfaces").BooleanFlag<boolean>;
81
+ };
82
+ /** The metric category this command fetches. */
83
+ protected abstract readonly category: MetricCategory;
84
+ run(): Promise<MetricsGetOutput>;
85
+ }
86
+ export {};
@@ -0,0 +1,248 @@
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 { Command, Flags } from '@oclif/core';
7
+ import { TableRenderer, columnFlagsFor, selectColumns, } from '@salesforce/b2c-tooling-sdk/cli';
8
+ import { getMetricsByCategory, resolveMetricsWindow, enrichMetricsTags, } from '@salesforce/b2c-tooling-sdk';
9
+ import { MetricsCommand } from './index.js';
10
+ import { t } from '../../i18n/index.js';
11
+ const COLUMNS = {
12
+ metric: {
13
+ header: 'Metric',
14
+ get: (r) => r.metric,
15
+ },
16
+ series: {
17
+ header: 'Series',
18
+ get: (r) => r.series,
19
+ },
20
+ unit: {
21
+ header: 'Unit',
22
+ get: (r) => r.unit || '-',
23
+ extended: true,
24
+ },
25
+ latestValue: {
26
+ header: 'Latest Value',
27
+ get: (r) => r.latestValue,
28
+ },
29
+ points: {
30
+ header: 'Points',
31
+ get: (r) => String(r.points),
32
+ extended: true,
33
+ },
34
+ latestTimestamp: {
35
+ header: 'Latest Timestamp',
36
+ get: (r) => r.latestTimestamp,
37
+ },
38
+ tags: {
39
+ header: 'Tags',
40
+ get: (r) => r.tags || '-',
41
+ extended: true,
42
+ },
43
+ };
44
+ const DEFAULT_COLUMNS = ['metric', 'series', 'latestValue', 'latestTimestamp'];
45
+ const tableRenderer = new TableRenderer(COLUMNS);
46
+ /**
47
+ * The time-window and output flags shared by every `b2c metrics <category>`
48
+ * command.
49
+ */
50
+ const timeWindowFlags = {
51
+ from: Flags.string({
52
+ description: t('flags.metrics.from.description', 'Start of the time window: relative (e.g. "1h", "7d" ago) or ISO 8601 (e.g. "2026-01-25T10:00:00")', {}),
53
+ }),
54
+ to: Flags.string({
55
+ description: t('flags.metrics.to.description', 'End of the time window: relative (e.g. "6h" ago) or ISO 8601. Defaults to 24h after --from (capped at now)', {}),
56
+ }),
57
+ window: Flags.string({
58
+ aliases: ['for'],
59
+ description: t('flags.metrics.window.description', 'Window duration (e.g. "1h", "30m", "2d"). With --from: window forward from it; with --to: window back from it; alone: the last <window>. Defaults to 24h', {}),
60
+ }),
61
+ tags: Flags.boolean({
62
+ allowNo: true,
63
+ default: true,
64
+ description: t('flags.metrics.tags.description', 'Add a structured "tags" object (realm, environment, applied filters, and per-series dimensions like apiFamily/host/cacheStatus) to each series. On by default; use --no-tags for the raw API shape', {}),
65
+ }),
66
+ };
67
+ /**
68
+ * SCAPI-only filter flags (`b2c metrics scapi`).
69
+ */
70
+ export const scapiFilterFlags = {
71
+ 'api-family': Flags.string({
72
+ description: t('flags.metrics.apiFamily.description', 'Filter SCAPI metrics by API family', {}),
73
+ }),
74
+ 'api-name': Flags.string({
75
+ description: t('flags.metrics.apiName.description', 'Filter SCAPI metrics by API name', {}),
76
+ }),
77
+ };
78
+ /**
79
+ * OCAPI-only filter flags (`b2c metrics ocapi`).
80
+ */
81
+ export const ocapiFilterFlags = {
82
+ 'ocapi-category': Flags.string({
83
+ description: t('flags.metrics.ocapiCategory.description', 'Filter OCAPI metrics by category', {}),
84
+ }),
85
+ 'ocapi-api': Flags.string({
86
+ description: t('flags.metrics.ocapiApi.description', 'Filter OCAPI metrics by API', {}),
87
+ }),
88
+ };
89
+ /**
90
+ * Third-party-only filter flag (`b2c metrics third-party`).
91
+ */
92
+ export const thirdPartyFilterFlags = {
93
+ 'third-party-service-id': Flags.string({
94
+ description: t('flags.metrics.thirdPartyServiceId.description', 'Filter third-party metrics by service ID', {}),
95
+ }),
96
+ };
97
+ /**
98
+ * Base command for a single metric category (`b2c metrics <category>`).
99
+ *
100
+ * Each category is a first-class command — mirroring `b2c cip report <name>` —
101
+ * so its `--help` shows only the flags that actually apply to it. The base holds
102
+ * the shared time-window/output flags and the entire run() body (resolve window
103
+ * → fetch → enrich tags → render); a subclass only declares its `category` and
104
+ * spreads in any category-specific filter flags. Because filter flags live on the
105
+ * subclasses, passing e.g. `--api-family` to `b2c metrics overall` is a
106
+ * "Nonexistent flag" error rather than a silently-ignored no-op.
107
+ */
108
+ export class MetricsCategoryCommand extends MetricsCommand {
109
+ static enableJsonFlag = true;
110
+ /**
111
+ * The time-window, tag, and column flags shared by every category command.
112
+ * Subclasses spread this in and add their own filter flags.
113
+ */
114
+ static timeWindowFlags = {
115
+ ...timeWindowFlags,
116
+ ...columnFlagsFor(COLUMNS),
117
+ };
118
+ async run() {
119
+ this.requireOAuthCredentials();
120
+ const { category } = this;
121
+ // Filter flags are declared per-subclass, so only the relevant ones exist
122
+ // here; reading a flag a category does not define yields undefined.
123
+ const flags = this.flags;
124
+ const fromFlag = flags.from;
125
+ const toFlag = flags.to;
126
+ const windowFlag = flags.window;
127
+ const tagsFlag = flags.tags;
128
+ const thirdPartyServiceId = flags['third-party-service-id'];
129
+ const apiFamily = flags['api-family'];
130
+ const apiName = flags['api-name'];
131
+ const ocapiCategory = flags['ocapi-category'];
132
+ const ocapiApi = flags['ocapi-api'];
133
+ // Resolve the requested bounds. --from/--to/--window each accept relative
134
+ // durations ("1h", "7d" ago) or ISO 8601. The resolver always produces an
135
+ // explicit from+to pair, filling any bound left open from the 24-hour default
136
+ // window — the Metrics API pairs a missing `to` with its own `now` and caps
137
+ // the window at 24h, so an open-ended `from` older than 24h would 400.
138
+ let window;
139
+ try {
140
+ window = resolveMetricsWindow({ from: fromFlag, to: toFlag, window: windowFlag });
141
+ }
142
+ catch (error) {
143
+ this.error(error instanceof Error ? error.message : String(error));
144
+ }
145
+ if (window.clampedFrom) {
146
+ this.warn(t('commands.metrics.get.clampedFrom', 'Requested start was at the edge of the 30-day retention window; adjusted to {{from}} to stay within range.', { from: window.fromIso }));
147
+ }
148
+ const query = {
149
+ category,
150
+ from: window.fromIso,
151
+ to: window.toIso,
152
+ fromEpochSeconds: window.fromEpochSeconds,
153
+ toEpochSeconds: window.toEpochSeconds,
154
+ defaultedWindow: window.defaultedWindow || undefined,
155
+ clampedFrom: window.clampedFrom || undefined,
156
+ thirdPartyServiceId,
157
+ apiFamily,
158
+ apiName,
159
+ ocapiCategory,
160
+ ocapiApi,
161
+ };
162
+ if (!this.jsonEnabled()) {
163
+ const rangeLabel = window.defaultedWindow
164
+ ? `${window.fromIso} → ${window.toIso}, default 24h window`
165
+ : `${window.fromIso} → ${window.toIso}`;
166
+ this.log(t('commands.metrics.get.fetching', 'Fetching {{category}} metrics ({{range}})...', {
167
+ category,
168
+ range: rangeLabel,
169
+ }));
170
+ }
171
+ const client = this.getMetricsClient();
172
+ const tenantId = this.requireTenantId();
173
+ let response;
174
+ try {
175
+ response = await getMetricsByCategory(client, tenantId, category, {
176
+ from: window.from,
177
+ to: window.to,
178
+ thirdPartyServiceId,
179
+ apiFamily,
180
+ apiName,
181
+ ocapiCategory,
182
+ ocapiApi,
183
+ });
184
+ }
185
+ catch (error) {
186
+ this.error(t('commands.metrics.get.error', 'Failed to fetch {{category}} metrics: {{message}}', {
187
+ category,
188
+ message: error instanceof Error ? error.message : String(error),
189
+ }));
190
+ }
191
+ // Attach a structured `tags` object to each series (on by default; --no-tags
192
+ // opts out to the raw API shape). Additive: id/name/data are preserved, so
193
+ // consumers that ignore tags are unaffected. Applied filters are folded into
194
+ // the context so drilled-down series are tagged authoritatively.
195
+ if (tagsFlag) {
196
+ response = enrichMetricsTags(response, category, {
197
+ tenantId,
198
+ apiFamily,
199
+ apiName,
200
+ ocapiCategory,
201
+ ocapiApi,
202
+ thirdPartyServiceId,
203
+ });
204
+ }
205
+ const output = { ...response, query };
206
+ if (this.jsonEnabled()) {
207
+ return output;
208
+ }
209
+ if (!response.data || response.data.length === 0) {
210
+ this.log(t('commands.metrics.get.noMetrics', 'No metrics data available for category {{category}}.', {
211
+ category,
212
+ }));
213
+ return output;
214
+ }
215
+ // Flatten metrics data for table display
216
+ const rows = [];
217
+ for (const metric of response.data) {
218
+ for (const series of metric.dataSeries) {
219
+ const latestPoint = series.data.at(-1);
220
+ // series.tags is present only when --tags enriched the response.
221
+ const seriesTags = series.tags;
222
+ rows.push({
223
+ metric: metric.title,
224
+ series: series.name,
225
+ unit: metric.unit || '',
226
+ latestValue: latestPoint ? String(latestPoint.value) : '-',
227
+ points: series.data.length,
228
+ latestTimestamp: latestPoint ? new Date(latestPoint.timestamp).toISOString() : '-',
229
+ tags: seriesTags
230
+ ? Object.entries(seriesTags)
231
+ .map(([k, v]) => `${k}=${v}`)
232
+ .join(' ')
233
+ : '',
234
+ });
235
+ }
236
+ }
237
+ this.log(t('commands.metrics.get.count', 'Found {{count}} metric series:', {
238
+ count: rows.length,
239
+ }));
240
+ this.log('');
241
+ // Tags are on by default in JSON/machine output, but kept out of the default
242
+ // human table to avoid clutter; the Tags column is extended-only (shown with
243
+ // -x, or selected explicitly via -c tags).
244
+ tableRenderer.render(rows, selectColumns(this.flags, tableRenderer, DEFAULT_COLUMNS, this.warn.bind(this)));
245
+ return output;
246
+ }
247
+ }
248
+ //# sourceMappingURL=category-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"category-command.js","sourceRoot":"","sources":["../../../src/utils/metrics/category-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { Command } from '@oclif/core';
2
+ import { OAuthCommand } from '@salesforce/b2c-tooling-sdk/cli';
3
+ import { type MetricsClient } from '@salesforce/b2c-tooling-sdk/clients';
4
+ export { getApiErrorMessage as formatApiError } from '@salesforce/b2c-tooling-sdk/clients';
5
+ /**
6
+ * Base command for Metrics API operations.
7
+ * Provides common flags and helper methods for interacting with the SCAPI Metrics API.
8
+ */
9
+ export declare abstract class MetricsCommand<T extends typeof Command> extends OAuthCommand<T> {
10
+ /**
11
+ * Get the Metrics client, ensuring short code and tenant ID are configured.
12
+ */
13
+ protected getMetricsClient(): MetricsClient;
14
+ }
@@ -0,0 +1,32 @@
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 { Command } from '@oclif/core';
7
+ import { OAuthCommand } from '@salesforce/b2c-tooling-sdk/cli';
8
+ import { createMetricsClient } from '@salesforce/b2c-tooling-sdk/clients';
9
+ import { t } from '../../i18n/index.js';
10
+ // Re-export formatApiError alias for consistency with scapi utils
11
+ export { getApiErrorMessage as formatApiError } from '@salesforce/b2c-tooling-sdk/clients';
12
+ /**
13
+ * Base command for Metrics API operations.
14
+ * Provides common flags and helper methods for interacting with the SCAPI Metrics API.
15
+ */
16
+ export class MetricsCommand extends OAuthCommand {
17
+ /**
18
+ * Get the Metrics client, ensuring short code and tenant ID are configured.
19
+ */
20
+ getMetricsClient() {
21
+ const { shortCode, tenantId } = this.resolvedConfig.values;
22
+ if (!shortCode) {
23
+ this.error(t('error.shortCodeRequired', 'SCAPI short code required. Provide --short-code, set SFCC_SHORTCODE, or configure short-code in dw.json.'));
24
+ }
25
+ if (!tenantId) {
26
+ this.error(t('error.tenantIdRequired', 'tenant-id is required. Provide via --tenant-id flag, SFCC_TENANT_ID env var, or tenant-id in dw.json.'));
27
+ }
28
+ const oauthStrategy = this.getOAuthStrategy();
29
+ return createMetricsClient({ shortCode, tenantId }, oauthStrategy);
30
+ }
31
+ }
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/metrics/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAC,OAAO,EAAC,MAAM,aAAa,CAAC;AACpC,OAAO,EAAC,YAAY,EAAC,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAC,mBAAmB,EAAqB,MAAM,qCAAqC,CAAC;AAC5F,OAAO,EAAC,CAAC,EAAC,MAAM,qBAAqB,CAAC;AAEtC,kEAAkE;AAClE,OAAO,EAAC,kBAAkB,IAAI,cAAc,EAAC,MAAM,qCAAqC,CAAC;AAEzF;;;GAGG;AACH,MAAM,OAAgB,cAAyC,SAAQ,YAAe;IACpF;;OAEG;IACO,gBAAgB;QACxB,MAAM,EAAC,SAAS,EAAE,QAAQ,EAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;QAEzD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CACR,CAAC,CACC,yBAAyB,EACzB,0GAA0G,CAC3G,CACF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,CACR,CAAC,CACC,wBAAwB,EACxB,uGAAuG,CACxG,CACF,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9C,OAAO,mBAAmB,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAC,EAAE,aAAa,CAAC,CAAC;IACnE,CAAC;CACF"}
@@ -4,7 +4,7 @@
4
4
  * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
5
5
  */
6
6
  import { Command } from '@oclif/core';
7
- import { OAuthCommand } from '@salesforce/b2c-tooling-sdk/cli';
7
+ import { ERROR_CODE, OAuthCommand } from '@salesforce/b2c-tooling-sdk/cli';
8
8
  import { createScapiSchemasClient } from '@salesforce/b2c-tooling-sdk/clients';
9
9
  import { t } from '../../i18n/index.js';
10
10
  // Backwards-compatible alias for SDK's getApiErrorMessage; existing call sites
@@ -21,10 +21,10 @@ export class ScapiSchemasCommand extends OAuthCommand {
21
21
  getSchemasClient() {
22
22
  const { shortCode, tenantId } = this.resolvedConfig.values;
23
23
  if (!shortCode) {
24
- this.error(t('error.shortCodeRequired', 'SCAPI short code required. Provide --short-code, set SFCC_SHORTCODE, or configure short-code in dw.json.'));
24
+ this.error(t('error.shortCodeRequired', 'SCAPI short code required. Provide --short-code, set SFCC_SHORTCODE, or configure short-code in dw.json.') + this.configDocsHint(), { code: ERROR_CODE.VALIDATION });
25
25
  }
26
26
  if (!tenantId) {
27
- this.error(t('error.tenantIdRequired', 'tenant-id is required. Provide via --tenant-id flag, SFCC_TENANT_ID env var, or tenant-id in dw.json.'));
27
+ this.error(t('error.tenantIdRequired', 'tenant-id is required. Provide via --tenant-id flag, SFCC_TENANT_ID env var, or tenant-id in dw.json.') + this.configDocsHint(), { code: ERROR_CODE.VALIDATION });
28
28
  }
29
29
  const oauthStrategy = this.getOAuthStrategy();
30
30
  return createScapiSchemasClient({ shortCode, tenantId }, oauthStrategy);
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/utils/scapi/schemas.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAC,OAAO,EAAC,MAAM,aAAa,CAAC;AACpC,OAAO,EAAC,YAAY,EAAC,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAC,wBAAwB,EAA0B,MAAM,qCAAqC,CAAC;AACtG,OAAO,EAAC,CAAC,EAAC,MAAM,qBAAqB,CAAC;AAEtC,+EAA+E;AAC/E,kFAAkF;AAClF,OAAO,EAAC,kBAAkB,IAAI,cAAc,EAAC,MAAM,qCAAqC,CAAC;AAEzF;;;GAGG;AACH,MAAM,OAAgB,mBAA8C,SAAQ,YAAe;IACzF;;OAEG;IACO,gBAAgB;QACxB,MAAM,EAAC,SAAS,EAAE,QAAQ,EAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;QAEzD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CACR,CAAC,CACC,yBAAyB,EACzB,0GAA0G,CAC3G,CACF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,CACR,CAAC,CACC,wBAAwB,EACxB,uGAAuG,CACxG,CACF,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9C,OAAO,wBAAwB,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAC,EAAE,aAAa,CAAC,CAAC;IACxE,CAAC;CACF"}
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/utils/scapi/schemas.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAC,OAAO,EAAC,MAAM,aAAa,CAAC;AACpC,OAAO,EAAC,UAAU,EAAE,YAAY,EAAC,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAC,wBAAwB,EAA0B,MAAM,qCAAqC,CAAC;AACtG,OAAO,EAAC,CAAC,EAAC,MAAM,qBAAqB,CAAC;AAEtC,+EAA+E;AAC/E,kFAAkF;AAClF,OAAO,EAAC,kBAAkB,IAAI,cAAc,EAAC,MAAM,qCAAqC,CAAC;AAEzF;;;GAGG;AACH,MAAM,OAAgB,mBAA8C,SAAQ,YAAe;IACzF;;OAEG;IACO,gBAAgB;QACxB,MAAM,EAAC,SAAS,EAAE,QAAQ,EAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;QAEzD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CACR,CAAC,CACC,yBAAyB,EACzB,0GAA0G,CAC3G,GAAG,IAAI,CAAC,cAAc,EAAE,EACzB,EAAC,IAAI,EAAE,UAAU,CAAC,UAAU,EAAC,CAC9B,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,CACR,CAAC,CACC,wBAAwB,EACxB,uGAAuG,CACxG,GAAG,IAAI,CAAC,cAAc,EAAE,EACzB,EAAC,IAAI,EAAE,UAAU,CAAC,UAAU,EAAC,CAC9B,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9C,OAAO,wBAAwB,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAC,EAAE,aAAa,CAAC,CAAC;IACxE,CAAC;CACF"}