@react-pakistan/util-functions 1.25.11 → 1.25.13

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 (73) hide show
  1. package/constants/cache-time.d.ts +2 -0
  2. package/constants/cache-time.js +3 -1
  3. package/general/generate-article-schema.d.ts +49 -0
  4. package/general/generate-article-schema.js +100 -0
  5. package/general/generate-blog-schema.d.ts +7 -5
  6. package/general/generate-blog-schema.js +7 -5
  7. package/general/generate-book-schema.d.ts +57 -0
  8. package/general/generate-book-schema.js +109 -0
  9. package/general/generate-breadcrumb-schema.d.ts +22 -6
  10. package/general/generate-breadcrumb-schema.js +15 -4
  11. package/general/generate-carousel-schema.d.ts +51 -0
  12. package/general/generate-carousel-schema.js +172 -0
  13. package/general/generate-course-schema.d.ts +52 -0
  14. package/general/generate-course-schema.js +124 -0
  15. package/general/generate-dataset-schema.d.ts +64 -0
  16. package/general/generate-dataset-schema.js +156 -0
  17. package/general/generate-discussion-forum-schema.d.ts +38 -0
  18. package/general/generate-discussion-forum-schema.js +67 -0
  19. package/general/generate-education-schema.d.ts +67 -0
  20. package/general/generate-education-schema.js +137 -0
  21. package/general/generate-employer-aggregate-rating-schema.d.ts +28 -0
  22. package/general/generate-employer-aggregate-rating-schema.js +64 -0
  23. package/general/generate-event-schema.d.ts +62 -0
  24. package/general/generate-event-schema.js +214 -0
  25. package/general/generate-faq-schema.d.ts +15 -11
  26. package/general/generate-faq-schema.js +18 -6
  27. package/general/generate-image-metadata-schema.d.ts +35 -0
  28. package/general/generate-image-metadata-schema.js +73 -0
  29. package/general/generate-job-posting-schema.d.ts +48 -0
  30. package/general/generate-job-posting-schema.js +120 -0
  31. package/general/generate-local-business-schema.d.ts +41 -0
  32. package/general/generate-local-business-schema.js +75 -0
  33. package/general/generate-math-solver-schema.d.ts +44 -0
  34. package/general/generate-math-solver-schema.js +83 -0
  35. package/general/generate-movie-carousel-schema.d.ts +50 -0
  36. package/general/generate-movie-carousel-schema.js +160 -0
  37. package/general/generate-organization-schema.d.ts +9 -5
  38. package/general/generate-organization-schema.js +9 -5
  39. package/general/generate-profile-page-schema.d.ts +36 -0
  40. package/general/generate-profile-page-schema.js +82 -0
  41. package/general/generate-qa-page-schema.d.ts +33 -0
  42. package/general/generate-qa-page-schema.js +67 -0
  43. package/general/generate-recipe-schema.d.ts +48 -0
  44. package/general/generate-recipe-schema.js +104 -0
  45. package/general/generate-review-snippet-schema.d.ts +51 -0
  46. package/general/generate-review-snippet-schema.js +137 -0
  47. package/general/generate-shopping-loyalty-program-schema.d.ts +37 -0
  48. package/general/generate-shopping-loyalty-program-schema.js +59 -0
  49. package/general/generate-shopping-merchant-listing-schema.d.ts +52 -0
  50. package/general/generate-shopping-merchant-listing-schema.js +153 -0
  51. package/general/generate-shopping-merchant-return-policy-schema.d.ts +31 -0
  52. package/general/generate-shopping-merchant-return-policy-schema.js +68 -0
  53. package/general/generate-shopping-merchant-shipping-policy-schema.d.ts +35 -0
  54. package/general/generate-shopping-merchant-shipping-policy-schema.js +74 -0
  55. package/general/generate-shopping-overview-schema.d.ts +51 -0
  56. package/general/generate-shopping-overview-schema.js +157 -0
  57. package/general/generate-shopping-product-snippet-schema.d.ts +56 -0
  58. package/general/generate-shopping-product-snippet-schema.js +167 -0
  59. package/general/generate-shopping-variants-schema.d.ts +45 -0
  60. package/general/generate-shopping-variants-schema.js +143 -0
  61. package/general/generate-software-app-schema.d.ts +61 -0
  62. package/general/generate-software-app-schema.js +143 -0
  63. package/general/generate-speakable-schema.d.ts +63 -0
  64. package/general/generate-speakable-schema.js +139 -0
  65. package/general/generate-subscription-schema.d.ts +59 -0
  66. package/general/generate-subscription-schema.js +133 -0
  67. package/general/generate-vacation-rental-schema.d.ts +66 -0
  68. package/general/generate-vacation-rental-schema.js +135 -0
  69. package/general/generate-video-schema.d.ts +74 -0
  70. package/general/generate-video-schema.js +163 -0
  71. package/general/index.d.ts +30 -0
  72. package/general/index.js +30 -0
  73. package/package.json +1 -1
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ /**
3
+ * Generate schema.org structured data for `VideoObject`, `Clip`, or
4
+ * `BroadcastEvent`.
5
+ *
6
+ * The `VideoOptions` input controls which type is produced and supports
7
+ * optional fields like `aggregateRating`, `reviews`, thumbnails and
8
+ * associated `Clip` or `BroadcastEvent` metadata. The result is a plain
9
+ * object ready to be stringified as JSON-LD for inclusion in a page.
10
+ *
11
+ * See `VideoOptions` below for accepted fields and shapes.
12
+ * @returns A JSON-LD compatible Video/Clip/BroadcastEvent object
13
+ */
14
+ var __assign = (this && this.__assign) || function () {
15
+ __assign = Object.assign || function(t) {
16
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
17
+ s = arguments[i];
18
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19
+ t[p] = s[p];
20
+ }
21
+ return t;
22
+ };
23
+ return __assign.apply(this, arguments);
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.generateVideoSchema = void 0;
27
+ var formatImage = function (i) {
28
+ if (!i)
29
+ return undefined;
30
+ if (Array.isArray(i))
31
+ return i.map(function (item) {
32
+ return typeof item === 'string'
33
+ ? item
34
+ : __assign(__assign({ '@type': 'ImageObject', url: item.url }, (item.width && { width: item.width })), (item.height && { height: item.height }));
35
+ });
36
+ if (typeof i === 'string')
37
+ return i;
38
+ return __assign(__assign({ '@type': 'ImageObject', url: i.url }, (i.width && { width: i.width })), (i.height && { height: i.height }));
39
+ };
40
+ var formatPerson = function (p) {
41
+ if (!p)
42
+ return undefined;
43
+ if (typeof p === 'string')
44
+ return { '@type': 'Person', name: p };
45
+ var out = { '@type': 'Person', name: p.name };
46
+ if (p.url)
47
+ out.url = p.url;
48
+ return out;
49
+ };
50
+ var formatOrg = function (o) {
51
+ if (!o)
52
+ return undefined;
53
+ if (typeof o === 'string')
54
+ return { '@type': 'Organization', name: o };
55
+ var out = { '@type': 'Organization', name: o.name };
56
+ if (o.url)
57
+ out.url = o.url;
58
+ return out;
59
+ };
60
+ var formatReview = function (r) {
61
+ var out = { '@type': 'Review' };
62
+ if (r.author)
63
+ out.author = formatPerson(r.author);
64
+ if (r.datePublished)
65
+ out.datePublished = r.datePublished;
66
+ if (r.reviewBody)
67
+ out.reviewBody = r.reviewBody;
68
+ if (r.reviewRating) {
69
+ out.reviewRating = __assign(__assign({ '@type': 'Rating', ratingValue: r.reviewRating.ratingValue }, (r.reviewRating.bestRating != null && {
70
+ bestRating: r.reviewRating.bestRating,
71
+ })), (r.reviewRating.worstRating != null && {
72
+ worstRating: r.reviewRating.worstRating,
73
+ }));
74
+ }
75
+ return out;
76
+ };
77
+ var generateVideoSchema = function (_a) {
78
+ var _b = _a.type, type = _b === void 0 ? 'VideoObject' : _b, name = _a.name, description = _a.description, thumbnail = _a.thumbnail, uploadDate = _a.uploadDate, duration = _a.duration, contentUrl = _a.contentUrl, embedUrl = _a.embedUrl, clip = _a.clip, broadcastEvent = _a.broadcastEvent, publisher = _a.publisher, author = _a.author, reviews = _a.reviews, aggregateRating = _a.aggregateRating;
79
+ var schema = {
80
+ '@context': 'https://schema.org',
81
+ '@type': type,
82
+ name: name,
83
+ };
84
+ if (description)
85
+ schema.description = description;
86
+ var thumb = formatImage(thumbnail);
87
+ if (thumb)
88
+ schema.thumbnail = thumb;
89
+ if (uploadDate)
90
+ schema.uploadDate = uploadDate;
91
+ if (duration)
92
+ schema.duration = duration;
93
+ if (contentUrl)
94
+ schema.contentUrl = contentUrl;
95
+ if (embedUrl)
96
+ schema.embedUrl = embedUrl;
97
+ var a = formatOrg(publisher);
98
+ if (a)
99
+ schema.publisher = a;
100
+ var au = formatPerson(author);
101
+ if (au)
102
+ schema.author = au;
103
+ if (clip) {
104
+ var c = { '@type': 'Clip' };
105
+ if (clip.name)
106
+ c.name = clip.name;
107
+ if (clip.startOffset != null)
108
+ c.startOffset = clip.startOffset;
109
+ if (clip.endOffset != null)
110
+ c.endOffset = clip.endOffset;
111
+ if (clip.url)
112
+ c.url = clip.url;
113
+ schema.clip = c;
114
+ }
115
+ if (broadcastEvent) {
116
+ var b = { '@type': 'BroadcastEvent' };
117
+ if (broadcastEvent.name)
118
+ b.name = broadcastEvent.name;
119
+ if (broadcastEvent.startDate)
120
+ b.startDate = broadcastEvent.startDate;
121
+ if (broadcastEvent.endDate)
122
+ b.endDate = broadcastEvent.endDate;
123
+ if (broadcastEvent.isLiveBroadcast != null)
124
+ b.isLiveBroadcast = broadcastEvent.isLiveBroadcast;
125
+ if (broadcastEvent.url)
126
+ b.url = broadcastEvent.url;
127
+ schema.broadcaster = b;
128
+ }
129
+ // Reviews
130
+ if (reviews && reviews.length > 0) {
131
+ var mapped = reviews.map(formatReview);
132
+ schema.review = mapped;
133
+ // compute aggregate rating if not supplied
134
+ if (!aggregateRating) {
135
+ var ratings = reviews
136
+ .map(function (r) { return (r.reviewRating ? Number(r.reviewRating.ratingValue) : NaN); })
137
+ .filter(function (n) { return !Number.isNaN(n); });
138
+ if (ratings.length > 0) {
139
+ var sum = ratings.reduce(function (x, y) { return x + y; }, 0);
140
+ schema.aggregateRating = {
141
+ '@type': 'AggregateRating',
142
+ ratingValue: sum / ratings.length,
143
+ reviewCount: reviews.length,
144
+ ratingCount: ratings.length,
145
+ };
146
+ }
147
+ }
148
+ }
149
+ if (aggregateRating) {
150
+ schema.aggregateRating = __assign(__assign(__assign(__assign({ '@type': 'AggregateRating', ratingValue: aggregateRating.ratingValue }, (aggregateRating.reviewCount != null && {
151
+ reviewCount: aggregateRating.reviewCount,
152
+ })), (aggregateRating.ratingCount != null && {
153
+ ratingCount: aggregateRating.ratingCount,
154
+ })), (aggregateRating.bestRating != null && {
155
+ bestRating: aggregateRating.bestRating,
156
+ })), (aggregateRating.worstRating != null && {
157
+ worstRating: aggregateRating.worstRating,
158
+ }));
159
+ }
160
+ return schema;
161
+ };
162
+ exports.generateVideoSchema = generateVideoSchema;
163
+ exports.default = exports.generateVideoSchema;
@@ -19,12 +19,42 @@ export * from './format-secs';
19
19
  export * from './format-time';
