@ultimat3/seo 27.15.0 → 27.16.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/CLAUDE.md CHANGED
@@ -94,7 +94,8 @@ Tier 1. May import `@ultimat3/core`, `@ultimat3/schema`, `@ultimat3/i18n`. Nothi
94
94
  errors; AVIF is opt-in (`formats: FORMAT_ORDER`) for an app whose driver encodes it.
95
95
  `image-driver.test.ts` runs every default format through `builtinImageDriver`.
96
96
  - **`seo.robots.disallow` goes into EVERY group**, and a `*` group is appended when none is
97
- declared: a crawler obeys only the group naming it. De-duplicated per group.
97
+ declared: a crawler obeys only the group naming it. De-duplicated per group. `groups` is
98
+ `app.config.ts`'s `seo.robots.groups` as is (`RobotsGroup` = core's `SeoRobotsGroup`).
98
99
  - **The brand test in `applyTitleTemplate` is a WORD match** (`containsWord`, Unicode letters and
99
100
  digits), never `includes`: `Ultimately fast` still gets its brand.
100
101
  - **`ogLocaleTag` is `Intl.Locale` language + region** — `zh_TW`, never `zh_Hant_TW`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ultimat3/seo",
3
- "version": "27.15.0",
3
+ "version": "27.16.0",
4
4
  "description": "Enforced SEO: typed meta, JSON-LD, sitemap, robots, feeds, responsive images, perf budgets",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -32,7 +32,7 @@
32
32
  "test": "bun test"
33
33
  },
34
34
  "dependencies": {
35
- "@ultimat3/core": "27.15.0",
36
- "@ultimat3/schema": "27.15.0"
35
+ "@ultimat3/core": "27.16.0",
36
+ "@ultimat3/schema": "27.16.0"
37
37
  }
38
38
  }
package/src/robots.ts CHANGED
@@ -2,16 +2,16 @@
2
2
  // anything that is not explicitly production emits `Disallow: /`, because a
3
3
  // branch deploy that gets indexed outranks and cannibalises the real site.
4
4
 
5
- import { DEFAULT_ENVIRONMENT, type Environment, tryResolveEnvironment } from '@ultimat3/core';
5
+ import {
6
+ DEFAULT_ENVIRONMENT,
7
+ type Environment,
8
+ type SeoRobotsGroup,
9
+ tryResolveEnvironment,
10
+ } from '@ultimat3/core';
6
11
  import { absoluteUrl } from './xml';
7
12
 
8
- export interface RobotsGroup {
9
- /** One or more user agents this group applies to. */
10
- userAgent: string | readonly string[];
11
- allow?: readonly string[];
12
- disallow?: readonly string[];
13
- crawlDelay?: number;
14
- }
13
+ /** One `User-agent` group — the very shape `app.config.ts`'s `seo.robots.groups` declares. */
14
+ export type RobotsGroup = SeoRobotsGroup;
15
15
 
16
16
  export interface RobotsConfig {
17
17
  baseUrl: string;