@adobe/helix-config 5.11.0 → 5.13.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/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ # [5.13.0](https://github.com/adobe/helix-config/compare/v5.12.0...v5.13.0) (2026-08-13)
2
+
3
+
4
+ ### Features
5
+
6
+ * include content source to pipeine scope ([#400](https://github.com/adobe/helix-config/issues/400)) ([f29e790](https://github.com/adobe/helix-config/commit/f29e790146ab9333ec13cb612935c23d06504ee4))
7
+
8
+ # [5.12.0](https://github.com/adobe/helix-config/compare/v5.11.0...v5.12.0) (2026-08-13)
9
+
10
+
11
+ ### Features
12
+
13
+ * return sitemap index list for pipeline scope ([#399](https://github.com/adobe/helix-config/issues/399)) ([e775165](https://github.com/adobe/helix-config/commit/e77516540a941deea93cf63242f823cad2963930))
14
+
1
15
  # [5.11.0](https://github.com/adobe/helix-config/compare/v5.10.3...v5.11.0) (2026-06-09)
2
16
 
3
17
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adobe/helix-config",
3
- "version": "5.11.0",
3
+ "version": "5.13.0",
4
4
  "description": "Helix Config",
5
5
  "main": "src/index.js",
6
6
  "types": "src/index.d.ts",
@@ -35,26 +35,27 @@
35
35
  "reporter-options": "configFile=.mocha-multi.json"
36
36
  },
37
37
  "devDependencies": {
38
- "@adobe/eslint-config-helix": "3.0.28",
39
- "@eslint/config-helpers": "0.6.0",
40
- "@semantic-release/changelog": "6.0.3",
41
- "@semantic-release/git": "10.0.1",
38
+ "@adobe/eslint-config-helix": "3.0.30",
39
+ "@eslint/config-helpers": "0.7.0",
40
+ "@semantic-release/changelog": "7.0.0",
41
+ "@semantic-release/git": "11.0.1",
42
42
  "@semantic-release/npm": "13.1.5",
43
- "c8": "11.0.0",
43
+ "c8": "12.0.0",
44
44
  "eslint": "9.4.0",
45
45
  "husky": "9.1.7",
46
46
  "junit-report-builder": "5.1.2",
47
- "lint-staged": "17.0.5",
47
+ "lint-staged": "17.2.0",
48
48
  "mocha": "11.7.6",
49
49
  "mocha-multi-reporters": "1.5.1",
50
50
  "mocha-suppress-logs": "0.6.0",
51
- "semantic-release": "25.0.3"
51
+ "semantic-release": "25.0.8"
52
52
  },
53
53
  "lint-staged": {
54
54
  "*.js": "eslint",
55
55
  "*.cjs": "eslint"
56
56
  },
57
57
  "dependencies": {
58
+ "@adobe/helix-shared-config": "11.2.0",
58
59
  "@adobe/helix-shared-server-timing": "1.0.0",
59
60
  "@adobe/helix-shared-utils": "3.0.2"
60
61
  }
@@ -9,6 +9,7 @@
9
9
  * OF ANY KIND, either express or implied. See the License for the specific language
10
10
  * governing permissions and limitations under the License.
11
11
  */
12
+ import { SitemapConfig } from '@adobe/helix-shared-config';
12
13
  import { computeSurrogateKey } from '@adobe/helix-shared-utils';
13
14
  // eslint-disable-next-line import/no-unresolved
14
15
  import { PipelineResponse } from './PipelineResponse.js';
@@ -210,6 +211,31 @@ async function fetchRobotsTxt(ctx, owner, repo) {
210
211
  return robots;
211
212
  }
212
213
 
214
+ /**
215
+ * Retrieves the sitemap index from the `sitemap.yaml` on the content-bus.
216
+ *
217
+ * @param {ConfigContext} ctx the context
218
+ * @param {object} rso RSO (ref, site, org)
219
+ * @param {object} config the config
220
+ * @returns {Promise<string[]|null>} the sitemap index list, or `null` if not configured
221
+ */
222
+ async function fetchSitemapIndex(ctx, rso, config) {
223
+ const key = `${config.content.contentBusId}/preview/.helix/sitemap.yaml`;
224
+ const res = await ctx.loader.getObject(HELIX_CONTENT_BUS, key);
225
+
226
+ const sitemap = new ConfigObject();
227
+ if (res.body) {
228
+ try {
229
+ const sitemapConfig = await new SitemapConfig().withSource(res.body).init();
230
+ sitemap.index = sitemapConfig.index;
231
+ sitemap.updateLastModified(res.headers);
232
+ } catch (e) {
233
+ ctx.log.warn(`[${rso.org}/${rso.site}] Unable to process ${key}: ${e.message}`);
234
+ }
235
+ }
236
+ return sitemap;
237
+ }
238
+
213
239
  /**
214
240
  * Load metadata from the given path
215
241
  * @param ctx the context
@@ -367,6 +393,11 @@ async function resolveConfig(ctx, rso, scope) {
367
393
  config.robots = robots;
368
394
  }
369
395
  }
396
+ ctx.timer?.update('sitemap-index');
397
+ const sitemap = await fetchSitemapIndex(ctx, rso, config);
398
+ if (sitemap.index) {
399
+ config.sitemap = sitemap;
400
+ }
370
401
  }
371
402
  if (scope === SCOPE_PIPELINE || scope === SCOPE_RAW || scope === SCOPE_DELIVERY) {
372
403
  // although not used in raw, or delivery, load in order to set correct last-modified
@@ -685,6 +716,7 @@ export async function getConfigResponse(ctx, opts) {
685
716
  siteConfig.updateLastModified(config.head);
686
717
  siteConfig.updateLastModified(siteConfig.sidekick);
687
718
  siteConfig.updateLastModified(config.robots);
719
+ siteConfig.updateLastModified(config.sitemap);
688
720
  siteConfig.updateLastModified(config.metadata?.preview);
689
721
  siteConfig.updateLastModified(config.metadata?.live);
690
722
 
@@ -762,6 +794,7 @@ export async function getConfigResponse(ctx, opts) {
762
794
  repo: config.code.repo,
763
795
  ...rso,
764
796
  contentBusId: config.content.contentBusId,
797
+ contentSource: config.content.source,
765
798
  headers: config.headers,
766
799
  head: config.head,
767
800
  metadata: config.metadata,
@@ -769,6 +802,7 @@ export async function getConfigResponse(ctx, opts) {
769
802
  folders: config.folders,
770
803
  public: config.public,
771
804
  robots: config.robots,
805
+ sitemap: config.sitemap,
772
806
  access: config.access,
773
807
  lastModified: siteConfig.lastModified,
774
808
  created: config.created,