20
20
  export * from './full-month-range';
21
21
  export * from './full-year-range';
22
+ export * from './generate-article-schema';
23
+ export * from './generate-book-schema';
22
24
  export * from './generate-blog-schema';
25
+ export * from './generate-carousel-schema';
26
+ export * from './generate-course-schema';
27
+ export * from './generate-dataset-schema';
28
+ export * from './generate-discussion-forum-schema';
29
+ export * from './generate-education-schema';
30
+ export * from './generate-employer-aggregate-rating-schema';
23
31
  export * from './generate-breadcrumb-schema';
24
32
  export * from './generate-faq-schema';
33
+ export * from './generate-event-schema';
34
+ export * from './generate-image-metadata-schema';
35
+ export * from './generate-job-posting-schema';
25
36
  export * from './generate-grid';
37
+ export * from './generate-local-business-schema';
38
+ export * from './generate-movie-carousel-schema';
26
39
  export * from './generate-organization-schema';
40
+ export * from './generate-math-solver-schema';
41
+ export * from './generate-shopping-overview-schema';
42
+ export * from './generate-shopping-product-snippet-schema';
43
+ export * from './generate-shopping-merchant-listing-schema';
44
+ export * from './generate-shopping-variants-schema';
45
+ export * from './generate-shopping-loyalty-program-schema';
46
+ export * from './generate-shopping-merchant-return-policy-schema';
47
+ export * from './generate-shopping-merchant-shipping-policy-schema';
48
+ export * from './generate-profile-page-schema';
49
+ export * from './generate-qa-page-schema';
27
50
  export * from './generate-ref';
