nextjs-cms 0.9.13 → 0.9.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/api/index.d.ts +5 -3
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/lib/serverActions.d.ts +5 -3
- package/dist/api/lib/serverActions.d.ts.map +1 -1
- package/dist/api/lib/serverActions.js +14 -2
- package/dist/api/root.d.ts +10 -6
- package/dist/api/root.d.ts.map +1 -1
- package/dist/api/routers/config.d.ts.map +1 -1
- package/dist/api/routers/hasItemsSection.d.ts +1 -0
- package/dist/api/routers/hasItemsSection.d.ts.map +1 -1
- package/dist/api/routers/navigation.d.ts +3 -3
- package/dist/api/routers/simpleSection.d.ts +1 -0
- package/dist/api/routers/simpleSection.d.ts.map +1 -1
- package/dist/cli/lib/update-sections.d.ts.map +1 -1
- package/dist/cli/lib/update-sections.js +9 -6
- package/dist/core/config/config-loader.d.ts +5 -1
- package/dist/core/config/config-loader.d.ts.map +1 -1
- package/dist/core/config/config-loader.js +9 -6
- package/dist/core/fields/select.d.ts +1 -1
- package/dist/core/sections/category.d.ts +6 -6
- package/dist/core/sections/hasItems.d.ts +6 -6
- package/dist/core/sections/section.d.ts +4 -4
- package/dist/core/sections/simple.d.ts +4 -4
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simpleSection.d.ts","sourceRoot":"","sources":["../../../src/api/routers/simpleSection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAOxB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBA2Du4a,CAAC;;;;;uBAAuE,CAAC;;;;;;uBAA6G,CAAC
|
|
1
|
+
{"version":3,"file":"simpleSection.d.ts","sourceRoot":"","sources":["../../../src/api/routers/simpleSection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAOxB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBA2Du4a,CAAC;;;;;uBAAuE,CAAC;;;;;;uBAA6G,CAAC;;;;;;;;;;;;;;;;GAD5lb,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-sections.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/update-sections.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"update-sections.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/update-sections.ts"],"names":[],"mappings":"AA4wCA,wBAAsB,cAAc,CAAC,SAAS,UAAQ,iBAoBrD"}
|
|
@@ -573,8 +573,8 @@ async function updateTable(table, s) {
|
|
|
573
573
|
else {
|
|
574
574
|
log.info(chalk.yellow(`- Field ${chalk.underline.italic(field)} not removed.`));
|
|
575
575
|
}
|
|
576
|
-
s.start();
|
|
577
576
|
}
|
|
577
|
+
s.start();
|
|
578
578
|
}
|
|
579
579
|
/**
|
|
580
580
|
* Execute ALTER TABLE statements
|
|
@@ -635,10 +635,15 @@ const main = async (s) => {
|
|
|
635
635
|
console.log(chalk.gray(sections.map((s) => s.name).join(', ')));
|
|
636
636
|
/**
|
|
637
637
|
* Let's see if the table `__nextjs_cms_tables` exists in the database.
|
|
638
|
-
* If it doesn't, we'll create it
|
|
639
|
-
* It has two fields: `name` and `created_at`.
|
|
638
|
+
* If it doesn't, we'll create it using the same schema as `NextJsCmsTablesTable`.
|
|
640
639
|
*/
|
|
641
|
-
await db.execute(sql `
|
|
640
|
+
await db.execute(sql `
|
|
641
|
+
CREATE TABLE IF NOT EXISTS __nextjs_cms_tables (
|
|
642
|
+
name VARCHAR(100) NOT NULL PRIMARY KEY,
|
|
643
|
+
section VARCHAR(200),
|
|
644
|
+
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
645
|
+
)
|
|
646
|
+
`);
|
|
642
647
|
/**
|
|
643
648
|
* Get the existing tables from the database
|
|
644
649
|
*/
|
|
@@ -955,7 +960,6 @@ const main = async (s) => {
|
|
|
955
960
|
],
|
|
956
961
|
initialValue: 'yes',
|
|
957
962
|
});
|
|
958
|
-
s.start();
|
|
959
963
|
if (overwriteExistingTable === 'yes') {
|
|
960
964
|
await ensureTableRegistryEntry(table.name, table.sectionName);
|
|
961
965
|
await updateTable(table, s);
|
|
@@ -994,7 +998,6 @@ const main = async (s) => {
|
|
|
994
998
|
return { value: table.name, label: table.name };
|
|
995
999
|
}),
|
|
996
1000
|
});
|
|
997
|
-
s.start();
|
|
998
1001
|
if (tableToRename && typeof tableToRename === 'string') {
|
|
999
1002
|
console.log(`Renaming table '${tableToRename}' to '${table.name}'`);
|
|
1000
1003
|
await renameTable(tableToRename, table.name);
|
|
@@ -116,7 +116,7 @@ export type CMSConfig = z.infer<typeof cmsConfigSchema>;
|
|
|
116
116
|
* })
|
|
117
117
|
* ```
|
|
118
118
|
*/
|
|
119
|
-
export declare function defineConfig<const Codes extends string>(config: Omit<CMSConfig, 'localization'> & {
|
|
119
|
+
export declare function defineConfig<const Codes extends string, const LangKeys extends string>(config: Omit<CMSConfig, 'localization' | 'i18n'> & {
|
|
120
120
|
localization?: {
|
|
121
121
|
locales: readonly {
|
|
122
122
|
code: Codes;
|
|
@@ -125,6 +125,10 @@ export declare function defineConfig<const Codes extends string>(config: Omit<CM
|
|
|
125
125
|
}[];
|
|
126
126
|
defaultLocale: NoInfer<Codes>;
|
|
127
127
|
};
|
|
128
|
+
i18n?: {
|
|
129
|
+
supportedLanguages?: Record<LangKeys, Record<string, string>>;
|
|
130
|
+
fallbackLanguage?: NoInfer<LangKeys>;
|
|
131
|
+
};
|
|
128
132
|
}): CMSConfig;
|
|
129
133
|
export interface PluginRouteOverride {
|
|
130
134
|
title?: MultilingualString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../../src/core/config/config-loader.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAGxB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAA;AAG9E,2DAA2D;AAC3D,eAAO,MAAM,wBAAwB,iBAAkB,CAAA;AAEvD,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAA;AAGzE,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuRnB,CAAA;AAGF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAEvD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,KAAK,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../../src/core/config/config-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -222,7 +222,7 @@ const cmsConfigSchema = z.object({
|
|
|
222
222
|
* Core ships `en`; additional languages should be installed and imported by the app.
|
|
223
223
|
* Example: `{ en, ar }`, `{ en, fr }`, etc. Keys = language codes offered in the dropdown.
|
|
224
224
|
* Dictionaries can be partial overrides; they are merged with the built-in defaults.
|
|
225
|
-
*
|
|
225
|
+
* Only the languages you provide here are offered in the UI. If omitted, English is used as the default.
|
|
226
226
|
* At least one language is required.
|
|
227
227
|
*/
|
|
228
228
|
supportedLanguages: z
|
|
@@ -292,22 +292,25 @@ export function defineConfig(config) {
|
|
|
292
292
|
return config;
|
|
293
293
|
}
|
|
294
294
|
function normalizeI18n(userConfig) {
|
|
295
|
-
const fallback = userConfig.i18n?.fallbackLanguage ?? 'en';
|
|
296
295
|
const record = userConfig.i18n?.supportedLanguages;
|
|
297
296
|
let supported;
|
|
298
297
|
if (record && Object.keys(record).length >= 1) {
|
|
299
|
-
supported =
|
|
298
|
+
supported = Object.keys(record);
|
|
300
299
|
setConfigDicts(record);
|
|
301
300
|
}
|
|
302
301
|
else {
|
|
303
302
|
supported = ['en'];
|
|
304
303
|
setConfigDicts({});
|
|
305
304
|
}
|
|
306
|
-
const
|
|
307
|
-
|
|
305
|
+
const fallback = userConfig.i18n?.fallbackLanguage ?? supported[0];
|
|
306
|
+
if (!supported.includes(fallback)) {
|
|
307
|
+
throw new Error(`Errors in i18n config`, {
|
|
308
|
+
cause: `i18n.fallbackLanguage "${fallback}" is not in supportedLanguages. Must be one of: ${supported.join(', ')}`,
|
|
309
|
+
});
|
|
310
|
+
}
|
|
308
311
|
return {
|
|
309
312
|
supportedLanguages: supported,
|
|
310
|
-
fallbackLanguage:
|
|
313
|
+
fallbackLanguage: fallback,
|
|
311
314
|
};
|
|
312
315
|
}
|
|
313
316
|
function normalizeLocalization(userConfig) {
|
|
@@ -353,8 +353,8 @@ declare const selectFieldConfigSchema: z.ZodIntersection<z.ZodUnion<readonly [z.
|
|
|
353
353
|
}, z.core.$strict>]>, z.ZodObject<{
|
|
354
354
|
type: z.ZodLiteral<"select">;
|
|
355
355
|
optionsType: z.ZodEnum<{
|
|
356
|
-
db: "db";
|
|
357
356
|
section: "section";
|
|
357
|
+
db: "db";
|
|
358
358
|
static: "static";
|
|
359
359
|
}>;
|
|
360
360
|
build: z.ZodFunction<z.core.$ZodFunctionArgs, z.ZodCustom<SelectField, SelectField>>;
|