@paroicms/public-server-lib 0.33.0 → 0.34.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/dist/index.d.ts CHANGED
@@ -5,5 +5,4 @@ export * from "./html-helpers/html-helpers.js";
5
5
  export * from "./obfuscate.helper.js";
6
6
  export * from "./server-image-cache-engine.helper.js";
7
7
  export * from "./simple-i18n.js";
8
- export * from "./url.helpers.js";
9
8
  export * from "./vite-config.helper.js";
package/dist/index.js CHANGED
@@ -4,6 +4,5 @@ export * from "./html-helpers/html-helpers.js";
4
4
  export * from "./obfuscate.helper.js";
5
5
  export * from "./server-image-cache-engine.helper.js";
6
6
  export * from "./simple-i18n.js";
7
- export * from "./url.helpers.js";
8
7
  export * from "./vite-config.helper.js";
9
8
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uCAAuC,CAAC;AACtD,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uCAAuC,CAAC;AACtD,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC"}
@@ -1,5 +1,18 @@
1
- import { type ImageSize, type VariantName } from "@paroicms/public-anywhere-lib";
2
- export declare function isImageSize(imageSize: string): imageSize is ImageSize;
3
- export declare function isVariantName(variantName: string): variantName is VariantName;
1
+ import { type ResizeRule, type SizeName } from "@paroicms/public-anywhere-lib";
4
2
  export declare function generateImageSlug(fromName?: string): string | undefined;
5
- export declare function applyRatioToImageSize(imageSize: ImageSize, pixelRatio: number): ImageSize;
3
+ export declare function applyPixelRatioToSizeName(renderedSizeName: SizeName, pixelRatio: number): SizeName;
4
+ export declare function applyPixelRatioToResizeRule(renderedResizeRule: ResizeRule, pixelRatio: number): ResizeRule;
5
+ export declare function rawToRenderedSize(rawResizeR: {
6
+ rawWidth: number;
7
+ rawHeight: number;
8
+ }, pixelRatio: number): {
9
+ width: number;
10
+ height: number;
11
+ };
12
+ export declare function renderedToRawSize(renderedSize: {
13
+ width: number;
14
+ height: number;
15
+ }, pixelRatio: number): {
16
+ rawWidth: number;
17
+ rawHeight: number;
18
+ };
@@ -1,18 +1,15 @@
1
1
  import { nbVal } from "@paroi/data-formatters-lib";
2
2
  import { generateSlug } from "@paroicms/public-anywhere-lib";
3
- export function isImageSize(imageSize) {
4
- return /^[0-9]+x|x[0-9]+|x[0-9]+x|[0-9]+x[0-9]+$/.test(imageSize);
5
- }
6
- export function isVariantName(variantName) {
7
- return /^[0-9]+x[0-9]+$/.test(variantName);
8
- }
9
3
  export function generateImageSlug(fromName) {
10
4
  if (!fromName)
11
5
  return;
12
6
  return generateSlug(fromName).substring(0, 12).replace(/-$/g, "");
13
7
  }
