@paroicms/public-server-lib 0.24.1 → 0.26.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,4 +1,4 @@
1
- export type * from "../types/backend-plugin-types.ts";
1
+ export type * from "../types/backend-plugin-types.d.ts";
2
2
  export * from "./esm-module.helper.js";
3
3
  export * from "./html-helpers/html-helpers.js";
4
4
  export * from "./obfuscate.helper.js";
@@ -1,5 +1,5 @@
1
1
  import type { ScSchemaLocales, ScTranslations } from "@paroicms/public-anywhere-lib";
2
- import type { AppLogger } from "../types/backend-plugin-types.ts";
2
+ import type { AppLogger } from "../types/backend-plugin-types.d.ts";
3
3
  export interface SimpleTranslator {
4
4
  translate: (options: SimpleTranslateOptions) => string;
5
5
  }
@@ -19,4 +19,4 @@ export declare function createSimpleTranslator(options: {
19
19
  [language: string]: ScTranslations;
20
20
  } | ScSchemaLocales;
21
21
  logger: Pick<AppLogger, "warn">;
22
- }): Promise<SimpleTranslator>;
22
+ }): SimpleTranslator;
@@ -7,7 +7,7 @@ export async function loadSimpleTranslatorFromDirectory(options) {
7
7
  translate: (options) => translate(labels, options),
8
8
  };
9
9
  }
