@salesforce/b2c-cli 0.2.1 → 0.4.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.
- package/README.md +72 -3
- package/bin/dev.cmd +3 -0
- package/bin/dev.js +14 -1
- package/dist/commands/am/clients/create.d.ts +28 -0
- package/dist/commands/am/clients/create.js +156 -0
- package/dist/commands/am/clients/create.js.map +1 -0
- package/dist/commands/am/clients/delete.d.ts +13 -0
- package/dist/commands/am/clients/delete.js +29 -0
- package/dist/commands/am/clients/delete.js.map +1 -0
- package/dist/commands/am/clients/get.d.ts +26 -0
- package/dist/commands/am/clients/get.js +186 -0
- package/dist/commands/am/clients/get.js.map +1 -0
- package/dist/commands/am/clients/list.d.ts +18 -0
- package/dist/commands/am/clients/list.js +139 -0
- package/dist/commands/am/clients/list.js.map +1 -0
- package/dist/commands/am/clients/password.d.ts +16 -0
- package/dist/commands/am/clients/password.js +51 -0
- package/dist/commands/am/clients/password.js.map +1 -0
- package/dist/commands/am/clients/update.d.ts +34 -0
- package/dist/commands/am/clients/update.js +146 -0
- package/dist/commands/am/clients/update.js.map +1 -0
- package/dist/commands/am/orgs/get.d.ts +23 -0
- package/dist/commands/am/orgs/get.js +175 -0
- package/dist/commands/am/orgs/get.js.map +1 -0
- package/dist/commands/am/orgs/list.d.ts +18 -0
- package/dist/commands/am/orgs/list.js +149 -0
- package/dist/commands/am/orgs/list.js.map +1 -0
- package/dist/commands/am/roles/get.d.ts +15 -0
- package/dist/commands/am/roles/get.js +63 -0
- package/dist/commands/am/roles/get.js.map +1 -0
- package/dist/commands/am/roles/grant.d.ts +18 -0
- package/dist/commands/am/roles/grant.js +66 -0
- package/dist/commands/am/roles/grant.js.map +1 -0
- package/dist/commands/am/roles/list.d.ts +22 -0
- package/dist/commands/am/roles/list.js +142 -0
- package/dist/commands/am/roles/list.js.map +1 -0
- package/dist/commands/am/roles/revoke.d.ts +18 -0
- package/dist/commands/am/roles/revoke.js +66 -0
- package/dist/commands/am/roles/revoke.js.map +1 -0
- package/dist/commands/am/users/create.d.ts +17 -0
- package/dist/commands/am/users/create.js +56 -0
- package/dist/commands/am/users/create.js.map +1 -0
- package/dist/commands/am/users/delete.d.ts +16 -0
- package/dist/commands/am/users/delete.js +63 -0
- package/dist/commands/am/users/delete.js.map +1 -0
- package/dist/commands/am/users/get.d.ts +23 -0
- package/dist/commands/am/users/get.js +161 -0
- package/dist/commands/am/users/get.js.map +1 -0
- package/dist/commands/am/users/list.d.ts +21 -0
- package/dist/commands/am/users/list.js +162 -0
- package/dist/commands/am/users/list.js.map +1 -0
- package/dist/commands/am/users/reset.d.ts +13 -0
- package/dist/commands/am/users/reset.js +43 -0
- package/dist/commands/am/users/reset.js.map +1 -0
- package/dist/commands/am/users/update.d.ts +18 -0
- package/dist/commands/am/users/update.js +63 -0
- package/dist/commands/am/users/update.js.map +1 -0
- package/dist/commands/auth/token.js +2 -2
- package/dist/commands/auth/token.js.map +1 -1
- package/dist/commands/code/activate.d.ts +5 -0
- package/dist/commands/code/activate.js +2 -2
- package/dist/commands/code/activate.js.map +1 -1
- package/dist/commands/code/delete.d.ts +5 -0
- package/dist/commands/code/delete.js +2 -2
- package/dist/commands/code/delete.js.map +1 -1
- package/dist/commands/code/deploy.d.ts +5 -0
- package/dist/commands/code/deploy.js +12 -3
- package/dist/commands/code/deploy.js.map +1 -1
- package/dist/commands/code/list.js +2 -2
- package/dist/commands/code/list.js.map +1 -1
- package/dist/commands/code/watch.d.ts +5 -0
- package/dist/commands/code/watch.js +6 -3
- package/dist/commands/code/watch.js.map +1 -1
- package/dist/commands/content/export.d.ts +57 -0
- package/dist/commands/content/export.js +217 -0
- package/dist/commands/content/export.js.map +1 -0
- package/dist/commands/content/list.d.ts +56 -0
- package/dist/commands/content/list.js +133 -0
- package/dist/commands/content/list.js.map +1 -0
- package/dist/commands/docs/download.d.ts +6 -1
- package/dist/commands/docs/download.js +1 -1
- package/dist/commands/docs/download.js.map +1 -1
- package/dist/commands/docs/read.d.ts +1 -1
- package/dist/commands/docs/read.js +1 -1
- package/dist/commands/docs/read.js.map +1 -1
- package/dist/commands/docs/schema.d.ts +1 -1
- package/dist/commands/docs/schema.js +1 -1
- package/dist/commands/docs/schema.js.map +1 -1
- package/dist/commands/docs/search.d.ts +1 -1
- package/dist/commands/docs/search.js +1 -1
- package/dist/commands/docs/search.js.map +1 -1
- package/dist/commands/ecdn/cache/purge.d.ts +1 -0
- package/dist/commands/ecdn/cache/purge.js +2 -2
- package/dist/commands/ecdn/cache/purge.js.map +1 -1
- package/dist/commands/ecdn/certificates/add.d.ts +1 -0
- package/dist/commands/ecdn/certificates/add.js +2 -2
- package/dist/commands/ecdn/certificates/add.js.map +1 -1
- package/dist/commands/ecdn/certificates/delete.d.ts +1 -0
- package/dist/commands/ecdn/certificates/delete.js +2 -2
- package/dist/commands/ecdn/certificates/delete.js.map +1 -1
- package/dist/commands/ecdn/certificates/list.d.ts +1 -0
- package/dist/commands/ecdn/certificates/list.js +2 -2
- package/dist/commands/ecdn/certificates/list.js.map +1 -1
- package/dist/commands/ecdn/certificates/update.d.ts +1 -0
- package/dist/commands/ecdn/certificates/update.js +2 -2
- package/dist/commands/ecdn/certificates/update.js.map +1 -1
- package/dist/commands/ecdn/certificates/validate.d.ts +1 -0
- package/dist/commands/ecdn/certificates/validate.js +2 -2
- package/dist/commands/ecdn/certificates/validate.js.map +1 -1
- package/dist/commands/ecdn/cipher-suites/get.d.ts +1 -0
- package/dist/commands/ecdn/cipher-suites/get.js +2 -2
- package/dist/commands/ecdn/cipher-suites/get.js.map +1 -1
- package/dist/commands/ecdn/cipher-suites/update.d.ts +1 -0
- package/dist/commands/ecdn/cipher-suites/update.js +2 -2
- package/dist/commands/ecdn/cipher-suites/update.js.map +1 -1
- package/dist/commands/ecdn/logpush/jobs/create.d.ts +1 -0
- package/dist/commands/ecdn/logpush/jobs/create.js +2 -2
- package/dist/commands/ecdn/logpush/jobs/create.js.map +1 -1
- package/dist/commands/ecdn/logpush/jobs/delete.d.ts +1 -0
- package/dist/commands/ecdn/logpush/jobs/delete.js +2 -2
- package/dist/commands/ecdn/logpush/jobs/delete.js.map +1 -1
- package/dist/commands/ecdn/logpush/jobs/get.d.ts +1 -0
- package/dist/commands/ecdn/logpush/jobs/get.js +2 -2
- package/dist/commands/ecdn/logpush/jobs/get.js.map +1 -1
- package/dist/commands/ecdn/logpush/jobs/list.d.ts +1 -0
- package/dist/commands/ecdn/logpush/jobs/list.js +2 -2
- package/dist/commands/ecdn/logpush/jobs/list.js.map +1 -1
- package/dist/commands/ecdn/logpush/jobs/update.d.ts +1 -0
- package/dist/commands/ecdn/logpush/jobs/update.js +2 -2
- package/dist/commands/ecdn/logpush/jobs/update.js.map +1 -1
- package/dist/commands/ecdn/logpush/ownership.d.ts +1 -0
- package/dist/commands/ecdn/logpush/ownership.js +2 -2
- package/dist/commands/ecdn/logpush/ownership.js.map +1 -1
- package/dist/commands/ecdn/mrt-rules/create.d.ts +1 -0
- package/dist/commands/ecdn/mrt-rules/create.js +2 -2
- package/dist/commands/ecdn/mrt-rules/create.js.map +1 -1
- package/dist/commands/ecdn/mrt-rules/delete.d.ts +1 -0
- package/dist/commands/ecdn/mrt-rules/delete.js +2 -2
- package/dist/commands/ecdn/mrt-rules/delete.js.map +1 -1
- package/dist/commands/ecdn/mrt-rules/get.d.ts +1 -0
- package/dist/commands/ecdn/mrt-rules/get.js +2 -2
- package/dist/commands/ecdn/mrt-rules/get.js.map +1 -1
- package/dist/commands/ecdn/mrt-rules/rules/delete.d.ts +1 -0
- package/dist/commands/ecdn/mrt-rules/rules/delete.js +2 -2
- package/dist/commands/ecdn/mrt-rules/rules/delete.js.map +1 -1
- package/dist/commands/ecdn/mrt-rules/rules/update.d.ts +1 -0
- package/dist/commands/ecdn/mrt-rules/rules/update.js +2 -2
- package/dist/commands/ecdn/mrt-rules/rules/update.js.map +1 -1
- package/dist/commands/ecdn/mrt-rules/update.d.ts +1 -0
- package/dist/commands/ecdn/mrt-rules/update.js +2 -2
- package/dist/commands/ecdn/mrt-rules/update.js.map +1 -1
- package/dist/commands/ecdn/mtls/create.d.ts +1 -0
- package/dist/commands/ecdn/mtls/create.js +2 -2
- package/dist/commands/ecdn/mtls/create.js.map +1 -1
- package/dist/commands/ecdn/mtls/delete.d.ts +1 -0
- package/dist/commands/ecdn/mtls/delete.js +2 -2
- package/dist/commands/ecdn/mtls/delete.js.map +1 -1
- package/dist/commands/ecdn/mtls/get.d.ts +1 -0
- package/dist/commands/ecdn/mtls/get.js +2 -2
- package/dist/commands/ecdn/mtls/get.js.map +1 -1
- package/dist/commands/ecdn/mtls/list.d.ts +1 -0
- package/dist/commands/ecdn/mtls/list.js +2 -2
- package/dist/commands/ecdn/mtls/list.js.map +1 -1
- package/dist/commands/ecdn/origin-headers/delete.d.ts +1 -0
- package/dist/commands/ecdn/origin-headers/delete.js +2 -2
- package/dist/commands/ecdn/origin-headers/delete.js.map +1 -1
- package/dist/commands/ecdn/origin-headers/get.d.ts +1 -0
- package/dist/commands/ecdn/origin-headers/get.js +2 -2
- package/dist/commands/ecdn/origin-headers/get.js.map +1 -1
- package/dist/commands/ecdn/origin-headers/set.d.ts +1 -0
- package/dist/commands/ecdn/origin-headers/set.js +2 -2
- package/dist/commands/ecdn/origin-headers/set.js.map +1 -1
- package/dist/commands/ecdn/page-shield/notifications/create.d.ts +1 -0
- package/dist/commands/ecdn/page-shield/notifications/create.js +2 -2
- package/dist/commands/ecdn/page-shield/notifications/create.js.map +1 -1
- package/dist/commands/ecdn/page-shield/notifications/delete.d.ts +1 -0
- package/dist/commands/ecdn/page-shield/notifications/delete.js +2 -2
- package/dist/commands/ecdn/page-shield/notifications/delete.js.map +1 -1
- package/dist/commands/ecdn/page-shield/notifications/list.d.ts +1 -0
- package/dist/commands/ecdn/page-shield/notifications/list.js +2 -2
- package/dist/commands/ecdn/page-shield/notifications/list.js.map +1 -1
- package/dist/commands/ecdn/page-shield/policies/create.d.ts +1 -0
- package/dist/commands/ecdn/page-shield/policies/create.js +2 -2
- package/dist/commands/ecdn/page-shield/policies/create.js.map +1 -1
- package/dist/commands/ecdn/page-shield/policies/delete.d.ts +1 -0
- package/dist/commands/ecdn/page-shield/policies/delete.js +2 -2
- package/dist/commands/ecdn/page-shield/policies/delete.js.map +1 -1
- package/dist/commands/ecdn/page-shield/policies/get.d.ts +1 -0
- package/dist/commands/ecdn/page-shield/policies/get.js +2 -2
- package/dist/commands/ecdn/page-shield/policies/get.js.map +1 -1
- package/dist/commands/ecdn/page-shield/policies/list.d.ts +1 -0
- package/dist/commands/ecdn/page-shield/policies/list.js +2 -2
- package/dist/commands/ecdn/page-shield/policies/list.js.map +1 -1
- package/dist/commands/ecdn/page-shield/policies/update.d.ts +1 -0
- package/dist/commands/ecdn/page-shield/policies/update.js +2 -2
- package/dist/commands/ecdn/page-shield/policies/update.js.map +1 -1
- package/dist/commands/ecdn/page-shield/scripts/get.d.ts +1 -0
- package/dist/commands/ecdn/page-shield/scripts/get.js +2 -2
- package/dist/commands/ecdn/page-shield/scripts/get.js.map +1 -1
- package/dist/commands/ecdn/page-shield/scripts/list.d.ts +1 -0
- package/dist/commands/ecdn/page-shield/scripts/list.js +2 -2
- package/dist/commands/ecdn/page-shield/scripts/list.js.map +1 -1
- package/dist/commands/ecdn/security/get.d.ts +1 -0
- package/dist/commands/ecdn/security/get.js +2 -2
- package/dist/commands/ecdn/security/get.js.map +1 -1
- package/dist/commands/ecdn/security/update.d.ts +1 -0
- package/dist/commands/ecdn/security/update.js +2 -2
- package/dist/commands/ecdn/security/update.js.map +1 -1
- package/dist/commands/ecdn/speed/get.d.ts +1 -0
- package/dist/commands/ecdn/speed/get.js +2 -2
- package/dist/commands/ecdn/speed/get.js.map +1 -1
- package/dist/commands/ecdn/speed/update.d.ts +1 -0
- package/dist/commands/ecdn/speed/update.js +2 -2
- package/dist/commands/ecdn/speed/update.js.map +1 -1
- package/dist/commands/ecdn/waf/groups/list.d.ts +1 -0
- package/dist/commands/ecdn/waf/groups/list.js +2 -2
- package/dist/commands/ecdn/waf/groups/list.js.map +1 -1
- package/dist/commands/ecdn/waf/groups/update.d.ts +1 -0
- package/dist/commands/ecdn/waf/groups/update.js +2 -2
- package/dist/commands/ecdn/waf/groups/update.js.map +1 -1
- package/dist/commands/ecdn/waf/managed-rules/list.d.ts +1 -0
- package/dist/commands/ecdn/waf/managed-rules/list.js +2 -2
- package/dist/commands/ecdn/waf/managed-rules/list.js.map +1 -1
- package/dist/commands/ecdn/waf/managed-rules/update.d.ts +1 -0
- package/dist/commands/ecdn/waf/managed-rules/update.js +2 -2
- package/dist/commands/ecdn/waf/managed-rules/update.js.map +1 -1
- package/dist/commands/ecdn/waf/migrate.d.ts +1 -0
- package/dist/commands/ecdn/waf/migrate.js +2 -2
- package/dist/commands/ecdn/waf/migrate.js.map +1 -1
- package/dist/commands/ecdn/waf/owasp/get.d.ts +1 -0
- package/dist/commands/ecdn/waf/owasp/get.js +2 -2
- package/dist/commands/ecdn/waf/owasp/get.js.map +1 -1
- package/dist/commands/ecdn/waf/owasp/update.d.ts +1 -0
- package/dist/commands/ecdn/waf/owasp/update.js +2 -2
- package/dist/commands/ecdn/waf/owasp/update.js.map +1 -1
- package/dist/commands/ecdn/waf/rules/get.d.ts +1 -0
- package/dist/commands/ecdn/waf/rules/get.js +2 -2
- package/dist/commands/ecdn/waf/rules/get.js.map +1 -1
- package/dist/commands/ecdn/waf/rules/list.d.ts +1 -0
- package/dist/commands/ecdn/waf/rules/list.js +2 -2
- package/dist/commands/ecdn/waf/rules/list.js.map +1 -1
- package/dist/commands/ecdn/waf/rules/update.d.ts +1 -0
- package/dist/commands/ecdn/waf/rules/update.js +2 -2
- package/dist/commands/ecdn/waf/rules/update.js.map +1 -1
- package/dist/commands/ecdn/waf/rulesets/list.d.ts +1 -0
- package/dist/commands/ecdn/waf/rulesets/list.js +2 -2
- package/dist/commands/ecdn/waf/rulesets/list.js.map +1 -1
- package/dist/commands/ecdn/waf/rulesets/update.d.ts +1 -0
- package/dist/commands/ecdn/waf/rulesets/update.js +2 -2
- package/dist/commands/ecdn/waf/rulesets/update.js.map +1 -1
- package/dist/commands/ecdn/zones/create.d.ts +1 -0
- package/dist/commands/ecdn/zones/create.js +2 -2
- package/dist/commands/ecdn/zones/create.js.map +1 -1
- package/dist/commands/ecdn/zones/list.d.ts +1 -0
- package/dist/commands/ecdn/zones/list.js +2 -2
- package/dist/commands/ecdn/zones/list.js.map +1 -1
- package/dist/commands/job/export.d.ts +5 -0
- package/dist/commands/job/export.js +2 -2
- package/dist/commands/job/export.js.map +1 -1
- package/dist/commands/job/import.d.ts +5 -0
- package/dist/commands/job/import.js +2 -2
- package/dist/commands/job/import.js.map +1 -1
- package/dist/commands/job/run.d.ts +5 -0
- package/dist/commands/job/run.js +2 -2
- package/dist/commands/job/run.js.map +1 -1
- package/dist/commands/job/search.d.ts +5 -0
- package/dist/commands/job/search.js +2 -2
- package/dist/commands/job/search.js.map +1 -1
- package/dist/commands/job/wait.d.ts +5 -0
- package/dist/commands/job/wait.js +2 -2
- package/dist/commands/job/wait.js.map +1 -1
- package/dist/commands/logs/get.d.ts +50 -0
- package/dist/commands/logs/get.js +122 -0
- package/dist/commands/logs/get.js.map +1 -0
- package/dist/commands/logs/list.d.ts +45 -0
- package/dist/commands/logs/list.js +94 -0
- package/dist/commands/logs/list.js.map +1 -0
- package/dist/commands/logs/tail.d.ts +44 -0
- package/dist/commands/logs/tail.js +138 -0
- package/dist/commands/logs/tail.js.map +1 -0
- package/dist/commands/mrt/bundle/deploy.js +26 -6
- package/dist/commands/mrt/bundle/deploy.js.map +1 -1
- package/dist/commands/mrt/bundle/download.js +2 -2
- package/dist/commands/mrt/bundle/download.js.map +1 -1
- package/dist/commands/mrt/bundle/history.js +2 -2
- package/dist/commands/mrt/bundle/history.js.map +1 -1
- package/dist/commands/mrt/bundle/list.js +2 -2
- package/dist/commands/mrt/bundle/list.js.map +1 -1
- package/dist/commands/mrt/env/access-control/list.js +2 -2
- package/dist/commands/mrt/env/access-control/list.js.map +1 -1
- package/dist/commands/mrt/env/b2c.js +2 -2
- package/dist/commands/mrt/env/b2c.js.map +1 -1
- package/dist/commands/mrt/env/create.js +2 -2
- package/dist/commands/mrt/env/create.js.map +1 -1
- package/dist/commands/mrt/env/delete.js +2 -2
- package/dist/commands/mrt/env/delete.js.map +1 -1
- package/dist/commands/mrt/env/get.js +2 -2
- package/dist/commands/mrt/env/get.js.map +1 -1
- package/dist/commands/mrt/env/invalidate.js +2 -2
- package/dist/commands/mrt/env/invalidate.js.map +1 -1
- package/dist/commands/mrt/env/list.js +2 -2
- package/dist/commands/mrt/env/list.js.map +1 -1
- package/dist/commands/mrt/env/redirect/clone.js +2 -2
- package/dist/commands/mrt/env/redirect/clone.js.map +1 -1
- package/dist/commands/mrt/env/redirect/create.js +2 -2
- package/dist/commands/mrt/env/redirect/create.js.map +1 -1
- package/dist/commands/mrt/env/redirect/delete.js +2 -2
- package/dist/commands/mrt/env/redirect/delete.js.map +1 -1
- package/dist/commands/mrt/env/redirect/list.js +2 -2
- package/dist/commands/mrt/env/redirect/list.js.map +1 -1
- package/dist/commands/mrt/env/update.js +2 -2
- package/dist/commands/mrt/env/update.js.map +1 -1
- package/dist/commands/mrt/env/var/delete.js +2 -2
- package/dist/commands/mrt/env/var/delete.js.map +1 -1
- package/dist/commands/mrt/env/var/list.js +2 -2
- package/dist/commands/mrt/env/var/list.js.map +1 -1
- package/dist/commands/mrt/env/var/set.js +2 -2
- package/dist/commands/mrt/env/var/set.js.map +1 -1
- package/dist/commands/mrt/org/b2c.js +2 -2
- package/dist/commands/mrt/org/b2c.js.map +1 -1
- package/dist/commands/mrt/org/list.js +2 -2
- package/dist/commands/mrt/org/list.js.map +1 -1
- package/dist/commands/mrt/project/create.js +2 -2
- package/dist/commands/mrt/project/create.js.map +1 -1
- package/dist/commands/mrt/project/delete.js +2 -2
- package/dist/commands/mrt/project/delete.js.map +1 -1
- package/dist/commands/mrt/project/get.js +2 -2
- package/dist/commands/mrt/project/get.js.map +1 -1
- package/dist/commands/mrt/project/list.js +2 -2
- package/dist/commands/mrt/project/list.js.map +1 -1
- package/dist/commands/mrt/project/member/add.js +2 -2
- package/dist/commands/mrt/project/member/add.js.map +1 -1
- package/dist/commands/mrt/project/member/get.js +2 -2
- package/dist/commands/mrt/project/member/get.js.map +1 -1
- package/dist/commands/mrt/project/member/list.js +2 -2
- package/dist/commands/mrt/project/member/list.js.map +1 -1
- package/dist/commands/mrt/project/member/remove.js +2 -2
- package/dist/commands/mrt/project/member/remove.js.map +1 -1
- package/dist/commands/mrt/project/member/update.js +2 -2
- package/dist/commands/mrt/project/member/update.js.map +1 -1
- package/dist/commands/mrt/project/notification/create.js +2 -2
- package/dist/commands/mrt/project/notification/create.js.map +1 -1
- package/dist/commands/mrt/project/notification/delete.js +2 -2
- package/dist/commands/mrt/project/notification/delete.js.map +1 -1
- package/dist/commands/mrt/project/notification/get.js +2 -2
- package/dist/commands/mrt/project/notification/get.js.map +1 -1
- package/dist/commands/mrt/project/notification/list.js +2 -2
- package/dist/commands/mrt/project/notification/list.js.map +1 -1
- package/dist/commands/mrt/project/notification/update.js +2 -2
- package/dist/commands/mrt/project/notification/update.js.map +1 -1
- package/dist/commands/mrt/project/update.js +2 -2
- package/dist/commands/mrt/project/update.js.map +1 -1
- package/dist/commands/mrt/tail-logs.d.ts +27 -0
- package/dist/commands/mrt/tail-logs.js +137 -0
- package/dist/commands/mrt/tail-logs.js.map +1 -0
- package/dist/commands/mrt/user/api-key.js +2 -2
- package/dist/commands/mrt/user/api-key.js.map +1 -1
- package/dist/commands/mrt/user/email-prefs.js +2 -2
- package/dist/commands/mrt/user/email-prefs.js.map +1 -1
- package/dist/commands/mrt/user/profile.js +2 -2
- package/dist/commands/mrt/user/profile.js.map +1 -1
- package/dist/commands/{ods → sandbox}/create.d.ts +8 -14
- package/dist/commands/sandbox/create.js +264 -0
- package/dist/commands/sandbox/create.js.map +1 -0
- package/dist/commands/sandbox/delete.d.ts +19 -0
- package/dist/commands/sandbox/delete.js +141 -0
- package/dist/commands/sandbox/delete.js.map +1 -0
- package/dist/commands/{ods → sandbox}/get.d.ts +2 -1
- package/dist/commands/{ods → sandbox}/get.js +10 -8
- package/dist/commands/sandbox/get.js.map +1 -0
- package/dist/commands/{ods → sandbox}/info.d.ts +2 -1
- package/dist/commands/{ods → sandbox}/info.js +7 -6
- package/dist/commands/sandbox/info.js.map +1 -0
- package/dist/commands/{ods → sandbox}/list.d.ts +2 -1
- package/dist/commands/{ods → sandbox}/list.js +7 -6
- package/dist/commands/sandbox/list.js.map +1 -0
- package/dist/commands/{ods → sandbox}/restart.d.ts +7 -1
- package/dist/commands/sandbox/restart.js +107 -0
- package/dist/commands/sandbox/restart.js.map +1 -0
- package/dist/commands/{ods → sandbox}/start.d.ts +7 -1
- package/dist/commands/sandbox/start.js +108 -0
- package/dist/commands/sandbox/start.js.map +1 -0
- package/dist/commands/{ods → sandbox}/stop.d.ts +7 -1
- package/dist/commands/sandbox/stop.js +107 -0
- package/dist/commands/sandbox/stop.js.map +1 -0
- package/dist/commands/scaffold/generate.d.ts +22 -0
- package/dist/commands/scaffold/generate.js +74 -0
- package/dist/commands/scaffold/generate.js.map +1 -0
- package/dist/commands/scaffold/index.d.ts +24 -0
- package/dist/commands/scaffold/index.js +80 -0
- package/dist/commands/scaffold/index.js.map +1 -0
- package/dist/commands/scaffold/info.d.ts +24 -0
- package/dist/commands/scaffold/info.js +89 -0
- package/dist/commands/scaffold/info.js.map +1 -0
- package/dist/commands/scaffold/init.d.ts +29 -0
- package/dist/commands/scaffold/init.js +221 -0
- package/dist/commands/scaffold/init.js.map +1 -0
- package/dist/commands/scaffold/list.d.ts +38 -0
- package/dist/commands/scaffold/list.js +131 -0
- package/dist/commands/scaffold/list.js.map +1 -0
- package/dist/commands/scaffold/search.d.ts +32 -0
- package/dist/commands/scaffold/search.js +97 -0
- package/dist/commands/scaffold/search.js.map +1 -0
- package/dist/commands/scaffold/validate.d.ts +24 -0
- package/dist/commands/scaffold/validate.js +74 -0
- package/dist/commands/scaffold/validate.js.map +1 -0
- package/dist/commands/scapi/custom/status.d.ts +2 -20
- package/dist/commands/scapi/custom/status.js +4 -11
- package/dist/commands/scapi/custom/status.js.map +1 -1
- package/dist/commands/scapi/schemas/get.d.ts +1 -0
- package/dist/commands/scapi/schemas/get.js +3 -3
- package/dist/commands/scapi/schemas/get.js.map +1 -1
- package/dist/commands/scapi/schemas/list.d.ts +1 -0
- package/dist/commands/scapi/schemas/list.js +2 -2
- package/dist/commands/scapi/schemas/list.js.map +1 -1
- package/dist/commands/setup/index.d.ts +12 -0
- package/dist/commands/setup/index.js +34 -0
- package/dist/commands/setup/index.js.map +1 -0
- package/dist/commands/setup/{config.d.ts → inspect.d.ts} +5 -4
- package/dist/commands/setup/{config.js → inspect.js} +6 -3
- package/dist/commands/setup/inspect.js.map +1 -0
- package/dist/commands/setup/instance/create.d.ts +43 -0
- package/dist/commands/setup/instance/create.js +269 -0
- package/dist/commands/setup/instance/create.js.map +1 -0
- package/dist/commands/setup/instance/index.d.ts +9 -0
- package/dist/commands/setup/instance/index.js +22 -0
- package/dist/commands/setup/instance/index.js.map +1 -0
- package/dist/commands/setup/instance/list.d.ts +31 -0
- package/dist/commands/setup/instance/list.js +68 -0
- package/dist/commands/setup/instance/list.js.map +1 -0
- package/dist/commands/setup/instance/remove.d.ts +34 -0
- package/dist/commands/setup/instance/remove.js +75 -0
- package/dist/commands/setup/instance/remove.js.map +1 -0
- package/dist/commands/setup/instance/set-active.d.ts +33 -0
- package/dist/commands/setup/instance/set-active.js +78 -0
- package/dist/commands/setup/instance/set-active.js.map +1 -0
- package/dist/commands/setup/skills.js +2 -2
- package/dist/commands/setup/skills.js.map +1 -1
- package/dist/commands/sites/list.js +2 -2
- package/dist/commands/sites/list.js.map +1 -1
- package/dist/commands/slas/client/create.d.ts +1 -0
- package/dist/commands/slas/client/create.js +3 -2
- package/dist/commands/slas/client/create.js.map +1 -1
- package/dist/commands/slas/client/delete.d.ts +1 -0
- package/dist/commands/slas/client/delete.js +2 -2
- package/dist/commands/slas/client/delete.js.map +1 -1
- package/dist/commands/slas/client/get.d.ts +1 -0
- package/dist/commands/slas/client/get.js +2 -2
- package/dist/commands/slas/client/get.js.map +1 -1
- package/dist/commands/slas/client/list.d.ts +1 -0
- package/dist/commands/slas/client/list.js +10 -5
- package/dist/commands/slas/client/list.js.map +1 -1
- package/dist/commands/slas/client/open.js +2 -2
- package/dist/commands/slas/client/open.js.map +1 -1
- package/dist/commands/slas/client/update.d.ts +1 -0
- package/dist/commands/slas/client/update.js +2 -2
- package/dist/commands/slas/client/update.js.map +1 -1
- package/dist/commands/webdav/get.d.ts +5 -0
- package/dist/commands/webdav/get.js +2 -2
- package/dist/commands/webdav/get.js.map +1 -1
- package/dist/commands/webdav/ls.js +2 -2
- package/dist/commands/webdav/ls.js.map +1 -1
- package/dist/commands/webdav/mkdir.js +2 -2
- package/dist/commands/webdav/mkdir.js.map +1 -1
- package/dist/commands/webdav/put.js +2 -2
- package/dist/commands/webdav/put.js.map +1 -1
- package/dist/commands/webdav/rm.d.ts +5 -0
- package/dist/commands/webdav/rm.js +2 -2
- package/dist/commands/webdav/rm.js.map +1 -1
- package/dist/commands/webdav/unzip.js +2 -2
- package/dist/commands/webdav/unzip.js.map +1 -1
- package/dist/commands/webdav/zip.js +2 -2
- package/dist/commands/webdav/zip.js.map +1 -1
- package/dist/i18n/index.d.ts +12 -0
- package/dist/i18n/index.js +16 -0
- package/dist/i18n/index.js.map +1 -1
- package/dist/i18n/locales/en.d.ts +42 -0
- package/dist/i18n/locales/en.js +42 -0
- package/dist/i18n/locales/en.js.map +1 -1
- package/dist/i18n/locales/index.d.ts +42 -0
- package/dist/lib/scaffold/generate-helper.d.ts +47 -0
- package/dist/lib/scaffold/generate-helper.js +271 -0
- package/dist/lib/scaffold/generate-helper.js.map +1 -0
- package/dist/lib/scaffold/source-resolver.d.ts +25 -0
- package/dist/lib/scaffold/source-resolver.js +37 -0
- package/dist/lib/scaffold/source-resolver.js.map +1 -0
- package/dist/utils/ecdn/zone-command.d.ts +1 -0
- package/dist/utils/logs/filter.d.ts +40 -0
- package/dist/utils/logs/filter.js +112 -0
- package/dist/utils/logs/filter.js.map +1 -0
- package/dist/utils/logs/format.d.ts +18 -0
- package/dist/utils/logs/format.js +74 -0
- package/dist/utils/logs/format.js.map +1 -0
- package/dist/utils/logs/index.d.ts +2 -0
- package/dist/utils/logs/index.js +8 -0
- package/dist/utils/logs/index.js.map +1 -0
- package/dist/utils/mrt-logs/format.d.ts +28 -0
- package/dist/utils/mrt-logs/format.js +90 -0
- package/dist/utils/mrt-logs/format.js.map +1 -0
- package/dist/utils/mrt-logs/index.d.ts +1 -0
- package/dist/utils/mrt-logs/index.js +7 -0
- package/dist/utils/mrt-logs/index.js.map +1 -0
- package/dist/utils/slas/client.d.ts +7 -5
- package/dist/utils/slas/client.js +26 -24
- package/dist/utils/slas/client.js.map +1 -1
- package/oclif.manifest.json +15624 -5067
- package/package.json +115 -63
- package/dist/commands/ods/create.js +0 -254
- package/dist/commands/ods/create.js.map +0 -1
- package/dist/commands/ods/delete.d.ts +0 -15
- package/dist/commands/ods/delete.js +0 -85
- package/dist/commands/ods/delete.js.map +0 -1
- package/dist/commands/ods/get.js.map +0 -1
- package/dist/commands/ods/info.js.map +0 -1
- package/dist/commands/ods/list.js.map +0 -1
- package/dist/commands/ods/restart.js +0 -50
- package/dist/commands/ods/restart.js.map +0 -1
- package/dist/commands/ods/start.js +0 -50
- package/dist/commands/ods/start.js.map +0 -1
- package/dist/commands/ods/stop.js +0 -50
- package/dist/commands/ods/stop.js.map +0 -1
- package/dist/commands/setup/config.js.map +0 -1
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type DynamicParameterSource, type ScaffoldChoice, type SourceResult } from '@salesforce/b2c-tooling-sdk/scaffold';
|
|
2
|
+
export { isRemoteSource, validateAgainstSource, type SourceResult } from '@salesforce/b2c-tooling-sdk/scaffold';
|
|
3
|
+
/**
|
|
4
|
+
* @deprecated Use SourceResult from '@salesforce/b2c-tooling-sdk/scaffold' instead.
|
|
5
|
+
* This type alias is kept for backwards compatibility.
|
|
6
|
+
*/
|
|
7
|
+
export type LocalSourceResult = SourceResult;
|
|
8
|
+
/**
|
|
9
|
+
* Resolves a local (non-remote) parameter source.
|
|
10
|
+
* Delegates to SDK function.
|
|
11
|
+
*
|
|
12
|
+
* @param source - The source type to resolve
|
|
13
|
+
* @param projectRoot - Project root directory for cartridge discovery
|
|
14
|
+
* @returns Resolved choices and optional path mapping
|
|
15
|
+
*/
|
|
16
|
+
export declare function resolveLocalSource(source: DynamicParameterSource, projectRoot: string): SourceResult;
|
|
17
|
+
/**
|
|
18
|
+
* CLI wrapper for remote source resolution.
|
|
19
|
+
* Handles auth orchestration using CLI config loading.
|
|
20
|
+
*
|
|
21
|
+
* @param source - The source type to resolve
|
|
22
|
+
* @returns Promise resolving to choices array
|
|
23
|
+
* @throws Error if authentication fails or API call fails
|
|
24
|
+
*/
|
|
25
|
+
export declare function resolveRemoteSource(source: DynamicParameterSource): Promise<ScaffoldChoice[]>;
|
|
@@ -0,0 +1,37 @@
|
|
|
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 { resolveLocalSource as sdkResolveLocalSource, resolveRemoteSource as sdkResolveRemoteSource, } from '@salesforce/b2c-tooling-sdk/scaffold';
|
|
7
|
+
import { loadConfig } from '@salesforce/b2c-tooling-sdk/cli';
|
|
8
|
+
// Re-export SDK functions and types
|
|
9
|
+
export { isRemoteSource, validateAgainstSource } from '@salesforce/b2c-tooling-sdk/scaffold';
|
|
10
|
+
/**
|
|
11
|
+
* Resolves a local (non-remote) parameter source.
|
|
12
|
+
* Delegates to SDK function.
|
|
13
|
+
*
|
|
14
|
+
* @param source - The source type to resolve
|
|
15
|
+
* @param projectRoot - Project root directory for cartridge discovery
|
|
16
|
+
* @returns Resolved choices and optional path mapping
|
|
17
|
+
*/
|
|
18
|
+
export function resolveLocalSource(source, projectRoot) {
|
|
19
|
+
return sdkResolveLocalSource(source, projectRoot);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* CLI wrapper for remote source resolution.
|
|
23
|
+
* Handles auth orchestration using CLI config loading.
|
|
24
|
+
*
|
|
25
|
+
* @param source - The source type to resolve
|
|
26
|
+
* @returns Promise resolving to choices array
|
|
27
|
+
* @throws Error if authentication fails or API call fails
|
|
28
|
+
*/
|
|
29
|
+
export async function resolveRemoteSource(source) {
|
|
30
|
+
const config = loadConfig({}, { configPath: undefined });
|
|
31
|
+
if (!config.hasB2CInstanceConfig() || !config.hasOAuthConfig()) {
|
|
32
|
+
throw new Error('B2C instance configuration with OAuth required for sites source');
|
|
33
|
+
}
|
|
34
|
+
const instance = config.createB2CInstance();
|
|
35
|
+
return sdkResolveRemoteSource(source, instance);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=source-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-resolver.js","sourceRoot":"","sources":["../../../src/lib/scaffold/source-resolver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,kBAAkB,IAAI,qBAAqB,EAC3C,mBAAmB,IAAI,sBAAsB,GAI9C,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAC,UAAU,EAAC,MAAM,iCAAiC,CAAC;AAE3D,oCAAoC;AACpC,OAAO,EAAC,cAAc,EAAE,qBAAqB,EAAoB,MAAM,sCAAsC,CAAC;AAQ9G;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAA8B,EAAE,WAAmB;IACpF,OAAO,qBAAqB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAA8B;IACtE,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,EAAE,EAAC,UAAU,EAAE,SAAS,EAAC,CAAC,CAAC;IAEvD,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;IAC5C,OAAO,sBAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -14,6 +14,7 @@ export declare abstract class EcdnZoneCommand<T extends typeof Command> extends
|
|
|
14
14
|
'short-code': import("@oclif/core/interfaces").OptionFlag<string | undefined, 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
|
+
'user-auth': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
17
18
|
'account-manager-host': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
18
19
|
'log-level': import("@oclif/core/interfaces").OptionFlag<"trace" | "debug" | "info" | "warn" | "error" | "silent" | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
19
20
|
debug: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { LogEntry } from '@salesforce/b2c-tooling-sdk/operations/logs';
|
|
2
|
+
/**
|
|
3
|
+
* Parses a relative time string (e.g., "5m", "1h", "2d") into milliseconds.
|
|
4
|
+
* Returns null if the string is not a valid relative time format.
|
|
5
|
+
*/
|
|
6
|
+
export declare function parseRelativeTime(timeStr: string): null | number;
|
|
7
|
+
/**
|
|
8
|
+
* Parses a --since value into a Date object.
|
|
9
|
+
* Supports:
|
|
10
|
+
* - Relative times: "5m", "1h", "2d"
|
|
11
|
+
* - ISO 8601: "2026-01-25T10:00:00"
|
|
12
|
+
*/
|
|
13
|
+
export declare function parseSinceTime(sinceStr: string): Date;
|
|
14
|
+
/**
|
|
15
|
+
* Parses a B2C log timestamp into a Date object.
|
|
16
|
+
* Expected format: "2025-01-25 10:30:45.123 GMT"
|
|
17
|
+
*/
|
|
18
|
+
export declare function parseLogTimestamp(timestamp: string): Date | null;
|
|
19
|
+
/**
|
|
20
|
+
* Filters entries by timestamp.
|
|
21
|
+
*/
|
|
22
|
+
export declare function filterBySince(entries: LogEntry[], since: Date): LogEntry[];
|
|
23
|
+
/**
|
|
24
|
+
* Filters entries by log level.
|
|
25
|
+
*/
|
|
26
|
+
export declare function filterByLevel(entries: LogEntry[], levels: string[]): LogEntry[];
|
|
27
|
+
/**
|
|
28
|
+
* Filters entries by text search (case-insensitive substring match).
|
|
29
|
+
*/
|
|
30
|
+
export declare function filterBySearch(entries: LogEntry[], search: string): LogEntry[];
|
|
31
|
+
/**
|
|
32
|
+
* Checks if a single entry matches the specified log levels.
|
|
33
|
+
* Used for streaming/tail scenarios where we filter one entry at a time.
|
|
34
|
+
*/
|
|
35
|
+
export declare function matchesLevel(entry: LogEntry, levels: string[]): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Checks if a single entry matches the search text (case-insensitive).
|
|
38
|
+
* Used for streaming/tail scenarios where we filter one entry at a time.
|
|
39
|
+
*/
|
|
40
|
+
export declare function matchesSearch(entry: LogEntry, search: string): boolean;
|
|
@@ -0,0 +1,112 @@
|
|
|
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
|
+
* Parses a relative time string (e.g., "5m", "1h", "2d") into milliseconds.
|
|
8
|
+
* Returns null if the string is not a valid relative time format.
|
|
9
|
+
*/
|
|
10
|
+
export function parseRelativeTime(timeStr) {
|
|
11
|
+
const match = timeStr.match(/^(\d+)([mhd])$/i);
|
|
12
|
+
if (!match) {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
const value = Number.parseInt(match[1], 10);
|
|
16
|
+
const unit = match[2].toLowerCase();
|
|
17
|
+
switch (unit) {
|
|
18
|
+
case 'd': {
|
|
19
|
+
return value * 24 * 60 * 60 * 1000;
|
|
20
|
+
}
|
|
21
|
+
case 'h': {
|
|
22
|
+
return value * 60 * 60 * 1000;
|
|
23
|
+
}
|
|
24
|
+
case 'm': {
|
|
25
|
+
return value * 60 * 1000;
|
|
26
|
+
}
|
|
27
|
+
default: {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Parses a --since value into a Date object.
|
|
34
|
+
* Supports:
|
|
35
|
+
* - Relative times: "5m", "1h", "2d"
|
|
36
|
+
* - ISO 8601: "2026-01-25T10:00:00"
|
|
37
|
+
*/
|
|
38
|
+
export function parseSinceTime(sinceStr) {
|
|
39
|
+
// Try relative time first
|
|
40
|
+
const relativeMs = parseRelativeTime(sinceStr);
|
|
41
|
+
if (relativeMs !== null) {
|
|
42
|
+
return new Date(Date.now() - relativeMs);
|
|
43
|
+
}
|
|
44
|
+
// Try ISO 8601
|
|
45
|
+
const date = new Date(sinceStr);
|
|
46
|
+
if (Number.isNaN(date.getTime())) {
|
|
47
|
+
throw new TypeError(`Invalid --since value: "${sinceStr}". Use relative time (e.g., "5m", "1h", "2d") or ISO 8601 (e.g., "2026-01-25T10:00:00")`);
|
|
48
|
+
}
|
|
49
|
+
return date;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Parses a B2C log timestamp into a Date object.
|
|
53
|
+
* Expected format: "2025-01-25 10:30:45.123 GMT"
|
|
54
|
+
*/
|
|
55
|
+
export function parseLogTimestamp(timestamp) {
|
|
56
|
+
// B2C format: "2025-01-25 10:30:45.123 GMT"
|
|
57
|
+
// Convert to ISO format for parsing
|
|
58
|
+
const isoFormat = timestamp.replace(' GMT', 'Z').replace(' ', 'T');
|
|
59
|
+
const date = new Date(isoFormat);
|
|
60
|
+
return Number.isNaN(date.getTime()) ? null : date;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Filters entries by timestamp.
|
|
64
|
+
*/
|
|
65
|
+
export function filterBySince(entries, since) {
|
|
66
|
+
return entries.filter((entry) => {
|
|
67
|
+
if (!entry.timestamp)
|
|
68
|
+
return true; // Include entries without timestamps
|
|
69
|
+
const entryDate = parseLogTimestamp(entry.timestamp);
|
|
70
|
+
return entryDate === null || entryDate >= since;
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Filters entries by log level.
|
|
75
|
+
*/
|
|
76
|
+
export function filterByLevel(entries, levels) {
|
|
77
|
+
const upperLevels = new Set(levels.map((l) => l.toUpperCase()));
|
|
78
|
+
return entries.filter((entry) => {
|
|
79
|
+
// Include entries without level if no specific level filter
|
|
80
|
+
if (!entry.level)
|
|
81
|
+
return false;
|
|
82
|
+
return upperLevels.has(entry.level.toUpperCase());
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Filters entries by text search (case-insensitive substring match).
|
|
87
|
+
*/
|
|
88
|
+
export function filterBySearch(entries, search) {
|
|
89
|
+
const lowerSearch = search.toLowerCase();
|
|
90
|
+
return entries.filter((entry) => {
|
|
91
|
+
return entry.message.toLowerCase().includes(lowerSearch) || entry.raw.toLowerCase().includes(lowerSearch);
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Checks if a single entry matches the specified log levels.
|
|
96
|
+
* Used for streaming/tail scenarios where we filter one entry at a time.
|
|
97
|
+
*/
|
|
98
|
+
export function matchesLevel(entry, levels) {
|
|
99
|
+
if (!entry.level)
|
|
100
|
+
return false;
|
|
101
|
+
const upperLevels = new Set(levels.map((l) => l.toUpperCase()));
|
|
102
|
+
return upperLevels.has(entry.level.toUpperCase());
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Checks if a single entry matches the search text (case-insensitive).
|
|
106
|
+
* Used for streaming/tail scenarios where we filter one entry at a time.
|
|
107
|
+
*/
|
|
108
|
+
export function matchesSearch(entry, search) {
|
|
109
|
+
const lowerSearch = search.toLowerCase();
|
|
110
|
+
return entry.message.toLowerCase().includes(lowerSearch) || entry.raw.toLowerCase().includes(lowerSearch);
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../src/utils/logs/filter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { LogEntry } from '@salesforce/b2c-tooling-sdk/operations/logs';
|
|
2
|
+
/**
|
|
3
|
+
* Default log prefixes to retrieve/tail.
|
|
4
|
+
*/
|
|
5
|
+
export declare const DEFAULT_PREFIXES: string[];
|
|
6
|
+
/**
|
|
7
|
+
* Formats a log entry for human-readable output.
|
|
8
|
+
*
|
|
9
|
+
* Output format:
|
|
10
|
+
* LEVEL [timestamp] [file]
|
|
11
|
+
* message (may be multi-line)
|
|
12
|
+
*/
|
|
13
|
+
export declare function formatEntry(entry: LogEntry, useColor: boolean): string;
|
|
14
|
+
/**
|
|
15
|
+
* Sets up a path normalizer for IDE click-to-open functionality.
|
|
16
|
+
* Priority: 1) explicit cartridgePath, 2) auto-discover cartridges, 3) undefined (no normalization)
|
|
17
|
+
*/
|
|
18
|
+
export declare function setupPathNormalizer(cartridgePath: string | undefined, noNormalize: boolean): ((msg: string) => string) | undefined;
|
|
@@ -0,0 +1,74 @@
|
|
|
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 { createPathNormalizer, discoverAndCreateNormalizer } from '@salesforce/b2c-tooling-sdk/operations/logs';
|
|
7
|
+
/**
|
|
8
|
+
* Default log prefixes to retrieve/tail.
|
|
9
|
+
*/
|
|
10
|
+
export const DEFAULT_PREFIXES = ['error', 'customerror'];
|
|
11
|
+
/**
|
|
12
|
+
* ANSI color codes for log levels.
|
|
13
|
+
*/
|
|
14
|
+
const LEVEL_COLORS = {
|
|
15
|
+
ERROR: '\u001B[31m', // Red
|
|
16
|
+
FATAL: '\u001B[35m', // Magenta
|
|
17
|
+
WARN: '\u001B[33m', // Yellow
|
|
18
|
+
INFO: '\u001B[36m', // Cyan
|
|
19
|
+
DEBUG: '\u001B[90m', // Gray
|
|
20
|
+
TRACE: '\u001B[90m', // Gray
|
|
21
|
+
};
|
|
22
|
+
const RESET = '\u001B[0m';
|
|
23
|
+
const DIM = '\u001B[2m';
|
|
24
|
+
const BOLD = '\u001B[1m';
|
|
25
|
+
/**
|
|
26
|
+
* Formats a log entry for human-readable output.
|
|
27
|
+
*
|
|
28
|
+
* Output format:
|
|
29
|
+
* LEVEL [timestamp] [file]
|
|
30
|
+
* message (may be multi-line)
|
|
31
|
+
*/
|
|
32
|
+
export function formatEntry(entry, useColor) {
|
|
33
|
+
const headerParts = [];
|
|
34
|
+
// Level first (most important for scanning)
|
|
35
|
+
if (entry.level) {
|
|
36
|
+
if (useColor) {
|
|
37
|
+
const color = LEVEL_COLORS[entry.level] || '';
|
|
38
|
+
headerParts.push(`${color}${BOLD}${entry.level}${RESET}`);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
headerParts.push(entry.level);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
// Timestamp
|
|
45
|
+
if (entry.timestamp) {
|
|
46
|
+
if (useColor) {
|
|
47
|
+
headerParts.push(`${DIM}[${entry.timestamp}]${RESET}`);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
headerParts.push(`[${entry.timestamp}]`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// File name (dimmed)
|
|
54
|
+
if (useColor) {
|
|
55
|
+
headerParts.push(`${DIM}[${entry.file}]${RESET}`);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
headerParts.push(`[${entry.file}]`);
|
|
59
|
+
}
|
|
60
|
+
// Build output: header line followed by message, with trailing blank line
|
|
61
|
+
const header = headerParts.join(' ');
|
|
62
|
+
return `${header}\n${entry.message}\n`;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Sets up a path normalizer for IDE click-to-open functionality.
|
|
66
|
+
* Priority: 1) explicit cartridgePath, 2) auto-discover cartridges, 3) undefined (no normalization)
|
|
67
|
+
*/
|
|
68
|
+
export function setupPathNormalizer(cartridgePath, noNormalize) {
|
|
69
|
+
if (noNormalize) {
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
return cartridgePath ? createPathNormalizer({ cartridgePath }) : discoverAndCreateNormalizer();
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/utils/logs/format.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAC,oBAAoB,EAAE,2BAA2B,EAAC,MAAM,6CAA6C,CAAC;AAE9G;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AAEzD;;GAEG;AACH,MAAM,YAAY,GAA2B;IAC3C,KAAK,EAAE,YAAY,EAAE,MAAM;IAC3B,KAAK,EAAE,YAAY,EAAE,UAAU;IAC/B,IAAI,EAAE,YAAY,EAAE,SAAS;IAC7B,IAAI,EAAE,YAAY,EAAE,OAAO;IAC3B,KAAK,EAAE,YAAY,EAAE,OAAO;IAC5B,KAAK,EAAE,YAAY,EAAE,OAAO;CAC7B,CAAC;AAEF,MAAM,KAAK,GAAG,WAAW,CAAC;AAC1B,MAAM,GAAG,GAAG,WAAW,CAAC;AACxB,MAAM,IAAI,GAAG,WAAW,CAAC;AAEzB;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,KAAe,EAAE,QAAiB;IAC5D,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,4CAA4C;IAC5C,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAC9C,WAAW,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,YAAY;IACZ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACpB,IAAI,QAAQ,EAAE,CAAC;YACb,WAAW,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,EAAE,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,IAAI,QAAQ,EAAE,CAAC;QACb,WAAW,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC;SAAM,CAAC;QACN,WAAW,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,0EAA0E;IAC1E,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,OAAO,GAAG,MAAM,KAAK,KAAK,CAAC,OAAO,IAAI,CAAC;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,aAAiC,EACjC,WAAoB;IAEpB,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC,EAAC,aAAa,EAAC,CAAC,CAAC,CAAC,CAAC,2BAA2B,EAAE,CAAC;AAC/F,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
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
|
+
export * from './filter.js';
|
|
7
|
+
export * from './format.js';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/logs/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { MrtLogEntry } from '@salesforce/b2c-tooling-sdk/operations/mrt';
|
|
2
|
+
/**
|
|
3
|
+
* Options for formatting an MRT log entry.
|
|
4
|
+
*/
|
|
5
|
+
export interface FormatMrtEntryOptions {
|
|
6
|
+
/** Whether to use ANSI color codes. */
|
|
7
|
+
useColor: boolean;
|
|
8
|
+
/** Regex to highlight matches in the message. */
|
|
9
|
+
searchHighlight?: RegExp;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Colorizes a log level name using its level color + bold.
|
|
13
|
+
*/
|
|
14
|
+
export declare function colorLevel(level: string): string;
|
|
15
|
+
/**
|
|
16
|
+
* Colorizes text with the search highlight style (bold yellow).
|
|
17
|
+
*/
|
|
18
|
+
export declare function colorHighlight(text: string): string;
|
|
19
|
+
/**
|
|
20
|
+
* Formats an MRT log entry for terminal display.
|
|
21
|
+
*
|
|
22
|
+
* Output format:
|
|
23
|
+
* ```
|
|
24
|
+
* LEVEL [timestamp] [shortRequestId]
|
|
25
|
+
* message
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare function formatMrtEntry(entry: MrtLogEntry, options: FormatMrtEntryOptions): string;
|
|
@@ -0,0 +1,90 @@
|
|
|
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
|
+
* ANSI color codes for log levels.
|
|
8
|
+
* Matches the color scheme from logs/format.ts for consistency.
|
|
9
|
+
*/
|
|
10
|
+
const LEVEL_COLORS = {
|
|
11
|
+
ERROR: '\u001B[31m', // Red
|
|
12
|
+
FATAL: '\u001B[35m', // Magenta
|
|
13
|
+
WARN: '\u001B[33m', // Yellow
|
|
14
|
+
WARNING: '\u001B[33m', // Yellow
|
|
15
|
+
INFO: '\u001B[36m', // Cyan
|
|
16
|
+
DEBUG: '\u001B[90m', // Gray
|
|
17
|
+
TRACE: '\u001B[90m', // Gray
|
|
18
|
+
};
|
|
19
|
+
const RESET = '\u001B[0m';
|
|
20
|
+
const DIM = '\u001B[2m';
|
|
21
|
+
const BOLD = '\u001B[1m';
|
|
22
|
+
const HIGHLIGHT = '\u001B[1;33m'; // Bold yellow for search matches
|
|
23
|
+
/**
|
|
24
|
+
* Highlights regex matches in text with ANSI color codes.
|
|
25
|
+
*/
|
|
26
|
+
function highlightMatches(text, pattern) {
|
|
27
|
+
return text.replace(pattern, (match) => `${HIGHLIGHT}${match}${RESET}`);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Colorizes a log level name using its level color + bold.
|
|
31
|
+
*/
|
|
32
|
+
export function colorLevel(level) {
|
|
33
|
+
const color = LEVEL_COLORS[level] || '';
|
|
34
|
+
return `${color}${BOLD}${level}${RESET}`;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Colorizes text with the search highlight style (bold yellow).
|
|
38
|
+
*/
|
|
39
|
+
export function colorHighlight(text) {
|
|
40
|
+
return `${HIGHLIGHT}${text}${RESET}`;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Formats an MRT log entry for terminal display.
|
|
44
|
+
*
|
|
45
|
+
* Output format:
|
|
46
|
+
* ```
|
|
47
|
+
* LEVEL [timestamp] [shortRequestId]
|
|
48
|
+
* message
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export function formatMrtEntry(entry, options) {
|
|
52
|
+
const { useColor, searchHighlight } = options;
|
|
53
|
+
const headerParts = [];
|
|
54
|
+
// Level first (most important for scanning)
|
|
55
|
+
if (entry.level) {
|
|
56
|
+
if (useColor) {
|
|
57
|
+
const color = LEVEL_COLORS[entry.level] || '';
|
|
58
|
+
headerParts.push(`${color}${BOLD}${entry.level}${RESET}`);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
headerParts.push(entry.level);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// Timestamp
|
|
65
|
+
if (entry.timestamp) {
|
|
66
|
+
if (useColor) {
|
|
67
|
+
headerParts.push(`${DIM}[${entry.timestamp}]${RESET}`);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
headerParts.push(`[${entry.timestamp}]`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// Short request ID
|
|
74
|
+
if (entry.shortRequestId) {
|
|
75
|
+
if (useColor) {
|
|
76
|
+
headerParts.push(`${DIM}[${entry.shortRequestId}]${RESET}`);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
headerParts.push(`[${entry.shortRequestId}]`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
const header = headerParts.join(' ');
|
|
83
|
+
let message = entry.message.trimEnd();
|
|
84
|
+
// Highlight search matches in message
|
|
85
|
+
if (useColor && searchHighlight) {
|
|
86
|
+
message = highlightMatches(message, searchHighlight);
|
|
87
|
+
}
|
|
88
|
+
return `${header}\n${message}\n`;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/utils/mrt-logs/format.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;GAGG;AACH,MAAM,YAAY,GAA2B;IAC3C,KAAK,EAAE,YAAY,EAAE,MAAM;IAC3B,KAAK,EAAE,YAAY,EAAE,UAAU;IAC/B,IAAI,EAAE,YAAY,EAAE,SAAS;IAC7B,OAAO,EAAE,YAAY,EAAE,SAAS;IAChC,IAAI,EAAE,YAAY,EAAE,OAAO;IAC3B,KAAK,EAAE,YAAY,EAAE,OAAO;IAC5B,KAAK,EAAE,YAAY,EAAE,OAAO;CAC7B,CAAC;AAEF,MAAM,KAAK,GAAG,WAAW,CAAC;AAC1B,MAAM,GAAG,GAAG,WAAW,CAAC;AACxB,MAAM,IAAI,GAAG,WAAW,CAAC;AACzB,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,iCAAiC;AAYnE;;GAEG;AACH,SAAS,gBAAgB,CAAC,IAAY,EAAE,OAAe;IACrD,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACxC,OAAO,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,EAAE,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,GAAG,SAAS,GAAG,IAAI,GAAG,KAAK,EAAE,CAAC;AACvC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,KAAkB,EAAE,OAA8B;IAC/E,MAAM,EAAC,QAAQ,EAAE,eAAe,EAAC,GAAG,OAAO,CAAC;IAC5C,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,4CAA4C;IAC5C,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAC9C,WAAW,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,YAAY;IACZ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACpB,IAAI,QAAQ,EAAE,CAAC;YACb,WAAW,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,EAAE,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QACzB,IAAI,QAAQ,EAAE,CAAC;YACb,WAAW,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,EAAE,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAEtC,sCAAsC;IACtC,IAAI,QAAQ,IAAI,eAAe,EAAE,CAAC;QAChC,OAAO,GAAG,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,GAAG,MAAM,KAAK,OAAO,IAAI,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './format.js';
|
|
@@ -0,0 +1,7 @@
|
|
|
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
|
+
export * from './format.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/mrt-logs/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,aAAa,CAAC"}
|
|
@@ -34,18 +34,20 @@ export declare function formatApiError(error: unknown, response: Response): stri
|
|
|
34
34
|
* Provides common flags and helper methods.
|
|
35
35
|
*/
|
|
36
36
|
export declare abstract class SlasClientCommand<T extends typeof Command> extends OAuthCommand<T> {
|
|
37
|
+
/**
|
|
38
|
+
* Check if a tenant exists.
|
|
39
|
+
* Returns true if the tenant exists, false if not found.
|
|
40
|
+
* Throws (via this.error) if an unexpected error occurs.
|
|
41
|
+
*/
|
|
42
|
+
protected checkTenantExists(slasClient: SlasClient, tenantId: string): Promise<boolean>;
|
|
37
43
|
/**
|
|
38
44
|
* Ensure tenant exists, creating it if necessary.
|
|
39
45
|
* This is required before creating SLAS clients.
|
|
40
46
|
*/
|
|
41
47
|
protected ensureTenantExists(slasClient: SlasClient, tenantId: string): Promise<void>;
|
|
48
|
+
protected getDefaultClientId(): string;
|
|
42
49
|
/**
|
|
43
50
|
* Get the SLAS client, ensuring short code is configured.
|
|
44
51
|
*/
|
|
45
52
|
protected getSlasClient(): SlasClient;
|
|
46
|
-
/**
|
|
47
|
-
* Get the tenant ID from resolved config, throwing if not available.
|
|
48
|
-
* @throws Error if tenant ID is not provided through any source
|
|
49
|
-
*/
|
|
50
|
-
protected requireTenantId(): string;
|
|
51
53
|
}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { Command, ux } from '@oclif/core';
|
|
7
7
|
import cliui from 'cliui';
|
|
8
8
|
import { OAuthCommand } from '@salesforce/b2c-tooling-sdk/cli';
|
|
9
|
-
import { createSlasClient, getApiErrorMessage } from '@salesforce/b2c-tooling-sdk';
|
|
9
|
+
import { createSlasClient, getApiErrorMessage, DEFAULT_PUBLIC_CLIENT_ID, } from '@salesforce/b2c-tooling-sdk';
|
|
10
10
|
import { t } from '../../i18n/index.js';
|
|
11
11
|
/**
|
|
12
12
|
* Normalize a client response from the API.
|
|
@@ -70,32 +70,42 @@ export function formatApiError(error, response) {
|
|
|
70
70
|
*/
|
|
71
71
|
export class SlasClientCommand extends OAuthCommand {
|
|
72
72
|
/**
|
|
73
|
-
*
|
|
74
|
-
*
|
|
73
|
+
* Check if a tenant exists.
|
|
74
|
+
* Returns true if the tenant exists, false if not found.
|
|
75
|
+
* Throws (via this.error) if an unexpected error occurs.
|
|
75
76
|
*/
|
|
76
|
-
async
|
|
77
|
-
// Try to get the tenant first
|
|
77
|
+
async checkTenantExists(slasClient, tenantId) {
|
|
78
78
|
const { error, response } = await slasClient.GET('/tenants/{tenantId}', {
|
|
79
79
|
params: {
|
|
80
80
|
path: { tenantId },
|
|
81
81
|
},
|
|
82
82
|
});
|
|
83
|
-
// If tenant exists, we're done
|
|
84
83
|
if (!error) {
|
|
85
|
-
|
|
84
|
+
this.logger.debug({ tenantId }, 'Tenant exists');
|
|
85
|
+
return true;
|
|
86
86
|
}
|
|
87
|
-
// Check if this is a "tenant not found" error (SLAS returns 400 with TenantNotFoundException)
|
|
88
87
|
const isTenantNotFound = response.status === 404 ||
|
|
89
88
|
(response.status === 400 &&
|
|
90
89
|
typeof error === 'object' &&
|
|
91
90
|
error !== null &&
|
|
92
91
|
'exception_name' in error &&
|
|
93
92
|
error.exception_name === 'TenantNotFoundException');
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
93
|
+
if (isTenantNotFound) {
|
|
94
|
+
this.logger.debug({ tenantId, status: response.status }, 'Tenant not found');
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
this.error(t('commands.slas.client.create.tenantError', 'Failed to check tenant: {{message}}', {
|
|
98
|
+
message: formatApiError(error, response),
|
|
99
|
+
}));
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Ensure tenant exists, creating it if necessary.
|
|
103
|
+
* This is required before creating SLAS clients.
|
|
104
|
+
*/
|
|
105
|
+
async ensureTenantExists(slasClient, tenantId) {
|
|
106
|
+
const tenantExists = await this.checkTenantExists(slasClient, tenantId);
|
|
107
|
+
if (tenantExists) {
|
|
108
|
+
return;
|
|
99
109
|
}
|
|
100
110
|
// Tenant doesn't exist, create it with placeholder values
|
|
101
111
|
if (!this.jsonEnabled()) {
|
|
@@ -123,6 +133,9 @@ export class SlasClientCommand extends OAuthCommand {
|
|
|
123
133
|
this.log(t('commands.slas.client.create.tenantCreated', 'SLAS tenant created successfully.'));
|
|
124
134
|
}
|
|
125
135
|
}
|
|
136
|
+
getDefaultClientId() {
|
|
137
|
+
return DEFAULT_PUBLIC_CLIENT_ID;
|
|
138
|
+
}
|
|
126
139
|
/**
|
|
127
140
|
* Get the SLAS client, ensuring short code is configured.
|
|
128
141
|
*/
|
|
@@ -134,16 +147,5 @@ export class SlasClientCommand extends OAuthCommand {
|
|
|
134
147
|
const oauthStrategy = this.getOAuthStrategy();
|
|
135
148
|
return createSlasClient({ shortCode }, oauthStrategy);
|
|
136
149
|
}
|
|
137
|
-
/**
|
|
138
|
-
* Get the tenant ID from resolved config, throwing if not available.
|
|
139
|
-
* @throws Error if tenant ID is not provided through any source
|
|
140
|
-
*/
|
|
141
|
-
requireTenantId() {
|
|
142
|
-
const tenantId = this.resolvedConfig.values.tenantId;
|
|
143
|
-
if (!tenantId) {
|
|
144
|
-
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.'));
|
|
145
|
-
}
|
|
146
|
-
return tenantId;
|
|
147
|
-
}
|
|
148
150
|
}
|
|
149
151
|
//# sourceMappingURL=client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/utils/slas/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAC,OAAO,EAAE,EAAE,EAAC,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,YAAY,EAAC,MAAM,iCAAiC,CAAC;AAC7D,OAAO,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/utils/slas/client.ts"],"names":[],"mappings":"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"}
|