51
+ export * from './generate-recipe-schema';
52
+ export * from './generate-review-snippet-schema';
53
+ export * from './generate-software-app-schema';
54
+ export * from './generate-speakable-schema';
55
+ export * from './generate-subscription-schema';
56
+ export * from './generate-vacation-rental-schema';
57
+ export * from './generate-video-schema';
28
58
  export * from './generic-cache';
29
59
  export * from './get-available-page-limit';
30
60
  export * from './get-calendar-current-month';
package/general/index.js CHANGED
@@ -35,12 +35,42 @@ __exportStar(require("./format-secs"), exports);
35
35
  __exportStar(require("./format-time"), exports);
36
36
  __exportStar(require("./full-month-range"), exports);
37
37
  __exportStar(require("./full-year-range"), exports);
38
+ __exportStar(require("./generate-article-schema"), exports);
39
+ __exportStar(require("./generate-book-schema"), exports);
38
40
  __exportStar(require("./generate-blog-schema"), exports);
41
+ __exportStar(require("./generate-carousel-schema"), exports);
42
+ __exportStar(require("./generate-course-schema"), exports);
43
+ __exportStar(require("./generate-dataset-schema"), exports);
44
+ __exportStar(require("./generate-discussion-forum-schema"), exports);
45
+ __exportStar(require("./generate-education-schema"), exports);
46
+ __exportStar(require("./generate-employer-aggregate-rating-schema"), exports);
39
47
  __exportStar(require("./generate-breadcrumb-schema"), exports);
