@escape-game-over/atlas 0.1.14 → 0.1.15

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@escape-game-over/atlas",
3
- "version": "0.1.14",
3
+ "version": "0.1.15",
4
4
  "type": "module",
5
5
  "description": "Typed, data-driven machinery for static multi-locale, multi-deployment Astro sites.",
6
6
  "private": false,
@@ -56,7 +56,7 @@
56
56
  "@biomejs/biome": "2.5.12",
57
57
  "@types/node": "26.5.0",
58
58
  "@vitest/coverage-istanbul": "5.0.0",
59
- "astro": "7.3.1",
59
+ "astro": "7.3.2",
60
60
  "typescript": "6.0.3",
61
61
  "vitest": "5.0.0"
62
62
  }
@@ -52,6 +52,25 @@ export interface OrganizationInput {
52
52
  * because it is what ties the brand to public records.
53
53
  */
54
54
  readonly legalName?: string;
55
+ /**
56
+ * The company's VAT registration, with its country prefix — `"EL800647866"`.
57
+ *
58
+ * Google documents it among the identifiers that tie a brand to a public
59
+ * register, alongside `legalName`, and it is the one most European
60
+ * companies actually have. Worth stating for the same reason as
61
+ * `legalName`: it is a key someone can look the entity up by, which is what
62
+ * separates a knowledge-panel claim from an assertion about a name.
63
+ *
64
+ * Prefixed, because that is the form the registers themselves publish and
65
+ * the form an invoice carries. A bare number is ambiguous between member
66
+ * states — several issue overlapping ranges — so the prefix is not
67
+ * decoration, it is what makes the value identify anything at all.
68
+ *
69
+ * Non-EU companies want `taxID` instead, which this does not model: it
70
+ * would be a different field with different rules, not this one renamed,
71
+ * and nothing here has needed it yet.
72
+ */
73
+ readonly vatID?: string;
55
74
  /**
56
75
  * How to reach the *company*, as opposed to any one of its venues.
57
76
  *
@@ -140,6 +159,7 @@ export function organization(brand: OrganizationInput): JsonLdNode {
140
159
  ...(brand.legalName === undefined
141
160
  ? {}
142
161
  : { legalName: brand.legalName }),
162
+ ...(brand.vatID === undefined ? {} : { vatID: brand.vatID }),
143
163
  // E.164, as on the business: the only form that identifies a number
144
164
  // unambiguously enough to match a company against a listing.
145
165
  ...(brand.telephone === undefined