@paroicms/public-server-lib 1.0.2 → 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.2",
3
+ "version": "1.1.0",
4
4
  "description": "Common utilitaries for paroicms plugins (backend side).",
5
5
  "author": "Paroi Team",
6
6
  "repository": {
@@ -113,6 +113,10 @@ export interface BackendPluginInitService extends PluginStaticConfiguration {
113
113
  UpdateFieldValue
114
114
  >,
115
115
  ): void;
116
+ registerHook(
117
+ hookName: "afterSaveValues",
118
+ handler: BackendHookHandler<undefined, AfterSaveValuesInfo, void>,
119
+ ): void;
116
120
  registerHook(hookName: "sendMail", handler: BackendHookHandler<MailData, undefined, void>): void;
117
121
  registerHook(
118
122
  hookName: "markdownToNative",
@@ -136,6 +140,24 @@ export type BackendHookHandler<V = unknown, O = unknown, R = unknown> = (hookPay
136
140
  options: O;
137
141
  }) => Promise<R> | R;
138
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
+
139
161
  export type RenderingHookHandler<V extends ReadFieldValue = ReadFieldValue> = (hookPayload: {
140
162
  service: PluginRenderingService;
141
163
  value: V;
@@ -263,10 +285,13 @@ export interface PluginRenderingService {
263
285
  homeUrl: string;
264
286
  setRenderState(key: string, value: any): void;
265
287
 
266
- loadDocuments(loadDescriptor: DocumentsLoadDescriptor): Promise<LiquidPayload<TpDocPayload>[]>;
267
288
  loadDocuments(
268
289
  loadDescriptor: DocumentsLoadDescriptor,
269
- options: { withTotal: true },
290
+ options?: { onlyPublished?: boolean },
291
+ ): Promise<LiquidPayload<TpDocPayload>[]>;
292
+ loadDocuments(
293
+ loadDescriptor: DocumentsLoadDescriptor,
294
+ options: { withTotal: true; onlyPublished?: boolean },
270
295
  ): Promise<{ documents: LiquidPayload<TpDocPayload>[]; total: number }>;
271
296
 
272
297
  renderDocument(templateName: string, doc: LiquidPayload<TpDocPayload>): Promise<string>;
@@ -403,6 +428,8 @@ export interface RunningSiteConnector {
403
428
  createPart(input: CreatePartInput): Promise<MinimalPartInfo>;
404
429
  createPartTranslation(input: CreatePartTranslationInput): Promise<MinimalPartInfo>;
405
430
  setMedia(input: SetMediaInput): Promise<MSourceMedia>;
431
+ /** Returns the deleted media ids. */
432
+ deleteMedia(input: { handle: string; mediaId?: string }): Promise<string[]>;
406
433
  }
407
434
 
408
435
  export interface MinimalDocumentInfo {
@@ -484,6 +511,11 @@ export interface CreateDocumentInput {
484
511
  typeName: string;
485
512
  title?: string;
486
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;
487
519
  values?: UpdateFieldValues;
488
520
  }
489
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";