10
- export async function createSimpleTranslator(options) {
10
+ export function createSimpleTranslator(options) {
11
11
  const labels = new Map(Object.entries(options.labels).map(([k, v]) => [k, flattenLocales(v)]));
12
12
  return {
13
13
  translate: (options) => translate(labels, options),
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paroicms/public-server-lib",
3
- "version": "0.24.1",
3
+ "version": "0.26.0",
4
4
  "description": "Common utilitaries for paroicms plugins (backend side).",
5
5
  "author": "Paroi Team",
6
6
  "repository": {
@@ -21,15 +21,15 @@
21
21
  },
22
22
  "dependencies": {
23
23
  "@paroi/data-formatters-lib": "~0.4.0",
24
- "@paroicms/internal-anywhere-lib": "1.23.1",
25
- "@paroicms/public-anywhere-lib": "0.17.1",
24
+ "@paroicms/internal-anywhere-lib": "1.25.0",
25
+ "@paroicms/public-anywhere-lib": "0.19.0",
26
26
  "@types/express": "~4.17.21"
27
27
  },
28
28
  "devDependencies": {
29
- "@types/node": "~22.10.7",
29
+ "@types/node": "~22.13.10",
30
30
  "rimraf": "~6.0.1",
31
- "typescript": "~5.7.3",
32
- "vitest": "~3.0.2"
31
+ "typescript": "~5.8.2",
32
+ "vitest": "~3.0.5"
33
33
  },
34
34
  "files": [
35
35
  "dist",
@@ -3,7 +3,9 @@ import type {
3
3
  FieldValue,
4
4
  ImageSize,
5
5
  ParsedNodelId,
6
+ ScFieldDataType,
6
7
  ScSiteSchema,
8
+ SiteIds,
7
9
  ThemeConf,
8
10
  } from "@paroicms/public-anywhere-lib";
9
11
  import type { Request, Response } from "express";
@@ -75,6 +77,16 @@ export interface BackendPluginService {
75
77
  executeHook<T = unknown>(hookName: string, params?: any): T[];
76
78
  pluginConf: PluginConf;
77
79
  pluginAssetsUrl: string;
80
+ registerNewSite: (options: NewSiteOptions) => Promise<Readonly<SiteConf>>;
81
+ /** This is the connector of the running instance of ParoiCMS. */
82
+ connector: RunningInstanceConnector;
83
+ }
84
+
85
+ export interface NewSiteOptions {
86
+ packName: string;
87
+ siteDir: string;
88
+ domain: string;
89
+ version?: string;
78
90
  }
79
91
 
80
92
  export interface BackendPluginRenderService extends BackendPluginService {
@@ -160,3 +172,139 @@ export interface PartialsParamsInput {
160
172
  offset: string;
161
173
  limit: string;
162
174
  }
175
+ export interface SiteConf {
176
+ fqdn: string;
177
+ siteName: string;
178
+ version?: string;
179
+ siteDir: string;
180
+ dataDir: string;
181
+ cacheDir: string;
182
+ backupDir: string;
183
+ siteUrl: string;
184
+ /**
185
+ * This status can be mutated.
186
+ */
187
+ loadedOnce: boolean;
188
+ redirectWww?: boolean;
189
+ trusted: boolean;
190
+ }
191
+
192
+ export type SitePackConf = FqdnSitePackConf | SubDomainSitePackConf;
193
+
194
+ export interface SitePackConfBase {
195
+ packName: string;
196
+ sitesDir?: string;
197
+ dataDir: string;
198
+ cacheDir: string;
199
+ backupDir: string;
200
+ redirectWww?: boolean;
201
+ trusted: boolean;
202
+ }
203
+
204
+ export interface FqdnSitePackConf extends SitePackConfBase {
205
+ serveOn: "fqdn";
206
+ }
207
+
208
+ export interface SubDomainSitePackConf extends SitePackConfBase {
209
+ serveOn: "subDomain";
210
+ parentDomain: string;
211
+ }
212
+
213
+ export interface RunningInstanceConnector {
214
+ getSitePackConf(packName: string): SitePackConf;
215
+ loadSiteSchemaAndIds(fqdn: string): Promise<SiteSchemaAndIds>;
216
+ updateSiteFields(fqdn: string, fields: NcFieldSetContent): Promise<void>;
217
+ updateDocumentContent(
218
+ fqdn: string,
219
+ options: {
220
+ nodeId: string;
221
+ content: NcDocumentContent;
222
+ },
223
+ ): Promise<void>;
224
+ addMultipleDocumentContents(
225
+ fqdn: string,
226
+ options: {
227
+ parentNodeId: string;
228
+ contents: NcDocumentContent[];
229
+ },
230
+ ): Promise<void>;
231
+ addMultiplePartContents(
232
+ fqdn: string,
233
+ options: {
234
+ parentNodeId: string;
235
+ contents: NcPartContent[];
236
+ },
237
+ ): Promise<void>;
238
+ }
239
+
240
+ export interface SiteSchemaAndIds {
241
+ siteSchema: ScSiteSchema;
242
+ siteIds: SiteIds;
243
+ }
244
+
245
+ /** "Nc" stands for Node Content. */
246
+ export type NcNodeContent = NcDocumentContent | NcPartContent;
247
+
248
+ export interface NcDocumentContent {
249
+ kind: "document";
250
+ typeName: string;
251
+ title?: { [language: string]: string };
252
+ featuredImage?: NcMediaValue;
253
+ fields: NcFieldSetContent;
254
+ }
255
+
256
+ export interface NcPartContent {
257
+ kind: "part";
258
+ typeName: string;
259
+ fields: NcFieldSetContent;
260
+ }
261
+
262
+ export interface NcFieldSetContent {
263
+ [fieldName: string]: NcFieldContent;
264
+ }
265
+
266
+ export type NcFieldContent =
267
+ | NcStringContent
268
+ | NcNumberContent
269
+ | NcBooleanContent
270
+ | NcQuillDeltaContent
271
+ | NcMediaContent
272
+ | NcGalleryContent;
273
+
274
+ export type NcStringContent = NcFieldContentTemplate<"string", string>;
275
+ export type NcNumberContent = NcFieldContentTemplate<"number", number>;
276
+ export type NcBooleanContent = NcFieldContentTemplate<"boolean", boolean>;
277
+ export type NcQuillDeltaContent = NcFieldContentTemplate<"quillDelta", QuillDeltaValue>;
278
+ export type NcMediaContent = NcFieldContentTemplate<"media", NcMediaValue>;
279
+ export type NcGalleryContent = NcFieldContentTemplate<"gallery", NcGalleryValue>;
280
+
281
+ export type NcFieldContentTemplate<T extends ScFieldDataType, V> =
282
+ | NcLocalizedFieldContent<T, V>
283
+ | NcUnlocalizedFieldContent<T, V>;
284
+
285
+ export interface NcLocalizedFieldContent<T extends ScFieldDataType, V> {
286
+ dataType: T;
287
+ localized: true;
288
+ value: {
289
+ [language: string]: V | null;
290
+ };
291
+ }
292
+
293
+ export interface NcUnlocalizedFieldContent<T extends ScFieldDataType, V> {
294
+ dataType: T;
295
+ localized: false;
296
+ value: V | null;
297
+ }
298
+
299
+ export interface NcMediaValue {
300
+ file: string;
301
+ }
302
+
303
+ export interface NcGalleryValue {
304
+ files: string[];
305
+ }
306
+
307
+ // TODO: replace with markdown content. The plugin should convert markdown to quill delta.
308
+ export interface QuillDeltaValue {
309
+ ops: any[];
310
+ }