@dosgato/api 0.0.2 → 0.0.5

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 (213) hide show
  1. package/dist/access/access.resolver.d.ts +2 -0
  2. package/dist/access/access.resolver.js +21 -1
  3. package/dist/access/access.resolver.js.map +1 -1
  4. package/dist/asset/asset.database.js +5 -9
  5. package/dist/asset/asset.database.js.map +1 -1
  6. package/dist/asset/asset.model.d.ts +2 -0
  7. package/dist/asset/asset.model.js +17 -7
  8. package/dist/asset/asset.model.js.map +1 -1
  9. package/dist/asset/asset.resolver.js +1 -1
  10. package/dist/asset/asset.resolver.js.map +1 -1
  11. package/dist/asset/asset.service.js +2 -2
  12. package/dist/asset/asset.service.js.map +1 -1
  13. package/dist/assetfolder/assetfolder.database.js +0 -1
  14. package/dist/assetfolder/assetfolder.database.js.map +1 -1
  15. package/dist/assetfolder/assetfolder.service.js +0 -1
  16. package/dist/assetfolder/assetfolder.service.js.map +1 -1
  17. package/dist/assetrule/assetrule.resolver.d.ts +1 -1
  18. package/dist/assetrule/assetrule.resolver.js +4 -3
  19. package/dist/assetrule/assetrule.resolver.js.map +1 -1
  20. package/dist/assetrule/assetrule.service.d.ts +1 -1
  21. package/dist/assetrule/assetrule.service.js +36 -15
  22. package/dist/assetrule/assetrule.service.js.map +1 -1
  23. package/dist/createdb.js +33 -40
  24. package/dist/createdb.js.map +1 -1
  25. package/dist/data/data.database.js +5 -5
  26. package/dist/data/data.database.js.map +1 -1
  27. package/dist/data/data.indexing.d.ts +3 -2
  28. package/dist/data/data.indexing.js +4 -3
  29. package/dist/data/data.indexing.js.map +1 -1
  30. package/dist/data/data.migrations.d.ts +16 -0
  31. package/dist/data/data.migrations.js +34 -0
  32. package/dist/data/data.migrations.js.map +1 -0
  33. package/dist/data/data.model.d.ts +2 -4
  34. package/dist/data/data.model.js +1 -13
  35. package/dist/data/data.model.js.map +1 -1
  36. package/dist/data/data.service.js +50 -55
  37. package/dist/data/data.service.js.map +1 -1
  38. package/dist/datafolder/datafolder.database.d.ts +1 -0
  39. package/dist/datafolder/datafolder.database.js +10 -0
  40. package/dist/datafolder/datafolder.database.js.map +1 -1
  41. package/dist/datafolder/datafolder.resolver.d.ts +1 -1
  42. package/dist/datafolder/datafolder.resolver.js +4 -3
  43. package/dist/datafolder/datafolder.resolver.js.map +1 -1
  44. package/dist/datafolder/datafolder.service.d.ts +1 -1
  45. package/dist/datafolder/datafolder.service.js +21 -12
  46. package/dist/datafolder/datafolder.service.js.map +1 -1
  47. package/dist/datarule/datarule.database.js +2 -1
  48. package/dist/datarule/datarule.database.js.map +1 -1
  49. package/dist/datarule/datarule.resolver.d.ts +1 -1
  50. package/dist/datarule/datarule.resolver.js +4 -3
  51. package/dist/datarule/datarule.resolver.js.map +1 -1
  52. package/dist/datarule/datarule.service.d.ts +1 -1
  53. package/dist/datarule/datarule.service.js +5 -6
  54. package/dist/datarule/datarule.service.js.map +1 -1
  55. package/dist/fixtures.js +61 -56
  56. package/dist/fixtures.js.map +1 -1
  57. package/dist/fixturetemplates.d.ts +13 -110
  58. package/dist/fixturetemplates.js +64 -44
  59. package/dist/fixturetemplates.js.map +1 -1
  60. package/dist/globalrule/globalrule.database.js +30 -6
  61. package/dist/globalrule/globalrule.database.js.map +1 -1
  62. package/dist/globalrule/globalrule.model.d.ts +4 -1
  63. package/dist/globalrule/globalrule.model.js +18 -3
  64. package/dist/globalrule/globalrule.model.js.map +1 -1
  65. package/dist/globalrule/globalrule.service.js +1 -1
  66. package/dist/globalrule/globalrule.service.js.map +1 -1
  67. package/dist/group/group.database.d.ts +2 -12
  68. package/dist/group/group.database.js +13 -57
  69. package/dist/group/group.database.js.map +1 -1
  70. package/dist/group/group.model.d.ts +0 -1
  71. package/dist/group/group.model.js +0 -4
  72. package/dist/group/group.model.js.map +1 -1
  73. package/dist/group/group.resolver.d.ts +4 -9
  74. package/dist/group/group.resolver.js +15 -71
  75. package/dist/group/group.resolver.js.map +1 -1
  76. package/dist/group/group.service.d.ts +3 -11
  77. package/dist/group/group.service.js +46 -117
  78. package/dist/group/group.service.js.map +1 -1
  79. package/dist/index.d.ts +2 -2
  80. package/dist/index.js +11 -2
  81. package/dist/index.js.map +1 -1
  82. package/dist/internal.d.ts +6 -1
  83. package/dist/internal.js +6 -1
  84. package/dist/internal.js.map +1 -1
  85. package/dist/page/page.database.d.ts +2 -2
  86. package/dist/page/page.database.js +5 -4
  87. package/dist/page/page.database.js.map +1 -1
  88. package/dist/page/page.indexing.js +8 -6
  89. package/dist/page/page.indexing.js.map +1 -1
  90. package/dist/page/page.migrations.d.ts +7 -5
  91. package/dist/page/page.migrations.js +39 -26
  92. package/dist/page/page.migrations.js.map +1 -1
  93. package/dist/page/page.model.d.ts +8 -16
  94. package/dist/page/page.model.js +21 -53
  95. package/dist/page/page.model.js.map +1 -1
  96. package/dist/page/page.resolver.d.ts +6 -4
  97. package/dist/page/page.resolver.js +46 -16
  98. package/dist/page/page.resolver.js.map +1 -1
  99. package/dist/page/page.service.d.ts +9 -4
  100. package/dist/page/page.service.js +135 -69
  101. package/dist/page/page.service.js.map +1 -1
  102. package/dist/page/page.util.js +4 -3
  103. package/dist/page/page.util.js.map +1 -1
  104. package/dist/page/page.validation.d.ts +2 -2
  105. package/dist/page/page.validation.js +19 -12
  106. package/dist/page/page.validation.js.map +1 -1
  107. package/dist/pagerule/pagerule.database.js +9 -15
  108. package/dist/pagerule/pagerule.database.js.map +1 -1
  109. package/dist/pagerule/pagerule.model.d.ts +5 -4
  110. package/dist/pagerule/pagerule.model.js +10 -6
  111. package/dist/pagerule/pagerule.model.js.map +1 -1
  112. package/dist/pagerule/pagerule.resolver.d.ts +1 -2
  113. package/dist/pagerule/pagerule.resolver.js +1 -15
  114. package/dist/pagerule/pagerule.resolver.js.map +1 -1
  115. package/dist/pagerule/pagerule.service.js +9 -16
  116. package/dist/pagerule/pagerule.service.js.map +1 -1
  117. package/dist/pagetree/pagetree.resolver.js +1 -13
  118. package/dist/pagetree/pagetree.resolver.js.map +1 -1
  119. package/dist/pagetree/pagetree.service.js +6 -6
  120. package/dist/pagetree/pagetree.service.js.map +1 -1
  121. package/dist/role/role.database.d.ts +6 -0
  122. package/dist/role/role.database.js +36 -3
  123. package/dist/role/role.database.js.map +1 -1
  124. package/dist/role/role.model.d.ts +3 -0
  125. package/dist/role/role.model.js +15 -1
  126. package/dist/role/role.model.js.map +1 -1
  127. package/dist/role/role.resolver.d.ts +3 -1
  128. package/dist/role/role.resolver.js +29 -1
  129. package/dist/role/role.resolver.js.map +1 -1
  130. package/dist/role/role.service.d.ts +4 -0
  131. package/dist/role/role.service.js +47 -10
  132. package/dist/role/role.service.js.map +1 -1
  133. package/dist/run.js +0 -3
  134. package/dist/run.js.map +1 -1
  135. package/dist/scalars/urlsafestring.js +1 -1
  136. package/dist/scalars/urlsafestring.js.map +1 -1
  137. package/dist/site/site.database.d.ts +10 -2
  138. package/dist/site/site.database.js +93 -54
  139. package/dist/site/site.database.js.map +1 -1
  140. package/dist/site/site.model.d.ts +5 -9
  141. package/dist/site/site.model.js +17 -26
  142. package/dist/site/site.model.js.map +1 -1
  143. package/dist/site/site.resolver.d.ts +9 -7
  144. package/dist/site/site.resolver.js +70 -40
  145. package/dist/site/site.resolver.js.map +1 -1
  146. package/dist/site/site.service.d.ts +12 -6
  147. package/dist/site/site.service.js +90 -35
  148. package/dist/site/site.service.js.map +1 -1
  149. package/dist/sitecomment/sitecomment.database.d.ts +4 -0
  150. package/dist/sitecomment/sitecomment.database.js +29 -0
  151. package/dist/sitecomment/sitecomment.database.js.map +1 -0
  152. package/dist/sitecomment/sitecomment.model.d.ts +21 -0
  153. package/dist/sitecomment/sitecomment.model.js +68 -0
  154. package/dist/sitecomment/sitecomment.model.js.map +1 -0
  155. package/dist/sitecomment/sitecomment.resolver.d.ts +7 -0
  156. package/dist/sitecomment/sitecomment.resolver.js +56 -0
  157. package/dist/sitecomment/sitecomment.resolver.js.map +1 -0
  158. package/dist/sitecomment/sitecomment.service.d.ts +14 -0
  159. package/dist/sitecomment/sitecomment.service.js +57 -0
  160. package/dist/sitecomment/sitecomment.service.js.map +1 -0
  161. package/dist/siterule/siterule.database.js +16 -38
  162. package/dist/siterule/siterule.database.js.map +1 -1
  163. package/dist/siterule/siterule.model.d.ts +4 -8
  164. package/dist/siterule/siterule.model.js +11 -29
  165. package/dist/siterule/siterule.model.js.map +1 -1
  166. package/dist/siterule/siterule.service.js +1 -1
  167. package/dist/siterule/siterule.service.js.map +1 -1
  168. package/dist/template/template.database.d.ts +8 -0
  169. package/dist/template/template.database.js +46 -2
  170. package/dist/template/template.database.js.map +1 -1
  171. package/dist/template/template.model.js +4 -3
  172. package/dist/template/template.model.js.map +1 -1
  173. package/dist/template/template.resolver.d.ts +1 -0
  174. package/dist/template/template.resolver.js +14 -2
  175. package/dist/template/template.resolver.js.map +1 -1
  176. package/dist/template/template.service.d.ts +21 -1
  177. package/dist/template/template.service.js +67 -9
  178. package/dist/template/template.service.js.map +1 -1
  179. package/dist/templaterule/templaterule.service.js +1 -1
  180. package/dist/templaterule/templaterule.service.js.map +1 -1
  181. package/dist/user/user.database.d.ts +1 -1
  182. package/dist/user/user.database.js +21 -1
  183. package/dist/user/user.database.js.map +1 -1
  184. package/dist/user/user.model.d.ts +5 -0
  185. package/dist/user/user.model.js +22 -0
  186. package/dist/user/user.model.js.map +1 -1
  187. package/dist/user/user.resolver.d.ts +4 -2
  188. package/dist/user/user.resolver.js +28 -5
  189. package/dist/user/user.resolver.js.map +1 -1
  190. package/dist/user/user.service.d.ts +1 -1
  191. package/dist/user/user.service.js +23 -13
  192. package/dist/user/user.service.js.map +1 -1
  193. package/dist/util/index.d.ts +1 -1
  194. package/dist/util/index.js +1 -1
  195. package/dist/util/index.js.map +1 -1
  196. package/dist/util/indexing.d.ts +0 -4
  197. package/dist/util/indexing.js +0 -13
  198. package/dist/util/indexing.js.map +1 -1
  199. package/dist/util/login.d.ts +1 -0
  200. package/dist/util/login.js +8 -0
  201. package/dist/util/login.js.map +1 -0
  202. package/dist/util/migrations.d.ts +0 -4
  203. package/dist/util/registry.d.ts +22 -12
  204. package/dist/util/registry.js +23 -41
  205. package/dist/util/registry.js.map +1 -1
  206. package/dist/versionedservice/service.d.ts +7 -1
  207. package/dist/versionedservice/service.js +22 -5
  208. package/dist/versionedservice/service.js.map +1 -1
  209. package/package.json +5 -6
  210. package/readme/DosGato.mwb +0 -0
  211. package/dist/util/sharedtypes.d.ts +0 -3
  212. package/dist/util/sharedtypes.js +0 -2
  213. package/dist/util/sharedtypes.js.map +0 -1
