@opengis/cms 0.0.16 → 0.0.18

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 (201) hide show
  1. package/README.md +96 -3
  2. package/dist/assets/AddUser-CX-McfRW.js +1 -0
  3. package/dist/assets/ApiKeys-DSv1exYv.js +16 -0
  4. package/dist/assets/Appearance-DDtOUvCV.js +6 -0
  5. package/dist/assets/ArticlesPage-D6B3cZsl.js +6 -0
  6. package/dist/assets/BuilderPage-CCeSMVWe.js +1 -0
  7. package/dist/assets/CollectionsBreadcrumb.vue_vue_type_script_setup_true_lang-DVYVfYF4.js +1 -0
  8. package/dist/assets/CollectionsPage-CHk8Cn5k.js +1 -0
  9. package/dist/assets/Dashboard-Bs7sXO6h.js +11 -0
  10. package/dist/assets/EditCollectionPage-gPuLJrN8.js +41 -0
  11. package/dist/assets/EmailPage-DhlWsPxk.js +1 -0
  12. package/dist/assets/EmptyData-Ct-xQv_N.js +1 -0
  13. package/dist/assets/FeedbackPage-DtaOncVv.js +1 -0
  14. package/dist/assets/Logs-CZ5klHNK.js +1 -0
  15. package/dist/assets/MediaBreadcrumb-BpOxt5PK.js +11 -0
  16. package/dist/assets/MediaPage-DqRcZFlO.js +16 -0
  17. package/dist/assets/MenuAddPage-BLcoVgrS.js +1 -0
  18. package/dist/assets/MenuItemPage-B2otXqkz.js +20 -0
  19. package/dist/assets/MenuPage-C00m4Fc_.js +1 -0
  20. package/dist/assets/MonacoEditor.vue_vue_type_script_setup_true_lang-CjoEsC67.js +3 -0
  21. package/dist/assets/PermissionsPage-LtqcCJ14.js +1 -0
  22. package/dist/assets/Settings-BHH6RoBP.js +1 -0
  23. package/dist/assets/SettingsTable-CY5pZx1z.js +1 -0
  24. package/dist/assets/SettingsTitle-t4WJBFxZ.js +1 -0
  25. package/dist/assets/SingletonsPage-Bn2Ypjhs.js +6 -0
  26. package/dist/assets/TagsPage-DAiakEth.js +1 -0
  27. package/dist/assets/UniversalTable.vue_vue_type_script_setup_true_lang-BQ5m4aZd.js +11 -0
  28. package/dist/assets/UniversalTablePagination.vue_vue_type_script_setup_true_lang-DppVBws0.js +1 -0
  29. package/dist/assets/Users-CMH5j0db.js +1 -0
  30. package/dist/assets/UsersPage-CDGreEib.js +1 -0
  31. package/dist/assets/arrow-up-DCe0WsrM.js +16 -0
  32. package/dist/assets/{calendar-hsWc4yH-.js → calendar-o9t4MkD2.js} +1 -1
  33. package/dist/assets/chevron-left-WFftVS9c.js +6 -0
  34. package/dist/assets/chevron-right-BiiSb3Be.js +6 -0
  35. package/dist/assets/contentForm-unZQhjCu.js +6 -0
  36. package/dist/assets/en-BDx3Svx8.js +1 -0
  37. package/dist/assets/eye-Dijywc6g.js +6 -0
  38. package/dist/assets/file-B_duymIT.js +6 -0
  39. package/dist/assets/general-CkN_0qIV.js +1 -0
  40. package/dist/assets/index-BIp7eSXk.js +1 -0
  41. package/dist/assets/index-DCW2e4Az.js +9 -0
  42. package/dist/assets/index-DGweaj24.js +1 -0
  43. package/dist/assets/index-W-qQIppj-BDlsxaGB.js +1 -0
  44. package/dist/assets/index-W-qQIppj-BsopI3Hz-BIZR-dhy.js +1 -0
  45. package/dist/assets/index-oQz9FOqL.css +1 -0
  46. package/dist/assets/index-yMJAVBXk.js +290 -0
  47. package/dist/assets/list-CXRbSNky.js +6 -0
  48. package/dist/assets/pencil-CwnPP4IJ.js +6 -0
  49. package/dist/assets/{plus-D9etvrM2.js → plus-DLR44m6p.js} +1 -1
  50. package/dist/assets/save-FeDrOUOd.js +6 -0
  51. package/dist/assets/{search-BI-hqhq6.js → search-C4-fHihx.js} +1 -1
  52. package/dist/assets/{square-pen-61CkyXzK.js → square-pen-xVs4e8Yb.js} +1 -1
  53. package/dist/assets/{trash-2-CJSl_r88.js → trash-2-BGXMNU3d.js} +1 -1
  54. package/dist/assets/uk-BA7DIKEL.js +1 -0
  55. package/dist/assets/useDebounce-DFq3rxAW.js +1 -0
  56. package/dist/assets/vs-form-reletion-link-C-xrdHDl.js +20 -0
  57. package/dist/assets/vs-form-reletion-link-bk-9ZkDH.css +1 -0
  58. package/dist/assets/vue.-sixQ7xP-CUPNuJcq.js +1 -0
  59. package/dist/assets/vuedraggable.umd-W_2WTF6i.js +14 -0
  60. package/dist/assets/{x-BNquQe5y.js → x-D2t-wfBe.js} +1 -1
  61. package/dist/index.html +14 -9
  62. package/module/cms/card/cms.content.table/index.yml +17 -0
  63. package/module/cms/card/cms.content.table/main_info.hbs +26 -0
  64. package/module/cms/card/cms.menu.table/content_info.hbs +16 -0
  65. package/module/cms/card/cms.menu.table/index.yml +18 -0
  66. package/module/cms/card/cms.menu.table/main_info.hbs +22 -0
  67. package/module/cms/card/cms.settings.table/index.yml +13 -0
  68. package/module/cms/card/cms.settings.table/main_info.hbs +20 -0
  69. package/module/cms/cls/content.status.json +18 -0
  70. package/module/cms/cls/user_type.json +10 -0
  71. package/module/cms/form/admin.users.form.json +78 -0
  72. package/module/cms/form/cms.content.form.json +79 -0
  73. package/module/cms/form/cms.menu.form.json +69 -0
  74. package/module/cms/form/cms.settings.form.json +32 -0
  75. package/module/cms/menu.json +24 -0
  76. package/module/cms/router.js +154 -0
  77. package/module/cms/select/cms.page_type.sql +2 -0
  78. package/module/cms/select/collection.sql +1 -0
  79. package/module/cms/select/locale.sql +17 -0
  80. package/module/cms/select/news_tag_id.sql +12 -0
  81. package/module/cms/select/tag_id.sql +1 -0
  82. package/module/cms/table/admin.users.table.json +54 -0
  83. package/module/cms/table/cms.content.table.json +106 -0
  84. package/module/cms/table/cms.menu.table.json +73 -0
  85. package/module/cms/table/cms.settings.table.json +57 -0
  86. package/module/cms/table/collection.default.table.json +102 -0
  87. package/module/cms/table/single.default.table.json +115 -0
  88. package/package.json +36 -31
  89. package/plugin.js +63 -23
  90. package/server/app.js +20 -3
  91. package/server/functions/getDraftKey.js +22 -0
  92. package/server/index.js +2 -3
  93. package/server/migrations/fixes.sql +124 -0
  94. package/server/migrations/site.sql +338 -249
  95. package/server/plugins/adminHook.js +2 -2
  96. package/server/plugins/hook.js +53 -61
  97. package/server/plugins/vite.js +5 -5
  98. package/server/routes/cms/controllers/cmsStat.js +56 -0
  99. package/server/routes/cms/controllers/cmsSuggest.js +58 -0
  100. package/server/routes/cms/controllers/deleteContent.js +114 -59
  101. package/server/routes/cms/controllers/deleteMedia.js +75 -46
  102. package/server/routes/cms/controllers/downloadMedia.js +48 -48
  103. package/server/routes/cms/controllers/getContent.js +110 -95
  104. package/server/routes/cms/controllers/getContentBySlug.js +95 -0
  105. package/server/routes/cms/controllers/getPermissions.js +15 -15
  106. package/server/routes/cms/controllers/insertContent.js +218 -68
  107. package/server/routes/cms/controllers/listMedia.js +93 -72
  108. package/server/routes/cms/controllers/metadataMedia.js +38 -37
  109. package/server/routes/cms/controllers/properties.get.js +53 -0
  110. package/server/routes/cms/controllers/properties.post.js +99 -0
  111. package/server/routes/cms/controllers/searchContent.js +205 -0
  112. package/server/routes/cms/controllers/setPermissions.js +49 -49
  113. package/server/routes/cms/controllers/translate.js +90 -0
  114. package/server/routes/cms/controllers/updateContent.js +238 -111
  115. package/server/routes/cms/controllers/uploadMedia.js +78 -65
  116. package/server/routes/cms/index.mjs +81 -12
  117. package/server/routes/cms/utils/additionalData.js +36 -0
  118. package/server/routes/cms/utils/getCollection.js +82 -0
  119. package/server/routes/cms/utils/getSingle.js +188 -0
  120. package/server/routes/cms/utils/insertContentLocalization.js +87 -0
  121. package/server/routes/cms/utils/requestTranslation.js +85 -0
  122. package/server/routes/cms/utils/updateLocalization.js +48 -0
  123. package/server/routes/cmsSpace/controllers/deleteSpace.js +26 -0
  124. package/server/routes/cmsSpace/controllers/getSpaces.js +28 -0
  125. package/server/routes/cmsSpace/controllers/insertSpace.js +22 -0
  126. package/server/routes/cmsSpace/controllers/updateSpace.js +24 -0
  127. package/server/routes/cmsSpace/index.mjs +20 -0
  128. package/server/routes/contentType/controllers/addContentType.js +162 -0
  129. package/server/routes/contentType/controllers/contentTypeList.js +54 -0
  130. package/server/routes/contentType/controllers/delContentType.js +75 -0
  131. package/server/routes/contentType/controllers/editContentType.js +61 -0
  132. package/server/routes/contentType/controllers/getContentType.js +37 -0
  133. package/server/routes/contentType/index.mjs +29 -19
  134. package/server/routes/contentType/utils/updateContents.js +29 -0
  135. package/server/routes/contentType/utils/updateCustomContentTable.js +56 -0
  136. package/server/routes/feedback/controllers/email.list.js +25 -0
  137. package/server/routes/feedback/controllers/feedback.js +49 -0
  138. package/server/routes/feedback/controllers/feedback.list.js +38 -0
  139. package/server/routes/feedback/controllers/news.subscriptions.js +44 -0
  140. package/server/routes/feedback/index.mjs +72 -0
  141. package/server/routes/logs/controllers/export.user.logs.js +78 -0
  142. package/server/routes/logs/controllers/user.logs.js +45 -0
  143. package/server/routes/logs/index.mjs +9 -0
  144. package/server/routes/menu/controllers/addMenu.js +38 -0
  145. package/server/routes/menu/controllers/delMenu.js +32 -0
  146. package/server/routes/menu/controllers/editMenu.js +42 -0
  147. package/server/routes/menu/controllers/getMenu.js +43 -0
  148. package/server/routes/menu/index.mjs +13 -0
  149. package/server/routes/migration/controllers/collectionToCustom.js +137 -0
  150. package/server/routes/migration/index.mjs +8 -0
  151. package/server/routes/tags/controllers/add.tags.js +25 -0
  152. package/server/routes/tags/controllers/del.tags.js +20 -0
  153. package/server/routes/tags/controllers/edit.tags.js +26 -0
  154. package/server/routes/tags/controllers/get.tags.js +16 -0
  155. package/server/routes/tags/index.mjs +14 -0
  156. package/server/templates/page/login.html +73 -5
  157. package/server/templates/select/core.user_mentioned.sql +2 -0
  158. package/src/index.ts +122 -0
  159. package/dist/assets/ArticlesPage-BveM4q3g.js +0 -11
  160. package/dist/assets/CollectionsPage-D5td-UBm.js +0 -1
  161. package/dist/assets/ContentBlock.vue_vue_type_script_setup_true_lang-BwF6D-yB.js +0 -30
  162. package/dist/assets/CreateCollectionPage-Cu0RW5ui.js +0 -76
  163. package/dist/assets/Dashboard-faSjwmB8.js +0 -11
  164. package/dist/assets/EditCollectionPage-K5oPPzCd.js +0 -1
  165. package/dist/assets/MediaPage-BoW3aWgN.js +0 -1
  166. package/dist/assets/PermissionsPage-DGy5fha2.js +0 -1
  167. package/dist/assets/SingletonsPage-C1X2xkQE.js +0 -1
  168. package/dist/assets/UniversalTable.vue_vue_type_script_setup_true_lang-DUqfWJcy.js +0 -6
  169. package/dist/assets/contentForm-DMVC4vho.js +0 -1
  170. package/dist/assets/database-BTxZQzYy.js +0 -6
  171. package/dist/assets/index-9GY17iSP.css +0 -1
  172. package/dist/assets/index-DYyZmLWO.js +0 -2138
  173. package/dist/assets/index-xsH4HHeE.js +0 -6
  174. package/dist/assets/save-C2B6th9J.js +0 -11
  175. package/dist/assets/settings-DbyDiH2g.js +0 -6
  176. package/dist/assets/vue.-sixQ7xP-DwXf3zRn.js +0 -1
  177. package/dist/assets/x-circle-C3q70RMH.js +0 -16
  178. package/server/routes/contentType/controllers/cms.type.delete.js +0 -22
  179. package/server/routes/contentType/controllers/cms.type.get.js +0 -22
  180. package/server/routes/contentType/controllers/cms.type.list.js +0 -25
  181. package/server/routes/contentType/controllers/cms.type.post.js +0 -22
  182. package/server/routes/contentType/controllers/cms.type.put.js +0 -24
  183. package/server/routes/contentType/utils/builderCache.js +0 -58
  184. package/server/routes/fileContent/data/deleteContent.js +0 -34
  185. package/server/routes/fileContent/data/deleteMedia.js +0 -28
  186. package/server/routes/fileContent/data/downloadMedia.js +0 -41
  187. package/server/routes/fileContent/data/getContent.js +0 -32
  188. package/server/routes/fileContent/data/insertContent.js +0 -37
  189. package/server/routes/fileContent/data/listMedia.js +0 -47
  190. package/server/routes/fileContent/data/metadataMedia.js +0 -38
  191. package/server/routes/fileContent/data/updateContent.js +0 -40
  192. package/server/routes/fileContent/data/uploadMedia.js +0 -49
  193. package/server/routes/fileContent/index.mjs +0 -54
  194. package/server/routes/fileContent/type/contentTypeList.js +0 -7
  195. package/server/routes/fileContent/type/createContentType.js +0 -31
  196. package/server/routes/fileContent/type/deleteContentType.js +0 -29
  197. package/server/routes/fileContent/type/getContentType.js +0 -15
  198. package/server/routes/fileContent/type/updateContentType.js +0 -40
  199. package/server/routes/fileContent/utils/astroBuilderCache.js +0 -47
  200. package/server/routes/fileContent/utils/contentDir.js +0 -12
  201. package/server/routes/fileContent/utils/contentTypeExists.js +0 -15
