@sonicjs-cms/core 2.3.17 → 2.5.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.
- package/dist/{chunk-CPXAVWCU.js → chunk-3YUHXWSG.js} +278 -3
- package/dist/chunk-3YUHXWSG.js.map +1 -0
- package/dist/chunk-AI2JJIJX.cjs +211 -0
- package/dist/chunk-AI2JJIJX.cjs.map +1 -0
- package/dist/{chunk-TMQOLXLY.js → chunk-BHNDALCA.js} +56 -4
- package/dist/chunk-BHNDALCA.js.map +1 -0
- package/dist/{chunk-IEWLOVP3.cjs → chunk-I4V3VZWF.cjs} +46 -2
- package/dist/chunk-I4V3VZWF.cjs.map +1 -0
- package/dist/{chunk-DTLB6UIH.cjs → chunk-LWG2MWDA.cjs} +280 -2
- package/dist/chunk-LWG2MWDA.cjs.map +1 -0
- package/dist/{chunk-QBWD6FKH.js → chunk-OJZ45OJD.js} +559 -281
- package/dist/chunk-OJZ45OJD.js.map +1 -0
- package/dist/chunk-QDBNW7KQ.js +209 -0
- package/dist/chunk-QDBNW7KQ.js.map +1 -0
- package/dist/{chunk-VYL6RIV6.js → chunk-TJTWRO4G.js} +5 -5
- package/dist/chunk-TJTWRO4G.js.map +1 -0
- package/dist/{chunk-74DP754U.cjs → chunk-UAQL2VWX.cjs} +644 -366
- package/dist/chunk-UAQL2VWX.cjs.map +1 -0
- package/dist/{chunk-B6YJRVFQ.js → chunk-VEL7QRYI.js} +46 -2
- package/dist/chunk-VEL7QRYI.js.map +1 -0
- package/dist/{chunk-YHJB26RJ.cjs → chunk-YYV3XQOQ.cjs} +6 -6
- package/dist/chunk-YYV3XQOQ.cjs.map +1 -0
- package/dist/{chunk-2XCJ3HT5.cjs → chunk-ZWV3EBZ7.cjs} +58 -3
- package/dist/chunk-ZWV3EBZ7.cjs.map +1 -0
- package/dist/{collection-config-FLlGtsh9.d.cts → collection-config-B6gMPunn.d.cts} +9 -1
- package/dist/{collection-config-FLlGtsh9.d.ts → collection-config-B6gMPunn.d.ts} +9 -1
- package/dist/index.cjs +114 -85
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +37 -8
- package/dist/index.js.map +1 -1
- package/dist/middleware.cjs +23 -23
- package/dist/middleware.js +2 -2
- package/dist/migrations-NIEUFG44.cjs +13 -0
- package/dist/{migrations-EOV7NJZ7.cjs.map → migrations-NIEUFG44.cjs.map} +1 -1
- package/dist/migrations-TGZKJKV4.js +4 -0
- package/dist/{migrations-6HKPNPTK.js.map → migrations-TGZKJKV4.js.map} +1 -1
- package/dist/{plugin-bootstrap-C0E3jdz-.d.cts → plugin-bootstrap-SHsdjE6X.d.cts} +1 -1
- package/dist/{plugin-bootstrap-CDh0JHtW.d.ts → plugin-bootstrap-dYhD9fQR.d.ts} +1 -1
- package/dist/plugin-manager-Baa6xXqB.d.ts +328 -0
- package/dist/plugin-manager-vBal9Zip.d.cts +328 -0
- package/dist/plugins.cjs +20 -7
- package/dist/plugins.d.cts +53 -310
- package/dist/plugins.d.ts +53 -310
- package/dist/plugins.js +2 -1
- package/dist/routes.cjs +25 -24
- package/dist/routes.js +5 -4
- package/dist/services.cjs +2 -2
- package/dist/services.d.cts +2 -2
- package/dist/services.d.ts +2 -2
- package/dist/services.js +1 -1
- package/dist/types.d.cts +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/utils.cjs +23 -11
- package/dist/utils.d.cts +38 -1
- package/dist/utils.d.ts +38 -1
- package/dist/utils.js +1 -1
- package/migrations/027_fix_slug_field_type.sql +18 -0
- package/migrations/028_fix_slug_field_type_in_schemas.sql +30 -0
- package/package.json +2 -1
- package/dist/chunk-2XCJ3HT5.cjs.map +0 -1
- package/dist/chunk-74DP754U.cjs.map +0 -1
- package/dist/chunk-B6YJRVFQ.js.map +0 -1
- package/dist/chunk-CPXAVWCU.js.map +0 -1
- package/dist/chunk-DTLB6UIH.cjs.map +0 -1
- package/dist/chunk-IEWLOVP3.cjs.map +0 -1
- package/dist/chunk-QBWD6FKH.js.map +0 -1
- package/dist/chunk-TMQOLXLY.js.map +0 -1
- package/dist/chunk-VYL6RIV6.js.map +0 -1
- package/dist/chunk-YHJB26RJ.cjs.map +0 -1
- package/dist/migrations-6HKPNPTK.js +0 -4
- package/dist/migrations-EOV7NJZ7.cjs +0 -13
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/sanitize.ts","../src/utils/slug-utils.ts","../src/utils/template-renderer.ts","../src/utils/query-filter.ts","../package.json","../src/utils/version.ts","../src/utils/blocks.ts"],"names":[],"mappings":"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","file":"chunk-ZWV3EBZ7.cjs","sourcesContent":["/**\n * HTML sanitization utilities for preventing XSS attacks\n */\n\n/**\n * Escapes HTML special characters to prevent XSS attacks\n * @param text - The text to escape\n * @returns The escaped text safe for HTML output\n */\nexport function escapeHtml(text: string): string {\n if (typeof text !== 'string') {\n return ''\n }\n\n const map: Record<string, string> = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n }\n\n return text.replace(/[&<>\"']/g, (char) => map[char] || char)\n}\n\n/**\n * Sanitizes user input by escaping HTML special characters\n * This should be used for all user-provided text fields to prevent XSS\n * @param input - The input string to sanitize\n * @returns The sanitized string\n */\nexport function sanitizeInput(input: string | null | undefined): string {\n if (!input) {\n return ''\n }\n return escapeHtml(String(input).trim())\n}\n\n/**\n * Sanitizes an object's string properties\n * @param obj - Object with string properties to sanitize\n * @param fields - Array of field names to sanitize\n * @returns New object with sanitized fields\n */\nexport function sanitizeObject<T extends Record<string, any>>(\n obj: T,\n fields: (keyof T)[]\n): T {\n const sanitized = { ...obj }\n\n for (const field of fields) {\n if (typeof obj[field] === 'string') {\n sanitized[field] = sanitizeInput(obj[field]) as T[keyof T]\n }\n }\n\n return sanitized\n}\n","/**\n * Slug generation utilities for creating URL-friendly slugs\n */\n\n/**\n * Generate URL-friendly slug from text\n * \n * Features:\n * - Converts to lowercase\n * - Handles accented characters (NFD normalization)\n * - Removes diacritics\n * - Keeps only alphanumeric, spaces, underscores, and hyphens\n * - Replaces spaces with hyphens\n * - Collapses multiple hyphens/underscores\n * - Trims leading/trailing hyphens/underscores\n * - Limits length to 100 characters\n * \n * @param text - Text to slugify\n * @returns URL-safe slug\n * \n * @example\n * generateSlug('Hello World!') // 'hello-world'\n * generateSlug('Café París 2024') // 'cafe-paris-2024'\n * generateSlug('Multiple Spaces') // 'multiple-spaces'\n */\nexport function generateSlug(text: string): string {\n if (!text) return '';\n \n return text\n .toLowerCase()\n .normalize('NFD') // Decompose combined characters (e.g., é -> e + ́)\n .replace(/[\\u0300-\\u036f]/g, '') // Remove diacritics\n .replace(/[^a-z0-9\\s_-]/g, '') // Keep only alphanumeric, spaces, underscores, hyphens\n .replace(/\\s+/g, '-') // Replace spaces with hyphens\n .replace(/[-_]+/g, '-') // Collapse multiple hyphens/underscores\n .replace(/^[-_]+|[-_]+$/g, '') // Trim leading/trailing hyphens/underscores\n .substring(0, 100); // Limit length for URL safety\n}\n","// Template renderer compatible with Cloudflare Workers\n// No filesystem access available\n\ninterface TemplateData {\n [key: string]: any\n}\n\nexport class TemplateRenderer {\n private templateCache = new Map<string, string>()\n\n constructor() {\n // Cloudflare Workers compatible - no filesystem access\n }\n\n /**\n * Simple Handlebars-like template engine\n */\n private renderTemplate(template: string, data: TemplateData): string {\n let rendered = template\n\n // Handle each loops - process outermost loops first for proper nesting\n rendered = rendered.replace(/\\{\\{#each\\s+([^}]+)\\}\\}([\\s\\S]*?)\\{\\{\\/each\\}\\}/g, (_match, arrayName, content) => {\n const array = this.getNestedValue(data, arrayName.trim())\n if (!Array.isArray(array)) return ''\n \n return array.map((item, index) => {\n // Create context with array item and special variables\n const itemContext = {\n ...data,\n // Handle primitive items (for {{.}} syntax)\n '.': item,\n // Spread item properties if it's an object\n ...(typeof item === 'object' && item !== null ? item : {}),\n '@index': index,\n '@first': index === 0,\n '@last': index === array.length - 1\n }\n return this.renderTemplate(content, itemContext)\n }).join('')\n })\n\n // Second pass: Handle conditionals\n let ifCount = 0\n while (rendered.includes('{{#if ') && ifCount < 100) {\n const previousRendered = rendered\n rendered = rendered.replace(/\\{\\{#if\\s+([^}]+)\\}\\}([\\s\\S]*?)\\{\\{\\/if\\}\\}/g, (_match, condition, content) => {\n const value = this.getNestedValue(data, condition.trim())\n // Handle boolean values properly - @first/@last are explicitly boolean\n const isTruthy = value === true || (value && value !== 0 && value !== '' && value !== null && value !== undefined)\n return isTruthy ? this.renderTemplate(content, data) : ''\n })\n if (previousRendered === rendered) break\n ifCount++\n }\n\n // Third pass: Handle triple braces for raw HTML {{{variable}}}\n rendered = rendered.replace(/\\{\\{\\{([^}]+)\\}\\}\\}/g, (_match, variable) => {\n const value = this.getNestedValue(data, variable.trim())\n return value !== undefined && value !== null ? String(value) : ''\n })\n\n // Fourth pass: Handle helper functions like {{titleCase field}}\n rendered = rendered.replace(/\\{\\{([^}#\\/]+)\\s+([^}]+)\\}\\}/g, (match, helper, variable) => {\n const helperName = helper.trim()\n const varName = variable.trim()\n \n if (helperName === 'titleCase') {\n const value = this.getNestedValue(data, varName)\n if (value !== undefined && value !== null) {\n return this.titleCase(String(value))\n }\n }\n \n return match // Return original if helper not found\n })\n\n // Final pass: Handle simple variables {{variable}}\n rendered = rendered.replace(/\\{\\{([^}#\\/]+)\\}\\}/g, (match, variable) => {\n const trimmed = variable.trim()\n \n // Skip if it's a helper function (has spaces)\n if (trimmed.includes(' ')) {\n return match\n }\n \n const value = this.getNestedValue(data, trimmed)\n if (value === null) return ''\n if (value === undefined) return ''\n return String(value)\n })\n\n return rendered\n }\n\n /**\n * Get nested value from object using dot notation\n */\n private getNestedValue(obj: any, path: string): any {\n if (!obj || path === '') return undefined\n \n return path.split('.').reduce((current, key) => {\n if (current === null || current === undefined) return undefined\n return current[key]\n }, obj)\n }\n\n /**\n * Title case helper function\n */\n private titleCase(str: string): string {\n return str\n .replace(/_/g, ' ')\n .replace(/\\b\\w/g, l => l.toUpperCase())\n }\n\n /**\n * Render a template string with data\n */\n render(template: string, data: TemplateData = {}): string {\n return this.renderTemplate(template, data)\n }\n\n /**\n * Clear template cache (useful for development)\n */\n clearCache(): void {\n this.templateCache.clear()\n }\n}\n\n// Export singleton instance\nexport const templateRenderer = new TemplateRenderer()\n\n// Utility function to render template strings directly\nexport function renderTemplate(template: string, data: TemplateData = {}): string {\n return templateRenderer.render(template, data)\n}","/**\n * Query Filter Builder for SonicJS AI\n * Supports comprehensive filtering with AND/OR logic\n * Compatible with D1 Database (SQLite)\n */\n\nexport type FilterOperator =\n | 'equals'\n | 'not_equals'\n | 'greater_than'\n | 'greater_than_equal'\n | 'less_than'\n | 'less_than_equal'\n | 'like'\n | 'contains'\n | 'in'\n | 'not_in'\n | 'all'\n | 'exists'\n | 'near'\n | 'within'\n | 'intersects'\n\nexport interface FilterCondition {\n field: string\n operator: FilterOperator\n value: any\n}\n\nexport interface FilterGroup {\n and?: FilterCondition[]\n or?: FilterCondition[]\n}\n\nexport interface QueryFilter {\n where?: FilterGroup\n limit?: number\n offset?: number\n sort?: {\n field: string\n order: 'asc' | 'desc'\n }[]\n}\n\nexport interface QueryResult {\n sql: string\n params: any[]\n errors: string[]\n}\n\n/**\n * Query Filter Builder\n * Converts filter objects into SQL WHERE clauses with parameterized queries\n */\nexport class QueryFilterBuilder {\n private params: any[] = []\n private errors: string[] = []\n\n /**\n * Build a complete SQL query from filter object\n */\n build(baseTable: string, filter: QueryFilter): QueryResult {\n this.params = []\n this.errors = []\n\n let sql = `SELECT * FROM ${baseTable}`\n\n // Build WHERE clause\n if (filter.where) {\n const whereClause = this.buildWhereClause(filter.where)\n if (whereClause) {\n sql += ` WHERE ${whereClause}`\n }\n }\n\n // Build ORDER BY clause\n if (filter.sort && filter.sort.length > 0) {\n const orderClauses = filter.sort\n .map(s => `${this.sanitizeFieldName(s.field)} ${s.order.toUpperCase()}`)\n .join(', ')\n sql += ` ORDER BY ${orderClauses}`\n }\n\n // Build LIMIT clause\n if (filter.limit) {\n sql += ` LIMIT ?`\n this.params.push(filter.limit)\n }\n\n // Build OFFSET clause\n if (filter.offset) {\n sql += ` OFFSET ?`\n this.params.push(filter.offset)\n }\n\n return {\n sql,\n params: this.params,\n errors: this.errors\n }\n }\n\n /**\n * Build WHERE clause from filter group\n */\n private buildWhereClause(group: FilterGroup): string {\n const clauses: string[] = []\n\n // Handle AND conditions\n if (group.and && group.and.length > 0) {\n const andClauses = group.and\n .map(condition => this.buildCondition(condition))\n .filter(clause => clause !== null)\n\n if (andClauses.length > 0) {\n clauses.push(`(${andClauses.join(' AND ')})`)\n }\n }\n\n // Handle OR conditions\n if (group.or && group.or.length > 0) {\n const orClauses = group.or\n .map(condition => this.buildCondition(condition))\n .filter(clause => clause !== null)\n\n if (orClauses.length > 0) {\n clauses.push(`(${orClauses.join(' OR ')})`)\n }\n }\n\n return clauses.join(' AND ')\n }\n\n /**\n * Build a single condition\n */\n private buildCondition(condition: FilterCondition): string | null {\n const field = this.sanitizeFieldName(condition.field)\n\n switch (condition.operator) {\n case 'equals':\n return this.buildEquals(field, condition.value)\n\n case 'not_equals':\n return this.buildNotEquals(field, condition.value)\n\n case 'greater_than':\n return this.buildComparison(field, '>', condition.value)\n\n case 'greater_than_equal':\n return this.buildComparison(field, '>=', condition.value)\n\n case 'less_than':\n return this.buildComparison(field, '<', condition.value)\n\n case 'less_than_equal':\n return this.buildComparison(field, '<=', condition.value)\n\n case 'like':\n return this.buildLike(field, condition.value)\n\n case 'contains':\n return this.buildContains(field, condition.value)\n\n case 'in':\n return this.buildIn(field, condition.value)\n\n case 'not_in':\n return this.buildNotIn(field, condition.value)\n\n case 'all':\n return this.buildAll(field, condition.value)\n\n case 'exists':\n return this.buildExists(field, condition.value)\n\n case 'near':\n this.errors.push(`'near' operator not supported in SQLite. Use spatial extension or application-level filtering.`)\n return null\n\n case 'within':\n this.errors.push(`'within' operator not supported in SQLite. Use spatial extension or application-level filtering.`)\n return null\n\n case 'intersects':\n this.errors.push(`'intersects' operator not supported in SQLite. Use spatial extension or application-level filtering.`)\n return null\n\n default:\n this.errors.push(`Unknown operator: ${condition.operator}`)\n return null\n }\n }\n\n /**\n * Build equals condition\n */\n private buildEquals(field: string, value: any): string {\n if (value === null) {\n return `${field} IS NULL`\n }\n this.params.push(value)\n return `${field} = ?`\n }\n\n /**\n * Build not equals condition\n */\n private buildNotEquals(field: string, value: any): string {\n if (value === null) {\n return `${field} IS NOT NULL`\n }\n this.params.push(value)\n return `${field} != ?`\n }\n\n /**\n * Build comparison condition (>, >=, <, <=)\n */\n private buildComparison(field: string, operator: string, value: any): string {\n this.params.push(value)\n return `${field} ${operator} ?`\n }\n\n /**\n * Build LIKE condition (case-insensitive, all words must be present)\n */\n private buildLike(field: string, value: string): string {\n const words = value.split(/\\s+/).filter(w => w.length > 0)\n\n if (words.length === 0) {\n return `1=1` // No-op condition\n }\n\n const conditions = words.map(word => {\n this.params.push(`%${word}%`)\n return `${field} LIKE ?`\n })\n\n return `(${conditions.join(' AND ')})`\n }\n\n /**\n * Build CONTAINS condition (case-insensitive substring)\n */\n private buildContains(field: string, value: string): string {\n this.params.push(`%${value}%`)\n return `${field} LIKE ?`\n }\n\n /**\n * Build IN condition\n */\n private buildIn(field: string, value: any): string {\n let values: any[]\n\n if (typeof value === 'string') {\n // Parse comma-delimited string\n values = value.split(',').map(v => v.trim()).filter(v => v.length > 0)\n } else if (Array.isArray(value)) {\n values = value\n } else {\n values = [value]\n }\n\n if (values.length === 0) {\n return `1=0` // No values means no matches\n }\n\n const placeholders = values.map(v => {\n this.params.push(v)\n return '?'\n }).join(', ')\n\n return `${field} IN (${placeholders})`\n }\n\n /**\n * Build NOT IN condition\n */\n private buildNotIn(field: string, value: any): string {\n let values: any[]\n\n if (typeof value === 'string') {\n // Parse comma-delimited string\n values = value.split(',').map(v => v.trim()).filter(v => v.length > 0)\n } else if (Array.isArray(value)) {\n values = value\n } else {\n values = [value]\n }\n\n if (values.length === 0) {\n return `1=1` // No values means all match\n }\n\n const placeholders = values.map(v => {\n this.params.push(v)\n return '?'\n }).join(', ')\n\n return `${field} NOT IN (${placeholders})`\n }\n\n /**\n * Build ALL condition (value must contain all items in list)\n * For SQLite, we'll check if a JSON array contains all values\n */\n private buildAll(field: string, value: any): string {\n let values: any[]\n\n if (typeof value === 'string') {\n values = value.split(',').map(v => v.trim()).filter(v => v.length > 0)\n } else if (Array.isArray(value)) {\n values = value\n } else {\n values = [value]\n }\n\n if (values.length === 0) {\n return `1=1`\n }\n\n // For SQLite, check if field contains all values using JSON functions\n // This assumes the field is a JSON array or comma-separated string\n const conditions = values.map(val => {\n this.params.push(`%${val}%`)\n return `${field} LIKE ?`\n })\n\n return `(${conditions.join(' AND ')})`\n }\n\n /**\n * Build EXISTS condition\n */\n private buildExists(field: string, value: boolean): string {\n if (value) {\n return `${field} IS NOT NULL AND ${field} != ''`\n } else {\n return `(${field} IS NULL OR ${field} = '')`\n }\n }\n\n /**\n * Sanitize field names to prevent SQL injection\n */\n private sanitizeFieldName(field: string): string {\n // Allow alphanumeric, underscores, dots (for JSON fields)\n const sanitized = field.replace(/[^a-zA-Z0-9_$.]/g, '')\n\n // Handle JSON field access (e.g., data.title -> json_extract(data, '$.title'))\n if (sanitized.includes('.')) {\n const [table, ...path] = sanitized.split('.')\n return `json_extract(${table}, '$.${path.join('.')}')`\n }\n\n return sanitized\n }\n\n /**\n * Parse filter from query string\n */\n static parseFromQuery(query: Record<string, any>): QueryFilter {\n const filter: QueryFilter = {}\n\n // Parse where clause from 'where' parameter (JSON string)\n if (query.where) {\n try {\n filter.where = typeof query.where === 'string'\n ? JSON.parse(query.where)\n : query.where\n } catch (e) {\n console.error('Failed to parse where clause:', e)\n }\n }\n\n // Initialize where clause if not present\n if (!filter.where) {\n filter.where = { and: [] }\n }\n if (!filter.where.and) {\n filter.where.and = []\n }\n\n // Parse simple field filters (status, collection_id, etc.)\n // These are convenience parameters that get converted to WHERE conditions\n const simpleFieldMappings: Record<string, string> = {\n 'status': 'status',\n 'collection_id': 'collection_id'\n }\n\n for (const [queryParam, dbField] of Object.entries(simpleFieldMappings)) {\n if (query[queryParam]) {\n filter.where.and.push({\n field: dbField,\n operator: 'equals',\n value: query[queryParam]\n })\n }\n }\n\n // Parse limit\n if (query.limit) {\n filter.limit = Math.min(parseInt(query.limit), 1000) // Max 1000\n }\n\n // Parse offset\n if (query.offset) {\n filter.offset = parseInt(query.offset)\n }\n\n // Parse sort\n if (query.sort) {\n try {\n filter.sort = typeof query.sort === 'string'\n ? JSON.parse(query.sort)\n : query.sort\n } catch (e) {\n console.error('Failed to parse sort clause:', e)\n }\n }\n\n return filter\n }\n}\n\n/**\n * Helper function to build query from filter\n */\nexport function buildQuery(table: string, filter: QueryFilter): QueryResult {\n const builder = new QueryFilterBuilder()\n return builder.build(table, filter)\n}\n","{\n \"name\": \"@sonicjs-cms/core\",\n \"version\": \"2.5.0\",\n \"description\": \"Core framework for SonicJS headless CMS - Edge-first, TypeScript-native CMS built for Cloudflare Workers\",\n \"type\": \"module\",\n \"main\": \"./dist/index.cjs\",\n \"module\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"bin\": {\n \"sonicjs-db-reset\": \"./bin/db-reset.js\"\n },\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.js\",\n \"require\": \"./dist/index.cjs\"\n },\n \"./services\": {\n \"types\": \"./dist/services.d.ts\",\n \"import\": \"./dist/services.js\",\n \"require\": \"./dist/services.cjs\"\n },\n \"./middleware\": {\n \"types\": \"./dist/middleware.d.ts\",\n \"import\": \"./dist/middleware.js\",\n \"require\": \"./dist/middleware.cjs\"\n },\n \"./routes\": {\n \"types\": \"./dist/routes.d.ts\",\n \"import\": \"./dist/routes.js\",\n \"require\": \"./dist/routes.cjs\"\n },\n \"./templates\": {\n \"types\": \"./dist/templates.d.ts\",\n \"import\": \"./dist/templates.js\",\n \"require\": \"./dist/templates.cjs\"\n },\n \"./plugins\": {\n \"types\": \"./dist/plugins.d.ts\",\n \"import\": \"./dist/plugins.js\",\n \"require\": \"./dist/plugins.cjs\"\n },\n \"./utils\": {\n \"types\": \"./dist/utils.d.ts\",\n \"import\": \"./dist/utils.js\",\n \"require\": \"./dist/utils.cjs\"\n },\n \"./types\": {\n \"types\": \"./dist/types.d.ts\",\n \"import\": \"./dist/types.js\",\n \"require\": \"./dist/types.cjs\"\n },\n \"./package.json\": \"./package.json\"\n },\n \"files\": [\n \"bin\",\n \"dist\",\n \"migrations\",\n \"README.md\",\n \"LICENSE\"\n ],\n \"scripts\": {\n \"generate:migrations\": \"npx tsx scripts/generate-migrations.ts\",\n \"prebuild\": \"npm run generate:migrations\",\n \"build\": \"tsup\",\n \"dev\": \"tsup --watch\",\n \"type-check\": \"tsc --noEmit\",\n \"lint\": \"eslint src/\",\n \"lint:fix\": \"eslint src/ --fix\",\n \"test\": \"vitest --run\",\n \"test:watch\": \"vitest\",\n \"prepublishOnly\": \"npm run build\"\n },\n \"keywords\": [\n \"cms\",\n \"headless-cms\",\n \"cloudflare\",\n \"workers\",\n \"edge\",\n \"typescript\",\n \"hono\",\n \"content-management\",\n \"api\",\n \"sonicjs\"\n ],\n \"author\": \"SonicJS Team\",\n \"license\": \"MIT\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/sonicjs/sonicjs.git\",\n \"directory\": \"packages/core\"\n },\n \"bugs\": {\n \"url\": \"https://github.com/sonicjs/sonicjs/issues\"\n },\n \"homepage\": \"https://sonicjs.com\",\n \"peerDependencies\": {\n \"@cloudflare/workers-types\": \"^4.0.0\",\n \"drizzle-orm\": \"^0.44.0\",\n \"hono\": \"^4.0.0\",\n \"zod\": \"^3.0.0 || ^4.0.0\"\n },\n \"dependencies\": {\n \"drizzle-zod\": \"^0.8.3\",\n \"highlight.js\": \"^11.11.1\",\n \"marked\": \"^16.4.1\",\n \"semver\": \"^7.7.3\"\n },\n \"devDependencies\": {\n \"@cloudflare/workers-types\": \"^4.20251014.0\",\n \"@types/node\": \"^24.9.2\",\n \"@typescript-eslint/eslint-plugin\": \"^8.50.0\",\n \"@typescript-eslint/parser\": \"^8.50.0\",\n \"drizzle-orm\": \"^0.44.7\",\n \"eslint\": \"^9.39.2\",\n \"glob\": \"^10.5.0\",\n \"hono\": \"^4.10.4\",\n \"tsup\": \"^8.5.0\",\n \"typescript\": \"^5.9.3\",\n \"vitest\": \"^4.0.5\",\n \"zod\": \"^4.1.12\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\"\n },\n \"publishConfig\": {\n \"access\": \"public\",\n \"registry\": \"https://registry.npmjs.org/\"\n }\n}\n","/**\n * Version utility\n *\n * Provides the current version of @sonicjs-cms/core package\n */\n\nimport pkg from '../../package.json'\n\nexport const SONICJS_VERSION = pkg.version\n\n/**\n * Get the current SonicJS core version\n */\nexport function getCoreVersion(): string {\n return SONICJS_VERSION\n}\n","import type { BlockDefinitions } from '../types/collection-config'\n\nexport type BlocksFieldConfig = {\n blocks: BlockDefinitions\n discriminator: string\n}\n\nexport function getBlocksFieldConfig(fieldOptions: any): BlocksFieldConfig | null {\n if (!fieldOptions || typeof fieldOptions !== 'object') return null\n\n const itemsConfig = fieldOptions.items && typeof fieldOptions.items === 'object'\n ? fieldOptions.items\n : null\n\n if (!itemsConfig || !itemsConfig.blocks || typeof itemsConfig.blocks !== 'object') {\n return null\n }\n\n const discriminator = typeof itemsConfig.discriminator === 'string' && itemsConfig.discriminator\n ? itemsConfig.discriminator\n : 'blockType'\n\n return {\n blocks: itemsConfig.blocks as BlockDefinitions,\n discriminator\n }\n}\n\nexport function parseBlocksValue(value: unknown, config: BlocksFieldConfig) {\n const errors: string[] = []\n let rawValue = value\n\n if (rawValue === null || rawValue === undefined || rawValue === '') {\n return { value: [] as any[], errors }\n }\n\n if (typeof rawValue === 'string') {\n try {\n rawValue = JSON.parse(rawValue)\n } catch {\n return { value: [] as any[], errors: ['Blocks value must be valid JSON'] }\n }\n }\n\n if (!Array.isArray(rawValue)) {\n return { value: [] as any[], errors: ['Blocks value must be an array'] }\n }\n\n const normalized = rawValue.map((item, index) => {\n if (!item || typeof item !== 'object') {\n errors.push(`Block #${index + 1} must be an object`)\n return null\n }\n\n if ((item as any).blockType && (item as any).data && typeof (item as any).data === 'object') {\n return { [config.discriminator]: (item as any).blockType, ...(item as any).data }\n }\n\n if (!(config.discriminator in (item as any))) {\n errors.push(`Block #${index + 1} is missing \"${config.discriminator}\"`)\n }\n\n return item as any\n }).filter((item) => item !== null)\n\n return { value: normalized, errors }\n}\n"]}
|
|
@@ -5,6 +5,12 @@
|
|
|
5
5
|
* Collections can be defined in TypeScript/JSON files and synced to the database.
|
|
6
6
|
*/
|
|
7
7
|
type FieldType = 'string' | 'number' | 'boolean' | 'date' | 'datetime' | 'email' | 'url' | 'richtext' | 'markdown' | 'json' | 'array' | 'object' | 'reference' | 'media' | 'select' | 'multiselect' | 'checkbox' | 'radio' | 'textarea' | 'slug' | 'color' | 'file';
|
|
8
|
+
interface BlockDefinition {
|
|
9
|
+
label?: string;
|
|
10
|
+
description?: string;
|
|
11
|
+
properties: Record<string, FieldConfig>;
|
|
12
|
+
}
|
|
13
|
+
type BlockDefinitions = Record<string, BlockDefinition>;
|
|
8
14
|
interface FieldConfig {
|
|
9
15
|
type: FieldType;
|
|
10
16
|
title?: string;
|
|
@@ -23,6 +29,8 @@ interface FieldConfig {
|
|
|
23
29
|
collection?: string;
|
|
24
30
|
items?: FieldConfig;
|
|
25
31
|
properties?: Record<string, FieldConfig>;
|
|
32
|
+
blocks?: BlockDefinitions;
|
|
33
|
+
discriminator?: string;
|
|
26
34
|
format?: string;
|
|
27
35
|
widget?: string;
|
|
28
36
|
dependsOn?: string;
|
|
@@ -104,4 +112,4 @@ interface CollectionSyncResult {
|
|
|
104
112
|
error?: string;
|
|
105
113
|
}
|
|
106
114
|
|
|
107
|
-
export type { CollectionSchema as C, FieldType as F, FieldConfig as a,
|
|
115
|
+
export type { BlockDefinition as B, CollectionSchema as C, FieldType as F, FieldConfig as a, BlockDefinitions as b, CollectionConfig as c, CollectionConfigModule as d, CollectionSyncResult as e };
|
|
@@ -5,6 +5,12 @@
|
|
|
5
5
|
* Collections can be defined in TypeScript/JSON files and synced to the database.
|
|
6
6
|
*/
|
|
7
7
|
type FieldType = 'string' | 'number' | 'boolean' | 'date' | 'datetime' | 'email' | 'url' | 'richtext' | 'markdown' | 'json' | 'array' | 'object' | 'reference' | 'media' | 'select' | 'multiselect' | 'checkbox' | 'radio' | 'textarea' | 'slug' | 'color' | 'file';
|
|
8
|
+
interface BlockDefinition {
|
|
9
|
+
label?: string;
|
|
10
|
+
description?: string;
|
|
11
|
+
properties: Record<string, FieldConfig>;
|
|
12
|
+
}
|
|
13
|
+
type BlockDefinitions = Record<string, BlockDefinition>;
|
|
8
14
|
interface FieldConfig {
|
|
9
15
|
type: FieldType;
|
|
10
16
|
title?: string;
|
|
@@ -23,6 +29,8 @@ interface FieldConfig {
|
|
|
23
29
|
collection?: string;
|
|
24
30
|
items?: FieldConfig;
|
|
25
31
|
properties?: Record<string, FieldConfig>;
|
|
32
|
+
blocks?: BlockDefinitions;
|
|
33
|
+
discriminator?: string;
|
|
26
34
|
format?: string;
|
|
27
35
|
widget?: string;
|
|
28
36
|
dependsOn?: string;
|
|
@@ -104,4 +112,4 @@ interface CollectionSyncResult {
|
|
|
104
112
|
error?: string;
|
|
105
113
|
}
|
|
106
114
|
|
|
107
|
-
export type { CollectionSchema as C, FieldType as F, FieldConfig as a,
|
|
115
|
+
export type { BlockDefinition as B, CollectionSchema as C, FieldType as F, FieldConfig as a, BlockDefinitions as b, CollectionConfig as c, CollectionConfigModule as d, CollectionSyncResult as e };
|
package/dist/index.cjs
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkUAQL2VWX_cjs = require('./chunk-UAQL2VWX.cjs');
|
|
4
4
|
var chunk7FOAMNTI_cjs = require('./chunk-7FOAMNTI.cjs');
|
|
5
|
-
var
|
|
5
|
+
var chunkYYV3XQOQ_cjs = require('./chunk-YYV3XQOQ.cjs');
|
|
6
6
|
var chunkILZ3DP4I_cjs = require('./chunk-ILZ3DP4I.cjs');
|
|
7
|
-
var
|
|
7
|
+
var chunkI4V3VZWF_cjs = require('./chunk-I4V3VZWF.cjs');
|
|
8
8
|
var chunkYIXSSJWD_cjs = require('./chunk-YIXSSJWD.cjs');
|
|
9
9
|
var chunkAZLU3ROK_cjs = require('./chunk-AZLU3ROK.cjs');
|
|
10
|
-
var
|
|
11
|
-
var
|
|
10
|
+
var chunkLWG2MWDA_cjs = require('./chunk-LWG2MWDA.cjs');
|
|
11
|
+
var chunkAI2JJIJX_cjs = require('./chunk-AI2JJIJX.cjs');
|
|
12
|
+
var chunkZWV3EBZ7_cjs = require('./chunk-ZWV3EBZ7.cjs');
|
|
12
13
|
require('./chunk-P3XDZL6Q.cjs');
|
|
13
14
|
var chunkRCQ2HIQD_cjs = require('./chunk-RCQ2HIQD.cjs');
|
|
14
15
|
var chunkKYGRJCZM_cjs = require('./chunk-KYGRJCZM.cjs');
|
|
@@ -19,6 +20,33 @@ var cookie = require('hono/cookie');
|
|
|
19
20
|
var zod = require('zod');
|
|
20
21
|
var d1 = require('drizzle-orm/d1');
|
|
21
22
|
|
|
23
|
+
// src/middleware/admin-setup.ts
|
|
24
|
+
function adminSetupMiddleware() {
|
|
25
|
+
return async (c, next) => {
|
|
26
|
+
const path = new URL(c.req.url).pathname;
|
|
27
|
+
if (path.startsWith("/auth/")) {
|
|
28
|
+
return next();
|
|
29
|
+
}
|
|
30
|
+
if (path.match(/\.(js|css|ico|png|jpg|jpeg|gif|svg|woff|woff2|ttf|eot)$/)) {
|
|
31
|
+
return next();
|
|
32
|
+
}
|
|
33
|
+
if (path === "/health") {
|
|
34
|
+
return next();
|
|
35
|
+
}
|
|
36
|
+
if (path.startsWith("/api/")) {
|
|
37
|
+
return next();
|
|
38
|
+
}
|
|
39
|
+
const db = c.env.DB;
|
|
40
|
+
const adminExists = await chunkUAQL2VWX_cjs.checkAdminUserExists(db);
|
|
41
|
+
if (!adminExists) {
|
|
42
|
+
if (path.startsWith("/admin")) {
|
|
43
|
+
return c.redirect("/auth/register?setup=true");
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return next();
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
|
|
22
50
|
// src/plugins/core-plugins/database-tools-plugin/services/database-service.ts
|
|
23
51
|
var DatabaseToolsService = class {
|
|
24
52
|
constructor(db) {
|
|
@@ -558,7 +586,7 @@ function formatCellValue(value) {
|
|
|
558
586
|
// src/plugins/core-plugins/database-tools-plugin/admin-routes.ts
|
|
559
587
|
function createDatabaseToolsAdminRoutes() {
|
|
560
588
|
const router2 = new hono.Hono();
|
|
561
|
-
router2.use("*",
|
|
589
|
+
router2.use("*", chunkYYV3XQOQ_cjs.requireAuth());
|
|
562
590
|
router2.get("/api/stats", async (c) => {
|
|
563
591
|
try {
|
|
564
592
|
const user = c.get("user");
|
|
@@ -1306,7 +1334,7 @@ function createSeedDataAdminRoutes() {
|
|
|
1306
1334
|
return routes;
|
|
1307
1335
|
}
|
|
1308
1336
|
function createEmailPlugin() {
|
|
1309
|
-
const builder =
|
|
1337
|
+
const builder = chunkAI2JJIJX_cjs.PluginBuilder.create({
|
|
1310
1338
|
name: "email",
|
|
1311
1339
|
version: "1.0.0-beta.1",
|
|
1312
1340
|
description: "Send transactional emails using Resend"
|
|
@@ -1983,7 +2011,7 @@ var DEFAULT_SETTINGS = {
|
|
|
1983
2011
|
appName: "SonicJS"
|
|
1984
2012
|
};
|
|
1985
2013
|
function createOTPLoginPlugin() {
|
|
1986
|
-
const builder =
|
|
2014
|
+
const builder = chunkAI2JJIJX_cjs.PluginBuilder.create({
|
|
1987
2015
|
name: "otp-login",
|
|
1988
2016
|
version: "1.0.0-beta.1",
|
|
1989
2017
|
description: "Passwordless authentication via email one-time codes"
|
|
@@ -2147,7 +2175,7 @@ function createOTPLoginPlugin() {
|
|
|
2147
2175
|
error: "Account is deactivated"
|
|
2148
2176
|
}, 403);
|
|
2149
2177
|
}
|
|
2150
|
-
const token = await
|
|
2178
|
+
const token = await chunkYYV3XQOQ_cjs.AuthManager.generateToken(user.id, user.email, user.role);
|
|
2151
2179
|
cookie.setCookie(c, "auth_token", token, {
|
|
2152
2180
|
httpOnly: true,
|
|
2153
2181
|
secure: true,
|
|
@@ -2550,12 +2578,12 @@ function createMagicLinkAuthPlugin() {
|
|
|
2550
2578
|
SET used = 1, used_at = ?
|
|
2551
2579
|
WHERE id = ?
|
|
2552
2580
|
`).bind(Date.now(), magicLink.id).run();
|
|
2553
|
-
const jwtToken = await
|
|
2581
|
+
const jwtToken = await chunkYYV3XQOQ_cjs.AuthManager.generateToken(
|
|
2554
2582
|
user.id,
|
|
2555
2583
|
user.email,
|
|
2556
2584
|
user.role
|
|
2557
2585
|
);
|
|
2558
|
-
|
|
2586
|
+
chunkYYV3XQOQ_cjs.AuthManager.setAuthCookie(c, jwtToken);
|
|
2559
2587
|
await db.prepare(`
|
|
2560
2588
|
UPDATE users SET last_login_at = ? WHERE id = ?
|
|
2561
2589
|
`).bind(Date.now(), user.id).run();
|
|
@@ -2703,14 +2731,15 @@ createMagicLinkAuthPlugin();
|
|
|
2703
2731
|
// src/app.ts
|
|
2704
2732
|
function createSonicJSApp(config = {}) {
|
|
2705
2733
|
const app = new hono.Hono();
|
|
2706
|
-
const appVersion = config.version ||
|
|
2734
|
+
const appVersion = config.version || chunkZWV3EBZ7_cjs.getCoreVersion();
|
|
2707
2735
|
const appName = config.name || "SonicJS AI";
|
|
2708
2736
|
app.use("*", async (c, next) => {
|
|
2709
2737
|
c.set("appVersion", appVersion);
|
|
2710
2738
|
await next();
|
|
2711
2739
|
});
|
|
2712
|
-
app.use("*",
|
|
2713
|
-
app.use("*",
|
|
2740
|
+
app.use("*", chunkYYV3XQOQ_cjs.metricsMiddleware());
|
|
2741
|
+
app.use("*", chunkYYV3XQOQ_cjs.bootstrapMiddleware(config));
|
|
2742
|
+
app.use("*", adminSetupMiddleware());
|
|
2714
2743
|
if (config.middleware?.beforeAuth) {
|
|
2715
2744
|
for (const middleware of config.middleware.beforeAuth) {
|
|
2716
2745
|
app.use("*", middleware);
|
|
@@ -2727,22 +2756,22 @@ function createSonicJSApp(config = {}) {
|
|
|
2727
2756
|
app.use("*", middleware);
|
|
2728
2757
|
}
|
|
2729
2758
|
}
|
|
2730
|
-
app.route("/api",
|
|
2731
|
-
app.route("/api/media",
|
|
2732
|
-
app.route("/api/system",
|
|
2733
|
-
app.route("/admin/api",
|
|
2734
|
-
app.route("/admin/dashboard",
|
|
2735
|
-
app.route("/admin/collections",
|
|
2736
|
-
app.route("/admin/settings",
|
|
2759
|
+
app.route("/api", chunkUAQL2VWX_cjs.api_default);
|
|
2760
|
+
app.route("/api/media", chunkUAQL2VWX_cjs.api_media_default);
|
|
2761
|
+
app.route("/api/system", chunkUAQL2VWX_cjs.api_system_default);
|
|
2762
|
+
app.route("/admin/api", chunkUAQL2VWX_cjs.admin_api_default);
|
|
2763
|
+
app.route("/admin/dashboard", chunkUAQL2VWX_cjs.router);
|
|
2764
|
+
app.route("/admin/collections", chunkUAQL2VWX_cjs.adminCollectionsRoutes);
|
|
2765
|
+
app.route("/admin/settings", chunkUAQL2VWX_cjs.adminSettingsRoutes);
|
|
2737
2766
|
app.route("/admin/database-tools", createDatabaseToolsAdminRoutes());
|
|
2738
2767
|
app.route("/admin/seed-data", createSeedDataAdminRoutes());
|
|
2739
|
-
app.route("/admin/content",
|
|
2740
|
-
app.route("/admin/media",
|
|
2741
|
-
app.route("/admin/plugins",
|
|
2742
|
-
app.route("/admin/logs",
|
|
2743
|
-
app.route("/admin",
|
|
2744
|
-
app.route("/auth",
|
|
2745
|
-
app.route("/",
|
|
2768
|
+
app.route("/admin/content", chunkUAQL2VWX_cjs.admin_content_default);
|
|
2769
|
+
app.route("/admin/media", chunkUAQL2VWX_cjs.adminMediaRoutes);
|
|
2770
|
+
app.route("/admin/plugins", chunkUAQL2VWX_cjs.adminPluginRoutes);
|
|
2771
|
+
app.route("/admin/logs", chunkUAQL2VWX_cjs.adminLogsRoutes);
|
|
2772
|
+
app.route("/admin", chunkUAQL2VWX_cjs.userRoutes);
|
|
2773
|
+
app.route("/auth", chunkUAQL2VWX_cjs.auth_default);
|
|
2774
|
+
app.route("/", chunkUAQL2VWX_cjs.test_cleanup_default);
|
|
2746
2775
|
if (emailPlugin.routes && emailPlugin.routes.length > 0) {
|
|
2747
2776
|
for (const route of emailPlugin.routes) {
|
|
2748
2777
|
app.route(route.path, route.handler);
|
|
@@ -2822,83 +2851,83 @@ function createDb(d1$1) {
|
|
|
2822
2851
|
}
|
|
2823
2852
|
|
|
2824
2853
|
// src/index.ts
|
|
2825
|
-
var VERSION =
|
|
2854
|
+
var VERSION = chunkZWV3EBZ7_cjs.package_default.version;
|
|
2826
2855
|
|
|
2827
2856
|
Object.defineProperty(exports, "ROUTES_INFO", {
|
|
2828
2857
|
enumerable: true,
|
|
2829
|
-
get: function () { return
|
|
2858
|
+
get: function () { return chunkUAQL2VWX_cjs.ROUTES_INFO; }
|
|
2830
2859
|
});
|
|
2831
2860
|
Object.defineProperty(exports, "adminApiRoutes", {
|
|
2832
2861
|
enumerable: true,
|
|
2833
|
-
get: function () { return
|
|
2862
|
+
get: function () { return chunkUAQL2VWX_cjs.admin_api_default; }
|
|
2834
2863
|
});
|
|
2835
2864
|
Object.defineProperty(exports, "adminCheckboxRoutes", {
|
|
2836
2865
|
enumerable: true,
|
|
2837
|
-
get: function () { return
|
|
2866
|
+
get: function () { return chunkUAQL2VWX_cjs.adminCheckboxRoutes; }
|
|
2838
2867
|
});
|
|
2839
2868
|
Object.defineProperty(exports, "adminCodeExamplesRoutes", {
|
|
2840
2869
|
enumerable: true,
|
|
2841
|
-
get: function () { return
|
|
2870
|
+
get: function () { return chunkUAQL2VWX_cjs.admin_code_examples_default; }
|
|
2842
2871
|
});
|
|
2843
2872
|
Object.defineProperty(exports, "adminCollectionsRoutes", {
|
|
2844
2873
|
enumerable: true,
|
|
2845
|
-
get: function () { return
|
|
2874
|
+
get: function () { return chunkUAQL2VWX_cjs.adminCollectionsRoutes; }
|
|
2846
2875
|
});
|
|
2847
2876
|
Object.defineProperty(exports, "adminContentRoutes", {
|
|
2848
2877
|
enumerable: true,
|
|
2849
|
-
get: function () { return
|
|
2878
|
+
get: function () { return chunkUAQL2VWX_cjs.admin_content_default; }
|
|
2850
2879
|
});
|
|
2851
2880
|
Object.defineProperty(exports, "adminDashboardRoutes", {
|
|
2852
2881
|
enumerable: true,
|
|
2853
|
-
get: function () { return
|
|
2882
|
+
get: function () { return chunkUAQL2VWX_cjs.router; }
|
|
2854
2883
|
});
|
|
2855
2884
|
Object.defineProperty(exports, "adminDesignRoutes", {
|
|
2856
2885
|
enumerable: true,
|
|
2857
|
-
get: function () { return
|
|
2886
|
+
get: function () { return chunkUAQL2VWX_cjs.adminDesignRoutes; }
|
|
2858
2887
|
});
|
|
2859
2888
|
Object.defineProperty(exports, "adminLogsRoutes", {
|
|
2860
2889
|
enumerable: true,
|
|
2861
|
-
get: function () { return
|
|
2890
|
+
get: function () { return chunkUAQL2VWX_cjs.adminLogsRoutes; }
|
|
2862
2891
|
});
|
|
2863
2892
|
Object.defineProperty(exports, "adminMediaRoutes", {
|
|
2864
2893
|
enumerable: true,
|
|
2865
|
-
get: function () { return
|
|
2894
|
+
get: function () { return chunkUAQL2VWX_cjs.adminMediaRoutes; }
|
|
2866
2895
|
});
|
|
2867
2896
|
Object.defineProperty(exports, "adminPluginRoutes", {
|
|
2868
2897
|
enumerable: true,
|
|
2869
|
-
get: function () { return
|
|
2898
|
+
get: function () { return chunkUAQL2VWX_cjs.adminPluginRoutes; }
|
|
2870
2899
|
});
|
|
2871
2900
|
Object.defineProperty(exports, "adminSettingsRoutes", {
|
|
2872
2901
|
enumerable: true,
|
|
2873
|
-
get: function () { return
|
|
2902
|
+
get: function () { return chunkUAQL2VWX_cjs.adminSettingsRoutes; }
|
|
2874
2903
|
});
|
|
2875
2904
|
Object.defineProperty(exports, "adminTestimonialsRoutes", {
|
|
2876
2905
|
enumerable: true,
|
|
2877
|
-
get: function () { return
|
|
2906
|
+
get: function () { return chunkUAQL2VWX_cjs.admin_testimonials_default; }
|
|
2878
2907
|
});
|
|
2879
2908
|
Object.defineProperty(exports, "adminUsersRoutes", {
|
|
2880
2909
|
enumerable: true,
|
|
2881
|
-
get: function () { return
|
|
2910
|
+
get: function () { return chunkUAQL2VWX_cjs.userRoutes; }
|
|
2882
2911
|
});
|
|
2883
2912
|
Object.defineProperty(exports, "apiContentCrudRoutes", {
|
|
2884
2913
|
enumerable: true,
|
|
2885
|
-
get: function () { return
|
|
2914
|
+
get: function () { return chunkUAQL2VWX_cjs.api_content_crud_default; }
|
|
2886
2915
|
});
|
|
2887
2916
|
Object.defineProperty(exports, "apiMediaRoutes", {
|
|
2888
2917
|
enumerable: true,
|
|
2889
|
-
get: function () { return
|
|
2918
|
+
get: function () { return chunkUAQL2VWX_cjs.api_media_default; }
|
|
2890
2919
|
});
|
|
2891
2920
|
Object.defineProperty(exports, "apiRoutes", {
|
|
2892
2921
|
enumerable: true,
|
|
2893
|
-
get: function () { return
|
|
2922
|
+
get: function () { return chunkUAQL2VWX_cjs.api_default; }
|
|
2894
2923
|
});
|
|
2895
2924
|
Object.defineProperty(exports, "apiSystemRoutes", {
|
|
2896
2925
|
enumerable: true,
|
|
2897
|
-
get: function () { return
|
|
2926
|
+
get: function () { return chunkUAQL2VWX_cjs.api_system_default; }
|
|
2898
2927
|
});
|
|
2899
2928
|
Object.defineProperty(exports, "authRoutes", {
|
|
2900
2929
|
enumerable: true,
|
|
2901
|
-
get: function () { return
|
|
2930
|
+
get: function () { return chunkUAQL2VWX_cjs.auth_default; }
|
|
2902
2931
|
});
|
|
2903
2932
|
Object.defineProperty(exports, "Logger", {
|
|
2904
2933
|
enumerable: true,
|
|
@@ -3066,83 +3095,83 @@ Object.defineProperty(exports, "workflowHistory", {
|
|
|
3066
3095
|
});
|
|
3067
3096
|
Object.defineProperty(exports, "AuthManager", {
|
|
3068
3097
|
enumerable: true,
|
|
3069
|
-
get: function () { return
|
|
3098
|
+
get: function () { return chunkYYV3XQOQ_cjs.AuthManager; }
|
|
3070
3099
|
});
|
|
3071
3100
|
Object.defineProperty(exports, "PermissionManager", {
|
|
3072
3101
|
enumerable: true,
|
|
3073
|
-
get: function () { return
|
|
3102
|
+
get: function () { return chunkYYV3XQOQ_cjs.PermissionManager; }
|
|
3074
3103
|
});
|
|
3075
3104
|
Object.defineProperty(exports, "bootstrapMiddleware", {
|
|
3076
3105
|
enumerable: true,
|
|
3077
|
-
get: function () { return
|
|
3106
|
+
get: function () { return chunkYYV3XQOQ_cjs.bootstrapMiddleware; }
|
|
3078
3107
|
});
|
|
3079
3108
|
Object.defineProperty(exports, "cacheHeaders", {
|
|
3080
3109
|
enumerable: true,
|
|
3081
|
-
get: function () { return
|
|
3110
|
+
get: function () { return chunkYYV3XQOQ_cjs.cacheHeaders; }
|
|
3082
3111
|
});
|
|
3083
3112
|
Object.defineProperty(exports, "compressionMiddleware", {
|
|
3084
3113
|
enumerable: true,
|
|
3085
|
-
get: function () { return
|
|
3114
|
+
get: function () { return chunkYYV3XQOQ_cjs.compressionMiddleware; }
|
|
3086
3115
|
});
|
|
3087
3116
|
Object.defineProperty(exports, "detailedLoggingMiddleware", {
|
|
3088
3117
|
enumerable: true,
|
|
3089
|
-
get: function () { return
|
|
3118
|
+
get: function () { return chunkYYV3XQOQ_cjs.detailedLoggingMiddleware; }
|
|
3090
3119
|
});
|
|
3091
3120
|
Object.defineProperty(exports, "getActivePlugins", {
|
|
3092
3121
|
enumerable: true,
|
|
3093
|
-
get: function () { return
|
|
3122
|
+
get: function () { return chunkYYV3XQOQ_cjs.getActivePlugins; }
|
|
3094
3123
|
});
|
|
3095
3124
|
Object.defineProperty(exports, "isPluginActive", {
|
|
3096
3125
|
enumerable: true,
|
|
3097
|
-
get: function () { return
|
|
3126
|
+
get: function () { return chunkYYV3XQOQ_cjs.isPluginActive; }
|
|
3098
3127
|
});
|
|
3099
3128
|
Object.defineProperty(exports, "logActivity", {
|
|
3100
3129
|
enumerable: true,
|
|
3101
|
-
get: function () { return
|
|
3130
|
+
get: function () { return chunkYYV3XQOQ_cjs.logActivity; }
|
|
3102
3131
|
});
|
|
3103
3132
|
Object.defineProperty(exports, "loggingMiddleware", {
|
|
3104
3133
|
enumerable: true,
|
|
3105
|
-
get: function () { return
|
|
3134
|
+
get: function () { return chunkYYV3XQOQ_cjs.loggingMiddleware; }
|
|
3106
3135
|
});
|
|
3107
3136
|
Object.defineProperty(exports, "optionalAuth", {
|
|
3108
3137
|
enumerable: true,
|
|
3109
|
-
get: function () { return
|
|
3138
|
+
get: function () { return chunkYYV3XQOQ_cjs.optionalAuth; }
|
|
3110
3139
|
});
|
|
3111
3140
|
Object.defineProperty(exports, "performanceLoggingMiddleware", {
|
|
3112
3141
|
enumerable: true,
|
|
3113
|
-
get: function () { return
|
|
3142
|
+
get: function () { return chunkYYV3XQOQ_cjs.performanceLoggingMiddleware; }
|
|
3114
3143
|
});
|
|
3115
3144
|
Object.defineProperty(exports, "requireActivePlugin", {
|
|
3116
3145
|
enumerable: true,
|
|
3117
|
-
get: function () { return
|
|
3146
|
+
get: function () { return chunkYYV3XQOQ_cjs.requireActivePlugin; }
|
|
3118
3147
|
});
|
|
3119
3148
|
Object.defineProperty(exports, "requireActivePlugins", {
|
|
3120
3149
|
enumerable: true,
|
|
3121
|
-
get: function () { return
|
|
3150
|
+
get: function () { return chunkYYV3XQOQ_cjs.requireActivePlugins; }
|
|
3122
3151
|
});
|
|
3123
3152
|
Object.defineProperty(exports, "requireAnyPermission", {
|
|
3124
3153
|
enumerable: true,
|
|
3125
|
-
get: function () { return
|
|
3154
|
+
get: function () { return chunkYYV3XQOQ_cjs.requireAnyPermission; }
|
|
3126
3155
|
});
|
|
3127
3156
|
Object.defineProperty(exports, "requireAuth", {
|
|
3128
3157
|
enumerable: true,
|
|
3129
|
-
get: function () { return
|
|
3158
|
+
get: function () { return chunkYYV3XQOQ_cjs.requireAuth; }
|
|
3130
3159
|
});
|
|
3131
3160
|
Object.defineProperty(exports, "requirePermission", {
|
|
3132
3161
|
enumerable: true,
|
|
3133
|
-
get: function () { return
|
|
3162
|
+
get: function () { return chunkYYV3XQOQ_cjs.requirePermission; }
|
|
3134
3163
|
});
|
|
3135
3164
|
Object.defineProperty(exports, "requireRole", {
|
|
3136
3165
|
enumerable: true,
|
|
3137
|
-
get: function () { return
|
|
3166
|
+
get: function () { return chunkYYV3XQOQ_cjs.requireRole; }
|
|
3138
3167
|
});
|
|
3139
3168
|
Object.defineProperty(exports, "securityHeaders", {
|
|
3140
3169
|
enumerable: true,
|
|
3141
|
-
get: function () { return
|
|
3170
|
+
get: function () { return chunkYYV3XQOQ_cjs.securityHeaders; }
|
|
3142
3171
|
});
|
|
3143
3172
|
Object.defineProperty(exports, "securityLoggingMiddleware", {
|
|
3144
3173
|
enumerable: true,
|
|
3145
|
-
get: function () { return
|
|
3174
|
+
get: function () { return chunkYYV3XQOQ_cjs.securityLoggingMiddleware; }
|
|
3146
3175
|
});
|
|
3147
3176
|
Object.defineProperty(exports, "PluginBootstrapService", {
|
|
3148
3177
|
enumerable: true,
|
|
@@ -3198,7 +3227,7 @@ Object.defineProperty(exports, "validateCollectionConfig", {
|
|
|
3198
3227
|
});
|
|
3199
3228
|
Object.defineProperty(exports, "MigrationService", {
|
|
3200
3229
|
enumerable: true,
|
|
3201
|
-
get: function () { return
|
|
3230
|
+
get: function () { return chunkI4V3VZWF_cjs.MigrationService; }
|
|
3202
3231
|
});
|
|
3203
3232
|
Object.defineProperty(exports, "renderFilterBar", {
|
|
3204
3233
|
enumerable: true,
|
|
@@ -3234,67 +3263,67 @@ Object.defineProperty(exports, "renderTable", {
|
|
|
3234
3263
|
});
|
|
3235
3264
|
Object.defineProperty(exports, "HookSystemImpl", {
|
|
3236
3265
|
enumerable: true,
|
|
3237
|
-
get: function () { return
|
|
3266
|
+
get: function () { return chunkLWG2MWDA_cjs.HookSystemImpl; }
|
|
3238
3267
|
});
|
|
3239
3268
|
Object.defineProperty(exports, "HookUtils", {
|
|
3240
3269
|
enumerable: true,
|
|
3241
|
-
get: function () { return
|
|
3270
|
+
get: function () { return chunkLWG2MWDA_cjs.HookUtils; }
|
|
3242
3271
|
});
|
|
3243
3272
|
Object.defineProperty(exports, "PluginManagerClass", {
|
|
3244
3273
|
enumerable: true,
|
|
3245
|
-
get: function () { return
|
|
3274
|
+
get: function () { return chunkLWG2MWDA_cjs.PluginManager; }
|
|
3246
3275
|
});
|
|
3247
3276
|
Object.defineProperty(exports, "PluginRegistryImpl", {
|
|
3248
3277
|
enumerable: true,
|
|
3249
|
-
get: function () { return
|
|
3278
|
+
get: function () { return chunkLWG2MWDA_cjs.PluginRegistryImpl; }
|
|
3250
3279
|
});
|
|
3251
3280
|
Object.defineProperty(exports, "PluginValidatorClass", {
|
|
3252
3281
|
enumerable: true,
|
|
3253
|
-
get: function () { return
|
|
3282
|
+
get: function () { return chunkLWG2MWDA_cjs.PluginValidator; }
|
|
3254
3283
|
});
|
|
3255
3284
|
Object.defineProperty(exports, "ScopedHookSystemClass", {
|
|
3256
3285
|
enumerable: true,
|
|
3257
|
-
get: function () { return
|
|
3286
|
+
get: function () { return chunkLWG2MWDA_cjs.ScopedHookSystem; }
|
|
3258
3287
|
});
|
|
3259
3288
|
Object.defineProperty(exports, "QueryFilterBuilder", {
|
|
3260
3289
|
enumerable: true,
|
|
3261
|
-
get: function () { return
|
|
3290
|
+
get: function () { return chunkZWV3EBZ7_cjs.QueryFilterBuilder; }
|
|
3262
3291
|
});
|
|
3263
3292
|
Object.defineProperty(exports, "SONICJS_VERSION", {
|
|
3264
3293
|
enumerable: true,
|
|
3265
|
-
get: function () { return
|
|
3294
|
+
get: function () { return chunkZWV3EBZ7_cjs.SONICJS_VERSION; }
|
|
3266
3295
|
});
|
|
3267
3296
|
Object.defineProperty(exports, "TemplateRenderer", {
|
|
3268
3297
|
enumerable: true,
|
|
3269
|
-
get: function () { return
|
|
3298
|
+
get: function () { return chunkZWV3EBZ7_cjs.TemplateRenderer; }
|
|
3270
3299
|
});
|
|
3271
3300
|
Object.defineProperty(exports, "buildQuery", {
|
|
3272
3301
|
enumerable: true,
|
|
3273
|
-
get: function () { return
|
|
3302
|
+
get: function () { return chunkZWV3EBZ7_cjs.buildQuery; }
|
|
3274
3303
|
});
|
|
3275
3304
|
Object.defineProperty(exports, "escapeHtml", {
|
|
3276
3305
|
enumerable: true,
|
|
3277
|
-
get: function () { return
|
|
3306
|
+
get: function () { return chunkZWV3EBZ7_cjs.escapeHtml; }
|
|
3278
3307
|
});
|
|
3279
3308
|
Object.defineProperty(exports, "getCoreVersion", {
|
|
3280
3309
|
enumerable: true,
|
|
3281
|
-
get: function () { return
|
|
3310
|
+
get: function () { return chunkZWV3EBZ7_cjs.getCoreVersion; }
|
|
3282
3311
|
});
|
|
3283
3312
|
Object.defineProperty(exports, "renderTemplate", {
|
|
3284
3313
|
enumerable: true,
|
|
3285
|
-
get: function () { return
|
|
3314
|
+
get: function () { return chunkZWV3EBZ7_cjs.renderTemplate; }
|
|
3286
3315
|
});
|
|
3287
3316
|
Object.defineProperty(exports, "sanitizeInput", {
|
|
3288
3317
|
enumerable: true,
|
|
3289
|
-
get: function () { return
|
|
3318
|
+
get: function () { return chunkZWV3EBZ7_cjs.sanitizeInput; }
|
|
3290
3319
|
});
|
|
3291
3320
|
Object.defineProperty(exports, "sanitizeObject", {
|
|
3292
3321
|
enumerable: true,
|
|
3293
|
-
get: function () { return
|
|
3322
|
+
get: function () { return chunkZWV3EBZ7_cjs.sanitizeObject; }
|
|
3294
3323
|
});
|
|
3295
3324
|
Object.defineProperty(exports, "templateRenderer", {
|
|
3296
3325
|
enumerable: true,
|
|
3297
|
-
get: function () { return
|
|
3326
|
+
get: function () { return chunkZWV3EBZ7_cjs.templateRenderer; }
|
|
3298
3327
|
});
|
|
3299
3328
|
Object.defineProperty(exports, "metricsTracker", {
|
|
3300
3329
|
enumerable: true,
|