@krantho/seo 0.0.0-stage → 1.0.1
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/LICENSE +21 -0
- package/dist/archetypes/define-archetype.d.ts +23 -0
- package/dist/archetypes/define-archetype.d.ts.map +1 -0
- package/dist/archetypes/define-archetype.js +51 -0
- package/dist/archetypes/define-archetype.js.map +1 -0
- package/dist/archetypes/index.d.ts +4 -0
- package/dist/archetypes/index.d.ts.map +1 -0
- package/dist/archetypes/index.js +3 -0
- package/dist/archetypes/index.js.map +1 -0
- package/dist/archetypes/presets.d.ts +21 -0
- package/dist/archetypes/presets.d.ts.map +1 -0
- package/dist/archetypes/presets.js +42 -0
- package/dist/archetypes/presets.js.map +1 -0
- package/dist/archetypes/types.d.ts +20 -0
- package/dist/archetypes/types.d.ts.map +1 -0
- package/dist/archetypes/types.js +2 -0
- package/dist/archetypes/types.js.map +1 -0
- package/dist/catalog/auto-mappings.d.ts +39 -0
- package/dist/catalog/auto-mappings.d.ts.map +1 -0
- package/dist/catalog/auto-mappings.js +64 -0
- package/dist/catalog/auto-mappings.js.map +1 -0
- package/dist/catalog/index.d.ts +7 -0
- package/dist/catalog/index.d.ts.map +1 -0
- package/dist/catalog/index.js +4 -0
- package/dist/catalog/index.js.map +1 -0
- package/dist/catalog/properties.d.ts +9 -0
- package/dist/catalog/properties.d.ts.map +1 -0
- package/dist/catalog/properties.js +630 -0
- package/dist/catalog/properties.js.map +1 -0
- package/dist/catalog/property-atoms.d.ts +53 -0
- package/dist/catalog/property-atoms.d.ts.map +1 -0
- package/dist/catalog/property-atoms.js +170 -0
- package/dist/catalog/property-atoms.js.map +1 -0
- package/dist/catalog/types.d.ts +53 -0
- package/dist/catalog/types.d.ts.map +1 -0
- package/dist/catalog/types.js +423 -0
- package/dist/catalog/types.js.map +1 -0
- package/dist/create-seo.d.ts +70 -0
- package/dist/create-seo.d.ts.map +1 -0
- package/dist/create-seo.js +137 -0
- package/dist/create-seo.js.map +1 -0
- package/dist/decorators/breadcrumb.d.ts +12 -0
- package/dist/decorators/breadcrumb.d.ts.map +1 -0
- package/dist/decorators/breadcrumb.js +36 -0
- package/dist/decorators/breadcrumb.js.map +1 -0
- package/dist/decorators/index.d.ts +8 -0
- package/dist/decorators/index.d.ts.map +1 -0
- package/dist/decorators/index.js +13 -0
- package/dist/decorators/index.js.map +1 -0
- package/dist/decorators/nodes.d.ts +12 -0
- package/dist/decorators/nodes.d.ts.map +1 -0
- package/dist/decorators/nodes.js +29 -0
- package/dist/decorators/nodes.js.map +1 -0
- package/dist/decorators/page.d.ts +13 -0
- package/dist/decorators/page.d.ts.map +1 -0
- package/dist/decorators/page.js +68 -0
- package/dist/decorators/page.js.map +1 -0
- package/dist/decorators/registry.d.ts +11 -0
- package/dist/decorators/registry.d.ts.map +1 -0
- package/dist/decorators/registry.js +29 -0
- package/dist/decorators/registry.js.map +1 -0
- package/dist/decorators/sequence.d.ts +8 -0
- package/dist/decorators/sequence.d.ts.map +1 -0
- package/dist/decorators/sequence.js +22 -0
- package/dist/decorators/sequence.js.map +1 -0
- package/dist/decorators/types.d.ts +30 -0
- package/dist/decorators/types.d.ts.map +1 -0
- package/dist/decorators/types.js +2 -0
- package/dist/decorators/types.js.map +1 -0
- package/dist/define-seo.d.ts +21 -0
- package/dist/define-seo.d.ts.map +1 -0
- package/dist/define-seo.js +31 -0
- package/dist/define-seo.js.map +1 -0
- package/dist/graph/build-entity.d.ts +47 -0
- package/dist/graph/build-entity.d.ts.map +1 -0
- package/dist/graph/build-entity.js +69 -0
- package/dist/graph/build-entity.js.map +1 -0
- package/dist/graph/compose-from-config.d.ts +89 -0
- package/dist/graph/compose-from-config.d.ts.map +1 -0
- package/dist/graph/compose-from-config.js +189 -0
- package/dist/graph/compose-from-config.js.map +1 -0
- package/dist/graph/compose-graph.d.ts +40 -0
- package/dist/graph/compose-graph.d.ts.map +1 -0
- package/dist/graph/compose-graph.js +30 -0
- package/dist/graph/compose-graph.js.map +1 -0
- package/dist/graph/effective-config.d.ts +36 -0
- package/dist/graph/effective-config.d.ts.map +1 -0
- package/dist/graph/effective-config.js +84 -0
- package/dist/graph/effective-config.js.map +1 -0
- package/dist/graph/id-conventions.d.ts +47 -0
- package/dist/graph/id-conventions.d.ts.map +1 -0
- package/dist/graph/id-conventions.js +78 -0
- package/dist/graph/id-conventions.js.map +1 -0
- package/dist/graph/index.d.ts +9 -0
- package/dist/graph/index.d.ts.map +1 -0
- package/dist/graph/index.js +4 -0
- package/dist/graph/index.js.map +1 -0
- package/dist/graph/resolve-properties.d.ts +36 -0
- package/dist/graph/resolve-properties.d.ts.map +1 -0
- package/dist/graph/resolve-properties.js +141 -0
- package/dist/graph/resolve-properties.js.map +1 -0
- package/dist/graph/resolve-references.d.ts +14 -0
- package/dist/graph/resolve-references.d.ts.map +1 -0
- package/dist/graph/resolve-references.js +49 -0
- package/dist/graph/resolve-references.js.map +1 -0
- package/dist/graph/typed-value.d.ts +7 -0
- package/dist/graph/typed-value.d.ts.map +1 -0
- package/dist/graph/typed-value.js +43 -0
- package/dist/graph/typed-value.js.map +1 -0
- package/dist/graph/types.d.ts +34 -0
- package/dist/graph/types.d.ts.map +1 -0
- package/dist/graph/types.js +2 -0
- package/dist/graph/types.js.map +1 -0
- package/dist/graph/value-scope.d.ts +19 -0
- package/dist/graph/value-scope.d.ts.map +1 -0
- package/dist/graph/value-scope.js +30 -0
- package/dist/graph/value-scope.js.map +1 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +29 -0
- package/dist/index.js.map +1 -0
- package/dist/json-ld.d.ts +24 -0
- package/dist/json-ld.d.ts.map +1 -0
- package/dist/json-ld.js +24 -0
- package/dist/json-ld.js.map +1 -0
- package/dist/profiles/bing.d.ts +10 -0
- package/dist/profiles/bing.d.ts.map +1 -0
- package/dist/profiles/bing.js +13 -0
- package/dist/profiles/bing.js.map +1 -0
- package/dist/profiles/check.d.ts +11 -0
- package/dist/profiles/check.d.ts.map +1 -0
- package/dist/profiles/check.js +66 -0
- package/dist/profiles/check.js.map +1 -0
- package/dist/profiles/eligibility.d.ts +26 -0
- package/dist/profiles/eligibility.d.ts.map +1 -0
- package/dist/profiles/eligibility.js +49 -0
- package/dist/profiles/eligibility.js.map +1 -0
- package/dist/profiles/google.d.ts +4 -0
- package/dist/profiles/google.d.ts.map +1 -0
- package/dist/profiles/google.js +387 -0
- package/dist/profiles/google.js.map +1 -0
- package/dist/profiles/index.d.ts +10 -0
- package/dist/profiles/index.d.ts.map +1 -0
- package/dist/profiles/index.js +13 -0
- package/dist/profiles/index.js.map +1 -0
- package/dist/profiles/registry.d.ts +16 -0
- package/dist/profiles/registry.d.ts.map +1 -0
- package/dist/profiles/registry.js +66 -0
- package/dist/profiles/registry.js.map +1 -0
- package/dist/profiles/types.d.ts +29 -0
- package/dist/profiles/types.d.ts.map +1 -0
- package/dist/profiles/types.js +2 -0
- package/dist/profiles/types.js.map +1 -0
- package/dist/seo-graph.d.ts +39 -0
- package/dist/seo-graph.d.ts.map +1 -0
- package/dist/seo-graph.js +34 -0
- package/dist/seo-graph.js.map +1 -0
- package/dist/types/built-in/content.d.ts +12 -0
- package/dist/types/built-in/content.d.ts.map +1 -0
- package/dist/types/built-in/content.js +79 -0
- package/dist/types/built-in/content.js.map +1 -0
- package/dist/types/built-in/events.d.ts +23 -0
- package/dist/types/built-in/events.d.ts.map +1 -0
- package/dist/types/built-in/events.js +93 -0
- package/dist/types/built-in/events.js.map +1 -0
- package/dist/types/built-in/index.d.ts +4 -0
- package/dist/types/built-in/index.d.ts.map +1 -0
- package/dist/types/built-in/index.js +26 -0
- package/dist/types/built-in/index.js.map +1 -0
- package/dist/types/built-in/media.d.ts +21 -0
- package/dist/types/built-in/media.d.ts.map +1 -0
- package/dist/types/built-in/media.js +104 -0
- package/dist/types/built-in/media.js.map +1 -0
- package/dist/types/built-in/site.d.ts +14 -0
- package/dist/types/built-in/site.d.ts.map +1 -0
- package/dist/types/built-in/site.js +35 -0
- package/dist/types/built-in/site.js.map +1 -0
- package/dist/types/context.d.ts +26 -0
- package/dist/types/context.d.ts.map +1 -0
- package/dist/types/context.js +44 -0
- package/dist/types/context.js.map +1 -0
- package/dist/types/definition.d.ts +58 -0
- package/dist/types/definition.d.ts.map +1 -0
- package/dist/types/definition.js +2 -0
- package/dist/types/definition.js.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/registry.d.ts +14 -0
- package/dist/types/registry.d.ts.map +1 -0
- package/dist/types/registry.js +37 -0
- package/dist/types/registry.js.map +1 -0
- package/dist/types/values.d.ts +23 -0
- package/dist/types/values.d.ts.map +1 -0
- package/dist/types/values.js +52 -0
- package/dist/types/values.js.map +1 -0
- package/dist/validate/check-terms.d.ts +15 -0
- package/dist/validate/check-terms.d.ts.map +1 -0
- package/dist/validate/check-terms.js +42 -0
- package/dist/validate/check-terms.js.map +1 -0
- package/dist/validate/check-value.d.ts +19 -0
- package/dist/validate/check-value.d.ts.map +1 -0
- package/dist/validate/check-value.js +77 -0
- package/dist/validate/check-value.js.map +1 -0
- package/dist/validate/graph-nodes.d.ts +22 -0
- package/dist/validate/graph-nodes.d.ts.map +1 -0
- package/dist/validate/graph-nodes.js +50 -0
- package/dist/validate/graph-nodes.js.map +1 -0
- package/dist/validate/index.d.ts +4 -0
- package/dist/validate/index.d.ts.map +1 -0
- package/dist/validate/index.js +2 -0
- package/dist/validate/index.js.map +1 -0
- package/dist/validate/types.d.ts +22 -0
- package/dist/validate/types.d.ts.map +1 -0
- package/dist/validate/types.js +2 -0
- package/dist/validate/types.js.map +1 -0
- package/dist/validate/validate-graph.d.ts +18 -0
- package/dist/validate/validate-graph.d.ts.map +1 -0
- package/dist/validate/validate-graph.js +109 -0
- package/dist/validate/validate-graph.js.map +1 -0
- package/dist/vocabulary/datatypes.d.ts +7 -0
- package/dist/vocabulary/datatypes.d.ts.map +1 -0
- package/dist/vocabulary/datatypes.js +46 -0
- package/dist/vocabulary/datatypes.js.map +1 -0
- package/dist/vocabulary/index.d.ts +5 -0
- package/dist/vocabulary/index.d.ts.map +1 -0
- package/dist/vocabulary/index.js +4 -0
- package/dist/vocabulary/index.js.map +1 -0
- package/dist/vocabulary/schemaorg.generated.d.ts +4 -0
- package/dist/vocabulary/schemaorg.generated.d.ts.map +1 -0
- package/dist/vocabulary/schemaorg.generated.js +3038 -0
- package/dist/vocabulary/schemaorg.generated.js.map +1 -0
- package/dist/vocabulary/types.d.ts +38 -0
- package/dist/vocabulary/types.d.ts.map +1 -0
- package/dist/vocabulary/types.js +2 -0
- package/dist/vocabulary/types.js.map +1 -0
- package/dist/vocabulary/vocabulary.d.ts +28 -0
- package/dist/vocabulary/vocabulary.d.ts.map +1 -0
- package/dist/vocabulary/vocabulary.js +89 -0
- package/dist/vocabulary/vocabulary.js.map +1 -0
- package/package.json +41 -3
- package/README.md +0 -3
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/** How a property value is obtained */
|
|
2
|
+
export type PropertySource = 'auto' | 'manual' | 'computed' | 'site';
|
|
3
|
+
/** How much Google's rule for the type needs the property */
|
|
4
|
+
export type PropertyImportance = 'required' | 'recommended' | 'optional';
|
|
5
|
+
/** A Schema.org property of a catalog type, as written: how it is edited and where its value comes from */
|
|
6
|
+
export interface PropertySpec {
|
|
7
|
+
/** Schema.org property name (e.g., 'name', 'description', 'telephone') */
|
|
8
|
+
property: string;
|
|
9
|
+
/** Human-readable label */
|
|
10
|
+
label: string;
|
|
11
|
+
/** Field type for the Studio form */
|
|
12
|
+
fieldType: 'text' | 'textarea' | 'url' | 'email' | 'tel' | 'date' | 'number' | 'select' | 'array';
|
|
13
|
+
/** How the value is typically obtained */
|
|
14
|
+
source: PropertySource;
|
|
15
|
+
/** CMS field name this auto-maps from (if source is 'auto') */
|
|
16
|
+
autoMapField?: string | undefined;
|
|
17
|
+
/** Description shown in the Studio form */
|
|
18
|
+
hint?: string | undefined;
|
|
19
|
+
}
|
|
20
|
+
/** A catalog property with its importance, taken from Google's rule for the type */
|
|
21
|
+
export interface PropertyDef extends PropertySpec {
|
|
22
|
+
importance: PropertyImportance;
|
|
23
|
+
}
|
|
24
|
+
export declare const SITE_NAME: PropertySpec;
|
|
25
|
+
export declare const SITE_DESCRIPTION: PropertySpec;
|
|
26
|
+
export declare const SITE_URL: PropertySpec;
|
|
27
|
+
export declare const SITE_PHONE: PropertySpec;
|
|
28
|
+
export declare const SITE_EMAIL: PropertySpec;
|
|
29
|
+
export declare const SITE_ADDRESS: PropertySpec;
|
|
30
|
+
export declare const OPENING_HOURS: PropertySpec;
|
|
31
|
+
export declare const AREA_SERVED: PropertySpec;
|
|
32
|
+
export declare const IMAGE_MANUAL: PropertySpec;
|
|
33
|
+
export declare const IMAGE_AUTO: PropertySpec;
|
|
34
|
+
export declare const PRICE_RANGE: PropertySpec;
|
|
35
|
+
/** Core properties for business/organization site-level types */
|
|
36
|
+
export declare const BUSINESS_CORE: readonly PropertySpec[];
|
|
37
|
+
/** Document name auto-mapped from title field */
|
|
38
|
+
export declare const DOC_NAME_FROM_TITLE: PropertySpec;
|
|
39
|
+
/** Document description auto-mapped from description field */
|
|
40
|
+
export declare const DOC_DESC_FROM_DESC: PropertySpec;
|
|
41
|
+
/** Article headline auto-mapped from title */
|
|
42
|
+
export declare const ARTICLE_HEADLINE: PropertySpec;
|
|
43
|
+
/** Article description auto-mapped from meta-description */
|
|
44
|
+
export declare const ARTICLE_DESCRIPTION: PropertySpec;
|
|
45
|
+
/** Date published auto-mapped from date field */
|
|
46
|
+
export declare const DATE_PUBLISHED: PropertySpec;
|
|
47
|
+
/** Author auto-mapped from author field */
|
|
48
|
+
export declare const AUTHOR_AUTO: PropertySpec;
|
|
49
|
+
/** Provider from site config */
|
|
50
|
+
export declare const PROVIDER_SITE: PropertySpec;
|
|
51
|
+
/** Shared rating properties for AggregateRating and EmployerAggregateRating */
|
|
52
|
+
export declare const RATING_PROPERTIES: readonly PropertySpec[];
|
|
53
|
+
//# sourceMappingURL=property-atoms.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"property-atoms.d.ts","sourceRoot":"","sources":["../../src/catalog/property-atoms.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAA;AAEpE,6DAA6D;AAC7D,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,CAAA;AAExE,2GAA2G;AAC3G,MAAM,WAAW,YAAY;IAC3B,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAA;IAChB,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,qCAAqC;IACrC,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAA;IACjG,0CAA0C;IAC1C,MAAM,EAAE,cAAc,CAAA;IACtB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC1B;AAED,oFAAoF;AACpF,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C,UAAU,EAAE,kBAAkB,CAAA;CAC/B;AAMD,eAAO,MAAM,SAAS,EAAE,YAKvB,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,YAK9B,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,YAKtB,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,YAKxB,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,YAKxB,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,YAM1B,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,YAM3B,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,YAKzB,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,YAK1B,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,YAMxB,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,YAMzB,CAAA;AAMD,iEAAiE;AACjE,eAAO,MAAM,aAAa,EAAE,SAAS,YAAY,EAOhD,CAAA;AAED,iDAAiD;AACjD,eAAO,MAAM,mBAAmB,EAAE,YAMjC,CAAA;AAED,8DAA8D;AAC9D,eAAO,MAAM,kBAAkB,EAAE,YAMhC,CAAA;AAED,8CAA8C;AAC9C,eAAO,MAAM,gBAAgB,EAAE,YAM9B,CAAA;AAED,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB,EAAE,YAMjC,CAAA;AAED,iDAAiD;AACjD,eAAO,MAAM,cAAc,EAAE,YAM5B,CAAA;AAED,2CAA2C;AAC3C,eAAO,MAAM,WAAW,EAAE,YAMzB,CAAA;AAED,gCAAgC;AAChC,eAAO,MAAM,aAAa,EAAE,YAK3B,CAAA;AAED,+EAA+E;AAC/E,eAAO,MAAM,iBAAiB,EAAE,SAAS,YAAY,EA2BpD,CAAA"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Shared property atoms — single properties reused across multiple types
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
export const SITE_NAME = {
|
|
5
|
+
property: 'name',
|
|
6
|
+
label: 'Name',
|
|
7
|
+
fieldType: 'text',
|
|
8
|
+
source: 'site',
|
|
9
|
+
};
|
|
10
|
+
export const SITE_DESCRIPTION = {
|
|
11
|
+
property: 'description',
|
|
12
|
+
label: 'Description',
|
|
13
|
+
fieldType: 'textarea',
|
|
14
|
+
source: 'site',
|
|
15
|
+
};
|
|
16
|
+
export const SITE_URL = {
|
|
17
|
+
property: 'url',
|
|
18
|
+
label: 'Website URL',
|
|
19
|
+
fieldType: 'url',
|
|
20
|
+
source: 'site',
|
|
21
|
+
};
|
|
22
|
+
export const SITE_PHONE = {
|
|
23
|
+
property: 'telephone',
|
|
24
|
+
label: 'Phone',
|
|
25
|
+
fieldType: 'tel',
|
|
26
|
+
source: 'site',
|
|
27
|
+
};
|
|
28
|
+
export const SITE_EMAIL = {
|
|
29
|
+
property: 'email',
|
|
30
|
+
label: 'Email',
|
|
31
|
+
fieldType: 'email',
|
|
32
|
+
source: 'site',
|
|
33
|
+
};
|
|
34
|
+
export const SITE_ADDRESS = {
|
|
35
|
+
property: 'address',
|
|
36
|
+
label: 'Address',
|
|
37
|
+
fieldType: 'text',
|
|
38
|
+
source: 'site',
|
|
39
|
+
hint: 'Street, City, State, ZIP',
|
|
40
|
+
};
|
|
41
|
+
export const OPENING_HOURS = {
|
|
42
|
+
property: 'openingHours',
|
|
43
|
+
label: 'Opening Hours',
|
|
44
|
+
fieldType: 'text',
|
|
45
|
+
source: 'site',
|
|
46
|
+
hint: 'e.g., Mo-Fr 09:00-17:00',
|
|
47
|
+
};
|
|
48
|
+
export const AREA_SERVED = {
|
|
49
|
+
property: 'areaServed',
|
|
50
|
+
label: 'Area Served',
|
|
51
|
+
fieldType: 'text',
|
|
52
|
+
source: 'site',
|
|
53
|
+
};
|
|
54
|
+
export const IMAGE_MANUAL = {
|
|
55
|
+
property: 'image',
|
|
56
|
+
label: 'Image',
|
|
57
|
+
fieldType: 'url',
|
|
58
|
+
source: 'manual',
|
|
59
|
+
};
|
|
60
|
+
export const IMAGE_AUTO = {
|
|
61
|
+
property: 'image',
|
|
62
|
+
label: 'Image',
|
|
63
|
+
fieldType: 'url',
|
|
64
|
+
source: 'auto',
|
|
65
|
+
autoMapField: 'image',
|
|
66
|
+
};
|
|
67
|
+
export const PRICE_RANGE = {
|
|
68
|
+
property: 'priceRange',
|
|
69
|
+
label: 'Price Range',
|
|
70
|
+
fieldType: 'text',
|
|
71
|
+
source: 'manual',
|
|
72
|
+
hint: 'e.g., $$ or $50-$200',
|
|
73
|
+
};
|
|
74
|
+
// ---------------------------------------------------------------------------
|
|
75
|
+
// Shared property groups — common combinations used by multiple types
|
|
76
|
+
// ---------------------------------------------------------------------------
|
|
77
|
+
/** Core properties for business/organization site-level types */
|
|
78
|
+
export const BUSINESS_CORE = [
|
|
79
|
+
SITE_NAME,
|
|
80
|
+
SITE_DESCRIPTION,
|
|
81
|
+
SITE_URL,
|
|
82
|
+
SITE_PHONE,
|
|
83
|
+
SITE_EMAIL,
|
|
84
|
+
SITE_ADDRESS,
|
|
85
|
+
];
|
|
86
|
+
/** Document name auto-mapped from title field */
|
|
87
|
+
export const DOC_NAME_FROM_TITLE = {
|
|
88
|
+
property: 'name',
|
|
89
|
+
label: 'Name',
|
|
90
|
+
fieldType: 'text',
|
|
91
|
+
source: 'auto',
|
|
92
|
+
autoMapField: 'title',
|
|
93
|
+
};
|
|
94
|
+
/** Document description auto-mapped from description field */
|
|
95
|
+
export const DOC_DESC_FROM_DESC = {
|
|
96
|
+
property: 'description',
|
|
97
|
+
label: 'Description',
|
|
98
|
+
fieldType: 'textarea',
|
|
99
|
+
source: 'auto',
|
|
100
|
+
autoMapField: 'description',
|
|
101
|
+
};
|
|
102
|
+
/** Article headline auto-mapped from title */
|
|
103
|
+
export const ARTICLE_HEADLINE = {
|
|
104
|
+
property: 'headline',
|
|
105
|
+
label: 'Headline',
|
|
106
|
+
fieldType: 'text',
|
|
107
|
+
source: 'auto',
|
|
108
|
+
autoMapField: 'title',
|
|
109
|
+
};
|
|
110
|
+
/** Article description auto-mapped from meta-description */
|
|
111
|
+
export const ARTICLE_DESCRIPTION = {
|
|
112
|
+
property: 'description',
|
|
113
|
+
label: 'Description',
|
|
114
|
+
fieldType: 'textarea',
|
|
115
|
+
source: 'auto',
|
|
116
|
+
autoMapField: 'meta-description',
|
|
117
|
+
};
|
|
118
|
+
/** Date published auto-mapped from date field */
|
|
119
|
+
export const DATE_PUBLISHED = {
|
|
120
|
+
property: 'datePublished',
|
|
121
|
+
label: 'Date Published',
|
|
122
|
+
fieldType: 'date',
|
|
123
|
+
source: 'auto',
|
|
124
|
+
autoMapField: 'date',
|
|
125
|
+
};
|
|
126
|
+
/** Author auto-mapped from author field */
|
|
127
|
+
export const AUTHOR_AUTO = {
|
|
128
|
+
property: 'author',
|
|
129
|
+
label: 'Author',
|
|
130
|
+
fieldType: 'text',
|
|
131
|
+
source: 'auto',
|
|
132
|
+
autoMapField: 'author',
|
|
133
|
+
};
|
|
134
|
+
/** Provider from site config */
|
|
135
|
+
export const PROVIDER_SITE = {
|
|
136
|
+
property: 'provider',
|
|
137
|
+
label: 'Provider',
|
|
138
|
+
fieldType: 'text',
|
|
139
|
+
source: 'site',
|
|
140
|
+
};
|
|
141
|
+
/** Shared rating properties for AggregateRating and EmployerAggregateRating */
|
|
142
|
+
export const RATING_PROPERTIES = [
|
|
143
|
+
{
|
|
144
|
+
property: 'ratingValue',
|
|
145
|
+
label: 'Average Rating',
|
|
146
|
+
fieldType: 'number',
|
|
147
|
+
source: 'manual',
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
property: 'reviewCount',
|
|
151
|
+
label: 'Review Count',
|
|
152
|
+
fieldType: 'number',
|
|
153
|
+
source: 'manual',
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
property: 'bestRating',
|
|
157
|
+
label: 'Best Rating',
|
|
158
|
+
fieldType: 'number',
|
|
159
|
+
source: 'manual',
|
|
160
|
+
hint: 'Default: 5',
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
property: 'worstRating',
|
|
164
|
+
label: 'Worst Rating',
|
|
165
|
+
fieldType: 'number',
|
|
166
|
+
source: 'manual',
|
|
167
|
+
hint: 'Default: 1',
|
|
168
|
+
},
|
|
169
|
+
];
|
|
170
|
+
//# sourceMappingURL=property-atoms.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"property-atoms.js","sourceRoot":"","sources":["../../src/catalog/property-atoms.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { FeatureStatus } from '../profiles/types.js';
|
|
2
|
+
import type { Lifecycle } from '../vocabulary/index.js';
|
|
3
|
+
/** A curated Schema.org type, as written: what it is for and where it applies */
|
|
4
|
+
interface CatalogEntry {
|
|
5
|
+
/** Schema.org @type value */
|
|
6
|
+
type: string;
|
|
7
|
+
/** Human-readable label */
|
|
8
|
+
label: string;
|
|
9
|
+
/** Short description of when to use this type */
|
|
10
|
+
description: string;
|
|
11
|
+
/** Category for grouping in the type browser */
|
|
12
|
+
category: CatalogCategory;
|
|
13
|
+
/** Whether this type applies at site level (global entity) */
|
|
14
|
+
siteLevel: boolean;
|
|
15
|
+
/** Whether this type applies at document level */
|
|
16
|
+
documentLevel: boolean;
|
|
17
|
+
}
|
|
18
|
+
/** A curated Schema.org type with the Google feature it enables, taken from the Google profile */
|
|
19
|
+
export interface CatalogType extends CatalogEntry {
|
|
20
|
+
/** The Google search feature the type makes a page eligible for, if any */
|
|
21
|
+
richResult: string | null;
|
|
22
|
+
/** Whether Google shows that feature */
|
|
23
|
+
richResultStatus: FeatureStatus;
|
|
24
|
+
/** Google's documentation for the type; empty when Google documents none */
|
|
25
|
+
docsUrl: string;
|
|
26
|
+
/** Where the type stands in Schema.org; absent for a current, non-pending type */
|
|
27
|
+
lifecycle?: Lifecycle | undefined;
|
|
28
|
+
}
|
|
29
|
+
export type CatalogCategory = 'business' | 'content' | 'commerce' | 'people' | 'navigation' | 'reviews';
|
|
30
|
+
export declare const CATEGORY_LABELS: {
|
|
31
|
+
business: string;
|
|
32
|
+
content: string;
|
|
33
|
+
commerce: string;
|
|
34
|
+
people: string;
|
|
35
|
+
navigation: string;
|
|
36
|
+
reviews: string;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* The catalog. Each type's Google feature, status and documentation come from
|
|
40
|
+
* the Google profile, so the catalog cannot disagree with the rules findings
|
|
41
|
+
* are checked against.
|
|
42
|
+
*/
|
|
43
|
+
export declare const SCHEMA_CATALOG: readonly CatalogType[];
|
|
44
|
+
/** Look up a catalog type by its Schema.org @type value */
|
|
45
|
+
export declare function getCatalogType(type: string): CatalogType | undefined;
|
|
46
|
+
/** Get catalog types filtered by category */
|
|
47
|
+
export declare function getCatalogByCategory(category: CatalogCategory): readonly CatalogType[];
|
|
48
|
+
/** Get catalog types that can be used at site level */
|
|
49
|
+
export declare function getSiteLevelTypes(): readonly CatalogType[];
|
|
50
|
+
/** Get catalog types that can be used at document level */
|
|
51
|
+
export declare function getDocumentLevelTypes(): readonly CatalogType[];
|
|
52
|
+
export {};
|
|
53
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/catalog/types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAGvD,iFAAiF;AACjF,UAAU,YAAY;IACpB,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAA;IACnB,gDAAgD;IAChD,QAAQ,EAAE,eAAe,CAAA;IACzB,8DAA8D;IAC9D,SAAS,EAAE,OAAO,CAAA;IAClB,kDAAkD;IAClD,aAAa,EAAE,OAAO,CAAA;CACvB;AAED,kGAAkG;AAClG,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C,2EAA2E;IAC3E,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,wCAAwC;IACxC,gBAAgB,EAAE,aAAa,CAAA;IAC/B,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAA;IACf,kFAAkF;IAClF,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;CAClC;AAED,MAAM,MAAM,eAAe,GACvB,UAAU,GACV,SAAS,GACT,UAAU,GACV,QAAQ,GACR,YAAY,GACZ,SAAS,CAAA;AAEb,eAAO,MAAM,eAAe;;;;;;;CAOe,CAAA;AAyY3C;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,WAAW,EAAqC,CAAA;AAetF,2DAA2D;AAC3D,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAEpE;AAED,6CAA6C;AAC7C,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,eAAe,GAAG,SAAS,WAAW,EAAE,CAEtF;AAED,uDAAuD;AACvD,wBAAgB,iBAAiB,IAAI,SAAS,WAAW,EAAE,CAE1D;AAED,2DAA2D;AAC3D,wBAAgB,qBAAqB,IAAI,SAAS,WAAW,EAAE,CAE9D"}
|