@@ -1,49 +0,0 @@
1
- import path from 'node:path';
2
- import { mkdir, rename } from 'node:fs/promises';
3
-
4
- import { config, getFolder } from "@opengis/fastify-table/utils.js";
5
-
6
- import { getMimeType, getFileType, uploadMultiPart } from '@opengis/fastify-file/utils.js';
7
-
8
- const rootDir = getFolder(config, 'local');
9
-
10
- export default async function uploadMedia(req, reply) {
11
- const { query = {} } = req;
12
-
13
- if (query.subdir && (typeof query.subdir !== 'string' || query.subdir.includes('..'))) {
14
- return reply.status(403).send('invalid query params: subdir');
15
- }
16
-
17
- // upload assets
18
- if (req.headers['content-type']?.split?.(';')?.shift?.() === 'multipart/form-data') {
19
- const file = await uploadMultiPart(req);
20
- const filename = `${file.newFilename}${path.extname(file.filepath)}`;
21
- const mime = getMimeType(file.filepath);
22
- const filetype = getFileType(file.filepath);
23
-
24
- const newfilepath = path.join(rootDir, 'media', query.subdir || '', filename);
25
- await mkdir(path.dirname(newfilepath), { recursive: true });
26
- await rename(file.filepath, newfilepath);
27
-
28
- const relpath = path.join('/media', query.subdir || '', filename).replace(/\\/g, '/');
29
-
30
- return reply.status(200).send({
31
- relpath,
32
- mime,
33
- filename,
34
- filetype,
35
- type: 'file',
36
- });
37
- }
38
-
39
- // create directory
40
- const relpath = path.join('/media', query.subdir).replace(/\\/g, '/');
41
- const dirpath = path.join(rootDir, relpath);
42
- await mkdir(dirpath, { recursive: true });
43
-
44
- return reply.status(200).send({
45
- relpath,
46
- dirname: path.basename(query.subdir),
47
- type: 'dir',
48
- });
49
- }
@@ -1,54 +0,0 @@
1
- // type
2
- import cmsTypeGet from './type/getContentType.js';
3
- import cmsTypeList from './type/contentTypeList.js';
4
- import cmsTypePut from './type/updateContentType.js';
5
- import cmsTypePost from './type/createContentType.js';
6
- import cmsTypeDelete from './type/deleteContentType.js';
7
-
8
- // media
9
- import listMedia from './data/listMedia.js';
10
- import metadata from './data/metadataMedia.js';
11
- import uploadMedia from './data/uploadMedia.js';
12
- import del from './data/deleteMedia.js';
13
- import download from './data/downloadMedia.js';
14
-
15
- // content
16
- import getContent from './data/getContent.js';
17
- import insertContent from './data/insertContent.js';
18
- import updateContent from './data/updateContent.js';
19
- import deleteContent from './data/deleteContent.js';
20
-
21
- const schemaObj = {
22
- type: 'object',
23
- properties: {
24
- params: {
25
- type: 'string',
26
- enum: ['preview', 'download'],
27
- }
28
- }
29
- };
30
-
31
- const params = { config: { policy: ['site', 'user'] } };
32
-
33
- export default async function route(app) {
34
- // content type
35
- app.post('/cms-type', { config: { policy: ['site'] } }, cmsTypePost);
36
- app.put('/cms-type/:id', { config: { policy: ['site'] } }, cmsTypePut);
37
- app.get('/cms-type', { config: { policy: ['site'] } }, cmsTypeList);
38
- app.get('/cms-type/:id', { config: { policy: ['site'] } }, cmsTypeGet);
39
- app.delete('/cms-type/:id', { config: { policy: ['site'] } }, cmsTypeDelete);
40
-
41
- // content media
42
- app.post('/cms-media/upload', params, uploadMedia);
43
- app.get('/cms-media', params, listMedia);
44
- // app.get('/cms-media/:id/file', { ...params, schema: schemaObj }, download);
45
- app.get('/cms-media/*', params, metadata); // preview + metadata + download via query params
46
- app.delete('/cms-media/*', params, del);
47
-
48
- // content data
49
- app.get('/cms/:type/:id?', params, getContent);
50
- app.post('/cms/:type/:id?', params, insertContent);
51
- app.put('/cms/:type/:id', params, updateContent);
52
- app.delete('/cms/:type/:id', params, deleteContent);
53
- }
54
-
@@ -1,7 +0,0 @@
1
- import { contentTypes } from '../utils/astroBuilderCache.js';
2
-
3
- export default async function builderList({ params = {} }, reply) {
4
- const rows = Object.values(contentTypes || {}).filter(Boolean);
5
-
6
- return reply.status(200).send({ total: rows.length, rows });
7
- }
@@ -1,31 +0,0 @@
1
- import path from 'node:path';
2
- import { mkdirSync, writeFileSync } from 'node:fs';
3
-
4
- import { config } from '@opengis/fastify-table/utils.js';
5
-
6
- import contentDir from '../utils/contentDir.js';
7
- import contentTypeExists from '../utils/contentTypeExists.js';
8
-
9
- export default async function builderPost(req, reply) {
10
- const { body = {} } = req;
11
-
12
- if (!body.type) { Object.assign(body, { type: 'collection' }) };
13
-
14
- if (!body.slug) {
15
- return reply.status(400).send('not enough body params: slug');
16
- }
17
-
18
- if (typeof body.slug !== 'string' || body.slug.includes('..')) {
19
- return reply.status(409).send('invalid body params: slug');
20
- }
21
-
22
- if (contentTypeExists(body.slug)) {
23
- return reply.status(400).send('type already exists');
24
- }
25
-
26
- // support watcher?
27
- mkdirSync(path.join(contentDir, body.slug), { recursive: true });
28
- writeFileSync(path.join(contentDir, body.slug, 'metadata.json'), JSON.stringify(body));
29
-
30
- return { id: body.slug, rows: [body] };
31
- }
@@ -1,29 +0,0 @@
1
- import path from 'node:path';
2
- import { rm } from 'node:fs/promises';
3
-
4
- import { config } from '@opengis/fastify-table/utils.js';
5
-
6
- import contentDir from '../utils/contentDir.js';
7
- import contentTypeExists from '../utils/contentTypeExists.js';
8
-
9
- export default async function builderDelete({
10
- params = {},
11
- }, reply) {
12
- if (!params.id) {
13
- return reply.status(400).send('not enough params: id');
14
- }
15
-
16
- if (config.cms?.provider !== 'file') {
17
- return reply.status(400).send('invalid provider');
18
- }
19
-
20
- if (!contentTypeExists(params.id)) {
21
- return reply.status(400).send('nothing to delete');
22
- }
23
-
24
- if (params.id) {
25
- await rm(path.join(contentDir, params.id), { recursive: true });
26
- }
27
-
28
- return { id: params.id };
29
- }
@@ -1,15 +0,0 @@
1
- import { config } from '@opengis/fastify-table/utils.js';
2
-
3
- import { contentTypes } from '../utils/astroBuilderCache.js';
4
-
5
- export default async function builderGet({ params = {} }, reply) {
6
- if (!params.id) {
7
- return reply.status(400).send('not enough params: id');
8
- }
9
-
10
- if (config.cms?.provider !== 'file') {
11
- return reply.status(400).send('invalid provider');
12
- }
13
-
14
- return reply.status(200).send({ total: contentTypes[params.id] ? 1 : 0, rows: [contentTypes[params.id]].filter(Boolean) });
15
- }
@@ -1,40 +0,0 @@
1
- import path from 'node:path';
2
- import { writeFileSync } from 'node:fs';
3
- import { rename } from 'node:fs/promises';
4
-
5
- import { config } from '@opengis/fastify-table/utils.js';
6
-
7
- import contentDir from '../utils/contentDir.js';
8
- import contentTypeExists from '../utils/contentTypeExists.js';
9
-
10
- export default async function builderPut(req, reply) {
11
- const { body = {}, params = {} } = req;
12
-
13
- if (!params.id) {
14
- return reply.status(400).send('not enough params: id');
15
- }
16
-
17
- if (body.slug && (typeof body.slug !== 'string' || body.slug.includes('..'))) {
18
- return reply.status(409).send('invalid body params: slug');
19
- }
20
-
21
- const exists = contentTypeExists(params.id);
22
-
23
- if (!exists) {
24
- return reply.status(400).send('nothing to edit');
25
- }
26
-
27
- const metadataPath = path.join(contentDir, params.id, 'metadata.json');
28
- writeFileSync(metadataPath, JSON.stringify(body));
29
-
30
- if (body.slug && params.id !== body.slug) {
31
- await rename(
32
- path.join(contentDir, params.id),
33
- path.join(contentDir, body.slug), {
34
- force: true,
35
- }
36
- );
37
- }
38
-
39
- return { id: params.id, rows: [body] };
40
- }
@@ -1,47 +0,0 @@
1
- const contentTypes = {};
2
-
3
- import { dirname, basename } from 'node:path';
4
- import { readdirSync } from 'node:fs';
5
-
6
- import { subscribe } from '@parcel/watcher';
7
-
8
- import contentDir from './contentDir.js';
9
- import contentTypeMetadata from './contentTypeExists.js';
10
-
11
- const types = readdirSync(contentDir, { withFileTypes: true })
12
- .filter(el => el.isDirectory())
13
- .map(el => el.name);
14
-
15
- types.forEach(el => {
16
- contentTypes[el] = contentTypeMetadata(el, 'metadata.json');
17
- });
18
-
19
- async function watchDirectory() {
20
- await subscribe(contentDir, (err, events) => {
21
- if (err) throw new Error(err.toString());
22
-
23
- const { path: filepath, type } = events[0];
24
- if (dirname(filepath) === contentDir && type === 'delete') {
25
- delete contentTypes[basename(filepath)];
26
- }
27
- if (dirname(filepath) === contentDir && type === 'create') {
28
- const data = contentTypeMetadata(basename(filepath), 'metadata.json');
29
- contentTypes[basename(filepath)] = data;
30
- }
31
- if (false && /* contentTypeMetadata(type) && */ basename(filepath) === 'metadata.json' && type === 'update') {
32
- const type = dirname(filepath);
33
- const data = contentTypeMetadata(type, 'metadata.json');
34
- contentTypes[type] = data ?? undefined;
35
- }
36
- console.log(filepath, type);
37
- });
38
- }
39
-
40
- watchDirectory()
41
-
42
- export default function astroBuilderCache(name) {
43
- if (name) { return contentTypes[name]; }
44
- return contentTypes;
45
- }
46
-
47
- export { contentTypes }
@@ -1,12 +0,0 @@
1
- import path from 'node:path';
2
- import { mkdirSync } from 'node:fs';
3
-
4
- // import { fileURLToPath } from 'url';
5
-
6
- // const dirname = path.dirname(fileURLToPath(import.meta.url));
7
-
8
- const contentDir = path.join(process.cwd(), 'src/content');
9
-
10
- mkdirSync(contentDir, { recursive: true });
11
-
12
- export default contentDir;
@@ -1,15 +0,0 @@
1
- import { join } from 'node:path';
2
- import { existsSync, readFileSync } from 'node:fs';
3
-
4
- import contentDir from './contentDir.js';
5
-
6
- export default function contentTypeExists(contentType, id = 'metadata.json') {
7
- if (!contentType) return false;
8
-
9
- const metadataPath = join(contentDir, contentType || '', id);
10
-
11
- if (!existsSync(metadataPath)) return false;
12
- if (!id) return true;
13
-
14
- return JSON.parse(readFileSync(metadataPath, 'utf8') || '{}');
15
- }