@prezly/theme-kit-core 7.0.0 → 8.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.
- package/build/boilerplate.cjs +17 -0
- package/build/boilerplate.d.ts +8 -0
- package/build/boilerplate.mjs +9 -0
- package/build/constants.cjs +11 -0
- package/build/{utils/constants.d.ts → constants.d.ts} +2 -1
- package/build/constants.mjs +5 -0
- package/build/content-delivery/ContentDelivery.cjs +348 -0
- package/build/content-delivery/ContentDelivery.d.ts +8 -4
- package/build/content-delivery/ContentDelivery.mjs +342 -0
- package/build/content-delivery/cache/index.cjs +35 -0
- package/build/content-delivery/cache/index.d.ts +3 -0
- package/build/content-delivery/cache/index.mjs +3 -0
- package/build/content-delivery/cache/memory.cjs +64 -0
- package/build/content-delivery/cache/memory.d.ts +2 -0
- package/build/content-delivery/cache/memory.mjs +58 -0
- package/build/content-delivery/cache/stacked.cjs +32 -0
- package/build/content-delivery/cache/stacked.d.ts +2 -0
- package/build/content-delivery/cache/stacked.mjs +26 -0
- package/build/content-delivery/cache/type.cjs +1 -0
- package/build/content-delivery/cache/type.d.ts +8 -0
- package/build/content-delivery/cache/type.mjs +1 -0
- package/build/content-delivery/index.cjs +27 -0
- package/build/content-delivery/index.d.ts +2 -1
- package/build/content-delivery/index.mjs +2 -0
- package/build/environment.cjs +42 -0
- package/build/environment.d.ts +2 -0
- package/build/environment.mjs +36 -0
- package/build/galleries.cjs +38 -0
- package/build/galleries.d.ts +11 -0
- package/build/galleries.mjs +30 -0
- package/build/http/HttpClient.cjs +66 -0
- package/build/http/HttpClient.d.ts +20 -0
- package/build/http/HttpClient.mjs +59 -0
- package/build/http/index.cjs +10 -0
- package/build/http/index.d.ts +1 -0
- package/build/http/index.mjs +2 -0
- package/build/index.cjs +88 -0
- package/build/index.d.ts +15 -4
- package/build/index.mjs +26 -0
- package/build/intl/getLanguageDisplayName.cjs +37 -0
- package/build/intl/getLanguageDisplayName.d.ts +20 -0
- package/build/intl/getLanguageDisplayName.mjs +32 -0
- package/build/intl/getLanguageDisplayName.test.cjs +46 -0
- package/build/intl/getLanguageDisplayName.test.mjs +44 -0
- package/build/intl/index.cjs +12 -0
- package/build/intl/index.d.ts +1 -5
- package/build/intl/index.mjs +1 -0
- package/build/metadata/getAlternateLanguageLinks.cjs +76 -0
- package/build/{seo → metadata}/getAlternateLanguageLinks.d.ts +2 -2
- package/build/metadata/getAlternateLanguageLinks.mjs +72 -0
- package/build/metadata/getAlternateLanguageLinks.test.cjs +198 -0
- package/build/metadata/getAlternateLanguageLinks.test.mjs +196 -0
- package/build/metadata/index.cjs +12 -0
- package/build/metadata/index.d.ts +2 -0
- package/build/metadata/index.mjs +1 -0
- package/build/metadata/types.cjs +1 -0
- package/build/metadata/types.d.ts +6 -0
- package/build/metadata/types.mjs +1 -0
- package/build/newsrooms.cjs +36 -0
- package/build/newsrooms.d.ts +5 -0
- package/build/newsrooms.mjs +28 -0
- package/build/privacy-portal.cjs +28 -0
- package/build/privacy-portal.d.ts +9 -0
- package/build/privacy-portal.mjs +21 -0
- package/build/resolvable.cjs +38 -0
- package/build/resolvable.d.ts +71 -0
- package/build/resolvable.mjs +32 -0
- package/build/routing/Route.cjs +46 -0
- package/build/routing/Route.d.ts +37 -0
- package/build/routing/Route.mjs +40 -0
- package/build/routing/Router.cjs +51 -0
- package/build/routing/Router.d.ts +23 -0
- package/build/routing/Router.mjs +45 -0
- package/build/routing/Routing.cjs +24 -0
- package/build/routing/Routing.d.ts +1 -0
- package/build/routing/Routing.mjs +2 -0
- package/build/routing/UrlGenerator.cjs +13 -0
- package/build/routing/UrlGenerator.d.ts +39 -0
- package/build/routing/UrlGenerator.mjs +7 -0
- package/build/routing/index.cjs +24 -0
- package/build/routing/index.d.ts +4 -0
- package/build/routing/index.mjs +4 -0
- package/build/routing/types.cjs +1 -0
- package/build/routing/types.d.ts +14 -0
- package/build/routing/types.mjs +1 -0
- package/build/routing/utils/generateUrlFromPattern.cjs +52 -0
- package/build/routing/utils/generateUrlFromPattern.d.ts +12 -0
- package/build/routing/utils/generateUrlFromPattern.mjs +47 -0
- package/build/routing/utils/generateUrlFromPattern.test.cjs +44 -0
- package/build/routing/utils/generateUrlFromPattern.test.mjs +42 -0
- package/build/routing/utils/getShortestLocaleSlug.cjs +60 -0
- package/build/routing/utils/getShortestLocaleSlug.d.ts +11 -0
- package/build/routing/utils/getShortestLocaleSlug.mjs +53 -0
- package/build/routing/utils/getShortestLocaleSlug.test.cjs +37 -0
- package/build/routing/utils/getShortestLocaleSlug.test.mjs +35 -0
- package/build/routing/utils/index.cjs +40 -0
- package/build/routing/utils/index.d.ts +5 -0
- package/build/routing/utils/index.mjs +5 -0
- package/build/routing/utils/isNumberCode.cjs +12 -0
- package/build/routing/utils/isNumberCode.d.ts +4 -0
- package/build/routing/utils/isNumberCode.mjs +6 -0
- package/build/routing/utils/matchLocaleSlug.cjs +41 -0
- package/build/routing/utils/matchLocaleSlug.d.ts +15 -0
- package/build/routing/utils/matchLocaleSlug.mjs +34 -0
- package/build/routing/utils/matchLocaleSlug.test.cjs +43 -0
- package/build/routing/utils/matchLocaleSlug.test.mjs +40 -0
- package/build/routing/utils/normalizeUrl.cjs +9 -0
- package/build/routing/utils/normalizeUrl.d.ts +1 -0
- package/build/routing/utils/normalizeUrl.mjs +3 -0
- package/build/search.cjs +1 -0
- package/build/{types.d.ts → search.d.ts} +3 -3
- package/build/search.mjs +1 -0
- package/build/sitemap/build.cjs +33 -0
- package/build/sitemap/build.d.ts +6 -0
- package/build/sitemap/build.mjs +27 -0
- package/build/sitemap/generate.cjs +192 -0
- package/build/sitemap/generate.d.ts +37 -0
- package/build/sitemap/generate.mjs +183 -0
- package/build/sitemap/index.cjs +38 -0
- package/build/sitemap/index.d.ts +4 -0
- package/build/sitemap/index.mjs +3 -0
- package/build/sitemap/stringify.cjs +24 -0
- package/build/sitemap/stringify.d.ts +2 -0
- package/build/sitemap/stringify.mjs +18 -0
- package/build/sitemap/types.cjs +1 -0
- package/build/sitemap/types.d.ts +67 -0
- package/build/sitemap/types.mjs +1 -0
- package/build/uploads.cjs +14 -0
- package/build/{utils/getAssetsUrl.d.ts → uploads.d.ts} +1 -1
- package/build/uploads.mjs +8 -0
- package/build/uploads.test.cjs +10 -0
- package/build/uploads.test.mjs +8 -0
- package/package.json +23 -26
- package/build/content-delivery/ContentDelivery.js +0 -238
- package/build/content-delivery/ContentDelivery.js.map +0 -1
- package/build/content-delivery/index.js +0 -28
- package/build/content-delivery/index.js.map +0 -1
- package/build/data-fetching/api/index.d.ts +0 -1
- package/build/data-fetching/api/index.js +0 -6
- package/build/data-fetching/api/index.js.map +0 -1
- package/build/data-fetching/api/initContentDeliveryClient.d.ts +0 -4
- package/build/data-fetching/api/initContentDeliveryClient.js +0 -25
- package/build/data-fetching/api/initContentDeliveryClient.js.map +0 -1
- package/build/data-fetching/index.d.ts +0 -3
- package/build/data-fetching/index.js +0 -20
- package/build/data-fetching/index.js.map +0 -1
- package/build/data-fetching/lib/getAlgoliaSettings.d.ts +0 -4
- package/build/data-fetching/lib/getAlgoliaSettings.js +0 -21
- package/build/data-fetching/lib/getAlgoliaSettings.js.map +0 -1
- package/build/data-fetching/lib/getEnvVariables.d.ts +0 -4
- package/build/data-fetching/lib/getEnvVariables.js +0 -43
- package/build/data-fetching/lib/getEnvVariables.js.map +0 -1
- package/build/data-fetching/lib/index.d.ts +0 -3
- package/build/data-fetching/lib/index.js +0 -10
- package/build/data-fetching/lib/index.js.map +0 -1
- package/build/data-fetching/lib/isUuid.d.ts +0 -1
- package/build/data-fetching/lib/isUuid.js +0 -9
- package/build/data-fetching/lib/isUuid.js.map +0 -1
- package/build/data-fetching/types.d.ts +0 -13
- package/build/data-fetching/types.js +0 -3
- package/build/data-fetching/types.js.map +0 -1
- package/build/index.js +0 -21
- package/build/index.js.map +0 -1
- package/build/intl/getFallbackLocale.d.ts +0 -10
- package/build/intl/getFallbackLocale.js +0 -24
- package/build/intl/getFallbackLocale.js.map +0 -1
- package/build/intl/index.js +0 -27
- package/build/intl/index.js.map +0 -1
- package/build/intl/languages.d.ts +0 -57
- package/build/intl/languages.js +0 -191
- package/build/intl/languages.js.map +0 -1
- package/build/intl/locale.d.ts +0 -11
- package/build/intl/locale.js +0 -41
- package/build/intl/locale.js.map +0 -1
- package/build/intl/localeConfig.d.ts +0 -2
- package/build/intl/localeConfig.js +0 -22
- package/build/intl/localeConfig.js.map +0 -1
- package/build/intl/localeList.d.ts +0 -2
- package/build/intl/localeList.js +0 -114
- package/build/intl/localeList.js.map +0 -1
- package/build/intl/localeObject.d.ts +0 -51
- package/build/intl/localeObject.js +0 -98
- package/build/intl/localeObject.js.map +0 -1
- package/build/seo/getAlternateLanguageLinks.js +0 -85
- package/build/seo/getAlternateLanguageLinks.js.map +0 -1
- package/build/seo/index.d.ts +0 -2
- package/build/seo/index.js +0 -19
- package/build/seo/index.js.map +0 -1
- package/build/seo/types.d.ts +0 -4
- package/build/seo/types.js +0 -3
- package/build/seo/types.js.map +0 -1
- package/build/seo/utils/bindLanguagesWithLocales.d.ts +0 -11
- package/build/seo/utils/bindLanguagesWithLocales.js +0 -23
- package/build/seo/utils/bindLanguagesWithLocales.js.map +0 -1
- package/build/seo/utils/createAlternateLanguageLink.d.ts +0 -5
- package/build/seo/utils/createAlternateLanguageLink.js +0 -15
- package/build/seo/utils/createAlternateLanguageLink.js.map +0 -1
- package/build/seo/utils/index.d.ts +0 -2
- package/build/seo/utils/index.js +0 -8
- package/build/seo/utils/index.js.map +0 -1
- package/build/server.d.ts +0 -2
- package/build/server.js +0 -21
- package/build/server.js.map +0 -1
- package/build/types.js +0 -3
- package/build/types.js.map +0 -1
- package/build/utils/assertServerEnv.d.ts +0 -1
- package/build/utils/assertServerEnv.js +0 -10
- package/build/utils/assertServerEnv.js.map +0 -1
- package/build/utils/boilerplate.d.ts +0 -8
- package/build/utils/boilerplate.js +0 -27
- package/build/utils/boilerplate.js.map +0 -1
- package/build/utils/constants.js +0 -8
- package/build/utils/constants.js.map +0 -1
- package/build/utils/getAssetsUrl.js +0 -13
- package/build/utils/getAssetsUrl.js.map +0 -1
- package/build/utils/getDataRequestLink.d.ts +0 -3
- package/build/utils/getDataRequestLink.js +0 -12
- package/build/utils/getDataRequestLink.js.map +0 -1
- package/build/utils/getGalleryThumbnail.d.ts +0 -2
- package/build/utils/getGalleryThumbnail.js +0 -15
- package/build/utils/getGalleryThumbnail.js.map +0 -1
- package/build/utils/getLocalizedCategoryData.d.ts +0 -12
- package/build/utils/getLocalizedCategoryData.js +0 -34
- package/build/utils/getLocalizedCategoryData.js.map +0 -1
- package/build/utils/getNewsroomLogoUrl.d.ts +0 -5
- package/build/utils/getNewsroomLogoUrl.js +0 -30
- package/build/utils/getNewsroomLogoUrl.js.map +0 -1
- package/build/utils/getPrivacyPortalUrl.d.ts +0 -8
- package/build/utils/getPrivacyPortalUrl.js +0 -13
- package/build/utils/getPrivacyPortalUrl.js.map +0 -1
- package/build/utils/getStoryPublicationDate.d.ts +0 -3
- package/build/utils/getStoryPublicationDate.js +0 -14
- package/build/utils/getStoryPublicationDate.js.map +0 -1
- package/build/utils/getUploadcareGroupUrl.d.ts +0 -8
- package/build/utils/getUploadcareGroupUrl.js +0 -17
- package/build/utils/getUploadcareGroupUrl.js.map +0 -1
- package/build/utils/index.d.ts +0 -14
- package/build/utils/index.js +0 -31
- package/build/utils/index.js.map +0 -1
- package/build/utils/isEmbargoStory.d.ts +0 -6
- package/build/utils/isEmbargoStory.js +0 -9
- package/build/utils/isEmbargoStory.js.map +0 -1
- package/build/utils/isGalleryEmpty.d.ts +0 -2
- package/build/utils/isGalleryEmpty.js +0 -8
- package/build/utils/isGalleryEmpty.js.map +0 -1
- package/build/utils/sdkHelpers.d.ts +0 -32
- package/build/utils/sdkHelpers.js +0 -42
- package/build/utils/sdkHelpers.js.map +0 -1
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
2
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
3
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
4
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
5
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
6
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
7
|
+
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
8
|
+
/* eslint-disable @typescript-eslint/no-use-before-define */
|
|
9
|
+
|
|
10
|
+
import { ApiError, Category, NewsroomGallery, SortOrder, Stories, Story } from '@prezly/sdk';
|
|
11
|
+
export var stories;
|
|
12
|
+
export var allStories;
|
|
13
|
+
export var story;
|
|
14
|
+
export var galleries;
|
|
15
|
+
/**
|
|
16
|
+
* Sort order to list stories chronologically, with pinned stories on top.
|
|
17
|
+
*/
|
|
18
|
+
var CHRONOLOGICALLY = SortOrder.combine(SortOrder.desc('is_pinned'), SortOrder.desc('published_at'));
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Do not cache these methods, as they are derivatives of other cached methods.
|
|
22
|
+
*/
|
|
23
|
+
var UNCACHED_METHODS = ['themeSettings', 'language', 'usedLanguages', 'locales', 'defaultLanguage', 'defaultLocale', 'languageOrDefault', 'companyInformation', 'notifications', 'category', 'translatedCategory', 'translatedCategories'];
|
|
24
|
+
export function createClient(prezly, newsroomUuid, newsroomThemeUuid) {
|
|
25
|
+
var {
|
|
26
|
+
formats = [Story.FormatVersion.SLATEJS_V4],
|
|
27
|
+
cache
|
|
28
|
+
} = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
29
|
+
var client = {
|
|
30
|
+
newsroom() {
|
|
31
|
+
return prezly.newsrooms.get(newsroomUuid);
|
|
32
|
+
},
|
|
33
|
+
theme() {
|
|
34
|
+
return newsroomThemeUuid ? prezly.newsroomThemes.get(newsroomUuid, newsroomThemeUuid) : undefined;
|
|
35
|
+
},
|
|
36
|
+
themeSettings() {
|
|
37
|
+
return _asyncToGenerator(function* () {
|
|
38
|
+
var theme = yield client.theme();
|
|
39
|
+
return theme === null || theme === void 0 ? void 0 : theme.settings;
|
|
40
|
+
})();
|
|
41
|
+
},
|
|
42
|
+
languages() {
|
|
43
|
+
return prezly.newsroomLanguages.list(newsroomUuid).then(data => data.languages);
|
|
44
|
+
},
|
|
45
|
+
usedLanguages() {
|
|
46
|
+
return _asyncToGenerator(function* () {
|
|
47
|
+
var languages = yield client.languages();
|
|
48
|
+
return languages.filter(lang => lang.public_stories_count > 0);
|
|
49
|
+
})();
|
|
50
|
+
},
|
|
51
|
+
locales() {
|
|
52
|
+
return _asyncToGenerator(function* () {
|
|
53
|
+
var languages = yield client.languages();
|
|
54
|
+
return languages.map(lang => lang.code);
|
|
55
|
+
})();
|
|
56
|
+
},
|
|
57
|
+
defaultLanguage() {
|
|
58
|
+
return _asyncToGenerator(function* () {
|
|
59
|
+
var languages = yield client.languages();
|
|
60
|
+
var defaultLanguage = languages.find(lang => lang.is_default);
|
|
61
|
+
if (!defaultLanguage) {
|
|
62
|
+
throw new Error('A newsroom is expected to always have a default language. Something is wrong.');
|
|
63
|
+
}
|
|
64
|
+
return defaultLanguage;
|
|
65
|
+
})();
|
|
66
|
+
},
|
|
67
|
+
companyInformation(code) {
|
|
68
|
+
return _asyncToGenerator(function* () {
|
|
69
|
+
var languageSettings = code ? yield client.languageOrDefault(code) : yield client.defaultLanguage();
|
|
70
|
+
return languageSettings.company_information;
|
|
71
|
+
})();
|
|
72
|
+
},
|
|
73
|
+
notifications(locale) {
|
|
74
|
+
return _asyncToGenerator(function* () {
|
|
75
|
+
var languageSettings = yield client.languageOrDefault(locale);
|
|
76
|
+
return languageSettings.notifications;
|
|
77
|
+
})();
|
|
78
|
+
},
|
|
79
|
+
defaultLocale() {
|
|
80
|
+
return _asyncToGenerator(function* () {
|
|
81
|
+
var defaultLanguage = yield client.defaultLanguage();
|
|
82
|
+
return defaultLanguage.code;
|
|
83
|
+
})();
|
|
84
|
+
},
|
|
85
|
+
language(code) {
|
|
86
|
+
return _asyncToGenerator(function* () {
|
|
87
|
+
var languages = yield client.languages();
|
|
88
|
+
return languages.find(lang => !code && lang.is_default || lang.locale.code === code);
|
|
89
|
+
})();
|
|
90
|
+
},
|
|
91
|
+
languageOrDefault(code) {
|
|
92
|
+
return _asyncToGenerator(function* () {
|
|
93
|
+
var _yield$client$languag;
|
|
94
|
+
return (_yield$client$languag = yield client.language(code)) !== null && _yield$client$languag !== void 0 ? _yield$client$languag : yield client.defaultLanguage();
|
|
95
|
+
})();
|
|
96
|
+
},
|
|
97
|
+
categories() {
|
|
98
|
+
return prezly.newsroomCategories.list(newsroomUuid, {
|
|
99
|
+
sortOrder: '+order'
|
|
100
|
+
});
|
|
101
|
+
},
|
|
102
|
+
category(arg) {
|
|
103
|
+
return _asyncToGenerator(function* () {
|
|
104
|
+
var categories = yield client.categories();
|
|
105
|
+
if (typeof arg === 'number') {
|
|
106
|
+
return categories.find(category => category.id === arg);
|
|
107
|
+
}
|
|
108
|
+
return categories.find(category => Category.translations(category).some(translation => translation.slug === arg));
|
|
109
|
+
})();
|
|
110
|
+
},
|
|
111
|
+
translatedCategories(locale, categories) {
|
|
112
|
+
return _asyncToGenerator(function* () {
|
|
113
|
+
return Category.translations(categories !== null && categories !== void 0 ? categories : yield client.categories(), locale);
|
|
114
|
+
})();
|
|
115
|
+
},
|
|
116
|
+
translatedCategory(locale, slug) {
|
|
117
|
+
return _asyncToGenerator(function* () {
|
|
118
|
+
var translations = yield client.translatedCategories(locale);
|
|
119
|
+
return translations.find(category => category.slug === slug);
|
|
120
|
+
})();
|
|
121
|
+
},
|
|
122
|
+
featuredContacts() {
|
|
123
|
+
return prezly.newsroomContacts.search(newsroomUuid, {
|
|
124
|
+
query: {
|
|
125
|
+
is_featured: true
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
},
|
|
129
|
+
galleries() {
|
|
130
|
+
var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
131
|
+
var {
|
|
132
|
+
offset,
|
|
133
|
+
limit,
|
|
134
|
+
type
|
|
135
|
+
} = params;
|
|
136
|
+
return prezly.newsroomGalleries.search(newsroomUuid, {
|
|
137
|
+
limit,
|
|
138
|
+
offset,
|
|
139
|
+
scope: {
|
|
140
|
+
status: NewsroomGallery.Status.PUBLIC,
|
|
141
|
+
is_empty: false,
|
|
142
|
+
type
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
},
|
|
146
|
+
gallery(uuid) {
|
|
147
|
+
return _asyncToGenerator(function* () {
|
|
148
|
+
try {
|
|
149
|
+
return yield prezly.newsroomGalleries.get(newsroomUuid, uuid);
|
|
150
|
+
} catch (error) {
|
|
151
|
+
if (error instanceof ApiError && isNotAvailableError(error)) {
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
throw error;
|
|
155
|
+
}
|
|
156
|
+
})();
|
|
157
|
+
},
|
|
158
|
+
stories(params) {
|
|
159
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
160
|
+
var {
|
|
161
|
+
search,
|
|
162
|
+
query,
|
|
163
|
+
offset = 0,
|
|
164
|
+
limit,
|
|
165
|
+
category,
|
|
166
|
+
locale,
|
|
167
|
+
highlighted = 0
|
|
168
|
+
} = params;
|
|
169
|
+
var {
|
|
170
|
+
include = []
|
|
171
|
+
} = options;
|
|
172
|
+
var localeCode = locale && typeof locale === 'object' ? locale.code : locale;
|
|
173
|
+
return prezly.stories.search({
|
|
174
|
+
sortOrder: CHRONOLOGICALLY,
|
|
175
|
+
formats,
|
|
176
|
+
limit: offset === 0 ? limit + highlighted : limit,
|
|
177
|
+
offset: offset > 0 ? offset + highlighted : offset,
|
|
178
|
+
search,
|
|
179
|
+
query: mergeQueries(query, {
|
|
180
|
+
["category.id"]: category ? {
|
|
181
|
+
$any: [category.id]
|
|
182
|
+
} : undefined,
|
|
183
|
+
["newsroom.uuid"]: {
|
|
184
|
+
$in: [newsroomUuid]
|
|
185
|
+
},
|
|
186
|
+
["locale"]: localeCode ? {
|
|
187
|
+
$in: [localeCode]
|
|
188
|
+
} : undefined,
|
|
189
|
+
["status"]: {
|
|
190
|
+
$in: [Story.Status.PUBLISHED]
|
|
191
|
+
},
|
|
192
|
+
["visibility"]: {
|
|
193
|
+
$in: [Story.Visibility.PUBLIC]
|
|
194
|
+
}
|
|
195
|
+
}),
|
|
196
|
+
include
|
|
197
|
+
});
|
|
198
|
+
},
|
|
199
|
+
allStories() {
|
|
200
|
+
var _arguments = arguments;
|
|
201
|
+
return _asyncToGenerator(function* () {
|
|
202
|
+
var params = _arguments.length > 0 && _arguments[0] !== undefined ? _arguments[0] : {};
|
|
203
|
+
var options = _arguments.length > 1 && _arguments[1] !== undefined ? _arguments[1] : {};
|
|
204
|
+
var {
|
|
205
|
+
include = []
|
|
206
|
+
} = options;
|
|
207
|
+
var newsroom = yield client.newsroom();
|
|
208
|
+
var chunkSize = 200;
|
|
209
|
+
|
|
210
|
+
// Note: This is a counter of ALL stories, public, private, or drafts.
|
|
211
|
+
// Depending on the specific newsroom data, the rate of overfetching may be significant.
|
|
212
|
+
var maxStories = newsroom.stories_number;
|
|
213
|
+
var pages = Math.ceil(maxStories / chunkSize);
|
|
214
|
+
var promises = Array.from({
|
|
215
|
+
length: pages
|
|
216
|
+
}, (_, chunkIndex) => client.stories(_objectSpread(_objectSpread({}, params), {}, {
|
|
217
|
+
limit: chunkSize,
|
|
218
|
+
offset: chunkIndex * chunkSize
|
|
219
|
+
}), {
|
|
220
|
+
include
|
|
221
|
+
}));
|
|
222
|
+
return (yield Promise.all(promises)).flatMap(response => response.stories);
|
|
223
|
+
})();
|
|
224
|
+
},
|
|
225
|
+
story(params) {
|
|
226
|
+
var _arguments2 = arguments;
|
|
227
|
+
return _asyncToGenerator(function* () {
|
|
228
|
+
var options = _arguments2.length > 1 && _arguments2[1] !== undefined ? _arguments2[1] : {};
|
|
229
|
+
var {
|
|
230
|
+
include = []
|
|
231
|
+
} = options;
|
|
232
|
+
if (params.uuid) {
|
|
233
|
+
try {
|
|
234
|
+
return yield prezly.stories.get(params.uuid, {
|
|
235
|
+
formats,
|
|
236
|
+
include: [...Stories.EXTENDED_STORY_INCLUDED_EXTRA_FIELDS, ...include]
|
|
237
|
+
});
|
|
238
|
+
} catch (error) {
|
|
239
|
+
if (error instanceof ApiError && isNotAvailableError(error)) {
|
|
240
|
+
return null;
|
|
241
|
+
}
|
|
242
|
+
throw error;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
try {
|
|
246
|
+
return yield prezly.stories.getBySlug(params.slug, {
|
|
247
|
+
formats,
|
|
248
|
+
query: {
|
|
249
|
+
["newsroom.uuid"]: {
|
|
250
|
+
$in: [newsroomUuid]
|
|
251
|
+
},
|
|
252
|
+
["status"]: {
|
|
253
|
+
$in: [Story.Status.PUBLISHED, Story.Status.EMBARGO]
|
|
254
|
+
},
|
|
255
|
+
["visibility"]: {
|
|
256
|
+
$in: [Story.Visibility.PUBLIC, Story.Visibility.PRIVATE, Story.Visibility.EMBARGO]
|
|
257
|
+
}
|
|
258
|
+
},
|
|
259
|
+
include: [...Stories.EXTENDED_STORY_INCLUDED_EXTRA_FIELDS, ...include]
|
|
260
|
+
});
|
|
261
|
+
} catch (error) {
|
|
262
|
+
if (error instanceof ApiError && isNotAvailableError(error)) {
|
|
263
|
+
return null;
|
|
264
|
+
}
|
|
265
|
+
throw error;
|
|
266
|
+
}
|
|
267
|
+
})();
|
|
268
|
+
}
|
|
269
|
+
};
|
|
270
|
+
if (cache) {
|
|
271
|
+
injectCache(client, cache.storage.namespace("".concat(newsroomUuid, ":").concat(newsroomThemeUuid, ":").concat(formats.join(','), ":")), cache.latestVersion, UNCACHED_METHODS);
|
|
272
|
+
}
|
|
273
|
+
return client;
|
|
274
|
+
}
|
|
275
|
+
function injectCache(client, cache, latestVersion) {
|
|
276
|
+
var uncachedMethods = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
|
|
277
|
+
var methodCalls = new Map();
|
|
278
|
+
var methodNames = Object.keys(client);
|
|
279
|
+
methodNames.forEach(methodName => {
|
|
280
|
+
if (uncachedMethods.includes(methodName)) {
|
|
281
|
+
// Do not cache this method.
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
var uncachedFn = client[methodName].bind(client);
|
|
285
|
+
|
|
286
|
+
// eslint-disable-next-line no-param-reassign
|
|
287
|
+
client[methodName] = /*#__PURE__*/_asyncToGenerator(function* () {
|
|
288
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
289
|
+
args[_key] = arguments[_key];
|
|
290
|
+
}
|
|
291
|
+
var cacheKey = "".concat(methodName, ":").concat(JSON.stringify(args));
|
|
292
|
+
var dedupeKey = "".concat(latestVersion, ":").concat(cacheKey);
|
|
293
|
+
|
|
294
|
+
// Dedupe requests
|
|
295
|
+
var pending = methodCalls.get(dedupeKey);
|
|
296
|
+
if (pending) return pending;
|
|
297
|
+
function invoke() {
|
|
298
|
+
return _invoke.apply(this, arguments);
|
|
299
|
+
}
|
|
300
|
+
function _invoke() {
|
|
301
|
+
_invoke = _asyncToGenerator(function* () {
|
|
302
|
+
var cached = yield cache.get(cacheKey, latestVersion);
|
|
303
|
+
if (cached) return cached;
|
|
304
|
+
var value = yield uncachedFn(...args);
|
|
305
|
+
cache.set(cacheKey, value, latestVersion);
|
|
306
|
+
methodCalls.delete(dedupeKey);
|
|
307
|
+
return value;
|
|
308
|
+
});
|
|
309
|
+
return _invoke.apply(this, arguments);
|
|
310
|
+
}
|
|
311
|
+
var invokation = invoke();
|
|
312
|
+
methodCalls.set(dedupeKey, invokation);
|
|
313
|
+
return invokation;
|
|
314
|
+
});
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
function mergeQueries() {
|
|
318
|
+
for (var _len2 = arguments.length, queries = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
319
|
+
queries[_key2] = arguments[_key2];
|
|
320
|
+
}
|
|
321
|
+
var queryObjects = queries.filter(query => Boolean(query)).map(query => {
|
|
322
|
+
if (typeof query === 'string') {
|
|
323
|
+
return JSON.parse(query);
|
|
324
|
+
}
|
|
325
|
+
return query;
|
|
326
|
+
}).filter(query => Boolean(query)).filter(query => Object.keys(query).length > 0);
|
|
327
|
+
if (queryObjects.length === 0) {
|
|
328
|
+
return undefined;
|
|
329
|
+
}
|
|
330
|
+
if (queryObjects.length === 1) {
|
|
331
|
+
return queryObjects[0];
|
|
332
|
+
}
|
|
333
|
+
return {
|
|
334
|
+
$and: queryObjects
|
|
335
|
+
};
|
|
336
|
+
}
|
|
337
|
+
var ERROR_CODE_NOT_FOUND = 404;
|
|
338
|
+
var ERROR_CODE_FORBIDDEN = 403;
|
|
339
|
+
var ERROR_CODE_GONE = 410;
|
|
340
|
+
function isNotAvailableError(error) {
|
|
341
|
+
return error.status === ERROR_CODE_NOT_FOUND || error.status === ERROR_CODE_GONE || error.status === ERROR_CODE_FORBIDDEN;
|
|
342
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _exportNames = {
|
|
7
|
+
createSharedMemoryCache: true,
|
|
8
|
+
createStackedCache: true
|
|
9
|
+
};
|
|
10
|
+
Object.defineProperty(exports, "createSharedMemoryCache", {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function get() {
|
|
13
|
+
return _memory.createSharedMemoryCache;
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
Object.defineProperty(exports, "createStackedCache", {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
get: function get() {
|
|
19
|
+
return _stacked.createStackedCache;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
var _type = require("./type.cjs");
|
|
23
|
+
Object.keys(_type).forEach(function (key) {
|
|
24
|
+
if (key === "default" || key === "__esModule") return;
|
|
25
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
26
|
+
if (key in exports && exports[key] === _type[key]) return;
|
|
27
|
+
Object.defineProperty(exports, key, {
|
|
28
|
+
enumerable: true,
|
|
29
|
+
get: function get() {
|
|
30
|
+
return _type[key];
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
var _memory = require("./memory.cjs");
|
|
35
|
+
var _stacked = require("./stacked.cjs");
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createSharedMemoryCache = createSharedMemoryCache;
|
|
7
|
+
/* eslint-disable @typescript-eslint/no-use-before-define */
|
|
8
|
+
|
|
9
|
+
var RECORDS_LIMIT = 10000;
|
|
10
|
+
var GC_PROBABILITY = 1 / 100;
|
|
11
|
+
var CACHE = new Map();
|
|
12
|
+
function createSharedMemoryCache() {
|
|
13
|
+
var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
14
|
+
function gc() {
|
|
15
|
+
Array.from(CACHE.entries()).sort((_ref, _ref2) => {
|
|
16
|
+
var [, a] = _ref;
|
|
17
|
+
var [, b] = _ref2;
|
|
18
|
+
return cmp(a.accessed, b.accessed);
|
|
19
|
+
}).slice(RECORDS_LIMIT).forEach(_ref3 => {
|
|
20
|
+
var [key] = _ref3;
|
|
21
|
+
CACHE.delete("".concat(prefix).concat(key));
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
return {
|
|
25
|
+
get(key, latestVersion) {
|
|
26
|
+
var entry = CACHE.get(key);
|
|
27
|
+
if (!entry) {
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
if (entry.version < latestVersion) {
|
|
31
|
+
CACHE.delete(key);
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
var {
|
|
35
|
+
value,
|
|
36
|
+
version
|
|
37
|
+
} = entry;
|
|
38
|
+
CACHE.set(key, {
|
|
39
|
+
value,
|
|
40
|
+
version,
|
|
41
|
+
accessed: new Date().getTime()
|
|
42
|
+
});
|
|
43
|
+
return value;
|
|
44
|
+
},
|
|
45
|
+
set(key, value, version) {
|
|
46
|
+
var entry = {
|
|
47
|
+
value,
|
|
48
|
+
version,
|
|
49
|
+
accessed: new Date().getTime()
|
|
50
|
+
};
|
|
51
|
+
CACHE.set(key, entry);
|
|
52
|
+
if (CACHE.size > RECORDS_LIMIT && Math.random() < GC_PROBABILITY) {
|
|
53
|
+
gc();
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
namespace(namespace) {
|
|
57
|
+
return createSharedMemoryCache("".concat(prefix).concat(namespace, ":"));
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
function cmp(a, b) {
|
|
62
|
+
if (a === b) return 0;
|
|
63
|
+
return a < b ? -1 : 1;
|
|
64
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-use-before-define */
|
|
2
|
+
|
|
3
|
+
var RECORDS_LIMIT = 10000;
|
|
4
|
+
var GC_PROBABILITY = 1 / 100;
|
|
5
|
+
var CACHE = new Map();
|
|
6
|
+
export function createSharedMemoryCache() {
|
|
7
|
+
var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
8
|
+
function gc() {
|
|
9
|
+
Array.from(CACHE.entries()).sort((_ref, _ref2) => {
|
|
10
|
+
var [, a] = _ref;
|
|
11
|
+
var [, b] = _ref2;
|
|
12
|
+
return cmp(a.accessed, b.accessed);
|
|
13
|
+
}).slice(RECORDS_LIMIT).forEach(_ref3 => {
|
|
14
|
+
var [key] = _ref3;
|
|
15
|
+
CACHE.delete("".concat(prefix).concat(key));
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
return {
|
|
19
|
+
get(key, latestVersion) {
|
|
20
|
+
var entry = CACHE.get(key);
|
|
21
|
+
if (!entry) {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
if (entry.version < latestVersion) {
|
|
25
|
+
CACHE.delete(key);
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
var {
|
|
29
|
+
value,
|
|
30
|
+
version
|
|
31
|
+
} = entry;
|
|
32
|
+
CACHE.set(key, {
|
|
33
|
+
value,
|
|
34
|
+
version,
|
|
35
|
+
accessed: new Date().getTime()
|
|
36
|
+
});
|
|
37
|
+
return value;
|
|
38
|
+
},
|
|
39
|
+
set(key, value, version) {
|
|
40
|
+
var entry = {
|
|
41
|
+
value,
|
|
42
|
+
version,
|
|
43
|
+
accessed: new Date().getTime()
|
|
44
|
+
};
|
|
45
|
+
CACHE.set(key, entry);
|
|
46
|
+
if (CACHE.size > RECORDS_LIMIT && Math.random() < GC_PROBABILITY) {
|
|
47
|
+
gc();
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
namespace(namespace) {
|
|
51
|
+
return createSharedMemoryCache("".concat(prefix).concat(namespace, ":"));
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function cmp(a, b) {
|
|
56
|
+
if (a === b) return 0;
|
|
57
|
+
return a < b ? -1 : 1;
|
|
58
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createStackedCache = createStackedCache;
|
|
7
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
8
|
+
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
9
|
+
function createStackedCache(caches) {
|
|
10
|
+
return {
|
|
11
|
+
get(key, latestVersion) {
|
|
12
|
+
return _asyncToGenerator(function* () {
|
|
13
|
+
for (var i = 0; i < caches.length; i += 1) {
|
|
14
|
+
// eslint-disable-next-line no-await-in-loop
|
|
15
|
+
var value = yield caches[i].get(key, latestVersion);
|
|
16
|
+
if (value !== undefined) {
|
|
17
|
+
return value;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return undefined;
|
|
21
|
+
})();
|
|
22
|
+
},
|
|
23
|
+
set(key, value, version) {
|
|
24
|
+
return _asyncToGenerator(function* () {
|
|
25
|
+
yield Promise.all(caches.map(cache => cache.set(key, value, version)));
|
|
26
|
+
})();
|
|
27
|
+
},
|
|
28
|
+
namespace(namespace) {
|
|
29
|
+
return createStackedCache(caches.map(cache => cache.namespace(namespace)));
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
2
|
+
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
3
|
+
export function createStackedCache(caches) {
|
|
4
|
+
return {
|
|
5
|
+
get(key, latestVersion) {
|
|
6
|
+
return _asyncToGenerator(function* () {
|
|
7
|
+
for (var i = 0; i < caches.length; i += 1) {
|
|
8
|
+
// eslint-disable-next-line no-await-in-loop
|
|
9
|
+
var value = yield caches[i].get(key, latestVersion);
|
|
10
|
+
if (value !== undefined) {
|
|
11
|
+
return value;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return undefined;
|
|
15
|
+
})();
|
|
16
|
+
},
|
|
17
|
+
set(key, value, version) {
|
|
18
|
+
return _asyncToGenerator(function* () {
|
|
19
|
+
yield Promise.all(caches.map(cache => cache.set(key, value, version)));
|
|
20
|
+
})();
|
|
21
|
+
},
|
|
22
|
+
namespace(namespace) {
|
|
23
|
+
return createStackedCache(caches.map(cache => cache.namespace(namespace)));
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type UnixTimestampInSeconds = number;
|
|
2
|
+
type Awaitable<T> = T | Promise<T>;
|
|
3
|
+
export interface Cache {
|
|
4
|
+
get<T>(key: string, latestVersion: UnixTimestampInSeconds): Awaitable<T | undefined>;
|
|
5
|
+
set<T>(key: string, value: T, version: UnixTimestampInSeconds): Awaitable<void>;
|
|
6
|
+
namespace(namespace: string): Cache;
|
|
7
|
+
}
|
|
8
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _index = require("./cache/index.cjs");
|
|
7
|
+
Object.keys(_index).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _index[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function get() {
|
|
13
|
+
return _index[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _ContentDelivery = require("./ContentDelivery.cjs");
|
|
18
|
+
Object.keys(_ContentDelivery).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _ContentDelivery[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function get() {
|
|
24
|
+
return _ContentDelivery[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export *
|
|
1
|
+
export * from './cache';
|
|
2
|
+
export * from './ContentDelivery';
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.combine = combine;
|
|
7
|
+
var _parseDataUrl = _interopRequireDefault(require("parse-data-url"));
|
|
8
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
10
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
11
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
12
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
13
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } /* eslint-disable @typescript-eslint/no-use-before-define */
|
|
14
|
+
function combine(vars, httpEnvHeader) {
|
|
15
|
+
if (httpEnvHeader) {
|
|
16
|
+
var httpEnv = decodeHttpEnvHeader(httpEnvHeader);
|
|
17
|
+
return _objectSpread(_objectSpread({}, vars), httpEnv);
|
|
18
|
+
}
|
|
19
|
+
return _objectSpread({}, vars);
|
|
20
|
+
}
|
|
21
|
+
function decodeHttpEnvHeader(header) {
|
|
22
|
+
if (header.startsWith('data:')) {
|
|
23
|
+
var parsed = (0, _parseDataUrl.default)(header);
|
|
24
|
+
if (parsed && parsed.contentType === 'application/json') {
|
|
25
|
+
var data = parsed.toBuffer().toString('utf-8');
|
|
26
|
+
return decodeJson(data);
|
|
27
|
+
}
|
|
28
|
+
return {}; // unsupported data-uri
|
|
29
|
+
}
|
|
30
|
+
return decodeJson(header);
|
|
31
|
+
}
|
|
32
|
+
function decodeJson(json) {
|
|
33
|
+
try {
|
|
34
|
+
var decoded = JSON.parse(json);
|
|
35
|
+
if (decoded && typeof decoded === 'object') {
|
|
36
|
+
return decoded;
|
|
37
|
+
}
|
|
38
|
+
} catch (_unused) {
|
|
39
|
+
// passthru
|
|
40
|
+
}
|
|
41
|
+
return {};
|
|
42
|
+
}
|