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.
@@ -88,6 +88,7 @@ export declare const simpleSectionRouter: import("@trpc/server").TRPCBuiltRouter
88
88
  label: any;
89
89
  rtl?: boolean;
90
90
  }[];
91
+ localeSwitcherEnabled: boolean;
91
92
  } | null;
92
93
  error?: undefined;
93
94
  };
@@ -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;;;;;;;;;;;;;;;GAD5lb,CAAA"}
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":"AAywCA,wBAAsB,cAAc,CAAC,SAAS,UAAQ,iBAoBrD"}
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 ` CREATE TABLE IF NOT EXISTS __nextjs_cms_tables ( name VARCHAR(100) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) `);
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":"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"}
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
- * English is always included by core as the base fallback language.
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 = ['en', ...Object.keys(record).filter((language) => language !== 'en')];
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 supportedSet = new Set(supported);
307
- const effectiveFallback = supportedSet.has(fallback) ? fallback : 'en';
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: effectiveFallback,
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>>;