@sittari/payload-templates 0.2.0 → 0.3.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/README.md CHANGED
@@ -11,11 +11,21 @@ pnpm add @sittari/payload-templates
11
11
  ## Usage
12
12
 
13
13
  ```ts
14
- import { templatesPlugin } from '@sittari/payload-templates'
14
+ import { templateField, templatesPlugin } from '@sittari/payload-templates'
15
15
  import { buildConfig } from 'payload'
16
16
 
17
17
  export default buildConfig({
18
- collections: [],
18
+ collections: [
19
+ {
20
+ slug: 'pages',
21
+ fields: [
22
+ templateField({
23
+ name: 'notFoundContent',
24
+ template: '404',
25
+ }),
26
+ ],
27
+ },
28
+ ],
19
29
  plugins: [
20
30
  templatesPlugin({
21
31
  templates: [
@@ -38,6 +48,46 @@ export default buildConfig({
38
48
 
39
49
  The generated document stores editable fields under `data_<name>`—for example, `data_404.heading`. The `title` and `templateType` fields are managed by the plugin and hidden from the admin form.
40
50
 
51
+ ## Template-backed fields
52
+
53
+ `templateField({ name, template })` inserts a registered template's fields as a
54
+ group anywhere Payload fields are accepted, including collections, globals,
55
+ tabs, arrays, and blocks. The plugin throws during configuration when the
56
+ referenced template is not registered.
57
+
58
+ Fields copied into the consuming group are optional, even when the managed
59
+ template requires them. On read, empty local values inherit from the managed
60
+ template:
61
+
62
+ - `undefined`, `null`, `''`, empty arrays, and empty plain objects inherit.
63
+ - `false`, `0`, and whitespace-only strings remain explicit local values.
64
+ - Nested groups and tabs inherit field by field.
65
+ - Arrays and blocks inherit as a whole only when empty. A non-empty local list
66
+ is treated as the complete override.
67
+
68
+ Inheritance is read-time only. Fallback values are not written into the
69
+ consuming document, so later edits to the managed template are reflected on the
70
+ next API read. Admin edit forms receive the raw stored overrides, so an empty
71
+ field remains empty instead of looking like a persisted template value. The
72
+ Admin API inspector still displays resolved values.
73
+
74
+ You can explicitly control resolution for Local API operations through Payload
75
+ request context:
76
+
77
+ ```ts
78
+ await payload.findByID({
79
+ collection: 'pages',
80
+ id,
81
+ context: {
82
+ templateFields: 'raw', // or 'resolved'
83
+ },
84
+ })
85
+ ```
86
+
87
+ An explicit context mode takes precedence over automatic Admin request
88
+ detection. Template-backed fields cannot be nested inside a template
89
+ definition.
90
+
41
91
  ## Configuration
42
92
 
43
93
  | Option | Type | Default | Description |
@@ -58,7 +108,9 @@ On Payload initialization, the plugin creates missing documents, updates labels,
58
108
 
59
109
  Collection access prevents normal admin, REST, GraphQL, and access-controlled Local API users from creating or deleting template documents. The identity fields also deny user changes. As with every Payload collection, trusted Local API calls using the default `overrideAccess: true` bypass access control.
60
110
 
61
- The package exports `TemplateConfig` and `TemplatesPluginConfig` from both the package root and `@sittari/payload-templates/types`.
111
+ The package exports `TemplateConfig`, `TemplateFieldConfig`, and
112
+ `TemplatesPluginConfig` from both the package root and
113
+ `@sittari/payload-templates/types`.
62
114
 
63
115
  ## Fetching a typed template
64
116
 
@@ -1,3 +1,3 @@
1
1
  export type { GetPayload, TemplateDocumentFor, TemplateName } from '../getTemplate.js';
2
- export type { TemplateConfig, TemplatesPluginConfig } from '../types.js';
2
+ export type { TemplateConfig, TemplateFieldConfig, TemplatesPluginConfig, } from '../types.js';
3
3
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/exports/types.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACtF,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/exports/types.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACtF,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,aAAa,CAAA"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export { createTemplateGetter } from './getTemplate.js';
2
+ export { templateField } from './templateField.js';
2
3
  export { templatesPlugin } from './plugin.js';
3
4
  export type { GetPayload, TemplateDocumentFor, TemplateName, } from './getTemplate.js';
4
- export type { TemplateConfig, TemplatesPluginConfig } from './types.js';
5
+ export type { TemplateConfig, TemplateFieldConfig, TemplatesPluginConfig, } from './types.js';
5
6
  export { templatesPlugin as default } from './plugin.js';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,YAAY,EACV,UAAU,EACV,mBAAmB,EACnB,YAAY,GACb,MAAM,kBAAkB,CAAA;AACzB,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAEvE,OAAO,EAAE,eAAe,IAAI,OAAO,EAAE,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,YAAY,EACV,UAAU,EACV,mBAAmB,EACnB,YAAY,GACb,MAAM,kBAAkB,CAAA;AACzB,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,eAAe,IAAI,OAAO,EAAE,MAAM,aAAa,CAAA"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export { createTemplateGetter } from './getTemplate.js';
2
+ export { templateField } from './templateField.js';
2
3
  export { templatesPlugin } from './plugin.js';
3
4
  export { templatesPlugin as default } from './plugin.js';
4
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAQ7C,OAAO,EAAE,eAAe,IAAI,OAAO,EAAE,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAY7C,OAAO,EAAE,eAAe,IAAI,OAAO,EAAE,MAAM,aAAa,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmC,MAAM,EAAE,MAAM,SAAS,CAAA;AAEtE,OAAO,KAAK,EAAkB,qBAAqB,EAAE,MAAM,YAAY,CAAA;AA2KvE,eAAO,MAAM,eAAe,GACzB,cAAc,qBAAqB,KAAG,MAsBtC,CAAA;AAEH,eAAe,eAAe,CAAA"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,MAAM,EACP,MAAM,SAAS,CAAA;AAMhB,OAAO,KAAK,EAAkB,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAwOvE,eAAO,MAAM,eAAe,GACzB,cAAc,qBAAqB,KAAG,MAuCtC,CAAA;AAEH,eAAe,eAAe,CAAA"}
package/dist/plugin.js CHANGED
@@ -1,3 +1,7 @@
1
+ import { getTemplateFieldName } from './templateField.js';
2
+ import { makeFieldsOptional } from './templateFieldFields.js';
3
+ import { createTemplateFallbackHook } from './templateFieldHook.js';
4
+ import { fieldsContain, transformBlock, transformFields } from './traverseFields.js';
1
5
  const COLLECTION_SLUG = 'templates';
2
6
  const DATA_FIELD_PREFIX = 'data_';
3
7
  const VALID_TEMPLATE_NAME = /^[A-Za-z0-9_]+$/;
@@ -8,7 +12,7 @@ const extendOnInit = (incomingConfig, onInit) => async (payload) => {
8
12
  }
9
13
  await onInit(payload);
10
14
  };
11
- const validateTemplates = (templates) => {
15
+ const validateTemplates = (templates, reusableBlocks) => {
12
16
  const names = new Set();
13
17
  const generatedFieldNames = new Set(['title', 'templateType']);
14
18
  for (const template of templates) {
@@ -24,8 +28,44 @@ const validateTemplates = (templates) => {
24
28
  }
25
29
  names.add(template.name);
26
30
  generatedFieldNames.add(fieldName);
31
+ const fieldsWithReusableBlocks = makeFieldsOptional(template.fields, reusableBlocks);
32
+ if (fieldsContain(fieldsWithReusableBlocks, (field) => getTemplateFieldName(field) !== undefined)) {
33
+ throw new Error(`[templatesPlugin] templateField cannot be used inside template "${template.name}" definitions.`);
34
+ }
27
35
  }
28
36
  };
37
+ const createTemplateFieldTransformer = (templates, reusableBlocks) => {
38
+ const templatesByName = new Map(templates.map((template) => [template.name, template]));
39
+ return (field) => {
40
+ const templateName = getTemplateFieldName(field);
41
+ if (templateName === undefined) {
42
+ return field;
43
+ }
44
+ const template = templatesByName.get(templateName);
45
+ if (!template) {
46
+ const fieldName = 'name' in field ? field.name : '(unnamed)';
47
+ throw new Error(`[templatesPlugin] Unknown template "${templateName}" referenced by field "${fieldName}".`);
48
+ }
49
+ const groupField = field;
50
+ const fields = makeFieldsOptional(template.fields, reusableBlocks);
51
+ const localized = fieldsContain(fields, (templateField) => 'localized' in templateField && templateField.localized === true);
52
+ return {
53
+ ...groupField,
54
+ fields,
55
+ hooks: {
56
+ ...groupField.hooks,
57
+ afterRead: [
58
+ ...(groupField.hooks?.afterRead ?? []),
59
+ createTemplateFallbackHook({
60
+ fields,
61
+ localized,
62
+ template: templateName,
63
+ }),
64
+ ],
65
+ },
66
+ };
67
+ };
68
+ };
29
69
  const createTemplateFields = (templates) => [
30
70
  {
31
71
  name: 'title',
@@ -132,16 +172,27 @@ export const templatesPlugin = (pluginConfig) => (incomingConfig) => {
132
172
  if (pluginConfig.enabled === false) {
133
173
  return incomingConfig;
134
174
  }
135
- validateTemplates(pluginConfig.templates);
175
+ validateTemplates(pluginConfig.templates, incomingConfig.blocks ?? []);
136
176
  if (incomingConfig.collections?.some(({ slug }) => slug === COLLECTION_SLUG)) {
137
177
  throw new Error(`[templatesPlugin] A collection with slug "${COLLECTION_SLUG}" already exists.`);
138
178
  }
179
+ const transformTemplateField = createTemplateFieldTransformer(pluginConfig.templates, incomingConfig.blocks ?? []);
180
+ const collections = (incomingConfig.collections ?? []).map((collection) => {
181
+ const fields = transformFields(collection.fields, transformTemplateField);
182
+ return fields === collection.fields ? collection : { ...collection, fields };
183
+ });
184
+ const globals = incomingConfig.globals?.map((global) => {
185
+ const fields = transformFields(global.fields, transformTemplateField);
186
+ return fields === global.fields ? global : { ...global, fields };
187
+ });
139
188
  return {
140
189
  ...incomingConfig,
141
190
  collections: [
142
- ...(incomingConfig.collections ?? []),
191
+ ...collections,
143
192
  createTemplatesCollection(pluginConfig.templates),
144
193
  ],
194
+ globals,
195
+ blocks: incomingConfig.blocks?.map((block) => transformBlock(block, transformTemplateField)),
145
196
  onInit: extendOnInit(incomingConfig, (payload) => reconcileTemplates(payload, pluginConfig.templates)),
146
197
  };
147
198
  };
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAIA,MAAM,eAAe,GAAG,WAAW,CAAA;AACnC,MAAM,iBAAiB,GAAG,OAAO,CAAA;AACjC,MAAM,mBAAmB,GAAG,iBAAiB,CAAA;AAQ7C,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,iBAAiB,GAAG,IAAI,EAAE,CAAA;AAErE,MAAM,YAAY,GAAG,CACnB,cAAsB,EACtB,MAAqC,EACN,EAAE,CACjC,KAAK,EAAE,OAAO,EAAE,EAAE;IAChB,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACtC,CAAC;IAED,MAAM,MAAM,CAAC,OAAO,CAAC,CAAA;AACvB,CAAC,CAAA;AAEH,MAAM,iBAAiB,GAAG,CAAC,SAA2B,EAAE,EAAE;IACxD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAA;IAC/B,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAA;IAE9D,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,KAAK,CACb,4CAA4C,QAAQ,CAAC,IAAI,gDAAgD,CAC1G,CAAA;QACH,CAAC;QAED,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,gEAAgE,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAA;QACpG,CAAC;QAED,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC9C,IAAI,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CACb,+BAA+B,QAAQ,CAAC,IAAI,qCAAqC,SAAS,IAAI,CAC/F,CAAA;QACH,CAAC;QAED,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACxB,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACpC,CAAC;AACH,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,CAAC,SAA2B,EAAW,EAAE,CAAC;IACrE;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE;YACN,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK;YACnB,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK;SACpB;QACD,KAAK,EAAE;YACL,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,IAAI;SACf;KACF;IACD;QACE,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE;YACN,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK;YACnB,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK;SACpB;QACD,KAAK,EAAE;YACL,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,IAAI;SACf;KACF;IACD,GAAG,SAAS,CAAC,GAAG,CACd,CAAC,QAAQ,EAAS,EAAE,CAAC,CAAC;QACpB,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC;QAClC,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,KAAK,EAAE;YACL,SAAS,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,WAAW,EAAE,YAAY,KAAK,QAAQ,CAAC,IAAI;YAC1E,UAAU,EAAE,IAAI;SACjB;KACF,CAAC,CACH;CACF,CAAA;AAED,MAAM,yBAAyB,GAAG,CAAC,SAA2B,EAAoB,EAAE,CAAC,CAAC;IACpF,IAAI,EAAE,eAAe;IACrB,MAAM,EAAE;QACN,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK;QACnB,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK;KACpB;IACD,gBAAgB,EAAE,IAAI;IACtB,KAAK,EAAE;QACL,cAAc,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC;QACtC,UAAU,EAAE,OAAO;KACpB;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,UAAU;QACpB,MAAM,EAAE,WAAW;KACpB;IACD,MAAM,EAAE,oBAAoB,CAAC,SAAS,CAAC;CACxC,CAAC,CAAA;AAEF,MAAM,kBAAkB,GAAG,KAAK,EAC9B,OAAqD,EACrD,SAA2B,EAC3B,EAAE;IACF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;QAChC,UAAU,EAAE,eAAwB;QACpC,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,CAAC;QACR,cAAc,EAAE,IAAI;QACpB,UAAU,EAAE,KAAK;KAClB,CAAC,CAAA;IACF,MAAM,SAAS,GAAG,MAAM,CAAC,IAA0B,CAAA;IACnD,MAAM,eAAe,GAAG,IAAI,GAAG,CAC7B,SAAS;SACN,MAAM,CAAC,CAAC,QAAQ,EAA2D,EAAE,CAC5E,OAAO,QAAQ,CAAC,YAAY,KAAK,QAAQ,CAC1C;SACA,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CACxD,CAAA;IACD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAElE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEnD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,OAAO,CAAC,MAAM,CAAC;gBACnB,UAAU,EAAE,eAAwB;gBACpC,IAAI,EAAE;oBACJ,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,IAAI,EAAE;oBAC1D,YAAY,EAAE,QAAQ,CAAC,IAAI;oBAC3B,KAAK,EAAE,QAAQ,CAAC,KAAK;iBACb;gBACV,cAAc,EAAE,IAAI;aACrB,CAAC,CAAA;YACF,SAAQ;QACV,CAAC;QAED,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtC,MAAM,OAAO,CAAC,MAAM,CAAC;gBACnB,UAAU,EAAE,eAAwB;gBACpC,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAW;gBACxC,cAAc,EAAE,IAAI;aACrB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,OAAO,QAAQ,CAAC,YAAY,KAAK,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7F,MAAM,OAAO,CAAC,MAAM,CAAC;gBACnB,UAAU,EAAE,eAAwB;gBACpC,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,cAAc,EAAE,IAAI;aACrB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAC1B,CAAC,YAAmC,EAAU,EAAE,CAChD,CAAC,cAAsB,EAAU,EAAE;IACjC,IAAI,YAAY,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QACnC,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,iBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;IAEzC,IAAI,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,eAAe,CAAC,EAAE,CAAC;QAC7E,MAAM,IAAI,KAAK,CAAC,6CAA6C,eAAe,mBAAmB,CAAC,CAAA;IAClG,CAAC;IAED,OAAO;QACL,GAAG,cAAc;QACjB,WAAW,EAAE;YACX,GAAG,CAAC,cAAc,CAAC,WAAW,IAAI,EAAE,CAAC;YACrC,yBAAyB,CAAC,YAAY,CAAC,SAAS,CAAC;SAClD;QACD,MAAM,EAAE,YAAY,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,EAAE,CAC/C,kBAAkB,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CACpD;KACF,CAAA;AACH,CAAC,CAAA;AAEH,eAAe,eAAe,CAAA"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { Field, GroupField } from 'payload';
2
+ import type { TemplateFieldConfig } from './types.js';
3
+ export declare const TEMPLATE_FIELD_MARKER = "@sittari/payload-templates/template-field";
4
+ export declare const getTemplateFieldName: (field: Field) => string | undefined;
5
+ export declare const templateField: (props: TemplateFieldConfig) => GroupField;
6
+ //# sourceMappingURL=templateField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateField.d.ts","sourceRoot":"","sources":["../src/templateField.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEhD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAErD,eAAO,MAAM,qBAAqB,8CAA8C,CAAA;AAShF,eAAO,MAAM,oBAAoB,GAAI,OAAO,KAAK,KAAG,MAAM,GAAG,SAW5D,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,OAAO,mBAAmB,KAAG,UAc1D,CAAA"}
@@ -0,0 +1,27 @@
1
+ export const TEMPLATE_FIELD_MARKER = '@sittari/payload-templates/template-field';
2
+ export const getTemplateFieldName = (field) => {
3
+ if (field.type !== 'group') {
4
+ return undefined;
5
+ }
6
+ const templateField = field.custom?.templateField;
7
+ return templateField?.marker === TEMPLATE_FIELD_MARKER &&
8
+ typeof templateField.template === 'string'
9
+ ? templateField.template
10
+ : undefined;
11
+ };
12
+ export const templateField = (props) => {
13
+ const { name, template, ...rest } = props;
14
+ return ({
15
+ ...rest,
16
+ name,
17
+ type: 'group',
18
+ custom: {
19
+ templateField: {
20
+ marker: TEMPLATE_FIELD_MARKER,
21
+ template,
22
+ },
23
+ },
24
+ fields: [],
25
+ });
26
+ };
27
+ //# sourceMappingURL=templateField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateField.js","sourceRoot":"","sources":["../src/templateField.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,qBAAqB,GAAG,2CAA2C,CAAA;AAShF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAY,EAAsB,EAAE;IACvE,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,aAAa,GAAI,KAAK,CAAC,MAA0C,EAAE,aAAa,CAAA;IAEtF,OAAO,aAAa,EAAE,MAAM,KAAK,qBAAqB;QACpD,OAAO,aAAa,CAAC,QAAQ,KAAK,QAAQ;QAC1C,CAAC,CAAC,aAAa,CAAC,QAAQ;QACxB,CAAC,CAAC,SAAS,CAAA;AACf,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAA0B,EAAc,EAAE;IACtE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAA;IACzC,OAAO,CAAC;QACN,GAAG,IAAI;QACP,IAAI;QACJ,IAAI,EAAE,OAAO;QACb,MAAM,EAAE;YACN,aAAa,EAAE;gBACb,MAAM,EAAE,qBAAqB;gBAC7B,QAAQ;aACT;SACF;QACD,MAAM,EAAE,EAAE;KACX,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { Block, Field } from 'payload';
2
+ export declare const makeFieldsOptional: (fields: Field[], reusableBlocks?: Block[]) => Field[];
3
+ export declare const mergeTemplateValues: (fields: Field[], localValue: unknown, templateValue: unknown) => unknown;
4
+ //# sourceMappingURL=templateFieldFields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateFieldFields.d.ts","sourceRoot":"","sources":["../src/templateFieldFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAO,MAAM,SAAS,CAAA;AAwEhD,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,KAAK,EAAE,EACf,iBAAgB,KAAK,EAAO,KAC3B,KAAK,EAIP,CAAA;AA+ID,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,KAAK,EAAE,EACf,YAAY,OAAO,EACnB,eAAe,OAAO,KACrB,OAAkE,CAAA"}
@@ -0,0 +1,133 @@
1
+ const cloneBlock = (block, blocks, resolving) => {
2
+ const nestedResolving = new Set(resolving).add(block.slug);
3
+ return {
4
+ ...block,
5
+ fields: cloneFields(block.fields, blocks, nestedResolving),
6
+ };
7
+ };
8
+ const cloneTab = (tab, blocks, resolving) => ({
9
+ ...tab,
10
+ fields: cloneFields(tab.fields, blocks, resolving),
11
+ });
12
+ const cloneField = (field, blocks, resolving) => {
13
+ let cloned = {
14
+ ...field,
15
+ ...('name' in field && field.type !== 'ui' ? { required: false } : {}),
16
+ };
17
+ if ('fields' in cloned && Array.isArray(cloned.fields)) {
18
+ cloned = {
19
+ ...cloned,
20
+ fields: cloneFields(cloned.fields, blocks, resolving),
21
+ };
22
+ }
23
+ if (cloned.type === 'tabs') {
24
+ cloned = {
25
+ ...cloned,
26
+ tabs: cloned.tabs.map((tab) => cloneTab(tab, blocks, resolving)),
27
+ };
28
+ }
29
+ if (cloned.type === 'blocks') {
30
+ cloned = {
31
+ ...cloned,
32
+ blocks: cloned.blocks.map((block) => cloneBlock(block, blocks, resolving)),
33
+ blockReferences: cloned.blockReferences?.map((block) => typeof block === 'string'
34
+ ? blocks.has(block) && !resolving.has(block)
35
+ ? cloneBlock(blocks.get(block), blocks, resolving)
36
+ : block
37
+ : cloneBlock(block, blocks, resolving)),
38
+ };
39
+ }
40
+ return cloned;
41
+ };
42
+ const cloneFields = (fields, blocks, resolving) => fields.map((field) => cloneField(field, blocks, resolving));
43
+ export const makeFieldsOptional = (fields, reusableBlocks = []) => cloneFields(fields, new Map(reusableBlocks.map((block) => [block.slug, block])), new Set());
44
+ const isPlainObject = (value) => {
45
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
46
+ return false;
47
+ }
48
+ const prototype = Object.getPrototypeOf(value);
49
+ return prototype === Object.prototype || prototype === null;
50
+ };
51
+ const cloneValue = (value) => {
52
+ if (Array.isArray(value)) {
53
+ return value.map(cloneValue);
54
+ }
55
+ if (isPlainObject(value)) {
56
+ return Object.fromEntries(Object.entries(value).map(([key, childValue]) => [key, cloneValue(childValue)]));
57
+ }
58
+ return value;
59
+ };
60
+ const isEmptyValue = (value) => value === undefined ||
61
+ value === null ||
62
+ value === '' ||
63
+ (Array.isArray(value) && value.length === 0) ||
64
+ (isPlainObject(value) && Object.keys(value).length === 0);
65
+ const mergeFieldValue = (field, localValue, templateValue) => {
66
+ if (field.type === 'group') {
67
+ return mergeStructuralValue(field.fields, localValue, templateValue);
68
+ }
69
+ return isEmptyValue(localValue) && templateValue !== undefined
70
+ ? cloneValue(templateValue)
71
+ : localValue;
72
+ };
73
+ const mergeLocalizedFieldValue = (field, localValue, templateValue) => {
74
+ if (isEmptyValue(localValue)) {
75
+ return templateValue === undefined ? localValue : cloneValue(templateValue);
76
+ }
77
+ if (!isPlainObject(localValue) || !isPlainObject(templateValue)) {
78
+ return mergeFieldValue(field, localValue, templateValue);
79
+ }
80
+ const result = { ...localValue };
81
+ for (const [locale, localizedTemplateValue] of Object.entries(templateValue)) {
82
+ result[locale] = mergeFieldValue(field, result[locale], localizedTemplateValue);
83
+ }
84
+ return result;
85
+ };
86
+ const mergeNamedFields = (fields, localValue, templateValue) => {
87
+ const localData = isPlainObject(localValue) ? localValue : {};
88
+ const templateData = isPlainObject(templateValue) ? templateValue : {};
89
+ let result = { ...localData };
90
+ for (const field of fields) {
91
+ if (field.type === 'row' || field.type === 'collapsible') {
92
+ result = mergeNamedFields(field.fields, result, templateData);
93
+ continue;
94
+ }
95
+ if (field.type === 'tabs') {
96
+ for (const tab of field.tabs) {
97
+ if ('name' in tab && typeof tab.name === 'string') {
98
+ result[tab.name] = mergeStructuralValue(tab.fields, result[tab.name], templateData[tab.name]);
99
+ }
100
+ else {
101
+ result = mergeNamedFields(tab.fields, result, templateData);
102
+ }
103
+ }
104
+ continue;
105
+ }
106
+ if (field.type === 'group' && !('name' in field)) {
107
+ result = mergeNamedFields(field.fields, result, templateData);
108
+ continue;
109
+ }
110
+ if (!('name' in field)) {
111
+ continue;
112
+ }
113
+ const localFieldValue = result[field.name];
114
+ const templateFieldValue = templateData[field.name];
115
+ if ('localized' in field && field.localized) {
116
+ result[field.name] = mergeLocalizedFieldValue(field, localFieldValue, templateFieldValue);
117
+ continue;
118
+ }
119
+ result[field.name] = mergeFieldValue(field, localFieldValue, templateFieldValue);
120
+ }
121
+ return result;
122
+ };
123
+ const mergeStructuralValue = (fields, localValue, templateValue) => {
124
+ if (isEmptyValue(localValue)) {
125
+ return templateValue === undefined ? localValue : cloneValue(templateValue);
126
+ }
127
+ if (!isPlainObject(localValue) || !isPlainObject(templateValue)) {
128
+ return localValue;
129
+ }
130
+ return mergeNamedFields(fields, localValue, templateValue);
131
+ };
132
+ export const mergeTemplateValues = (fields, localValue, templateValue) => mergeStructuralValue(fields, localValue, templateValue);
133
+ //# sourceMappingURL=templateFieldFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateFieldFields.js","sourceRoot":"","sources":["../src/templateFieldFields.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { Field, FieldHook } from 'payload';
2
+ export declare const createTemplateFallbackHook: ({ fields, localized, template, }: {
3
+ fields: Field[];
4
+ localized: boolean;
5
+ template: string;
6
+ }) => FieldHook;
7
+ //# sourceMappingURL=templateFieldHook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateFieldHook.d.ts","sourceRoot":"","sources":["../src/templateFieldHook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAkB,MAAM,SAAS,CAAA;AAyI/D,eAAO,MAAM,0BAA0B,GAAI,kCAIxC;IACD,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;CACjB,KAAG,SA+DH,CAAA"}
@@ -0,0 +1,135 @@
1
+ import { mergeTemplateValues } from './templateFieldFields.js';
2
+ const CACHE_KEY = '@sittari/payload-templates/template-field-cache';
3
+ const isPathWithinRoute = (pathname, route) => {
4
+ const normalizedRoute = route === '/' ? route : route.replace(/\/+$/, '');
5
+ return pathname === normalizedRoute ||
6
+ (normalizedRoute !== '/' && pathname.startsWith(`${normalizedRoute}/`));
7
+ };
8
+ const isAdminAPIInspector = (pathname, adminRoute) => {
9
+ if (!isPathWithinRoute(pathname, adminRoute)) {
10
+ return false;
11
+ }
12
+ const normalizedRoute = adminRoute === '/' ? '' : adminRoute.replace(/\/+$/, '');
13
+ const segments = pathname
14
+ .slice(normalizedRoute.length)
15
+ .split('/')
16
+ .filter(Boolean);
17
+ return ((segments[0] === 'collections' && segments.length >= 4) ||
18
+ (segments[0] === 'globals' && segments.length >= 3)) && segments.at(-1) === 'api';
19
+ };
20
+ const getReferrerPathname = (req) => {
21
+ const referrer = req.headers?.get('referer');
22
+ if (!referrer) {
23
+ return undefined;
24
+ }
25
+ try {
26
+ return new URL(referrer).pathname;
27
+ }
28
+ catch {
29
+ return undefined;
30
+ }
31
+ };
32
+ const shouldResolveTemplateFields = ({ context, req, }) => {
33
+ const mode = context.templateFields;
34
+ if (mode === 'raw') {
35
+ return false;
36
+ }
37
+ if (mode === 'resolved') {
38
+ return true;
39
+ }
40
+ const adminRoute = req.payload.config?.routes?.admin;
41
+ if (!adminRoute) {
42
+ return true;
43
+ }
44
+ const requestPathname = req.pathname;
45
+ if (requestPathname &&
46
+ isPathWithinRoute(requestPathname, adminRoute) &&
47
+ !isAdminAPIInspector(requestPathname, adminRoute)) {
48
+ return false;
49
+ }
50
+ const referrerPathname = getReferrerPathname(req);
51
+ return !(referrerPathname &&
52
+ isPathWithinRoute(referrerPathname, adminRoute) &&
53
+ !isAdminAPIInspector(referrerPathname, adminRoute));
54
+ };
55
+ const getCache = (context) => {
56
+ const existing = context[CACHE_KEY];
57
+ if (existing &&
58
+ typeof existing === 'object' &&
59
+ 'lookups' in existing &&
60
+ existing.lookups instanceof Map &&
61
+ 'warned' in existing &&
62
+ existing.warned instanceof Set) {
63
+ return existing;
64
+ }
65
+ const cache = {
66
+ lookups: new Map(),
67
+ warned: new Set(),
68
+ };
69
+ context[CACHE_KEY] = cache;
70
+ return cache;
71
+ };
72
+ const localeCacheKey = (locale) => Array.isArray(locale) ? locale.join(',') : String(locale ?? '');
73
+ const getEffectiveLocale = ({ fieldName, req, siblingData, value, }) => {
74
+ if (req.locale !== 'all') {
75
+ return req.locale ?? undefined;
76
+ }
77
+ const localizedValues = siblingData[fieldName];
78
+ if (!localizedValues || typeof localizedValues !== 'object' || Array.isArray(localizedValues)) {
79
+ return undefined;
80
+ }
81
+ return Object.entries(localizedValues).find(([, localizedValue]) => localizedValue === value)?.[0];
82
+ };
83
+ export const createTemplateFallbackHook = ({ fields, localized, template, }) => async ({ context, field, req, siblingData, value, }) => {
84
+ if (!shouldResolveTemplateFields({ context, req })) {
85
+ return value;
86
+ }
87
+ const groupField = `data_${template}`;
88
+ const fieldName = 'name' in field && typeof field.name === 'string' ? field.name : '';
89
+ const locale = getEffectiveLocale({
90
+ fieldName,
91
+ req,
92
+ siblingData,
93
+ value,
94
+ });
95
+ const cacheKey = [
96
+ template,
97
+ localized ? 'all' : locale ?? localeCacheKey(req.locale),
98
+ localeCacheKey(req.fallbackLocale),
99
+ ].join(':');
100
+ const cache = getCache(context);
101
+ let lookup = cache.lookups.get(cacheKey);
102
+ if (!lookup) {
103
+ const lookupLocale = localized ? 'all' : locale;
104
+ const lookupReq = lookupLocale === 'all' ? { ...req } : req;
105
+ lookup = req.payload.find({
106
+ collection: 'templates',
107
+ depth: 0,
108
+ fallbackLocale: req.fallbackLocale,
109
+ limit: 1,
110
+ ...(lookupLocale ? { locale: lookupLocale } : {}),
111
+ overrideAccess: true,
112
+ pagination: false,
113
+ req: lookupReq,
114
+ select: {
115
+ [groupField]: true,
116
+ },
117
+ where: {
118
+ templateType: {
119
+ equals: template,
120
+ },
121
+ },
122
+ }).then(({ docs }) => docs[0]);
123
+ cache.lookups.set(cacheKey, lookup);
124
+ }
125
+ const document = await lookup;
126
+ if (!document) {
127
+ if (!cache.warned.has(template)) {
128
+ cache.warned.add(template);
129
+ req.payload.logger.warn(`[templatesPlugin] Managed template "${template}" is missing; local field values were returned unchanged.`);
130
+ }
131
+ return value;
132
+ }
133
+ return mergeTemplateValues(fields, value, document[groupField]);
134
+ };
135
+ //# sourceMappingURL=templateFieldHook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateFieldHook.js","sourceRoot":"","sources":["../src/templateFieldHook.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { Block, Field } from 'payload';
2
+ export type FieldTransformer = (field: Field) => Field;
3
+ export declare const transformBlock: (block: Block, transformer: FieldTransformer) => Block;
4
+ export declare const transformField: (field: Field, transformer: FieldTransformer) => Field;
5
+ export declare const transformFields: (fields: Field[], transformer: FieldTransformer) => Field[];
6
+ export declare const fieldsContain: (fields: Field[], predicate: (field: Field) => boolean) => boolean;
7
+ //# sourceMappingURL=traverseFields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../src/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAO,MAAM,SAAS,CAAA;AAEhD,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,CAAA;AAOtD,eAAO,MAAM,cAAc,GACzB,OAAO,KAAK,EACZ,aAAa,gBAAgB,KAC5B,KAGF,CAAA;AAED,eAAO,MAAM,cAAc,GACzB,OAAO,KAAK,EACZ,aAAa,gBAAgB,KAC5B,KA0CF,CAAA;AAED,eAAO,MAAM,eAAe,GAC1B,QAAQ,KAAK,EAAE,EACf,aAAa,gBAAgB,KAC5B,KAAK,EAKP,CAAA;AAED,eAAO,MAAM,aAAa,GACxB,QAAQ,KAAK,EAAE,EACf,WAAW,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,KACnC,OAWF,CAAA"}
@@ -0,0 +1,59 @@
1
+ const transformTab = (tab, transformer) => {
2
+ const fields = transformFields(tab.fields, transformer);
3
+ return fields === tab.fields ? tab : { ...tab, fields };
4
+ };
5
+ export const transformBlock = (block, transformer) => {
6
+ const fields = transformFields(block.fields, transformer);
7
+ return fields === block.fields ? block : { ...block, fields };
8
+ };
9
+ export const transformField = (field, transformer) => {
10
+ let transformed = transformer(field);
11
+ if ('fields' in transformed && Array.isArray(transformed.fields)) {
12
+ const fields = transformFields(transformed.fields, transformer);
13
+ if (fields !== transformed.fields) {
14
+ transformed = { ...transformed, fields };
15
+ }
16
+ }
17
+ if (transformed.type === 'tabs') {
18
+ const tabsField = transformed;
19
+ const tabs = tabsField.tabs.map((tab) => transformTab(tab, transformer));
20
+ if (tabs.some((tab, index) => tab !== tabsField.tabs[index])) {
21
+ transformed = {
22
+ ...tabsField,
23
+ tabs,
24
+ };
25
+ }
26
+ }
27
+ if (transformed.type === 'blocks') {
28
+ const blocksField = transformed;
29
+ const blocks = blocksField.blocks.map((block) => transformBlock(block, transformer));
30
+ const blockReferences = blocksField.blockReferences?.map((block) => typeof block === 'string' ? block : transformBlock(block, transformer));
31
+ const blocksChanged = blocks.some((block, index) => block !== blocksField.blocks[index]);
32
+ const referencesChanged = blockReferences?.some((block, index) => block !== blocksField.blockReferences?.[index]) ?? false;
33
+ if (blocksChanged || referencesChanged) {
34
+ transformed = {
35
+ ...blocksField,
36
+ blocks,
37
+ blockReferences,
38
+ };
39
+ }
40
+ }
41
+ return transformed;
42
+ };
43
+ export const transformFields = (fields, transformer) => {
44
+ const transformed = fields.map((field) => transformField(field, transformer));
45
+ return transformed.some((field, index) => field !== fields[index])
46
+ ? transformed
47
+ : fields;
48
+ };
49
+ export const fieldsContain = (fields, predicate) => {
50
+ let found = false;
51
+ transformFields(fields, (field) => {
52
+ if (predicate(field)) {
53
+ found = true;
54
+ }
55
+ return field;
56
+ });
57
+ return found;
58
+ };
59
+ //# sourceMappingURL=traverseFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traverseFields.js","sourceRoot":"","sources":["../src/traverseFields.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,10 @@
1
- import type { Field } from 'payload';
1
+ import type { Field, GroupField } from 'payload';
2
+ export type TemplateFieldConfig = {
3
+ /** Field name used in the consuming collection, global, or block. */
4
+ name: string;
5
+ /** Name of a template registered with templatesPlugin. */
6
+ template: string;
7
+ } & Pick<GroupField, 'label' | 'admin'>;
2
8
  export type TemplateConfig = {
3
9
  /** Fields editable on this template's managed document. */
4
10
  fields: Field[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,MAAM,MAAM,cAAc,GAAG;IAC3B,2DAA2D;IAC3D,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrC,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAA;IACb,kFAAkF;IAClF,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,oCAAoC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,oEAAoE;IACpE,SAAS,EAAE,cAAc,EAAE,CAAA;CAC5B,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAA8B,MAAM,SAAS,CAAA;AAE5E,MAAM,MAAM,mBAAmB,GAAG;IAChC,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAA;IACZ,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAA;CACjB,GAAG,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,CAAA;AAEvC,MAAM,MAAM,cAAc,GAAG;IAC3B,2DAA2D;IAC3D,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrC,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAA;IACb,kFAAkF;IAClF,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,oCAAoC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,oEAAoE;IACpE,SAAS,EAAE,cAAc,EAAE,CAAA;CAC5B,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sittari/payload-templates",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Managed template documents for Payload CMS.",
5
5
  "type": "module",
6
6
  "license": "MIT",