@reverso/core 0.1.0

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 (66) hide show
  1. package/README.md +45 -0
  2. package/dist/config/defaults.d.ts +35 -0
  3. package/dist/config/defaults.d.ts.map +1 -0
  4. package/dist/config/defaults.js +104 -0
  5. package/dist/config/defaults.js.map +1 -0
  6. package/dist/config/define-config.d.ts +40 -0
  7. package/dist/config/define-config.d.ts.map +1 -0
  8. package/dist/config/define-config.js +44 -0
  9. package/dist/config/define-config.js.map +1 -0
  10. package/dist/config/index.d.ts +8 -0
  11. package/dist/config/index.d.ts.map +1 -0
  12. package/dist/config/index.js +8 -0
  13. package/dist/config/index.js.map +1 -0
  14. package/dist/config/loader.d.ts +41 -0
  15. package/dist/config/loader.d.ts.map +1 -0
  16. package/dist/config/loader.js +99 -0
  17. package/dist/config/loader.js.map +1 -0
  18. package/dist/config/validation.d.ts +325 -0
  19. package/dist/config/validation.d.ts.map +1 -0
  20. package/dist/config/validation.js +185 -0
  21. package/dist/config/validation.js.map +1 -0
  22. package/dist/constants.d.ts +84 -0
  23. package/dist/constants.d.ts.map +1 -0
  24. package/dist/constants.js +120 -0
  25. package/dist/constants.js.map +1 -0
  26. package/dist/index.d.ts +29 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +37 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/types/config.d.ts +285 -0
  31. package/dist/types/config.d.ts.map +1 -0
  32. package/dist/types/config.js +5 -0
  33. package/dist/types/config.js.map +1 -0
  34. package/dist/types/content.d.ts +288 -0
  35. package/dist/types/content.d.ts.map +1 -0
  36. package/dist/types/content.js +6 -0
  37. package/dist/types/content.js.map +1 -0
  38. package/dist/types/fields.d.ts +187 -0
  39. package/dist/types/fields.d.ts.map +1 -0
  40. package/dist/types/fields.js +6 -0
  41. package/dist/types/fields.js.map +1 -0
  42. package/dist/types/index.d.ts +8 -0
  43. package/dist/types/index.d.ts.map +1 -0
  44. package/dist/types/index.js +5 -0
  45. package/dist/types/index.js.map +1 -0
  46. package/dist/types/schema.d.ts +193 -0
  47. package/dist/types/schema.d.ts.map +1 -0
  48. package/dist/types/schema.js +6 -0
  49. package/dist/types/schema.js.map +1 -0
  50. package/dist/utils/index.d.ts +7 -0
  51. package/dist/utils/index.d.ts.map +1 -0
  52. package/dist/utils/index.js +10 -0
  53. package/dist/utils/index.js.map +1 -0
  54. package/dist/utils/naming.d.ts +122 -0
  55. package/dist/utils/naming.d.ts.map +1 -0
  56. package/dist/utils/naming.js +302 -0
  57. package/dist/utils/naming.js.map +1 -0
  58. package/dist/utils/path.d.ts +79 -0
  59. package/dist/utils/path.d.ts.map +1 -0
  60. package/dist/utils/path.js +219 -0
  61. package/dist/utils/path.js.map +1 -0
  62. package/dist/utils/validation.d.ts +256 -0
  63. package/dist/utils/validation.d.ts.map +1 -0
  64. package/dist/utils/validation.js +245 -0
  65. package/dist/utils/validation.js.map +1 -0
  66. package/package.json +58 -0
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Constants for Reverso CMS.
3
+ */
4
+ /**
5
+ * Current version of the schema format.
6
+ */
7
+ export const SCHEMA_VERSION = '1.0.0';
8
+ /**
9
+ * Default configuration file names (in order of priority).
10
+ */
11
+ export const CONFIG_FILE_NAMES = [
12
+ 'reverso.config.ts',
13
+ 'reverso.config.js',
14
+ 'reverso.config.mjs',
15
+ ];
16
+ /**
17
+ * Default output directory for generated files.
18
+ */
19
+ export const DEFAULT_OUTPUT_DIR = '.reverso';
20
+ /**
21
+ * Default source directory to scan.
22
+ */
23
+ export const DEFAULT_SRC_DIR = 'src';
24
+ /**
25
+ * Default file patterns to include in scanning.
26
+ */
27
+ export const DEFAULT_INCLUDE_PATTERNS = ['**/*.tsx', '**/*.jsx'];
28
+ /**
29
+ * Default file patterns to exclude from scanning.
30
+ */
31
+ export const DEFAULT_EXCLUDE_PATTERNS = [
32
+ '**/node_modules/**',
33
+ '**/.next/**',
34
+ '**/dist/**',
35
+ '**/build/**',
36
+ '**/.reverso/**',
37
+ '**/*.test.tsx',
38
+ '**/*.test.jsx',
39
+ '**/*.spec.tsx',
40
+ '**/*.spec.jsx',
41
+ '**/*.stories.tsx',
42
+ '**/*.stories.jsx',
43
+ ];
44
+ /**
45
+ * The main attribute for marking content fields.
46
+ */
47
+ export const MARKER_ATTRIBUTE = 'data-reverso';
48
+ /**
49
+ * Prefix for all data-reverso-* attributes.
50
+ */
51
+ export const MARKER_PREFIX = 'data-reverso-';
52
+ /**
53
+ * All valid marker attributes.
54
+ */
55
+ export const VALID_ATTRIBUTES = [
56
+ 'data-reverso',
57
+ 'data-reverso-type',
58
+ 'data-reverso-label',
59
+ 'data-reverso-placeholder',
60
+ 'data-reverso-required',
61
+ 'data-reverso-validation',
62
+ 'data-reverso-options',
63
+ 'data-reverso-condition',
64
+ 'data-reverso-default',
65
+ 'data-reverso-help',
66
+ 'data-reverso-min',
67
+ 'data-reverso-max',
68
+ 'data-reverso-step',
69
+ 'data-reverso-accept',
70
+ 'data-reverso-multiple',
71
+ 'data-reverso-rows',
72
+ 'data-reverso-width',
73
+ 'data-reverso-readonly',
74
+ 'data-reverso-hidden',
75
+ ];
76
+ /**
77
+ * Schema output file name.
78
+ */
79
+ export const SCHEMA_FILE_NAME = 'schema.json';
80
+ /**
81
+ * TypeScript types output file name.
82
+ */
83
+ export const TYPES_FILE_NAME = 'types.ts';
84
+ /**
85
+ * Default admin panel port in development.
86
+ */
87
+ export const DEFAULT_DEV_PORT = 4000;
88
+ /**
89
+ * Default API path.
90
+ */
91
+ export const DEFAULT_API_PATH = '/api/reverso';
92
+ /**
93
+ * Default admin path.
94
+ */
95
+ export const DEFAULT_ADMIN_PATH = '/admin';
96
+ /**
97
+ * Repeater item placeholder in paths.
98
+ */
99
+ export const REPEATER_PLACEHOLDER = '$';
100
+ /**
101
+ * Path separator for field paths.
102
+ */
103
+ export const PATH_SEPARATOR = '.';
104
+ /**
105
+ * Default field type when not specified.
106
+ */
107
+ export const DEFAULT_FIELD_TYPE = 'text';
108
+ /**
109
+ * Maximum file size for uploads (50MB).
110
+ */
111
+ export const DEFAULT_MAX_FILE_SIZE = 50 * 1024 * 1024;
112
+ /**
113
+ * Default session duration (7 days in seconds).
114
+ */
115
+ export const DEFAULT_SESSION_DURATION = 7 * 24 * 60 * 60;
116
+ /**
117
+ * Watch mode debounce delay in milliseconds.
118
+ */
119
+ export const DEFAULT_WATCH_DEBOUNCE = 300;
120
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AAEtC;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,mBAAmB;IACnB,mBAAmB;IACnB,oBAAoB;CACZ,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC;AAE7C;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AAErC;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,UAAU,EAAE,UAAU,CAAU,CAAC;AAE1E;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,oBAAoB;IACpB,aAAa;IACb,YAAY;IACZ,aAAa;IACb,gBAAgB;IAChB,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,kBAAkB;IAClB,kBAAkB;CACV,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;AAE7C;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,cAAc;IACd,mBAAmB;IACnB,oBAAoB;IACpB,0BAA0B;IAC1B,uBAAuB;IACvB,yBAAyB;IACzB,sBAAsB;IACtB,wBAAwB;IACxB,sBAAsB;IACtB,mBAAmB;IACnB,kBAAkB;IAClB,kBAAkB;IAClB,mBAAmB;IACnB,qBAAqB;IACrB,uBAAuB;IACvB,mBAAmB;IACnB,oBAAoB;IACpB,uBAAuB;IACvB,qBAAqB;CACb,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAAC;AAE1C;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAErC;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC;AAElC;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAEtD;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAEzD;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @reverso/core
3
+ *
4
+ * Core types, utilities, and configuration system for Reverso CMS.
5
+ * This package provides the foundational types and utilities used across all Reverso packages.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * import { defineConfig, parsePath, formatLabel, FieldType } from '@reverso/core';
10
+ *
11
+ * // Define configuration
12
+ * export default defineConfig({
13
+ * database: {
14
+ * provider: 'sqlite',
15
+ * url: '.reverso/dev.db',
16
+ * },
17
+ * });
18
+ *
19
+ * // Use utilities
20
+ * const parsed = parsePath('home.hero.title');
21
+ * const label = formatLabel('hero_title'); // 'Hero Title'
22
+ * ```
23
+ */
24
+ export declare const VERSION = "0.0.0";
25
+ export type { FieldType, FieldAttributes, FieldSchema, FieldConfig, SelectFieldConfig, ImageFieldConfig, FileFieldConfig, RelationFieldConfig, TaxonomyFieldConfig, RepeaterFieldConfig, FlexibleFieldConfig, BlocksFieldConfig, CodeFieldConfig, MapFieldConfig, ParsedPath, SectionSchema, PageSchema, ProjectSchema, SchemaDiff, SchemaGeneratorOptions, DetectedField, FileScanResult, ScanError, ScanOptions, ScanResult, DatabaseConfig, SqliteDatabaseConfig, PostgresDatabaseConfig, AuthConfig, OAuthProviderConfig, UploadsConfig, S3Config, CloudinaryConfig, UploadThingConfig, AdminConfig, ApiConfig, CorsConfig, RateLimitConfig, ScannerConfig, PluginConfig, HooksConfig, ReversoConfig, ResolvedConfig, TextValue, NumberValue, BooleanValue, DateValue, DateTimeValue, TimeValue, SelectValue, MultiSelectValue, CheckboxGroupValue, ImageValue, FileValue, GalleryValue, VideoValue, AudioValue, OEmbedValue, LinkValue, PageLinkValue, ColorValue, MapValue, RelationValue, RelationMultiValue, TaxonomyValue, TaxonomyMultiValue, UserValue, BlocksValue, WysiwygValue, MarkdownValue, CodeValue, RepeaterValue, PrimitiveContentValue, FlexibleItem, FlexibleValue, GroupValue, ContentValue, PageContent, SectionContent, } from './types/index.js';
26
+ export { defineConfig, configPartial, defaultConfig, defaultDatabaseConfig, defaultScannerConfig, defaultAdminConfig, defaultApiConfig, defaultDevConfig, mergeWithDefaults, loadConfig, loadConfigSync, findConfigFile, configSchema, databaseConfigSchema, authConfigSchema, uploadsConfigSchema, adminConfigSchema, apiConfigSchema, scannerConfigSchema, pluginConfigSchema, hooksConfigSchema, devConfigSchema, type LoadConfigOptions, type LoadConfigResult, type ValidatedConfig, } from './config/index.js';
27
+ export { parsePath, buildPath, getPageFromPath, getSectionFromPath, getFieldFromPath, isRepeaterPath, getParentPath, getPageSectionPath, matchPath, sortPaths, groupPathsByPage, groupPathsBySection, formatLabel, slugify, camelCase, pascalCase, snakeCase, constantCase, kebabCase, pluralize, singularize, truncate, toIdentifier, FIELD_TYPES, fieldTypeSchema, fieldPathSchema, fieldAttributesSchema, fieldSchema, isValidFieldType, isValidFieldPath, validateFieldAttributes, validateFieldSchema, isValidAttribute, extractAttributeName, parseOptions, parseCondition, } from './utils/index.js';
28
+ export { SCHEMA_VERSION, CONFIG_FILE_NAMES, DEFAULT_OUTPUT_DIR, DEFAULT_SRC_DIR, DEFAULT_INCLUDE_PATTERNS, DEFAULT_EXCLUDE_PATTERNS, MARKER_ATTRIBUTE, MARKER_PREFIX, VALID_ATTRIBUTES, SCHEMA_FILE_NAME, TYPES_FILE_NAME, DEFAULT_DEV_PORT, DEFAULT_API_PATH, DEFAULT_ADMIN_PATH, REPEATER_PLACEHOLDER, PATH_SEPARATOR, DEFAULT_FIELD_TYPE, DEFAULT_MAX_FILE_SIZE, DEFAULT_SESSION_DURATION, DEFAULT_WATCH_DEBOUNCE, } from './constants.js';
29
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,eAAO,MAAM,OAAO,UAAU,CAAC;AAG/B,YAAY,EAEV,SAAS,EACT,eAAe,EACf,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,cAAc,EAEd,UAAU,EACV,aAAa,EACb,UAAU,EACV,aAAa,EACb,UAAU,EACV,sBAAsB,EACtB,aAAa,EACb,cAAc,EACd,SAAS,EACT,WAAW,EACX,UAAU,EAEV,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,UAAU,EACV,mBAAmB,EACnB,aAAa,EACb,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,UAAU,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,WAAW,EACX,aAAa,EACb,cAAc,EAEd,SAAS,EACT,WAAW,EACX,YAAY,EACZ,SAAS,EACT,aAAa,EACb,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,YAAY,EACZ,UAAU,EACV,UAAU,EACV,WAAW,EACX,SAAS,EACT,aAAa,EACb,UAAU,EACV,QAAQ,EACR,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,YAAY,EACZ,aAAa,EACb,SAAS,EACT,aAAa,EACb,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,UAAU,EACV,YAAY,EACZ,WAAW,EACX,cAAc,GACf,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAEL,SAAS,EACT,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,mBAAmB,EAEnB,WAAW,EACX,OAAO,EACP,SAAS,EACT,UAAU,EACV,SAAS,EACT,YAAY,EACZ,SAAS,EACT,SAAS,EACT,WAAW,EACX,QAAQ,EACR,YAAY,EAEZ,WAAW,EACX,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,EACZ,cAAc,GACf,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,wBAAwB,EACxB,wBAAwB,EACxB,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @reverso/core
3
+ *
4
+ * Core types, utilities, and configuration system for Reverso CMS.
5
+ * This package provides the foundational types and utilities used across all Reverso packages.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * import { defineConfig, parsePath, formatLabel, FieldType } from '@reverso/core';
10
+ *
11
+ * // Define configuration
12
+ * export default defineConfig({
13
+ * database: {
14
+ * provider: 'sqlite',
15
+ * url: '.reverso/dev.db',
16
+ * },
17
+ * });
18
+ *
19
+ * // Use utilities
20
+ * const parsed = parsePath('home.hero.title');
21
+ * const label = formatLabel('hero_title'); // 'Hero Title'
22
+ * ```
23
+ */
24
+ export const VERSION = '0.0.0';
25
+ // Config exports
26
+ export { defineConfig, configPartial, defaultConfig, defaultDatabaseConfig, defaultScannerConfig, defaultAdminConfig, defaultApiConfig, defaultDevConfig, mergeWithDefaults, loadConfig, loadConfigSync, findConfigFile, configSchema, databaseConfigSchema, authConfigSchema, uploadsConfigSchema, adminConfigSchema, apiConfigSchema, scannerConfigSchema, pluginConfigSchema, hooksConfigSchema, devConfigSchema, } from './config/index.js';
27
+ // Utility exports
28
+ export {
29
+ // Path utilities
30
+ parsePath, buildPath, getPageFromPath, getSectionFromPath, getFieldFromPath, isRepeaterPath, getParentPath, getPageSectionPath, matchPath, sortPaths, groupPathsByPage, groupPathsBySection,
31
+ // Naming utilities
32
+ formatLabel, slugify, camelCase, pascalCase, snakeCase, constantCase, kebabCase, pluralize, singularize, truncate, toIdentifier,
33
+ // Validation utilities
34
+ FIELD_TYPES, fieldTypeSchema, fieldPathSchema, fieldAttributesSchema, fieldSchema, isValidFieldType, isValidFieldPath, validateFieldAttributes, validateFieldSchema, isValidAttribute, extractAttributeName, parseOptions, parseCondition, } from './utils/index.js';
35
+ // Constants exports
36
+ export { SCHEMA_VERSION, CONFIG_FILE_NAMES, DEFAULT_OUTPUT_DIR, DEFAULT_SRC_DIR, DEFAULT_INCLUDE_PATTERNS, DEFAULT_EXCLUDE_PATTERNS, MARKER_ATTRIBUTE, MARKER_PREFIX, VALID_ATTRIBUTES, SCHEMA_FILE_NAME, TYPES_FILE_NAME, DEFAULT_DEV_PORT, DEFAULT_API_PATH, DEFAULT_ADMIN_PATH, REPEATER_PLACEHOLDER, PATH_SEPARATOR, DEFAULT_FIELD_TYPE, DEFAULT_MAX_FILE_SIZE, DEFAULT_SESSION_DURATION, DEFAULT_WATCH_DEBOUNCE, } from './constants.js';
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAyF/B,iBAAiB;AACjB,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,GAIhB,MAAM,mBAAmB,CAAC;AAE3B,kBAAkB;AAClB,OAAO;AACL,iBAAiB;AACjB,SAAS,EACT,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,mBAAmB;AACnB,mBAAmB;AACnB,WAAW,EACX,OAAO,EACP,SAAS,EACT,UAAU,EACV,SAAS,EACT,YAAY,EACZ,SAAS,EACT,SAAS,EACT,WAAW,EACX,QAAQ,EACR,YAAY;AACZ,uBAAuB;AACvB,WAAW,EACX,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,EACZ,cAAc,GACf,MAAM,kBAAkB,CAAC;AAE1B,oBAAoB;AACpB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,wBAAwB,EACxB,wBAAwB,EACxB,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,285 @@
1
+ /**
2
+ * Configuration type definitions for Reverso CMS.
3
+ */
4
+ /**
5
+ * Database configuration options.
6
+ */
7
+ export interface DatabaseConfig {
8
+ /** Database provider */
9
+ provider: 'sqlite' | 'postgresql' | 'mysql';
10
+ /** Connection URL or path */
11
+ url: string;
12
+ /** Enable migrations on startup */
13
+ autoMigrate?: boolean;
14
+ /** Enable query logging */
15
+ logging?: boolean;
16
+ /** Connection pool size (for PostgreSQL/MySQL) */
17
+ poolSize?: number;
18
+ }
19
+ /**
20
+ * SQLite-specific database configuration.
21
+ */
22
+ export interface SqliteDatabaseConfig extends DatabaseConfig {
23
+ provider: 'sqlite';
24
+ /** Path to SQLite file */
25
+ url: string;
26
+ }
27
+ /**
28
+ * PostgreSQL-specific database configuration.
29
+ */
30
+ export interface PostgresDatabaseConfig extends DatabaseConfig {
31
+ provider: 'postgresql';
32
+ /** PostgreSQL connection URL */
33
+ url: string;
34
+ /** SSL configuration */
35
+ ssl?: boolean | {
36
+ rejectUnauthorized: boolean;
37
+ };
38
+ }
39
+ /**
40
+ * Authentication configuration.
41
+ */
42
+ export interface AuthConfig {
43
+ /** Enable authentication */
44
+ enabled: boolean;
45
+ /** Auth provider */
46
+ provider: 'better-auth' | 'custom';
47
+ /** Session secret (required) */
48
+ secret: string;
49
+ /** Session duration in seconds */
50
+ sessionDuration?: number;
51
+ /** OAuth providers configuration */
52
+ oauth?: {
53
+ google?: OAuthProviderConfig;
54
+ github?: OAuthProviderConfig;
55
+ };
56
+ /** Email/password authentication */
57
+ emailPassword?: {
58
+ enabled: boolean;
59
+ requireEmailVerification?: boolean;
60
+ };
61
+ /** Magic link authentication */
62
+ magicLink?: {
63
+ enabled: boolean;
64
+ };
65
+ }
66
+ /**
67
+ * OAuth provider configuration.
68
+ */
69
+ export interface OAuthProviderConfig {
70
+ clientId: string;
71
+ clientSecret: string;
72
+ redirectUri?: string;
73
+ }
74
+ /**
75
+ * File uploads configuration.
76
+ */
77
+ export interface UploadsConfig {
78
+ /** Upload provider */
79
+ provider: 'local' | 's3' | 'cloudinary' | 'uploadthing';
80
+ /** Maximum file size in bytes */
81
+ maxFileSize?: number;
82
+ /** Allowed MIME types */
83
+ allowedTypes?: string[];
84
+ /** Local storage directory (for 'local' provider) */
85
+ directory?: string;
86
+ /** S3 configuration (for 's3' provider) */
87
+ s3?: S3Config;
88
+ /** Cloudinary configuration */
89
+ cloudinary?: CloudinaryConfig;
90
+ /** UploadThing configuration */
91
+ uploadthing?: UploadThingConfig;
92
+ }
93
+ /**
94
+ * S3 storage configuration.
95
+ */
96
+ export interface S3Config {
97
+ bucket: string;
98
+ region: string;
99
+ accessKeyId: string;
100
+ secretAccessKey: string;
101
+ endpoint?: string;
102
+ publicUrl?: string;
103
+ }
104
+ /**
105
+ * Cloudinary storage configuration.
106
+ */
107
+ export interface CloudinaryConfig {
108
+ cloudName: string;
109
+ apiKey: string;
110
+ apiSecret: string;
111
+ folder?: string;
112
+ }
113
+ /**
114
+ * UploadThing configuration.
115
+ */
116
+ export interface UploadThingConfig {
117
+ token: string;
118
+ }
119
+ /**
120
+ * Admin panel configuration.
121
+ */
122
+ export interface AdminConfig {
123
+ /** Admin panel path (default: '/admin') */
124
+ path?: string;
125
+ /** Custom title */
126
+ title?: string;
127
+ /** Custom logo URL */
128
+ logo?: string;
129
+ /** Primary color for theming */
130
+ primaryColor?: string;
131
+ /** Enable dark mode */
132
+ darkMode?: boolean;
133
+ /** Custom favicon */
134
+ favicon?: string;
135
+ /** Disable admin panel entirely */
136
+ disabled?: boolean;
137
+ }
138
+ /**
139
+ * API configuration.
140
+ */
141
+ export interface ApiConfig {
142
+ /** API base path (default: '/api/reverso') */
143
+ path?: string;
144
+ /** Enable GraphQL endpoint */
145
+ graphql?: boolean;
146
+ /** Enable REST endpoint */
147
+ rest?: boolean;
148
+ /** Enable CORS */
149
+ cors?: boolean | CorsConfig;
150
+ /** Rate limiting */
151
+ rateLimit?: RateLimitConfig;
152
+ /** API key for external access */
153
+ apiKey?: string;
154
+ }
155
+ /**
156
+ * CORS configuration.
157
+ */
158
+ export interface CorsConfig {
159
+ origin: string | string[] | boolean;
160
+ methods?: string[];
161
+ allowedHeaders?: string[];
162
+ credentials?: boolean;
163
+ }
164
+ /**
165
+ * Rate limiting configuration.
166
+ */
167
+ export interface RateLimitConfig {
168
+ /** Requests per window */
169
+ max: number;
170
+ /** Window duration in milliseconds */
171
+ windowMs: number;
172
+ }
173
+ /**
174
+ * Scanner configuration.
175
+ */
176
+ export interface ScannerConfig {
177
+ /** Directory to scan (default: 'src') */
178
+ srcDir?: string;
179
+ /** Glob patterns to include */
180
+ include?: string[];
181
+ /** Glob patterns to exclude */
182
+ exclude?: string[];
183
+ /** Output directory for schema (default: '.reverso') */
184
+ outputDir?: string;
185
+ /** Watch mode settings */
186
+ watch?: {
187
+ /** Enable watch mode in development */
188
+ enabled?: boolean;
189
+ /** Debounce delay in milliseconds */
190
+ debounce?: number;
191
+ };
192
+ }
193
+ /**
194
+ * Plugin configuration.
195
+ */
196
+ export interface PluginConfig {
197
+ /** Plugin name */
198
+ name: string;
199
+ /** Plugin options */
200
+ options?: Record<string, unknown>;
201
+ }
202
+ /**
203
+ * Hooks configuration for extending Reverso behavior.
204
+ */
205
+ export interface HooksConfig {
206
+ /** Called before saving content */
207
+ beforeSave?: string;
208
+ /** Called after saving content */
209
+ afterSave?: string;
210
+ /** Called before deleting content */
211
+ beforeDelete?: string;
212
+ /** Called after deleting content */
213
+ afterDelete?: string;
214
+ }
215
+ /**
216
+ * Main Reverso configuration.
217
+ */
218
+ export interface ReversoConfig {
219
+ /**
220
+ * Project name.
221
+ * Used in admin panel title and generated files.
222
+ */
223
+ name?: string;
224
+ /**
225
+ * Source directory to scan for markers.
226
+ * @default 'src'
227
+ */
228
+ srcDir?: string;
229
+ /**
230
+ * Output directory for generated files.
231
+ * @default '.reverso'
232
+ */
233
+ outputDir?: string;
234
+ /**
235
+ * Database configuration.
236
+ */
237
+ database: DatabaseConfig;
238
+ /**
239
+ * Authentication configuration.
240
+ */
241
+ auth?: AuthConfig;
242
+ /**
243
+ * File uploads configuration.
244
+ */
245
+ uploads?: UploadsConfig;
246
+ /**
247
+ * Admin panel configuration.
248
+ */
249
+ admin?: AdminConfig;
250
+ /**
251
+ * API configuration.
252
+ */
253
+ api?: ApiConfig;
254
+ /**
255
+ * Scanner configuration.
256
+ */
257
+ scanner?: ScannerConfig;
258
+ /**
259
+ * Plugins to load.
260
+ */
261
+ plugins?: PluginConfig[];
262
+ /**
263
+ * Hooks for extending behavior.
264
+ */
265
+ hooks?: HooksConfig;
266
+ /**
267
+ * Development mode settings.
268
+ */
269
+ dev?: {
270
+ /** Port for admin panel (default: 4000) */
271
+ port?: number;
272
+ /** Enable hot reload */
273
+ hotReload?: boolean;
274
+ };
275
+ }
276
+ /**
277
+ * Resolved configuration with all defaults applied.
278
+ */
279
+ export interface ResolvedConfig extends Required<Omit<ReversoConfig, 'auth' | 'uploads' | 'plugins' | 'hooks'>> {
280
+ auth: AuthConfig | undefined;
281
+ uploads: UploadsConfig | undefined;
282
+ plugins: PluginConfig[];
283
+ hooks: HooksConfig | undefined;
284
+ }
285
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Configuration type definitions for Reverso CMS.
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;GAEG"}