@sitecoreai-labs/sitecoreai-cli 0.0.4 → 0.1.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/AGENTS.md +146 -55
- package/README.md +372 -325
- package/dist/agents/api/agents.d.ts +27 -0
- package/dist/agents/api/agents.js +70 -0
- package/dist/agents/api/catalog.d.ts +8 -0
- package/dist/agents/api/catalog.js +33 -0
- package/dist/agents/api/custom-mcps.d.ts +26 -0
- package/dist/agents/api/custom-mcps.js +53 -0
- package/dist/agents/api/html-templates.d.ts +35 -0
- package/dist/agents/api/html-templates.js +116 -0
- package/dist/agents/api/request.d.ts +28 -0
- package/dist/agents/api/request.js +207 -0
- package/dist/agents/api/runs.d.ts +31 -0
- package/dist/agents/api/runs.js +82 -0
- package/dist/agents/api/schema.d.ts +182 -0
- package/dist/agents/api/schema.js +10 -0
- package/dist/agents/api/schemas.d.ts +37 -0
- package/dist/agents/api/schemas.js +95 -0
- package/dist/agents/api/skills.d.ts +25 -0
- package/dist/agents/api/skills.js +55 -0
- package/dist/agents/api/spaces.d.ts +34 -0
- package/dist/agents/api/spaces.js +72 -0
- package/dist/agents/api/tools.d.ts +4 -0
- package/dist/agents/api/tools.js +18 -0
- package/dist/agents/api/widgets.d.ts +32 -0
- package/dist/agents/api/widgets.js +89 -0
- package/dist/agents/client.d.ts +18 -0
- package/dist/agents/client.js +28 -0
- package/dist/agents/index.d.ts +31 -0
- package/dist/agents/index.js +51 -0
- package/dist/agents/recipe/agent.diff.d.ts +4 -0
- package/dist/agents/recipe/agent.diff.js +55 -0
- package/dist/agents/recipe/agent.kind.d.ts +12 -0
- package/dist/agents/recipe/agent.kind.js +107 -0
- package/dist/agents/recipe/agent.schema.d.ts +26 -0
- package/dist/agents/recipe/agent.schema.js +42 -0
- package/dist/agents/recipe/client.d.ts +4 -0
- package/dist/agents/recipe/client.js +15 -0
- package/dist/agents/recipe/converge.d.ts +11 -0
- package/dist/agents/recipe/converge.js +32 -0
- package/dist/agents/recipe/custom-mcp.kind.d.ts +4 -0
- package/dist/agents/recipe/custom-mcp.kind.js +42 -0
- package/dist/agents/recipe/custom-mcp.schema.d.ts +11 -0
- package/dist/agents/recipe/custom-mcp.schema.js +15 -0
- package/dist/agents/recipe/html-template.kind.d.ts +4 -0
- package/dist/agents/recipe/html-template.kind.js +50 -0
- package/dist/agents/recipe/html-template.schema.d.ts +13 -0
- package/dist/agents/recipe/html-template.schema.js +17 -0
- package/dist/agents/recipe/index.d.ts +43 -0
- package/dist/agents/recipe/index.js +81 -0
- package/dist/agents/recipe/schema.kind.d.ts +4 -0
- package/dist/agents/recipe/schema.kind.js +50 -0
- package/dist/agents/recipe/schema.schema.d.ts +15 -0
- package/dist/agents/recipe/schema.schema.js +21 -0
- package/dist/agents/recipe/skill.kind.d.ts +4 -0
- package/dist/agents/recipe/skill.kind.js +48 -0
- package/dist/agents/recipe/skill.schema.d.ts +14 -0
- package/dist/agents/recipe/skill.schema.js +18 -0
- package/dist/agents/recipe/widget.kind.d.ts +4 -0
- package/dist/agents/recipe/widget.kind.js +49 -0
- package/dist/agents/recipe/widget.schema.d.ts +20 -0
- package/dist/agents/recipe/widget.schema.js +23 -0
- package/dist/agents/session/index.d.ts +50 -0
- package/dist/agents/session/index.js +127 -0
- package/dist/agents/session/playwright-login.d.ts +11 -0
- package/dist/agents/session/playwright-login.js +169 -0
- package/dist/agents/session/types.d.ts +72 -0
- package/dist/agents/session/types.js +26 -0
- package/dist/agents/tasks/agent.d.ts +27 -0
- package/dist/agents/tasks/agent.js +183 -0
- package/dist/agents/tasks/index.d.ts +14 -0
- package/dist/agents/tasks/index.js +30 -0
- package/dist/agents/tasks/resources.d.ts +39 -0
- package/dist/agents/tasks/resources.js +219 -0
- package/dist/agents/tasks/session.d.ts +6 -0
- package/dist/agents/tasks/session.js +63 -0
- package/dist/agents/tasks/shared.d.ts +38 -0
- package/dist/agents/tasks/shared.js +72 -0
- package/dist/agents/tasks/space.d.ts +12 -0
- package/dist/agents/tasks/space.js +55 -0
- package/dist/brand/api/auth.d.ts +58 -0
- package/dist/brand/api/auth.js +141 -0
- package/dist/brand/api/client.d.ts +40 -0
- package/dist/brand/api/client.js +83 -0
- package/dist/brand/api/types.d.ts +119 -0
- package/dist/brand/api/types.js +9 -0
- package/dist/brand/credential.d.ts +55 -0
- package/dist/brand/credential.js +87 -0
- package/dist/brand/documents/list.d.ts +85 -0
- package/dist/brand/documents/list.js +53 -0
- package/dist/brand/documents/upload.d.ts +113 -0
- package/dist/brand/documents/upload.js +106 -0
- package/dist/brand/index.d.ts +33 -0
- package/dist/brand/index.js +76 -0
- package/dist/brand/kits/create.d.ts +58 -0
- package/dist/brand/kits/create.js +68 -0
- package/dist/brand/kits/list.d.ts +53 -0
- package/dist/brand/kits/list.js +36 -0
- package/dist/brand/kits/sections.d.ts +156 -0
- package/dist/brand/kits/sections.js +80 -0
- package/dist/brand/pipeline/run.d.ts +58 -0
- package/dist/brand/pipeline/run.js +63 -0
- package/dist/brand/recipe/client.d.ts +4 -0
- package/dist/brand/recipe/client.js +24 -0
- package/dist/brand/recipe/diff.d.ts +4 -0
- package/dist/brand/recipe/diff.js +74 -0
- package/dist/brand/recipe/index.d.ts +10 -0
- package/dist/brand/recipe/index.js +20 -0
- package/dist/brand/recipe/kind.d.ts +4 -0
- package/dist/brand/recipe/kind.js +0 -0
- package/dist/brand/recipe/schema.d.ts +54 -0
- package/dist/brand/recipe/schema.js +59 -0
- package/dist/brand/review/format-json.d.ts +33 -0
- package/dist/brand/review/format-json.js +36 -0
- package/dist/brand/review/format-sarif.d.ts +64 -0
- package/dist/brand/review/format-sarif.js +77 -0
- package/dist/brand/review/format-text.d.ts +24 -0
- package/dist/brand/review/format-text.js +60 -0
- package/dist/brand/review/generate.d.ts +37 -0
- package/dist/brand/review/generate.js +146 -0
- package/dist/brand/review/outcomes.d.ts +43 -0
- package/dist/brand/review/outcomes.js +58 -0
- package/dist/brand/seed.d.ts +81 -0
- package/dist/brand/seed.js +151 -0
- package/dist/brand/tasks/login.d.ts +37 -0
- package/dist/brand/tasks/login.js +192 -0
- package/dist/brand/tasks/review.d.ts +111 -0
- package/dist/brand/tasks/review.js +310 -0
- package/dist/brief/api/brief-types.d.ts +64 -0
- package/dist/brief/api/brief-types.js +103 -0
- package/dist/brief/api/briefs.d.ts +66 -0
- package/dist/brief/api/briefs.js +58 -0
- package/dist/brief/api/comments.d.ts +43 -0
- package/dist/brief/api/comments.js +29 -0
- package/dist/brief/api/request.d.ts +5 -0
- package/dist/brief/api/request.js +83 -0
- package/dist/brief/api/schema.d.ts +158 -0
- package/dist/brief/api/schema.js +18 -0
- package/dist/brief/api/tasks.d.ts +41 -0
- package/dist/brief/api/tasks.js +24 -0
- package/dist/brief/api/types.d.ts +17 -0
- package/dist/brief/api/types.js +21 -0
- package/dist/brief/auth.d.ts +44 -0
- package/dist/brief/auth.js +101 -0
- package/dist/brief/client.d.ts +25 -0
- package/dist/brief/client.js +56 -0
- package/dist/brief/index.d.ts +31 -0
- package/dist/brief/index.js +53 -0
- package/dist/brief/recipe/client.d.ts +4 -0
- package/dist/brief/recipe/client.js +52 -0
- package/dist/brief/recipe/diff.d.ts +4 -0
- package/dist/brief/recipe/diff.js +74 -0
- package/dist/brief/recipe/index.d.ts +10 -0
- package/dist/brief/recipe/index.js +23 -0
- package/dist/brief/recipe/kind.d.ts +4 -0
- package/dist/brief/recipe/kind.js +114 -0
- package/dist/brief/recipe/schema.d.ts +152 -0
- package/dist/brief/recipe/schema.js +99 -0
- package/dist/brief/tasks/index.d.ts +128 -0
- package/dist/brief/tasks/index.js +286 -0
- package/dist/campaigns/api/deliverables.d.ts +37 -0
- package/dist/campaigns/api/deliverables.js +30 -0
- package/dist/campaigns/api/projects.d.ts +49 -0
- package/dist/campaigns/api/projects.js +45 -0
- package/dist/campaigns/api/request.d.ts +5 -0
- package/dist/campaigns/api/request.js +119 -0
- package/dist/campaigns/api/schema.d.ts +144 -0
- package/dist/campaigns/api/schema.js +22 -0
- package/dist/campaigns/api/tasks.d.ts +42 -0
- package/dist/campaigns/api/tasks.js +68 -0
- package/dist/campaigns/api/types.d.ts +17 -0
- package/dist/campaigns/api/types.js +27 -0
- package/dist/campaigns/api/users.d.ts +13 -0
- package/dist/campaigns/api/users.js +16 -0
- package/dist/campaigns/auth.d.ts +19 -0
- package/dist/campaigns/auth.js +86 -0
- package/dist/campaigns/client.d.ts +25 -0
- package/dist/campaigns/client.js +48 -0
- package/dist/campaigns/index.d.ts +29 -0
- package/dist/campaigns/index.js +47 -0
- package/dist/campaigns/recipe/client.d.ts +4 -0
- package/dist/campaigns/recipe/client.js +41 -0
- package/dist/campaigns/recipe/diff.d.ts +4 -0
- package/dist/campaigns/recipe/diff.js +119 -0
- package/dist/campaigns/recipe/index.d.ts +10 -0
- package/dist/campaigns/recipe/index.js +19 -0
- package/dist/campaigns/recipe/kind.d.ts +4 -0
- package/dist/campaigns/recipe/kind.js +217 -0
- package/dist/campaigns/recipe/schema.d.ts +79 -0
- package/dist/campaigns/recipe/schema.js +67 -0
- package/dist/campaigns/tasks/index.d.ts +124 -0
- package/dist/campaigns/tasks/index.js +271 -0
- package/dist/cli.d.ts +0 -1
- package/dist/cli.js +84 -63
- package/dist/commands/agents/index.d.ts +28 -0
- package/dist/commands/agents/index.js +289 -0
- package/dist/commands/agents/sync.d.ts +13 -0
- package/dist/commands/agents/sync.js +139 -0
- package/dist/commands/audit/all.d.ts +2 -0
- package/dist/commands/audit/all.js +26 -0
- package/dist/commands/audit/alt-text-missing.d.ts +2 -0
- package/dist/commands/audit/alt-text-missing.js +19 -0
- package/dist/commands/audit/baseline.d.ts +2 -0
- package/dist/commands/audit/baseline.js +75 -0
- package/dist/commands/audit/broken-images.d.ts +2 -0
- package/dist/commands/audit/broken-images.js +25 -0
- package/dist/commands/audit/broken-links.d.ts +2 -0
- package/dist/commands/audit/broken-links.js +18 -0
- package/dist/commands/audit/datasource-missing.d.ts +2 -0
- package/dist/commands/audit/datasource-missing.js +19 -0
- package/dist/commands/audit/dead-templates.d.ts +2 -0
- package/dist/commands/audit/dead-templates.js +18 -0
- package/dist/commands/audit/duplicates.d.ts +2 -0
- package/dist/commands/audit/duplicates.js +21 -0
- package/dist/commands/audit/empty-items.d.ts +2 -0
- package/dist/commands/audit/empty-items.js +19 -0
- package/dist/commands/audit/empty-links.d.ts +2 -0
- package/dist/commands/audit/empty-links.js +25 -0
- package/dist/commands/audit/empty-roles.d.ts +2 -0
- package/dist/commands/audit/empty-roles.js +18 -0
- package/dist/commands/audit/fallback-drift.d.ts +2 -0
- package/dist/commands/audit/fallback-drift.js +22 -0
- package/dist/commands/audit/find-replace.d.ts +2 -0
- package/dist/commands/audit/find-replace.js +27 -0
- package/dist/commands/audit/heavy-templates.d.ts +2 -0
- package/dist/commands/audit/heavy-templates.js +19 -0
- package/dist/commands/audit/history.d.ts +2 -0
- package/dist/commands/audit/history.js +44 -0
- package/dist/commands/audit/index.d.ts +2 -0
- package/dist/commands/audit/index.js +100 -0
- package/dist/commands/audit/language-data.d.ts +2 -0
- package/dist/commands/audit/language-data.js +24 -0
- package/dist/commands/audit/large-fields.d.ts +2 -0
- package/dist/commands/audit/large-fields.js +21 -0
- package/dist/commands/audit/missing-meta.d.ts +2 -0
- package/dist/commands/audit/missing-meta.js +22 -0
- package/dist/commands/audit/orphans.d.ts +2 -0
- package/dist/commands/audit/orphans.js +22 -0
- package/dist/commands/audit/page-design-orphans.d.ts +2 -0
- package/dist/commands/audit/page-design-orphans.js +18 -0
- package/dist/commands/audit/personalization-broken.d.ts +2 -0
- package/dist/commands/audit/personalization-broken.js +18 -0
- package/dist/commands/audit/references.d.ts +2 -0
- package/dist/commands/audit/references.js +27 -0
- package/dist/commands/audit/role-bloat.d.ts +2 -0
- package/dist/commands/audit/role-bloat.js +19 -0
- package/dist/commands/audit/shared.d.ts +7 -0
- package/dist/commands/audit/shared.js +32 -0
- package/dist/commands/audit/site-residue.d.ts +2 -0
- package/dist/commands/audit/site-residue.js +22 -0
- package/dist/commands/audit/slug-conflicts.d.ts +2 -0
- package/dist/commands/audit/slug-conflicts.js +20 -0
- package/dist/commands/audit/stale-content.d.ts +2 -0
- package/dist/commands/audit/stale-content.js +21 -0
- package/dist/commands/audit/stale-users.d.ts +2 -0
- package/dist/commands/audit/stale-users.js +21 -0
- package/dist/commands/audit/stale-workflow.d.ts +2 -0
- package/dist/commands/audit/stale-workflow.js +19 -0
- package/dist/commands/audit/suite.d.ts +2 -0
- package/dist/commands/audit/suite.js +31 -0
- package/dist/commands/audit/template-dependencies.d.ts +2 -0
- package/dist/commands/audit/template-dependencies.js +22 -0
- package/dist/commands/audit/translation-coverage.d.ts +2 -0
- package/dist/commands/audit/translation-coverage.js +22 -0
- package/dist/commands/audit/unused-media.d.ts +2 -0
- package/dist/commands/audit/unused-media.js +21 -0
- package/dist/commands/brand/docs.d.ts +9 -0
- package/dist/commands/brand/docs.js +168 -0
- package/dist/commands/brand/index.d.ts +13 -0
- package/dist/commands/brand/index.js +37 -0
- package/dist/commands/brand/ingest-enrich.d.ts +3 -0
- package/dist/commands/brand/ingest-enrich.js +71 -0
- package/dist/commands/brand/kits.d.ts +18 -0
- package/dist/commands/brand/kits.js +361 -0
- package/dist/commands/brand/review.d.ts +13 -0
- package/dist/commands/brand/review.js +65 -0
- package/dist/commands/brand/seed.d.ts +9 -0
- package/dist/commands/brand/seed.js +136 -0
- package/dist/commands/brand/sync.d.ts +11 -0
- package/dist/commands/brand/sync.js +128 -0
- package/dist/commands/brief/comments.d.ts +11 -0
- package/dist/commands/brief/comments.js +55 -0
- package/dist/commands/brief/delete.d.ts +10 -0
- package/dist/commands/brief/delete.js +40 -0
- package/dist/commands/brief/index.d.ts +19 -0
- package/dist/commands/brief/index.js +53 -0
- package/dist/commands/brief/list.d.ts +2 -0
- package/dist/commands/brief/list.js +19 -0
- package/dist/commands/brief/set-status.d.ts +10 -0
- package/dist/commands/brief/set-status.js +33 -0
- package/dist/commands/brief/show.d.ts +2 -0
- package/dist/commands/brief/show.js +19 -0
- package/dist/commands/brief/sync.d.ts +12 -0
- package/dist/commands/brief/sync.js +121 -0
- package/dist/commands/brief/todos.d.ts +9 -0
- package/dist/commands/brief/todos.js +28 -0
- package/dist/commands/brief/types.d.ts +16 -0
- package/dist/commands/brief/types.js +129 -0
- package/dist/commands/campaign/index.d.ts +2 -0
- package/dist/commands/campaign/index.js +309 -0
- package/dist/commands/campaign/sync.d.ts +12 -0
- package/dist/commands/campaign/sync.js +121 -0
- package/dist/commands/cleanup/archive.d.ts +2 -0
- package/dist/commands/cleanup/archive.js +21 -0
- package/dist/commands/cleanup/dead-templates.d.ts +2 -0
- package/dist/commands/cleanup/dead-templates.js +21 -0
- package/dist/commands/cleanup/duplicates.d.ts +2 -0
- package/dist/commands/cleanup/duplicates.js +49 -0
- package/dist/commands/cleanup/empty-folders.d.ts +2 -0
- package/dist/commands/cleanup/empty-folders.js +18 -0
- package/dist/commands/cleanup/field-set.d.ts +2 -0
- package/dist/commands/cleanup/field-set.js +44 -0
- package/dist/commands/cleanup/find-replace.d.ts +2 -0
- package/dist/commands/cleanup/find-replace.js +35 -0
- package/dist/commands/cleanup/index.d.ts +2 -0
- package/dist/commands/cleanup/index.js +48 -0
- package/dist/commands/cleanup/language-versions.d.ts +2 -0
- package/dist/commands/cleanup/language-versions.js +25 -0
- package/dist/commands/cleanup/rename.d.ts +2 -0
- package/dist/commands/cleanup/rename.js +32 -0
- package/dist/commands/cleanup/roles.d.ts +2 -0
- package/dist/commands/cleanup/roles.js +20 -0
- package/dist/commands/cleanup/shared.d.ts +2 -0
- package/dist/commands/cleanup/shared.js +15 -0
- package/dist/commands/cleanup/site-residue.d.ts +2 -0
- package/dist/commands/cleanup/site-residue.js +32 -0
- package/dist/commands/cleanup/slug-conflicts.d.ts +2 -0
- package/dist/commands/cleanup/slug-conflicts.js +54 -0
- package/dist/commands/cleanup/subtree.d.ts +2 -0
- package/dist/commands/cleanup/subtree.js +25 -0
- package/dist/commands/cleanup/users.d.ts +2 -0
- package/dist/commands/cleanup/users.js +23 -0
- package/dist/commands/cleanup/versions.d.ts +2 -0
- package/dist/commands/cleanup/versions.js +42 -0
- package/dist/commands/cleanup/workflow.d.ts +2 -0
- package/dist/commands/cleanup/workflow.js +40 -0
- package/dist/commands/config.d.ts +0 -1
- package/dist/commands/config.js +3 -3
- package/dist/commands/content/index.d.ts +2 -0
- package/dist/commands/content/index.js +11 -0
- package/dist/commands/content/version/index.d.ts +2 -0
- package/dist/commands/content/version/index.js +19 -0
- package/dist/commands/content/version/inspect.d.ts +2 -0
- package/dist/commands/content/version/inspect.js +22 -0
- package/dist/commands/content/version/set-never-publish.d.ts +2 -0
- package/dist/commands/content/version/set-never-publish.js +40 -0
- package/dist/commands/content/version/set-validity.d.ts +2 -0
- package/dist/commands/content/version/set-validity.js +30 -0
- package/dist/commands/deploy/deployments.d.ts +0 -1
- package/dist/commands/deploy/deployments.js +9 -9
- package/dist/commands/deploy/editing-host.d.ts +0 -1
- package/dist/commands/deploy/editing-host.js +25 -13
- package/dist/commands/deploy/environments/deployments.d.ts +0 -1
- package/dist/commands/deploy/environments/deployments.js +3 -3
- package/dist/commands/deploy/environments/index.d.ts +0 -1
- package/dist/commands/deploy/environments/index.js +1 -0
- package/dist/commands/deploy/environments/mutations.d.ts +0 -1
- package/dist/commands/deploy/environments/mutations.js +18 -17
- package/dist/commands/deploy/environments/queries.d.ts +1 -1
- package/dist/commands/deploy/environments/queries.js +29 -8
- package/dist/commands/deploy/environments/variables.d.ts +0 -1
- package/dist/commands/deploy/environments/variables.js +9 -8
- package/dist/commands/deploy/environments.d.ts +0 -1
- package/dist/commands/deploy/index.d.ts +0 -1
- package/dist/commands/deploy/index.js +1 -1
- package/dist/commands/deploy/logs.d.ts +0 -1
- package/dist/commands/deploy/logs.js +4 -4
- package/dist/commands/deploy/organizations.d.ts +0 -1
- package/dist/commands/deploy/organizations.js +5 -5
- package/dist/commands/deploy/projects.d.ts +0 -1
- package/dist/commands/deploy/projects.js +32 -20
- package/dist/commands/deploy/shared.d.ts +0 -1
- package/dist/commands/deploy/shared.js +1 -0
- package/dist/commands/deploy/site.d.ts +2 -3
- package/dist/commands/deploy/site.js +6 -5
- package/dist/commands/deploy/source-control.d.ts +0 -1
- package/dist/commands/deploy/source-control.js +13 -13
- package/dist/commands/deploy.d.ts +0 -1
- package/dist/commands/explain/index.d.ts +14 -0
- package/dist/commands/explain/index.js +25 -0
- package/dist/commands/explain/orphan-site.d.ts +11 -0
- package/dist/commands/explain/orphan-site.js +36 -0
- package/dist/commands/explain/why-blocked.d.ts +13 -0
- package/dist/commands/explain/why-blocked.js +42 -0
- package/dist/commands/health.d.ts +2 -0
- package/dist/commands/health.js +28 -0
- package/dist/commands/history.d.ts +0 -1
- package/dist/commands/history.js +11 -42
- package/dist/commands/init.d.ts +0 -1
- package/dist/commands/init.js +42 -8
- package/dist/commands/login.d.ts +11 -1
- package/dist/commands/login.js +35 -4
- package/dist/commands/logout.d.ts +0 -1
- package/dist/commands/logout.js +3 -3
- package/dist/commands/mcp/serve.d.ts +27 -0
- package/dist/commands/mcp/serve.js +120 -0
- package/dist/commands/mcp/tools.d.ts +8 -0
- package/dist/commands/mcp/tools.js +75 -0
- package/dist/commands/mcp.d.ts +2 -0
- package/dist/commands/mcp.js +23 -0
- package/dist/commands/policy.d.ts +16 -0
- package/dist/commands/policy.js +296 -0
- package/dist/commands/publish/all.d.ts +2 -0
- package/dist/commands/publish/all.js +41 -0
- package/dist/commands/publish/cancel.d.ts +2 -0
- package/dist/commands/publish/cancel.js +25 -0
- package/dist/commands/publish/history.d.ts +2 -0
- package/dist/commands/publish/history.js +34 -0
- package/dist/commands/publish/index.d.ts +2 -0
- package/dist/commands/publish/index.js +30 -0
- package/dist/commands/publish/item.d.ts +2 -0
- package/dist/commands/publish/item.js +55 -0
- package/dist/commands/publish/status.d.ts +2 -0
- package/dist/commands/publish/status.js +34 -0
- package/dist/commands/publish/unpublish.d.ts +2 -0
- package/dist/commands/publish/unpublish.js +52 -0
- package/dist/commands/recipe/index.d.ts +0 -1
- package/dist/commands/recipe/index.js +19 -15
- package/dist/commands/serialization/index.d.ts +0 -1
- package/dist/commands/serialization/index.js +14 -9
- package/dist/commands/serialization/package.d.ts +0 -1
- package/dist/commands/serialization/package.js +3 -3
- package/dist/commands/setup-client.d.ts +17 -0
- package/dist/commands/setup-client.js +148 -0
- package/dist/commands/shared.d.ts +72 -2
- package/dist/commands/shared.js +151 -24
- package/dist/commands/shell.d.ts +0 -1
- package/dist/commands/shell.js +1 -1
- package/dist/commands/status.d.ts +0 -1
- package/dist/commands/status.js +3 -3
- package/dist/commands/sync.d.ts +23 -0
- package/dist/commands/sync.js +154 -0
- package/dist/commands/telemetry.d.ts +0 -1
- package/dist/commands/telemetry.js +40 -2
- package/dist/commands/topics/index.d.ts +5 -0
- package/dist/commands/topics/index.js +102 -0
- package/dist/commands/webhook/create.d.ts +2 -0
- package/dist/commands/webhook/create.js +52 -0
- package/dist/commands/webhook/delete.d.ts +2 -0
- package/dist/commands/webhook/delete.js +20 -0
- package/dist/commands/webhook/event-types.d.ts +2 -0
- package/dist/commands/webhook/event-types.js +22 -0
- package/dist/commands/webhook/index.d.ts +2 -0
- package/dist/commands/webhook/index.js +33 -0
- package/dist/commands/webhook/inspect.d.ts +2 -0
- package/dist/commands/webhook/inspect.js +17 -0
- package/dist/commands/webhook/list.d.ts +2 -0
- package/dist/commands/webhook/list.js +24 -0
- package/dist/commands/webhook/shared.d.ts +2 -0
- package/dist/commands/webhook/shared.js +11 -0
- package/dist/commands/workflow/advance.d.ts +2 -0
- package/dist/commands/workflow/advance.js +22 -0
- package/dist/commands/workflow/apply.d.ts +2 -0
- package/dist/commands/workflow/apply.js +22 -0
- package/dist/commands/workflow/assigned.d.ts +2 -0
- package/dist/commands/workflow/assigned.js +21 -0
- package/dist/commands/workflow/index.d.ts +2 -0
- package/dist/commands/workflow/index.js +35 -0
- package/dist/commands/workflow/inspect.d.ts +2 -0
- package/dist/commands/workflow/inspect.js +17 -0
- package/dist/commands/workflow/list-commands.d.ts +2 -0
- package/dist/commands/workflow/list-commands.js +17 -0
- package/dist/commands/workflow/list-defs.d.ts +2 -0
- package/dist/commands/workflow/list-defs.js +17 -0
- package/dist/commands/workflow/reset.d.ts +2 -0
- package/dist/commands/workflow/reset.js +20 -0
- package/dist/commands/workflow/shared.d.ts +3 -0
- package/dist/commands/workflow/shared.js +12 -0
- package/dist/commands/workflow/status.d.ts +2 -0
- package/dist/commands/workflow/status.js +18 -0
- package/dist/config/env-overrides.d.ts +0 -1
- package/dist/config/env-overrides.js +41 -5
- package/dist/config/index.d.ts +15 -3
- package/dist/config/index.js +43 -3
- package/dist/config/modules.d.ts +0 -1
- package/dist/config/modules.js +2 -2
- package/dist/config/paths.d.ts +0 -1
- package/dist/config/paths.js +11 -2
- package/dist/config/root-config.d.ts +24 -1
- package/dist/config/root-config.js +84 -7
- package/dist/config/schema.json +113 -25
- package/dist/config/types.d.ts +228 -13
- package/dist/config/types.js +1 -1
- package/dist/config/validation.d.ts +1 -4
- package/dist/content/api/version-fields.d.ts +129 -0
- package/dist/content/api/version-fields.js +193 -0
- package/dist/content/index.d.ts +15 -0
- package/dist/content/index.js +40 -0
- package/dist/content/tasks/shared.d.ts +86 -0
- package/dist/content/tasks/shared.js +130 -0
- package/dist/content/tasks/version-inspect.d.ts +13 -0
- package/dist/content/tasks/version-inspect.js +56 -0
- package/dist/content/tasks/version-never-publish.d.ts +16 -0
- package/dist/content/tasks/version-never-publish.js +115 -0
- package/dist/content/tasks/version-validity.d.ts +24 -0
- package/dist/content/tasks/version-validity.js +159 -0
- package/dist/deploy/api/client-naming.d.ts +80 -0
- package/dist/deploy/api/client-naming.js +124 -0
- package/dist/deploy/api/client.d.ts +72 -0
- package/dist/deploy/api/client.js +72 -0
- package/dist/deploy/api/clients.d.ts +126 -0
- package/dist/deploy/api/clients.js +89 -0
- package/dist/deploy/api/common/headers.d.ts +0 -1
- package/dist/deploy/api/common/request.d.ts +0 -5
- package/dist/deploy/api/common/request.js +93 -120
- package/dist/deploy/api/common/transport-events.d.ts +31 -0
- package/dist/deploy/api/common/transport-events.js +24 -0
- package/dist/deploy/api/common/types.d.ts +60 -1
- package/dist/deploy/api/deployment-logs.d.ts +0 -1
- package/dist/deploy/api/deployment-logs.js +5 -5
- package/dist/deploy/api/deployments.d.ts +1 -2
- package/dist/deploy/api/deployments.js +22 -20
- package/dist/deploy/api/environments.d.ts +28 -2
- package/dist/deploy/api/environments.js +103 -20
- package/dist/deploy/api/index.d.ts +31 -9
- package/dist/deploy/api/index.js +129 -22
- package/dist/deploy/api/logs.d.ts +1 -2
- package/dist/deploy/api/logs.js +9 -7
- package/dist/deploy/api/organizations.d.ts +1 -2
- package/dist/deploy/api/organizations.js +8 -7
- package/dist/deploy/api/projects.d.ts +19 -4
- package/dist/deploy/api/projects.js +75 -13
- package/dist/deploy/api/source-control.d.ts +1 -2
- package/dist/deploy/api/source-control.js +25 -24
- package/dist/deploy/api.d.ts +0 -1
- package/dist/deploy/context.d.ts +52 -0
- package/dist/deploy/context.js +234 -0
- package/dist/deploy/index.d.ts +11 -0
- package/dist/deploy/index.js +38 -0
- package/dist/deploy/tasks/deployment-result.d.ts +0 -1
- package/dist/deploy/tasks/deployments.d.ts +0 -1
- package/dist/deploy/tasks/deployments.js +12 -11
- package/dist/deploy/tasks/editing-host.d.ts +0 -1
- package/dist/deploy/tasks/editing-host.js +48 -18
- package/dist/deploy/tasks/environments.d.ts +3 -3
- package/dist/deploy/tasks/environments.js +108 -24
- package/dist/deploy/tasks/health.d.ts +23 -0
- package/dist/deploy/tasks/health.js +181 -0
- package/dist/deploy/tasks/logs.d.ts +0 -1
- package/dist/deploy/tasks/logs.js +4 -4
- package/dist/deploy/tasks/organizations.d.ts +0 -1
- package/dist/deploy/tasks/organizations.js +5 -5
- package/dist/deploy/tasks/projects.d.ts +6 -2
- package/dist/deploy/tasks/projects.js +61 -42
- package/dist/deploy/tasks/shared.d.ts +9 -52
- package/dist/deploy/tasks/shared.js +46 -222
- package/dist/deploy/tasks/site-bind.d.ts +1 -2
- package/dist/deploy/tasks/site-bind.js +7 -7
- package/dist/deploy/tasks/site.d.ts +2 -3
- package/dist/deploy/tasks/site.js +4 -4
- package/dist/deploy/tasks/source-control.d.ts +0 -1
- package/dist/deploy/tasks/source-control.js +14 -14
- package/dist/deploy/tasks/transport-spinner.d.ts +5 -0
- package/dist/deploy/tasks/transport-spinner.js +118 -0
- package/dist/deploy/tasks/types.d.ts +16 -3
- package/dist/deploy/tasks/types.js +1 -1
- package/dist/hygiene/api/client.d.ts +294 -0
- package/dist/hygiene/api/client.js +827 -0
- package/dist/hygiene/api/graphql.d.ts +4 -0
- package/dist/hygiene/api/graphql.js +18 -0
- package/dist/hygiene/audit-suite.d.ts +84 -0
- package/dist/hygiene/audit-suite.js +95 -0
- package/dist/hygiene/baseline.d.ts +56 -0
- package/dist/hygiene/baseline.js +248 -0
- package/dist/hygiene/cache.d.ts +35 -0
- package/dist/hygiene/cache.js +179 -0
- package/dist/hygiene/history.d.ts +70 -0
- package/dist/hygiene/history.js +148 -0
- package/dist/hygiene/index.d.ts +128 -0
- package/dist/hygiene/index.js +168 -0
- package/dist/hygiene/output-adapters.d.ts +49 -0
- package/dist/hygiene/output-adapters.js +270 -0
- package/dist/hygiene/tasks/audit/all.d.ts +58 -0
- package/dist/hygiene/tasks/audit/all.js +274 -0
- package/dist/hygiene/tasks/audit/alt-text-missing.d.ts +27 -0
- package/dist/hygiene/tasks/audit/alt-text-missing.js +87 -0
- package/dist/hygiene/tasks/audit/baseline.d.ts +66 -0
- package/dist/hygiene/tasks/audit/baseline.js +185 -0
- package/dist/hygiene/tasks/audit/broken-images.d.ts +41 -0
- package/dist/hygiene/tasks/audit/broken-images.js +183 -0
- package/dist/hygiene/tasks/audit/broken-links.d.ts +53 -0
- package/dist/hygiene/tasks/audit/broken-links.js +121 -0
- package/dist/hygiene/tasks/audit/datasource-missing.d.ts +44 -0
- package/dist/hygiene/tasks/audit/datasource-missing.js +146 -0
- package/dist/hygiene/tasks/audit/dead-templates.d.ts +46 -0
- package/dist/hygiene/tasks/audit/dead-templates.js +216 -0
- package/dist/hygiene/tasks/audit/duplicates.d.ts +48 -0
- package/dist/hygiene/tasks/audit/duplicates.js +94 -0
- package/dist/hygiene/tasks/audit/empty-items.d.ts +24 -0
- package/dist/hygiene/tasks/audit/empty-items.js +53 -0
- package/dist/hygiene/tasks/audit/empty-links.d.ts +37 -0
- package/dist/hygiene/tasks/audit/empty-links.js +145 -0
- package/dist/hygiene/tasks/audit/empty-roles.d.ts +41 -0
- package/dist/hygiene/tasks/audit/empty-roles.js +51 -0
- package/dist/hygiene/tasks/audit/fallback-drift.d.ts +53 -0
- package/dist/hygiene/tasks/audit/fallback-drift.js +115 -0
- package/dist/hygiene/tasks/audit/find-replace.d.ts +75 -0
- package/dist/hygiene/tasks/audit/find-replace.js +142 -0
- package/dist/hygiene/tasks/audit/heavy-templates.d.ts +46 -0
- package/dist/hygiene/tasks/audit/heavy-templates.js +73 -0
- package/dist/hygiene/tasks/audit/history.d.ts +30 -0
- package/dist/hygiene/tasks/audit/history.js +161 -0
- package/dist/hygiene/tasks/audit/language-data.d.ts +55 -0
- package/dist/hygiene/tasks/audit/language-data.js +126 -0
- package/dist/hygiene/tasks/audit/large-fields.d.ts +48 -0
- package/dist/hygiene/tasks/audit/large-fields.js +84 -0
- package/dist/hygiene/tasks/audit/missing-meta.d.ts +57 -0
- package/dist/hygiene/tasks/audit/missing-meta.js +97 -0
- package/dist/hygiene/tasks/audit/orphans.d.ts +47 -0
- package/dist/hygiene/tasks/audit/orphans.js +78 -0
- package/dist/hygiene/tasks/audit/page-design-orphans.d.ts +24 -0
- package/dist/hygiene/tasks/audit/page-design-orphans.js +80 -0
- package/dist/hygiene/tasks/audit/personalization-broken.d.ts +25 -0
- package/dist/hygiene/tasks/audit/personalization-broken.js +96 -0
- package/dist/hygiene/tasks/audit/references.d.ts +70 -0
- package/dist/hygiene/tasks/audit/references.js +142 -0
- package/dist/hygiene/tasks/audit/role-bloat.d.ts +42 -0
- package/dist/hygiene/tasks/audit/role-bloat.js +64 -0
- package/dist/hygiene/tasks/audit/site-residue.d.ts +39 -0
- package/dist/hygiene/tasks/audit/site-residue.js +164 -0
- package/dist/hygiene/tasks/audit/slug-conflicts.d.ts +58 -0
- package/dist/hygiene/tasks/audit/slug-conflicts.js +87 -0
- package/dist/hygiene/tasks/audit/stale-content.d.ts +68 -0
- package/dist/hygiene/tasks/audit/stale-content.js +133 -0
- package/dist/hygiene/tasks/audit/stale-users.d.ts +54 -0
- package/dist/hygiene/tasks/audit/stale-users.js +83 -0
- package/dist/hygiene/tasks/audit/stale-workflow.d.ts +50 -0
- package/dist/hygiene/tasks/audit/stale-workflow.js +109 -0
- package/dist/hygiene/tasks/audit/suite-run.d.ts +28 -0
- package/dist/hygiene/tasks/audit/suite-run.js +46 -0
- package/dist/hygiene/tasks/audit/template-dependencies.d.ts +72 -0
- package/dist/hygiene/tasks/audit/template-dependencies.js +97 -0
- package/dist/hygiene/tasks/audit/translation-coverage.d.ts +64 -0
- package/dist/hygiene/tasks/audit/translation-coverage.js +123 -0
- package/dist/hygiene/tasks/audit/unused-media.d.ts +58 -0
- package/dist/hygiene/tasks/audit/unused-media.js +144 -0
- package/dist/hygiene/tasks/browse.d.ts +49 -0
- package/dist/hygiene/tasks/browse.js +50 -0
- package/dist/hygiene/tasks/cleanup/archive-purge.d.ts +50 -0
- package/dist/hygiene/tasks/cleanup/archive-purge.js +129 -0
- package/dist/hygiene/tasks/cleanup/dead-templates.d.ts +74 -0
- package/dist/hygiene/tasks/cleanup/dead-templates.js +247 -0
- package/dist/hygiene/tasks/cleanup/duplicates.d.ts +86 -0
- package/dist/hygiene/tasks/cleanup/duplicates.js +189 -0
- package/dist/hygiene/tasks/cleanup/empty-folders.d.ts +75 -0
- package/dist/hygiene/tasks/cleanup/empty-folders.js +165 -0
- package/dist/hygiene/tasks/cleanup/field-set.d.ts +108 -0
- package/dist/hygiene/tasks/cleanup/field-set.js +230 -0
- package/dist/hygiene/tasks/cleanup/find-replace.d.ts +77 -0
- package/dist/hygiene/tasks/cleanup/find-replace.js +180 -0
- package/dist/hygiene/tasks/cleanup/language-version-add.d.ts +74 -0
- package/dist/hygiene/tasks/cleanup/language-version-add.js +136 -0
- package/dist/hygiene/tasks/cleanup/rename.d.ts +78 -0
- package/dist/hygiene/tasks/cleanup/rename.js +152 -0
- package/dist/hygiene/tasks/cleanup/roles.d.ts +58 -0
- package/dist/hygiene/tasks/cleanup/roles.js +177 -0
- package/dist/hygiene/tasks/cleanup/site-residue.d.ts +55 -0
- package/dist/hygiene/tasks/cleanup/site-residue.js +247 -0
- package/dist/hygiene/tasks/cleanup/slug-conflicts.d.ts +126 -0
- package/dist/hygiene/tasks/cleanup/slug-conflicts.js +296 -0
- package/dist/hygiene/tasks/cleanup/subtree-prune.d.ts +40 -0
- package/dist/hygiene/tasks/cleanup/subtree-prune.js +113 -0
- package/dist/hygiene/tasks/cleanup/subtree.d.ts +123 -0
- package/dist/hygiene/tasks/cleanup/subtree.js +312 -0
- package/dist/hygiene/tasks/cleanup/users.d.ts +48 -0
- package/dist/hygiene/tasks/cleanup/users.js +92 -0
- package/dist/hygiene/tasks/cleanup/versions-archive.d.ts +57 -0
- package/dist/hygiene/tasks/cleanup/versions-archive.js +162 -0
- package/dist/hygiene/tasks/cleanup/versions-prune.d.ts +76 -0
- package/dist/hygiene/tasks/cleanup/versions-prune.js +194 -0
- package/dist/hygiene/tasks/cleanup/workflow-advance.d.ts +76 -0
- package/dist/hygiene/tasks/cleanup/workflow-advance.js +185 -0
- package/dist/hygiene/tasks/cleanup/workflow-apply.d.ts +97 -0
- package/dist/hygiene/tasks/cleanup/workflow-apply.js +310 -0
- package/dist/hygiene/tasks/explain/orphan-site.d.ts +53 -0
- package/dist/hygiene/tasks/explain/orphan-site.js +83 -0
- package/dist/hygiene/tasks/explain/why-blocked.d.ts +81 -0
- package/dist/hygiene/tasks/explain/why-blocked.js +149 -0
- package/dist/hygiene/tasks/reference-kind.d.ts +47 -0
- package/dist/hygiene/tasks/reference-kind.js +73 -0
- package/dist/hygiene/tasks/shared.d.ts +350 -0
- package/dist/hygiene/tasks/shared.js +532 -0
- package/dist/mcp/auth.d.ts +80 -0
- package/dist/mcp/auth.js +165 -0
- package/dist/mcp/build-registry.d.ts +12 -0
- package/dist/mcp/build-registry.js +75 -0
- package/dist/mcp/descriptions.d.ts +22 -0
- package/dist/mcp/descriptions.js +113 -0
- package/dist/mcp/dispatch.d.ts +44 -0
- package/dist/mcp/dispatch.js +110 -0
- package/dist/mcp/errors.d.ts +31 -0
- package/dist/mcp/errors.js +117 -0
- package/dist/mcp/http.d.ts +42 -0
- package/dist/mcp/http.js +128 -0
- package/dist/mcp/logging.d.ts +28 -0
- package/dist/mcp/logging.js +78 -0
- package/dist/mcp/prompts/workflows.d.ts +13 -0
- package/dist/mcp/prompts/workflows.js +171 -0
- package/dist/mcp/redact.d.ts +11 -0
- package/dist/mcp/redact.js +35 -0
- package/dist/mcp/registry.d.ts +84 -0
- package/dist/mcp/registry.js +62 -0
- package/dist/mcp/resources/brand.d.ts +20 -0
- package/dist/mcp/resources/brand.js +514 -0
- package/dist/mcp/resources/env.d.ts +10 -0
- package/dist/mcp/resources/env.js +120 -0
- package/dist/mcp/resources/help.d.ts +10 -0
- package/dist/mcp/resources/help.js +475 -0
- package/dist/mcp/resources/recipes.d.ts +13 -0
- package/dist/mcp/resources/recipes.js +270 -0
- package/dist/mcp/schemas/common.d.ts +22 -0
- package/dist/mcp/schemas/common.js +43 -0
- package/dist/mcp/server.d.ts +26 -0
- package/dist/mcp/server.js +88 -0
- package/dist/mcp/tools/access-check.d.ts +11 -0
- package/dist/mcp/tools/access-check.js +47 -0
- package/dist/mcp/tools/agents-recipe.d.ts +2 -0
- package/dist/mcp/tools/agents-recipe.js +139 -0
- package/dist/mcp/tools/agents.d.ts +2 -0
- package/dist/mcp/tools/agents.js +148 -0
- package/dist/mcp/tools/audit.d.ts +41 -0
- package/dist/mcp/tools/audit.js +584 -0
- package/dist/mcp/tools/bootstrap.d.ts +8 -0
- package/dist/mcp/tools/bootstrap.js +200 -0
- package/dist/mcp/tools/brand-recipe.d.ts +2 -0
- package/dist/mcp/tools/brand-recipe.js +123 -0
- package/dist/mcp/tools/brand.d.ts +28 -0
- package/dist/mcp/tools/brand.js +549 -0
- package/dist/mcp/tools/brief-recipe.d.ts +2 -0
- package/dist/mcp/tools/brief-recipe.js +123 -0
- package/dist/mcp/tools/brief.d.ts +16 -0
- package/dist/mcp/tools/brief.js +388 -0
- package/dist/mcp/tools/browse.d.ts +9 -0
- package/dist/mcp/tools/browse.js +57 -0
- package/dist/mcp/tools/campaign-recipe.d.ts +2 -0
- package/dist/mcp/tools/campaign-recipe.js +125 -0
- package/dist/mcp/tools/campaign.d.ts +20 -0
- package/dist/mcp/tools/campaign.js +342 -0
- package/dist/mcp/tools/cleanup.d.ts +22 -0
- package/dist/mcp/tools/cleanup.js +608 -0
- package/dist/mcp/tools/deploy.d.ts +19 -0
- package/dist/mcp/tools/deploy.js +797 -0
- package/dist/mcp/tools/explain.d.ts +2 -0
- package/dist/mcp/tools/explain.js +132 -0
- package/dist/mcp/tools/inspector.d.ts +12 -0
- package/dist/mcp/tools/inspector.js +101 -0
- package/dist/mcp/tools/onboard.d.ts +11 -0
- package/dist/mcp/tools/onboard.js +65 -0
- package/dist/mcp/tools/publish.d.ts +30 -0
- package/dist/mcp/tools/publish.js +173 -0
- package/dist/mcp/tools/recipe-sync.d.ts +2 -0
- package/dist/mcp/tools/recipe-sync.js +117 -0
- package/dist/mcp/tools/recipe.d.ts +18 -0
- package/dist/mcp/tools/recipe.js +250 -0
- package/dist/mcp/tools/serialization.d.ts +17 -0
- package/dist/mcp/tools/serialization.js +282 -0
- package/dist/mcp/tools/webhook.d.ts +12 -0
- package/dist/mcp/tools/webhook.js +246 -0
- package/dist/mcp/tools/workflow.d.ts +21 -0
- package/dist/mcp/tools/workflow.js +436 -0
- package/dist/policy/access-check.d.ts +56 -0
- package/dist/policy/access-check.js +160 -0
- package/dist/policy/allow-write.d.ts +37 -0
- package/dist/policy/allow-write.js +78 -0
- package/dist/policy/authorize.d.ts +36 -0
- package/dist/policy/authorize.js +102 -0
- package/dist/policy/caller.d.ts +23 -0
- package/dist/policy/caller.js +66 -0
- package/dist/policy/enforce.d.ts +25 -0
- package/dist/policy/enforce.js +57 -0
- package/dist/policy/enroll.d.ts +57 -0
- package/dist/policy/enroll.js +101 -0
- package/dist/policy/environment.d.ts +35 -0
- package/dist/policy/environment.js +44 -0
- package/dist/policy/identity.d.ts +24 -0
- package/dist/policy/identity.js +58 -0
- package/dist/policy/index.d.ts +22 -0
- package/dist/policy/index.js +42 -0
- package/dist/policy/operations.d.ts +24 -0
- package/dist/policy/operations.js +37 -0
- package/dist/policy/organization.d.ts +62 -0
- package/dist/policy/organization.js +97 -0
- package/dist/policy/paths.d.ts +21 -0
- package/dist/policy/paths.js +46 -0
- package/dist/policy/resolve.d.ts +15 -0
- package/dist/policy/resolve.js +67 -0
- package/dist/policy/schema.d.ts +137 -0
- package/dist/policy/schema.js +92 -0
- package/dist/policy/store.d.ts +25 -0
- package/dist/policy/store.js +85 -0
- package/dist/policy/types.d.ts +52 -0
- package/dist/policy/types.js +22 -0
- package/dist/program.d.ts +35 -0
- package/dist/program.js +131 -0
- package/dist/publishing/api/auth.d.ts +49 -0
- package/dist/publishing/api/auth.js +173 -0
- package/dist/publishing/api/client.d.ts +5 -0
- package/dist/publishing/api/client.js +153 -0
- package/dist/publishing/api/languages.d.ts +61 -0
- package/dist/publishing/api/languages.js +116 -0
- package/dist/publishing/api/path-resolver.d.ts +10 -0
- package/dist/publishing/api/path-resolver.js +76 -0
- package/dist/publishing/api/sites.d.ts +23 -0
- package/dist/publishing/api/sites.js +27 -0
- package/dist/publishing/api/types.d.ts +166 -0
- package/dist/publishing/api/types.js +17 -0
- package/dist/publishing/index.d.ts +25 -0
- package/dist/publishing/index.js +51 -0
- package/dist/publishing/job-diagnostics.d.ts +44 -0
- package/dist/publishing/job-diagnostics.js +87 -0
- package/dist/publishing/job-watcher.d.ts +33 -0
- package/dist/publishing/job-watcher.js +118 -0
- package/dist/publishing/tasks/all.d.ts +41 -0
- package/dist/publishing/tasks/all.js +234 -0
- package/dist/publishing/tasks/cancel.d.ts +18 -0
- package/dist/publishing/tasks/cancel.js +147 -0
- package/dist/publishing/tasks/history.d.ts +22 -0
- package/dist/publishing/tasks/history.js +85 -0
- package/dist/publishing/tasks/item.d.ts +69 -0
- package/dist/publishing/tasks/item.js +194 -0
- package/dist/publishing/tasks/status.d.ts +17 -0
- package/dist/publishing/tasks/status.js +74 -0
- package/dist/publishing/tasks/unpublish.d.ts +69 -0
- package/dist/publishing/tasks/unpublish.js +546 -0
- package/dist/recipe/api/auth.d.ts +1 -2
- package/dist/recipe/api/auth.js +1 -1
- package/dist/recipe/api/authoring-client.d.ts +9 -3
- package/dist/recipe/api/authoring-client.js +101 -17
- package/dist/recipe/api/client.d.ts +50 -1
- package/dist/recipe/api/graphql.d.ts +2 -3
- package/dist/recipe/api/graphql.js +1 -1
- package/dist/recipe/api/ref-encoding.d.ts +0 -1
- package/dist/recipe/api/ref-encoding.js +5 -5
- package/dist/recipe/api/site-discovery.d.ts +1 -2
- package/dist/recipe/api/sites-client.d.ts +6 -3
- package/dist/recipe/api/sites-client.js +11 -8
- package/dist/recipe/cache.d.ts +0 -1
- package/dist/recipe/compile/component-section.d.ts +1 -2
- package/dist/recipe/compile/component-section.js +2 -2
- package/dist/recipe/compile/component-template.d.ts +0 -1
- package/dist/recipe/compile/component-template.js +15 -19
- package/dist/recipe/compile/content-item.d.ts +42 -22
- package/dist/recipe/compile/content-item.js +198 -46
- package/dist/recipe/compile/content-template.d.ts +0 -1
- package/dist/recipe/compile/content-template.js +25 -1
- package/dist/recipe/compile/design-parameters-template.d.ts +13 -0
- package/dist/recipe/compile/design-parameters-template.js +92 -0
- package/dist/recipe/compile/enumeration.d.ts +0 -1
- package/dist/recipe/compile/enumeration.js +4 -4
- package/dist/recipe/compile/page-design.d.ts +0 -1
- package/dist/recipe/compile/page-design.js +1 -1
- package/dist/recipe/compile/page-template.d.ts +30 -0
- package/dist/recipe/compile/page-template.js +121 -0
- package/dist/recipe/compile/page.d.ts +26 -0
- package/dist/recipe/compile/page.js +184 -0
- package/dist/recipe/compile/partial-design.d.ts +0 -1
- package/dist/recipe/compile/partial-design.js +1 -1
- package/dist/recipe/compile/placeholder.d.ts +23 -0
- package/dist/recipe/compile/placeholder.js +32 -0
- package/dist/recipe/compile/section-definition.d.ts +0 -1
- package/dist/recipe/compile/shared.d.ts +52 -7
- package/dist/recipe/compile/shared.js +55 -15
- package/dist/recipe/compile/site-template.d.ts +0 -1
- package/dist/recipe/compile/site-template.js +1 -1
- package/dist/recipe/compile/site.d.ts +0 -1
- package/dist/recipe/compile/site.js +1 -1
- package/dist/recipe/compile/webhook-authorization.d.ts +23 -0
- package/dist/recipe/compile/webhook-authorization.js +116 -0
- package/dist/recipe/compile/workflow.d.ts +46 -0
- package/dist/recipe/compile/workflow.js +368 -0
- package/dist/recipe/compile.d.ts +19 -3
- package/dist/recipe/compile.js +297 -11
- package/dist/recipe/ensure-marker-field.d.ts +25 -0
- package/dist/recipe/ensure-marker-field.js +140 -0
- package/dist/recipe/execute.d.ts +19 -2
- package/dist/recipe/execute.js +39 -8
- package/dist/recipe/guids.d.ts +106 -9
- package/dist/recipe/guids.js +126 -15
- package/dist/recipe/index.d.ts +11 -5
- package/dist/recipe/index.js +46 -23
- package/dist/recipe/io.d.ts +0 -1
- package/dist/recipe/io.js +33 -10
- package/dist/recipe/ir/operations.d.ts +66 -4
- package/dist/recipe/ir/operations.js +55 -2
- package/dist/recipe/ir/sitecore-templates.d.ts +87 -1
- package/dist/recipe/ir/sitecore-templates.js +94 -1
- package/dist/recipe/layout/emit.d.ts +22 -3
- package/dist/recipe/layout/emit.js +18 -7
- package/dist/recipe/layout/parse.d.ts +164 -0
- package/dist/recipe/layout/parse.js +295 -0
- package/dist/recipe/layout/templates-mapping.d.ts +0 -1
- package/dist/recipe/marker.d.ts +28 -0
- package/dist/recipe/marker.js +37 -0
- package/dist/recipe/plan.d.ts +9 -2
- package/dist/recipe/plan.js +195 -19
- package/dist/recipe/policy.d.ts +0 -1
- package/dist/recipe/policy.js +19 -1
- package/dist/recipe/read-current.d.ts +109 -0
- package/dist/recipe/read-current.js +1285 -0
- package/dist/recipe/recipe-kind.d.ts +4 -0
- package/dist/recipe/recipe-kind.js +217 -0
- package/dist/recipe/rollback-log.d.ts +52 -0
- package/dist/recipe/rollback-log.js +90 -0
- package/dist/recipe/rollback.d.ts +12 -1
- package/dist/recipe/rollback.js +32 -7
- package/dist/recipe/sandbox/load.d.ts +17 -0
- package/dist/recipe/sandbox/load.js +145 -0
- package/dist/recipe/sandbox/recipe-runner.cjs +49 -0
- package/dist/recipe/sandbox/transpile.d.ts +17 -0
- package/dist/recipe/sandbox/transpile.js +46 -0
- package/dist/recipe/schema/field-types.d.ts +3 -4
- package/dist/recipe/schema/recipe.d.ts +1631 -213
- package/dist/recipe/schema/recipe.js +576 -37
- package/dist/recipe/schema/source-fields.d.ts +0 -1
- package/dist/recipe/tasks/compile.d.ts +1 -2
- package/dist/recipe/tasks/compile.js +14 -4
- package/dist/recipe/tasks/diff.d.ts +1 -2
- package/dist/recipe/tasks/placeholder-allow.d.ts +0 -1
- package/dist/recipe/tasks/placeholder-allow.js +3 -7
- package/dist/recipe/tasks/plan.d.ts +3 -4
- package/dist/recipe/tasks/plan.js +5 -5
- package/dist/recipe/tasks/prune-defaults.d.ts +1 -2
- package/dist/recipe/tasks/prune-defaults.js +6 -7
- package/dist/recipe/tasks/push.d.ts +1 -2
- package/dist/recipe/tasks/push.js +46 -6
- package/dist/recipe/tasks/shared.d.ts +21 -4
- package/dist/recipe/tasks/shared.js +34 -21
- package/dist/recipe/unstable.d.ts +18 -0
- package/dist/recipe/unstable.js +36 -0
- package/dist/recipe/validate.d.ts +51 -2
- package/dist/recipe/validate.js +162 -15
- package/dist/scripting/connect.d.ts +24 -0
- package/dist/scripting/connect.js +17 -0
- package/dist/scripting/helpers/multilist.d.ts +26 -0
- package/dist/scripting/helpers/multilist.js +75 -0
- package/dist/scripting/index.d.ts +20 -0
- package/dist/scripting/index.js +57 -0
- package/dist/serialization/api/auth.d.ts +57 -0
- package/dist/serialization/api/auth.js +433 -0
- package/dist/serialization/api/client.d.ts +41 -0
- package/dist/serialization/api/client.js +41 -0
- package/dist/serialization/api/graphql.d.ts +11 -0
- package/dist/serialization/api/history.d.ts +8 -0
- package/dist/serialization/api/index.d.ts +23 -0
- package/dist/serialization/api/index.js +64 -0
- package/dist/serialization/api/items.d.ts +7 -0
- package/dist/serialization/api/items.js +132 -0
- package/dist/serialization/api/publish.d.ts +43 -0
- package/dist/serialization/api/publish.js +67 -0
- package/dist/serialization/api/roles.d.ts +8 -0
- package/dist/serialization/api/types.d.ts +65 -0
- package/dist/serialization/api/types.js +2 -0
- package/dist/serialization/api/users.d.ts +8 -0
- package/dist/serialization/commands.d.ts +0 -1
- package/dist/serialization/compare.d.ts +0 -1
- package/dist/serialization/context.d.ts +25 -0
- package/dist/serialization/context.js +58 -0
- package/dist/serialization/field-filter.d.ts +0 -1
- package/dist/serialization/filesystem-store/constants.d.ts +0 -1
- package/dist/serialization/filesystem-store/items.d.ts +0 -1
- package/dist/serialization/filesystem-store/items.js +1 -1
- package/dist/serialization/filesystem-store/roles.d.ts +1 -2
- package/dist/serialization/filesystem-store/users.d.ts +1 -2
- package/dist/serialization/filesystem-store/utils.d.ts +0 -1
- package/dist/serialization/index.d.ts +12 -0
- package/dist/serialization/index.js +32 -0
- package/dist/serialization/item-path.d.ts +0 -1
- package/dist/serialization/item-path.js +3 -3
- package/dist/serialization/path-provider.d.ts +0 -1
- package/dist/serialization/path-provider.js +4 -4
- package/dist/serialization/signature.d.ts +0 -1
- package/dist/serialization/tasks/diff.d.ts +0 -1
- package/dist/serialization/tasks/diff.js +176 -48
- package/dist/serialization/tasks/env/constants.d.ts +13 -1
- package/dist/serialization/tasks/env/constants.js +64 -1
- package/dist/serialization/tasks/env/deploy-token.d.ts +0 -1
- package/dist/serialization/tasks/env/deploy-token.js +69 -17
- package/dist/serialization/tasks/env/init/auth.d.ts +11 -3
- package/dist/serialization/tasks/env/init/auth.js +19 -17
- package/dist/serialization/tasks/env/init/deploy-lookup.d.ts +1 -2
- package/dist/serialization/tasks/env/init/deploy-lookup.js +18 -5
- package/dist/serialization/tasks/env/init.d.ts +0 -1
- package/dist/serialization/tasks/env/init.js +18 -12
- package/dist/serialization/tasks/env/logout.d.ts +0 -1
- package/dist/serialization/tasks/env/logout.js +13 -6
- package/dist/serialization/tasks/env/onboard.d.ts +40 -0
- package/dist/serialization/tasks/env/onboard.js +53 -0
- package/dist/serialization/tasks/env/setup-clients.d.ts +24 -0
- package/dist/serialization/tasks/env/setup-clients.js +119 -0
- package/dist/serialization/tasks/env/setup-env.d.ts +54 -0
- package/dist/serialization/tasks/env/setup-env.js +216 -0
- package/dist/serialization/tasks/env/setup-org-client.d.ts +21 -0
- package/dist/serialization/tasks/env/setup-org-client.js +146 -0
- package/dist/serialization/tasks/env/status.d.ts +0 -1
- package/dist/serialization/tasks/env/status.js +36 -11
- package/dist/serialization/tasks/helpers/collect.d.ts +1 -2
- package/dist/serialization/tasks/helpers/collect.js +22 -15
- package/dist/serialization/tasks/helpers/commands.d.ts +0 -1
- package/dist/serialization/tasks/helpers/filesystem.d.ts +0 -1
- package/dist/serialization/tasks/helpers/filesystem.js +4 -4
- package/dist/serialization/tasks/helpers/items.d.ts +0 -1
- package/dist/serialization/tasks/helpers/sitecore.d.ts +1 -2
- package/dist/serialization/tasks/helpers/sitecore.js +2 -2
- package/dist/serialization/tasks/info.d.ts +0 -1
- package/dist/serialization/tasks/package.d.ts +0 -1
- package/dist/serialization/tasks/package.js +21 -16
- package/dist/serialization/tasks/pull.d.ts +0 -1
- package/dist/serialization/tasks/pull.js +24 -9
- package/dist/serialization/tasks/push.d.ts +0 -1
- package/dist/serialization/tasks/push.js +27 -11
- package/dist/serialization/tasks/roles.d.ts +2 -2
- package/dist/serialization/tasks/roles.js +9 -9
- package/dist/serialization/tasks/shared.d.ts +9 -16
- package/dist/serialization/tasks/shared.js +14 -44
- package/dist/serialization/tasks/types.d.ts +44 -4
- package/dist/serialization/tasks/types.js +1 -1
- package/dist/serialization/tasks/users.d.ts +2 -2
- package/dist/serialization/tasks/users.js +9 -9
- package/dist/serialization/tasks/validate.d.ts +0 -1
- package/dist/serialization/tasks/validate.js +2 -2
- package/dist/serialization/tasks/watch.d.ts +0 -1
- package/dist/serialization/tasks/watch.js +9 -8
- package/dist/serialization/tree-spec.d.ts +0 -1
- package/dist/serialization/tree-spec.js +21 -21
- package/dist/serialization/types.d.ts +0 -1
- package/dist/serialization/wildcard.d.ts +0 -1
- package/dist/serialization/wildcard.js +2 -2
- package/dist/serialization/yaml.d.ts +0 -1
- package/dist/serialization/yaml.js +1 -1
- package/dist/shared/browser.d.ts +0 -1
- package/dist/shared/cli-options.d.ts +0 -1
- package/dist/shared/cli-tasks.d.ts +1 -2
- package/dist/shared/cli-tasks.js +2 -2
- package/dist/shared/client-credential.d.ts +82 -0
- package/dist/shared/client-credential.js +117 -0
- package/dist/shared/concurrency.d.ts +20 -0
- package/dist/shared/concurrency.js +67 -0
- package/dist/shared/config-template.d.ts +0 -1
- package/dist/shared/credential-matrix.d.ts +83 -0
- package/dist/shared/credential-matrix.js +65 -0
- package/dist/shared/env-tier.d.ts +2 -0
- package/dist/shared/env-tier.js +31 -0
- package/dist/shared/envelope.d.ts +69 -0
- package/dist/shared/envelope.js +84 -0
- package/dist/shared/errors.d.ts +79 -9
- package/dist/shared/errors.js +49 -11
- package/dist/shared/graphql.d.ts +2 -3
- package/dist/shared/graphql.js +31 -15
- package/dist/shared/history.d.ts +25 -1
- package/dist/shared/history.js +35 -1
- package/dist/shared/human-only-operations.d.ts +28 -0
- package/dist/shared/human-only-operations.js +33 -0
- package/dist/shared/keychain.d.ts +68 -1
- package/dist/shared/keychain.js +416 -46
- package/dist/shared/logger.d.ts +2 -1
- package/dist/shared/logger.js +12 -1
- package/dist/shared/output.d.ts +0 -1
- package/dist/shared/prompt.d.ts +0 -1
- package/dist/shared/prompt.js +2 -2
- package/dist/shared/publish-audit.d.ts +154 -0
- package/dist/shared/publish-audit.js +52 -0
- package/dist/shared/publish-consent.d.ts +104 -0
- package/dist/shared/publish-consent.js +148 -0
- package/dist/shared/redact.d.ts +0 -1
- package/dist/shared/redact.js +4 -2
- package/dist/shared/region.d.ts +96 -0
- package/dist/shared/region.js +129 -0
- package/dist/shared/rwlock.d.ts +43 -0
- package/dist/shared/rwlock.js +110 -0
- package/dist/shared/spinner.d.ts +0 -1
- package/dist/shared/style.d.ts +0 -1
- package/dist/shared/telemetry.d.ts +15 -2
- package/dist/shared/telemetry.js +59 -34
- package/dist/shared/topics.d.ts +33 -0
- package/dist/shared/topics.js +151 -0
- package/dist/shared/validate.d.ts +0 -1
- package/dist/shared/validate.js +18 -3
- package/dist/sites/api/collections.d.ts +0 -1
- package/dist/sites/api/jobs.d.ts +0 -1
- package/dist/sites/api/languages.d.ts +0 -1
- package/dist/sites/api/request.d.ts +0 -1
- package/dist/sites/api/request.js +13 -4
- package/dist/sites/api/sites.d.ts +44 -1
- package/dist/sites/api/sites.js +42 -1
- package/dist/sites/api/types.d.ts +0 -1
- package/dist/sites/index.d.ts +25 -0
- package/dist/sites/index.js +44 -0
- package/dist/sync/aggregate-kinds.d.ts +7 -0
- package/dist/sync/aggregate-kinds.js +32 -0
- package/dist/sync/aggregate.d.ts +100 -0
- package/dist/sync/aggregate.js +173 -0
- package/dist/sync/engine.d.ts +28 -0
- package/dist/sync/engine.js +38 -0
- package/dist/sync/index.d.ts +18 -0
- package/dist/sync/index.js +25 -0
- package/dist/sync/io.d.ts +8 -0
- package/dist/sync/io.js +52 -0
- package/dist/sync/kind.d.ts +80 -0
- package/dist/sync/kind.js +2 -0
- package/dist/sync/plan.d.ts +55 -0
- package/dist/sync/plan.js +27 -0
- package/dist/sync/registry.d.ts +7 -0
- package/dist/sync/registry.js +36 -0
- package/dist/webhooks/api/client.d.ts +134 -0
- package/dist/webhooks/api/client.js +326 -0
- package/dist/webhooks/api/graphql.d.ts +4 -0
- package/dist/webhooks/api/graphql.js +18 -0
- package/dist/webhooks/api/templates.d.ts +41 -0
- package/dist/webhooks/api/templates.js +78 -0
- package/dist/webhooks/index.d.ts +16 -0
- package/dist/webhooks/index.js +43 -0
- package/dist/webhooks/tasks/create.d.ts +58 -0
- package/dist/webhooks/tasks/create.js +127 -0
- package/dist/webhooks/tasks/delete.d.ts +14 -0
- package/dist/webhooks/tasks/delete.js +57 -0
- package/dist/webhooks/tasks/event-types.d.ts +21 -0
- package/dist/webhooks/tasks/event-types.js +32 -0
- package/dist/webhooks/tasks/inspect.d.ts +12 -0
- package/dist/webhooks/tasks/inspect.js +65 -0
- package/dist/webhooks/tasks/list.d.ts +29 -0
- package/dist/webhooks/tasks/list.js +41 -0
- package/dist/webhooks/tasks/shared.d.ts +35 -0
- package/dist/webhooks/tasks/shared.js +38 -0
- package/dist/workflow/api/client.d.ts +208 -0
- package/dist/workflow/api/client.js +421 -0
- package/dist/workflow/api/graphql.d.ts +4 -0
- package/dist/workflow/api/graphql.js +18 -0
- package/dist/workflow/api/resolve-command.d.ts +27 -0
- package/dist/workflow/api/resolve-command.js +26 -0
- package/dist/workflow/index.d.ts +18 -0
- package/dist/workflow/index.js +37 -0
- package/dist/workflow/tasks/advance.d.ts +39 -0
- package/dist/workflow/tasks/advance.js +182 -0
- package/dist/workflow/tasks/apply.d.ts +47 -0
- package/dist/workflow/tasks/apply.js +193 -0
- package/dist/workflow/tasks/assigned.d.ts +33 -0
- package/dist/workflow/tasks/assigned.js +41 -0
- package/dist/workflow/tasks/inspect.d.ts +60 -0
- package/dist/workflow/tasks/inspect.js +171 -0
- package/dist/workflow/tasks/list-commands.d.ts +21 -0
- package/dist/workflow/tasks/list-commands.js +54 -0
- package/dist/workflow/tasks/list-defs.d.ts +21 -0
- package/dist/workflow/tasks/list-defs.js +28 -0
- package/dist/workflow/tasks/reset.d.ts +33 -0
- package/dist/workflow/tasks/reset.js +137 -0
- package/dist/workflow/tasks/shared.d.ts +75 -0
- package/dist/workflow/tasks/shared.js +124 -0
- package/dist/workflow/tasks/status.d.ts +21 -0
- package/dist/workflow/tasks/status.js +41 -0
- package/package.json +102 -8
- package/dist/cli.d.ts.map +0 -1
- package/dist/commands/config.d.ts.map +0 -1
- package/dist/commands/deploy/deployments.d.ts.map +0 -1
- package/dist/commands/deploy/editing-host.d.ts.map +0 -1
- package/dist/commands/deploy/environments/deployments.d.ts.map +0 -1
- package/dist/commands/deploy/environments/index.d.ts.map +0 -1
- package/dist/commands/deploy/environments/mutations.d.ts.map +0 -1
- package/dist/commands/deploy/environments/queries.d.ts.map +0 -1
- package/dist/commands/deploy/environments/variables.d.ts.map +0 -1
- package/dist/commands/deploy/environments.d.ts.map +0 -1
- package/dist/commands/deploy/index.d.ts.map +0 -1
- package/dist/commands/deploy/logs.d.ts.map +0 -1
- package/dist/commands/deploy/organizations.d.ts.map +0 -1
- package/dist/commands/deploy/projects.d.ts.map +0 -1
- package/dist/commands/deploy/shared.d.ts.map +0 -1
- package/dist/commands/deploy/site.d.ts.map +0 -1
- package/dist/commands/deploy/source-control.d.ts.map +0 -1
- package/dist/commands/deploy.d.ts.map +0 -1
- package/dist/commands/history.d.ts.map +0 -1
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/login.d.ts.map +0 -1
- package/dist/commands/logout.d.ts.map +0 -1
- package/dist/commands/recipe/index.d.ts.map +0 -1
- package/dist/commands/serialization/index.d.ts.map +0 -1
- package/dist/commands/serialization/package.d.ts.map +0 -1
- package/dist/commands/shared.d.ts.map +0 -1
- package/dist/commands/shell.d.ts.map +0 -1
- package/dist/commands/status.d.ts.map +0 -1
- package/dist/commands/telemetry.d.ts.map +0 -1
- package/dist/config/env-overrides.d.ts.map +0 -1
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/modules.d.ts.map +0 -1
- package/dist/config/paths.d.ts.map +0 -1
- package/dist/config/root-config.d.ts.map +0 -1
- package/dist/config/types.d.ts.map +0 -1
- package/dist/config/validation.d.ts.map +0 -1
- package/dist/deploy/api/common/headers.d.ts.map +0 -1
- package/dist/deploy/api/common/index.d.ts +0 -4
- package/dist/deploy/api/common/index.d.ts.map +0 -1
- package/dist/deploy/api/common/index.js +0 -19
- package/dist/deploy/api/common/request.d.ts.map +0 -1
- package/dist/deploy/api/common/types.d.ts.map +0 -1
- package/dist/deploy/api/common.d.ts +0 -2
- package/dist/deploy/api/common.d.ts.map +0 -1
- package/dist/deploy/api/common.js +0 -17
- package/dist/deploy/api/deployment-logs.d.ts.map +0 -1
- package/dist/deploy/api/deployments.d.ts.map +0 -1
- package/dist/deploy/api/environments.d.ts.map +0 -1
- package/dist/deploy/api/index.d.ts.map +0 -1
- package/dist/deploy/api/logs.d.ts.map +0 -1
- package/dist/deploy/api/organizations.d.ts.map +0 -1
- package/dist/deploy/api/projects.d.ts.map +0 -1
- package/dist/deploy/api/source-control.d.ts.map +0 -1
- package/dist/deploy/api.d.ts.map +0 -1
- package/dist/deploy/tasks/deployment-result.d.ts.map +0 -1
- package/dist/deploy/tasks/deployments.d.ts.map +0 -1
- package/dist/deploy/tasks/editing-host.d.ts.map +0 -1
- package/dist/deploy/tasks/environments.d.ts.map +0 -1
- package/dist/deploy/tasks/index.d.ts +0 -10
- package/dist/deploy/tasks/index.d.ts.map +0 -1
- package/dist/deploy/tasks/index.js +0 -25
- package/dist/deploy/tasks/logs.d.ts.map +0 -1
- package/dist/deploy/tasks/organizations.d.ts.map +0 -1
- package/dist/deploy/tasks/projects.d.ts.map +0 -1
- package/dist/deploy/tasks/shared.d.ts.map +0 -1
- package/dist/deploy/tasks/site-bind.d.ts.map +0 -1
- package/dist/deploy/tasks/site.d.ts.map +0 -1
- package/dist/deploy/tasks/source-control.d.ts.map +0 -1
- package/dist/deploy/tasks/types.d.ts.map +0 -1
- package/dist/deploy/tasks.d.ts +0 -3
- package/dist/deploy/tasks.d.ts.map +0 -1
- package/dist/deploy/tasks.js +0 -18
- package/dist/recipe/api/auth.d.ts.map +0 -1
- package/dist/recipe/api/authoring-client.d.ts.map +0 -1
- package/dist/recipe/api/client.d.ts.map +0 -1
- package/dist/recipe/api/graphql.d.ts.map +0 -1
- package/dist/recipe/api/ref-encoding.d.ts.map +0 -1
- package/dist/recipe/api/site-discovery.d.ts.map +0 -1
- package/dist/recipe/api/sites-client.d.ts.map +0 -1
- package/dist/recipe/cache.d.ts.map +0 -1
- package/dist/recipe/compile/component-section.d.ts.map +0 -1
- package/dist/recipe/compile/component-template.d.ts.map +0 -1
- package/dist/recipe/compile/content-item.d.ts.map +0 -1
- package/dist/recipe/compile/content-template.d.ts.map +0 -1
- package/dist/recipe/compile/enumeration.d.ts.map +0 -1
- package/dist/recipe/compile/page-design.d.ts.map +0 -1
- package/dist/recipe/compile/parameters-template.d.ts +0 -14
- package/dist/recipe/compile/parameters-template.d.ts.map +0 -1
- package/dist/recipe/compile/parameters-template.js +0 -92
- package/dist/recipe/compile/partial-design.d.ts.map +0 -1
- package/dist/recipe/compile/section-definition.d.ts.map +0 -1
- package/dist/recipe/compile/shared.d.ts.map +0 -1
- package/dist/recipe/compile/site-template.d.ts.map +0 -1
- package/dist/recipe/compile/site.d.ts.map +0 -1
- package/dist/recipe/compile.d.ts.map +0 -1
- package/dist/recipe/execute.d.ts.map +0 -1
- package/dist/recipe/guids.d.ts.map +0 -1
- package/dist/recipe/index.d.ts.map +0 -1
- package/dist/recipe/io.d.ts.map +0 -1
- package/dist/recipe/ir/operations.d.ts.map +0 -1
- package/dist/recipe/ir/sitecore-templates.d.ts.map +0 -1
- package/dist/recipe/layout/emit.d.ts.map +0 -1
- package/dist/recipe/layout/templates-mapping.d.ts.map +0 -1
- package/dist/recipe/plan.d.ts.map +0 -1
- package/dist/recipe/policy.d.ts.map +0 -1
- package/dist/recipe/rollback.d.ts.map +0 -1
- package/dist/recipe/schema/field-types.d.ts.map +0 -1
- package/dist/recipe/schema/recipe.d.ts.map +0 -1
- package/dist/recipe/schema/source-fields.d.ts.map +0 -1
- package/dist/recipe/tasks/compile.d.ts.map +0 -1
- package/dist/recipe/tasks/diff.d.ts.map +0 -1
- package/dist/recipe/tasks/index.d.ts +0 -9
- package/dist/recipe/tasks/index.d.ts.map +0 -1
- package/dist/recipe/tasks/index.js +0 -13
- package/dist/recipe/tasks/placeholder-allow.d.ts.map +0 -1
- package/dist/recipe/tasks/plan.d.ts.map +0 -1
- package/dist/recipe/tasks/prune-defaults.d.ts.map +0 -1
- package/dist/recipe/tasks/push.d.ts.map +0 -1
- package/dist/recipe/tasks/shared.d.ts.map +0 -1
- package/dist/recipe/validate.d.ts.map +0 -1
- package/dist/serialization/commands.d.ts.map +0 -1
- package/dist/serialization/compare.d.ts.map +0 -1
- package/dist/serialization/field-filter.d.ts.map +0 -1
- package/dist/serialization/filesystem-store/constants.d.ts.map +0 -1
- package/dist/serialization/filesystem-store/index.d.ts +0 -4
- package/dist/serialization/filesystem-store/index.d.ts.map +0 -1
- package/dist/serialization/filesystem-store/index.js +0 -15
- package/dist/serialization/filesystem-store/items.d.ts.map +0 -1
- package/dist/serialization/filesystem-store/roles.d.ts.map +0 -1
- package/dist/serialization/filesystem-store/users.d.ts.map +0 -1
- package/dist/serialization/filesystem-store/utils.d.ts.map +0 -1
- package/dist/serialization/filesystem-store.d.ts +0 -2
- package/dist/serialization/filesystem-store.d.ts.map +0 -1
- package/dist/serialization/filesystem-store.js +0 -17
- package/dist/serialization/item-path.d.ts.map +0 -1
- package/dist/serialization/path-provider.d.ts.map +0 -1
- package/dist/serialization/signature.d.ts.map +0 -1
- package/dist/serialization/sitecore-api/auth.d.ts +0 -31
- package/dist/serialization/sitecore-api/auth.d.ts.map +0 -1
- package/dist/serialization/sitecore-api/auth.js +0 -319
- package/dist/serialization/sitecore-api/graphql.d.ts +0 -12
- package/dist/serialization/sitecore-api/graphql.d.ts.map +0 -1
- package/dist/serialization/sitecore-api/history.d.ts +0 -9
- package/dist/serialization/sitecore-api/history.d.ts.map +0 -1
- package/dist/serialization/sitecore-api/index.d.ts +0 -7
- package/dist/serialization/sitecore-api/index.d.ts.map +0 -1
- package/dist/serialization/sitecore-api/index.js +0 -22
- package/dist/serialization/sitecore-api/items.d.ts +0 -8
- package/dist/serialization/sitecore-api/items.d.ts.map +0 -1
- package/dist/serialization/sitecore-api/items.js +0 -132
- package/dist/serialization/sitecore-api/publish.d.ts +0 -14
- package/dist/serialization/sitecore-api/publish.d.ts.map +0 -1
- package/dist/serialization/sitecore-api/publish.js +0 -43
- package/dist/serialization/sitecore-api/roles.d.ts +0 -9
- package/dist/serialization/sitecore-api/roles.d.ts.map +0 -1
- package/dist/serialization/sitecore-api/users.d.ts +0 -9
- package/dist/serialization/sitecore-api/users.d.ts.map +0 -1
- package/dist/serialization/sitecore-api.d.ts +0 -2
- package/dist/serialization/sitecore-api.d.ts.map +0 -1
- package/dist/serialization/sitecore-api.js +0 -17
- package/dist/serialization/tasks/diff.d.ts.map +0 -1
- package/dist/serialization/tasks/env/constants.d.ts.map +0 -1
- package/dist/serialization/tasks/env/deploy-token.d.ts.map +0 -1
- package/dist/serialization/tasks/env/index.d.ts +0 -5
- package/dist/serialization/tasks/env/index.d.ts.map +0 -1
- package/dist/serialization/tasks/env/index.js +0 -11
- package/dist/serialization/tasks/env/init/auth.d.ts.map +0 -1
- package/dist/serialization/tasks/env/init/deploy-lookup.d.ts.map +0 -1
- package/dist/serialization/tasks/env/init.d.ts.map +0 -1
- package/dist/serialization/tasks/env/logout.d.ts.map +0 -1
- package/dist/serialization/tasks/env/status.d.ts.map +0 -1
- package/dist/serialization/tasks/env.d.ts +0 -2
- package/dist/serialization/tasks/env.d.ts.map +0 -1
- package/dist/serialization/tasks/env.js +0 -17
- package/dist/serialization/tasks/helpers/collect.d.ts.map +0 -1
- package/dist/serialization/tasks/helpers/commands.d.ts.map +0 -1
- package/dist/serialization/tasks/helpers/filesystem.d.ts.map +0 -1
- package/dist/serialization/tasks/helpers/index.d.ts +0 -6
- package/dist/serialization/tasks/helpers/index.d.ts.map +0 -1
- package/dist/serialization/tasks/helpers/index.js +0 -13
- package/dist/serialization/tasks/helpers/items.d.ts.map +0 -1
- package/dist/serialization/tasks/helpers/sitecore.d.ts.map +0 -1
- package/dist/serialization/tasks/helpers.d.ts +0 -2
- package/dist/serialization/tasks/helpers.d.ts.map +0 -1
- package/dist/serialization/tasks/helpers.js +0 -17
- package/dist/serialization/tasks/index.d.ts +0 -8
- package/dist/serialization/tasks/index.d.ts.map +0 -1
- package/dist/serialization/tasks/index.js +0 -19
- package/dist/serialization/tasks/info.d.ts.map +0 -1
- package/dist/serialization/tasks/package.d.ts.map +0 -1
- package/dist/serialization/tasks/pull.d.ts.map +0 -1
- package/dist/serialization/tasks/push.d.ts.map +0 -1
- package/dist/serialization/tasks/roles.d.ts.map +0 -1
- package/dist/serialization/tasks/shared.d.ts.map +0 -1
- package/dist/serialization/tasks/types.d.ts.map +0 -1
- package/dist/serialization/tasks/users.d.ts.map +0 -1
- package/dist/serialization/tasks/validate.d.ts.map +0 -1
- package/dist/serialization/tasks/watch.d.ts.map +0 -1
- package/dist/serialization/tasks.d.ts +0 -4
- package/dist/serialization/tasks.d.ts.map +0 -1
- package/dist/serialization/tasks.js +0 -19
- package/dist/serialization/tree-spec.d.ts.map +0 -1
- package/dist/serialization/types.d.ts.map +0 -1
- package/dist/serialization/wildcard.d.ts.map +0 -1
- package/dist/serialization/yaml.d.ts.map +0 -1
- package/dist/shared/browser.d.ts.map +0 -1
- package/dist/shared/cli-options.d.ts.map +0 -1
- package/dist/shared/cli-tasks.d.ts.map +0 -1
- package/dist/shared/config-template.d.ts.map +0 -1
- package/dist/shared/env.d.ts +0 -28
- package/dist/shared/env.d.ts.map +0 -1
- package/dist/shared/env.js +0 -38
- package/dist/shared/errors.d.ts.map +0 -1
- package/dist/shared/graphql.d.ts.map +0 -1
- package/dist/shared/history.d.ts.map +0 -1
- package/dist/shared/keychain.d.ts.map +0 -1
- package/dist/shared/logger.d.ts.map +0 -1
- package/dist/shared/output.d.ts.map +0 -1
- package/dist/shared/prompt.d.ts.map +0 -1
- package/dist/shared/redact.d.ts.map +0 -1
- package/dist/shared/spinner.d.ts.map +0 -1
- package/dist/shared/style.d.ts.map +0 -1
- package/dist/shared/telemetry.d.ts.map +0 -1
- package/dist/shared/validate.d.ts.map +0 -1
- package/dist/sites/api/collections.d.ts.map +0 -1
- package/dist/sites/api/index.d.ts +0 -26
- package/dist/sites/api/index.d.ts.map +0 -1
- package/dist/sites/api/index.js +0 -55
- package/dist/sites/api/jobs.d.ts.map +0 -1
- package/dist/sites/api/languages.d.ts.map +0 -1
- package/dist/sites/api/request.d.ts.map +0 -1
- package/dist/sites/api/sites.d.ts.map +0 -1
- package/dist/sites/api/types.d.ts.map +0 -1
- /package/dist/serialization/{sitecore-api → api}/graphql.js +0 -0
- /package/dist/serialization/{sitecore-api → api}/history.js +0 -0
- /package/dist/serialization/{sitecore-api → api}/roles.js +0 -0
- /package/dist/serialization/{sitecore-api → api}/users.js +0 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.acquirePublishingToken = exports.PUBLISHING_SCOPES_REQUESTED = void 0;
|
|
4
|
+
const auth_1 = require("../../serialization/api/auth");
|
|
5
|
+
const errors_1 = require("../../shared/errors");
|
|
6
|
+
const keychain_1 = require("../../shared/keychain");
|
|
7
|
+
/**
|
|
8
|
+
* OAuth scopes the SAI Publishing API requires.
|
|
9
|
+
*
|
|
10
|
+
* Per the Publishing API architect (2026-05-14):
|
|
11
|
+
*
|
|
12
|
+
* - Every Sitecore Cloud **environment** has its own automation
|
|
13
|
+
* client (Cloud Portal → Environments → [env] → Automation
|
|
14
|
+
* Clients). Env-level clients carry the tenant-tier `.t` scopes
|
|
15
|
+
* below by default. ORG-level clients (used for org/project/env
|
|
16
|
+
* management) do NOT.
|
|
17
|
+
* - The api-docs page lists both `.a` (admin-tier, for Pages-UI
|
|
18
|
+
* user tokens with Organization Owner role) and `.t` (tenant-
|
|
19
|
+
* tier, for automation clients). Use `.t` for any flow whose
|
|
20
|
+
* credentials are scoped to a single environment.
|
|
21
|
+
*
|
|
22
|
+
* - `xmcpub.jobs.t:r` — read publishing jobs
|
|
23
|
+
* - `xmcpub.jobs.t:w` — create / cancel publishing jobs
|
|
24
|
+
* - `xmcpub.queue:r` — read the publish queue
|
|
25
|
+
*
|
|
26
|
+
* Audience: `https://api.sitecorecloud.io` (standard).
|
|
27
|
+
*/
|
|
28
|
+
exports.PUBLISHING_SCOPES_REQUESTED = [
|
|
29
|
+
"xmcpub.jobs.t:r",
|
|
30
|
+
"xmcpub.jobs.t:w",
|
|
31
|
+
"xmcpub.queue:r",
|
|
32
|
+
];
|
|
33
|
+
const M2M_SCOPE_PARAM = exports.PUBLISHING_SCOPES_REQUESTED.join(" ");
|
|
34
|
+
const NO_CREDENTIALS_HINT = "Two paths work: (1) run `scai setup login -n <env>` against an env-level automation client (publishing scopes are part of the default scope set scai requests), or (2) put env-level `clientId`+`clientSecret` on this env's profile in sitecoreai.cli.json, or set `SITECOREAI_ENV_<NAME>_CLIENT_ID`/`_CLIENT_SECRET`. Create the env-level client in Cloud Portal → Environments → [env] → Automation Clients.";
|
|
35
|
+
const decodeJwtPayload = (token) => {
|
|
36
|
+
const parts = token.split(".");
|
|
37
|
+
if (parts.length !== 3) {
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
const b64 = parts[1].replace(/-/g, "+").replace(/_/g, "/");
|
|
41
|
+
const padded = b64 + "==".slice(0, (4 - (b64.length % 4)) % 4);
|
|
42
|
+
try {
|
|
43
|
+
return JSON.parse(Buffer.from(padded, "base64").toString("utf8"));
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
const extractScopes = (token) => {
|
|
50
|
+
const payload = decodeJwtPayload(token);
|
|
51
|
+
if (!payload)
|
|
52
|
+
return [];
|
|
53
|
+
const raw = typeof payload.scope === "string"
|
|
54
|
+
? payload.scope
|
|
55
|
+
: Array.isArray(payload.scp)
|
|
56
|
+
? payload.scp.join(" ")
|
|
57
|
+
: "";
|
|
58
|
+
return raw.split(/\s+/).filter(Boolean);
|
|
59
|
+
};
|
|
60
|
+
const hasPublishingScopes = (token) => {
|
|
61
|
+
const granted = new Set(extractScopes(token));
|
|
62
|
+
return exports.PUBLISHING_SCOPES_REQUESTED.every((s) => granted.has(s));
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* 60-second safety margin: a token whose `exp` falls inside this window
|
|
66
|
+
* is treated as expired so we don't hand a soon-to-be-invalid Bearer to
|
|
67
|
+
* a long-running publish call. Bumped up from the typical 5-15s window
|
|
68
|
+
* because publish-API requests can hold the connection for tens of
|
|
69
|
+
* seconds and we'd rather mint fresh than 401 mid-request.
|
|
70
|
+
*/
|
|
71
|
+
const TOKEN_EXPIRY_MARGIN_S = 60;
|
|
72
|
+
const isTokenExpired = (token) => {
|
|
73
|
+
const payload = decodeJwtPayload(token);
|
|
74
|
+
if (!payload) {
|
|
75
|
+
return false; // can't decode → trust the caller to handle 401
|
|
76
|
+
}
|
|
77
|
+
const exp = typeof payload.exp === "number" ? payload.exp : Number(payload.exp);
|
|
78
|
+
if (!Number.isFinite(exp)) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
const nowS = Math.floor(Date.now() / 1000);
|
|
82
|
+
return exp - nowS <= TOKEN_EXPIRY_MARGIN_S;
|
|
83
|
+
};
|
|
84
|
+
/** Cache entry is usable iff it has the publishing scopes AND isn't
|
|
85
|
+
* inside the expiry safety margin. Either condition failing falls
|
|
86
|
+
* through to the next resolution step (deploy-token reuse or fresh
|
|
87
|
+
* M2M mint), not a throw — keeps a stale cache from blocking a valid
|
|
88
|
+
* call when fresh credentials are available. */
|
|
89
|
+
const isUsablePublishingToken = (token) => hasPublishingScopes(token) && !isTokenExpired(token);
|
|
90
|
+
/**
|
|
91
|
+
* Build a specific, actionable error when a minted token lacks
|
|
92
|
+
* publishing scopes. Decodes the token, names what it DID get, and
|
|
93
|
+
* infers the likely credential class (org-level vs misconfigured)
|
|
94
|
+
* so the operator knows what to fix in the Cloud Portal.
|
|
95
|
+
*/
|
|
96
|
+
const buildScopeMissingError = (envName, token) => {
|
|
97
|
+
const granted = extractScopes(token);
|
|
98
|
+
const orgLevelMarkers = granted.filter((s) => s.startsWith("xmclouddeploy."));
|
|
99
|
+
const looksLikeOrg = orgLevelMarkers.some((s) => s.includes("organizations:") || s.includes("projects:")) &&
|
|
100
|
+
!granted.some((s) => s.startsWith("xmcpub."));
|
|
101
|
+
const grantSummary = granted.length > 0 ? granted.join(", ") : "(no scope claim in token)";
|
|
102
|
+
const inference = looksLikeOrg
|
|
103
|
+
? "The credentials look like an ORG-LEVEL automation client (carries org/project management scopes but not xmcpub.*). The Publishing API requires an ENVIRONMENT-LEVEL automation client."
|
|
104
|
+
: "The credentials don't carry the expected publishing scopes for this environment.";
|
|
105
|
+
const envSlug = envName.toUpperCase().replace(/[^A-Z0-9]+/g, "_");
|
|
106
|
+
return (0, errors_1.createScaiError)(`Token minted for env '${envName}' but missing publishing scopes. Expected: ${exports.PUBLISHING_SCOPES_REQUESTED.join(", ")}. Granted: ${grantSummary}.`, "AUTH_REQUIRED", {
|
|
107
|
+
hint: `${inference} In the Sitecore Cloud Portal: Environments → ${envName} → Automation Clients → Create a new client (env-level), then re-run \`scai setup login -n ${envName}\` or set SITECOREAI_ENV_${envSlug}_CLIENT_ID and _CLIENT_SECRET.`,
|
|
108
|
+
});
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* Returns a Bearer JWT for the SAI Publishing API.
|
|
112
|
+
*
|
|
113
|
+
* Resolution order, cheapest first:
|
|
114
|
+
*
|
|
115
|
+
* 1. Cached publishing token in the keychain — set by a previous
|
|
116
|
+
* successful mint via this function. Reused until expiry / clear.
|
|
117
|
+
* 2. The deploy token in the keychain, IF its scope claim already
|
|
118
|
+
* includes `xmcpub.jobs.t:*`. This is the zero-config path:
|
|
119
|
+
* operators who logged in interactively against an env-level
|
|
120
|
+
* automation client get a single token covering both deploy
|
|
121
|
+
* and publishing scopes (scai's default scope set requests
|
|
122
|
+
* both — see `SCAI_API_SCOPES`).
|
|
123
|
+
* 3. Fresh M2M mint via the env's `clientId` + `clientSecret`,
|
|
124
|
+
* explicitly requesting publishing scopes. Cached on success.
|
|
125
|
+
*
|
|
126
|
+
* Refuses with `AUTH_REQUIRED` when none of these paths produces a
|
|
127
|
+
* token carrying the required scopes. The error message decodes the
|
|
128
|
+
* granted-scope set and infers the credential class so operators know
|
|
129
|
+
* whether they need an env-level client or just need to re-login.
|
|
130
|
+
*/
|
|
131
|
+
const acquirePublishingToken = async (options) => {
|
|
132
|
+
// 1. Cached publishing-specific token.
|
|
133
|
+
const cachedPublishing = await (0, keychain_1.getPublishingToken)(options.envName);
|
|
134
|
+
if (cachedPublishing && isUsablePublishingToken(cachedPublishing)) {
|
|
135
|
+
return cachedPublishing;
|
|
136
|
+
}
|
|
137
|
+
// 2. Deploy token reused if it carries publishing scopes (i.e. the
|
|
138
|
+
// operator logged in against an env-level automation client and
|
|
139
|
+
// scai's default scope set picked up the `.t` grants).
|
|
140
|
+
const deployToken = await (0, keychain_1.getDeployToken)(options.envName);
|
|
141
|
+
if (deployToken && isUsablePublishingToken(deployToken)) {
|
|
142
|
+
return deployToken;
|
|
143
|
+
}
|
|
144
|
+
// 3. Fresh M2M mint via env-level client credentials.
|
|
145
|
+
const env = options.environment;
|
|
146
|
+
if (env.clientId && env.clientSecret && env.authority) {
|
|
147
|
+
let result;
|
|
148
|
+
try {
|
|
149
|
+
result = await (0, auth_1.requestClientCredentialsToken)(env, M2M_SCOPE_PARAM);
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
const detail = error instanceof Error ? error.message : String(error);
|
|
153
|
+
throw (0, errors_1.createScaiError)(`Auth0 refused the publishing scope request for env '${options.envName}'.`, "AUTH_REQUIRED", { hint: `Auth0 error: ${detail}. ${NO_CREDENTIALS_HINT}` });
|
|
154
|
+
}
|
|
155
|
+
if (!result.accessToken) {
|
|
156
|
+
throw (0, errors_1.createScaiError)(`Sitecore did not return an access token for env '${options.envName}'.`, "AUTH_REQUIRED", { hint: NO_CREDENTIALS_HINT });
|
|
157
|
+
}
|
|
158
|
+
if (!hasPublishingScopes(result.accessToken)) {
|
|
159
|
+
throw buildScopeMissingError(options.envName, result.accessToken);
|
|
160
|
+
}
|
|
161
|
+
await (0, keychain_1.setPublishingToken)(options.envName, result.accessToken);
|
|
162
|
+
return result.accessToken;
|
|
163
|
+
}
|
|
164
|
+
// Last-ditch: an existing token exists but lacks publishing scopes.
|
|
165
|
+
// Surface the scope-missing diagnostic against whichever token we
|
|
166
|
+
// have so the operator can act on it.
|
|
167
|
+
const diagToken = cachedPublishing ?? deployToken;
|
|
168
|
+
if (diagToken) {
|
|
169
|
+
throw buildScopeMissingError(options.envName, diagToken);
|
|
170
|
+
}
|
|
171
|
+
throw (0, errors_1.createScaiError)(`No publishing-scoped token available for env '${options.envName}'.`, "AUTH_REQUIRED", { hint: NO_CREDENTIALS_HINT });
|
|
172
|
+
};
|
|
173
|
+
exports.acquirePublishingToken = acquirePublishingToken;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { CreatePublishJobRequest, ListPublishJobsQuery, PublishJob, PublishingApiClientOptions } from "./types";
|
|
2
|
+
export declare const submitPublishJob: (client: PublishingApiClientOptions, request: CreatePublishJobRequest) => Promise<PublishJob>;
|
|
3
|
+
export declare const getPublishJob: (client: PublishingApiClientOptions, jobId: string) => Promise<PublishJob>;
|
|
4
|
+
export declare const cancelPublishJob: (client: PublishingApiClientOptions, jobId: string) => Promise<void>;
|
|
5
|
+
export declare const listPublishJobs: (client: PublishingApiClientOptions, options?: ListPublishJobsQuery) => Promise<PublishJob[]>;
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.listPublishJobs = exports.cancelPublishJob = exports.getPublishJob = exports.submitPublishJob = void 0;
|
|
4
|
+
const errors_1 = require("../../shared/errors");
|
|
5
|
+
const DEFAULT_BASE_URL = "https://edge-platform.sitecorecloud.io";
|
|
6
|
+
const JOBS_PATH = "/authoring/publishing/v1/jobs";
|
|
7
|
+
const buildQueryString = (query) => {
|
|
8
|
+
if (!query)
|
|
9
|
+
return "";
|
|
10
|
+
const parts = [];
|
|
11
|
+
for (const [k, v] of Object.entries(query)) {
|
|
12
|
+
if (v === undefined)
|
|
13
|
+
continue;
|
|
14
|
+
if (Array.isArray(v)) {
|
|
15
|
+
for (const item of v) {
|
|
16
|
+
parts.push(`${encodeURIComponent(k)}=${encodeURIComponent(item)}`);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
parts.push(`${encodeURIComponent(k)}=${encodeURIComponent(String(v))}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return parts.length > 0 ? `?${parts.join("&")}` : "";
|
|
24
|
+
};
|
|
25
|
+
const fetchPublishingApi = async (client, options) => {
|
|
26
|
+
const baseUrl = client.baseUrl ?? DEFAULT_BASE_URL;
|
|
27
|
+
const url = `${baseUrl}${JOBS_PATH}${options.path}${buildQueryString(options.query)}`;
|
|
28
|
+
const controller = client.timeoutMs ? new AbortController() : undefined;
|
|
29
|
+
const timer = controller && client.timeoutMs
|
|
30
|
+
? setTimeout(() => controller.abort(), client.timeoutMs)
|
|
31
|
+
: undefined;
|
|
32
|
+
try {
|
|
33
|
+
const response = await fetch(url, {
|
|
34
|
+
method: options.method,
|
|
35
|
+
headers: {
|
|
36
|
+
Authorization: `Bearer ${client.accessToken}`,
|
|
37
|
+
Accept: "application/json",
|
|
38
|
+
...(options.body ? { "Content-Type": "application/json" } : {}),
|
|
39
|
+
},
|
|
40
|
+
body: options.body ? JSON.stringify(options.body) : undefined,
|
|
41
|
+
signal: controller?.signal,
|
|
42
|
+
});
|
|
43
|
+
if (response.status === 202 || response.status === 204) {
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
const text = await response.text().catch(() => "");
|
|
47
|
+
if (!response.ok) {
|
|
48
|
+
const code = response.status === 401 || response.status === 403 ? "AUTH_REQUIRED" : "NETWORK";
|
|
49
|
+
const hint = response.status === 403
|
|
50
|
+
? "The token is valid but the API refused the call. Verify the env-level automation client has xmcpub.jobs.t:r/w grants. Body: " +
|
|
51
|
+
text.slice(0, 400)
|
|
52
|
+
: text.slice(0, 400) || response.statusText || undefined;
|
|
53
|
+
throw (0, errors_1.createScaiError)(`Publishing API ${options.method} ${url} returned ${response.status}.`, code, { hint });
|
|
54
|
+
}
|
|
55
|
+
if (!text)
|
|
56
|
+
return undefined;
|
|
57
|
+
return JSON.parse(text);
|
|
58
|
+
}
|
|
59
|
+
finally {
|
|
60
|
+
if (timer) {
|
|
61
|
+
clearTimeout(timer);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
const STATUS_TO_STATE = {
|
|
66
|
+
Queued: "queued",
|
|
67
|
+
Running: "running",
|
|
68
|
+
Completed: "completed",
|
|
69
|
+
Failed: "failed",
|
|
70
|
+
Canceled: "cancelled",
|
|
71
|
+
Canceling: "cancelling",
|
|
72
|
+
};
|
|
73
|
+
const normalizeState = (raw) => STATUS_TO_STATE[(raw ?? "Queued")] ?? "queued";
|
|
74
|
+
const normalizeJob = (raw) => {
|
|
75
|
+
const stats = (raw.statistics ?? {});
|
|
76
|
+
// The Publishing API exposes statistics under two field sets:
|
|
77
|
+
// - flat `processedCount` / `totalCount` (older deployments)
|
|
78
|
+
// - rich `itemsSent` / `itemsProcessed` / `itemsFailed` (observed
|
|
79
|
+
// live against Agents 2026-05-14)
|
|
80
|
+
// Prefer the rich set; fall back to flat.
|
|
81
|
+
const itemsProcessed = typeof stats.itemsProcessed === "number" ? stats.itemsProcessed : undefined;
|
|
82
|
+
const itemsSent = typeof stats.itemsSent === "number" ? stats.itemsSent : undefined;
|
|
83
|
+
const flatProcessed = typeof stats.processedCount === "number" ? stats.processedCount : undefined;
|
|
84
|
+
const flatTotal = typeof stats.totalCount === "number" ? stats.totalCount : undefined;
|
|
85
|
+
const state = normalizeState(raw.system?.status);
|
|
86
|
+
// `permissions.canCancel` is a *permission* flag (caller has cancel
|
|
87
|
+
// rights), not a *state* flag (the job is currently cancellable).
|
|
88
|
+
// The API returns `true` even on completed jobs because permission
|
|
89
|
+
// doesn't change. Combine both so callers get a useful "actually
|
|
90
|
+
// cancellable now" signal.
|
|
91
|
+
const stateIsCancellable = state === "queued" || state === "running";
|
|
92
|
+
return {
|
|
93
|
+
id: raw.id,
|
|
94
|
+
state,
|
|
95
|
+
name: raw.name ?? undefined,
|
|
96
|
+
source: raw.source ?? undefined,
|
|
97
|
+
processedCount: itemsProcessed ?? flatProcessed,
|
|
98
|
+
totalCount: itemsSent ?? flatTotal,
|
|
99
|
+
startedAt: raw.system?.startTime ?? undefined,
|
|
100
|
+
completedAt: raw.system?.finishTime ?? undefined,
|
|
101
|
+
canCancel: Boolean(raw.permissions?.canCancel) && stateIsCancellable,
|
|
102
|
+
raw,
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
const submitPublishJob = async (client, request) => {
|
|
106
|
+
const raw = (await fetchPublishingApi(client, {
|
|
107
|
+
method: "POST",
|
|
108
|
+
path: "",
|
|
109
|
+
body: request,
|
|
110
|
+
}));
|
|
111
|
+
return normalizeJob(raw);
|
|
112
|
+
};
|
|
113
|
+
exports.submitPublishJob = submitPublishJob;
|
|
114
|
+
const getPublishJob = async (client, jobId) => {
|
|
115
|
+
if (!jobId) {
|
|
116
|
+
throw (0, errors_1.createScaiError)("Publish job id is required.", "INPUT_INVALID");
|
|
117
|
+
}
|
|
118
|
+
const raw = (await fetchPublishingApi(client, {
|
|
119
|
+
method: "GET",
|
|
120
|
+
path: `/${encodeURIComponent(jobId)}`,
|
|
121
|
+
}));
|
|
122
|
+
return normalizeJob(raw);
|
|
123
|
+
};
|
|
124
|
+
exports.getPublishJob = getPublishJob;
|
|
125
|
+
const cancelPublishJob = async (client, jobId) => {
|
|
126
|
+
if (!jobId) {
|
|
127
|
+
throw (0, errors_1.createScaiError)("Publish job id is required.", "INPUT_INVALID");
|
|
128
|
+
}
|
|
129
|
+
await fetchPublishingApi(client, {
|
|
130
|
+
method: "POST",
|
|
131
|
+
path: `/${encodeURIComponent(jobId)}/cancel`,
|
|
132
|
+
});
|
|
133
|
+
};
|
|
134
|
+
exports.cancelPublishJob = cancelPublishJob;
|
|
135
|
+
const listPublishJobs = async (client, options = {}) => {
|
|
136
|
+
const query = {};
|
|
137
|
+
if (options.pageNumber !== undefined)
|
|
138
|
+
query.pageNumber = options.pageNumber;
|
|
139
|
+
if (options.pageSize !== undefined)
|
|
140
|
+
query.pageSize = options.pageSize;
|
|
141
|
+
if (options.statuses?.length)
|
|
142
|
+
query["system.status"] = options.statuses;
|
|
143
|
+
if (options.source?.length)
|
|
144
|
+
query.source = options.source;
|
|
145
|
+
const raw = (await fetchPublishingApi(client, {
|
|
146
|
+
method: "GET",
|
|
147
|
+
path: "",
|
|
148
|
+
query,
|
|
149
|
+
}));
|
|
150
|
+
const list = Array.isArray(raw) ? raw : (raw?.data ?? []);
|
|
151
|
+
return list.map(normalizeJob);
|
|
152
|
+
};
|
|
153
|
+
exports.listPublishJobs = listPublishJobs;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { EnvironmentConfiguration } from "../../config/types";
|
|
2
|
+
import type { Logger } from "../../shared/logger";
|
|
3
|
+
/**
|
|
4
|
+
* Sites API helpers for resolving per-site or tenant-wide publish
|
|
5
|
+
* languages. Used by `scai content publish *` verbs to back the explicit
|
|
6
|
+
* `--languages-from-site <name>` and `--all-tenant-languages` flags
|
|
7
|
+
* (no implicit resolution — each flag does exactly what its name
|
|
8
|
+
* says).
|
|
9
|
+
*
|
|
10
|
+
* Auth: the Sites API uses `xmcloud.cm:admin` (already in scai's
|
|
11
|
+
* deploy token scope set). No additional grants required — same
|
|
12
|
+
* credentials that mint the publishing token cover site lookups.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Look up a single site by exact `name` and return its configured
|
|
16
|
+
* languages. Throws if the site doesn't exist in the env so the
|
|
17
|
+
* caller surfaces a clear error before any publish-API write.
|
|
18
|
+
*/
|
|
19
|
+
export declare const lookupSiteLanguages: (environment: EnvironmentConfiguration, siteName: string) => Promise<string[]>;
|
|
20
|
+
/**
|
|
21
|
+
* Look up the env's tenant-wide language inventory (all languages
|
|
22
|
+
* registered in the tenant, regardless of which sites use them).
|
|
23
|
+
* Useful as a fallback when an operator wants "every language the
|
|
24
|
+
* tenant supports."
|
|
25
|
+
*/
|
|
26
|
+
/**
|
|
27
|
+
* The three mutually-exclusive locale-source flags every publish-side
|
|
28
|
+
* task accepts. Pass exactly one (or none, to let the Publishing API
|
|
29
|
+
* use the env's configured publish languages). `resolvePublishingLocales`
|
|
30
|
+
* enforces the exclusivity contract and surfaces the resolved set in
|
|
31
|
+
* non-quiet output so operators never wonder which locales the publish
|
|
32
|
+
* job will see.
|
|
33
|
+
*/
|
|
34
|
+
export interface PublishLocaleOptions {
|
|
35
|
+
/** Literal language list (e.g. `["en-US"]`). */
|
|
36
|
+
languages?: string[];
|
|
37
|
+
/** Resolve from the named site's `languages` array via Sites API. */
|
|
38
|
+
languagesFromSite?: string;
|
|
39
|
+
/** Resolve from the tenant-wide `listLanguages` set. */
|
|
40
|
+
allTenantLanguages?: boolean;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Pick the locale list for a publishing call.
|
|
44
|
+
*
|
|
45
|
+
* Exactly one of the three flags may be set. When none is set, scai
|
|
46
|
+
* auto-resolves the tenant-wide language inventory (same as
|
|
47
|
+
* `--all-tenant-languages`) and logs it as "auto-resolved" so the
|
|
48
|
+
* operator sees what's being sent. This default exists because the
|
|
49
|
+
* Publishing API rejects requests with no locales — empirically
|
|
50
|
+
* verified 2026-05-14 against the agents env, the request returns
|
|
51
|
+
* `400 "Publishing locales should be specified either in the job
|
|
52
|
+
* options or per item"`. The `[]` fall-through (claimed by the prior
|
|
53
|
+
* docstring to use "env-configured defaults") is a phantom path the
|
|
54
|
+
* API doesn't support, so we close it here.
|
|
55
|
+
*
|
|
56
|
+
* If the tenant truly has zero languages (misconfigured env), the
|
|
57
|
+
* function still returns `[]` and surfaces a warning — the publish
|
|
58
|
+
* will fail at the API with a clearer error than scai could synthesize.
|
|
59
|
+
*/
|
|
60
|
+
export declare const resolvePublishingLocales: (logger: Logger, environment: EnvironmentConfiguration, options: PublishLocaleOptions) => Promise<string[]>;
|
|
61
|
+
export declare const lookupTenantLanguages: (environment: EnvironmentConfiguration) => Promise<string[]>;
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.lookupTenantLanguages = exports.resolvePublishingLocales = exports.lookupSiteLanguages = void 0;
|
|
4
|
+
const auth_1 = require("../../serialization/api/auth");
|
|
5
|
+
const languages_1 = require("../../sites/api/languages");
|
|
6
|
+
const sites_1 = require("../../sites/api/sites");
|
|
7
|
+
const errors_1 = require("../../shared/errors");
|
|
8
|
+
/**
|
|
9
|
+
* Sites API helpers for resolving per-site or tenant-wide publish
|
|
10
|
+
* languages. Used by `scai content publish *` verbs to back the explicit
|
|
11
|
+
* `--languages-from-site <name>` and `--all-tenant-languages` flags
|
|
12
|
+
* (no implicit resolution — each flag does exactly what its name
|
|
13
|
+
* says).
|
|
14
|
+
*
|
|
15
|
+
* Auth: the Sites API uses `xmcloud.cm:admin` (already in scai's
|
|
16
|
+
* deploy token scope set). No additional grants required — same
|
|
17
|
+
* credentials that mint the publishing token cover site lookups.
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Look up a single site by exact `name` and return its configured
|
|
21
|
+
* languages. Throws if the site doesn't exist in the env so the
|
|
22
|
+
* caller surfaces a clear error before any publish-API write.
|
|
23
|
+
*/
|
|
24
|
+
const lookupSiteLanguages = async (environment, siteName) => {
|
|
25
|
+
const accessToken = await (0, auth_1.getAccessToken)(environment);
|
|
26
|
+
if (!accessToken) {
|
|
27
|
+
throw (0, errors_1.createScaiError)(`Could not acquire an access token for site lookup.`, "AUTH_REQUIRED", {
|
|
28
|
+
hint: `Run 'scai setup login -n <env>' first; the Sites API needs the same xmcloud.cm:admin scope scai uses for deploy.`,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
const sites = await (0, sites_1.listSites)({ accessToken });
|
|
32
|
+
const match = sites.find((s) => s.name === siteName);
|
|
33
|
+
if (!match) {
|
|
34
|
+
const available = sites
|
|
35
|
+
.map((s) => s.name)
|
|
36
|
+
.filter((n) => Boolean(n))
|
|
37
|
+
.slice(0, 12);
|
|
38
|
+
throw (0, errors_1.createScaiError)(`Site '${siteName}' not found in this env.`, "INPUT_INVALID", {
|
|
39
|
+
hint: `Available sites: ${available.join(", ")}${sites.length > available.length ? ` (and ${sites.length - available.length} more)` : ""}.`,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
return (match.languages ?? []).filter((l) => Boolean(l));
|
|
43
|
+
};
|
|
44
|
+
exports.lookupSiteLanguages = lookupSiteLanguages;
|
|
45
|
+
/**
|
|
46
|
+
* Pick the locale list for a publishing call.
|
|
47
|
+
*
|
|
48
|
+
* Exactly one of the three flags may be set. When none is set, scai
|
|
49
|
+
* auto-resolves the tenant-wide language inventory (same as
|
|
50
|
+
* `--all-tenant-languages`) and logs it as "auto-resolved" so the
|
|
51
|
+
* operator sees what's being sent. This default exists because the
|
|
52
|
+
* Publishing API rejects requests with no locales — empirically
|
|
53
|
+
* verified 2026-05-14 against the agents env, the request returns
|
|
54
|
+
* `400 "Publishing locales should be specified either in the job
|
|
55
|
+
* options or per item"`. The `[]` fall-through (claimed by the prior
|
|
56
|
+
* docstring to use "env-configured defaults") is a phantom path the
|
|
57
|
+
* API doesn't support, so we close it here.
|
|
58
|
+
*
|
|
59
|
+
* If the tenant truly has zero languages (misconfigured env), the
|
|
60
|
+
* function still returns `[]` and surfaces a warning — the publish
|
|
61
|
+
* will fail at the API with a clearer error than scai could synthesize.
|
|
62
|
+
*/
|
|
63
|
+
const resolvePublishingLocales = async (logger, environment, options) => {
|
|
64
|
+
const flagsSet = [
|
|
65
|
+
options.languages && options.languages.length > 0 ? "--languages" : null,
|
|
66
|
+
options.languagesFromSite ? "--languages-from-site" : null,
|
|
67
|
+
options.allTenantLanguages ? "--all-tenant-languages" : null,
|
|
68
|
+
].filter((s) => s !== null);
|
|
69
|
+
if (flagsSet.length > 1) {
|
|
70
|
+
throw (0, errors_1.createScaiError)(`Locale source is over-specified: ${flagsSet.join(", ")}. Pass exactly one.`, "INPUT_INVALID");
|
|
71
|
+
}
|
|
72
|
+
if (options.languages && options.languages.length > 0) {
|
|
73
|
+
logger.info(`Locales: ${options.languages.join(", ")} (literal)`, "cyan");
|
|
74
|
+
return options.languages;
|
|
75
|
+
}
|
|
76
|
+
if (options.languagesFromSite) {
|
|
77
|
+
logger.info(`Locales: resolving from site '${options.languagesFromSite}' via Sites API...`, "gray");
|
|
78
|
+
const resolved = await (0, exports.lookupSiteLanguages)(environment, options.languagesFromSite);
|
|
79
|
+
if (resolved.length === 0) {
|
|
80
|
+
throw (0, errors_1.createScaiError)(`Site '${options.languagesFromSite}' has no configured languages.`, "INPUT_INVALID", { hint: "Add a language to the site or pass --languages explicitly." });
|
|
81
|
+
}
|
|
82
|
+
logger.info(`Locales: ${resolved.join(", ")} (from site '${options.languagesFromSite}')`, "cyan");
|
|
83
|
+
return resolved;
|
|
84
|
+
}
|
|
85
|
+
if (options.allTenantLanguages) {
|
|
86
|
+
logger.info(`Locales: resolving from tenant-wide listLanguages...`, "gray");
|
|
87
|
+
const resolved = await (0, exports.lookupTenantLanguages)(environment);
|
|
88
|
+
if (resolved.length === 0) {
|
|
89
|
+
throw (0, errors_1.createScaiError)("Tenant has no registered languages.", "INPUT_INVALID");
|
|
90
|
+
}
|
|
91
|
+
logger.info(`Locales: ${resolved.join(", ")} (tenant-wide)`, "cyan");
|
|
92
|
+
return resolved;
|
|
93
|
+
}
|
|
94
|
+
// No explicit flag → auto-resolve tenant languages. The Publishing
|
|
95
|
+
// API has no implicit default, so we make the default explicit and
|
|
96
|
+
// log it. Operator can override with --languages or scope with
|
|
97
|
+
// --languages-from-site.
|
|
98
|
+
logger.info(`Locales: no --languages flag — auto-resolving from tenant-wide listLanguages...`, "gray");
|
|
99
|
+
const resolved = await (0, exports.lookupTenantLanguages)(environment);
|
|
100
|
+
if (resolved.length === 0) {
|
|
101
|
+
logger.warn(`Tenant has no registered languages — the publish API will reject this request. Add at least one language to the tenant or pass --languages <list>.`, "yellow");
|
|
102
|
+
return [];
|
|
103
|
+
}
|
|
104
|
+
logger.info(`Locales: ${resolved.join(", ")} (auto-resolved tenant-wide; pass --languages to override or --languages-from-site to narrow)`, "cyan");
|
|
105
|
+
return resolved;
|
|
106
|
+
};
|
|
107
|
+
exports.resolvePublishingLocales = resolvePublishingLocales;
|
|
108
|
+
const lookupTenantLanguages = async (environment) => {
|
|
109
|
+
const accessToken = await (0, auth_1.getAccessToken)(environment);
|
|
110
|
+
if (!accessToken) {
|
|
111
|
+
throw (0, errors_1.createScaiError)(`Could not acquire an access token for language lookup.`, "AUTH_REQUIRED");
|
|
112
|
+
}
|
|
113
|
+
const languages = await (0, languages_1.listLanguages)({ accessToken });
|
|
114
|
+
return languages.map((l) => l.name).filter((n) => Boolean(n));
|
|
115
|
+
};
|
|
116
|
+
exports.lookupTenantLanguages = lookupTenantLanguages;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { EnvironmentConfiguration } from "../../config/types";
|
|
2
|
+
interface ResolvedItem {
|
|
3
|
+
path: string;
|
|
4
|
+
itemId: string;
|
|
5
|
+
}
|
|
6
|
+
interface ResolveItemPathsResult {
|
|
7
|
+
resolved: ResolvedItem[];
|
|
8
|
+
}
|
|
9
|
+
export declare const resolveItemPathsToIds: (environment: EnvironmentConfiguration, paths: string[]) => Promise<ResolveItemPathsResult>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveItemPathsToIds = void 0;
|
|
4
|
+
const graphql_1 = require("../../recipe/api/graphql");
|
|
5
|
+
const errors_1 = require("../../shared/errors");
|
|
6
|
+
/**
|
|
7
|
+
* Resolve Sitecore content-tree paths to item IDs via the Authoring
|
|
8
|
+
* GraphQL `item(where: { path: ... })` query.
|
|
9
|
+
*
|
|
10
|
+
* The Publishing API only accepts item IDs in `ItemModel.id`; this
|
|
11
|
+
* helper bridges path-based addressing so `scai content publish item --paths`
|
|
12
|
+
* works. Batches multiple paths into a single GraphQL request using
|
|
13
|
+
* field aliases (`i0: item(...) { itemId }`, `i1: ...`) — same
|
|
14
|
+
* pattern the recipe runtime uses internally (see
|
|
15
|
+
* `src/recipe/api/authoring-client.ts:getItemsByPaths`), but without
|
|
16
|
+
* the recipe workspace coupling.
|
|
17
|
+
*
|
|
18
|
+
* Errors with `INPUT_INVALID` listing every path that didn't resolve,
|
|
19
|
+
* so an operator publishing a batch sees all bad inputs at once
|
|
20
|
+
* rather than playing whack-a-mole.
|
|
21
|
+
*/
|
|
22
|
+
const BATCH_SIZE = 25;
|
|
23
|
+
const buildBatchQuery = (count) => {
|
|
24
|
+
const aliases = [];
|
|
25
|
+
for (let i = 0; i < count; i += 1) {
|
|
26
|
+
aliases.push(` i${i}: item(where: { path: $p${i} }) { itemId path }`);
|
|
27
|
+
}
|
|
28
|
+
const vars = Array.from({ length: count }, (_, i) => `$p${i}: String!`).join(", ");
|
|
29
|
+
return `query Batch(${vars}) {\n${aliases.join("\n")}\n}`;
|
|
30
|
+
};
|
|
31
|
+
const resolveItemPathsToIds = async (environment, paths) => {
|
|
32
|
+
if (paths.length === 0) {
|
|
33
|
+
return { resolved: [] };
|
|
34
|
+
}
|
|
35
|
+
// De-duplicate while preserving order so the returned map is
|
|
36
|
+
// predictable for the caller.
|
|
37
|
+
const seen = new Set();
|
|
38
|
+
const uniquePaths = [];
|
|
39
|
+
for (const p of paths) {
|
|
40
|
+
if (!seen.has(p)) {
|
|
41
|
+
seen.add(p);
|
|
42
|
+
uniquePaths.push(p);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
const resolved = new Map();
|
|
46
|
+
const missing = [];
|
|
47
|
+
for (let offset = 0; offset < uniquePaths.length; offset += BATCH_SIZE) {
|
|
48
|
+
const batch = uniquePaths.slice(offset, offset + BATCH_SIZE);
|
|
49
|
+
const query = buildBatchQuery(batch.length);
|
|
50
|
+
const variables = {};
|
|
51
|
+
for (let i = 0; i < batch.length; i += 1) {
|
|
52
|
+
variables[`p${i}`] = batch[i];
|
|
53
|
+
}
|
|
54
|
+
const data = await (0, graphql_1.runAuthoringGraphQL)(environment, query, variables);
|
|
55
|
+
for (let i = 0; i < batch.length; i += 1) {
|
|
56
|
+
const node = data[`i${i}`];
|
|
57
|
+
if (node?.itemId) {
|
|
58
|
+
resolved.set(batch[i], node.itemId);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
missing.push(batch[i]);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (missing.length > 0) {
|
|
66
|
+
throw (0, errors_1.createScaiError)(`Could not resolve ${missing.length} item path(s) to IDs.`, "INPUT_INVALID", {
|
|
67
|
+
hint: `Paths not found in the env's content tree: ${missing.join(", ")}. Verify the paths exist and that the authenticated client has read access.`,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
// Re-emit in caller-input order so multi-item publishing audits in a
|
|
71
|
+
// predictable order.
|
|
72
|
+
return {
|
|
73
|
+
resolved: paths.map((path) => ({ path, itemId: resolved.get(path) })),
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
exports.resolveItemPathsToIds = resolveItemPathsToIds;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { EnvironmentConfiguration } from "../../config/types";
|
|
2
|
+
/**
|
|
3
|
+
* Resolve a site name to its content-tree root item — the canonical
|
|
4
|
+
* target for "publish this site" or "unpublish this site." Composes
|
|
5
|
+
* scai's existing `discoverSites` (Authoring GraphQL tree walk for
|
|
6
|
+
* `/sitecore/content/<tenant>/<site>`) with the path → itemId
|
|
7
|
+
* resolver shipped in PR 2b.
|
|
8
|
+
*
|
|
9
|
+
* Two round trips total per call (one for the tenant/site walk, one
|
|
10
|
+
* for the path → itemId batch query). Callers using `--site` on a
|
|
11
|
+
* single command pay this once.
|
|
12
|
+
*
|
|
13
|
+
* Returns the resolved site, its content-tree path, and the item id.
|
|
14
|
+
* Throws `INPUT_INVALID` with a helpful hint listing available sites
|
|
15
|
+
* when the requested name doesn't exist in the tenant.
|
|
16
|
+
*/
|
|
17
|
+
export interface ResolvedSiteRoot {
|
|
18
|
+
siteName: string;
|
|
19
|
+
tenantName: string;
|
|
20
|
+
path: string;
|
|
21
|
+
itemId: string;
|
|
22
|
+
}
|
|
23
|
+
export declare const resolveSiteRoot: (environment: EnvironmentConfiguration, siteName: string) => Promise<ResolvedSiteRoot>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveSiteRoot = void 0;
|
|
4
|
+
const site_discovery_1 = require("../../recipe/api/site-discovery");
|
|
5
|
+
const errors_1 = require("../../shared/errors");
|
|
6
|
+
const path_resolver_1 = require("./path-resolver");
|
|
7
|
+
const resolveSiteRoot = async (environment, siteName) => {
|
|
8
|
+
const sites = await (0, site_discovery_1.discoverSites)(environment);
|
|
9
|
+
const match = sites.find((s) => s.name === siteName);
|
|
10
|
+
if (!match) {
|
|
11
|
+
const available = sites
|
|
12
|
+
.map((s) => s.name)
|
|
13
|
+
.filter((n) => Boolean(n))
|
|
14
|
+
.slice(0, 12);
|
|
15
|
+
throw (0, errors_1.createScaiError)(`Site '${siteName}' not found in the content tree.`, "INPUT_INVALID", {
|
|
16
|
+
hint: `Available sites: ${available.join(", ")}${sites.length > available.length ? ` (and ${sites.length - available.length} more)` : ""}. Site discovery walks /sitecore/content/<tenant>/<site> — make sure the site lives under that convention.`,
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
const { resolved } = await (0, path_resolver_1.resolveItemPathsToIds)(environment, [match.path]);
|
|
20
|
+
return {
|
|
21
|
+
siteName: match.name,
|
|
22
|
+
tenantName: match.tenantName,
|
|
23
|
+
path: match.path,
|
|
24
|
+
itemId: resolved[0].itemId,
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
exports.resolveSiteRoot = resolveSiteRoot;
|