open-local-audit 0.77.0 → 0.78.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 +6 -0
- package/dist/local-business-types.d.ts +16 -0
- package/dist/local-business-types.js +324 -0
- package/dist/local-business-types.js.map +1 -0
- package/dist/rules.js +131 -14
- package/dist/rules.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to Open Local Audit will be documented here.
|
|
4
4
|
|
|
5
|
+
## v0.78.0 - 2026-10-11
|
|
6
|
+
|
|
7
|
+
- The `localbusiness-schema-present`, `localbusiness-schema-contact-fields`, and `localbusiness-schema-nap-consistency` rules now recognise schema.org LocalBusiness subtypes such as `Dentist`, `Attorney`, `MedicalClinic`, `Ophthalmology`, `Restaurant`, and `Plumber` (every LocalBusiness descendant in schema.org 30.1). Types are expanded through the page's JSON-LD `@context` (`@vocab`, including a compact `@vocab`, prefixes with JSON-LD 1.1 prefix rules, term definitions, including ones that take their IRI from `@vocab`, `null` resets, and `@propagate`), so `Dentist` under the schema.org context, `schema:Dentist`, and `https://schema.org/Dentist` match, while types that expand to another vocabulary do not. Pages without any `@context` still read bare and `schema:` types as schema.org types. Pages that use only a subtype no longer get a false "LocalBusiness structured data is missing" finding, and their schema telephone, address, and opening hours are now checked.
|
|
8
|
+
- `localbusiness-schema-contact-fields` accepts `openingHoursSpecification` (one object or a list, each with a non-empty `dayOfWeek`, `opens`, or `closes` value, or an `@id` reference to one in the page's JSON-LD, including `@included` and embedded nodes, with compact `@id` values expanded through the context, relative ones resolved against the context `@base` or the page URL, and blank node labels kept local to their script block) and a list of `openingHours` strings as opening hours. It also reads telephone, address, and opening hours from every JSON-LD node that shares the business's `@id`.
|
|
9
|
+
- These changes can remove `localbusiness-schema-present` findings and add contact-field or NAP findings on pages with subtype schema, so `compare` against earlier reports may show them as fixed or new.
|
|
10
|
+
|
|
5
11
|
## v0.77.0 - 2026-10-10
|
|
6
12
|
|
|
7
13
|
- Discovery now flags leads that look like a chain branch or public body, such as `mydentist.co.uk` branch pages, Rodericks practice pages, and `nhs.uk` listings: a public-sector website domain, a website host shared by two or more differently named leads in the same search, or a branch page URL with two or more path segments. Social, link-in-bio, directory, site-builder, and booking-platform pages such as `facebook.com`, `linktr.ee`, `sites.google.com`, Treatwell, and Fresha are never treated as chains. Flagged leads stay in the export with the reason in `opportunityReasons` and a new standard CSV `chainReason` column, low priority, an opportunity score of at most 20, and a "Skip unless you are targeting the head office" next action. This applies to every discovery source; the CRM preset is unchanged.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
type TermDefinition = {
|
|
2
|
+
iri: string | null;
|
|
3
|
+
prefix: boolean;
|
|
4
|
+
};
|
|
5
|
+
export type JsonLdTypeContext = {
|
|
6
|
+
declared: boolean;
|
|
7
|
+
vocab: string | null;
|
|
8
|
+
terms: Map<string, TermDefinition>;
|
|
9
|
+
bases: readonly (string | null)[];
|
|
10
|
+
};
|
|
11
|
+
export declare const noTypeContext: JsonLdTypeContext;
|
|
12
|
+
export declare function applyTypeContext(active: JsonLdTypeContext, context: unknown): JsonLdTypeContext;
|
|
13
|
+
export declare function contextBase(documentBase: string, context: JsonLdTypeContext): string | null;
|
|
14
|
+
export declare function expandNodeId(value: string, context: JsonLdTypeContext): string;
|
|
15
|
+
export declare function isLocalBusinessType(type: string, context?: JsonLdTypeContext): boolean;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
// schema.org LocalBusiness and all its descendants as of schema.org 30.1, including the health-lifesci
|
|
2
|
+
// MedicalBusiness specialties, so pages typed as Dentist, Attorney, Restaurant, or Plumber count as
|
|
3
|
+
// local business structured data.
|
|
4
|
+
const localBusinessTypes = new Set([
|
|
5
|
+
"LocalBusiness",
|
|
6
|
+
"AnimalShelter",
|
|
7
|
+
"ArchiveOrganization",
|
|
8
|
+
"AutomotiveBusiness",
|
|
9
|
+
"AutoBodyShop",
|
|
10
|
+
"AutoDealer",
|
|
11
|
+
"AutoPartsStore",
|
|
12
|
+
"AutoRental",
|
|
13
|
+
"AutoRepair",
|
|
14
|
+
"AutoWash",
|
|
15
|
+
"GasStation",
|
|
16
|
+
"MotorcycleDealer",
|
|
17
|
+
"MotorcycleRepair",
|
|
18
|
+
"ChildCare",
|
|
19
|
+
"Dentist",
|
|
20
|
+
"DryCleaningOrLaundry",
|
|
21
|
+
"EmergencyService",
|
|
22
|
+
"FireStation",
|
|
23
|
+
"Hospital",
|
|
24
|
+
"PoliceStation",
|
|
25
|
+
"EmploymentAgency",
|
|
26
|
+
"EntertainmentBusiness",
|
|
27
|
+
"AdultEntertainment",
|
|
28
|
+
"AmusementPark",
|
|
29
|
+
"ArtGallery",
|
|
30
|
+
"Casino",
|
|
31
|
+
"ComedyClub",
|
|
32
|
+
"MovieTheater",
|
|
33
|
+
"NightClub",
|
|
34
|
+
"FinancialService",
|
|
35
|
+
"AccountingService",
|
|
36
|
+
"AutomatedTeller",
|
|
37
|
+
"BankOrCreditUnion",
|
|
38
|
+
"InsuranceAgency",
|
|
39
|
+
"FoodEstablishment",
|
|
40
|
+
"Bakery",
|
|
41
|
+
"BarOrPub",
|
|
42
|
+
"Brewery",
|
|
43
|
+
"CafeOrCoffeeShop",
|
|
44
|
+
"Distillery",
|
|
45
|
+
"FastFoodRestaurant",
|
|
46
|
+
"IceCreamShop",
|
|
47
|
+
"Restaurant",
|
|
48
|
+
"Winery",
|
|
49
|
+
"GovernmentOffice",
|
|
50
|
+
"PostOffice",
|
|
51
|
+
"HealthAndBeautyBusiness",
|
|
52
|
+
"BeautySalon",
|
|
53
|
+
"DaySpa",
|
|
54
|
+
"HairSalon",
|
|
55
|
+
"HealthClub",
|
|
56
|
+
"NailSalon",
|
|
57
|
+
"TattooParlor",
|
|
58
|
+
"HomeAndConstructionBusiness",
|
|
59
|
+
"Electrician",
|
|
60
|
+
"GeneralContractor",
|
|
61
|
+
"HVACBusiness",
|
|
62
|
+
"HousePainter",
|
|
63
|
+
"Locksmith",
|
|
64
|
+
"MovingCompany",
|
|
65
|
+
"Plumber",
|
|
66
|
+
"RoofingContractor",
|
|
67
|
+
"InternetCafe",
|
|
68
|
+
"LegalService",
|
|
69
|
+
"Attorney",
|
|
70
|
+
"Notary",
|
|
71
|
+
"Library",
|
|
72
|
+
"LodgingBusiness",
|
|
73
|
+
"BedAndBreakfast",
|
|
74
|
+
"Campground",
|
|
75
|
+
"Hostel",
|
|
76
|
+
"Hotel",
|
|
77
|
+
"Motel",
|
|
78
|
+
"Resort",
|
|
79
|
+
"SkiResort",
|
|
80
|
+
"VacationRental",
|
|
81
|
+
"MedicalBusiness",
|
|
82
|
+
"Audiology",
|
|
83
|
+
"CommunityHealth",
|
|
84
|
+
"Dermatology",
|
|
85
|
+
"DietNutrition",
|
|
86
|
+
"Emergency",
|
|
87
|
+
"Geriatric",
|
|
88
|
+
"Gynecologic",
|
|
89
|
+
"MedicalClinic",
|
|
90
|
+
"CovidTestingFacility",
|
|
91
|
+
"Midwifery",
|
|
92
|
+
"Nursing",
|
|
93
|
+
"Obstetric",
|
|
94
|
+
"Oncologic",
|
|
95
|
+
"Ophthalmology",
|
|
96
|
+
"Optician",
|
|
97
|
+
"Optometric",
|
|
98
|
+
"Otolaryngologic",
|
|
99
|
+
"Pediatric",
|
|
100
|
+
"Pharmacy",
|
|
101
|
+
"Physician",
|
|
102
|
+
"IndividualPhysician",
|
|
103
|
+
"PhysiciansOffice",
|
|
104
|
+
"Physiotherapy",
|
|
105
|
+
"PlasticSurgery",
|
|
106
|
+
"Podiatric",
|
|
107
|
+
"PrimaryCare",
|
|
108
|
+
"Psychiatric",
|
|
109
|
+
"PublicHealth",
|
|
110
|
+
"ProfessionalService",
|
|
111
|
+
"RadioStation",
|
|
112
|
+
"RealEstateAgent",
|
|
113
|
+
"RecyclingCenter",
|
|
114
|
+
"SelfStorage",
|
|
115
|
+
"ShoppingCenter",
|
|
116
|
+
"SportsActivityLocation",
|
|
117
|
+
"BowlingAlley",
|
|
118
|
+
"ExerciseGym",
|
|
119
|
+
"GolfCourse",
|
|
120
|
+
"PublicSwimmingPool",
|
|
121
|
+
"SportsClub",
|
|
122
|
+
"StadiumOrArena",
|
|
123
|
+
"TennisComplex",
|
|
124
|
+
"Store",
|
|
125
|
+
"BikeStore",
|
|
126
|
+
"BookStore",
|
|
127
|
+
"ClothingStore",
|
|
128
|
+
"ComputerStore",
|
|
129
|
+
"ConvenienceStore",
|
|
130
|
+
"DepartmentStore",
|
|
131
|
+
"ElectronicsStore",
|
|
132
|
+
"Florist",
|
|
133
|
+
"FurnitureStore",
|
|
134
|
+
"GardenStore",
|
|
135
|
+
"GroceryStore",
|
|
136
|
+
"HardwareStore",
|
|
137
|
+
"HobbyShop",
|
|
138
|
+
"HomeGoodsStore",
|
|
139
|
+
"JewelryStore",
|
|
140
|
+
"LiquorStore",
|
|
141
|
+
"MensClothingStore",
|
|
142
|
+
"MobilePhoneStore",
|
|
143
|
+
"MovieRentalStore",
|
|
144
|
+
"MusicStore",
|
|
145
|
+
"OfficeEquipmentStore",
|
|
146
|
+
"OutletStore",
|
|
147
|
+
"PawnShop",
|
|
148
|
+
"PetStore",
|
|
149
|
+
"ShoeStore",
|
|
150
|
+
"SportingGoodsStore",
|
|
151
|
+
"TireShop",
|
|
152
|
+
"ToyStore",
|
|
153
|
+
"WholesaleStore",
|
|
154
|
+
"TelevisionStation",
|
|
155
|
+
"TouristInformationCenter",
|
|
156
|
+
"TravelAgency"
|
|
157
|
+
]);
|
|
158
|
+
export const noTypeContext = { declared: false, vocab: null, terms: new Map(), bases: [] };
|
|
159
|
+
const schemaOrgRoot = "https://schema.org/";
|
|
160
|
+
const schemaOrgType = /^https?:\/\/(?:www\.)?schema\.org\/([A-Za-z]+)$/;
|
|
161
|
+
// Only an absolute URL names schema.org's context; "schema.org" alone is relative to the page.
|
|
162
|
+
const schemaOrgContext = /^https?:\/\/(?:www\.)?schema\.org(?:\/.*)?$/i;
|
|
163
|
+
const genDelimEnd = /[:/?#[\]@]$/;
|
|
164
|
+
const noLocalTerms = new Map();
|
|
165
|
+
function rawTermDefinition(definition) {
|
|
166
|
+
if (definition === null) {
|
|
167
|
+
return { iri: null, simple: false, prefix: false };
|
|
168
|
+
}
|
|
169
|
+
if (typeof definition === "string") {
|
|
170
|
+
return { iri: definition, simple: true, prefix: false };
|
|
171
|
+
}
|
|
172
|
+
if (definition && typeof definition === "object" && !Array.isArray(definition)) {
|
|
173
|
+
const fields = definition;
|
|
174
|
+
const id = fields["@id"];
|
|
175
|
+
if (id === null || id === undefined || typeof id === "string") {
|
|
176
|
+
return { iri: id, simple: false, prefix: fields["@prefix"] === true };
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
return undefined;
|
|
180
|
+
}
|
|
181
|
+
// Resolves a term from the local context being processed, whose definitions may depend on each other,
|
|
182
|
+
// or else from the active context. A term already being resolved is a cycle and is treated as undefined.
|
|
183
|
+
function resolveTerm(term, context, local, resolving) {
|
|
184
|
+
const raw = local.get(term);
|
|
185
|
+
if (!raw) {
|
|
186
|
+
return context.terms.get(term);
|
|
187
|
+
}
|
|
188
|
+
if (resolving.has(term)) {
|
|
189
|
+
return undefined;
|
|
190
|
+
}
|
|
191
|
+
const nested = new Set([...resolving, term]);
|
|
192
|
+
// Without @id, a term containing ":" is a compact IRI and any other term is appended to @vocab.
|
|
193
|
+
const iri = raw.iri === null
|
|
194
|
+
? null
|
|
195
|
+
: raw.iri === undefined
|
|
196
|
+
? term.includes(":")
|
|
197
|
+
? (expandIri(term, context, local, nested) ?? null)
|
|
198
|
+
: context.vocab
|
|
199
|
+
? context.vocab + term
|
|
200
|
+
: null
|
|
201
|
+
: (expandIri(raw.iri, context, local, nested) ?? null);
|
|
202
|
+
// Follows JSON-LD 1.1: a term is a prefix with "@prefix": true, or when it is a simple string term
|
|
203
|
+
// whose expanded IRI ends with a gen-delim character.
|
|
204
|
+
return { iri, prefix: raw.prefix || (raw.simple && iri !== null && genDelimEnd.test(iri)) };
|
|
205
|
+
}
|
|
206
|
+
// Expands a term, compact IRI, or absolute IRI.
|
|
207
|
+
function expandIri(value, context, local = noLocalTerms, resolving = new Set()) {
|
|
208
|
+
const trimmed = value.trim();
|
|
209
|
+
// A term defined in the context, even one containing ":", is used before any prefix expansion.
|
|
210
|
+
const definition = resolveTerm(trimmed, context, local, resolving);
|
|
211
|
+
if (definition) {
|
|
212
|
+
return definition.iri ?? undefined;
|
|
213
|
+
}
|
|
214
|
+
const colon = trimmed.indexOf(":");
|
|
215
|
+
if (colon > 0) {
|
|
216
|
+
const prefix = trimmed.slice(0, colon);
|
|
217
|
+
const suffix = trimmed.slice(colon + 1);
|
|
218
|
+
if (suffix.startsWith("//")) {
|
|
219
|
+
return trimmed;
|
|
220
|
+
}
|
|
221
|
+
const prefixDefinition = resolveTerm(prefix, context, local, resolving);
|
|
222
|
+
if (prefixDefinition?.prefix && prefixDefinition.iri) {
|
|
223
|
+
return prefixDefinition.iri + suffix;
|
|
224
|
+
}
|
|
225
|
+
return !context.declared && prefix === "schema" ? schemaOrgRoot + suffix : trimmed;
|
|
226
|
+
}
|
|
227
|
+
if (!context.declared) {
|
|
228
|
+
return schemaOrgRoot + trimmed;
|
|
229
|
+
}
|
|
230
|
+
return context.vocab ? context.vocab + trimmed : undefined;
|
|
231
|
+
}
|
|
232
|
+
// Applies a @context value (null, a URL, an object, or a list of them) in JSON-LD processing order.
|
|
233
|
+
export function applyTypeContext(active, context) {
|
|
234
|
+
if (context === undefined) {
|
|
235
|
+
return active;
|
|
236
|
+
}
|
|
237
|
+
if (Array.isArray(context)) {
|
|
238
|
+
return context.reduce(applyTypeContext, active);
|
|
239
|
+
}
|
|
240
|
+
// A null context removes everything inherited.
|
|
241
|
+
if (context === null) {
|
|
242
|
+
return { declared: true, vocab: null, terms: new Map(), bases: [] };
|
|
243
|
+
}
|
|
244
|
+
// schema.org's own context sets the schema.org vocabulary and "schema" prefix; any other remote
|
|
245
|
+
// context is unknown and may redefine every term. A remote context cannot change the base.
|
|
246
|
+
if (typeof context === "string") {
|
|
247
|
+
return schemaOrgContext.test(context.trim())
|
|
248
|
+
? {
|
|
249
|
+
declared: true,
|
|
250
|
+
vocab: schemaOrgRoot,
|
|
251
|
+
terms: new Map([...active.terms, ["schema", { iri: schemaOrgRoot, prefix: true }]]),
|
|
252
|
+
bases: active.bases
|
|
253
|
+
}
|
|
254
|
+
: { declared: true, vocab: null, terms: new Map(), bases: active.bases };
|
|
255
|
+
}
|
|
256
|
+
if (typeof context !== "object") {
|
|
257
|
+
return active;
|
|
258
|
+
}
|
|
259
|
+
const fields = context;
|
|
260
|
+
const next = { declared: true, vocab: active.vocab, terms: new Map(active.terms), bases: active.bases };
|
|
261
|
+
const base = fields["@base"];
|
|
262
|
+
if (base === null || typeof base === "string") {
|
|
263
|
+
next.bases = [...active.bases, base];
|
|
264
|
+
}
|
|
265
|
+
// As in JSON-LD context processing, @vocab is expanded with the terms defined before this context.
|
|
266
|
+
if ("@vocab" in fields) {
|
|
267
|
+
const vocab = fields["@vocab"];
|
|
268
|
+
next.vocab = typeof vocab === "string" ? (expandIri(vocab, { ...active, declared: true }) ?? null) : null;
|
|
269
|
+
}
|
|
270
|
+
const local = new Map();
|
|
271
|
+
for (const [key, value] of Object.entries(fields)) {
|
|
272
|
+
const definition = key.startsWith("@") ? undefined : rawTermDefinition(value);
|
|
273
|
+
if (definition) {
|
|
274
|
+
local.set(key, definition);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
// Each term's IRI is expanded and frozen now, so later contexts that redefine its prefix do not change it.
|
|
278
|
+
const resolved = [...local.keys()].map((term) => [term, resolveTerm(term, next, local, new Set())]);
|
|
279
|
+
for (const [term, definition] of resolved) {
|
|
280
|
+
if (definition) {
|
|
281
|
+
next.terms.set(term, definition);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
return next;
|
|
285
|
+
}
|
|
286
|
+
// The base IRI that relative @id values resolve against: the document base with each @base applied in
|
|
287
|
+
// turn, or null after "@base": null, when relative IRIs stay relative.
|
|
288
|
+
export function contextBase(documentBase, context) {
|
|
289
|
+
return context.bases.reduce((base, value) => {
|
|
290
|
+
if (value === null) {
|
|
291
|
+
return null;
|
|
292
|
+
}
|
|
293
|
+
try {
|
|
294
|
+
return new URL(value, base ?? undefined).href;
|
|
295
|
+
}
|
|
296
|
+
catch {
|
|
297
|
+
return base;
|
|
298
|
+
}
|
|
299
|
+
}, documentBase);
|
|
300
|
+
}
|
|
301
|
+
// Expands a node @id through its JSON-LD context. Unlike types, @id values do not use terms or @vocab:
|
|
302
|
+
// only a compact IRI whose prefix is defined expands; anything else is returned as written, for the
|
|
303
|
+
// caller to resolve against the document base. Blank node labels such as "_:b0" are left alone.
|
|
304
|
+
export function expandNodeId(value, context) {
|
|
305
|
+
const trimmed = value.trim();
|
|
306
|
+
const colon = trimmed.indexOf(":");
|
|
307
|
+
if (colon > 0) {
|
|
308
|
+
const prefix = trimmed.slice(0, colon);
|
|
309
|
+
const suffix = trimmed.slice(colon + 1);
|
|
310
|
+
const definition = context.terms.get(prefix);
|
|
311
|
+
if (prefix !== "_" && !suffix.startsWith("//") && definition?.prefix && definition.iri) {
|
|
312
|
+
return definition.iri + suffix;
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
return trimmed;
|
|
316
|
+
}
|
|
317
|
+
// Expands the type through its JSON-LD context and accepts schema.org LocalBusiness types, so
|
|
318
|
+
// "Dentist" under the schema.org context, "schema:Dentist" and "https://schema.org/Dentist" match,
|
|
319
|
+
// while "https://example.com/Restaurant" or a bare "Restaurant" under another vocabulary do not.
|
|
320
|
+
export function isLocalBusinessType(type, context = noTypeContext) {
|
|
321
|
+
const name = schemaOrgType.exec(expandIri(type, context) ?? "")?.[1];
|
|
322
|
+
return name !== undefined && (localBusinessTypes.has(name) || name.endsWith("LocalBusiness"));
|
|
323
|
+
}
|
|
324
|
+
//# sourceMappingURL=local-business-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-business-types.js","sourceRoot":"","sources":["../src/local-business-types.ts"],"names":[],"mappings":"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"}
|
package/dist/rules.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { load } from "cheerio";
|
|
2
2
|
import { findPhoneNumbersInText, getCountries, parsePhoneNumberFromString } from "libphonenumber-js/max";
|
|
3
3
|
import { detectPageForms, hasContactOrBookingLink } from "./contact.js";
|
|
4
|
+
import { applyTypeContext, contextBase, expandNodeId, isLocalBusinessType, noTypeContext } from "./local-business-types.js";
|
|
4
5
|
function finding(rule, context) {
|
|
5
6
|
return {
|
|
6
7
|
id: rule.id,
|
|
@@ -30,25 +31,39 @@ function jsonLdTypes(node) {
|
|
|
30
31
|
const types = Array.isArray(typeValue) ? typeValue : [typeValue];
|
|
31
32
|
return types.filter((type) => typeof type === "string");
|
|
32
33
|
}
|
|
33
|
-
|
|
34
|
+
const nodeScopes = new WeakMap();
|
|
35
|
+
// Flattens top-level and @graph or @included node objects; with embedded set, also node objects nested
|
|
36
|
+
// as property values, such as an address or a mainEntity.
|
|
37
|
+
function flattenJsonLd(value, block, context = noTypeContext, embedded = false) {
|
|
34
38
|
if (Array.isArray(value)) {
|
|
35
|
-
return value.flatMap((item) => flattenJsonLd(item));
|
|
39
|
+
return value.flatMap((item) => flattenJsonLd(item, block, context, embedded));
|
|
36
40
|
}
|
|
37
41
|
if (!value || typeof value !== "object") {
|
|
38
42
|
return [];
|
|
39
43
|
}
|
|
40
44
|
const node = value;
|
|
41
|
-
const
|
|
42
|
-
|
|
45
|
+
const localContext = node["@context"];
|
|
46
|
+
const nodeContext = applyTypeContext(context, localContext);
|
|
47
|
+
// A context with "@propagate": false, alone or in a context array, applies to this node only; nested
|
|
48
|
+
// nodes return to the previous context, which no longer gets the lenient no-context reading.
|
|
49
|
+
const localContexts = Array.isArray(localContext) ? localContext : [localContext];
|
|
50
|
+
const propagates = !localContexts.some((entry) => hasObjectField(entry) && entry["@propagate"] === false);
|
|
51
|
+
const childContext = propagates ? nodeContext : { ...context, declared: true };
|
|
52
|
+
nodeScopes.set(node, { context: nodeContext, nestedContext: childContext, block });
|
|
53
|
+
// @graph and @included both hold further node objects of the same document.
|
|
54
|
+
const nestedKeys = embedded
|
|
55
|
+
? Object.keys(node).filter((key) => !key.startsWith("@") || ["@graph", "@included", "@list", "@set"].includes(key))
|
|
56
|
+
: ["@graph", "@included"];
|
|
57
|
+
return [node, ...nestedKeys.flatMap((key) => flattenJsonLd(node[key], block, childContext, embedded))];
|
|
43
58
|
}
|
|
44
|
-
function jsonLdNodes(
|
|
59
|
+
function jsonLdNodes($, embedded = false) {
|
|
45
60
|
return $('script[type="application/ld+json"]')
|
|
46
61
|
.toArray()
|
|
47
|
-
.flatMap((element) => {
|
|
62
|
+
.flatMap((element, block) => {
|
|
48
63
|
const raw = $(element).text();
|
|
49
64
|
try {
|
|
50
65
|
const parsed = JSON.parse(raw);
|
|
51
|
-
return flattenJsonLd(parsed);
|
|
66
|
+
return flattenJsonLd(parsed, block, noTypeContext, embedded);
|
|
52
67
|
}
|
|
53
68
|
catch {
|
|
54
69
|
return [];
|
|
@@ -72,7 +87,7 @@ function hasSuccessfulResource(statusCode) {
|
|
|
72
87
|
return typeof statusCode === "number" && statusCode >= 200 && statusCode < 400;
|
|
73
88
|
}
|
|
74
89
|
function localBusinessNodes($) {
|
|
75
|
-
return jsonLdNodes($).filter((node) => jsonLdTypes(node).some((type) => type.
|
|
90
|
+
return jsonLdNodes($).filter((node) => jsonLdTypes(node).some((type) => isLocalBusinessType(type, nodeScopes.get(node)?.context)));
|
|
76
91
|
}
|
|
77
92
|
function hasObjectField(value) {
|
|
78
93
|
return Boolean(value && typeof value === "object" && !Array.isArray(value));
|
|
@@ -80,12 +95,114 @@ function hasObjectField(value) {
|
|
|
80
95
|
function hasStringField(value) {
|
|
81
96
|
return typeof value === "string" && value.trim().length > 0;
|
|
82
97
|
}
|
|
83
|
-
|
|
98
|
+
// A day or time is a non-empty string, or a JSON-LD value or node object carrying one, such as
|
|
99
|
+
// {"@id": "https://schema.org/Monday"} or {"@value": "09:00"}.
|
|
100
|
+
function hasOpeningHoursValue(value) {
|
|
101
|
+
if (hasStringField(value)) {
|
|
102
|
+
return true;
|
|
103
|
+
}
|
|
104
|
+
if (!hasObjectField(value)) {
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
const fields = value;
|
|
108
|
+
return ["@id", "@value", "name"].some((key) => hasStringField(fields[key]));
|
|
109
|
+
}
|
|
110
|
+
function hasOpeningHoursData(specification) {
|
|
111
|
+
if (!hasObjectField(specification)) {
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
const fields = specification;
|
|
115
|
+
return ["dayOfWeek", "opens", "closes"].some((field) => {
|
|
116
|
+
const values = Array.isArray(fields[field]) ? fields[field] : [fields[field]];
|
|
117
|
+
return values.some(hasOpeningHoursValue);
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
// JSON-LD @id values are IRIs relative to the document base: the page URL, or its <base href>.
|
|
121
|
+
function documentBase($, snapshot) {
|
|
122
|
+
const pageUrl = snapshot.finalUrl || snapshot.url;
|
|
123
|
+
try {
|
|
124
|
+
return new URL($("base[href]").first().attr("href") ?? "", pageUrl).href;
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
return pageUrl;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
// An @id as a lookup key: compact IRIs expand through the JSON-LD context and relative IRIs resolve
|
|
131
|
+
// against the context's @base or the document base, while blank node labels such as "_:b0" stay local
|
|
132
|
+
// to their script block.
|
|
133
|
+
function nodeKey(id, context, block, documentBaseIri) {
|
|
134
|
+
const expanded = expandNodeId(id, context);
|
|
135
|
+
if (expanded.startsWith("_:")) {
|
|
136
|
+
return `${block} ${expanded}`;
|
|
137
|
+
}
|
|
138
|
+
try {
|
|
139
|
+
return new URL(expanded, contextBase(documentBaseIri, context) ?? undefined).href;
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
return expanded;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
function nodeIdKey(node, base) {
|
|
146
|
+
const scope = nodeScopes.get(node);
|
|
147
|
+
return scope && typeof node["@id"] === "string" ? nodeKey(node["@id"], scope.context, scope.block, base) : undefined;
|
|
148
|
+
}
|
|
149
|
+
// The key of a node reference such as {"@id": "#hours"} found in one of the owner node's properties.
|
|
150
|
+
// As in JSON-LD expansion, an object holding only @id keeps the owner's context even when that context
|
|
151
|
+
// does not propagate; any other nested object returns to the previous context.
|
|
152
|
+
function referenceKey(reference, owner, base) {
|
|
153
|
+
const scope = nodeScopes.get(owner);
|
|
154
|
+
if (!scope || !hasObjectField(reference)) {
|
|
155
|
+
return undefined;
|
|
156
|
+
}
|
|
157
|
+
const fields = reference;
|
|
158
|
+
const idOnly = Object.keys(fields).length === 1;
|
|
159
|
+
const context = idOnly ? scope.context : applyTypeContext(scope.nestedContext, fields["@context"]);
|
|
160
|
+
return typeof fields["@id"] === "string" ? nodeKey(fields["@id"], context, scope.block, base) : undefined;
|
|
161
|
+
}
|
|
162
|
+
// Every JSON-LD node with each @id, embedded ones included, keyed as above; nodes sharing an @id
|
|
163
|
+
// describe the same thing.
|
|
164
|
+
function jsonLdNodesById($, base) {
|
|
165
|
+
const nodesById = new Map();
|
|
166
|
+
for (const node of jsonLdNodes($, true)) {
|
|
167
|
+
const key = nodeIdKey(node, base);
|
|
168
|
+
if (key !== undefined) {
|
|
169
|
+
nodesById.set(key, [...(nodesById.get(key) ?? []), node]);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return nodesById;
|
|
173
|
+
}
|
|
174
|
+
// A node together with every other node that shares its @id.
|
|
175
|
+
function nodeFragments(node, nodesById, base) {
|
|
176
|
+
const key = nodeIdKey(node, base);
|
|
177
|
+
return key === undefined ? [node] : (nodesById.get(key) ?? [node]);
|
|
178
|
+
}
|
|
179
|
+
// openingHours may be one string or a list; openingHoursSpecification is one object or a list of them,
|
|
180
|
+
// each with a day or time, or an {"@id": ...} reference to nodes elsewhere in the graph that have one.
|
|
181
|
+
function hasOpeningHoursField(node, nodesById, base) {
|
|
182
|
+
const specifications = Array.isArray(node.openingHoursSpecification)
|
|
183
|
+
? node.openingHoursSpecification
|
|
184
|
+
: [node.openingHoursSpecification];
|
|
185
|
+
return (stringValues(node.openingHours).length > 0 ||
|
|
186
|
+
specifications.some((specification) => {
|
|
187
|
+
const reference = referenceKey(specification, node, base);
|
|
188
|
+
const referenced = reference === undefined ? [] : (nodesById.get(reference) ?? []);
|
|
189
|
+
return hasOpeningHoursData(specification) || referenced.some(hasOpeningHoursData);
|
|
190
|
+
}));
|
|
191
|
+
}
|
|
192
|
+
// The business's fields may be split across nodes that share its @id.
|
|
193
|
+
function hasLocalBusinessContactFields($, snapshot) {
|
|
84
194
|
const nodes = localBusinessNodes($);
|
|
85
195
|
if (nodes.length === 0) {
|
|
86
196
|
return true;
|
|
87
197
|
}
|
|
88
|
-
|
|
198
|
+
const base = documentBase($, snapshot);
|
|
199
|
+
const nodesById = jsonLdNodesById($, base);
|
|
200
|
+
return nodes.some((node) => {
|
|
201
|
+
const fragments = nodeFragments(node, nodesById, base);
|
|
202
|
+
return (fragments.some((fragment) => hasStringField(fragment.telephone)) &&
|
|
203
|
+
fragments.some((fragment) => hasObjectField(fragment.address)) &&
|
|
204
|
+
fragments.some((fragment) => hasOpeningHoursField(fragment, nodesById, base)));
|
|
205
|
+
});
|
|
89
206
|
}
|
|
90
207
|
function stringValues(value) {
|
|
91
208
|
const values = Array.isArray(value) ? value : [value];
|
|
@@ -1027,7 +1144,7 @@ const rules = [
|
|
|
1027
1144
|
severity: "medium",
|
|
1028
1145
|
source: "JSON-LD",
|
|
1029
1146
|
recommendation: "Add LocalBusiness schema when the page represents a local business location.",
|
|
1030
|
-
check: ({ $ }) =>
|
|
1147
|
+
check: ({ $ }) => localBusinessNodes($).length > 0,
|
|
1031
1148
|
evidence: () => "No LocalBusiness JSON-LD type found"
|
|
1032
1149
|
},
|
|
1033
1150
|
{
|
|
@@ -1036,9 +1153,9 @@ const rules = [
|
|
|
1036
1153
|
category: "search-basics",
|
|
1037
1154
|
severity: "medium",
|
|
1038
1155
|
source: "JSON-LD",
|
|
1039
|
-
recommendation: "Add telephone, address, and openingHours fields to LocalBusiness schema.",
|
|
1040
|
-
check: ({
|
|
1041
|
-
evidence: () => "LocalBusiness schema is missing telephone, address, or
|
|
1156
|
+
recommendation: "Add telephone, address, and openingHours or openingHoursSpecification fields to LocalBusiness schema.",
|
|
1157
|
+
check: ({ $, snapshot }) => hasLocalBusinessContactFields($, snapshot),
|
|
1158
|
+
evidence: () => "LocalBusiness schema is missing telephone, address, or opening hours"
|
|
1042
1159
|
},
|
|
1043
1160
|
{
|
|
1044
1161
|
id: "localbusiness-schema-nap-consistency",
|
package/dist/rules.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"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"}
|