@krantho/seo 0.0.0-stage → 1.0.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.
Files changed (243) hide show
  1. package/LICENSE +21 -0
  2. package/dist/archetypes/define-archetype.d.ts +23 -0
  3. package/dist/archetypes/define-archetype.d.ts.map +1 -0
  4. package/dist/archetypes/define-archetype.js +51 -0
  5. package/dist/archetypes/define-archetype.js.map +1 -0
  6. package/dist/archetypes/index.d.ts +4 -0
  7. package/dist/archetypes/index.d.ts.map +1 -0
  8. package/dist/archetypes/index.js +3 -0
  9. package/dist/archetypes/index.js.map +1 -0
  10. package/dist/archetypes/presets.d.ts +21 -0
  11. package/dist/archetypes/presets.d.ts.map +1 -0
  12. package/dist/archetypes/presets.js +42 -0
  13. package/dist/archetypes/presets.js.map +1 -0
  14. package/dist/archetypes/types.d.ts +20 -0
  15. package/dist/archetypes/types.d.ts.map +1 -0
  16. package/dist/archetypes/types.js +2 -0
  17. package/dist/archetypes/types.js.map +1 -0
  18. package/dist/catalog/auto-mappings.d.ts +39 -0
  19. package/dist/catalog/auto-mappings.d.ts.map +1 -0
  20. package/dist/catalog/auto-mappings.js +64 -0
  21. package/dist/catalog/auto-mappings.js.map +1 -0
  22. package/dist/catalog/index.d.ts +7 -0
  23. package/dist/catalog/index.d.ts.map +1 -0
  24. package/dist/catalog/index.js +4 -0
  25. package/dist/catalog/index.js.map +1 -0
  26. package/dist/catalog/properties.d.ts +9 -0
  27. package/dist/catalog/properties.d.ts.map +1 -0
  28. package/dist/catalog/properties.js +630 -0
  29. package/dist/catalog/properties.js.map +1 -0
  30. package/dist/catalog/property-atoms.d.ts +53 -0
  31. package/dist/catalog/property-atoms.d.ts.map +1 -0
  32. package/dist/catalog/property-atoms.js +170 -0
  33. package/dist/catalog/property-atoms.js.map +1 -0
  34. package/dist/catalog/types.d.ts +53 -0
  35. package/dist/catalog/types.d.ts.map +1 -0
  36. package/dist/catalog/types.js +423 -0
  37. package/dist/catalog/types.js.map +1 -0
  38. package/dist/create-seo.d.ts +70 -0
  39. package/dist/create-seo.d.ts.map +1 -0
  40. package/dist/create-seo.js +137 -0
  41. package/dist/create-seo.js.map +1 -0
  42. package/dist/decorators/breadcrumb.d.ts +12 -0
  43. package/dist/decorators/breadcrumb.d.ts.map +1 -0
  44. package/dist/decorators/breadcrumb.js +36 -0
  45. package/dist/decorators/breadcrumb.js.map +1 -0
  46. package/dist/decorators/index.d.ts +8 -0
  47. package/dist/decorators/index.d.ts.map +1 -0
  48. package/dist/decorators/index.js +13 -0
  49. package/dist/decorators/index.js.map +1 -0
  50. package/dist/decorators/nodes.d.ts +12 -0
  51. package/dist/decorators/nodes.d.ts.map +1 -0
  52. package/dist/decorators/nodes.js +29 -0
  53. package/dist/decorators/nodes.js.map +1 -0
  54. package/dist/decorators/page.d.ts +13 -0
  55. package/dist/decorators/page.d.ts.map +1 -0
  56. package/dist/decorators/page.js +68 -0
  57. package/dist/decorators/page.js.map +1 -0
  58. package/dist/decorators/registry.d.ts +11 -0
  59. package/dist/decorators/registry.d.ts.map +1 -0
  60. package/dist/decorators/registry.js +29 -0
  61. package/dist/decorators/registry.js.map +1 -0
  62. package/dist/decorators/sequence.d.ts +8 -0
  63. package/dist/decorators/sequence.d.ts.map +1 -0
  64. package/dist/decorators/sequence.js +22 -0
  65. package/dist/decorators/sequence.js.map +1 -0
  66. package/dist/decorators/types.d.ts +30 -0
  67. package/dist/decorators/types.d.ts.map +1 -0
  68. package/dist/decorators/types.js +2 -0
  69. package/dist/decorators/types.js.map +1 -0
  70. package/dist/define-seo.d.ts +21 -0
  71. package/dist/define-seo.d.ts.map +1 -0
  72. package/dist/define-seo.js +31 -0
  73. package/dist/define-seo.js.map +1 -0
  74. package/dist/graph/build-entity.d.ts +47 -0
  75. package/dist/graph/build-entity.d.ts.map +1 -0
  76. package/dist/graph/build-entity.js +69 -0
  77. package/dist/graph/build-entity.js.map +1 -0
  78. package/dist/graph/compose-from-config.d.ts +89 -0
  79. package/dist/graph/compose-from-config.d.ts.map +1 -0
  80. package/dist/graph/compose-from-config.js +189 -0
  81. package/dist/graph/compose-from-config.js.map +1 -0
  82. package/dist/graph/compose-graph.d.ts +40 -0
  83. package/dist/graph/compose-graph.d.ts.map +1 -0
  84. package/dist/graph/compose-graph.js +30 -0
  85. package/dist/graph/compose-graph.js.map +1 -0
  86. package/dist/graph/effective-config.d.ts +36 -0
  87. package/dist/graph/effective-config.d.ts.map +1 -0
  88. package/dist/graph/effective-config.js +84 -0
  89. package/dist/graph/effective-config.js.map +1 -0
  90. package/dist/graph/id-conventions.d.ts +47 -0
  91. package/dist/graph/id-conventions.d.ts.map +1 -0
  92. package/dist/graph/id-conventions.js +78 -0
  93. package/dist/graph/id-conventions.js.map +1 -0
  94. package/dist/graph/index.d.ts +9 -0
  95. package/dist/graph/index.d.ts.map +1 -0
  96. package/dist/graph/index.js +4 -0
  97. package/dist/graph/index.js.map +1 -0
  98. package/dist/graph/resolve-properties.d.ts +36 -0
  99. package/dist/graph/resolve-properties.d.ts.map +1 -0
  100. package/dist/graph/resolve-properties.js +141 -0
  101. package/dist/graph/resolve-properties.js.map +1 -0
  102. package/dist/graph/resolve-references.d.ts +14 -0
  103. package/dist/graph/resolve-references.d.ts.map +1 -0
  104. package/dist/graph/resolve-references.js +49 -0
  105. package/dist/graph/resolve-references.js.map +1 -0
  106. package/dist/graph/typed-value.d.ts +7 -0
  107. package/dist/graph/typed-value.d.ts.map +1 -0
  108. package/dist/graph/typed-value.js +43 -0
  109. package/dist/graph/typed-value.js.map +1 -0
  110. package/dist/graph/types.d.ts +34 -0
  111. package/dist/graph/types.d.ts.map +1 -0
  112. package/dist/graph/types.js +2 -0
  113. package/dist/graph/types.js.map +1 -0
  114. package/dist/graph/value-scope.d.ts +19 -0
  115. package/dist/graph/value-scope.d.ts.map +1 -0
  116. package/dist/graph/value-scope.js +30 -0
  117. package/dist/graph/value-scope.js.map +1 -0
  118. package/dist/index.d.ts +28 -0
  119. package/dist/index.d.ts.map +1 -0
  120. package/dist/index.js +29 -0
  121. package/dist/index.js.map +1 -0
  122. package/dist/json-ld.d.ts +24 -0
  123. package/dist/json-ld.d.ts.map +1 -0
  124. package/dist/json-ld.js +24 -0
  125. package/dist/json-ld.js.map +1 -0
  126. package/dist/profiles/bing.d.ts +10 -0
  127. package/dist/profiles/bing.d.ts.map +1 -0
  128. package/dist/profiles/bing.js +13 -0
  129. package/dist/profiles/bing.js.map +1 -0
  130. package/dist/profiles/check.d.ts +11 -0
  131. package/dist/profiles/check.d.ts.map +1 -0
  132. package/dist/profiles/check.js +66 -0
  133. package/dist/profiles/check.js.map +1 -0
  134. package/dist/profiles/eligibility.d.ts +26 -0
  135. package/dist/profiles/eligibility.d.ts.map +1 -0
  136. package/dist/profiles/eligibility.js +49 -0
  137. package/dist/profiles/eligibility.js.map +1 -0
  138. package/dist/profiles/google.d.ts +4 -0
  139. package/dist/profiles/google.d.ts.map +1 -0
  140. package/dist/profiles/google.js +387 -0
  141. package/dist/profiles/google.js.map +1 -0
  142. package/dist/profiles/index.d.ts +10 -0
  143. package/dist/profiles/index.d.ts.map +1 -0
  144. package/dist/profiles/index.js +13 -0
  145. package/dist/profiles/index.js.map +1 -0
  146. package/dist/profiles/registry.d.ts +16 -0
  147. package/dist/profiles/registry.d.ts.map +1 -0
  148. package/dist/profiles/registry.js +66 -0
  149. package/dist/profiles/registry.js.map +1 -0
  150. package/dist/profiles/types.d.ts +29 -0
  151. package/dist/profiles/types.d.ts.map +1 -0
  152. package/dist/profiles/types.js +2 -0
  153. package/dist/profiles/types.js.map +1 -0
  154. package/dist/seo-graph.d.ts +39 -0
  155. package/dist/seo-graph.d.ts.map +1 -0
  156. package/dist/seo-graph.js +34 -0
  157. package/dist/seo-graph.js.map +1 -0
  158. package/dist/types/built-in/content.d.ts +12 -0
  159. package/dist/types/built-in/content.d.ts.map +1 -0
  160. package/dist/types/built-in/content.js +79 -0
  161. package/dist/types/built-in/content.js.map +1 -0
  162. package/dist/types/built-in/events.d.ts +23 -0
  163. package/dist/types/built-in/events.d.ts.map +1 -0
  164. package/dist/types/built-in/events.js +93 -0
  165. package/dist/types/built-in/events.js.map +1 -0
  166. package/dist/types/built-in/index.d.ts +4 -0
  167. package/dist/types/built-in/index.d.ts.map +1 -0
  168. package/dist/types/built-in/index.js +26 -0
  169. package/dist/types/built-in/index.js.map +1 -0
  170. package/dist/types/built-in/media.d.ts +21 -0
  171. package/dist/types/built-in/media.d.ts.map +1 -0
  172. package/dist/types/built-in/media.js +104 -0
  173. package/dist/types/built-in/media.js.map +1 -0
  174. package/dist/types/built-in/site.d.ts +14 -0
  175. package/dist/types/built-in/site.d.ts.map +1 -0
  176. package/dist/types/built-in/site.js +35 -0
  177. package/dist/types/built-in/site.js.map +1 -0
  178. package/dist/types/context.d.ts +26 -0
  179. package/dist/types/context.d.ts.map +1 -0
  180. package/dist/types/context.js +44 -0
  181. package/dist/types/context.js.map +1 -0
  182. package/dist/types/definition.d.ts +58 -0
  183. package/dist/types/definition.d.ts.map +1 -0
  184. package/dist/types/definition.js +2 -0
  185. package/dist/types/definition.js.map +1 -0
  186. package/dist/types/index.d.ts +4 -0
  187. package/dist/types/index.d.ts.map +1 -0
  188. package/dist/types/index.js +3 -0
  189. package/dist/types/index.js.map +1 -0
  190. package/dist/types/registry.d.ts +14 -0
  191. package/dist/types/registry.d.ts.map +1 -0
  192. package/dist/types/registry.js +37 -0
  193. package/dist/types/registry.js.map +1 -0
  194. package/dist/types/values.d.ts +23 -0
  195. package/dist/types/values.d.ts.map +1 -0
  196. package/dist/types/values.js +52 -0
  197. package/dist/types/values.js.map +1 -0
  198. package/dist/validate/check-terms.d.ts +15 -0
  199. package/dist/validate/check-terms.d.ts.map +1 -0
  200. package/dist/validate/check-terms.js +42 -0
  201. package/dist/validate/check-terms.js.map +1 -0
  202. package/dist/validate/check-value.d.ts +19 -0
  203. package/dist/validate/check-value.d.ts.map +1 -0
  204. package/dist/validate/check-value.js +77 -0
  205. package/dist/validate/check-value.js.map +1 -0
  206. package/dist/validate/graph-nodes.d.ts +22 -0
  207. package/dist/validate/graph-nodes.d.ts.map +1 -0
  208. package/dist/validate/graph-nodes.js +50 -0
  209. package/dist/validate/graph-nodes.js.map +1 -0
  210. package/dist/validate/index.d.ts +4 -0
  211. package/dist/validate/index.d.ts.map +1 -0
  212. package/dist/validate/index.js +2 -0
  213. package/dist/validate/index.js.map +1 -0
  214. package/dist/validate/types.d.ts +22 -0
  215. package/dist/validate/types.d.ts.map +1 -0
  216. package/dist/validate/types.js +2 -0
  217. package/dist/validate/types.js.map +1 -0
  218. package/dist/validate/validate-graph.d.ts +18 -0
  219. package/dist/validate/validate-graph.d.ts.map +1 -0
  220. package/dist/validate/validate-graph.js +109 -0
  221. package/dist/validate/validate-graph.js.map +1 -0
  222. package/dist/vocabulary/datatypes.d.ts +7 -0
  223. package/dist/vocabulary/datatypes.d.ts.map +1 -0
  224. package/dist/vocabulary/datatypes.js +46 -0
  225. package/dist/vocabulary/datatypes.js.map +1 -0
  226. package/dist/vocabulary/index.d.ts +5 -0
  227. package/dist/vocabulary/index.d.ts.map +1 -0
  228. package/dist/vocabulary/index.js +4 -0
  229. package/dist/vocabulary/index.js.map +1 -0
  230. package/dist/vocabulary/schemaorg.generated.d.ts +4 -0
  231. package/dist/vocabulary/schemaorg.generated.d.ts.map +1 -0
  232. package/dist/vocabulary/schemaorg.generated.js +3038 -0
  233. package/dist/vocabulary/schemaorg.generated.js.map +1 -0
  234. package/dist/vocabulary/types.d.ts +38 -0
  235. package/dist/vocabulary/types.d.ts.map +1 -0
  236. package/dist/vocabulary/types.js +2 -0
  237. package/dist/vocabulary/types.js.map +1 -0
  238. package/dist/vocabulary/vocabulary.d.ts +28 -0
  239. package/dist/vocabulary/vocabulary.d.ts.map +1 -0
  240. package/dist/vocabulary/vocabulary.js +89 -0
  241. package/dist/vocabulary/vocabulary.js.map +1 -0
  242. package/package.json +40 -3
  243. package/README.md +0 -3