40
48
  __exportStar(require("./generate-faq-schema"), exports);
49
+ __exportStar(require("./generate-event-schema"), exports);
50
+ __exportStar(require("./generate-image-metadata-schema"), exports);
51
+ __exportStar(require("./generate-job-posting-schema"), exports);
41
52
  __exportStar(require("./generate-grid"), exports);
53
+ __exportStar(require("./generate-local-business-schema"), exports);
54
+ __exportStar(require("./generate-movie-carousel-schema"), exports);
42
55
  __exportStar(require("./generate-organization-schema"), exports);
56
+ __exportStar(require("./generate-math-solver-schema"), exports);
57
+ __exportStar(require("./generate-shopping-overview-schema"), exports);
58
+ __exportStar(require("./generate-shopping-product-snippet-schema"), exports);
59
+ __exportStar(require("./generate-shopping-merchant-listing-schema"), exports);
60
+ __exportStar(require("./generate-shopping-variants-schema"), exports);
61
+ __exportStar(require("./generate-shopping-loyalty-program-schema"), exports);
62
+ __exportStar(require("./generate-shopping-merchant-return-policy-schema"), exports);
63
+ __exportStar(require("./generate-shopping-merchant-shipping-policy-schema"), exports);
64
+ __exportStar(require("./generate-profile-page-schema"), exports);
65
+ __exportStar(require("./generate-qa-page-schema"), exports);
43
66
  __exportStar(require("./generate-ref"), exports);
67
+ __exportStar(require("./generate-recipe-schema"), exports);
68
+ __exportStar(require("./generate-review-snippet-schema"), exports);
69
+ __exportStar(require("./generate-software-app-schema"), exports);
70
+ __exportStar(require("./generate-speakable-schema"), exports);
71
+ __exportStar(require("./generate-subscription-schema"), exports);
72
+ __exportStar(require("./generate-vacation-rental-schema"), exports);
73
+ __exportStar(require("./generate-video-schema"), exports);
44
74
  __exportStar(require("./generic-cache"), exports);
45
75
  __exportStar(require("./get-available-page-limit"), exports);
46
76
  __exportStar(require("./get-calendar-current-month"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-pakistan/util-functions",
3
- "version": "1.25.11",
3
+ "version": "1.25.13",
4
4
  "description": "A library of all util functions",
5
5
  "main": "index.js",
6
6
  "scripts": {