@terminalfour/terminalfour-js 1.0.3 → 1.1.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.
Files changed (64) hide show
  1. package/dist/cjs/content-cache.d.ts +38 -0
  2. package/dist/cjs/content-cache.js +42 -0
  3. package/dist/cjs/element-resolver.d.ts +16 -0
  4. package/dist/cjs/element-resolver.js +77 -1
  5. package/dist/cjs/handlebars.js +1 -0
  6. package/dist/cjs/models/content-item.js +14 -1
  7. package/dist/cjs/models/media-category-item.js +2 -0
  8. package/dist/cjs/models/media-item.js +1 -0
  9. package/dist/cjs/models/section-item.js +1 -0
  10. package/dist/cjs/resources/content-resource.d.ts +7 -11
  11. package/dist/cjs/resources/content-resource.js +38 -79
  12. package/dist/cjs/resources/content-type-resource.d.ts +2 -6
  13. package/dist/cjs/resources/content-type-resource.js +20 -6
  14. package/dist/cjs/resources/group-resource.js +1 -0
  15. package/dist/cjs/resources/list-resource.d.ts +2 -6
  16. package/dist/cjs/resources/list-resource.js +9 -6
  17. package/dist/cjs/resources/media-resource.js +9 -2
  18. package/dist/cjs/resources/media-type-resource.js +1 -0
  19. package/dist/cjs/resources/navigation-resource.d.ts +17 -0
  20. package/dist/cjs/resources/navigation-resource.js +14 -2
  21. package/dist/cjs/resources/page-layout-resource.d.ts +11 -0
  22. package/dist/cjs/resources/page-layout-resource.js +13 -2
  23. package/dist/cjs/section-ref.d.ts +3 -1
  24. package/dist/cjs/section-ref.js +11 -5
  25. package/dist/cjs/t4-client.d.ts +1 -0
  26. package/dist/cjs/t4-client.js +6 -1
  27. package/dist/cjs/utils.d.ts +56 -0
  28. package/dist/cjs/utils.js +66 -0
  29. package/dist/esm/content-cache.d.ts +38 -0
  30. package/dist/esm/content-cache.js +38 -0
  31. package/dist/esm/element-resolver.d.ts +16 -0
  32. package/dist/esm/element-resolver.js +77 -1
  33. package/dist/esm/handlebars.js +2 -1
  34. package/dist/esm/models/content-item.js +15 -2
  35. package/dist/esm/models/media-category-item.js +2 -0
  36. package/dist/esm/models/media-item.js +2 -1
  37. package/dist/esm/models/section-item.js +2 -1
  38. package/dist/esm/resources/content-resource.d.ts +7 -11
  39. package/dist/esm/resources/content-resource.js +39 -80
  40. package/dist/esm/resources/content-type-resource.d.ts +2 -6
  41. package/dist/esm/resources/content-type-resource.js +21 -7
  42. package/dist/esm/resources/group-resource.js +2 -1
  43. package/dist/esm/resources/list-resource.d.ts +2 -6
  44. package/dist/esm/resources/list-resource.js +10 -7
  45. package/dist/esm/resources/media-resource.js +10 -3
  46. package/dist/esm/resources/media-type-resource.js +2 -1
  47. package/dist/esm/resources/navigation-resource.d.ts +17 -0
  48. package/dist/esm/resources/navigation-resource.js +14 -2
  49. package/dist/esm/resources/page-layout-resource.d.ts +11 -0
  50. package/dist/esm/resources/page-layout-resource.js +14 -3
  51. package/dist/esm/section-ref.d.ts +3 -1
  52. package/dist/esm/section-ref.js +12 -6
  53. package/dist/esm/t4-client.d.ts +1 -0
  54. package/dist/esm/t4-client.js +6 -1
  55. package/dist/esm/utils.d.ts +56 -0
  56. package/dist/esm/utils.js +59 -0
  57. package/docs/content-types.md +3 -3
  58. package/docs/content.md +13 -0
  59. package/docs/error-handling.md +29 -1
  60. package/docs/getting-started.md +4 -0
  61. package/docs/lists.md +2 -2
  62. package/docs/navigation.md +30 -1
  63. package/docs/page-layouts.md +26 -0
  64. package/package.json +1 -1
@@ -22,6 +22,8 @@ A full page layout includes:
22
22
  | `fileExtension` | Output file extension |
23
23
  | `syntax` | Syntax such as `'HTML/XML'` |
24
24
  | `processor` | Processor such as `'handlebars'` |
25
+ | `primaryGroup` | Owning group ID. `0` means no primary group (Global). |
26
+ | `sharedGroups` | Array of group IDs the layout is shared with |
25
27
 
26
28
  ## Create a page layout
27
29
 
@@ -34,11 +36,35 @@ await t4.pageLayouts.create({
34
36
  syntax: 'HTML/XML', // optional
35
37
  processor: 'handlebars', // optional; default: 'handlebars'
36
38
  fileExtension: 'html', // optional
39
+ primaryGroup: 35, // optional; owning group ID
40
+ sharedGroups: [34, 40], // optional; group IDs to share with
37
41
  });
38
42
  ```
39
43
 
40
44
  Processor options are `'handlebars'`, `'t4-tags'`, and `'programmable-layouts'`. The default is `'handlebars'`.
41
45
 
46
+ ## Group and visibility
47
+
48
+ `primaryGroup` is the layout's owning group and `sharedGroups` are the groups it is shared with. Both are read on `get()` and written on `save()`, `update()`, and `create()`. Set `primaryGroup` to `0` to remove the owning group (Global):
49
+
50
+ ```typescript
51
+ const layout = await t4.pageLayouts.get(5);
52
+ console.log(layout.primaryGroup); // 35
53
+ console.log(layout.sharedGroups); // [34, 40]
54
+
55
+ layout.primaryGroup = 0; // remove from its group (Global)
56
+ layout.sharedGroups = [];
57
+ await layout.save();
58
+ ```
59
+
60
+ Or through `update()`:
61
+
62
+ ```typescript
63
+ await t4.pageLayouts.update(5, { primaryGroup: 35, sharedGroups: [34] });
64
+ ```
65
+
66
+ `sharedGroups` cannot contain the `primaryGroup` id: a group cannot be both the owning group and a shared group. The SDK throws a clear error before sending the request (Terminalfour otherwise returns an opaque 500).
67
+
42
68
  ## Update a page layout
43
69
 
44
70
  ### Direct update
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@terminalfour/terminalfour-js",
3
- "version": "1.0.3",
3
+ "version": "1.1.1",
4
4
  "description": "JavaScript / TypeScript SDK for the Terminalfour Web Services REST API",
5
5
  "keywords": [
6
6
  "terminalfour",