@@ -0,0 +1,630 @@
1
+ import { googleProfile } from '../profiles/google.js';
2
+ import { ruleFor } from '../profiles/registry.js';
3
+ import { AREA_SERVED, ARTICLE_DESCRIPTION, ARTICLE_HEADLINE, AUTHOR_AUTO, BUSINESS_CORE, DATE_PUBLISHED, DOC_DESC_FROM_DESC, DOC_NAME_FROM_TITLE, IMAGE_AUTO, IMAGE_MANUAL, OPENING_HOURS, PRICE_RANGE, PROVIDER_SITE, RATING_PROPERTIES, SITE_ADDRESS, SITE_DESCRIPTION, SITE_EMAIL, SITE_NAME, SITE_PHONE, SITE_URL, } from './property-atoms.js';
4
+ // ---------------------------------------------------------------------------
5
+ // TYPE_PROPERTIES — property definitions per Schema.org type
6
+ // ---------------------------------------------------------------------------
7
+ /**
8
+ * Property definitions per Schema.org type: the properties Studio offers
9
+ * for it, how each is edited and where its value comes from.
10
+ */
11
+ const TYPE_PROPERTIES = {
12
+ LocalBusiness: [...BUSINESS_CORE, OPENING_HOURS, IMAGE_MANUAL, PRICE_RANGE, AREA_SERVED],
13
+ ProfessionalService: [
14
+ SITE_NAME,
15
+ SITE_DESCRIPTION,
16
+ SITE_URL,
17
+ SITE_PHONE,
18
+ SITE_EMAIL,
19
+ { ...SITE_ADDRESS, hint: undefined },
20
+ { ...OPENING_HOURS, hint: undefined },
21
+ AREA_SERVED,
22
+ ],
23
+ Organization: [
24
+ SITE_NAME,
25
+ SITE_DESCRIPTION,
26
+ SITE_URL,
27
+ {
28
+ property: 'logo',
29
+ label: 'Logo URL',
30
+ fieldType: 'url',
31
+ source: 'site',
32
+ },
33
+ { ...SITE_EMAIL, label: 'Contact Email' },
34
+ ],
35
+ Restaurant: [
36
+ SITE_NAME,
37
+ SITE_DESCRIPTION,
38
+ SITE_URL,
39
+ SITE_PHONE,
40
+ { ...SITE_ADDRESS, hint: undefined },
41
+ {
42
+ property: 'servesCuisine',
43
+ label: 'Cuisine Type',
44
+ fieldType: 'text',
45
+ source: 'manual',
46
+ },
47
+ { ...OPENING_HOURS, hint: undefined },
48
+ { ...PRICE_RANGE, hint: undefined },
49
+ {
50
+ property: 'hasMenu',
51
+ label: 'Menu URL',
52
+ fieldType: 'url',
53
+ source: 'manual',
54
+ },
55
+ ],
56
+ // Business subtypes — inherit LocalBusiness properties
57
+ MedicalBusiness: [...BUSINESS_CORE, OPENING_HOURS, IMAGE_MANUAL, AREA_SERVED],
58
+ LegalService: [...BUSINESS_CORE, OPENING_HOURS, AREA_SERVED],
59
+ FinancialService: [...BUSINESS_CORE, OPENING_HOURS, AREA_SERVED],
60
+ RealEstateAgent: [...BUSINESS_CORE, OPENING_HOURS, AREA_SERVED],
61
+ AutoDealer: [...BUSINESS_CORE, OPENING_HOURS, IMAGE_MANUAL, AREA_SERVED],
62
+ HealthAndBeautyBusiness: [
63
+ ...BUSINESS_CORE,
64
+ OPENING_HOURS,
65
+ IMAGE_MANUAL,
66
+ PRICE_RANGE,
67
+ AREA_SERVED,
68
+ ],
69
+ FoodEstablishment: [...BUSINESS_CORE, OPENING_HOURS, IMAGE_MANUAL, PRICE_RANGE, AREA_SERVED],
70
+ EntertainmentBusiness: [...BUSINESS_CORE, OPENING_HOURS, IMAGE_MANUAL, PRICE_RANGE, AREA_SERVED],
71
+ SportsActivityLocation: [...BUSINESS_CORE, OPENING_HOURS, IMAGE_MANUAL, AREA_SERVED],
72
+ LodgingBusiness: [...BUSINESS_CORE, OPENING_HOURS, IMAGE_MANUAL, PRICE_RANGE, AREA_SERVED],
73
+ Article: [
74
+ ARTICLE_HEADLINE,
75
+ ARTICLE_DESCRIPTION,
76
+ DATE_PUBLISHED,
77
+ {
78
+ property: 'dateModified',
79
+ label: 'Date Modified',
80
+ fieldType: 'date',
81
+ source: 'computed',
82
+ },
83
+ AUTHOR_AUTO,
84
+ IMAGE_AUTO,
85
+ ],
86
+ BlogPosting: [ARTICLE_HEADLINE, ARTICLE_DESCRIPTION, DATE_PUBLISHED, AUTHOR_AUTO, IMAGE_AUTO],
87
+ NewsArticle: [
88
+ ARTICLE_HEADLINE,
89
+ DATE_PUBLISHED,
90
+ AUTHOR_AUTO,
91
+ IMAGE_AUTO,
92
+ {
93
+ property: 'dateline',
94
+ label: 'Dateline',
95
+ fieldType: 'text',
96
+ source: 'manual',
97
+ },
98
+ ],
99
+ HowTo: [
100
+ { ...DOC_NAME_FROM_TITLE, label: 'Title' },
101
+ DOC_DESC_FROM_DESC,
102
+ {
103
+ property: 'totalTime',
104
+ label: 'Total Time',
105
+ fieldType: 'text',
106
+ source: 'manual',
107
+ hint: 'ISO 8601 duration, e.g., PT30M',
108
+ },
109
+ {
110
+ property: 'estimatedCost',
111
+ label: 'Estimated Cost',
112
+ fieldType: 'text',
113
+ source: 'manual',
114
+ },
115
+ {
116
+ property: 'step',
117
+ label: 'Steps',
118
+ fieldType: 'array',
119
+ source: 'computed',
120
+ hint: 'Auto-extracted from ## headings in body',
121
+ },
122
+ ],
123
+ Recipe: [
124
+ { ...DOC_NAME_FROM_TITLE, label: 'Recipe Name' },
125
+ DOC_DESC_FROM_DESC,
126
+ IMAGE_AUTO,
127
+ {
128
+ property: 'prepTime',
129
+ label: 'Prep Time',
130
+ fieldType: 'text',
131
+ source: 'manual',
132
+ hint: 'ISO 8601, e.g., PT15M',
133
+ },
134
+ {
135
+ property: 'cookTime',
136
+ label: 'Cook Time',
137
+ fieldType: 'text',
138
+ source: 'manual',
139
+ hint: 'ISO 8601, e.g., PT45M',
140
+ },
141
+ {
142
+ property: 'recipeYield',
143
+ label: 'Yield',
144
+ fieldType: 'text',
145
+ source: 'manual',
146
+ hint: 'e.g., 4 servings',
147
+ },
148
+ {
149
+ property: 'recipeIngredient',
150
+ label: 'Ingredients',
151
+ fieldType: 'array',
152
+ source: 'manual',
153
+ },
154
+ {
155
+ property: 'recipeInstructions',
156
+ label: 'Instructions',
157
+ fieldType: 'array',
158
+ source: 'computed',
159
+ hint: 'Auto-extracted from body',
160
+ },
161
+ ],
162
+ Course: [{ ...DOC_NAME_FROM_TITLE, label: 'Course Name' }, DOC_DESC_FROM_DESC, PROVIDER_SITE],
163
+ Product: [
164
+ { ...DOC_NAME_FROM_TITLE, label: 'Product Name' },
165
+ DOC_DESC_FROM_DESC,
166
+ IMAGE_AUTO,
167
+ {
168
+ property: 'brand',
169
+ label: 'Brand',
170
+ fieldType: 'text',
171
+ source: 'site',
172
+ },
173
+ {
174
+ property: 'sku',
175
+ label: 'SKU',
176
+ fieldType: 'text',
177
+ source: 'manual',
178
+ },
179
+ {
180
+ property: 'offers',
181
+ label: 'Price',
182
+ fieldType: 'text',
183
+ source: 'manual',
184
+ hint: 'Price with currency',
185
+ },
186
+ ],
187
+ Service: [
188
+ { ...DOC_NAME_FROM_TITLE, label: 'Service Name' },
189
+ DOC_DESC_FROM_DESC,
190
+ PROVIDER_SITE,
191
+ AREA_SERVED,
192
+ {
193
+ property: 'offers',
194
+ label: 'Pricing',
195
+ fieldType: 'text',
196
+ source: 'manual',
197
+ },
198
+ ],
199
+ Offer: [
200
+ {
201
+ property: 'price',
202
+ label: 'Price',
203
+ fieldType: 'number',
204
+ source: 'manual',
205
+ },
206
+ {
207
+ property: 'priceCurrency',
208
+ label: 'Currency',
209
+ fieldType: 'text',
210
+ source: 'site',
211
+ hint: 'ISO 4217, e.g., USD, EUR',
212
+ },
213
+ {
214
+ property: 'availability',
215
+ label: 'Availability',
216
+ fieldType: 'select',
217
+ source: 'manual',
218
+ },
219
+ {
220
+ property: 'url',
221
+ label: 'URL',
222
+ fieldType: 'url',
223
+ source: 'computed',
224
+ },
225
+ ],
226
+ Person: [
227
+ { ...SITE_NAME, label: 'Full Name' },
228
+ {
229
+ property: 'jobTitle',
230
+ label: 'Job Title',
231
+ fieldType: 'text',
232
+ source: 'site',
233
+ },
234
+ {
235
+ property: 'url',
236
+ label: 'Profile URL',
237
+ fieldType: 'url',
238
+ source: 'site',
239
+ },
240
+ { ...IMAGE_MANUAL, label: 'Photo' },
241
+ {
242
+ property: 'alumniOf',
243
+ label: 'Education',
244
+ fieldType: 'text',
245
+ source: 'site',
246
+ },
247
+ {
248
+ property: 'worksFor',
249
+ label: 'Works For',
250
+ fieldType: 'text',
251
+ source: 'site',
252
+ },
253
+ ],
254
+ Event: [
255
+ { ...DOC_NAME_FROM_TITLE, label: 'Event Name' },
256
+ DOC_DESC_FROM_DESC,
257
+ {
258
+ property: 'startDate',
259
+ label: 'Start Date',
260
+ fieldType: 'date',
261
+ source: 'manual',
262
+ },
263
+ {
264
+ property: 'endDate',
265
+ label: 'End Date',
266
+ fieldType: 'date',
267
+ source: 'manual',
268
+ },
269
+ {
270
+ property: 'location',
271
+ label: 'Location',
272
+ fieldType: 'text',
273
+ source: 'manual',
274
+ },
275
+ {
276
+ property: 'organizer',
277
+ label: 'Organizer',
278
+ fieldType: 'text',
279
+ source: 'site',
280
+ },
281
+ {
282
+ property: 'offers',
283
+ label: 'Ticket Price',
284
+ fieldType: 'text',
285
+ source: 'manual',
286
+ },
287
+ {
288
+ property: 'eventStatus',
289
+ label: 'Status',
290
+ fieldType: 'select',
291
+ source: 'manual',
292
+ },
293
+ {
294
+ property: 'eventAttendanceMode',
295
+ label: 'Attendance Mode',
296
+ fieldType: 'select',
297
+ source: 'manual',
298
+ },
299
+ ],
300
+ JobPosting: [
301
+ {
302
+ property: 'title',
303
+ label: 'Job Title',
304
+ fieldType: 'text',
305
+ source: 'auto',
306
+ autoMapField: 'title',
307
+ },
308
+ DOC_DESC_FROM_DESC,
309
+ {
310
+ property: 'datePosted',
311
+ label: 'Date Posted',
312
+ fieldType: 'date',
313
+ source: 'auto',
314
+ autoMapField: 'date',
315
+ },
316
+ {
317
+ property: 'validThrough',
318
+ label: 'Valid Through',
319
+ fieldType: 'date',
320
+ source: 'manual',
321
+ },
322
+ {
323
+ property: 'hiringOrganization',
324
+ label: 'Hiring Organization',
325
+ fieldType: 'text',
326
+ source: 'site',
327
+ },
328
+ {
329
+ property: 'jobLocation',
330
+ label: 'Location',
331
+ fieldType: 'text',
332
+ source: 'manual',
333
+ },
334
+ {
335
+ property: 'employmentType',
336
+ label: 'Employment Type',
337
+ fieldType: 'select',
338
+ source: 'manual',
339
+ },
340
+ {
341
+ property: 'baseSalary',
342
+ label: 'Salary',
343
+ fieldType: 'text',
344
+ source: 'manual',
345
+ },
346
+ ],
347
+ WebSite: [
348
+ { ...SITE_NAME, label: 'Site Name' },
349
+ { property: 'url', label: 'URL', fieldType: 'url', source: 'site' },
350
+ {
351
+ property: 'inLanguage',
352
+ label: 'Language',
353
+ fieldType: 'text',
354
+ source: 'site',
355
+ },
356
+ ],
357
+ WebPage: [
358
+ {
359
+ property: 'name',
360
+ label: 'Page Title',
361
+ fieldType: 'text',
362
+ source: 'auto',
363
+ autoMapField: 'title',
364
+ },
365
+ { ...ARTICLE_DESCRIPTION, label: 'Description' },
366
+ { property: 'url', label: 'URL', fieldType: 'url', source: 'computed' },
367
+ ],
368
+ BreadcrumbList: [
369
+ {
370
+ property: 'itemListElement',
371
+ label: 'Breadcrumb Items',
372
+ fieldType: 'array',
373
+ source: 'computed',
374
+ hint: 'Auto-generated from URL path',
375
+ },
376
+ ],
377
+ FAQPage: [
378
+ {
379
+ property: 'mainEntity',
380
+ label: 'Questions',
381
+ fieldType: 'array',
382
+ source: 'computed',
383
+ hint: 'Q&A pairs from content or manual input',
384
+ },
385
+ ],
386
+ Review: [
387
+ {
388
+ property: 'itemReviewed',
389
+ label: 'Reviewed Item',
390
+ fieldType: 'text',
391
+ source: 'manual',
392
+ },
393
+ {
394
+ property: 'reviewRating',
395
+ label: 'Rating',
396
+ fieldType: 'number',
397
+ source: 'manual',
398
+ hint: '1-5 stars',
399
+ },
400
+ {
401
+ property: 'author',
402
+ label: 'Reviewer',
403
+ fieldType: 'text',
404
+ source: 'manual',
405
+ },
406
+ {
407
+ property: 'reviewBody',
408
+ label: 'Review Text',
409
+ fieldType: 'textarea',
410
+ source: 'manual',
411
+ },
412
+ ],
413
+ VideoObject: [
414
+ DOC_NAME_FROM_TITLE,
415
+ DOC_DESC_FROM_DESC,
416
+ {
417
+ property: 'contentUrl',
418
+ label: 'Content URL',
419
+ fieldType: 'url',
420
+ source: 'manual',
421
+ },
422
+ {
423
+ property: 'thumbnailUrl',
424
+ label: 'Thumbnail URL',
425
+ fieldType: 'url',
426
+ source: 'manual',
427
+ },
428
+ {
429
+ ...DATE_PUBLISHED,
430
+ label: 'Upload Date',
431
+ property: 'uploadDate',
432
+ },
433
+ {
434
+ property: 'duration',
435
+ label: 'Duration',
436
+ fieldType: 'text',
437
+ source: 'manual',
438
+ hint: 'ISO 8601 duration, e.g., PT1H30M',
439
+ },
440
+ {
441
+ property: 'embedUrl',
442
+ label: 'Embed URL',
443
+ fieldType: 'url',
444
+ source: 'manual',
445
+ },
446
+ ],
447
+ ImageObject: [
448
+ DOC_NAME_FROM_TITLE,
449
+ {
450
+ property: 'contentUrl',
451
+ label: 'Content URL',
452
+ fieldType: 'url',
453
+ source: 'manual',
454
+ },
455
+ {
456
+ property: 'creditText',
457
+ label: 'Credit Text',
458
+ fieldType: 'text',
459
+ source: 'manual',
460
+ },
461
+ {
462
+ property: 'creator',
463
+ label: 'Creator',
464
+ fieldType: 'text',
465
+ source: 'manual',
466
+ },
467
+ {
468
+ property: 'copyrightNotice',
469
+ label: 'Copyright Notice',
470
+ fieldType: 'text',
471
+ source: 'manual',
472
+ },
473
+ ],
474
+ SoftwareApplication: [
475
+ DOC_NAME_FROM_TITLE,
476
+ DOC_DESC_FROM_DESC,
477
+ {
478
+ property: 'applicationCategory',
479
+ label: 'Application Category',
480
+ fieldType: 'text',
481
+ source: 'manual',
482
+ },
483
+ {
484
+ property: 'operatingSystem',
485
+ label: 'Operating System',
486
+ fieldType: 'text',
487
+ source: 'manual',
488
+ },
489
+ {
490
+ property: 'offers',
491
+ label: 'Offers',
492
+ fieldType: 'text',
493
+ source: 'manual',
494
+ hint: 'Price with currency',
495
+ },
496
+ ],
497
+ ItemList: [
498
+ DOC_NAME_FROM_TITLE,
499
+ DOC_DESC_FROM_DESC,
500
+ {
501
+ property: 'numberOfItems',
502
+ label: 'Number of Items',
503
+ fieldType: 'number',
504
+ source: 'manual',
505
+ },
506
+ ],
507
+ ProfilePage: [
508
+ DOC_NAME_FROM_TITLE,
509
+ DOC_DESC_FROM_DESC,
510
+ {
511
+ property: 'mainEntity',
512
+ label: 'Main Entity',
513
+ fieldType: 'text',
514
+ source: 'manual',
515
+ hint: 'Person or Organization this profile represents',
516
+ },
517
+ ],
518
+ QAPage: [DOC_NAME_FROM_TITLE, DOC_DESC_FROM_DESC],
519
+ Dataset: [
520
+ DOC_NAME_FROM_TITLE,
521
+ DOC_DESC_FROM_DESC,
522
+ {
523
+ property: 'license',
524
+ label: 'License',
525
+ fieldType: 'url',
526
+ source: 'manual',
527
+ },
528
+ {
529
+ property: 'creator',
530
+ label: 'Creator',
531
+ fieldType: 'text',
532
+ source: 'manual',
533
+ },
534
+ ],
535
+ Movie: [
536
+ DOC_NAME_FROM_TITLE,
537
+ DOC_DESC_FROM_DESC,
538
+ {
539
+ property: 'director',
540
+ label: 'Director',
541
+ fieldType: 'text',
542
+ source: 'manual',
543
+ },
544
+ {
545
+ property: 'dateCreated',
546
+ label: 'Date Created',
547
+ fieldType: 'date',
548
+ source: 'manual',
549
+ },
550
+ {
551
+ property: 'duration',
552
+ label: 'Duration',
553
+ fieldType: 'text',
554
+ source: 'manual',
555
+ hint: 'ISO 8601 duration, e.g., PT2H',
556
+ },
557
+ {
558
+ property: 'image',
559
+ label: 'Image',
560
+ fieldType: 'url',
561
+ source: 'manual',
562
+ },
563
+ ],
564
+ DiscussionForumPosting: [
565
+ ARTICLE_HEADLINE,
566
+ {
567
+ property: 'articleBody',
568
+ label: 'Article Body',
569
+ fieldType: 'textarea',
570
+ source: 'auto',
571
+ autoMapField: 'description',
572
+ },
573
+ AUTHOR_AUTO,
574
+ DATE_PUBLISHED,
575
+ ],
576
+ VacationRental: [
577
+ DOC_NAME_FROM_TITLE,
578
+ DOC_DESC_FROM_DESC,
579
+ {
580
+ property: 'address',
581
+ label: 'Address',
582
+ fieldType: 'text',
583
+ source: 'manual',
584
+ hint: 'Street, City, State, ZIP',
585
+ },
586
+ {
587
+ property: 'image',
588
+ label: 'Image',
589
+ fieldType: 'url',
590
+ source: 'manual',
591
+ },
592
+ ],
593
+ EmployerAggregateRating: [...RATING_PROPERTIES],
594
+ SpeakableSpecification: [
595
+ {
596
+ property: 'cssSelector',
597
+ label: 'CSS Selector',
598
+ fieldType: 'text',
599
+ source: 'manual',
600
+ hint: 'CSS selector for speakable content sections',
601
+ },
602
+ ],
603
+ AggregateRating: [...RATING_PROPERTIES],
604
+ };
605
+ /** How much Google's rule for the type (or its nearest ancestor's) needs the property */
606
+ function importanceOf(type, property) {
607
+ const rule = ruleFor(googleProfile, type);
608
+ if (!rule || rule.status === 'none' || rule.status === 'retired')
609
+ return 'optional';
610
+ if (rule.required?.includes(property))
611
+ return 'required';
612
+ const recommended = rule.recommended?.includes(property) || rule.oneOf?.some((group) => group.includes(property));
613
+ return recommended ? 'recommended' : 'optional';
614
+ }
615
+ /** Get properties for a Schema.org type, with the importance Google's rule gives each */
616
+ export function getTypeProperties(type) {
617
+ return (TYPE_PROPERTIES[type] ?? []).map((spec) => ({
618
+ ...spec,
619
+ importance: importanceOf(type, spec.property),
620
+ }));
621
+ }
622
+ /** Get required properties for a type */
623
+ export function getRequiredProperties(type) {
624
+ return getTypeProperties(type).filter((p) => p.importance === 'required');
625
+ }
626
+ /** Get auto-mappable properties for a type */
627
+ export function getAutoMappableProperties(type) {
628
+ return getTypeProperties(type).filter((p) => p.source === 'auto' && p.autoMapField);
629
+ }
630
+ //# sourceMappingURL=properties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"properties.js","sourceRoot":"","sources":["../../src/catalog/properties.ts"],"names":[],"mappings":"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"}