14
- export function applyRatioToImageSize(imageSize, pixelRatio) {
15
- const splitted = imageSize.split("x");
8
+ export function applyPixelRatioToSizeName(renderedSizeName, pixelRatio) {
9
+ return applyPixelRatioToResizeRule(renderedSizeName, pixelRatio);
10
+ }
11
+ export function applyPixelRatioToResizeRule(renderedResizeRule, pixelRatio) {
12
+ const splitted = renderedResizeRule.split("x");
16
13
  if (splitted.length === 3) {
17
14
  const value = splitted[1];
18
15
  splitted[1] = `${Math.round(nbVal(value) * pixelRatio)}`;
@@ -27,4 +24,14 @@ export function applyRatioToImageSize(imageSize, pixelRatio) {
27
24
  }
28
25
  return splitted.join("x");
29
26
  }
27
+ export function rawToRenderedSize(rawResizeR, pixelRatio) {
28
+ const width = Math.round(rawResizeR.rawWidth / pixelRatio);
29
+ const height = Math.round(rawResizeR.rawHeight / pixelRatio);
30
+ return { width, height };
31
+ }
32
+ export function renderedToRawSize(renderedSize, pixelRatio) {
33
+ const rawWidth = Math.round(renderedSize.width * pixelRatio);
34
+ const rawHeight = Math.round(renderedSize.height * pixelRatio);
35
+ return { rawWidth, rawHeight };
36
+ }
30
37
  //# sourceMappingURL=server-image-cache-engine.helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server-image-cache-engine.helper.js","sourceRoot":"","sources":["../src/server-image-cache-engine.helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAoC,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE/F,MAAM,UAAU,WAAW,CAAC,SAAiB;IAC3C,OAAO,0CAA0C,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,WAAmB;IAC/C,OAAO,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAiB;IACjD,IAAI,CAAC,QAAQ;QAAE,OAAO;IACtB,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,SAAoB,EAAE,UAAkB;IAC5E,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEtC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1B,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC;IAC3D,CAAC;SAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE3B,IAAI,MAAM,KAAK,EAAE;YAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC;QAC7E,IAAI,KAAK,KAAK,EAAE;YAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC;IAC7E,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAc,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"server-image-cache-engine.helper.js","sourceRoot":"","sources":["../src/server-image-cache-engine.helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAkC,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7F,MAAM,UAAU,iBAAiB,CAAC,QAAiB;IACjD,IAAI,CAAC,QAAQ;QAAE,OAAO;IACtB,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,gBAA0B,EAC1B,UAAkB;IAElB,OAAO,2BAA2B,CAAC,gBAAgB,EAAE,UAAU,CAAa,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,kBAA8B,EAC9B,UAAkB;IAElB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE/C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1B,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC;IAC3D,CAAC;SAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE3B,IAAI,MAAM,KAAK,EAAE;YAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC;QAC7E,IAAI,KAAK,KAAK,EAAE;YAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC;IAC7E,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAe,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,UAAmD,EACnD,UAAkB;IAElB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC;IAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,YAA+C,EAC/C,UAAkB;IAElB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;IAC/D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AACjC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paroicms/public-server-lib",
3
- "version": "0.33.0",
3
+ "version": "0.34.1",
4
4
  "description": "Common utilitaries for paroicms plugins (backend side).",
5
5
  "author": "Paroi Team",
6
6
  "repository": {
@@ -15,21 +15,20 @@
15
15
  "scripts": {
16
16
  "build": "tsc",
17
17
  "test": "vitest",
18
- "test:run": "vitest run",
18
+ "test:once": "vitest run",
19
19
  "clear": "rimraf dist/*",
20
20
  "dev": "tsc --watch --preserveWatchOutput"
21
21
  },
22
22
  "dependencies": {
23
23
  "@paroi/data-formatters-lib": "~0.4.0",
24
- "@paroicms/internal-anywhere-lib": "1.28.0",
25
- "@paroicms/public-anywhere-lib": "0.22.0",
26
- "@types/express": "~4.17.21"
24
+ "@paroicms/internal-anywhere-lib": "1.29.1",
25
+ "@paroicms/public-anywhere-lib": "0.23.1"
27
26
  },
28
27
  "devDependencies": {
29
- "@types/node": "~22.14.1",
28
+ "@types/node": "~24.0.1",
30
29
  "rimraf": "~6.0.1",
31
30
  "typescript": "~5.8.3",
32
- "vitest": "~3.1.1"
31
+ "vitest": "~3.2.3"
33
32
  },
34
33
  "files": [
35
34
  "dist",
@@ -1,14 +1,18 @@
1
1
  import type { Obj } from "@paroi/data-formatters-lib";
2
2
  import type {
3
- ImageSize,
4
3
  JsonFieldValue,
4
+ MImageVariant,
5
+ MSourceImage,
6
+ MSourceMedia,
5
7
  ParsedNodelId,
6
8
  ReadFieldValue,
9
+ ResizeRule,
7
10
  ScFieldDataType,
8
11
  ScSiteSchema,
9
12
  SiteIds,
10
13
  ThemeConf,
11
14
  UpdateLabelingFieldValue,
15
+ WithAttachedData,
12
16
  } from "@paroicms/public-anywhere-lib";
13
17
  import type Stream from "node:stream";
14
18
 
@@ -96,10 +100,13 @@ export interface BackendPluginInitService {
96
100
  pluginAssetsUrl: string;
97
101
  }
98
102
 
99
- export type BackendHookHandler = (service: BackendPluginService, params: any) => any;
103
+ export type BackendHookHandler = (
104
+ service: BackendPluginService,
105
+ params: any,
106
+ ) => Promise<unknown> | unknown;
100
107
 
101
108
  export type PluginLiquidFilterHandler = (
102
- service: BackendPluginRenderService,
109
+ service: PluginRenderingService,
103
110
  value: unknown,
104
111
  options: {
105
112
  /**
@@ -110,18 +117,18 @@ export type PluginLiquidFilterHandler = (
110
117
  },
111
118
  ) => string | Promise<string>;
112
119
 
113
- export type PublicApiHandler = (
114
- service: BackendPluginRenderService,
115
- httpContext: PaHttpContext,
116
- relativePath: string,
117
- ) => Promise<void> | void;
118
-
119
120
  export type FieldPreprocessor = (
120
- service: BackendPluginRenderService,
121
+ service: PluginRenderingService,
121
122
  value: ReadFieldValue,
122
123
  options: FieldPreprocessorOptions,
123
124
  ) => ReadFieldValue | undefined | Promise<ReadFieldValue | undefined>;
124
125
 
126
+ export type PublicApiHandler = (
127
+ service: BackendPluginService,
128
+ httpContext: PaHttpContext,
129
+ relativePath: string,
130
+ ) => Promise<void> | void;
131
+
125
132
  export interface BackendPluginService {
126
133
  fqdn: string;
127
134
  siteUrl: string;
@@ -130,12 +137,38 @@ export interface BackendPluginService {
130
137
  logger: AppLogger;
131
138
  validateRecaptchaResponse: (gRecaptchaResponse: string | undefined) => Promise<boolean>;
132
139
  sendMail: ({ subject, html, replyTo, to }: MailData) => Promise<void>;
133
- executeHook<T = unknown>(hookName: string, params?: any): T[];
140
+ executeHook(hookName: string, params?: any): Promise<unknown[]>;
134
141
  registeredSite: RegisteredSite;
135
142
  configuration: PluginConfiguration;
136
143
  pluginAssetsUrl: string;
137
144
  /** This is the connector of the running instance of ParoiCMS. */
138
145
  connector: RunningInstanceConnector;
146
+ getSiteFieldValue: (options: {
147
+ fieldName: string;
148
+ language?: string;
149
+ }) => Promise<ReadFieldValue | undefined>;
150
+ getMedia: (
151
+ sel: { mediaId: string } | { handle: string },
152
+ options?: {
153
+ absoluteUrl?: boolean;
154
+ withAttachedData?: WithAttachedData;
155
+ },
156
+ ) => Promise<MSourceMedia | undefined>;
157
+ useUnversionedImage: (
158
+ /** An image or a `mediaId` */
159
+ image: MSourceImage | string,
160
+ /** Must be listed in the theme configuration */
161
+ resizeRule: ResizeRule,
162
+ options?: {
163
+ pixelRatio?: number;
164
+ absoluteUrl?: boolean;
165
+ },
166
+ ) => Promise<MImageVariant | undefined>;
167
+ openRenderingService: (options: {
168
+ language: string;
169
+ /** This will be used for generating a cache key, so it has to be unique for the rendering. */
170
+ urlLike: string;
171
+ }) => Promise<PluginRenderingService>;
139
172
  }
140
173
 
141
174
  export interface NewSiteOptions {
@@ -145,11 +178,9 @@ export interface NewSiteOptions {
145
178
  version?: string;
146
179
  }
147
180
 
148
- export interface BackendPluginRenderService extends BackendPluginService {
149
- getSiteFieldValue: (options: {
150
- fieldName: string;
151
- language?: string;
152
- }) => Promise<ReadFieldValue | undefined>;
181
+ export interface PluginRenderingService {
182
+ pluginService: BackendPluginService;
183
+ language: string;
153
184
  renderChildPartials(
154
185
  ctx: PaHttpContext,
155
186
  options: {
@@ -168,8 +199,20 @@ export interface BackendPluginRenderService extends BackendPluginService {
168
199
  templateName: string;
169
200
  },
170
201
  ): Promise<void>;
171
- useImage: (options: { imageUid: string; size: ImageSize }) => Promise<UsedImage>;
202
+
203
+ useImage: (
204
+ /** An image or a `mediaId` */
205
+ image: MSourceImage | string,
206
+ resizeRule: ResizeRule,
207
+ options?: {
208
+ pixelRatio?: number;
209
+ absoluteUrl?: boolean;
210
+ },
211
+ ) => Promise<MImageVariant | undefined>;
212
+
172
213
  getDocument: (documentId: string) => Promise<PublicDocument | undefined>;
214
+
215
+ close(): Promise<void>;
173
216
  }
174
217
 
175
218
  export interface LabeledBy {
@@ -189,13 +232,6 @@ export interface PublicDocument {
189
232
  publishDate: string;
190
233
  }
191
234
 
192
- export interface UsedImage {
193
- url: string;
194
- width: number;
195
- height: number;
196
- mediaType: string;
197
- }
198
-
199
235
  export interface FieldPreprocessorOptions {
200
236
  absoluteUrls?: boolean;
201
237
  outputType?: "plainText";
@@ -232,7 +268,6 @@ export interface AppLogger {
232
268
 
233
269
  export interface PartialsParamsInput {
234
270
  templateName: string;
235
- documentId: string;
236
271
  offset: string;
237
272
  limit: string;
238
273
  }
@@ -271,9 +306,11 @@ export interface SubDomainSitePackConfiguration extends SitePackConfigurationBas
271
306
  parentDomain: string;
272
307
  }
273
308
 
309
+ /* Running instance types */
310
+
274
311
  export interface RunningInstanceConnector {
275
312
  getSitePackConf(packName: string): SitePackConfiguration;
276
- loadSiteSchemaAndIds(fqdn: string): Promise<SiteSchemaAndIds>;
313
+ loadSiteSchemaAndIds(fqdn: string): Promise<RiSiteSchemaAndIds>;
277
314
  createAccount(
278
315
  fqdn: string,
279
316
  account: RiNewAccount,
@@ -305,7 +342,7 @@ export interface RunningInstanceConnector {
305
342
  removeSite: (fqdn: string) => Promise<void>;
306
343
  }
307
344
 
308
- export interface SiteSchemaAndIds {
345
+ export interface RiSiteSchemaAndIds {
309
346
  siteSchema: ScSiteSchema;
310
347
  siteIds: SiteIds;
311
348
  }
@@ -1,40 +0,0 @@
1
- import type { VariantName } from "@paroicms/public-anywhere-lib";
2
- import type { BackendPluginService } from "../types/backend-plugin-types.d.ts";
3
- export interface MakeUrlOptions {
4
- protocol: "http" | "https";
5
- fqdn: string;
6
- port?: number;
7
- path?: string;
8
- }
9
- export declare function makeUrl({ path, fqdn, protocol, port }: MakeUrlOptions): string;
10
- export interface UrlOfMediaFileValues {
11
- mediaUid: string;
12
- mediaType: string;
13
- originalName: string | undefined;
14
- absoluteUrl?: boolean;
15
- }
16
- export declare function makeUrlOfMediaFile(service: Pick<BackendPluginService, "siteUrl">, values: UrlOfMediaFileValues): string;
17
- export declare function makeUrlOfMediaFile(service: Pick<BackendPluginService, "siteUrl">, values: UrlOfMediaFileValues, options: {
18
- returnObj: true;
19
- }): {
20
- url: string;
21
- fileName: string;
22
- };
23
- export interface UrlOfImageVariantValues {
24
- mediaUid: string;
25
- mediaType: string;
26
- variantName: VariantName;
27
- resourceVersion: string | undefined;
28
- slug: string | undefined;
29
- absoluteUrl?: boolean;
30
- }
31
- export declare function makeUrlOfImageVariant(service: Pick<BackendPluginService, "siteUrl">, values: UrlOfImageVariantValues): string;
32
- export declare function makeUrlOfImageVariant(service: Pick<BackendPluginService, "siteUrl">, values: UrlOfImageVariantValues, options: {
33
- returnObj: true;
34
- }): {
35
- url: string;
36
- fileName: string;
37
- };
38
- export declare function fileExtensionOf(mediaType: string): string;
39
- export declare function toAbsoluteUrl(service: Pick<BackendPluginService, "siteUrl">, url: string): string;
40
- export declare function makeFeedUrl(service: Pick<BackendPluginService, "siteSchema" | "siteUrl">, language?: string): string;
@@ -1,44 +0,0 @@
1
- export function makeUrl({ path, fqdn, protocol, port }) {
2
- const portPart = port === undefined || port === 80 ? "" : `:${port}`;
3
- return `${protocol}://${fqdn}${portPart}${path ?? ""}`;
4
- }
5
- export function makeUrlOfMediaFile(service, values, options) {
6
- const { mediaUid, mediaType, originalName, absoluteUrl } = values;
7
- const fileName = `${originalName ?? "unamed"}${fileExtensionOf(mediaType)}`;
8
- const relUrl = `/medias/${encodeURIComponent(mediaUid)}/file/${encodeURIComponent(fileName)}`;
9
- const url = absoluteUrl ? toAbsoluteUrl(service, relUrl) : relUrl;
10
- return options?.returnObj ? { url, fileName } : url;
11
- }
12
- export function makeUrlOfImageVariant(service, values, options) {
13
- const { mediaUid, mediaType, variantName, slug, resourceVersion, absoluteUrl } = values;
14
- const fileName = `${slug ?? "unamed"}-${variantName}${fileExtensionOf(mediaType)}`;
15
- let relUrl;
16
- if (resourceVersion) {
17
- relUrl = `/medias/${encodeURIComponent(mediaUid)}/image/${encodeURIComponent(resourceVersion)}/${encodeURIComponent(fileName)}`;
18
- }
19
- else {
20
- relUrl = `/medias/${encodeURIComponent(mediaUid)}/image/${encodeURIComponent(fileName)}`;
21
- }
22
- const url = absoluteUrl ? toAbsoluteUrl(service, relUrl) : relUrl;
23
- return options?.returnObj ? { url, fileName } : url;
24
- }
25
- export function fileExtensionOf(mediaType) {
26
- if (mediaType === "image/svg+xml")
27
- return ".svg";
28
- const regexMatchArray = mediaType.match(/\w+\/([-+.\w]+)/);
29
- if (!regexMatchArray) {
30
- throw new Error("media extension is incorrect.");
31
- }
32
- return `.${regexMatchArray[1]}`;
33
- }
34
- export function toAbsoluteUrl(service, url) {
35
- return url.startsWith("/") ? `${service.siteUrl}${url}` : url;
36
- }
37
- export function makeFeedUrl(service, language) {
38
- const isMultilingual = service.siteSchema.isMultilingual;
39
- if (isMultilingual && !language) {
40
- throw new Error("language is required for multilingual site");
41
- }
42
- return toAbsoluteUrl(service, isMultilingual ? `/${language}/feed` : "/feed");
43
- }
44
- //# sourceMappingURL=url.helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"url.helpers.js","sourceRoot":"","sources":["../src/url.helpers.ts"],"names":[],"mappings":"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"}