@sonicjs-cms/core 2.0.8 → 2.0.9
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/README.md +1 -1
- package/dist/{chunk-GN7Q6V5C.cjs → chunk-4I25AGUR.cjs} +349 -267
- package/dist/chunk-4I25AGUR.cjs.map +1 -0
- package/dist/chunk-6FR25MPC.js.map +1 -1
- package/dist/{chunk-CUEIM4FE.js → chunk-ABYMIXRN.js} +193 -111
- package/dist/chunk-ABYMIXRN.js.map +1 -0
- package/dist/{chunk-4MBTSUI6.js → chunk-COBUPOMD.js} +22 -6
- package/dist/chunk-COBUPOMD.js.map +1 -0
- package/dist/chunk-DOR2IU73.cjs.map +1 -1
- package/dist/{chunk-3R7EQNGO.cjs → chunk-DYYAXDXI.cjs} +6 -6
- package/dist/chunk-DYYAXDXI.cjs.map +1 -0
- package/dist/{chunk-7XEESVSX.cjs → chunk-EYMHWJTW.cjs} +2 -2
- package/dist/chunk-EYMHWJTW.cjs.map +1 -0
- package/dist/{chunk-HJZOA2O5.cjs → chunk-F5ESJXI2.cjs} +25 -3
- package/dist/chunk-F5ESJXI2.cjs.map +1 -0
- package/dist/chunk-FICTAGD4.js.map +1 -1
- package/dist/{chunk-EAELJXRV.js → chunk-HKEK7UNV.js} +25 -3
- package/dist/chunk-HKEK7UNV.js.map +1 -0
- package/dist/{chunk-KHNSPJ6X.cjs → chunk-MABBKINE.cjs} +5 -5
- package/dist/{chunk-KHNSPJ6X.cjs.map → chunk-MABBKINE.cjs.map} +1 -1
- package/dist/{chunk-YGVWY6KO.cjs → chunk-NBDPIRQS.cjs} +22 -5
- package/dist/chunk-NBDPIRQS.cjs.map +1 -0
- package/dist/{chunk-O7LMFJMZ.js → chunk-OKPDQO2Y.js} +3 -3
- package/dist/chunk-OKPDQO2Y.js.map +1 -0
- package/dist/{chunk-LS5CMDNL.js → chunk-OPGDMS7L.js} +3 -3
- package/dist/{chunk-LS5CMDNL.js.map → chunk-OPGDMS7L.js.map} +1 -1
- package/dist/chunk-RCQ2HIQD.cjs.map +1 -1
- package/dist/{chunk-CHMO2DOC.cjs → chunk-TMIRVVQ7.cjs} +3 -3
- package/dist/chunk-TMIRVVQ7.cjs.map +1 -0
- package/dist/{chunk-YHLLVUJC.js → chunk-VEC5MLT3.js} +2 -2
- package/dist/chunk-VEC5MLT3.js.map +1 -0
- package/dist/{chunk-Z2CZC6TC.js → chunk-WRRLB6KG.js} +3 -3
- package/dist/chunk-WRRLB6KG.js.map +1 -0
- package/dist/index.cjs +108 -104
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +11 -11
- package/dist/index.js.map +1 -1
- package/dist/middleware.cjs +23 -23
- package/dist/middleware.js +2 -2
- package/dist/plugins.cjs +7 -7
- package/dist/plugins.js +1 -1
- package/dist/routes.cjs +25 -25
- package/dist/routes.js +5 -5
- package/dist/services.cjs +18 -14
- package/dist/services.js +1 -1
- package/dist/templates.cjs +18 -18
- package/dist/templates.js +2 -2
- package/dist/utils.cjs +11 -11
- package/dist/utils.js +1 -1
- package/migrations/019_remove_blog_posts_collection.sql +15 -0
- package/package.json +1 -1
- package/dist/chunk-3R7EQNGO.cjs.map +0 -1
- package/dist/chunk-4MBTSUI6.js.map +0 -1
- package/dist/chunk-7XEESVSX.cjs.map +0 -1
- package/dist/chunk-CHMO2DOC.cjs.map +0 -1
- package/dist/chunk-CUEIM4FE.js.map +0 -1
- package/dist/chunk-EAELJXRV.js.map +0 -1
- package/dist/chunk-GN7Q6V5C.cjs.map +0 -1
- package/dist/chunk-HJZOA2O5.cjs.map +0 -1
- package/dist/chunk-O7LMFJMZ.js.map +0 -1
- package/dist/chunk-YGVWY6KO.cjs.map +0 -1
- package/dist/chunk-YHLLVUJC.js.map +0 -1
- package/dist/chunk-Z2CZC6TC.js.map +0 -1
|
@@ -413,7 +413,7 @@ function buildQuery(table, filter) {
|
|
|
413
413
|
// package.json
|
|
414
414
|
var package_default = {
|
|
415
415
|
name: "@sonicjs-cms/core",
|
|
416
|
-
version: "2.0.
|
|
416
|
+
version: "2.0.9",
|
|
417
417
|
description: "Core framework for SonicJS headless CMS - Edge-first, TypeScript-native CMS built for Cloudflare Workers",
|
|
418
418
|
type: "module",
|
|
419
419
|
main: "./dist/index.cjs",
|
|
@@ -536,5 +536,5 @@ function getCoreVersion() {
|
|
|
536
536
|
}
|
|
537
537
|
|
|
538
538
|
export { QueryFilterBuilder, SONICJS_VERSION, TemplateRenderer, buildQuery, escapeHtml, getCoreVersion, package_default, renderTemplate, sanitizeInput, sanitizeObject, templateRenderer };
|
|
539
|
-
//# sourceMappingURL=chunk-
|
|
540
|
-
//# sourceMappingURL=chunk-
|
|
539
|
+
//# sourceMappingURL=chunk-WRRLB6KG.js.map
|
|
540
|
+
//# sourceMappingURL=chunk-WRRLB6KG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/sanitize.ts","../src/utils/template-renderer.ts","../src/utils/query-filter.ts","../package.json","../src/utils/version.ts"],"names":[],"mappings":"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","file":"chunk-WRRLB6KG.js","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","// 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.0.9\",\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 \"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 },\n \"files\": [\n \"dist\",\n \"migrations\",\n \"README.md\",\n \"LICENSE\"\n ],\n \"scripts\": {\n \"build\": \"tsup\",\n \"dev\": \"tsup --watch\",\n \"type-check\": \"tsc --noEmit\",\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 \"hono\": \"^4.0.0\",\n \"drizzle-orm\": \"^0.44.0\",\n \"zod\": \"^3.0.0 || ^4.0.0\"\n },\n \"dependencies\": {\n \"drizzle-zod\": \"^0.8.3\",\n \"marked\": \"^16.4.1\",\n \"highlight.js\": \"^11.11.1\",\n \"semver\": \"^7.7.3\"\n },\n \"devDependencies\": {\n \"@cloudflare/workers-types\": \"^4.20251014.0\",\n \"@types/node\": \"^24.9.2\",\n \"drizzle-orm\": \"^0.44.7\",\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"]}
|
package/dist/index.cjs
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk4I25AGUR_cjs = require('./chunk-4I25AGUR.cjs');
|
|
4
4
|
var chunkDOR2IU73_cjs = require('./chunk-DOR2IU73.cjs');
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
5
|
+
var chunkDYYAXDXI_cjs = require('./chunk-DYYAXDXI.cjs');
|
|
6
|
+
var chunkNBDPIRQS_cjs = require('./chunk-NBDPIRQS.cjs');
|
|
7
|
+
var chunkMABBKINE_cjs = require('./chunk-MABBKINE.cjs');
|
|
8
|
+
var chunkEYMHWJTW_cjs = require('./chunk-EYMHWJTW.cjs');
|
|
9
|
+
var chunkF5ESJXI2_cjs = require('./chunk-F5ESJXI2.cjs');
|
|
10
|
+
var chunkTMIRVVQ7_cjs = require('./chunk-TMIRVVQ7.cjs');
|
|
11
11
|
var chunkRCQ2HIQD_cjs = require('./chunk-RCQ2HIQD.cjs');
|
|
12
12
|
var chunkKYGRJCZM_cjs = require('./chunk-KYGRJCZM.cjs');
|
|
13
13
|
require('./chunk-IGJUBJBW.cjs');
|
|
@@ -229,7 +229,7 @@ var DatabaseToolsService = class {
|
|
|
229
229
|
};
|
|
230
230
|
|
|
231
231
|
// src/templates/pages/admin-database-table.template.ts
|
|
232
|
-
|
|
232
|
+
chunkEYMHWJTW_cjs.init_admin_layout_catalyst_template();
|
|
233
233
|
function renderDatabaseTablePage(data) {
|
|
234
234
|
const totalPages = Math.ceil(data.totalRows / data.pageSize);
|
|
235
235
|
const startRow = (data.currentPage - 1) * data.pageSize + 1;
|
|
@@ -478,7 +478,7 @@ function renderDatabaseTablePage(data) {
|
|
|
478
478
|
user: data.user,
|
|
479
479
|
content: pageContent
|
|
480
480
|
};
|
|
481
|
-
return
|
|
481
|
+
return chunkEYMHWJTW_cjs.renderAdminLayoutCatalyst(layoutData);
|
|
482
482
|
}
|
|
483
483
|
function generatePageNumbers(currentPage, totalPages) {
|
|
484
484
|
const pages = [];
|
|
@@ -553,7 +553,7 @@ function formatCellValue(value) {
|
|
|
553
553
|
// src/plugins/core-plugins/database-tools-plugin/admin-routes.ts
|
|
554
554
|
function createDatabaseToolsAdminRoutes() {
|
|
555
555
|
const router2 = new hono.Hono();
|
|
556
|
-
router2.use("*",
|
|
556
|
+
router2.use("*", chunkDYYAXDXI_cjs.requireAuth());
|
|
557
557
|
router2.get("/api/stats", async (c) => {
|
|
558
558
|
try {
|
|
559
559
|
const user = c.get("user");
|
|
@@ -737,14 +737,14 @@ function createDatabaseToolsAdminRoutes() {
|
|
|
737
737
|
// src/app.ts
|
|
738
738
|
function createSonicJSApp(config = {}) {
|
|
739
739
|
const app = new hono.Hono();
|
|
740
|
-
const appVersion = config.version ||
|
|
740
|
+
const appVersion = config.version || chunkTMIRVVQ7_cjs.getCoreVersion();
|
|
741
741
|
const appName = config.name || "SonicJS AI";
|
|
742
742
|
app.use("*", async (c, next) => {
|
|
743
743
|
c.set("appVersion", appVersion);
|
|
744
744
|
await next();
|
|
745
745
|
});
|
|
746
|
-
app.use("*",
|
|
747
|
-
app.use("*",
|
|
746
|
+
app.use("*", chunkDYYAXDXI_cjs.metricsMiddleware());
|
|
747
|
+
app.use("*", chunkDYYAXDXI_cjs.bootstrapMiddleware());
|
|
748
748
|
if (config.middleware?.beforeAuth) {
|
|
749
749
|
for (const middleware of config.middleware.beforeAuth) {
|
|
750
750
|
app.use("*", middleware);
|
|
@@ -761,20 +761,20 @@ function createSonicJSApp(config = {}) {
|
|
|
761
761
|
app.use("*", middleware);
|
|
762
762
|
}
|
|
763
763
|
}
|
|
764
|
-
app.route("/api",
|
|
765
|
-
app.route("/api/media",
|
|
766
|
-
app.route("/api/system",
|
|
767
|
-
app.route("/admin/api",
|
|
768
|
-
app.route("/admin/dashboard",
|
|
769
|
-
app.route("/admin/collections",
|
|
770
|
-
app.route("/admin/settings",
|
|
764
|
+
app.route("/api", chunk4I25AGUR_cjs.api_default);
|
|
765
|
+
app.route("/api/media", chunk4I25AGUR_cjs.api_media_default);
|
|
766
|
+
app.route("/api/system", chunk4I25AGUR_cjs.api_system_default);
|
|
767
|
+
app.route("/admin/api", chunk4I25AGUR_cjs.admin_api_default);
|
|
768
|
+
app.route("/admin/dashboard", chunk4I25AGUR_cjs.router);
|
|
769
|
+
app.route("/admin/collections", chunk4I25AGUR_cjs.adminCollectionsRoutes);
|
|
770
|
+
app.route("/admin/settings", chunk4I25AGUR_cjs.adminSettingsRoutes);
|
|
771
771
|
app.route("/admin/database-tools", createDatabaseToolsAdminRoutes());
|
|
772
|
-
app.route("/admin/content",
|
|
773
|
-
app.route("/admin/media",
|
|
774
|
-
app.route("/admin/plugins",
|
|
775
|
-
app.route("/admin/logs",
|
|
776
|
-
app.route("/admin",
|
|
777
|
-
app.route("/auth",
|
|
772
|
+
app.route("/admin/content", chunk4I25AGUR_cjs.admin_content_default);
|
|
773
|
+
app.route("/admin/media", chunk4I25AGUR_cjs.adminMediaRoutes);
|
|
774
|
+
app.route("/admin/plugins", chunk4I25AGUR_cjs.adminPluginRoutes);
|
|
775
|
+
app.route("/admin/logs", chunk4I25AGUR_cjs.adminLogsRoutes);
|
|
776
|
+
app.route("/admin", chunk4I25AGUR_cjs.userRoutes);
|
|
777
|
+
app.route("/auth", chunk4I25AGUR_cjs.auth_default);
|
|
778
778
|
app.get("/files/*", async (c) => {
|
|
779
779
|
try {
|
|
780
780
|
const url = new URL(c.req.url);
|
|
@@ -838,87 +838,87 @@ function createDb(d1$1) {
|
|
|
838
838
|
}
|
|
839
839
|
|
|
840
840
|
// src/index.ts
|
|
841
|
-
var VERSION =
|
|
841
|
+
var VERSION = chunkTMIRVVQ7_cjs.package_default.version;
|
|
842
842
|
|
|
843
843
|
Object.defineProperty(exports, "ROUTES_INFO", {
|
|
844
844
|
enumerable: true,
|
|
845
|
-
get: function () { return
|
|
845
|
+
get: function () { return chunk4I25AGUR_cjs.ROUTES_INFO; }
|
|
846
846
|
});
|
|
847
847
|
Object.defineProperty(exports, "adminApiRoutes", {
|
|
848
848
|
enumerable: true,
|
|
849
|
-
get: function () { return
|
|
849
|
+
get: function () { return chunk4I25AGUR_cjs.admin_api_default; }
|
|
850
850
|
});
|
|
851
851
|
Object.defineProperty(exports, "adminCheckboxRoutes", {
|
|
852
852
|
enumerable: true,
|
|
853
|
-
get: function () { return
|
|
853
|
+
get: function () { return chunk4I25AGUR_cjs.adminCheckboxRoutes; }
|
|
854
854
|
});
|
|
855
855
|
Object.defineProperty(exports, "adminCodeExamplesRoutes", {
|
|
856
856
|
enumerable: true,
|
|
857
|
-
get: function () { return
|
|
857
|
+
get: function () { return chunk4I25AGUR_cjs.admin_code_examples_default; }
|
|
858
858
|
});
|
|
859
859
|
Object.defineProperty(exports, "adminCollectionsRoutes", {
|
|
860
860
|
enumerable: true,
|
|
861
|
-
get: function () { return
|
|
861
|
+
get: function () { return chunk4I25AGUR_cjs.adminCollectionsRoutes; }
|
|
862
862
|
});
|
|
863
863
|
Object.defineProperty(exports, "adminContentRoutes", {
|
|
864
864
|
enumerable: true,
|
|
865
|
-
get: function () { return
|
|
865
|
+
get: function () { return chunk4I25AGUR_cjs.admin_content_default; }
|
|
866
866
|
});
|
|
867
867
|
Object.defineProperty(exports, "adminDashboardRoutes", {
|
|
868
868
|
enumerable: true,
|
|
869
|
-
get: function () { return
|
|
869
|
+
get: function () { return chunk4I25AGUR_cjs.router; }
|
|
870
870
|
});
|
|
871
871
|
Object.defineProperty(exports, "adminDesignRoutes", {
|
|
872
872
|
enumerable: true,
|
|
873
|
-
get: function () { return
|
|
873
|
+
get: function () { return chunk4I25AGUR_cjs.adminDesignRoutes; }
|
|
874
874
|
});
|
|
875
875
|
Object.defineProperty(exports, "adminFAQRoutes", {
|
|
876
876
|
enumerable: true,
|
|
877
|
-
get: function () { return
|
|
877
|
+
get: function () { return chunk4I25AGUR_cjs.admin_faq_default; }
|
|
878
878
|
});
|
|
879
879
|
Object.defineProperty(exports, "adminLogsRoutes", {
|
|
880
880
|
enumerable: true,
|
|
881
|
-
get: function () { return
|
|
881
|
+
get: function () { return chunk4I25AGUR_cjs.adminLogsRoutes; }
|
|
882
882
|
});
|
|
883
883
|
Object.defineProperty(exports, "adminMediaRoutes", {
|
|
884
884
|
enumerable: true,
|
|
885
|
-
get: function () { return
|
|
885
|
+
get: function () { return chunk4I25AGUR_cjs.adminMediaRoutes; }
|
|
886
886
|
});
|
|
887
887
|
Object.defineProperty(exports, "adminPluginRoutes", {
|
|
888
888
|
enumerable: true,
|
|
889
|
-
get: function () { return
|
|
889
|
+
get: function () { return chunk4I25AGUR_cjs.adminPluginRoutes; }
|
|
890
890
|
});
|
|
891
891
|
Object.defineProperty(exports, "adminSettingsRoutes", {
|
|
892
892
|
enumerable: true,
|
|
893
|
-
get: function () { return
|
|
893
|
+
get: function () { return chunk4I25AGUR_cjs.adminSettingsRoutes; }
|
|
894
894
|
});
|
|
895
895
|
Object.defineProperty(exports, "adminTestimonialsRoutes", {
|
|
896
896
|
enumerable: true,
|
|
897
|
-
get: function () { return
|
|
897
|
+
get: function () { return chunk4I25AGUR_cjs.admin_testimonials_default; }
|
|
898
898
|
});
|
|
899
899
|
Object.defineProperty(exports, "adminUsersRoutes", {
|
|
900
900
|
enumerable: true,
|
|
901
|
-
get: function () { return
|
|
901
|
+
get: function () { return chunk4I25AGUR_cjs.userRoutes; }
|
|
902
902
|
});
|
|
903
903
|
Object.defineProperty(exports, "apiContentCrudRoutes", {
|
|
904
904
|
enumerable: true,
|
|
905
|
-
get: function () { return
|
|
905
|
+
get: function () { return chunk4I25AGUR_cjs.api_content_crud_default; }
|
|
906
906
|
});
|
|
907
907
|
Object.defineProperty(exports, "apiMediaRoutes", {
|
|
908
908
|
enumerable: true,
|
|
909
|
-
get: function () { return
|
|
909
|
+
get: function () { return chunk4I25AGUR_cjs.api_media_default; }
|
|
910
910
|
});
|
|
911
911
|
Object.defineProperty(exports, "apiRoutes", {
|
|
912
912
|
enumerable: true,
|
|
913
|
-
get: function () { return
|
|
913
|
+
get: function () { return chunk4I25AGUR_cjs.api_default; }
|
|
914
914
|
});
|
|
915
915
|
Object.defineProperty(exports, "apiSystemRoutes", {
|
|
916
916
|
enumerable: true,
|
|
917
|
-
get: function () { return
|
|
917
|
+
get: function () { return chunk4I25AGUR_cjs.api_system_default; }
|
|
918
918
|
});
|
|
919
919
|
Object.defineProperty(exports, "authRoutes", {
|
|
920
920
|
enumerable: true,
|
|
921
|
-
get: function () { return
|
|
921
|
+
get: function () { return chunk4I25AGUR_cjs.auth_default; }
|
|
922
922
|
});
|
|
923
923
|
Object.defineProperty(exports, "Logger", {
|
|
924
924
|
enumerable: true,
|
|
@@ -1086,231 +1086,235 @@ Object.defineProperty(exports, "workflowHistory", {
|
|
|
1086
1086
|
});
|
|
1087
1087
|
Object.defineProperty(exports, "AuthManager", {
|
|
1088
1088
|
enumerable: true,
|
|
1089
|
-
get: function () { return
|
|
1089
|
+
get: function () { return chunkDYYAXDXI_cjs.AuthManager; }
|
|
1090
1090
|
});
|
|
1091
1091
|
Object.defineProperty(exports, "PermissionManager", {
|
|
1092
1092
|
enumerable: true,
|
|
1093
|
-
get: function () { return
|
|
1093
|
+
get: function () { return chunkDYYAXDXI_cjs.PermissionManager; }
|
|
1094
1094
|
});
|
|
1095
1095
|
Object.defineProperty(exports, "bootstrapMiddleware", {
|
|
1096
1096
|
enumerable: true,
|
|
1097
|
-
get: function () { return
|
|
1097
|
+
get: function () { return chunkDYYAXDXI_cjs.bootstrapMiddleware; }
|
|
1098
1098
|
});
|
|
1099
1099
|
Object.defineProperty(exports, "cacheHeaders", {
|
|
1100
1100
|
enumerable: true,
|
|
1101
|
-
get: function () { return
|
|
1101
|
+
get: function () { return chunkDYYAXDXI_cjs.cacheHeaders; }
|
|
1102
1102
|
});
|
|
1103
1103
|
Object.defineProperty(exports, "compressionMiddleware", {
|
|
1104
1104
|
enumerable: true,
|
|
1105
|
-
get: function () { return
|
|
1105
|
+
get: function () { return chunkDYYAXDXI_cjs.compressionMiddleware; }
|
|
1106
1106
|
});
|
|
1107
1107
|
Object.defineProperty(exports, "detailedLoggingMiddleware", {
|
|
1108
1108
|
enumerable: true,
|
|
1109
|
-
get: function () { return
|
|
1109
|
+
get: function () { return chunkDYYAXDXI_cjs.detailedLoggingMiddleware; }
|
|
1110
1110
|
});
|
|
1111
1111
|
Object.defineProperty(exports, "getActivePlugins", {
|
|
1112
1112
|
enumerable: true,
|
|
1113
|
-
get: function () { return
|
|
1113
|
+
get: function () { return chunkDYYAXDXI_cjs.getActivePlugins; }
|
|
1114
1114
|
});
|
|
1115
1115
|
Object.defineProperty(exports, "isPluginActive", {
|
|
1116
1116
|
enumerable: true,
|
|
1117
|
-
get: function () { return
|
|
1117
|
+
get: function () { return chunkDYYAXDXI_cjs.isPluginActive; }
|
|
1118
1118
|
});
|
|
1119
1119
|
Object.defineProperty(exports, "logActivity", {
|
|
1120
1120
|
enumerable: true,
|
|
1121
|
-
get: function () { return
|
|
1121
|
+
get: function () { return chunkDYYAXDXI_cjs.logActivity; }
|
|
1122
1122
|
});
|
|
1123
1123
|
Object.defineProperty(exports, "loggingMiddleware", {
|
|
1124
1124
|
enumerable: true,
|
|
1125
|
-
get: function () { return
|
|
1125
|
+
get: function () { return chunkDYYAXDXI_cjs.loggingMiddleware; }
|
|
1126
1126
|
});
|
|
1127
1127
|
Object.defineProperty(exports, "optionalAuth", {
|
|
1128
1128
|
enumerable: true,
|
|
1129
|
-
get: function () { return
|
|
1129
|
+
get: function () { return chunkDYYAXDXI_cjs.optionalAuth; }
|
|
1130
1130
|
});
|
|
1131
1131
|
Object.defineProperty(exports, "performanceLoggingMiddleware", {
|
|
1132
1132
|
enumerable: true,
|
|
1133
|
-
get: function () { return
|
|
1133
|
+
get: function () { return chunkDYYAXDXI_cjs.performanceLoggingMiddleware; }
|
|
1134
1134
|
});
|
|
1135
1135
|
Object.defineProperty(exports, "requireActivePlugin", {
|
|
1136
1136
|
enumerable: true,
|
|
1137
|
-
get: function () { return
|
|
1137
|
+
get: function () { return chunkDYYAXDXI_cjs.requireActivePlugin; }
|
|
1138
1138
|
});
|
|
1139
1139
|
Object.defineProperty(exports, "requireActivePlugins", {
|
|
1140
1140
|
enumerable: true,
|
|
1141
|
-
get: function () { return
|
|
1141
|
+
get: function () { return chunkDYYAXDXI_cjs.requireActivePlugins; }
|
|
1142
1142
|
});
|
|
1143
1143
|
Object.defineProperty(exports, "requireAnyPermission", {
|
|
1144
1144
|
enumerable: true,
|
|
1145
|
-
get: function () { return
|
|
1145
|
+
get: function () { return chunkDYYAXDXI_cjs.requireAnyPermission; }
|
|
1146
1146
|
});
|
|
1147
1147
|
Object.defineProperty(exports, "requireAuth", {
|
|
1148
1148
|
enumerable: true,
|
|
1149
|
-
get: function () { return
|
|
1149
|
+
get: function () { return chunkDYYAXDXI_cjs.requireAuth; }
|
|
1150
1150
|
});
|
|
1151
1151
|
Object.defineProperty(exports, "requirePermission", {
|
|
1152
1152
|
enumerable: true,
|
|
1153
|
-
get: function () { return
|
|
1153
|
+
get: function () { return chunkDYYAXDXI_cjs.requirePermission; }
|
|
1154
1154
|
});
|
|
1155
1155
|
Object.defineProperty(exports, "requireRole", {
|
|
1156
1156
|
enumerable: true,
|
|
1157
|
-
get: function () { return
|
|
1157
|
+
get: function () { return chunkDYYAXDXI_cjs.requireRole; }
|
|
1158
1158
|
});
|
|
1159
1159
|
Object.defineProperty(exports, "securityHeaders", {
|
|
1160
1160
|
enumerable: true,
|
|
1161
|
-
get: function () { return
|
|
1161
|
+
get: function () { return chunkDYYAXDXI_cjs.securityHeaders; }
|
|
1162
1162
|
});
|
|
1163
1163
|
Object.defineProperty(exports, "securityLoggingMiddleware", {
|
|
1164
1164
|
enumerable: true,
|
|
1165
|
-
get: function () { return
|
|
1165
|
+
get: function () { return chunkDYYAXDXI_cjs.securityLoggingMiddleware; }
|
|
1166
1166
|
});
|
|
1167
1167
|
Object.defineProperty(exports, "MigrationService", {
|
|
1168
1168
|
enumerable: true,
|
|
1169
|
-
get: function () { return
|
|
1169
|
+
get: function () { return chunkNBDPIRQS_cjs.MigrationService; }
|
|
1170
1170
|
});
|
|
1171
1171
|
Object.defineProperty(exports, "PluginBootstrapService", {
|
|
1172
1172
|
enumerable: true,
|
|
1173
|
-
get: function () { return
|
|
1173
|
+
get: function () { return chunkNBDPIRQS_cjs.PluginBootstrapService; }
|
|
1174
1174
|
});
|
|
1175
1175
|
Object.defineProperty(exports, "PluginServiceClass", {
|
|
1176
1176
|
enumerable: true,
|
|
1177
|
-
get: function () { return
|
|
1177
|
+
get: function () { return chunkNBDPIRQS_cjs.PluginService; }
|
|
1178
1178
|
});
|
|
1179
1179
|
Object.defineProperty(exports, "cleanupRemovedCollections", {
|
|
1180
1180
|
enumerable: true,
|
|
1181
|
-
get: function () { return
|
|
1181
|
+
get: function () { return chunkNBDPIRQS_cjs.cleanupRemovedCollections; }
|
|
1182
1182
|
});
|
|
1183
1183
|
Object.defineProperty(exports, "fullCollectionSync", {
|
|
1184
1184
|
enumerable: true,
|
|
1185
|
-
get: function () { return
|
|
1185
|
+
get: function () { return chunkNBDPIRQS_cjs.fullCollectionSync; }
|
|
1186
1186
|
});
|
|
1187
1187
|
Object.defineProperty(exports, "getAvailableCollectionNames", {
|
|
1188
1188
|
enumerable: true,
|
|
1189
|
-
get: function () { return
|
|
1189
|
+
get: function () { return chunkNBDPIRQS_cjs.getAvailableCollectionNames; }
|
|
1190
1190
|
});
|
|
1191
1191
|
Object.defineProperty(exports, "getManagedCollections", {
|
|
1192
1192
|
enumerable: true,
|
|
1193
|
-
get: function () { return
|
|
1193
|
+
get: function () { return chunkNBDPIRQS_cjs.getManagedCollections; }
|
|
1194
1194
|
});
|
|
1195
1195
|
Object.defineProperty(exports, "isCollectionManaged", {
|
|
1196
1196
|
enumerable: true,
|
|
1197
|
-
get: function () { return
|
|
1197
|
+
get: function () { return chunkNBDPIRQS_cjs.isCollectionManaged; }
|
|
1198
1198
|
});
|
|
1199
1199
|
Object.defineProperty(exports, "loadCollectionConfig", {
|
|
1200
1200
|
enumerable: true,
|
|
1201
|
-
get: function () { return
|
|
1201
|
+
get: function () { return chunkNBDPIRQS_cjs.loadCollectionConfig; }
|
|
1202
1202
|
});
|
|
1203
1203
|
Object.defineProperty(exports, "loadCollectionConfigs", {
|
|
1204
1204
|
enumerable: true,
|
|
1205
|
-
get: function () { return
|
|
1205
|
+
get: function () { return chunkNBDPIRQS_cjs.loadCollectionConfigs; }
|
|
1206
|
+
});
|
|
1207
|
+
Object.defineProperty(exports, "registerCollections", {
|
|
1208
|
+
enumerable: true,
|
|
1209
|
+
get: function () { return chunkNBDPIRQS_cjs.registerCollections; }
|
|
1206
1210
|
});
|
|
1207
1211
|
Object.defineProperty(exports, "syncCollection", {
|
|
1208
1212
|
enumerable: true,
|
|
1209
|
-
get: function () { return
|
|
1213
|
+
get: function () { return chunkNBDPIRQS_cjs.syncCollection; }
|
|
1210
1214
|
});
|
|
1211
1215
|
Object.defineProperty(exports, "syncCollections", {
|
|
1212
1216
|
enumerable: true,
|
|
1213
|
-
get: function () { return
|
|
1217
|
+
get: function () { return chunkNBDPIRQS_cjs.syncCollections; }
|
|
1214
1218
|
});
|
|
1215
1219
|
Object.defineProperty(exports, "validateCollectionConfig", {
|
|
1216
1220
|
enumerable: true,
|
|
1217
|
-
get: function () { return
|
|
1221
|
+
get: function () { return chunkNBDPIRQS_cjs.validateCollectionConfig; }
|
|
1218
1222
|
});
|
|
1219
1223
|
Object.defineProperty(exports, "renderFilterBar", {
|
|
1220
1224
|
enumerable: true,
|
|
1221
|
-
get: function () { return
|
|
1225
|
+
get: function () { return chunkMABBKINE_cjs.renderFilterBar; }
|
|
1222
1226
|
});
|
|
1223
1227
|
Object.defineProperty(exports, "getConfirmationDialogScript", {
|
|
1224
1228
|
enumerable: true,
|
|
1225
|
-
get: function () { return
|
|
1229
|
+
get: function () { return chunkEYMHWJTW_cjs.getConfirmationDialogScript; }
|
|
1226
1230
|
});
|
|
1227
1231
|
Object.defineProperty(exports, "renderAlert", {
|
|
1228
1232
|
enumerable: true,
|
|
1229
|
-
get: function () { return
|
|
1233
|
+
get: function () { return chunkEYMHWJTW_cjs.renderAlert; }
|
|
1230
1234
|
});
|
|
1231
1235
|
Object.defineProperty(exports, "renderConfirmationDialog", {
|
|
1232
1236
|
enumerable: true,
|
|
1233
|
-
get: function () { return
|
|
1237
|
+
get: function () { return chunkEYMHWJTW_cjs.renderConfirmationDialog; }
|
|
1234
1238
|
});
|
|
1235
1239
|
Object.defineProperty(exports, "renderForm", {
|
|
1236
1240
|
enumerable: true,
|
|
1237
|
-
get: function () { return
|
|
1241
|
+
get: function () { return chunkEYMHWJTW_cjs.renderForm; }
|
|
1238
1242
|
});
|
|
1239
1243
|
Object.defineProperty(exports, "renderFormField", {
|
|
1240
1244
|
enumerable: true,
|
|
1241
|
-
get: function () { return
|
|
1245
|
+
get: function () { return chunkEYMHWJTW_cjs.renderFormField; }
|
|
1242
1246
|
});
|
|
1243
1247
|
Object.defineProperty(exports, "renderPagination", {
|
|
1244
1248
|
enumerable: true,
|
|
1245
|
-
get: function () { return
|
|
1249
|
+
get: function () { return chunkEYMHWJTW_cjs.renderPagination; }
|
|
1246
1250
|
});
|
|
1247
1251
|
Object.defineProperty(exports, "renderTable", {
|
|
1248
1252
|
enumerable: true,
|
|
1249
|
-
get: function () { return
|
|
1253
|
+
get: function () { return chunkEYMHWJTW_cjs.renderTable; }
|
|
1250
1254
|
});
|
|
1251
1255
|
Object.defineProperty(exports, "HookSystemImpl", {
|
|
1252
1256
|
enumerable: true,
|
|
1253
|
-
get: function () { return
|
|
1257
|
+
get: function () { return chunkF5ESJXI2_cjs.HookSystemImpl; }
|
|
1254
1258
|
});
|
|
1255
1259
|
Object.defineProperty(exports, "HookUtils", {
|
|
1256
1260
|
enumerable: true,
|
|
1257
|
-
get: function () { return
|
|
1261
|
+
get: function () { return chunkF5ESJXI2_cjs.HookUtils; }
|
|
1258
1262
|
});
|
|
1259
1263
|
Object.defineProperty(exports, "PluginManagerClass", {
|
|
1260
1264
|
enumerable: true,
|
|
1261
|
-
get: function () { return
|
|
1265
|
+
get: function () { return chunkF5ESJXI2_cjs.PluginManager; }
|
|
1262
1266
|
});
|
|
1263
1267
|
Object.defineProperty(exports, "PluginRegistryImpl", {
|
|
1264
1268
|
enumerable: true,
|
|
1265
|
-
get: function () { return
|
|
1269
|
+
get: function () { return chunkF5ESJXI2_cjs.PluginRegistryImpl; }
|
|
1266
1270
|
});
|
|
1267
1271
|
Object.defineProperty(exports, "PluginValidatorClass", {
|
|
1268
1272
|
enumerable: true,
|
|
1269
|
-
get: function () { return
|
|
1273
|
+
get: function () { return chunkF5ESJXI2_cjs.PluginValidator; }
|
|
1270
1274
|
});
|
|
1271
1275
|
Object.defineProperty(exports, "ScopedHookSystemClass", {
|
|
1272
1276
|
enumerable: true,
|
|
1273
|
-
get: function () { return
|
|
1277
|
+
get: function () { return chunkF5ESJXI2_cjs.ScopedHookSystem; }
|
|
1274
1278
|
});
|
|
1275
1279
|
Object.defineProperty(exports, "QueryFilterBuilder", {
|
|
1276
1280
|
enumerable: true,
|
|
1277
|
-
get: function () { return
|
|
1281
|
+
get: function () { return chunkTMIRVVQ7_cjs.QueryFilterBuilder; }
|
|
1278
1282
|
});
|
|
1279
1283
|
Object.defineProperty(exports, "SONICJS_VERSION", {
|
|
1280
1284
|
enumerable: true,
|
|
1281
|
-
get: function () { return
|
|
1285
|
+
get: function () { return chunkTMIRVVQ7_cjs.SONICJS_VERSION; }
|
|
1282
1286
|
});
|
|
1283
1287
|
Object.defineProperty(exports, "TemplateRenderer", {
|
|
1284
1288
|
enumerable: true,
|
|
1285
|
-
get: function () { return
|
|
1289
|
+
get: function () { return chunkTMIRVVQ7_cjs.TemplateRenderer; }
|
|
1286
1290
|
});
|
|
1287
1291
|
Object.defineProperty(exports, "buildQuery", {
|
|
1288
1292
|
enumerable: true,
|
|
1289
|
-
get: function () { return
|
|
1293
|
+
get: function () { return chunkTMIRVVQ7_cjs.buildQuery; }
|
|
1290
1294
|
});
|
|
1291
1295
|
Object.defineProperty(exports, "escapeHtml", {
|
|
1292
1296
|
enumerable: true,
|
|
1293
|
-
get: function () { return
|
|
1297
|
+
get: function () { return chunkTMIRVVQ7_cjs.escapeHtml; }
|
|
1294
1298
|
});
|
|
1295
1299
|
Object.defineProperty(exports, "getCoreVersion", {
|
|
1296
1300
|
enumerable: true,
|
|
1297
|
-
get: function () { return
|
|
1301
|
+
get: function () { return chunkTMIRVVQ7_cjs.getCoreVersion; }
|
|
1298
1302
|
});
|
|
1299
1303
|
Object.defineProperty(exports, "renderTemplate", {
|
|
1300
1304
|
enumerable: true,
|
|
1301
|
-
get: function () { return
|
|
1305
|
+
get: function () { return chunkTMIRVVQ7_cjs.renderTemplate; }
|
|
1302
1306
|
});
|
|
1303
1307
|
Object.defineProperty(exports, "sanitizeInput", {
|
|
1304
1308
|
enumerable: true,
|
|
1305
|
-
get: function () { return
|
|
1309
|
+
get: function () { return chunkTMIRVVQ7_cjs.sanitizeInput; }
|
|
1306
1310
|
});
|
|
1307
1311
|
Object.defineProperty(exports, "sanitizeObject", {
|
|
1308
1312
|
enumerable: true,
|
|
1309
|
-
get: function () { return
|
|
1313
|
+
get: function () { return chunkTMIRVVQ7_cjs.sanitizeObject; }
|
|
1310
1314
|
});
|
|
1311
1315
|
Object.defineProperty(exports, "templateRenderer", {
|
|
1312
1316
|
enumerable: true,
|
|
1313
|
-
get: function () { return
|
|
1317
|
+
get: function () { return chunkTMIRVVQ7_cjs.templateRenderer; }
|
|
1314
1318
|
});
|
|
1315
1319
|
Object.defineProperty(exports, "metricsTracker", {
|
|
1316
1320
|
enumerable: true,
|