@paroicms/public-server-lib 0.12.3 → 0.14.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/dist/index.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  export type * from "../types/backend-plugin-types";
2
- export type * from "../types/plugin-site-context-types";
3
2
  export * from "./html-helpers/html-helpers";
4
3
  export * from "./obfuscate.helper";
5
4
  export * from "./server-image-cache-engine.helper";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAEA,8DAA4C;AAC5C,qDAAmC;AACnC,qEAAmD;AACnD,gDAA8B;AAC9B,gDAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,8DAA4C;AAC5C,qDAAmC;AACnC,qEAAmD;AACnD,gDAA8B;AAC9B,gDAA8B"}
@@ -1,4 +1,4 @@
1
- import type { AppLog } from "../types/plugin-site-context-types";
1
+ import type { AppLog } from "../types/backend-plugin-types";
2
2
  export interface SimpleTranslator {
3
3
  translate: (options: SimpleTranslateOptions) => string;
4
4
  }
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createSimpleTranslator = createSimpleTranslator;
4
+ const data_formatters_lib_1 = require("@paroi/data-formatters-lib");
4
5
  const promises_1 = require("node:fs/promises");
5
6
  const node_path_1 = require("node:path");
6
- const data_formatters_lib_1 = require("@paroi/data-formatters-lib");
7
7
  async function createSimpleTranslator(options) {
8
8
  const labels = await loadLabels(options);
9
9
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"simple-i18n.js","sourceRoot":"","sources":["../src/simple-i18n.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"simple-i18n.js","sourceRoot":"","sources":["../src/simple-i18n.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { VariantName } from "@paroicms/public-anywhere-lib";
2
- import type { PluginSiteContext } from "../types/plugin-site-context-types";
2
+ import type { BackendPluginService } from "../types/backend-plugin-types";
3
3
  export interface GetBoUrlOptions {
4
4
  path?: string;
5
5
  publicProtocol: string;
@@ -13,8 +13,8 @@ export interface UrlOfMediaFileValues {
13
13
  originalName: string | undefined;
14
14
  absoluteUrl?: boolean;
15
15
  }
16
- export declare function makeUrlOfMediaFile(siteContext: Pick<PluginSiteContext, "siteUrl">, values: UrlOfMediaFileValues): string;
17
- export declare function makeUrlOfMediaFile(siteContext: Pick<PluginSiteContext, "siteUrl">, values: UrlOfMediaFileValues, options: {
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
18
  returnObj: true;
19
19
  }): {
20
20
  url: string;
@@ -28,13 +28,13 @@ export interface UrlOfImageVariantValues {
28
28
  slug: string | undefined;
29
29
  absoluteUrl?: boolean;
30
30
  }
31
- export declare function makeUrlOfImageVariant(siteContext: Pick<PluginSiteContext, "siteUrl">, values: UrlOfImageVariantValues): string;
32
- export declare function makeUrlOfImageVariant(siteContext: Pick<PluginSiteContext, "siteUrl">, values: UrlOfImageVariantValues, options: {
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
33
  returnObj: true;
34
34
  }): {
35
35
  url: string;
36
36
  fileName: string;
37
37
  };
38
38
  export declare function fileExtensionOf(mediaType: string): string;
39
- export declare function toAbsoluteUrl(siteContext: Pick<PluginSiteContext, "siteUrl">, url: string): string;
40
- export declare function makeFeedUrl(siteContext: Pick<PluginSiteContext, "siteSchema" | "siteUrl">, language?: 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;
@@ -9,14 +9,14 @@ exports.makeFeedUrl = makeFeedUrl;
9
9
  function getBoUrl({ path, fqdn, publicProtocol, boPort }) {
10
10
  return `${publicProtocol}://${fqdn}${boPort === 80 ? "" : `:${boPort}`}${path ?? ""}`;
11
11
  }
12
- function makeUrlOfMediaFile(siteContext, values, options) {
12
+ function makeUrlOfMediaFile(service, values, options) {
13
13
  const { mediaUid, mediaType, originalName, absoluteUrl } = values;
14
14
  const fileName = `${originalName ?? "unamed"}${fileExtensionOf(mediaType)}`;
15
15
  const relUrl = `/medias/${encodeURIComponent(mediaUid)}/file/${encodeURIComponent(fileName)}`;
16
- const url = absoluteUrl ? toAbsoluteUrl(siteContext, relUrl) : relUrl;
16
+ const url = absoluteUrl ? toAbsoluteUrl(service, relUrl) : relUrl;
17
17
  return options?.returnObj ? { url, fileName } : url;
18
18
  }
19
- function makeUrlOfImageVariant(siteContext, values, options) {
19
+ function makeUrlOfImageVariant(service, values, options) {
20
20
  const { mediaUid, mediaType, variantName, slug, resourceVersion, absoluteUrl } = values;
21
21
  const fileName = `${slug ?? "unamed"}-${variantName}${fileExtensionOf(mediaType)}`;
22
22
  let relUrl;
@@ -26,7 +26,7 @@ function makeUrlOfImageVariant(siteContext, values, options) {
26
26
  else {
27
27
  relUrl = `/medias/${encodeURIComponent(mediaUid)}/image/${encodeURIComponent(fileName)}`;
28
28
  }
29
- const url = absoluteUrl ? toAbsoluteUrl(siteContext, relUrl) : relUrl;
29
+ const url = absoluteUrl ? toAbsoluteUrl(service, relUrl) : relUrl;
30
30
  return options?.returnObj ? { url, fileName } : url;
31
31
  }
32
32
  function fileExtensionOf(mediaType) {
@@ -36,14 +36,14 @@ function fileExtensionOf(mediaType) {
36
36
  }
37
37
  return `.${regexMatchArray[1]}`;
38
38
  }
39
- function toAbsoluteUrl(siteContext, url) {
40
- return url.startsWith("/") ? `${siteContext.siteUrl}${url}` : url;
39
+ function toAbsoluteUrl(service, url) {
40
+ return url.startsWith("/") ? `${service.siteUrl}${url}` : url;
41
41
  }
42
- function makeFeedUrl(siteContext, language) {
43
- const isMultilingual = siteContext.siteSchema.isMultilingual;
42
+ function makeFeedUrl(service, language) {
43
+ const isMultilingual = service.siteSchema.isMultilingual;
44
44
  if (isMultilingual && !language) {
45
45
  throw new Error("language is required for multilingual site");
46
46
  }
47
- return toAbsoluteUrl(siteContext, isMultilingual ? `/${language}/feed` : "/feed");
47
+ return toAbsoluteUrl(service, isMultilingual ? `/${language}/feed` : "/feed");
48
48
  }
49
49
  //# sourceMappingURL=url.helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"url.helpers.js","sourceRoot":"","sources":["../src/url.helpers.ts"],"names":[],"mappings":";;AAUA,4BAEC;AAkBD,gDAYC;AAoBD,sDAmBC;AAED,0CAQC;AAED,sCAEC;AAED,kCASC;AAhGD,SAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAmB;IAC9E,OAAO,GAAG,cAAc,MAAM,IAAI,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;AACxF,CAAC;AAkBD,SAAgB,kBAAkB,CAChC,WAA+C,EAC/C,MAA4B,EAC5B,OAAiC;IAEjC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAClE,MAAM,QAAQ,GAAG,GAAG,YAAY,IAAI,QAAQ,GAAG,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;IAE5E,MAAM,MAAM,GAAG,WAAW,kBAAkB,CAAC,QAAQ,CAAC,SAAS,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;IAE9F,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACtE,OAAO,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AACtD,CAAC;AAoBD,SAAgB,qBAAqB,CACnC,WAA+C,EAC/C,MAA+B,EAC/B,OAAiC;IAEjC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAExF,MAAM,QAAQ,GAAG,GAAG,IAAI,IAAI,QAAQ,IAAI,WAAW,GAAG,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;IACnF,IAAI,MAAc,CAAC;IACnB,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,GAAG,WAAW,kBAAkB,CAAC,QAAQ,CAAC,UAAU,kBAAkB,CAC1E,eAAe,CAChB,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,WAAW,kBAAkB,CAAC,QAAQ,CAAC,UAAU,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC3F,CAAC;IAED,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACtE,OAAO,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AACtD,CAAC;AAED,SAAgB,eAAe,CAAC,SAAiB;IAC/C,MAAM,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAE3D,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;AAClC,CAAC;AAED,SAAgB,aAAa,CAAC,WAA+C,EAAE,GAAW;IACxF,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AACpE,CAAC;AAED,SAAgB,WAAW,CACzB,WAA8D,EAC9D,QAAiB;IAEjB,MAAM,cAAc,GAAG,WAAW,CAAC,UAAU,CAAC,cAAc,CAAC;IAC7D,IAAI,cAAc,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,aAAa,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,QAAQ,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AACpF,CAAC"}
1
+ {"version":3,"file":"url.helpers.js","sourceRoot":"","sources":["../src/url.helpers.ts"],"names":[],"mappings":";;AAUA,4BAEC;AAkBD,gDAYC;AAoBD,sDAmBC;AAED,0CAQC;AAED,sCAEC;AAED,kCASC;AAhGD,SAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAmB;IAC9E,OAAO,GAAG,cAAc,MAAM,IAAI,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;AACxF,CAAC;AAkBD,SAAgB,kBAAkB,CAChC,OAA8C,EAC9C,MAA4B,EAC5B,OAAiC;IAEjC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAClE,MAAM,QAAQ,GAAG,GAAG,YAAY,IAAI,QAAQ,GAAG,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;IAE5E,MAAM,MAAM,GAAG,WAAW,kBAAkB,CAAC,QAAQ,CAAC,SAAS,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;IAE9F,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAClE,OAAO,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AACtD,CAAC;AAoBD,SAAgB,qBAAqB,CACnC,OAA8C,EAC9C,MAA+B,EAC/B,OAAiC;IAEjC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAExF,MAAM,QAAQ,GAAG,GAAG,IAAI,IAAI,QAAQ,IAAI,WAAW,GAAG,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;IACnF,IAAI,MAAc,CAAC;IACnB,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,GAAG,WAAW,kBAAkB,CAAC,QAAQ,CAAC,UAAU,kBAAkB,CAC1E,eAAe,CAChB,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,WAAW,kBAAkB,CAAC,QAAQ,CAAC,UAAU,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC3F,CAAC;IAED,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAClE,OAAO,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AACtD,CAAC;AAED,SAAgB,eAAe,CAAC,SAAiB;IAC/C,MAAM,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAE3D,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;AAClC,CAAC;AAED,SAAgB,aAAa,CAAC,OAA8C,EAAE,GAAW;IACvF,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AAChE,CAAC;AAED,SAAgB,WAAW,CACzB,OAA6D,EAC7D,QAAiB;IAEjB,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC;IACzD,IAAI,cAAc,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,aAAa,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,QAAQ,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAChF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paroicms/public-server-lib",
3
- "version": "0.12.3",
3
+ "version": "0.14.0",
4
4
  "description": "Common utilitaries for paroicms plugins (backend side).",
5
5
  "author": "Paroi Team",
6
6
  "repository": {
@@ -21,8 +21,8 @@
21
21
  },
22
22
  "dependencies": {
23
23
  "@paroi/data-formatters-lib": "~0.4.0",
24
- "@paroicms/internal-anywhere-lib": "1.18.4",
25
- "@paroicms/public-anywhere-lib": "0.6.0",
24
+ "@paroicms/internal-anywhere-lib": "1.18.6",
25
+ "@paroicms/public-anywhere-lib": "0.8.0",
26
26
  "@types/express": "*"
27
27
  },
28
28
  "devDependencies": {
@@ -1,49 +1,104 @@
1
1
  import type { Obj } from "@paroi/data-formatters-lib";
2
- import type { ImageSize } from "@paroicms/public-anywhere-lib";
2
+ import type {
3
+ ImageSize,
4
+ ParsedSectionId,
5
+ ScSiteSchema,
6
+ ThemeConf,
7
+ } from "@paroicms/public-anywhere-lib";
3
8
  import type { Request, Response } from "express";
4
- import type { AppLog, PluginSiteContext } from "./plugin-site-context-types";
5
9
 
6
10
  export interface ParoiCmsPlugin {
7
11
  version: string;
8
- siteInit?: (api: PluginInitApi) => void | Promise<void>;
12
+ /**
13
+ * The slug of the plugin. It must be unique among all plugins. When it is not provided, then it
14
+ * is generated from the plugin name.
15
+ */
16
+ slug?: string;
17
+ siteInit?: (service: BackendPluginInitService) => void | Promise<void>;
9
18
  }
10
19
 
11
- export interface PluginInitApi {
12
- siteLog: AppLog;
20
+ export interface BackendPluginInitService {
21
+ logger: AppLog;
13
22
  setPublicAssetsDirectory(directory: string): void;
14
23
  setBoAssetsDirectory(directory: string): void;
15
24
  registerSiteSchemaLibrary(directory: string): void;
16
25
  registerLiquidRootDirectory(directory: string): void;
17
26
  registerLiquidFilter(
18
27
  filterName: string,
19
- handler: (value: unknown) => string | Promise<string>,
28
+ handler: PluginLiquidFilterHandler,
20
29
  options?: { raw?: boolean },
21
30
  ): void;
22
31
  registerFieldPreprocessor(dataType: string, handler: FieldPreprocessor): void;
32
+ registerHook(hookName: string, handler: BackendHookHandler, options?: { unique?: boolean }): void;
23
33
  setPublicApiHandler(handler: PublicApiHandler): void;
24
34
  addHeadTag(...htmlTags: string[]): void;
25
35
  pluginConf: PluginConf;
36
+ pluginAssetsUrl: string;
26
37
  }
27
38
 
39
+ export type BackendHookHandler = (service: BackendPluginService, params: any) => any;
40
+
41
+ export type PluginLiquidFilterHandler = (
42
+ service: BackendPluginRenderService,
43
+ value: unknown,
44
+ options: {
45
+ /**
46
+ * The Liquid context
47
+ */
48
+ ctx: any;
49
+ args: any[];
50
+ },
51
+ ) => string | Promise<string>;
52
+
28
53
  export type PublicApiHandler = (
29
- pluginSiteContext: PluginSiteContext,
54
+ service: BackendPluginRenderService,
30
55
  req: Request,
31
56
  res: Response,
32
57
  relativePath: string,
33
58
  ) => Promise<void> | void;
34
59
 
35
60
  export type FieldPreprocessor = (
36
- ctx: FieldPreprocessorContext,
61
+ service: BackendPluginRenderService,
37
62
  value: unknown,
38
63
  options: FieldPreprocessorOptions,
39
64
  ) => unknown | Promise<unknown>;
40
65
 
41
- export interface FieldPreprocessorContext {
42
- siteContext: PluginSiteContext;
43
- useImage: UseImage;
66
+ export interface BackendPluginService {
67
+ fqdn: string;
68
+ siteUrl: string;
69
+ siteSchema: ScSiteSchema;
70
+ themeConf: ThemeConf;
71
+ logger: AppLog;
72
+ validateRecaptchaResponse: (gRecaptchaResponse: string | undefined) => Promise<boolean>;
73
+ sendMail: ({ subject, html, replyTo, to }: MailData) => Promise<void>;
74
+ executeHook(hookName: string, params: any): any[];
75
+ pluginConf: PluginConf;
76
+ pluginAssetsUrl: string;
44
77
  }
45
78
 
46
- export type UseImage = (options: { imageUid: string; size: ImageSize }) => Promise<UsedImage>;
79
+ export interface BackendPluginRenderService extends BackendPluginService {
80
+ getSiteFieldValue: (options: {
81
+ fieldName: string;
82
+ language?: string;
83
+ }) => Promise<unknown | undefined>;
84
+ renderChildPartials(options: {
85
+ req: Request;
86
+ res: Response;
87
+ params: PartialsParamsInput;
88
+ parentDocumentId: ParsedSectionId;
89
+ labeledByTermId?: string;
90
+ }): Promise<void>;
91
+ renderSearchPartials(options: {
92
+ req: Request;
93
+ res: Response;
94
+ language: string;
95
+ words: string[];
96
+ limit: number;
97
+ start: number;
98
+ templateName: string;
99
+ }): Promise<void>;
100
+ useImage: (options: { imageUid: string; size: ImageSize }) => Promise<UsedImage>;
101
+ }
47
102
 
48
103
  export interface UsedImage {
49
104
  url: string;
@@ -65,3 +120,29 @@ export interface PluginConf {
65
120
  [key: string]: unknown;
66
121
  bo?: Obj;
67
122
  }
123
+
124
+ export interface MailData {
125
+ subject: string;
126
+ html: string;
127
+ replyTo?: ReplyTo;
128
+ to: string;
129
+ }
130
+
131
+ export interface ReplyTo {
132
+ email: string;
133
+ name: string;
134
+ }
135
+
136
+ export interface AppLog {
137
+ error(...messages: any[]): void;
138
+ warn(...messages: any[]): void;
139
+ info(...messages: any[]): void;
140
+ debug(...messages: any[]): void;
141
+ }
142
+
143
+ export interface PartialsParamsInput {
144
+ templateName: string;
145
+ documentId: string;
146
+ offset: string;
147
+ limit: string;
148
+ }
@@ -1,64 +0,0 @@
1
- import type { ParsedSectionId, ScSiteSchema, ThemeConf } from "@paroicms/public-anywhere-lib";
2
- import type { Request, Response } from "express";
3
- export interface PluginSiteContext {
4
- fqdn: string;
5
- siteUrl: string;
6
- siteSchema: ScSiteSchema;
7
- themeConf: ThemeConf;
8
- siteLog: AppLog;
9
- validateRecaptchaResponse: (gRecaptchaResponse: string | undefined) => Promise<boolean>;
10
- getSiteFieldValue: (options: {
11
- fieldName: string;
12
- language?: string;
13
- }) => Promise<unknown | undefined>;
14
- sendMail: (
15
- { subject, html, replyTo, to }: MailData,
16
- {
17
- appLog,
18
- }: {
19
- appLog: AppLog;
20
- },
21
- ) => Promise<void>;
22
- renderChildPartials(options: {
23
- req: Request;
24
- res: Response;
25
- params: PartialsParamsInput;
26
- parentDocumentId: ParsedSectionId;
27
- labeledByTermId?: string;
28
- }): Promise<void>;
29
- renderSearchPartials(options: {
30
- req: Request;
31
- res: Response;
32
- language: string;
33
- words: string[];
34
- limit: number;
35
- start: number;
36
- templateName: string;
37
- }): Promise<void>;
38
- }
39
-
40
- export interface MailData {
41
- subject: string;
42
- html: string;
43
- replyTo?: ReplyTo;
44
- to: string;
45
- }
46
-
47
- export interface ReplyTo {
48
- email: string;
49
- name: string;
50
- }
51
-
52
- export interface AppLog {
53
- error(...messages: any[]): void;
54
- warn(...messages: any[]): void;
55
- info(...messages: any[]): void;
56
- debug(...messages: any[]): void;
57
- }
58
-
59
- export interface PartialsParamsInput {
60
- templateName: string;
61
- documentId: string;
62
- offset: string;
63
- limit: string;
64
- }