@@ -1,5 +1,6 @@
1
- import { DosGatoService, Page, PageFilter, CreatePageInput, PageResponse, PagesResponse, TemplateFilter, Template, UpdatePageInput } from '../internal.js';
1
+ import { PageData } from '@dosgato/templating';
2
2
  import { BaseService, ValidatedResponse } from '@txstate-mws/graphql-server';
3
+ import { DosGatoService, Page, PageFilter, PageResponse, PagesResponse, TemplateFilter, Pagetree } from '../internal.js';
3
4
  export declare class PageServiceInternal extends BaseService {
4
5
  find(filter: PageFilter): Promise<Page[]>;
5
6
  findById(id: string): Promise<Page | undefined>;
@@ -11,6 +12,7 @@ export declare class PageServiceInternal extends BaseService {
11
12
  getPageAncestors(page: Page): Promise<Page[]>;
12
13
  getRootPage(page: Page): Promise<Page | undefined>;
13
14
  getPath(page: Page): Promise<string>;
15
+ getData(page: Page, version?: number, published?: boolean, toSchemaVersion?: import("luxon").DateTime): Promise<PageData>;
14
16
  processFilters(filter: PageFilter): Promise<PageFilter>;
15
17
  }
16
18
  export declare class PageService extends DosGatoService<Page> {
@@ -23,9 +25,10 @@ export declare class PageService extends DosGatoService<Page> {
23
25
  findByTemplate(key: string, filter?: PageFilter): Promise<Page[]>;
24
26
  getPageChildren(page: Page, recursive?: boolean, filter?: PageFilter): Promise<Page[]>;
25
27
  getPageAncestors(page: Page): Promise<Page[]>;
26
- getApprovedTemplates(page: Page, filter?: TemplateFilter): Promise<Template[]>;
28
+ getApprovedTemplates(page: Page, filter?: TemplateFilter): Promise<import("../internal.js").Template[]>;
27
29
  getRootPage(page: Page): Promise<Page | undefined>;
28
30
  getPath(page: Page): Promise<string>;
31
+ getData(page: Page, version?: number, published?: boolean, toSchemaVersion?: import("luxon").DateTime): Promise<PageData>;
29
32
  mayView(page: Page): Promise<boolean>;
30
33
  mayViewForEdit(page: Page): Promise<boolean>;
31
34
  mayViewLatest(page: Page): Promise<boolean>;
@@ -42,8 +45,10 @@ export declare class PageService extends DosGatoService<Page> {
42
45
  */
43
46
  movePages(dataIds: string[], targetId: string, above?: boolean): Promise<PagesResponse>;
44
47
  copyPages(dataIds: string[], targetId: string, above?: boolean, includeChildren?: boolean): Promise<PageResponse>;
45
- createPage(args: CreatePageInput): Promise<PageResponse>;
46
- updatePage(dataId: string, args: UpdatePageInput): Promise<PageResponse>;
48
+ validatePageTemplates(page: Page, data: PageData, create: boolean): Promise<void>;
49
+ validatePageData(data: PageData, pagetree: Pagetree, parent: Page | undefined, name: string, linkId: string, pageId?: string): Promise<PageResponse>;
50
+ createPage(name: string, data: PageData, targetId: string, above?: boolean, validate?: boolean): Promise<PageResponse>;
51
+ updatePage(dataId: string, dataVersion: number, data: PageData, comment?: string, validate?: boolean): Promise<PageResponse>;
47
52
  renamePage(dataId: string, name: string): Promise<PageResponse>;
48
53
  deletePages(dataIds: string[]): Promise<PagesResponse>;
49
54
  undeletePages(dataIds: string[], includeChildren?: boolean): Promise<PagesResponse>;
@@ -1,7 +1,8 @@
1
+ import { BaseService, ValidatedResponse } from '@txstate-mws/graphql-server';
1
2
  import { OneToManyLoader, PrimaryKeyLoader } from 'dataloader-factory';
2
- import { eachConcurrent, intersect, isNotNull, isNull, mapConcurrent, someAsync, stringify, unique } from 'txstate-utils';
3
- import { VersionedService, templateRegistry, DosGatoService, PageResponse, PagesResponse, createPage, getPages, movePages, deletePages, renamePage, TemplateService, PagetreeService, SiteService, getPageIndexes, undeletePages, validatePage, DeletedFilter, copyPages } from '../internal.js';
4
- import { BaseService, ValidatedResponse, MutationMessageType } from '@txstate-mws/graphql-server';
3
+ import { nanoid } from 'nanoid';
4
+ import { eachConcurrent, filterAsync, intersect, isNotNull, keyby, someAsync, stringify, unique } from 'txstate-utils';
5
+ import { VersionedService, templateRegistry, DosGatoService, PageResponse, PagesResponse, createPage, getPages, movePages, deletePages, renamePage, TemplateService, getPageIndexes, undeletePages, validatePage, DeletedFilter, copyPages, TemplateType, migratePage, PagetreeServiceInternal, collectTemplates, TemplateServiceInternal, PagetreeType } from '../internal.js';
5
6
  const pagesByInternalIdLoader = new PrimaryKeyLoader({
6
7
  fetch: async (internalIds) => {
7
8
  return await getPages({ internalIds, deleted: DeletedFilter.SHOW });
@@ -38,6 +39,18 @@ const pagesByInternalIdPathRecursiveLoader = new OneToManyLoader({
38
39
  matchKey: (path, p) => p.path.startsWith(path),
39
40
  idLoader: [pagesByInternalIdLoader, pagesByDataIdLoader]
40
41
  });
42
+ const pagesByLinkIdLoader = new OneToManyLoader({
43
+ fetch: async (linkIds, filters) => {
44
+ return await getPages({ ...filters, linkIds });
45
+ },
46
+ extractKey: p => p.linkId
47
+ });
48
+ const pagesByPathLoader = new OneToManyLoader({
49
+ fetch: async (paths, filters) => {
50
+ return await getPages({ ...filters, paths });
51
+ },
52
+ extractKey: p => p.path
53
+ });
41
54
  export class PageServiceInternal extends BaseService {
42
55
  async find(filter) {
43
56
  filter = await this.processFilters(filter);
@@ -105,15 +118,62 @@ export class PageServiceInternal extends BaseService {
105
118
  const ancestors = await this.getPageAncestors(page);
106
119
  return `/${ancestors.map(a => a.name).join('/')}${ancestors.length ? '/' : ''}${page.name}`;
107
120
  }
121
+ async getData(page, version, published, toSchemaVersion = templateRegistry.currentSchemaVersion) {
122
+ const [versioned, pagetree, parent, path] = await Promise.all([
123
+ this.svc(VersionedService).get(page.dataId, { tag: published ? 'published' : undefined, version }),
124
+ this.svc(PagetreeServiceInternal).findById(page.pagetreeId),
125
+ page.parentInternalId ? this.findByInternalId(page.parentInternalId) : undefined,
126
+ this.getPath(page)
127
+ ]);
128
+ if (!versioned)
129
+ throw new Error('Asked for page data version that does not exist.');
130
+ return await migratePage(versioned.data, {
131
+ query: this.ctx.query,
132
+ siteId: pagetree.siteId,
133
+ pagetreeId: pagetree.id,
134
+ parentId: parent?.id,
135
+ pagePath: path,
136
+ pageId: page.id,
137
+ linkId: page.linkId,
138
+ name: page.name
139
+ }, toSchemaVersion);
140
+ }
108
141
  async processFilters(filter) {
109
142
  if (filter.referencedByPageIds?.length) {
143
+ // TODO: refactor this to use VersionedService indexes instead of rescanning the data
110
144
  const verService = this.svc(VersionedService);
111
145
  const pages = (await Promise.all(filter.referencedByPageIds.map(async (id) => await this.findById(id)))).filter(isNotNull);
112
146
  const pagedata = (await Promise.all(pages.map(async (page) => await verService.get(page.dataId, { tag: filter.published ? 'published' : undefined })))).filter(isNotNull);
113
- const links = pagedata.flatMap(d => templateRegistry.get(d.data.templateKey).getLinks(d.data)).filter(l => l.type === 'page');
114
- filter.links = intersect({ skipEmpty: true, by: lnk => stringify({ ...lnk, type: 'page' }) }, links, filter.links);
147
+ const links = pagedata.flatMap(d => templateRegistry.get(d.data.templateKey).getLinks?.(d.data) ?? []).filter(l => l.type === 'page');
148
+ filter.links = intersect({ skipEmpty: true, by: lnk => stringify({ ...lnk, type: 'page' }) }, links, filter.links?.map(l => ({ ...l, type: 'page' })));
149
+ }
150
+ if (filter.links?.length) {
151
+ const pagetreeSvc = this.svc(PagetreeServiceInternal);
152
+ const pages = await Promise.all(filter.links.map(async (l) => {
153
+ const lookups = [];
154
+ const contextPagetree = l.context && await pagetreeSvc.findById(l.context.pagetreeId);
155
+ if (contextPagetree?.siteId === l.siteId) {
156
+ // the link is targeting the same site as the context, so we need to look for the link in
157
+ // the same pagetree as the context
158
+ // if we don't find the link in our pagetree, we do NOT fall back to the primary page tree,
159
+ // we WANT the user to see a broken link in their sandbox because it will break when they go live
160
+ lookups.push(this.loaders.get(pagesByLinkIdLoader, { pagetreeIds: [contextPagetree.id] }).load(l.linkId), this.loaders.get(pagesByPathLoader, { pagetreeIds: [contextPagetree.id] }).load(l.path));
161
+ }
162
+ else {
163
+ // the link is cross-site, so we only look in the primary tree in the site the link was targeting
164
+ // we do NOT fall back to finding the linkId in other sites that the link did not originally
165
+ // point at
166
+ // this means that links will break when pages are moved between sites, which is unfortunate but
167
+ // ignoring the link's siteId leads to madness because we could have multiple sites that all have
168
+ // pages with the same linkId, and now I have to try to pick: do I prefer launched sites? published
169
+ // pages? etc
170
+ lookups.push(this.loaders.get(pagesByLinkIdLoader, { pagetreeTypes: [PagetreeType.PRIMARY], siteIds: [l.siteId] }).load(l.linkId), this.loaders.get(pagesByPathLoader, { pagetreeTypes: [PagetreeType.PRIMARY], siteIds: [l.siteId] }).load(l.path));
171
+ }
172
+ const pages = await Promise.all(lookups);
173
+ return pages.find(p => p.length > 1)?.[0];
174
+ }));
175
+ filter.internalIds = intersect({ skipEmpty: true }, filter.internalIds, pages.filter(isNotNull).map(p => p.internalId));
115
176
  }
116
- // TODO: add missing filters: `links`
117
177
  return filter;
118
178
  }
119
179
  }
@@ -147,30 +207,8 @@ export class PageService extends DosGatoService {
147
207
  return await this.removeUnauthorized(await this.raw.getPageAncestors(page));
148
208
  }
149
209
  async getApprovedTemplates(page, filter) {
150
- const pageTree = await this.svc(PagetreeService).findById(page.pagetreeId);
151
- const site = await this.svc(SiteService).findByPagetreeId(pageTree.id);
152
- const [pagetreeTemplates, siteTemplates] = await Promise.all([
153
- this.svc(TemplateService).findByPagetreeId(page.pagetreeId, filter),
154
- this.svc(TemplateService).findBySiteId(site.id, filter)
155
- ]);
156
- let templatesAuthForUser = [];
157
- const templateRules = await this.currentTemplateRules();
158
- // If there is a template rule that applies to all templates, this user can use all templates anywhere
159
- // TODO: Should this be filtered by template type too? It doesn't make sense to have page templates approved
160
- // for use in a page, but this could return all three template types
161
- if (templateRules.some(r => isNull(r.templateId) && r.grants.use)) {
162
- templatesAuthForUser = await this.svc(TemplateService).find();
163
- }
164
- else {
165
- const rules = templateRules.filter(r => isNotNull(r.templateId) && r.grants.use);
166
- let ids = rules.map(r => r.templateId);
167
- if (filter?.ids?.length) {
168
- ids = ids.filter(i => filter.ids?.includes(i));
169
- }
170
- if (ids)
171
- templatesAuthForUser = await this.svc(TemplateService).find({ ids });
172
- }
173
- return unique([...pagetreeTemplates, ...siteTemplates, ...templatesAuthForUser], 'id');
210
+ const templates = await this.svc(TemplateService).find(filter);
211
+ return await filterAsync(templates, async (template) => await this.svc(TemplateService).mayUseOnPage(template, page.id));
174
212
  }
175
213
  async getRootPage(page) {
176
214
  return await this.removeUnauthorized(await this.raw.getRootPage(page));
@@ -178,6 +216,11 @@ export class PageService extends DosGatoService {
178
216
  async getPath(page) {
179
217
  return await this.raw.getPath(page);
180
218
  }
219
+ async getData(page, version, published, toSchemaVersion = templateRegistry.currentSchemaVersion) {
220
+ if (!published && !await this.mayViewLatest(page))
221
+ throw new Error('User is only permitted to see the published version of this page.');
222
+ return await this.raw.getData(page, version, published, toSchemaVersion);
223
+ }
181
224
  async mayView(page) {
182
225
  if (await this.havePagePerm(page, 'view'))
183
226
  return true;
@@ -241,50 +284,73 @@ export class PageService extends DosGatoService {
241
284
  const newPage = await copyPages(this.svc(VersionedService), this.login, pages, parent, aboveTarget, includeChildren);
242
285
  return new PageResponse({ success: true, page: newPage });
243
286
  }
244
- async createPage(args) {
245
- const { parent, aboveTarget } = await this.resolveTarget(args.targetId, args.above);
287
+ async validatePageTemplates(page, data, create) {
288
+ const templateKeys = Array.from(collectTemplates(data));
289
+ const templates = await Promise.all(templateKeys.map(async (k) => await this.svc(TemplateServiceInternal).findByKey(k)));
290
+ const templateByKey = keyby(templates.filter(isNotNull), 'key');
291
+ const oldData = await this.raw.getData(page);
292
+ if (oldData.templateKey !== data.templateKey) {
293
+ if (!templateByKey[data.templateKey])
294
+ throw new Error('Tried to set page template to a non-existing template.');
295
+ if (templateByKey[data.templateKey].type !== TemplateType.PAGE)
296
+ throw new Error('Tried to set page template to a non-page template.');
297
+ }
298
+ const invalid = create
299
+ ? await someAsync(templateKeys, async (templateKey) => !await this.svc(TemplateService).mayUseOnPage(templateByKey[templateKey], page.id))
300
+ : await someAsync(templateKeys, async (templateKey) => !await this.svc(TemplateService).mayKeepOnPage(templateKey, page, templateByKey[templateKey]));
301
+ if (invalid)
302
+ throw new Error('Template is not approved for use in this site or pagetree.');
303
+ }
304
+ async validatePageData(data, pagetree, parent, name, linkId, pageId) {
305
+ const response = new PageResponse({ success: true });
306
+ const extras = {
307
+ query: this.ctx.query,
308
+ siteId: pagetree.siteId,
309
+ pagetreeId: pagetree.id,
310
+ parentId: parent?.id,
311
+ pagePath: `${parent ? await this.getPath(parent) : ''}/${name}`,
312
+ pageId,
313
+ linkId,
314
+ name
315
+ };
316
+ const migrated = await migratePage(data, extras);
317
+ const messages = await validatePage(migrated, extras);
318
+ for (const message of messages) {
319
+ response.addMessage(message.message, message.path, message.type);
320
+ }
321
+ return response;
322
+ }
323
+ async createPage(name, data, targetId, above, validate) {
324
+ const { parent, aboveTarget } = await this.resolveTarget(targetId, above);
246
325
  if (!(await this.mayCreate(parent)))
247
326
  throw new Error('Current user is not permitted to create pages in the specified parent.');
248
- const template = await this.svc(TemplateService).findByKey(args.templateKey);
249
- if (!template)
250
- throw new Error('Cannot find template.');
251
- // TODO is it a correct assumption that the approved templates for the new page will match its parent's approved templates?
252
- const approvedTemplates = await this.getApprovedTemplates(parent);
253
- if (!approvedTemplates.find(t => t.id === template.id)) {
254
- throw new Error(`Template ${template.name} is not approved for use in this site or pagetree.`);
255
- }
256
- const page = await createPage(this.svc(VersionedService), this.login, parent, aboveTarget, args.name, args.templateKey, args.schemaVersion);
327
+ // at the time of writing this comment, template usage is approved for an entire pagetree, so
328
+ // it should be safe to simply check if the targeted parent/sibling is allowed to use this template
329
+ await this.validatePageTemplates(parent, data, true);
330
+ const pagetree = (await this.svc(PagetreeServiceInternal).findById(parent.pagetreeId));
331
+ const linkId = nanoid(10);
332
+ const response = await this.validatePageData(data, pagetree, parent, name, linkId);
333
+ if (!response.success)
334
+ return response;
335
+ const page = await createPage(this.svc(VersionedService), this.login, parent, aboveTarget, name, data, linkId);
257
336
  return new PageResponse({ success: true, page });
258
337
  }
259
- async updatePage(dataId, args) {
260
- const response = new PageResponse({});
338
+ async updatePage(dataId, dataVersion, data, comment, validate) {
261
339
  const page = await this.raw.findById(dataId);
262
340
  if (!page)
263
341
  throw new Error('Cannot update a page that does not exist.');
264
342
  if (!(await this.mayUpdate(page)))
265
343
  throw new Error(`Current user is not permitted to update page ${String(page.name)}`);
266
- try {
267
- const messages = await validatePage(args.data);
268
- if (Object.keys(messages).length) {
269
- for (const key of Object.keys(messages)) {
270
- for (const message of messages[key]) {
271
- response.addMessage(message, key, MutationMessageType.error);
272
- }
273
- }
274
- return response;
275
- }
276
- const indexes = getPageIndexes(args.data);
277
- await this.svc(VersionedService).update(dataId, args.data, indexes, { user: this.login, comment: args.comment, version: args.dataVersion });
278
- this.loaders.clear();
279
- const updated = await this.raw.findById(dataId);
280
- response.success = true;
281
- response.page = updated;
282
- return response;
283
- }
284
- catch (err) {
285
- console.error(err);
286
- throw new Error(`Could not update page ${String(page.name)}`);
287
- }
344
+ await this.validatePageTemplates(page, data, false);
345
+ const parent = page.parentInternalId ? await this.findByInternalId(page.parentInternalId) : undefined;
346
+ const pagetree = (await this.svc(PagetreeServiceInternal).findById(page.pagetreeId));
347
+ const response = await this.validatePageData(data, pagetree, parent, page.name, page.linkId);
348
+ const indexes = getPageIndexes(data);
349
+ await this.svc(VersionedService).update(dataId, data, indexes, { user: this.login, comment: comment, version: dataVersion });
350
+ this.loaders.clear();
351
+ const updated = await this.raw.findById(dataId);
352
+ response.page = updated;
353
+ return response;
288
354
  }
289
355
  async renamePage(dataId, name) {
290
356
  const page = await this.raw.findById(dataId);
@@ -301,7 +367,7 @@ export class PageService extends DosGatoService {
301
367
  return new PageResponse({ success: true, page: updated });
302
368
  }
303
369
  catch (err) {
304
- console.log(err);
370
+ console.error(err);
305
371
  throw new Error('An unknown error ocurred while trying to rename a page.');
306
372
  }
307
373
  }
@@ -326,7 +392,7 @@ export class PageService extends DosGatoService {
326
392
  async undeletePages(dataIds, includeChildren) {
327
393
  let pages = (await Promise.all(dataIds.map(async (id) => await this.raw.findById(id)))).filter(isNotNull);
328
394
  if (includeChildren) {
329
- const children = (await mapConcurrent(pages, async (page) => await this.getPageChildren(page, true))).flat();
395
+ const children = (await Promise.all(pages.map(async (page) => await this.getPageChildren(page, true)))).flat();
330
396
  pages = [...pages, ...children];
331
397
  }
332
398
  if (await someAsync(pages, async (page) => !(await this.mayUndelete(page)))) {
@@ -346,7 +412,7 @@ export class PageService extends DosGatoService {
346
412
  async publishPages(dataIds, includeChildren) {
347
413
  let pages = (await Promise.all(dataIds.map(async (id) => await this.raw.findById(id)))).filter(isNotNull);
348
414
  if (includeChildren) {
349
- const children = (await mapConcurrent(pages, async (page) => await this.getPageChildren(page, true))).flat();
415
+ const children = (await Promise.all(pages.map(async (page) => await this.getPageChildren(page, true)))).flat();
350
416
  pages = [...pages, ...children];
351
417
  }
352
418
  if (await someAsync(pages, async (page) => !(await this.mayPublish(page)))) {
@@ -365,7 +431,7 @@ export class PageService extends DosGatoService {
365
431
  }
366
432
  async unpublishPages(dataIds) {
367
433
  let pages = (await Promise.all(dataIds.map(async (id) => await this.raw.findById(id)))).filter(isNotNull);
368
- const children = (await mapConcurrent(pages, async (page) => await this.getPageChildren(page, true))).flat();
434
+ const children = (await Promise.all(pages.flatMap(async (page) => await this.getPageChildren(page, true)))).flat();
369
435
  pages = [...pages, ...children];
370
436
  if (await someAsync(pages, async (page) => !(await this.mayUnpublish(page)))) {
371
437
  throw new Error('Current user is not permitted to unpublish one or more pages');
@@ -1 +1 @@
1
- {"version":3,"file":"page.service.js","sourceRoot":"","sources":["../../src/page/page.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"page.service.js","sourceRoot":"","sources":["../../src/page/page.service.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,13 @@
1
+ import { isNotNull } from 'txstate-utils';
1
2
  // array of templateKey strings in use on the page
2
3
  export function collectTemplates(component) {
3
- return new Set(collectComponents(component).map(c => c.templateKey));
4
+ return new Set(collectComponents(component).map(c => c.templateKey).filter(isNotNull));
4
5
  }
5
6
  // recursive helper function to traverse a hydrated page and return a flat array
6
- // of Component instances
7
+ // of Component instances including the Page instance, which will be first
7
8
  export function collectComponents(component) {
8
9
  const ret = [component];
9
- for (const areaList of Object.values(component.areas)) {
10
+ for (const areaList of Object.values(component.areas ?? {})) {
10
11
  for (const component of areaList) {
11
12
  ret.push(...collectComponents(component));
12
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"page.util.js","sourceRoot":"","sources":["../../src/page/page.util.ts"],"names":[],"mappings":"AAEA,kDAAkD;AAClD,MAAM,UAAU,gBAAgB,CAAE,SAAwB;IACxD,OAAO,IAAI,GAAG,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAA;AACtE,CAAC;AAED,gFAAgF;AAChF,yBAAyB;AACzB,MAAM,UAAU,iBAAiB,CAAE,SAAwB;IACzD,MAAM,GAAG,GAAG,CAAC,SAAS,CAAoB,CAAA;IAC1C,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;QACrD,KAAK,MAAM,SAAS,IAAI,QAAQ,EAAE;YAChC,GAAG,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAA;SAC1C;KACF;IACD,OAAO,GAAG,CAAA;AACZ,CAAC"}
1
+ {"version":3,"file":"page.util.js","sourceRoot":"","sources":["../../src/page/page.util.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAEzC,kDAAkD;AAClD,MAAM,UAAU,gBAAgB,CAAE,SAAwB;IACxD,OAAO,IAAI,GAAG,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;AACxF,CAAC;AAED,gFAAgF;AAChF,0EAA0E;AAC1E,MAAM,UAAU,iBAAiB,CAAE,SAAwB;IACzD,MAAM,GAAG,GAAG,CAAC,SAAS,CAAoB,CAAA;IAC1C,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE;QAC3D,KAAK,MAAM,SAAS,IAAI,QAAQ,EAAE;YAChC,GAAG,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAA;SAC1C;KACF;IACD,OAAO,GAAG,CAAA;AACZ,CAAC"}
@@ -1,2 +1,2 @@
1
- import { PageData } from '@dosgato/templating';
2
- export declare function validatePage(page: PageData): Promise<Record<string, string[]>>;
1
+ import { PageData, PageExtras } from '@dosgato/templating';
2
+ export declare function validatePage(page: PageData, extras: PageExtras): Promise<import("@dosgato/templating").ValidationFeedback[]>;
@@ -1,21 +1,28 @@
1
1
  import { templateRegistry } from '../internal.js';
2
- async function validateRecurse(data, path) {
3
- const validator = templateRegistry.get(data.templateKey).validate;
4
- const messages = await validator(data);
5
- let ret = {};
6
- for (const key of Object.keys(messages)) {
7
- ret[[...path, key].join('.')] = messages[key];
8
- }
9
- for (const area of Object.keys(data.areas)) {
2
+ async function validateRecurse(extras, data, path) {
3
+ const validator = templateRegistry.getComponentTemplate(data.templateKey)?.validate;
4
+ const messages = (await validator?.(data, extras)) ?? [];
5
+ for (const area of Object.keys(data.areas ?? {})) {
10
6
  const areaList = data.areas[area];
11
7
  for (let i = 0; i < areaList.length; i++) {
12
8
  const component = areaList[i];
13
- ret = { ...ret, ...await validateRecurse(component, [...path, 'areas', area, String(i)]) };
9
+ const subpath = [...path, 'areas', area, String(i)];
10
+ messages.push(...await validateRecurse({ ...extras, path: subpath.join('.') }, component, subpath));
14
11
  }
15
12
  }
16
- return ret;
13
+ return messages;
17
14
  }
18
- export async function validatePage(page) {
19
- return await validateRecurse(page, []);
15
+ export async function validatePage(page, extras) {
16
+ const tmpl = templateRegistry.getPageTemplate(page.templateKey);
17
+ const messages = (await tmpl.validate?.(page, extras)) ?? [];
18
+ for (const area of Object.keys(page.areas ?? {})) {
19
+ const areaList = page.areas[area];
20
+ for (let i = 0; i < areaList.length; i++) {
21
+ const component = areaList[i];
22
+ const path = ['areas', area, String(i)];
23
+ messages.push(...await validateRecurse({ ...extras, page, path: path.join('.') }, component, path));
24
+ }
25
+ }
26
+ return messages;
20
27
  }
21
28
  //# sourceMappingURL=page.validation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"page.validation.js","sourceRoot":"","sources":["../../src/page/page.validation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEjD,KAAK,UAAU,eAAe,CAAE,IAAmB,EAAE,IAAc;IACjE,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAA;IACjE,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAA;IACtC,IAAI,GAAG,GAA6B,EAAE,CAAA;IACtC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QACvC,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;KAC9C;IACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;YAC7B,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,MAAM,eAAe,CAAC,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;SAC3F;KACF;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAE,IAAc;IAChD,OAAO,MAAM,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;AACxC,CAAC"}
1
+ {"version":3,"file":"page.validation.js","sourceRoot":"","sources":["../../src/page/page.validation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEjD,KAAK,UAAU,eAAe,CAAE,MAAuB,EAAE,IAAmB,EAAE,IAAc;IAC1F,MAAM,SAAS,GAAG,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAA;IACnF,MAAM,QAAQ,GAAG,CAAC,MAAM,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;IACxD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAM,CAAC,IAAI,CAAC,CAAA;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;YAC7B,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;YACnD,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,eAAe,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;SACpG;KACF;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAE,IAAc,EAAE,MAAkB;IACpE,MAAM,IAAI,GAAG,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAC/D,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;IAC5D,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAM,CAAC,IAAI,CAAC,CAAA;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;YAC7B,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;YACvC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,eAAe,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAA;SACpG;KACF;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC"}
@@ -19,14 +19,8 @@ function processFilters(filter) {
19
19
  ors.push(`pagerules.siteId IN (${db.in(binds, siteIds)})`);
20
20
  where.push(ors.join(' OR '));
21
21
  }
22
- if (filter.pagetreeIds?.length) {
23
- const ors = [];
24
- if (filter.pagetreeIds.some(id => !id))
25
- ors.push('pagerules.pagetreeId IS NULL');
26
- const pagetreeIds = filter.pagetreeIds.filter(isNotNull);
27
- if (pagetreeIds.length)
28
- ors.push(`pagerules.pagetreeId IN (${db.in(binds, pagetreeIds)})`);
29
- where.push(ors.join(' OR '));
22
+ if (filter.pagetreeTypes?.length) {
23
+ where.push(`pagerules.pagetreeType IN (${db.in(binds, filter.pagetreeTypes)})`);
30
24
  }
31
25
  if (filter.paths?.length) {
32
26
  where.push(`pagerules.path IN (${db.in(binds, filter.paths)})`);
@@ -93,7 +87,7 @@ export async function getPageRules(filter) {
93
87
  const { binds, where } = processFilters(filter);
94
88
  const rules = await db.getall(`SELECT * FROM pagerules
95
89
  WHERE (${where.join(') AND (')})
96
- ORDER BY siteId, pagetreeId, path`, binds);
90
+ ORDER BY siteId, path`, binds);
97
91
  return rules.map(row => new PageRule(row));
98
92
  }
99
93
  export async function createPageRule(args) {
@@ -107,9 +101,9 @@ export async function createPageRule(args) {
107
101
  columns.push('`siteId`');
108
102
  binds.push(args.siteId);
109
103
  }
110
- if (args.pagetreeId) {
111
- columns.push('`pagetreeId`');
112
- binds.push(args.pagetreeId);
104
+ if (args.pagetreeType) {
105
+ columns.push('`pagetreeType');
106
+ binds.push(args.pagetreeType);
113
107
  }
114
108
  if (args.path) {
115
109
  // TODO: the default path is /. If the specified a site and/or pagetree should it have a different default path?
@@ -159,9 +153,9 @@ export async function updatePageRule(args) {
159
153
  updates.push('`siteId` = ?');
160
154
  binds.push(args.siteId);
161
155
  }
162
- if (typeof args.pagetreeId !== 'undefined') {
163
- updates.push('`pagetreeId` = ?');
164
- binds.push(args.pagetreeId);
156
+ if (typeof args.pagetreeType !== 'undefined') {
157
+ updates.push('`pagetreeType` = ?');
158
+ binds.push(args.pagetreeType);
165
159
  }
166
160
  if (typeof args.path !== 'undefined') {
167
161
  updates.push('`path` = ?');
@@ -1 +1 @@
1
- {"version":3,"file":"pagerule.database.js","sourceRoot":"","sources":["../../src/pagerule/pagerule.database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pagerule.database.js","sourceRoot":"","sources":["../../src/pagerule/pagerule.database.ts"],"names":[],"mappings":"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"}