nextjs-cms 0.9.32 → 0.9.33
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/api/actions/pages.d.ts +3 -3
- package/dist/api/trpc/root.d.ts +3 -3
- package/dist/api/trpc/routers/navigation.d.ts +3 -3
- package/dist/api/trpc/server.d.ts +9 -9
- package/dist/cli/lib/update-sections.d.ts.map +1 -1
- package/dist/cli/lib/update-sections.js +217 -59
- package/dist/cli/utils/schema-generator.d.ts.map +1 -1
- package/dist/cli/utils/schema-generator.js +4 -1
- package/dist/core/fields/date-range.d.ts +4 -4
- package/dist/core/fields/document.d.ts.map +1 -1
- package/dist/core/fields/document.js +13 -1
- package/dist/core/fields/photo.d.ts +6 -6
- package/dist/core/fields/photo.d.ts.map +1 -1
- package/dist/core/fields/photo.js +30 -9
- package/dist/core/fields/richText.d.ts +8 -8
- package/dist/core/fields/select.d.ts +13 -0
- package/dist/core/fields/select.d.ts.map +1 -1
- package/dist/core/fields/select.js +1 -0
- package/dist/core/fields/selectMultiple.d.ts +9 -0
- package/dist/core/fields/selectMultiple.d.ts.map +1 -1
- package/dist/core/fields/selectMultiple.js +1 -0
- package/dist/core/fields/video.d.ts +1 -0
- package/dist/core/fields/video.d.ts.map +1 -1
- package/dist/core/fields/video.js +18 -2
- package/dist/core/sections/category.d.ts +44 -44
- package/dist/core/sections/hasItems.d.ts +50 -50
- package/dist/core/sections/section.d.ts +23 -23
- package/dist/core/sections/simple.d.ts +6 -6
- package/dist/db/schema.d.ts +17 -0
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +1 -0
- package/dist/validators/document.d.ts.map +1 -1
- package/dist/validators/document.js +2 -1
- package/dist/validators/file-extension.d.ts +3 -0
- package/dist/validators/file-extension.d.ts.map +1 -0
- package/dist/validators/file-extension.js +9 -0
- package/dist/validators/photo.d.ts.map +1 -1
- package/dist/validators/photo.js +2 -1
- package/dist/validators/video.d.ts.map +1 -1
- package/dist/validators/video.js +2 -1
- package/package.json +1 -1
package/dist/db/schema.d.ts
CHANGED
|
@@ -409,6 +409,23 @@ export declare const NextJsCmsTablesTable: import("drizzle-orm/mysql-core").MySq
|
|
|
409
409
|
identity: undefined;
|
|
410
410
|
generated: undefined;
|
|
411
411
|
}, {}, {}>;
|
|
412
|
+
config: import("drizzle-orm/mysql-core").MySqlColumn<{
|
|
413
|
+
name: "config";
|
|
414
|
+
tableName: "__nextjs_cms_tables";
|
|
415
|
+
dataType: "string";
|
|
416
|
+
columnType: "MySqlText";
|
|
417
|
+
data: string;
|
|
418
|
+
driverParam: string;
|
|
419
|
+
notNull: false;
|
|
420
|
+
hasDefault: false;
|
|
421
|
+
isPrimaryKey: false;
|
|
422
|
+
isAutoincrement: false;
|
|
423
|
+
hasRuntimeDefault: false;
|
|
424
|
+
enumValues: [string, ...string[]];
|
|
425
|
+
baseColumn: never;
|
|
426
|
+
identity: undefined;
|
|
427
|
+
generated: undefined;
|
|
428
|
+
}, {}, {}>;
|
|
412
429
|
createdAt: import("drizzle-orm/mysql-core").MySqlColumn<{
|
|
413
430
|
name: "created_at";
|
|
414
431
|
tableName: "__nextjs_cms_tables";
|
package/dist/db/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYtB,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAchC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAa7B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYtB,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAchC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAa7B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK/B,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI/B,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQ5B,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyBrB,CAAA"}
|
package/dist/db/schema.js
CHANGED
|
@@ -48,6 +48,7 @@ export const AccessTokensTable = mysqlTable('access_tokens', {
|
|
|
48
48
|
export const NextJsCmsTablesTable = mysqlTable('__nextjs_cms_tables', {
|
|
49
49
|
tableName: varchar('name', { length: 100 }).primaryKey().notNull(),
|
|
50
50
|
sectionName: varchar('section', { length: 200 }),
|
|
51
|
+
config: longtext('config'),
|
|
51
52
|
createdAt: timestamp('created_at').defaultNow().notNull(),
|
|
52
53
|
});
|
|
53
54
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/validators/document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/validators/document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAIxE,eAAO,MAAM,mBAAmB,GAAI,OAAO,yBAAyB,EAAE,iBAAe,uHA6DpF,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as z from 'zod';
|
|
2
2
|
import getString from '../translations/index.js';
|
|
3
|
+
import { isAllowedFileExtension } from './file-extension.js';
|
|
3
4
|
export const documentFieldSchema = (field, language = 'en') => {
|
|
4
5
|
const requiredMessage = getString('requiredField', language);
|
|
5
6
|
/**
|
|
@@ -19,7 +20,7 @@ export const documentFieldSchema = (field, language = 'en') => {
|
|
|
19
20
|
/**
|
|
20
21
|
* File extension
|
|
21
22
|
*/
|
|
22
|
-
if (!
|
|
23
|
+
if (!isAllowedFileExtension(file.name, field.extensions)) {
|
|
23
24
|
ctx.addIssue({
|
|
24
25
|
code: z.ZodIssueCode.custom,
|
|
25
26
|
message: getString('invalidFileExtension', language, { extensions: field.extensions.join(', ') }),
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-extension.d.ts","sourceRoot":"","sources":["../../src/validators/file-extension.ts"],"names":[],"mappings":"AAAA,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,sBAE1D;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,SAAS,MAAM,EAAE,WAM5F"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export function getNormalizedFileExtension(fileName) {
|
|
2
|
+
return fileName.split('.').pop()?.toLowerCase();
|
|
3
|
+
}
|
|
4
|
+
export function isAllowedFileExtension(fileName, allowedExtensions) {
|
|
5
|
+
const fileExtension = getNormalizedFileExtension(fileName);
|
|
6
|
+
if (!fileExtension)
|
|
7
|
+
return false;
|
|
8
|
+
return allowedExtensions.some((extension) => extension.toLowerCase() === fileExtension);
|
|
9
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"photo.d.ts","sourceRoot":"","sources":["../../src/validators/photo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"photo.d.ts","sourceRoot":"","sources":["../../src/validators/photo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AA8BrE,eAAO,MAAM,gBAAgB,GAAI,OAAO,sBAAsB,EAAE,iBAAe,uHAmF9E,CAAA"}
|
package/dist/validators/photo.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as z from 'zod';
|
|
2
2
|
import getString from '../translations/index.js';
|
|
3
|
+
import { isAllowedFileExtension } from './file-extension.js';
|
|
3
4
|
/**
|
|
4
5
|
* Helper function to read a File object and return image dimensions.
|
|
5
6
|
*/
|
|
@@ -41,7 +42,7 @@ export const photoFieldSchema = (field, language = 'en') => {
|
|
|
41
42
|
/**
|
|
42
43
|
* File extension
|
|
43
44
|
*/
|
|
44
|
-
if (!
|
|
45
|
+
if (!isAllowedFileExtension(file.name, field.extensions)) {
|
|
45
46
|
ctx.addIssue({
|
|
46
47
|
code: 'custom',
|
|
47
48
|
message: getString('invalidImageExtension', language, { extensions: field.extensions.join(', ') }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../src/validators/video.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../src/validators/video.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAIrE,eAAO,MAAM,gBAAgB,GAAI,OAAO,sBAAsB,EAAE,iBAAe,uHAgE9E,CAAA"}
|
package/dist/validators/video.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as z from 'zod';
|
|
2
2
|
import getString from '../translations/index.js';
|
|
3
|
+
import { isAllowedFileExtension } from './file-extension.js';
|
|
3
4
|
export const videoFieldSchema = (field, language = 'en') => {
|
|
4
5
|
const requiredMessage = getString('requiredField', language);
|
|
5
6
|
/**
|
|
@@ -19,7 +20,7 @@ export const videoFieldSchema = (field, language = 'en') => {
|
|
|
19
20
|
/**
|
|
20
21
|
* File extension
|
|
21
22
|
*/
|
|
22
|
-
if (!
|
|
23
|
+
if (!isAllowedFileExtension(file.name, field.extensions)) {
|
|
23
24
|
ctx.addIssue({
|
|
24
25
|
code: 'custom',
|
|
25
26
|
message: getString('invalidFileExtension', language, { extensions: field.extensions.join(', ') }),
|