@opengis/cms 0.0.13 → 0.0.15
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/dist/assets/ArticlesPage-BveM4q3g.js +11 -0
- package/dist/assets/CollectionsPage-D5td-UBm.js +1 -0
- package/dist/assets/ContentBlock.vue_vue_type_script_setup_true_lang-BwF6D-yB.js +30 -0
- package/dist/assets/CreateCollectionPage-Cu0RW5ui.js +76 -0
- package/dist/assets/Dashboard-faSjwmB8.js +11 -0
- package/dist/assets/EditCollectionPage-K5oPPzCd.js +1 -0
- package/dist/assets/MediaPage-BoW3aWgN.js +1 -0
- package/dist/assets/PermissionsPage-DGy5fha2.js +1 -0
- package/dist/assets/SingletonsPage-C1X2xkQE.js +1 -0
- package/dist/assets/UniversalTable.vue_vue_type_script_setup_true_lang-DUqfWJcy.js +6 -0
- package/dist/assets/calendar-hsWc4yH-.js +6 -0
- package/dist/assets/contentForm-DMVC4vho.js +1 -0
- package/dist/assets/database-BTxZQzYy.js +6 -0
- package/dist/assets/index-9GY17iSP.css +1 -0
- package/dist/assets/index-DYyZmLWO.js +2138 -0
- package/dist/assets/index-xsH4HHeE.js +6 -0
- package/dist/assets/logo-Cct5WB26.png +0 -0
- package/dist/assets/plus-D9etvrM2.js +6 -0
- package/dist/assets/save-C2B6th9J.js +11 -0
- package/dist/assets/search-BI-hqhq6.js +6 -0
- package/dist/assets/settings-DbyDiH2g.js +6 -0
- package/dist/assets/square-pen-61CkyXzK.js +6 -0
- package/dist/assets/trash-2-CJSl_r88.js +6 -0
- package/dist/assets/vue.-sixQ7xP-DwXf3zRn.js +1 -0
- package/dist/assets/x-BNquQe5y.js +6 -0
- package/dist/assets/x-circle-C3q70RMH.js +16 -0
- package/dist/images/logo.png +0 -0
- package/dist/index.html +30 -0
- package/package.json +38 -32
- package/server/app.js +32 -10
- package/server/index.js +3 -3
- package/server/migrations/site.sql +26 -8
- package/server/plugins/adminHook.js +78 -0
- package/server/plugins/hook.js +54 -78
- package/server/plugins/vite.js +13 -9
- package/server/routes/cms/controllers/deleteContent.js +60 -0
- package/server/routes/{site → cms}/controllers/deleteMedia.js +46 -46
- package/server/routes/{site → cms}/controllers/downloadMedia.js +48 -48
- package/server/routes/cms/controllers/getContent.js +96 -0
- package/server/routes/{site → cms}/controllers/getPermissions.js +15 -15
- package/server/routes/cms/controllers/insertContent.js +69 -0
- package/server/routes/{site → cms}/controllers/listMedia.js +72 -72
- package/server/routes/{site → cms}/controllers/metadataMedia.js +37 -37
- package/server/routes/{site → cms}/controllers/setPermissions.js +49 -49
- package/server/routes/cms/controllers/updateContent.js +112 -0
- package/server/routes/{site → cms}/controllers/uploadMedia.js +65 -65
- package/server/routes/cms/index.mjs +45 -0
- package/server/routes/contentType/controllers/cms.type.delete.js +22 -0
- package/server/routes/contentType/controllers/cms.type.get.js +22 -0
- package/server/routes/contentType/controllers/cms.type.list.js +25 -0
- package/server/routes/contentType/controllers/cms.type.post.js +22 -0
- package/server/routes/contentType/controllers/cms.type.put.js +24 -0
- package/server/routes/contentType/index.mjs +25 -0
- package/server/routes/contentType/utils/builderCache.js +58 -0
- package/server/routes/fileContent/data/deleteContent.js +34 -0
- package/server/routes/fileContent/data/deleteMedia.js +28 -0
- package/server/routes/fileContent/data/downloadMedia.js +41 -0
- package/server/routes/fileContent/data/getContent.js +32 -0
- package/server/routes/fileContent/data/insertContent.js +37 -0
- package/server/routes/fileContent/data/listMedia.js +47 -0
- package/server/routes/fileContent/data/metadataMedia.js +38 -0
- package/server/routes/fileContent/data/updateContent.js +40 -0
- package/server/routes/fileContent/data/uploadMedia.js +49 -0
- package/server/routes/fileContent/index.mjs +54 -0
- package/server/routes/fileContent/type/contentTypeList.js +7 -0
- package/server/routes/fileContent/type/createContentType.js +31 -0
- package/server/routes/fileContent/type/deleteContentType.js +29 -0
- package/server/routes/fileContent/type/getContentType.js +15 -0
- package/server/routes/fileContent/type/updateContentType.js +40 -0
- package/server/routes/fileContent/utils/astroBuilderCache.js +47 -0
- package/server/routes/fileContent/utils/contentDir.js +12 -0
- package/server/routes/fileContent/utils/contentTypeExists.js +15 -0
- package/server/routes/root.mjs +0 -7
- package/dist/cms.js +0 -6727
- package/dist/cms.umd.cjs +0 -19
- package/dist/style.css +0 -1
- package/server/routes/builder/controllers/cms.builder.delete.js +0 -21
- package/server/routes/builder/controllers/cms.builder.get.js +0 -17
- package/server/routes/builder/controllers/cms.builder.list.js +0 -16
- package/server/routes/builder/controllers/cms.builder.post.js +0 -21
- package/server/routes/builder/controllers/cms.builder.put.js +0 -23
- package/server/routes/builder/index.mjs +0 -22
- package/server/routes/manager/controllers/cms.manager.delete.js +0 -22
- package/server/routes/manager/controllers/cms.manager.get.js +0 -21
- package/server/routes/manager/controllers/cms.manager.list.js +0 -31
- package/server/routes/manager/controllers/cms.manager.post.js +0 -28
- package/server/routes/manager/controllers/cms.manager.put.js +0 -23
- package/server/routes/manager/index.mjs +0 -22
- package/server/routes/media/controllers/delete.js +0 -59
- package/server/routes/media/controllers/edit.js +0 -94
- package/server/routes/media/controllers/list.js +0 -74
- package/server/routes/media/controllers/metadata.js +0 -51
- package/server/routes/media/controllers/preview.js +0 -47
- package/server/routes/media/controllers/upload.js +0 -79
- package/server/routes/media/index.mjs +0 -16
- package/server/routes/site/index.mjs +0 -34
|
@@ -0,0 +1,40 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
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 }
|
|
@@ -0,0 +1,12 @@
|
|
|
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;
|
|
@@ -0,0 +1,15 @@
|
|
|
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
|
+
}
|
package/server/routes/root.mjs
CHANGED
|
@@ -1,12 +1,5 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
-
const schema = {
|
|
4
|
-
querystring: {
|
|
5
|
-
name: { type: 'string', pattern: "^(\\d+)$" },
|
|
6
|
-
token: { type: 'string', pattern: "^(\\d+)$" },
|
|
7
|
-
},
|
|
8
|
-
}
|
|
9
|
-
|
|
10
3
|
export default async function (fastify, opts) {
|
|
11
4
|
fastify.get('/test', async function (request, reply) {
|
|
12
5
|
return { root: true }
|