@paroicms/public-server-lib 1.0.1 → 1.1.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.
@@ -1 +1 @@
1
- {"version":3,"file":"load-descriptors.d.ts","sourceRoot":"","sources":["../src/load-descriptors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,EACd,yBAAyB,EAC1B,MAAM,mCAAmC,CAAC;AAI3C,MAAM,WAAW,kBAAkB;IACjC,oBAAoB,EAAE,qBAAqB,CAAC;CAC7C;AAED,MAAM,WAAW,6BAA6B;IAC5C,oBAAoB,EAAE,6BAA6B,CAAC;CACrD;AAED,MAAM,WAAW,2BAA2B;IAC1C,oBAAoB,EAAE,0BAA0B,CAAC;CAClD;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,GAAG,EAAE,CAAC,EACN,cAAc,EAAE,yBAAyB,GACxC,CAAC,GAAG,6BAA6B,CAAC;AACrC,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,GAAG,EAAE,CAAC,EACN,cAAc,EAAE,uBAAuB,GACtC,CAAC,GAAG,2BAA2B,CAAC;AACnC,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,GAAG,EAAE,CAAC,EACN,cAAc,EAAE,cAAc,GAC7B,CAAC,GAAG,kBAAkB,CAAC;AAM1B,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,GAAG,SAAS,CAK9E;AAED,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,OAAO,GACX,yBAAyB,GAAG,SAAS,CAIvC;AAED,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,OAAO,GAAG,uBAAuB,GAAG,SAAS,CAIhG;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,kBAAkB,EAC9D,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,kBAAkB,GAC5B,CAAC,CAeH"}
1
+ {"version":3,"file":"load-descriptors.d.ts","sourceRoot":"","sources":["../src/load-descriptors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,EACd,yBAAyB,EAC1B,MAAM,mCAAmC,CAAC;AAI3C,MAAM,WAAW,kBAAkB;IACjC,oBAAoB,EAAE,qBAAqB,CAAC;CAC7C;AAED,MAAM,WAAW,6BAA6B;IAC5C,oBAAoB,EAAE,6BAA6B,CAAC;CACrD;AAED,MAAM,WAAW,2BAA2B;IAC1C,oBAAoB,EAAE,0BAA0B,CAAC;CAClD;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,GAAG,EAAE,CAAC,EACN,cAAc,EAAE,yBAAyB,GACxC,CAAC,GAAG,6BAA6B,CAAC;AACrC,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,GAAG,EAAE,CAAC,EACN,cAAc,EAAE,uBAAuB,GACtC,CAAC,GAAG,2BAA2B,CAAC;AACnC,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,GAAG,EAAE,CAAC,EACN,cAAc,EAAE,cAAc,GAC7B,CAAC,GAAG,kBAAkB,CAAC;AAM1B,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,GAAG,SAAS,CAK9E;AAED,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,OAAO,GACX,yBAAyB,GAAG,SAAS,CAIvC;AAED,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,OAAO,GAAG,uBAAuB,GAAG,SAAS,CAIhG;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,kBAAkB,EAC9D,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,kBAAkB,GAC5B,CAAC,CAkBH"}
@@ -28,6 +28,9 @@ export function mergeListDescriptor(base, newValues) {
28
28
  if (newValues.labeledWith) {
29
29
  target.labeledWith = newValues.labeledWith;
30
30
  }
31
+ if (newValues.fieldEquals) {
32
+ target.fieldEquals = newValues.fieldEquals;
33
+ }
31
34
  if (newValues.sorting) {
32
35
  target.sorting = newValues.sorting;
33
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"load-descriptors.js","sourceRoot":"","sources":["../src/load-descriptors.ts"],"names":[],"mappings":"AAOA,MAAM,oBAAoB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AA0BtD,MAAM,UAAU,oBAAoB,CAAC,GAAQ,EAAE,cAA8B;IAC3E,GAAG,CAAC,oBAAoB,CAAC,GAAG,cAAc,CAAC;IAC3C,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAAY;IAChD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO;IACpD,IAAI,CAAC,CAAC,oBAAoB,IAAI,GAAG,CAAC;QAAE,OAAO;IAC3C,MAAM,OAAO,GAAG,GAAG,CAAC,oBAAoB,CAAmB,CAAC;IAC5D,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,GAAY;IAEZ,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,OAAO,OAAO,CAAC,IAAI,KAAK,KAAK,IAAI,OAAO,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACzF,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,GAAY;IACzD,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,OAAO,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1F,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,IAAO,EACP,SAA6B;IAE7B,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;IAC3B,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;QAC1B,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;IAC7C,CAAC;IACD,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACtB,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;IACrC,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IACnC,CAAC;IACD,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;IACjC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"load-descriptors.js","sourceRoot":"","sources":["../src/load-descriptors.ts"],"names":[],"mappings":"AAOA,MAAM,oBAAoB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AA0BtD,MAAM,UAAU,oBAAoB,CAAC,GAAQ,EAAE,cAA8B;IAC3E,GAAG,CAAC,oBAAoB,CAAC,GAAG,cAAc,CAAC;IAC3C,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAAY;IAChD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO;IACpD,IAAI,CAAC,CAAC,oBAAoB,IAAI,GAAG,CAAC;QAAE,OAAO;IAC3C,MAAM,OAAO,GAAG,GAAG,CAAC,oBAAoB,CAAmB,CAAC;IAC5D,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,GAAY;IAEZ,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,OAAO,OAAO,CAAC,IAAI,KAAK,KAAK,IAAI,OAAO,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACzF,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,GAAY;IACzD,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,OAAO,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1F,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,IAAO,EACP,SAA6B;IAE7B,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;IAC3B,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;QAC1B,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;IAC7C,CAAC;IACD,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;QAC1B,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;IAC7C,CAAC;IACD,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACtB,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;IACrC,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IACnC,CAAC;IACD,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;IACjC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paroicms/public-server-lib",
3
- "version": "1.0.1",
3
+ "version": "1.1.0",
4
4
  "description": "Common utilitaries for paroicms plugins (backend side).",
5
5
  "author": "Paroi Team",
6
6
  "repository": {
@@ -17,15 +17,16 @@
17
17
  "build:ci": "npm run typeonly && tsc --declarationMap false",
18
18
  "tsc": "tsc",
19
19
  "typeonly": "typeonly --bundle dist/types.to.json --source-dir typeonly",
20
+ "typecheck": "tsc --noEmit -p tsconfig.typecheck.json",
20
21
  "test:watch": "vitest",
21
22
  "test": "vitest run",
22
23
  "clear": "rimraf dist/*",
23
24
  "dev": "tsc --watch --preserveWatchOutput"
24
25
  },
25
26
  "dependencies": {
26
- "@paroicms/internal-anywhere-lib": "1.39.7",
27
- "@paroicms/public-anywhere-lib": "1.0.0",
28
- "@paroicms/script-lib": "1.0.0",
27
+ "@paroicms/internal-anywhere-lib": "1.39.8",
28
+ "@paroicms/public-anywhere-lib": "1.0.1",
29
+ "@paroicms/script-lib": "1.0.1",
29
30
  "@typeonly/validator": "~1.1.2",
30
31
  "arktype": "~2.2.1"
31
32
  },
@@ -9,6 +9,7 @@ import type {
9
9
  ReadFieldValue,
10
10
  ReadFieldValues,
11
11
  ResizeRule,
12
+ RoutingCluster,
12
13
  ScFieldType,
13
14
  ScSiteSchema,
14
15
  ThemeConf,
@@ -112,6 +113,10 @@ export interface BackendPluginInitService extends PluginStaticConfiguration {
112
113
  UpdateFieldValue
113
114
  >,
114
115
  ): void;
116
+ registerHook(
117
+ hookName: "afterSaveValues",
118
+ handler: BackendHookHandler<undefined, AfterSaveValuesInfo, void>,
119
+ ): void;
115
120
  registerHook(hookName: "sendMail", handler: BackendHookHandler<MailData, undefined, void>): void;
116
121
  registerHook(
117
122
  hookName: "markdownToNative",
@@ -135,6 +140,24 @@ export type BackendHookHandler<V = unknown, O = unknown, R = unknown> = (hookPay
135
140
  options: O;
136
141
  }) => Promise<R> | R;
137
142
 
143
+ export interface AfterSaveValuesInfo {
144
+ nodeKind: "document" | "part" | "site";
145
+ /** Absent for `"site"`. For a part, this is the partId. */
146
+ lNodeId?: string;
147
+ /** Absent for `"site"`. */
148
+ nodeId?: string;
149
+ /** `"_site"` for site saves. */
150
+ typeName: string;
151
+ language?: string;
152
+ changes: SavedFieldChange[];
153
+ }
154
+
155
+ export interface SavedFieldChange {
156
+ fieldName: string;
157
+ oldValue: ReadFieldValue | undefined;
158
+ newValue: ReadFieldValue | undefined;
159
+ }
160
+
138
161
  export type RenderingHookHandler<V extends ReadFieldValue = ReadFieldValue> = (hookPayload: {
139
162
  service: PluginRenderingService;
140
163
  value: V;
@@ -262,10 +285,13 @@ export interface PluginRenderingService {
262
285
  homeUrl: string;
263
286
  setRenderState(key: string, value: any): void;
264
287
 
265
- loadDocuments(loadDescriptor: DocumentsLoadDescriptor): Promise<LiquidPayload<TpDocPayload>[]>;
266
288
  loadDocuments(
267
289
  loadDescriptor: DocumentsLoadDescriptor,
268
- options: { withTotal: true },
290
+ options?: { onlyPublished?: boolean },
291
+ ): Promise<LiquidPayload<TpDocPayload>[]>;
292
+ loadDocuments(
293
+ loadDescriptor: DocumentsLoadDescriptor,
294
+ options: { withTotal: true; onlyPublished?: boolean },
269
295
  ): Promise<{ documents: LiquidPayload<TpDocPayload>[]; total: number }>;
270
296
 
271
297
  renderDocument(templateName: string, doc: LiquidPayload<TpDocPayload>): Promise<string>;
@@ -377,6 +403,7 @@ export interface SubDomainSitePackConfiguration extends SitePackConfigurationBas
377
403
  export interface RunningSiteConnector {
378
404
  loadSiteSchemaAndIds(): Promise<RiSiteSchemaAndIds>;
379
405
  getSiteInfo(): Promise<SiteInfo>;
406
+ loadRoutingClusterFromNode(input: { nodeId: string; typeName: string }): Promise<RoutingCluster>;
380
407
  createAccount(account: RiNewAccount, options?: { asContactEmail?: boolean }): Promise<string>;
381
408
  updateSiteFields(language: string, values: UpdateFieldValues): Promise<void>;
382
409
  removeSite: () => Promise<void>;
@@ -401,6 +428,8 @@ export interface RunningSiteConnector {
401
428
  createPart(input: CreatePartInput): Promise<MinimalPartInfo>;
402
429
  createPartTranslation(input: CreatePartTranslationInput): Promise<MinimalPartInfo>;
403
430
  setMedia(input: SetMediaInput): Promise<MSourceMedia>;
431
+ /** Returns the deleted media ids. */
432
+ deleteMedia(input: { handle: string; mediaId?: string }): Promise<string[]>;
404
433
  }
405
434
 
406
435
  export interface MinimalDocumentInfo {
@@ -482,6 +511,11 @@ export interface CreateDocumentInput {
482
511
  typeName: string;
483
512
  title?: string;
484
513
  slug?: string;
514
+ /**
515
+ * Honored when the document type's route is `":relativeId"` (validated for format and sibling
516
+ * uniqueness); ignored otherwise.
517
+ */
518
+ relativeId?: string;
485
519
  values?: UpdateFieldValues;
486
520
  }
487
521
 
@@ -9,6 +9,7 @@ export interface ListBaseDescriptor {
9
9
  limit?: number;
10
10
  sorting?: ScSorting;
11
11
  labeledWith?: LabeledWithDescriptor;
12
+ fieldEquals?: FieldEqualsDescriptor;
12
13
  }
13
14
 
14
15
  export interface LabeledWithDescriptor {
@@ -16,6 +17,11 @@ export interface LabeledWithDescriptor {
16
17
  termNodeId: string;
17
18
  }
18
19
 
20
+ export interface FieldEqualsDescriptor {
21
+ fieldName: string;
22
+ value: string;
23
+ }
24
+
19
25
  export interface ChildDocumentsLoadDescriptor extends ListBaseDescriptor {
20
26
  load: "list";
21
27
  nodeKind: "document";