@africode/core 5.0.1 → 5.0.2
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/COMPONENT_SCHEMA.json +103 -69
- package/components/base.d.ts +1 -1
- package/components/base.js +71 -21
- package/core/a2ui-schema-manager.js +9 -2
- package/core/a2ui.js +131 -43
- package/core/actions.js +27 -0
- package/core/bun-runtime.js +207 -724
- package/core/compliance.js +6 -5
- package/core/config.js +7 -5
- package/core/enhanced-hmr.js +16 -14
- package/core/file-router.js +42 -282
- package/core/hmr.js +8 -7
- package/core/html.d.ts +15 -101
- package/core/html.js +53 -129
- package/core/lipa-namba-journey.js +74 -12
- package/core/logging.js +14 -0
- package/core/middleware.js +82 -0
- package/core/nida-cig-middleware.js +13 -8
- package/core/plugins/index.js +345 -312
- package/core/request-identity.js +44 -0
- package/core/sdk.js +22 -0
- package/core/session-store.js +68 -0
- package/core/state.js +34 -0
- package/core/websocket.js +22 -20
- package/dist/africode.js +108 -112
- package/dist/africode.js.map +6 -6
- package/dist/build-info.json +3 -3
- package/dist/components.js +351 -351
- package/dist/components.js.map +6 -6
- package/package.json +3 -3
- package/scripts/generate-component-schema.js +1 -1
package/dist/africode.js.map
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["..\\core\\state.js", "..\\core\\store.js", "..\\core\\patterns.js", "..\\core\\html.js", "..\\components\\base.js", "..\\components\\button.js", "..\\components\\card.js", "..\\components\\navbar.js", "..\\node_modules\\zod\\v3\\helpers\\util.js", "..\\node_modules\\zod\\v3\\ZodError.js", "..\\node_modules\\zod\\v3\\locales\\en.js", "..\\node_modules\\zod\\v3\\errors.js", "..\\node_modules\\zod\\v3\\helpers\\parseUtil.js", "..\\node_modules\\zod\\v3\\helpers\\errorUtil.js", "..\\node_modules\\zod\\v3\\types.js", "..\\node_modules\\zod\\v3\\external.js", "..\\node_modules\\zod\\index.js", "..\\core\\config.js", "..\\core\\validation.js", "..\\components\\input.js", "..\\components\\alert.js", "..\\components\\grid.js", "..\\components\\section.js", "..\\components\\icon.js", "..\\components\\accordion.js", "..\\components\\hero.js", "..\\components\\table.js", "..\\components\\modal.js", "..\\components\\tabs.js", "..\\components\\sidebar.js", "..\\components\\dropdown.js", "..\\components\\select.js", "..\\components\\form.js", "..\\components\\tooltip.js", "..\\components\\toast.js", "..\\components\\badge.js", "..\\components\\avatar.js", "..\\components\\progress.js", "..\\components\\loader.js", "..\\components\\skeleton.js", "..\\components\\divider.js", "..\\components\\kanga-card.js", "..\\components\\cultural-card.js", "..\\components\\pattern-showcase.js", "..\\components\\language-switcher.js", "..\\components\\auth.js", "..\\components\\theme-toggle.js", "..\\core\\sdk-client.js", "..\\core\\motion.js", "..\\core\\hydration.js", "..\\components\\index.js", "..\\components\\error-boundary.js"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"/**\r\n * AfriCode Reactive State System\r\n * \r\n * A lightweight, Proxy-based reactive state management system\r\n * following the African Fractal philosophy - simple at the core,\r\n * powerful through composition.\r\n * \r\n * @module core/state\r\n */\r\n\r\n// Store for all subscribers per state\r\nconst stateSubscribers = new WeakMap();\r\n\r\n// Track nested proxies to avoid duplicates\r\nconst proxyCache = new WeakMap();\r\n\r\n/**\r\n * Creates a deeply reactive state object using Proxy\r\n * State changes automatically notify all subscribers\r\n * \r\n * @param {Object} initialState - The initial state object\r\n * @returns {Proxy} A reactive proxy of the state\r\n * \r\n * @example\r\n * const state = createReactiveState({ count: 0, user: { name: 'Amara' } });\r\n * subscribe(() => console.log('State changed!'));\r\n * state.count++; // Logs: \"State changed!\"\r\n */\r\nexport function createReactiveState(initialState) {\r\n // Return cached proxy if already created\r\n if (proxyCache.has(initialState)) {\r\n return proxyCache.get(initialState);\r\n }\r\n\r\n const handler = {\r\n get(target, property, receiver) {\r\n const value = Reflect.get(target, property, receiver);\r\n\r\n // Recursively wrap nested objects\r\n if (value !== null && typeof value === 'object') {\r\n return createReactiveState(value);\r\n }\r\n\r\n return value;\r\n },\r\n\r\n set(target, property, value, receiver) {\r\n const oldValue = Reflect.get(target, property, receiver);\r\n\r\n // Only notify if value actually changed\r\n if (oldValue !== value) {\r\n const result = Reflect.set(target, property, value, receiver);\r\n\r\n if (result) {\r\n notifySubscribers(receiver, value, oldValue, property);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n return true;\r\n },\r\n\r\n deleteProperty(target, property) {\r\n const oldValue = Reflect.get(target, property);\r\n const result = Reflect.deleteProperty(target, property);\r\n\r\n if (result) {\r\n const proxy = proxyCache.get(target);\r\n notifySubscribers(proxy, undefined, oldValue, property);\r\n }\r\n\r\n return result;\r\n }\r\n };\r\n\r\n const proxy = new Proxy(initialState, handler);\r\n proxyCache.set(initialState, proxy);\r\n\r\n return proxy;\r\n}\r\n\r\n/**\r\n * Subscribe to state changes\r\n * \r\n * @param {Proxy} state - The reactive state to subscribe to\r\n * @param {Function} callback - Function to call when state changes\r\n * @returns {Function} Unsubscribe function\r\n * \r\n * @example\r\n * const state = createReactiveState({ count: 0 });\r\n * const unsubscribe = subscribe(state, () => updateUI());\r\n * // Later: unsubscribe();\r\n */\r\nexport function subscribe(state, callback) {\r\n if (!stateSubscribers.has(state)) {\r\n stateSubscribers.set(state, new Set());\r\n }\r\n \r\n const subscribers = stateSubscribers.get(state);\r\n subscribers.add(callback);\r\n\r\n // Return unsubscribe function\r\n return () => {\r\n subscribers.delete(callback);\r\n };\r\n}\r\n\r\n/**\r\n * Notify all subscribers of state change\r\n * Uses microtask queue for batched updates\r\n */\r\nfunction notifySubscribers(state, newValue, oldValue, property) {\r\n // For testing, make synchronous. In production, use microtask\r\n const subscribers = stateSubscribers.get(state);\r\n if (!subscribers) {return;}\r\n \r\n subscribers.forEach(callback => {\r\n try {\r\n callback(newValue, oldValue, property);\r\n } catch (error) {\r\n console.error('[AfriCode State] Subscriber error:', error);\r\n }\r\n });\r\n}\r\n\r\n/**\r\n * Create a computed value that updates when dependencies change\r\n * \r\n * @param {Function} computeFn - Function that computes the derived value\r\n * @returns {Function} Getter function for the computed value\r\n * \r\n * @example\r\n * const state = createReactiveState({ price: 100, quantity: 2 });\r\n * const total = computed(() => state.price * state.quantity);\r\n * console.log(total()); // 200\r\n */\r\nexport function computed(computeFn) {\r\n let cachedValue;\r\n let isDirty = true;\r\n\r\n subscribe(() => {\r\n isDirty = true;\r\n });\r\n\r\n return () => {\r\n if (isDirty) {\r\n cachedValue = computeFn();\r\n isDirty = false;\r\n }\r\n return cachedValue;\r\n };\r\n}\r\n\r\n/**\r\n * Batch multiple state changes into a single notification\r\n * \r\n * @param {Function} updateFn - Function containing multiple state updates\r\n * \r\n * @example\r\n * batch(() => {\r\n * state.name = 'Kwame';\r\n * state.age = 25;\r\n * state.country = 'Ghana';\r\n * }); // Only one notification\r\n */\r\nexport function batch(state, updateFn) {\r\n const subscribers = stateSubscribers.get(state) || new Set();\r\n const originalSubscribers = new Set(subscribers);\r\n subscribers.clear();\r\n\r\n try {\r\n updateFn();\r\n } finally {\r\n originalSubscribers.forEach(sub => subscribers.add(sub));\r\n notifySubscribers(state);\r\n }\r\n}\r\n\r\n/**\r\n * Create a simple signal (getter/setter pair)\r\n * \r\n * @param {*} initialValue - The initial value\r\n * @returns {[Function, Function]} [getter, setter]\r\n * \r\n * @example\r\n * const [count, setCount] = createSignal(0);\r\n * console.log(count()); // 0\r\n * setCount(5);\r\n * console.log(count()); // 5\r\n */\r\nexport function createSignal(initialValue) {\r\n let value = initialValue;\r\n const signalSubscribers = new Set();\r\n\r\n const getter = () => {\r\n return value;\r\n };\r\n\r\n const setter = (newValue) => {\r\n if (value !== newValue) {\r\n value = typeof newValue === 'function' ? newValue(value) : newValue;\r\n signalSubscribers.forEach(fn => fn());\r\n notifySubscribers();\r\n }\r\n };\r\n\r\n // Allow effects to subscribe to this signal\r\n getter.subscribe = (fn) => {\r\n signalSubscribers.add(fn);\r\n return () => signalSubscribers.delete(fn);\r\n };\r\n\r\n return [getter, setter];\r\n}\r\n\r\n/**\r\n * Create an effect that runs when reactive dependencies change\r\n * \r\n * @param {Function} effectFn - The effect function to run\r\n * @returns {Function} Cleanup function\r\n * \r\n * @example\r\n * const [count, setCount] = createSignal(0);\r\n * createEffect(() => console.log('Count is:', count()));\r\n */\r\nexport function createEffect(effectFn) {\r\n // Run immediately\r\n effectFn();\r\n // Subscribe to future changes\r\n return subscribe(effectFn);\r\n}\r\n\r\n// Default export for convenience\r\nexport default {\r\n createReactiveState,\r\n subscribe,\r\n computed,\r\n batch,\r\n createSignal,\r\n createEffect\r\n};\r\n",
|
|
5
|
+
"/**\r\n * AfriCode Reactive State System\r\n * \r\n * A lightweight, Proxy-based reactive state management system\r\n * following the African Fractal philosophy - simple at the core,\r\n * powerful through composition.\r\n * \r\n * @module core/state\r\n */\r\n\r\n// Store for all subscribers per state\r\nconst stateSubscribers = new WeakMap();\r\n\r\n// Track nested proxies to avoid duplicates\r\nconst proxyCache = new WeakMap();\r\n\r\n/**\r\n * Creates a deeply reactive state object using Proxy\r\n * State changes automatically notify all subscribers\r\n * \r\n * @param {Object} initialState - The initial state object\r\n * @returns {Proxy} A reactive proxy of the state\r\n * \r\n * @example\r\n * const state = createReactiveState({ count: 0, user: { name: 'Amara' } });\r\n * subscribe(() => console.log('State changed!'));\r\n * state.count++; // Logs: \"State changed!\"\r\n */\r\nexport function createReactiveState(initialState) {\r\n // Return cached proxy if already created\r\n if (proxyCache.has(initialState)) {\r\n return proxyCache.get(initialState);\r\n }\r\n\r\n const handler = {\r\n get(target, property, receiver) {\r\n const value = Reflect.get(target, property, receiver);\r\n\r\n // Recursively wrap nested objects\r\n if (value !== null && typeof value === 'object') {\r\n return createReactiveState(value);\r\n }\r\n\r\n return value;\r\n },\r\n\r\n set(target, property, value, receiver) {\r\n const oldValue = Reflect.get(target, property, receiver);\r\n\r\n // Only notify if value actually changed\r\n if (oldValue !== value) {\r\n const result = Reflect.set(target, property, value, receiver);\r\n\r\n if (result) {\r\n notifySubscribers(receiver, value, oldValue, property);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n return true;\r\n },\r\n\r\n deleteProperty(target, property) {\r\n const oldValue = Reflect.get(target, property);\r\n const result = Reflect.deleteProperty(target, property);\r\n\r\n if (result) {\r\n const proxy = proxyCache.get(target);\r\n notifySubscribers(proxy, undefined, oldValue, property);\r\n }\r\n\r\n return result;\r\n }\r\n };\r\n\r\n const proxy = new Proxy(initialState, handler);\r\n proxyCache.set(initialState, proxy);\r\n\r\n return proxy;\r\n}\r\n\r\n/**\r\n * Subscribe to state changes\r\n * \r\n * @param {Proxy} state - The reactive state to subscribe to\r\n * @param {Function} callback - Function to call when state changes\r\n * @returns {Function} Unsubscribe function\r\n * \r\n * @example\r\n * const state = createReactiveState({ count: 0 });\r\n * const unsubscribe = subscribe(state, () => updateUI());\r\n * // Later: unsubscribe();\r\n */\r\nexport function subscribe(state, callback) {\r\n if (!stateSubscribers.has(state)) {\r\n stateSubscribers.set(state, new Set());\r\n }\r\n \r\n const subscribers = stateSubscribers.get(state);\r\n subscribers.add(callback);\r\n\r\n // Return unsubscribe function\r\n return () => {\r\n subscribers.delete(callback);\r\n };\r\n}\r\n\r\n/**\r\n * Notify all subscribers of state change\r\n * Uses microtask queue for batched updates\r\n */\r\nfunction notifySubscribers(state, newValue, oldValue, property) {\r\n // For testing, make synchronous. In production, use microtask\r\n const subscribers = stateSubscribers.get(state);\r\n if (!subscribers) {return;}\r\n \r\n subscribers.forEach(callback => {\r\n try {\r\n callback(newValue, oldValue, property);\r\n } catch (error) {\r\n console.error('[AfriCode State] Subscriber error:', error);\r\n }\r\n });\r\n}\r\n\r\n/**\r\n * Simple server-side state store for Phase 3A\r\n */\r\nexport class GlobalState {\r\n constructor() {\r\n this.store = {};\r\n }\r\n\r\n get(path) {\r\n return path.split('/').reduce((obj, key) => obj?.[key], this.store);\r\n }\r\n\r\n set(path, value) {\r\n const keys = path.split('/');\r\n let obj = this.store;\r\n\r\n while (keys.length > 1) {\r\n const key = keys.shift();\r\n if (!obj[key] || typeof obj[key] !== 'object') {\r\n obj[key] = {};\r\n }\r\n obj = obj[key];\r\n }\r\n\r\n obj[keys[0]] = value;\r\n }\r\n\r\n getAll() {\r\n return this.store;\r\n }\r\n}\r\n\r\nexport const globalState = new GlobalState();\r\n\r\n/**\r\n * Create a computed value that updates when dependencies change\r\n * \r\n * @param {Function} computeFn - Function that computes the derived value\r\n * @returns {Function} Getter function for the computed value\r\n * \r\n * @example\r\n * const state = createReactiveState({ price: 100, quantity: 2 });\r\n * const total = computed(() => state.price * state.quantity);\r\n * console.log(total()); // 200\r\n */\r\nexport function computed(computeFn) {\r\n let cachedValue;\r\n let isDirty = true;\r\n\r\n subscribe(() => {\r\n isDirty = true;\r\n });\r\n\r\n return () => {\r\n if (isDirty) {\r\n cachedValue = computeFn();\r\n isDirty = false;\r\n }\r\n return cachedValue;\r\n };\r\n}\r\n\r\n/**\r\n * Batch multiple state changes into a single notification\r\n * \r\n * @param {Function} updateFn - Function containing multiple state updates\r\n * \r\n * @example\r\n * batch(() => {\r\n * state.name = 'Kwame';\r\n * state.age = 25;\r\n * state.country = 'Ghana';\r\n * }); // Only one notification\r\n */\r\nexport function batch(state, updateFn) {\r\n const subscribers = stateSubscribers.get(state) || new Set();\r\n const originalSubscribers = new Set(subscribers);\r\n subscribers.clear();\r\n\r\n try {\r\n updateFn();\r\n } finally {\r\n originalSubscribers.forEach(sub => subscribers.add(sub));\r\n notifySubscribers(state);\r\n }\r\n}\r\n\r\n/**\r\n * Create a simple signal (getter/setter pair)\r\n * \r\n * @param {*} initialValue - The initial value\r\n * @returns {[Function, Function]} [getter, setter]\r\n * \r\n * @example\r\n * const [count, setCount] = createSignal(0);\r\n * console.log(count()); // 0\r\n * setCount(5);\r\n * console.log(count()); // 5\r\n */\r\nexport function createSignal(initialValue) {\r\n let value = initialValue;\r\n const signalSubscribers = new Set();\r\n\r\n const getter = () => {\r\n return value;\r\n };\r\n\r\n const setter = (newValue) => {\r\n if (value !== newValue) {\r\n value = typeof newValue === 'function' ? newValue(value) : newValue;\r\n signalSubscribers.forEach(fn => fn());\r\n notifySubscribers();\r\n }\r\n };\r\n\r\n // Allow effects to subscribe to this signal\r\n getter.subscribe = (fn) => {\r\n signalSubscribers.add(fn);\r\n return () => signalSubscribers.delete(fn);\r\n };\r\n\r\n return [getter, setter];\r\n}\r\n\r\n/**\r\n * Create an effect that runs when reactive dependencies change\r\n * \r\n * @param {Function} effectFn - The effect function to run\r\n * @returns {Function} Cleanup function\r\n * \r\n * @example\r\n * const [count, setCount] = createSignal(0);\r\n * createEffect(() => console.log('Count is:', count()));\r\n */\r\nexport function createEffect(effectFn) {\r\n // Run immediately\r\n effectFn();\r\n // Subscribe to future changes\r\n return subscribe(effectFn);\r\n}\r\n\r\n// Default export for convenience\r\nexport default {\r\n createReactiveState,\r\n subscribe,\r\n computed,\r\n batch,\r\n createSignal,\r\n createEffect\r\n};\r\n",
|
|
6
6
|
"/**\r\n * AfriCode Global Store\r\n * \r\n * Centralized state container for the application UI.\r\n * Powered by the core reactive engine.\r\n * \r\n * @module core/store\r\n */\r\n\r\nimport { createReactiveState } from './state.js';\r\n\r\n// Initial default state\r\nconst initialState = {\r\n theme: 'light', // Top-level theme\r\n language: 'en', // Top-level language\r\n ui: {\r\n sidebarCollapsed: false,\r\n theme: 'dark', // 'dark', 'light', 'system'\r\n activePage: 'home'\r\n },\r\n user: {\r\n name: 'Guest',\r\n permissions: []\r\n },\r\n config: {\r\n animationsEnabled: true,\r\n soundEnabled: false\r\n }\r\n};\r\n\r\n// Create the global store\r\nexport const store = createReactiveState(initialState);\r\n\r\n// Actions (Helper functions to modify state)\r\nexport const actions = {\r\n setTheme(theme) {\r\n if (['dark', 'light', 'system'].includes(theme)) {\r\n store.theme = theme;\r\n // Also update ui.theme for consistency\r\n store.ui.theme = theme;\r\n }\r\n },\r\n\r\n setLanguage(language) {\r\n store.language = language;\r\n },\r\n\r\n toggleSidebar(collapsed) {\r\n if (typeof collapsed === 'boolean') {\r\n store.ui.sidebarCollapsed = collapsed;\r\n } else {\r\n store.ui.sidebarCollapsed = !store.ui.sidebarCollapsed;\r\n }\r\n },\r\n\r\n setActivePage(pageName) {\r\n store.ui.activePage = pageName;\r\n }\r\n};\r\n\r\nexport default { store, actions };\r\n",
|
|
7
7
|
"/**\r\n * AfriCode Procedural SVG Pattern Engine\r\n * \r\n * Generates lightweight, on-the-fly SVG patterns inspired by\r\n * African textiles from across the continent:\r\n * \r\n * EAST AFRICA: Maasai Shuka, Kanga, Kitenge, Hadzabe\r\n * WEST AFRICA: Ghana Kente, Adinkra, Nigeria Aso-Oke, Ankara\r\n * SOUTHERN AFRICA: Ndebele, Zulu, Swazi/Eswatini, Xhosa\r\n * \r\n * @module core/patterns\r\n */\r\n\r\n/**\r\n * Generate a polygon with n sides\r\n * Based on the mathematical formula:\r\n * x_i = cx + r * cos(2πi/n)\r\n * y_i = cy + r * sin(2πi/n)\r\n */\r\nexport function generatePolygon(n, r, cx = 50, cy = 50) {\r\n const points = [];\r\n for (let i = 0; i < n; i++) {\r\n const angle = (2 * Math.PI * i) / n - Math.PI / 2;\r\n const x = cx + r * Math.cos(angle);\r\n const y = cy + r * Math.sin(angle);\r\n points.push(`${x.toFixed(2)},${y.toFixed(2)}`);\r\n }\r\n return points.join(' ');\r\n}\r\n\r\n// ============================================\r\n// EAST AFRICAN PATTERNS\r\n// ============================================\r\n\r\n/**\r\n * Generate Maasai Shuka tartan pattern (Tanzania/Kenya)\r\n * Traditional red checkered blanket with overlapping stripes\r\n */\r\nexport function generateShuka({\r\n primaryColor = '#FF0000',\r\n secondaryColor = '#000000',\r\n backgroundColor = '#8B0000',\r\n stripeWidth = 4,\r\n size = 40\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${backgroundColor}\"/>\r\n <rect x=\"0\" y=\"0\" width=\"${size}\" height=\"${stripeWidth}\" fill=\"${primaryColor}\" opacity=\"0.8\"/>\r\n <rect x=\"0\" y=\"${size / 2 - stripeWidth / 2}\" width=\"${size}\" height=\"${stripeWidth}\" fill=\"${secondaryColor}\" opacity=\"0.6\"/>\r\n <rect x=\"0\" y=\"${size - stripeWidth}\" width=\"${size}\" height=\"${stripeWidth}\" fill=\"${primaryColor}\" opacity=\"0.8\"/>\r\n <rect x=\"0\" y=\"0\" width=\"${stripeWidth}\" height=\"${size}\" fill=\"${primaryColor}\" opacity=\"0.5\"/>\r\n <rect x=\"${size / 2 - stripeWidth / 2}\" y=\"0\" width=\"${stripeWidth}\" height=\"${size}\" fill=\"${secondaryColor}\" opacity=\"0.4\"/>\r\n <rect x=\"${size - stripeWidth}\" y=\"0\" width=\"${stripeWidth}\" height=\"${size}\" fill=\"${primaryColor}\" opacity=\"0.5\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Hadzabe pattern (Tanzania)\r\n * Inspired by cave paintings and natural earth tones\r\n * Hunter-gatherer tribe with ancient artistic traditions\r\n */\r\nexport function generateHadzabe({\r\n earthColor = '#8B4513',\r\n ochreColor = '#CD853F',\r\n charcoalColor = '#2F2F2F',\r\n size = 50\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${earthColor}\"/>\r\n <!-- Cave art inspired figures -->\r\n <circle cx=\"${size * 0.3}\" cy=\"${size * 0.3}\" r=\"${size * 0.08}\" fill=\"${ochreColor}\"/>\r\n <line x1=\"${size * 0.3}\" y1=\"${size * 0.38}\" x2=\"${size * 0.3}\" y2=\"${size * 0.6}\" stroke=\"${charcoalColor}\" stroke-width=\"2\"/>\r\n <line x1=\"${size * 0.2}\" y1=\"${size * 0.45}\" x2=\"${size * 0.4}\" y2=\"${size * 0.45}\" stroke=\"${charcoalColor}\" stroke-width=\"2\"/>\r\n <!-- Animal figure -->\r\n <ellipse cx=\"${size * 0.7}\" cy=\"${size * 0.5}\" rx=\"${size * 0.15}\" ry=\"${size * 0.08}\" fill=\"${ochreColor}\"/>\r\n <line x1=\"${size * 0.6}\" y1=\"${size * 0.58}\" x2=\"${size * 0.6}\" y2=\"${size * 0.7}\" stroke=\"${charcoalColor}\" stroke-width=\"2\"/>\r\n <line x1=\"${size * 0.8}\" y1=\"${size * 0.58}\" x2=\"${size * 0.8}\" y2=\"${size * 0.7}\" stroke=\"${charcoalColor}\" stroke-width=\"2\"/>\r\n <!-- Dots like ancient markings -->\r\n <circle cx=\"${size * 0.15}\" cy=\"${size * 0.8}\" r=\"3\" fill=\"${ochreColor}\"/>\r\n <circle cx=\"${size * 0.85}\" cy=\"${size * 0.2}\" r=\"3\" fill=\"${ochreColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Kanga border pattern (Tanzania/Kenya)\r\n */\r\nexport function generateKangaBorder({\r\n primaryColor = '#1EB53A', // Simple Green (Tanzania)\r\n accentColor = '#FCD116', // Gold\r\n size = 30\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${primaryColor}\"/>\r\n <!-- Pindo (Border) Motifs: Cashew/Triangle -->\r\n <path d=\"M0,0 L${size / 2},${size / 2} L0,${size} Z\" fill=\"${accentColor}\"/>\r\n <path d=\"M${size},0 L${size / 2},${size / 2} L${size},${size} Z\" fill=\"${accentColor}\"/>\r\n <circle cx=\"${size / 2}\" cy=\"${size / 2}\" r=\"${size * 0.15}\" fill=\"none\" stroke=\"${accentColor}\" stroke-width=\"2\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Kanga traditional Swahili cloth pattern (East Africa)\r\n */\r\nexport function generateKanga({\r\n primaryColor = '#FF6B00',\r\n secondaryColor = '#002B5C',\r\n backgroundColor = '#FFFFFF',\r\n size = 40\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${backgroundColor}\"/>\r\n <!-- Border pattern -->\r\n <rect x=\"0\" y=\"0\" width=\"${size}\" height=\"${size * 0.1}\" fill=\"${primaryColor}\"/>\r\n <rect x=\"0\" y=\"${size * 0.9}\" width=\"${size}\" height=\"${size * 0.1}\" fill=\"${primaryColor}\"/>\r\n <rect x=\"0\" y=\"0\" width=\"${size * 0.1}\" height=\"${size}\" fill=\"${primaryColor}\"/>\r\n <rect x=\"${size * 0.9}\" y=\"0\" width=\"${size * 0.1}\" height=\"${size}\" fill=\"${primaryColor}\"/>\r\n <!-- Center motif -->\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.5}\" r=\"${size * 0.15}\" fill=\"${secondaryColor}\"/>\r\n <text x=\"${size * 0.5}\" y=\"${size * 0.55}\" text-anchor=\"middle\" fill=\"${primaryColor}\" font-size=\"${size * 0.08}\">KANGA</text>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Kuba Border pattern (Congo)\r\n */\r\nexport function generateKubaBorder({\r\n primaryColor = '#8B4513',\r\n secondaryColor = '#DAA520',\r\n backgroundColor = '#F5F5DC',\r\n size = 30\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${backgroundColor}\"/>\r\n <!-- Kuba geometric border -->\r\n <polygon points=\"0,0 ${size * 0.3},0 0,${size * 0.3}\" fill=\"${primaryColor}\"/>\r\n <polygon points=\"${size},0 ${size * 0.7},0 ${size},${size * 0.3}\" fill=\"${primaryColor}\"/>\r\n <polygon points=\"0,${size} ${size * 0.3},${size} 0,${size * 0.7}\" fill=\"${primaryColor}\"/>\r\n <polygon points=\"${size},${size} ${size * 0.7},${size} ${size},${size * 0.7}\" fill=\"${primaryColor}\"/>\r\n <!-- Center diamond -->\r\n <polygon points=\"${size * 0.5},${size * 0.3} ${size * 0.7},${size * 0.5} ${size * 0.5},${size * 0.7} ${size * 0.3},${size * 0.5}\" fill=\"${secondaryColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Zulu Beads pattern (South Africa)\r\n */\r\nexport function generateZuluBeads({\r\n primaryColor = '#FF0000',\r\n secondaryColor = '#000000',\r\n accentColor = '#FFFFFF',\r\n size = 40\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${accentColor}\"/>\r\n <!-- Bead pattern -->\r\n <circle cx=\"${size * 0.2}\" cy=\"${size * 0.2}\" r=\"${size * 0.08}\" fill=\"${primaryColor}\"/>\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.2}\" r=\"${size * 0.08}\" fill=\"${secondaryColor}\"/>\r\n <circle cx=\"${size * 0.8}\" cy=\"${size * 0.2}\" r=\"${size * 0.08}\" fill=\"${primaryColor}\"/>\r\n <circle cx=\"${size * 0.2}\" cy=\"${size * 0.5}\" r=\"${size * 0.08}\" fill=\"${secondaryColor}\"/>\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.5}\" r=\"${size * 0.08}\" fill=\"${primaryColor}\"/>\r\n <circle cx=\"${size * 0.8}\" cy=\"${size * 0.5}\" r=\"${size * 0.08}\" fill=\"${secondaryColor}\"/>\r\n <circle cx=\"${size * 0.2}\" cy=\"${size * 0.8}\" r=\"${size * 0.08}\" fill=\"${primaryColor}\"/>\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.8}\" r=\"${size * 0.08}\" fill=\"${secondaryColor}\"/>\r\n <circle cx=\"${size * 0.8}\" cy=\"${size * 0.8}\" r=\"${size * 0.08}\" fill=\"${primaryColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Maasai Shield pattern (Kenya/Tanzania)\r\n */\r\nexport function generateMasaiShield({\r\n primaryColor = '#8B0000',\r\n secondaryColor = '#FFD700',\r\n backgroundColor = '#654321',\r\n size = 50\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <ellipse cx=\"${size * 0.5}\" cy=\"${size * 0.5}\" rx=\"${size * 0.4}\" ry=\"${size * 0.45}\" fill=\"${backgroundColor}\"/>\r\n <!-- Shield patterns -->\r\n <ellipse cx=\"${size * 0.5}\" cy=\"${size * 0.3}\" rx=\"${size * 0.2}\" ry=\"${size * 0.15}\" fill=\"${primaryColor}\"/>\r\n <rect x=\"${size * 0.4}\" y=\"${size * 0.5}\" width=\"${size * 0.2}\" height=\"${size * 0.3}\" fill=\"${secondaryColor}\"/>\r\n <!-- Decorative lines -->\r\n <line x1=\"${size * 0.3}\" y1=\"${size * 0.2}\" x2=\"${size * 0.7}\" y2=\"${size * 0.2}\" stroke=\"${primaryColor}\" stroke-width=\"3\"/>\r\n <line x1=\"${size * 0.3}\" y1=\"${size * 0.8}\" x2=\"${size * 0.7}\" y2=\"${size * 0.8}\" stroke=\"${primaryColor}\" stroke-width=\"3\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Ndebele Paint house pattern (South Africa)\r\n */\r\nexport function generateNdebelePaint({\r\n primaryColor = '#FF1493',\r\n secondaryColor = '#00FF00',\r\n accentColor = '#FFFF00',\r\n backgroundColor = '#FFFFFF',\r\n size = 50\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${backgroundColor}\"/>\r\n <!-- Ndebele geometric patterns -->\r\n <polygon points=\"${size * 0.2},${size * 0.2} ${size * 0.4},${size * 0.2} ${size * 0.3},${size * 0.4}\" fill=\"${primaryColor}\"/>\r\n <polygon points=\"${size * 0.6},${size * 0.2} ${size * 0.8},${size * 0.2} ${size * 0.7},${size * 0.4}\" fill=\"${secondaryColor}\"/>\r\n <polygon points=\"${size * 0.2},${size * 0.6} ${size * 0.4},${size * 0.6} ${size * 0.3},${size * 0.8}\" fill=\"${accentColor}\"/>\r\n <polygon points=\"${size * 0.6},${size * 0.6} ${size * 0.8},${size * 0.6} ${size * 0.7},${size * 0.8}\" fill=\"${primaryColor}\"/>\r\n <!-- Center design -->\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.5}\" r=\"${size * 0.15}\" fill=\"${secondaryColor}\"/>\r\n <rect x=\"${size * 0.45}\" y=\"${size * 0.45}\" width=\"${size * 0.1}\" height=\"${size * 0.1}\" fill=\"${accentColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Kitenge floral pattern (East Africa)\r\n */\r\nexport function generateKitenge({\r\n primaryColor = '#00A3DD',\r\n secondaryColor = '#FCD116',\r\n backgroundColor = '#1EB53A',\r\n size = 50\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${backgroundColor}\"/>\r\n <circle cx=\"${size * 0.25}\" cy=\"${size * 0.25}\" r=\"${size * 0.2}\" fill=\"${primaryColor}\" opacity=\"0.8\"/>\r\n <circle cx=\"${size * 0.75}\" cy=\"${size * 0.75}\" r=\"${size * 0.2}\" fill=\"${primaryColor}\" opacity=\"0.8\"/>\r\n <circle cx=\"${size * 0.25}\" cy=\"${size * 0.25}\" r=\"${size * 0.1}\" fill=\"${secondaryColor}\"/>\r\n <circle cx=\"${size * 0.75}\" cy=\"${size * 0.75}\" r=\"${size * 0.1}\" fill=\"${secondaryColor}\"/>\r\n <circle cx=\"${size * 0.75}\" cy=\"${size * 0.25}\" r=\"${size * 0.08}\" fill=\"${secondaryColor}\" opacity=\"0.6\"/>\r\n <circle cx=\"${size * 0.25}\" cy=\"${size * 0.75}\" r=\"${size * 0.08}\" fill=\"${secondaryColor}\" opacity=\"0.6\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n// ============================================\r\n// WEST AFRICAN PATTERNS\r\n// ============================================\r\n\r\n/**\r\n * Generate Ghana Kente cloth pattern\r\n * Royal cloth of the Ashanti people with geometric strips\r\n * Colors: Gold (royalty), Green (harvest), Red (blood/sacrifice)\r\n */\r\nexport function generateKente({\r\n colors = ['#FFD700', '#228B22', '#DC143C', '#000000'],\r\n size = 60\r\n} = {}) {\r\n const [gold, green, red, black] = colors;\r\n const stripe = size / 6;\r\n\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${black}\"/>\r\n <!-- Horizontal bands -->\r\n <rect x=\"0\" y=\"0\" width=\"${size}\" height=\"${stripe}\" fill=\"${gold}\"/>\r\n <rect x=\"0\" y=\"${stripe}\" width=\"${size}\" height=\"${stripe}\" fill=\"${green}\"/>\r\n <rect x=\"0\" y=\"${stripe * 2}\" width=\"${size}\" height=\"${stripe}\" fill=\"${red}\"/>\r\n <rect x=\"0\" y=\"${stripe * 3}\" width=\"${size}\" height=\"${stripe}\" fill=\"${gold}\"/>\r\n <rect x=\"0\" y=\"${stripe * 4}\" width=\"${size}\" height=\"${stripe}\" fill=\"${green}\"/>\r\n <rect x=\"0\" y=\"${stripe * 5}\" width=\"${size}\" height=\"${stripe}\" fill=\"${red}\"/>\r\n <!-- Vertical accents -->\r\n <rect x=\"${size * 0.2}\" y=\"0\" width=\"3\" height=\"${size}\" fill=\"${black}\" opacity=\"0.5\"/>\r\n <rect x=\"${size * 0.4}\" y=\"0\" width=\"3\" height=\"${size}\" fill=\"${black}\" opacity=\"0.5\"/>\r\n <rect x=\"${size * 0.6}\" y=\"0\" width=\"3\" height=\"${size}\" fill=\"${black}\" opacity=\"0.5\"/>\r\n <rect x=\"${size * 0.8}\" y=\"0\" width=\"3\" height=\"${size}\" fill=\"${black}\" opacity=\"0.5\"/>\r\n <!-- Kente squares -->\r\n <rect x=\"${size * 0.1}\" y=\"${size * 0.1}\" width=\"${size * 0.15}\" height=\"${size * 0.15}\" fill=\"${gold}\" stroke=\"${black}\" stroke-width=\"1\"/>\r\n <rect x=\"${size * 0.75}\" y=\"${size * 0.75}\" width=\"${size * 0.15}\" height=\"${size * 0.15}\" fill=\"${red}\" stroke=\"${black}\" stroke-width=\"1\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Ghana Adinkra symbols pattern\r\n * Philosophical symbols of the Akan people\r\n * Each symbol represents concepts like wisdom, strength, unity\r\n */\r\nexport function generateAdinkra({\r\n symbolColor = '#000000',\r\n backgroundColor = '#CD853F',\r\n size = 50\r\n} = {}) {\r\n // Gye Nyame symbol (Supremacy of God) simplified\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${backgroundColor}\"/>\r\n <!-- Sankofa-inspired heart shape (go back and get it) -->\r\n <path d=\"M${size * 0.5} ${size * 0.2} \r\n C${size * 0.3} ${size * 0.1} ${size * 0.15} ${size * 0.3} ${size * 0.25} ${size * 0.5}\r\n L${size * 0.5} ${size * 0.8}\r\n L${size * 0.75} ${size * 0.5}\r\n C${size * 0.85} ${size * 0.3} ${size * 0.7} ${size * 0.1} ${size * 0.5} ${size * 0.2}\" \r\n fill=\"none\" stroke=\"${symbolColor}\" stroke-width=\"3\"/>\r\n <!-- Spiral detail -->\r\n <circle cx=\"${size * 0.35}\" cy=\"${size * 0.45}\" r=\"${size * 0.08}\" fill=\"none\" stroke=\"${symbolColor}\" stroke-width=\"2\"/>\r\n <circle cx=\"${size * 0.65}\" cy=\"${size * 0.45}\" r=\"${size * 0.08}\" fill=\"none\" stroke=\"${symbolColor}\" stroke-width=\"2\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Nigeria Aso-Oke pattern (Yoruba)\r\n * Hand-woven cloth with intricate strip patterns\r\n * Traditional for special occasions\r\n */\r\nexport function generateAsoOke({\r\n colors = ['#4B0082', '#FFD700', '#FFFFFF'],\r\n size = 50\r\n} = {}) {\r\n const [indigo, gold, white] = colors;\r\n const stripe = size / 10;\r\n\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${indigo}\"/>\r\n <!-- Horizontal stripes -->\r\n <rect x=\"0\" y=\"${stripe}\" width=\"${size}\" height=\"${stripe * 0.5}\" fill=\"${gold}\"/>\r\n <rect x=\"0\" y=\"${stripe * 3}\" width=\"${size}\" height=\"${stripe * 0.5}\" fill=\"${white}\"/>\r\n <rect x=\"0\" y=\"${stripe * 5}\" width=\"${size}\" height=\"${stripe * 0.5}\" fill=\"${gold}\"/>\r\n <rect x=\"0\" y=\"${stripe * 7}\" width=\"${size}\" height=\"${stripe * 0.5}\" fill=\"${white}\"/>\r\n <rect x=\"0\" y=\"${stripe * 9}\" width=\"${size}\" height=\"${stripe * 0.5}\" fill=\"${gold}\"/>\r\n <!-- Vertical accent lines -->\r\n <rect x=\"${size * 0.48}\" y=\"0\" width=\"${stripe * 0.4}\" height=\"${size}\" fill=\"${gold}\" opacity=\"0.7\"/>\r\n <!-- Diamond motifs -->\r\n <polygon points=\"${size * 0.25},${size * 0.3} ${size * 0.35},${size * 0.5} ${size * 0.25},${size * 0.7} ${size * 0.15},${size * 0.5}\" \r\n fill=\"${gold}\" stroke=\"${white}\" stroke-width=\"1\"/>\r\n <polygon points=\"${size * 0.75},${size * 0.3} ${size * 0.85},${size * 0.5} ${size * 0.75},${size * 0.7} ${size * 0.65},${size * 0.5}\" \r\n fill=\"${gold}\" stroke=\"${white}\" stroke-width=\"1\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Nigeria Ankara/African wax print pattern\r\n * Bold, colorful designs popular across Africa\r\n */\r\nexport function generateAnkara({\r\n primaryColor = '#FF6B00',\r\n secondaryColor = '#00A86B',\r\n accentColor = '#FFD700',\r\n backgroundColor = '#FFFFFF',\r\n size = 60\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${backgroundColor}\"/>\r\n <!-- Bold circular motifs -->\r\n <circle cx=\"${size * 0.3}\" cy=\"${size * 0.3}\" r=\"${size * 0.25}\" fill=\"${primaryColor}\"/>\r\n <circle cx=\"${size * 0.3}\" cy=\"${size * 0.3}\" r=\"${size * 0.15}\" fill=\"${secondaryColor}\"/>\r\n <circle cx=\"${size * 0.3}\" cy=\"${size * 0.3}\" r=\"${size * 0.08}\" fill=\"${accentColor}\"/>\r\n \r\n <circle cx=\"${size * 0.8}\" cy=\"${size * 0.8}\" r=\"${size * 0.2}\" fill=\"${secondaryColor}\"/>\r\n <circle cx=\"${size * 0.8}\" cy=\"${size * 0.8}\" r=\"${size * 0.1}\" fill=\"${primaryColor}\"/>\r\n \r\n <!-- Connecting lines -->\r\n <line x1=\"${size * 0.45}\" y1=\"${size * 0.45}\" x2=\"${size * 0.65}\" y2=\"${size * 0.65}\" \r\n stroke=\"${primaryColor}\" stroke-width=\"4\"/>\r\n \r\n <!-- Small dots -->\r\n <circle cx=\"${size * 0.1}\" cy=\"${size * 0.8}\" r=\"${size * 0.05}\" fill=\"${accentColor}\"/>\r\n <circle cx=\"${size * 0.9}\" cy=\"${size * 0.2}\" r=\"${size * 0.05}\" fill=\"${accentColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n// ============================================\r\n// CENTRAL & NORTH AFRICAN PATTERNS\r\n// ============================================\r\n\r\n/**\r\n * Generate Bogolanfini (Mud Cloth) pattern (Mali)\r\n * Geometric abstract designs in earth tones\r\n */\r\nexport function generateBogolan({\r\n primaryColor = '#000000',\r\n secondaryColor = '#FFFFFF',\r\n accentColor = '#8B4513',\r\n size = 60\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${primaryColor}\"/>\r\n <!-- Zigzags -->\r\n <polyline points=\"0,${size * 0.2} ${size * 0.25},0 ${size * 0.5},${size * 0.2} ${size * 0.75},0 ${size},${size * 0.2}\" \r\n fill=\"none\" stroke=\"${secondaryColor}\" stroke-width=\"3\"/>\r\n <polyline points=\"0,${size * 0.8} ${size * 0.25},${size} ${size * 0.5},${size * 0.8} ${size * 0.75},${size} ${size},${size * 0.8}\" \r\n fill=\"none\" stroke=\"${secondaryColor}\" stroke-width=\"3\"/>\r\n <!-- Crosses -->\r\n <line x1=\"${size * 0.25}\" y1=\"${size * 0.4}\" x2=\"${size * 0.25}\" y2=\"${size * 0.6}\" stroke=\"${secondaryColor}\" stroke-width=\"2\"/>\r\n <line x1=\"${size * 0.15}\" y1=\"${size * 0.5}\" x2=\"${size * 0.35}\" y2=\"${size * 0.5}\" stroke=\"${secondaryColor}\" stroke-width=\"2\"/>\r\n <line x1=\"${size * 0.75}\" y1=\"${size * 0.4}\" x2=\"${size * 0.75}\" y2=\"${size * 0.6}\" stroke=\"${secondaryColor}\" stroke-width=\"2\"/>\r\n <line x1=\"${size * 0.65}\" y1=\"${size * 0.5}\" x2=\"${size * 0.85}\" y2=\"${size * 0.5}\" stroke=\"${secondaryColor}\" stroke-width=\"2\"/>\r\n <!-- Dots -->\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.5}\" r=\"${size * 0.08}\" fill=\"${accentColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Kuba Shoowa pattern (DRC)\r\n * Complex interlocking geometric shapes\r\n */\r\nexport function generateKuba({\r\n primaryColor = '#D2B48C',\r\n secondaryColor = '#3E2723',\r\n size = 60\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${primaryColor}\"/>\r\n <!-- Interlocking diamonds/rectangles -->\r\n <rect x=\"${size * 0.1}\" y=\"${size * 0.1}\" width=\"${size * 0.3}\" height=\"${size * 0.3}\" fill=\"${secondaryColor}\"/>\r\n <rect x=\"${size * 0.6}\" y=\"${size * 0.6}\" width=\"${size * 0.3}\" height=\"${size * 0.3}\" fill=\"${secondaryColor}\"/>\r\n <rect x=\"${size * 0.6}\" y=\"${size * 0.1}\" width=\"${size * 0.3}\" height=\"${size * 0.3}\" \r\n fill=\"none\" stroke=\"${secondaryColor}\" stroke-width=\"4\"/>\r\n <rect x=\"${size * 0.1}\" y=\"${size * 0.6}\" width=\"${size * 0.3}\" height=\"${size * 0.3}\" \r\n fill=\"none\" stroke=\"${secondaryColor}\" stroke-width=\"4\"/>\r\n <!-- Center lines -->\r\n <line x1=\"${size * 0.4}\" y1=\"${size * 0.5}\" x2=\"${size * 0.6}\" y2=\"${size * 0.5}\" stroke=\"${secondaryColor}\" stroke-width=\"2\"/>\r\n <line x1=\"${size * 0.5}\" y1=\"${size * 0.4}\" x2=\"${size * 0.5}\" y2=\"${size * 0.6}\" stroke=\"${secondaryColor}\" stroke-width=\"2\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Imigongo pattern (Rwanda)\r\n * Spiral/Geometric ridges traditionally made from cow dung\r\n */\r\nexport function generateImigongo({\r\n primaryColor = '#000000',\r\n secondaryColor = '#FFFFFF',\r\n accentColor = '#B22222',\r\n size = 60\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${secondaryColor}\"/>\r\n <!-- Spiral/Diamond Motif -->\r\n <path d=\"M${size * 0.5} ${size * 0.1} \r\n L${size * 0.9} ${size * 0.5} \r\n L${size * 0.5} ${size * 0.9} \r\n L${size * 0.1} ${size * 0.5} Z\" \r\n fill=\"${primaryColor}\"/>\r\n <path d=\"M${size * 0.5} ${size * 0.3} \r\n L${size * 0.7} ${size * 0.5} \r\n L${size * 0.5} ${size * 0.7} \r\n L${size * 0.3} ${size * 0.5} Z\" \r\n fill=\"${secondaryColor}\"/>\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.5}\" r=\"${size * 0.1}\" fill=\"${accentColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Ethiopian Tibeb pattern\r\n * Vibrant woven geometric borders\r\n */\r\nexport function generateTibeb({\r\n colors = ['#009E60', '#FCDD09', '#EF3340'], // Ethiopian flag colors\r\n backgroundColor = '#FFFFFF',\r\n size = 40\r\n} = {}) {\r\n const [c1, c2, c3] = colors;\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${backgroundColor}\"/>\r\n <!-- Diamond Chain -->\r\n <polygon points=\"${size * 0.5},0 ${size},${size * 0.5} ${size * 0.5},${size} 0,${size * 0.5}\" \r\n fill=\"${c1}\" opacity=\"0.2\"/>\r\n <polygon points=\"${size * 0.5},${size * 0.2} ${size * 0.8},${size * 0.5} ${size * 0.5},${size * 0.8} ${size * 0.2},${size * 0.5}\" \r\n fill=\"${c2}\"/>\r\n <rect x=\"${size * 0.4}\" y=\"${size * 0.4}\" width=\"${size * 0.2}\" height=\"${size * 0.2}\" fill=\"${c3}\"/>\r\n <!-- Side accents -->\r\n <line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"${size}\" stroke=\"${c1}\" stroke-width=\"4\"/>\r\n <line x1=\"${size}\" y1=\"0\" x2=\"${size}\" y2=\"${size}\" stroke=\"${c1}\" stroke-width=\"4\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n// ============================================\r\n// SOUTHERN AFRICAN PATTERNS\r\n// ============================================\r\n\r\n/**\r\n * Generate Ndebele geometric mural pattern (South Africa)\r\n */\r\nexport function generateNdebele({\r\n colors = ['#FFD700', '#4169E1', '#FF69B4', '#228B22'],\r\n size = 60,\r\n strokeWidth = 2\r\n} = {}) {\r\n const [c1, c2, c3, c4] = colors;\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"#FFFFFF\"/>\r\n <rect x=\"${strokeWidth}\" y=\"${strokeWidth}\" \r\n width=\"${size - strokeWidth * 2}\" height=\"${size - strokeWidth * 2}\" \r\n fill=\"none\" stroke=\"#000000\" stroke-width=\"${strokeWidth}\"/>\r\n <rect x=\"${size * 0.15}\" y=\"${size * 0.15}\" width=\"${size * 0.35}\" height=\"${size * 0.35}\" \r\n fill=\"${c1}\" stroke=\"#000000\" stroke-width=\"${strokeWidth / 2}\"/>\r\n <rect x=\"${size * 0.5}\" y=\"${size * 0.15}\" width=\"${size * 0.35}\" height=\"${size * 0.35}\" \r\n fill=\"${c2}\" stroke=\"#000000\" stroke-width=\"${strokeWidth / 2}\"/>\r\n <rect x=\"${size * 0.15}\" y=\"${size * 0.5}\" width=\"${size * 0.35}\" height=\"${size * 0.35}\" \r\n fill=\"${c3}\" stroke=\"#000000\" stroke-width=\"${strokeWidth / 2}\"/>\r\n <rect x=\"${size * 0.5}\" y=\"${size * 0.5}\" width=\"${size * 0.35}\" height=\"${size * 0.35}\" \r\n fill=\"${c4}\" stroke=\"#000000\" stroke-width=\"${strokeWidth / 2}\"/>\r\n <polygon points=\"${size / 2},${size * 0.3} ${size * 0.7},${size / 2} ${size / 2},${size * 0.7} ${size * 0.3},${size / 2}\"\r\n fill=\"#FFFFFF\" stroke=\"#000000\" stroke-width=\"${strokeWidth}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Zulu beadwork pattern (South Africa)\r\n * Traditional \"love letter\" beadwork with symbolic colors\r\n * Colors carry deep meaning in Zulu courtship\r\n */\r\nexport function generateZulu({\r\n colors = ['#FFFFFF', '#000000', '#FF0000', '#00A86B', '#FFD700'],\r\n size = 50\r\n} = {}) {\r\n const [white, black, red, green, gold] = colors;\r\n const bead = size / 10;\r\n\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${black}\"/>\r\n <!-- Triangle pattern (isivivane - sacred cairn) -->\r\n <polygon points=\"${size * 0.5},${size * 0.1} ${size * 0.9},${size * 0.9} ${size * 0.1},${size * 0.9}\" \r\n fill=\"none\" stroke=\"${white}\" stroke-width=\"2\"/>\r\n <polygon points=\"${size * 0.5},${size * 0.25} ${size * 0.75},${size * 0.75} ${size * 0.25},${size * 0.75}\" \r\n fill=\"${red}\"/>\r\n <!-- Beadwork dots -->\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.35}\" r=\"${bead}\" fill=\"${white}\"/>\r\n <circle cx=\"${size * 0.35}\" cy=\"${size * 0.6}\" r=\"${bead}\" fill=\"${green}\"/>\r\n <circle cx=\"${size * 0.65}\" cy=\"${size * 0.6}\" r=\"${bead}\" fill=\"${gold}\"/>\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.8}\" r=\"${bead}\" fill=\"${white}\"/>\r\n <!-- Border dots -->\r\n <circle cx=\"${size * 0.1}\" cy=\"${size * 0.1}\" r=\"${bead * 0.7}\" fill=\"${red}\"/>\r\n <circle cx=\"${size * 0.9}\" cy=\"${size * 0.1}\" r=\"${bead * 0.7}\" fill=\"${green}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Swazi/Eswatini pattern\r\n * Inspired by Ligwalagwala (purple-crested turaco) and royal patterns\r\n * Traditional shields and ceremonial designs\r\n */\r\nexport function generateSwazi({\r\n colors = ['#3E5EB9', '#FECD00', '#B10C0C', '#FFFFFF'],\r\n size = 50\r\n} = {}) {\r\n const [blue, gold, red, white] = colors;\r\n\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${blue}\"/>\r\n <!-- Shield shape (central to Eswatini culture) -->\r\n <ellipse cx=\"${size * 0.5}\" cy=\"${size * 0.45}\" rx=\"${size * 0.35}\" ry=\"${size * 0.4}\" \r\n fill=\"${gold}\" stroke=\"${red}\" stroke-width=\"3\"/>\r\n <!-- Inner pattern -->\r\n <ellipse cx=\"${size * 0.5}\" cy=\"${size * 0.45}\" rx=\"${size * 0.2}\" ry=\"${size * 0.25}\" \r\n fill=\"${red}\"/>\r\n <!-- Feather accents -->\r\n <line x1=\"${size * 0.5}\" y1=\"${size * 0.05}\" x2=\"${size * 0.5}\" y2=\"${size * 0.2}\" \r\n stroke=\"${white}\" stroke-width=\"3\"/>\r\n <line x1=\"${size * 0.4}\" y1=\"${size * 0.08}\" x2=\"${size * 0.45}\" y2=\"${size * 0.15}\" \r\n stroke=\"${white}\" stroke-width=\"2\"/>\r\n <line x1=\"${size * 0.6}\" y1=\"${size * 0.08}\" x2=\"${size * 0.55}\" y2=\"${size * 0.15}\" \r\n stroke=\"${white}\" stroke-width=\"2\"/>\r\n <!-- Spear points -->\r\n <polygon points=\"${size * 0.1},${size * 0.3} ${size * 0.05},${size * 0.5} ${size * 0.15},${size * 0.5}\" fill=\"${white}\"/>\r\n <polygon points=\"${size * 0.9},${size * 0.3} ${size * 0.85},${size * 0.5} ${size * 0.95},${size * 0.5}\" fill=\"${white}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Xhosa pattern (South Africa)\r\n * Inspired by traditional Xhosa beadwork and blanket designs\r\n * Known for bold geometric patterns\r\n */\r\nexport function generateXhosa({\r\n primaryColor = '#FFFFFF',\r\n accentColor = '#00A86B',\r\n backgroundColor = '#1a1a2e',\r\n size = 50\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${backgroundColor}\"/>\r\n <!-- Horizontal bands -->\r\n <rect x=\"0\" y=\"${size * 0.2}\" width=\"${size}\" height=\"${size * 0.1}\" fill=\"${primaryColor}\"/>\r\n <rect x=\"0\" y=\"${size * 0.7}\" width=\"${size}\" height=\"${size * 0.1}\" fill=\"${primaryColor}\"/>\r\n <!-- Vertical bands -->\r\n <rect x=\"${size * 0.2}\" y=\"0\" width=\"${size * 0.1}\" height=\"${size}\" fill=\"${accentColor}\"/>\r\n <rect x=\"${size * 0.7}\" y=\"0\" width=\"${size * 0.1}\" height=\"${size}\" fill=\"${accentColor}\"/>\r\n <!-- Central diamond -->\r\n <polygon points=\"${size * 0.5},${size * 0.35} ${size * 0.65},${size * 0.5} ${size * 0.5},${size * 0.65} ${size * 0.35},${size * 0.5}\" \r\n fill=\"${accentColor}\" stroke=\"${primaryColor}\" stroke-width=\"2\"/>\r\n <!-- Corner triangles -->\r\n <polygon points=\"0,0 ${size * 0.15},0 0,${size * 0.15}\" fill=\"${accentColor}\"/>\r\n <polygon points=\"${size},0 ${size * 0.85},0 ${size},${size * 0.15}\" fill=\"${accentColor}\"/>\r\n <polygon points=\"0,${size} ${size * 0.15},${size} 0,${size * 0.85}\" fill=\"${accentColor}\"/>\r\n <polygon points=\"${size},${size} ${size * 0.85},${size} ${size},${size * 0.85}\" fill=\"${accentColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Apply pattern as background to an element\r\n */\r\nexport function applyPattern(element, patternUrl) {\r\n element.style.backgroundImage = `url(\"${patternUrl}\")`;\r\n element.style.backgroundRepeat = 'repeat';\r\n}\r\n\r\n// ============================================\r\n// NORTH AFRICAN PATTERNS\r\n// ============================================\r\n\r\n/**\r\n * Generate Berber pattern (North Africa)\r\n * Geometric designs inspired by Amazigh rugs and tattoos\r\n * Symbols of protection, fertility, and nature\r\n */\r\nexport function generateBerber({\r\n primaryColor = '#8B0000', // Deep red\r\n secondaryColor = '#000000',\r\n accentColor = '#FFD700',\r\n backgroundColor = '#F5F5DC', // Beige/Wool\r\n size = 60\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${backgroundColor}\"/>\r\n <!-- Lozenge (Diamond) - universal protective symbol -->\r\n <polygon points=\"${size * 0.5},${size * 0.1} ${size * 0.9},${size * 0.5} ${size * 0.5},${size * 0.9} ${size * 0.1},${size * 0.5}\" \r\n fill=\"${primaryColor}\" stroke=\"${secondaryColor}\" stroke-width=\"2\"/>\r\n <!-- Inner geometric details -->\r\n <line x1=\"${size * 0.5}\" y1=\"${size * 0.1}\" x2=\"${size * 0.5}\" y2=\"${size * 0.9}\" stroke=\"${accentColor}\" stroke-width=\"2\"/>\r\n <line x1=\"${size * 0.1}\" y1=\"${size * 0.5}\" x2=\"${size * 0.9}\" y2=\"${size * 0.5}\" stroke=\"${accentColor}\" stroke-width=\"2\"/>\r\n <!-- X symbols (Fibula/Cross) -->\r\n <line x1=\"${size * 0.4}\" y1=\"${size * 0.4}\" x2=\"${size * 0.6}\" y2=\"${size * 0.6}\" stroke=\"${secondaryColor}\" stroke-width=\"2\"/>\r\n <line x1=\"${size * 0.6}\" y1=\"${size * 0.4}\" x2=\"${size * 0.4}\" y2=\"${size * 0.6}\" stroke=\"${secondaryColor}\" stroke-width=\"2\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Adire Oniko (Yoruba Indigo) pattern\r\n * Resist-dyed circles and ripples\r\n * \"Tie and dye\" technique simulation\r\n */\r\nexport function generateAdire({\r\n primaryColor = '#4B0082', // Indigo\r\n secondaryColor = '#8A2BE2', // Light Indigo\r\n accentColor = '#FFFFFF',\r\n size = 50\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${primaryColor}\"/>\r\n <!-- Resist circles (Oniko) -->\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.5}\" r=\"${size * 0.35}\" fill=\"none\" stroke=\"${secondaryColor}\" stroke-width=\"3\"/>\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.5}\" r=\"${size * 0.25}\" fill=\"none\" stroke=\"${accentColor}\" stroke-width=\"2\" stroke-dasharray=\"4 2\"/>\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.5}\" r=\"${size * 0.1}\" fill=\"${accentColor}\" opacity=\"0.8\"/>\r\n <!-- Corner ripples -->\r\n <path d=\"M0,0 Q${size * 0.2},0 ${size * 0.2},${size * 0.2} Q0,${size * 0.2} 0,0\" fill=\"${secondaryColor}\"/>\r\n <path d=\"M${size},${size} Q${size * 0.8},${size} ${size * 0.8},${size * 0.8} Q${size},${size * 0.8} ${size},${size}\" fill=\"${secondaryColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n// Export all generators\r\nexport default {\r\n // East Africa\r\n generatePolygon,\r\n generateShuka,\r\n generateHadzabe,\r\n generateKanga,\r\n generateKangaBorder,\r\n generateKitenge,\r\n generateMasaiShield,\r\n generateTibeb, // Ethiopia\r\n generateImigongo, // Rwanda\r\n // West Africa\r\n generateKente,\r\n generateAdinkra,\r\n generateAsoOke,\r\n generateAnkara,\r\n generateBogolan, // Mali/West\r\n generateAdire, // Nigeria (Indigo)\r\n // Central Africa\r\n generateKuba, // DRC\r\n generateKubaBorder,\r\n // North Africa\r\n generateBerber, // Amazigh\r\n // Southern Africa\r\n generateNdebele,\r\n generateNdebelePaint,\r\n generateZulu,\r\n generateZuluBeads,\r\n generateSwazi,\r\n generateXhosa,\r\n // Utilities\r\n applyPattern,\r\n // Tech Patterns\r\n generateTuareg,\r\n generateGeez,\r\n generateBoli,\r\n generateCircuit,\r\n circuit: generateCircuit\r\n};\r\n\r\n/**\r\n * Generate Tuareg Indigo pattern (Sahara/Berber)\r\n * Inspired by the \"Blue Men of the Sahara\" and their geometric silver jewelry/stars\r\n */\r\nexport function generateTuareg({\r\n primaryColor = '#2D3D6B', // Tuareg Indigo\r\n secondaryColor = '#6B8CC7', // Sky Blue\r\n accentColor = '#FFFFFF', // Silver/White\r\n size = 60\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${primaryColor}\"/>\r\n <!-- Southern Cross / Tuareg Star -->\r\n <path d=\"M${size * 0.5} 0 L${size * 0.6} ${size * 0.4} L${size} ${size * 0.5} L${size * 0.6} ${size * 0.6} L${size * 0.5} ${size} L${size * 0.4} ${size * 0.6} L0 ${size * 0.5} L${size * 0.4} ${size * 0.4} Z\" \r\n fill=\"none\" stroke=\"${accentColor}\" stroke-width=\"2\"/>\r\n <circle cx=\"${size * 0.5}\" cy=\"${size * 0.5}\" r=\"${size * 0.1}\" fill=\"${secondaryColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Ge'ez Script pattern (Ethiopia/Eritrea)\r\n * Abstract calligraphic strokes inspired by one of the world's oldest scripts\r\n */\r\nexport function generateGeez({\r\n inkColor = '#3A2E2C',\r\n parchmentColor = '#F4E4BC',\r\n size = 50\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${parchmentColor}\"/>\r\n <path d=\"M${size * 0.2} ${size * 0.2} L${size * 0.4} ${size * 0.2} M${size * 0.3} ${size * 0.2} L${size * 0.3} ${size * 0.5} Q${size * 0.4} ${size * 0.6} ${size * 0.2} ${size * 0.7}\" \r\n fill=\"none\" stroke=\"${inkColor}\" stroke-width=\"3\" stroke-linecap=\"round\"/>\r\n <path d=\"M${size * 0.6} ${size * 0.3} C${size * 0.8} ${size * 0.3} ${size * 0.8} ${size * 0.6} ${size * 0.6} ${size * 0.6} L${size * 0.8} ${size * 0.8}\" \r\n fill=\"none\" stroke=\"${inkColor}\" stroke-width=\"3\" stroke-linecap=\"round\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\n/**\r\n * Generate Boli pattern (Mali/Bambara)\r\n * Abstract organic shapes inspired by mud-based ritual objects\r\n */\r\nexport function generateBoli({\r\n clayColor = '#4E342E',\r\n earthColor = '#3E2723',\r\n accentColor = '#BCAAA4',\r\n size = 60\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 ${size} ${size}\">\r\n <rect width=\"${size}\" height=\"${size}\" fill=\"${earthColor}\"/>\r\n <path d=\"M${size * 0.2} ${size * 0.5} Q${size * 0.3} ${size * 0.2} ${size * 0.5} ${size * 0.3} T${size * 0.8} ${size * 0.5} Q${size * 0.7} ${size * 0.8} ${size * 0.5} ${size * 0.7} T${size * 0.2} ${size * 0.5}\" \r\n fill=\"${clayColor}\" stroke=\"${accentColor}\" stroke-width=\"2\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n\r\nexport function generateCircuit({\r\n primaryColor = '#334155',\r\n secondaryColor = '#1e293b',\r\n size = 100\r\n} = {}) {\r\n const svg = `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${size}\" height=\"${size}\" viewBox=\"0 0 100 100\">\r\n <rect width=\"100\" height=\"100\" fill=\"${secondaryColor}\"/>\r\n <path d=\"M10 10 H90 V90 H10 Z\" fill=\"none\" stroke=\"${primaryColor}\" stroke-width=\"0.5\" opacity=\"0.3\"/>\r\n <path d=\"M20 20 V50 H50 V80 H80\" fill=\"none\" stroke=\"${primaryColor}\" stroke-width=\"1\"/>\r\n <circle cx=\"20\" cy=\"20\" r=\"2\" fill=\"${primaryColor}\"/>\r\n <circle cx=\"80\" cy=\"80\" r=\"2\" fill=\"${primaryColor}\"/>\r\n <circle cx=\"50\" cy=\"50\" r=\"1.5\" fill=\"${primaryColor}\"/>\r\n </svg>\r\n `;\r\n return `data:image/svg+xml,${encodeURIComponent(svg.trim())}`;\r\n}\r\n",
|
|
8
|
-
"/**\r\n * AfriCode HTML Template Engine\r\n *
|
|
9
|
-
"/**\r\n * AfriCode Base Component\r\n * \r\n * Abstract base class for all AfriCode Web Components.\r\n * Provides common utilities and enforces the Shadow DOM pattern.\r\n * \r\n * @module components/base\r\n */\r\n\r\nimport { html } from '../core/html.js';\r\n\r\n/**\r\n * Base class for AfriCode components\r\n * All components extend this to inherit common functionality\r\n */\r\nexport class AfriCodeComponent extends
|
|
8
|
+
"/**\r\n * AfriCode HTML Template Engine\r\n * Phase 2: Defined Rendering System\r\n *\r\n * @module core/html\r\n */\r\n\r\nexport class RawHtml {\r\n constructor(value) {\r\n this.value = value;\r\n this.__type = 'RawHtml';\r\n Object.freeze(this);\r\n }\r\n\r\n toString() {\r\n return this.value;\r\n }\r\n\r\n valueOf() {\r\n return this.value;\r\n }\r\n}\r\n\r\n// 🔒 Escape unsafe values\r\nfunction escapeHtml(value) {\r\n return String(value)\r\n .replace(/&/g, \"&\")\r\n .replace(/</g, \"<\")\r\n .replace(/>/g, \">\")\r\n .replace(/\"/g, \""\")\r\n .replace(/'/g, \"'\");\r\n}\r\n\r\n// 🧠 Main rendering function\r\nexport const html = (strings, ...values) => {\r\n let result = \"\";\r\n\r\n for (let i = 0; i < strings.length; i++) {\r\n result += strings[i];\r\n\r\n if (i < values.length) {\r\n result += interpolateValue(values[i]);\r\n }\r\n }\r\n\r\n return new RawHtml(result);\r\n};\r\n\r\nexport function Layout({ title = 'AfriCode App', meta = '', stylesheet = '/styles/africanity.css', children } = {}) {\r\n return html`<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n <meta charset=\"UTF-8\">\r\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n <title>${title}</title>\r\n ${meta}\r\n ${stylesheet ? html`<link rel=\"stylesheet\" href=\"${stylesheet}\">` : ''}\r\n <script type=\"module\" src=\"/core/sdk.js\"></script>\r\n</head>\r\n<body>\r\n ${children}\r\n</body>\r\n</html>`;\r\n}\r\n\r\nfunction interpolateValue(value) {\r\n if (value instanceof RawHtml) {\r\n return value.toString();\r\n }\r\n\r\n if (Array.isArray(value)) {\r\n return value.map(interpolateValue).join('');\r\n }\r\n\r\n if (value === null || value === undefined || value === false) {\r\n return '';\r\n }\r\n\r\n if (value === true) {\r\n return 'true';\r\n }\r\n\r\n return escapeHtml(value);\r\n}\r\n",
|
|
9
|
+
"/**\r\n * AfriCode Base Component\r\n * \r\n * Abstract base class for all AfriCode Web Components.\r\n * Provides common utilities and enforces the Shadow DOM pattern.\r\n * \r\n * @module components/base\r\n */\r\n\r\nimport { html } from '../core/html.js';\r\n\r\nconst BaseHTMLElement = globalThis.HTMLElement ?? class {};\r\nconst hasConstructableStylesheets = typeof CSSStyleSheet !== 'undefined';\r\n\r\n/**\r\n * Base class for AfriCode components\r\n * All components extend this to inherit common functionality\r\n */\r\nexport class AfriCodeComponent extends BaseHTMLElement {\r\n constructor() {\r\n super();\r\n this.attachShadow({ mode: 'open' });\r\n \r\n // Native Web Component Error Boundary: intercept child render calls\r\n const originalRender = this.render;\r\n if (originalRender && typeof originalRender === 'function') {\r\n this.render = () => {\r\n try {\r\n originalRender.call(this);\r\n this.removeAttribute('has-error');\r\n } catch (error) {\r\n console.error(`[AfriCode] Rendering error in <${this.localName}>:`, error);\r\n this.setAttribute('has-error', 'true');\r\n this.shadowRoot.innerHTML = `\r\n <style>\r\n .af-local-error {\r\n padding: 1rem;\r\n border: 1px dashed rgba(220, 20, 60, 0.4);\r\n border-radius: 4px;\r\n color: #DC143C;\r\n font-family: 'Inter', system-ui, sans-serif;\r\n font-size: 0.85rem;\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n background: rgba(220, 20, 60, 0.05);\r\n }\r\n </style>\r\n <div class=\"af-local-error\">\r\n <span aria-hidden=\"true\">⚠️</span>\r\n <span>Failed to render</span>\r\n </div>\r\n `;\r\n this.emit('af-component-error', { \r\n component: this.localName, \r\n message: error.message,\r\n stack: error.stack \r\n });\r\n }\r\n };\r\n }\r\n }\r\n\r\n /**\r\n * Component lifecycle - connected to DOM\r\n * Empty base implementation to support super calls in subclasses.\r\n */\r\n connectedCallback() { }\r\n\r\n /**\r\n * Load shared Africanity styles into Shadow DOM\r\n */\r\n // Static cache for Constructable Stylesheets to prevent fetch waterfall\r\n static styleCache = new Map();\r\n\r\n /**\r\n * Global stylesheets injected by adapters (e.g. Tailwind, custom design systems).\r\n * Each entry must be a CSSStyleSheet instance.\r\n * Usage: AfriCodeComponent.injectGlobalSheet(sheet)\r\n * @type {CSSStyleSheet[]}\r\n */\r\n static globalSheets = [];\r\n\r\n /**\r\n * Inject a global CSSStyleSheet into every AfriCode component's Shadow DOM.\r\n * This is the primary integration point for external CSS frameworks like Tailwind.\r\n * @param {CSSStyleSheet} sheet - A Constructable Stylesheet instance\r\n */\r\n static injectGlobalSheet(sheet) {\r\n if (!hasConstructableStylesheets) {\r\n return;\r\n }\r\n\r\n if (!(sheet instanceof CSSStyleSheet)) {\r\n return;\r\n }\r\n if (!AfriCodeComponent.globalSheets.includes(sheet)) {\r\n AfriCodeComponent.globalSheets.push(sheet);\r\n }\r\n }\r\n\r\n /**\r\n * Load shared Africanity styles into Shadow DOM.\r\n * Optimized to fetch only once per session.\r\n * Also adopts any globally injected sheets (e.g. Tailwind utilities).\r\n */\r\n async loadStyles(css = '') {\r\n const styleUrl = '/styles/africanity.css';\r\n if (!this.shadowRoot) {\r\n return;\r\n }\r\n\r\n const canAdoptStyleSheets = hasConstructableStylesheets && 'adoptedStyleSheets' in this.shadowRoot;\r\n const sourceKey = typeof css === 'string' && css.length > 0 ? css : styleUrl;\r\n const stylesheetText = typeof css === 'string' && css.length > 0 ? css : null;\r\n\r\n // 1. Check cache first\r\n if (AfriCodeComponent.styleCache.has(sourceKey)) {\r\n const cached = AfriCodeComponent.styleCache.get(sourceKey);\r\n if (canAdoptStyleSheets) {\r\n this.shadowRoot.adoptedStyleSheets = [\r\n cached,\r\n ...AfriCodeComponent.globalSheets\r\n ];\r\n } else {\r\n this._applyFallbackStyle(cached?.cssText || cached?.text || cached || '');\r\n }\r\n return;\r\n }\r\n\r\n // 2. Fetch if not cached (Single Request)\r\n try {\r\n let resolvedCss = stylesheetText;\r\n\r\n if (!resolvedCss) {\r\n const response = await fetch(styleUrl);\r\n if (!response.ok) {\r\n throw new Error(`Unable to load stylesheet: ${response.status}`);\r\n }\r\n resolvedCss = await response.text();\r\n }\r\n\r\n if (canAdoptStyleSheets) {\r\n const styleSheet = new CSSStyleSheet();\r\n styleSheet.replaceSync(resolvedCss);\r\n\r\n // Cache it\r\n AfriCodeComponent.styleCache.set(sourceKey, styleSheet);\r\n\r\n // Apply core + any global sheets\r\n this.shadowRoot.adoptedStyleSheets = [\r\n styleSheet,\r\n ...AfriCodeComponent.globalSheets\r\n ];\r\n return;\r\n }\r\n\r\n this._applyFallbackStyle(resolvedCss);\r\n AfriCodeComponent.styleCache.set(sourceKey, { text: resolvedCss });\r\n } catch (err) {\r\n this._applyFallbackStyle(stylesheetText || '');\r\n }\r\n }\r\n\r\n _applyFallbackStyle(css) {\r\n if (!this.shadowRoot) {\r\n return;\r\n }\r\n\r\n let style = this.shadowRoot.querySelector('style[data-africode-core-styles]');\r\n if (!style) {\r\n style = document.createElement('style');\r\n style.setAttribute('data-africode-core-styles', '');\r\n this.shadowRoot.prepend(style);\r\n }\r\n\r\n style.textContent = css;\r\n }\r\n\r\n /**\r\n * Get Fibonacci spacing value\r\n * @param {number} index - Fibonacci sequence index (1,2,3,5,8,13,21,34,55)\r\n * @returns {string} CSS variable reference\r\n */\r\n spacing(index) {\r\n return `var(--space-${index})`;\r\n }\r\n\r\n /**\r\n * Create element with classes and attributes\r\n * @param {string} tag - HTML tag name\r\n * @param {Object} options - Element options\r\n * @returns {HTMLElement}\r\n */\r\n createElement(tag, { classes = [], attributes = {}, text = '' } = {}) {\r\n const el = document.createElement(tag);\r\n if (classes.length) {el.classList.add(...classes);}\r\n Object.entries(attributes).forEach(([key, value]) => el.setAttribute(key, value));\r\n if (text) {el.textContent = text;}\r\n return el;\r\n }\r\n\r\n\r\n /**\r\n * Emit a custom event\r\n * @param {string} name - Event name\r\n * @param {*} detail - Event detail data\r\n */\r\n emit(name, detail) {\r\n this.dispatchEvent(new CustomEvent(name, {\r\n detail,\r\n bubbles: true,\r\n composed: true\r\n }));\r\n }\r\n}\r\n\r\n/**\r\n * Register a component with the Custom Elements registry\r\n * @param {string} name - Component tag name (must include hyphen)\r\n * @param {typeof HTMLElement} component - Component class\r\n */\r\nexport function registerComponent(name, component) {\r\n if (typeof customElements === 'undefined') {\r\n return;\r\n }\r\n\r\n if (!customElements.get(name)) {\r\n customElements.define(name, component);\r\n }\r\n}\r\n\r\nexport { html };\r\nexport default { AfriCodeComponent, registerComponent, html };\r\n",
|
|
10
10
|
"/**\r\n * AfriCode Button Component\r\n * \r\n * Versatile button with multiple variants, sizes, and cultural themes.\r\n * Suitable for: E-commerce, Healthcare, Education, Finance, Government\r\n * \r\n * @module components/button\r\n */\r\n\r\nimport { AfriCodeComponent, registerComponent } from './base.js';\r\n\r\nexport class AfriButton extends AfriCodeComponent {\r\n static get observedAttributes() {\r\n return ['variant', 'size', 'theme', 'disabled', 'loading', 'icon', 'aria-label'];\r\n }\r\n\r\n constructor() {\r\n super();\r\n this.render();\r\n }\r\n\r\n connectedCallback() {\r\n const button = this.shadowRoot.querySelector('button');\r\n button?.addEventListener('click', (e) => {\r\n if (this.hasAttribute('disabled') || this.hasAttribute('loading')) {\r\n e.preventDefault();\r\n return;\r\n }\r\n this.emit('af-click', { originalEvent: e });\r\n });\r\n }\r\n\r\n attributeChangedCallback() {\r\n this.render();\r\n }\r\n\r\n render() {\r\n const variant = this.getAttribute('variant') || 'primary';\r\n const size = this.getAttribute('size') || 'md';\r\n const theme = this.getAttribute('theme') || 'tanzania';\r\n const isDisabled = this.hasAttribute('disabled');\r\n const isLoading = this.hasAttribute('loading');\r\n const icon = this.getAttribute('icon');\r\n const ariaLabel = this.getAttribute('aria-label');\r\n\r\n const themes = {\r\n tanzania: { primary: '#1EB53A', accent: '#FCD116', text: '#FFFFFF' },\r\n maasai: { primary: '#FF0000', accent: '#8B0000', text: '#FFFFFF' },\r\n ndebele: { primary: '#4169E1', accent: '#FFD700', text: '#FFFFFF' },\r\n ocean: { primary: '#00A3DD', accent: '#0077BE', text: '#FFFFFF' }\r\n };\r\n\r\n const t = themes[theme] || themes.tanzania;\r\n\r\n this.shadowRoot.innerHTML = `\r\n <style>\r\n :host {\r\n display: inline-block;\r\n }\r\n\r\n button {\r\n font-family: 'Inter', system-ui, sans-serif;\r\n font-weight: 600;\r\n border: none;\r\n border-radius: 5px;\r\n cursor: pointer;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 8px;\r\n transition: all 200ms ease-out;\r\n position: relative;\r\n overflow: hidden;\r\n }\r\n\r\n /* Sizes */\r\n .size-sm { padding: 5px 13px; font-size: 13px; }\r\n .size-md { padding: 8px 21px; font-size: 15px; }\r\n .size-lg { padding: 13px 34px; font-size: 17px; }\r\n\r\n /* Variants */\r\n .variant-primary {\r\n background: ${t.primary};\r\n color: ${t.text};\r\n }\r\n .variant-primary:hover:not(:disabled) {\r\n filter: brightness(1.1);\r\n transform: translateY(-2px);\r\n box-shadow: 0 4px 12px rgba(0,0,0,0.2);\r\n }\r\n\r\n .variant-secondary {\r\n background: transparent;\r\n color: ${t.primary};\r\n border: 2px solid ${t.primary};\r\n }\r\n .variant-secondary:hover:not(:disabled) {\r\n background: ${t.primary};\r\n color: ${t.text};\r\n }\r\n\r\n .variant-ghost {\r\n background: transparent;\r\n color: ${t.primary};\r\n }\r\n .variant-ghost:hover:not(:disabled) {\r\n background: rgba(0,0,0,0.05);\r\n }\r\n\r\n .variant-gradient {\r\n background: linear-gradient(135deg, ${t.primary} 0%, ${t.accent} 100%);\r\n color: ${t.text};\r\n }\r\n .variant-gradient:hover:not(:disabled) {\r\n transform: translateY(-2px);\r\n box-shadow: 0 6px 20px rgba(0,0,0,0.25);\r\n }\r\n\r\n /* States */\r\n button:disabled {\r\n opacity: 0.5;\r\n cursor: not-allowed;\r\n }\r\n\r\n button:active:not(:disabled) {\r\n transform: translateY(0);\r\n }\r\n\r\n /* Loading spinner */\r\n .spinner {\r\n width: 16px;\r\n height: 16px;\r\n border: 2px solid transparent;\r\n border-top-color: currentColor;\r\n border-radius: 50%;\r\n animation: spin 0.8s linear infinite;\r\n }\r\n\r\n @keyframes spin {\r\n to { transform: rotate(360deg); }\r\n }\r\n\r\n /* Icon */\r\n .icon {\r\n font-size: 1.1em;\r\n }\r\n </style>\r\n\r\n <button \r\n class=\"variant-${variant} size-${size}\"\r\n ${isDisabled ? 'disabled' : ''}\r\n ${ariaLabel ? `aria-label=\"${ariaLabel}\"` : ''}\r\n ${isLoading ? 'aria-busy=\"true\"' : ''}\r\n >\r\n ${isLoading ? '<span class=\"spinner\"></span>' : ''}\r\n ${icon && !isLoading ? `<span class=\"icon\">${icon}</span>` : ''}\r\n <slot></slot>\r\n </button>\r\n `;\r\n }\r\n}\r\n\r\nregisterComponent('af-button', AfriButton);\r\nexport default AfriButton;\r\n",
|
|
11
11
|
"/**\r\n * AfriCode Simple Card Component\r\n * \r\n * Versatile content card for various use cases.\r\n * Suitable for: Product cards, Blog posts, Team members, Stats\r\n * \r\n * @module components/card\r\n */\r\n\r\nimport { AfriCodeComponent, registerComponent } from './base.js';\r\n\r\nexport class AfriCard extends AfriCodeComponent {\r\n static get observedAttributes() {\r\n return ['theme', 'variant', 'clickable', 'image'];\r\n }\r\n\r\n constructor() {\r\n super();\r\n this.render();\r\n }\r\n\r\n connectedCallback() {\r\n if (this.hasAttribute('clickable')) {\r\n this.shadowRoot.querySelector('.card').addEventListener('click', () => {\r\n this.emit('af-click');\r\n });\r\n }\r\n }\r\n\r\n attributeChangedCallback() {\r\n this.render();\r\n }\r\n\r\n render() {\r\n const theme = this.getAttribute('theme') || 'default';\r\n const variant = this.getAttribute('variant') || 'elevated';\r\n const clickable = this.hasAttribute('clickable');\r\n const image = this.getAttribute('image');\r\n\r\n const themes = {\r\n default: { accent: '#333', border: '#eee' },\r\n tanzania: { accent: '#1EB53A', border: '#1EB53A' },\r\n maasai: { accent: '#FF0000', border: '#8B0000' },\r\n ndebele: { accent: '#4169E1', border: '#4169E1' }\r\n };\r\n const t = themes[theme] || themes.default;\r\n\r\n const variants = {\r\n elevated: 'box-shadow: 0 2px 12px rgba(0,0,0,0.1);',\r\n outlined: `border: 2px solid ${t.border};`,\r\n flat: 'background: #f8f9fa;'\r\n };\r\n\r\n this.shadowRoot.innerHTML = html`\r\n <style>\r\n :host {\r\n display: block;\r\n font-family: var(--font-body, 'Inter', sans-serif);\r\n }\r\n\r\n .card {\r\n background: var(--glass-bg, rgba(15, 23, 42, 0.7));\r\n backdrop-filter: blur(var(--glass-blur, 12px));\r\n border: 1px solid var(--glass-border, rgba(255, 255, 255, 0.1));\r\n border-radius: var(--radius-lg, 16px);\r\n overflow: hidden;\r\n transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n position: relative;\r\n ${clickable ? 'cursor: pointer;' : ''}\r\n }\r\n\r\n .card::before {\r\n content: '';\r\n position: absolute;\r\n inset: 0;\r\n background: radial-gradient(circle at top left, rgba(255,255,255,0.05), transparent);\r\n pointer-events: none;\r\n }\r\n\r\n ${clickable ? `\r\n .card:hover {\r\n transform: translateY(-8px);\r\n border-color: rgba(252, 209, 22, 0.4);\r\n box-shadow: 0 20px 40px rgba(0,0,0,0.4);\r\n }\r\n ` : ''}\r\n\r\n .card-image {\r\n width: 100%;\r\n height: 200px;\r\n object-fit: cover;\r\n border-bottom: 1px solid var(--glass-border);\r\n }\r\n\r\n .card-body {\r\n padding: 32px;\r\n }\r\n\r\n ::slotted(h1), ::slotted(h2), ::slotted(h3), ::slotted(h4) {\r\n margin: 0 0 12px 0;\r\n font-family: 'Outfit', sans-serif;\r\n font-weight: 700;\r\n color: var(--text-primary, #fff);\r\n letter-spacing: -0.02em;\r\n }\r\n\r\n ::slotted(p) {\r\n margin: 0;\r\n color: var(--text-muted, #94a3b8);\r\n line-height: 1.6;\r\n font-size: 0.95rem;\r\n }\r\n\r\n .card-footer {\r\n padding: 20px 32px;\r\n background: rgba(0,0,0,0.2);\r\n border-top: 1px solid var(--glass-border);\r\n }\r\n </style>\r\n\r\n <article class=\"card\">\r\n ${image ? `<img class=\"card-image\" src=\"${image}\" alt=\"\" />` : ''}\r\n <div class=\"card-body\">\r\n <slot></slot>\r\n </div>\r\n ${this.querySelector('[slot=\"footer\"]') ? `\r\n <div class=\"card-footer\">\r\n <slot name=\"footer\"></slot>\r\n </div>\r\n ` : ''}\r\n </article>\r\n `;\r\n }\r\n}\r\n\r\nregisterComponent('af-card', AfriCard);\r\nexport default AfriCard;\r\n",
|
|
12
12
|
"/**\r\n * AfriCode Navigation Bar Component\r\n * \r\n * Responsive navigation with logo, links, and mobile menu.\r\n * Suitable for: All websites and web applications\r\n * \r\n * @module components/navbar\r\n */\r\n\r\nimport { AfriCodeComponent, registerComponent } from './base.js';\r\nimport { store } from '../core/store.js';\r\nimport { subscribe } from '../core/state.js';\r\n\r\nexport class AfriNavbar extends AfriCodeComponent {\r\n static get observedAttributes() {\r\n return ['theme', 'logo', 'sticky'];\r\n }\r\n\r\n constructor() {\r\n super();\r\n this._isOpen = false;\r\n this._unsubscribe = null;\r\n this.render();\r\n }\r\n\r\n connectedCallback() {\r\n super.connectedCallback();\r\n\r\n // Mobile toggle\r\n this.shadowRoot.querySelector('.menu-toggle')?.addEventListener('click', () => {\r\n this._isOpen = !this._isOpen;\r\n const navLinks = this.shadowRoot.querySelector('.nav-links');\r\n const toggle = this.shadowRoot.querySelector('.menu-toggle');\r\n if (navLinks) {navLinks.classList.toggle('open', this._isOpen);}\r\n if (toggle) {\r\n toggle.classList.toggle('open', this._isOpen);\r\n toggle.setAttribute('aria-expanded', String(this._isOpen));\r\n }\r\n });\r\n }\r\n\r\n disconnectedCallback() {\r\n if (this._unsubscribe) {this._unsubscribe();}\r\n }\r\n\r\n attributeChangedCallback() {\r\n this.render();\r\n }\r\n\r\n render() {\r\n const theme = this.getAttribute('theme') || 'dark';\r\n const logo = this.getAttribute('logo') || 'AfriCode';\r\n const sticky = this.hasAttribute('sticky');\r\n\r\n this.shadowRoot.innerHTML = `\r\n <style>\r\n :host {\r\n display: block;\r\n --nav-height: 80px;\r\n }\r\n\r\n nav {\r\n height: var(--nav-height);\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n padding-inline: 5%;\r\n background: var(--glass-bg);\r\n backdrop-filter: blur(12px);\r\n -webkit-backdrop-filter: blur(12px);\r\n border-bottom: 1px solid var(--glass-border);\r\n position: fixed;\r\n top: 0;\r\n inset-inline: 0;\r\n z-index: 1000;\r\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\r\n }\r\n\r\n .logo-container {\r\n display: flex;\r\n align-items: center;\r\n gap: 12px;\r\n text-decoration: none;\r\n z-index: 1002;\r\n }\r\n\r\n .logo-mark {\r\n width: 32px;\r\n height: 32px;\r\n background: linear-gradient(135deg, var(--afri-green, #1eb53a), var(--afri-gold, #fcd116));\r\n border-radius: 8px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n font-weight: 900;\r\n color: black;\r\n font-size: 1rem;\r\n }\r\n\r\n .logo-text {\r\n font-family: 'Outfit', 'Space Grotesk', sans-serif;\r\n font-size: 1.5rem;\r\n font-weight: 800;\r\n color: var(--text-primary);\r\n letter-spacing: -0.02em;\r\n }\r\n\r\n .nav-links {\r\n display: flex;\r\n gap: 32px;\r\n align-items: center;\r\n list-style: none;\r\n margin: 0;\r\n padding: 0;\r\n }\r\n\r\n .nav-links ::slotted(a) {\r\n color: var(--text-muted);\r\n text-decoration: none;\r\n font-size: 0.95rem;\r\n font-weight: 500;\r\n transition: all 0.2s ease;\r\n position: relative;\r\n padding: 8px 0;\r\n }\r\n\r\n .nav-links ::slotted(a:hover),\r\n .nav-links ::slotted(a.active) {\r\n color: var(--text-primary);\r\n }\r\n\r\n .nav-links ::slotted(a)::after {\r\n content: '';\r\n position: absolute;\r\n bottom: 0;\r\n left: 50%;\r\n width: 0;\r\n height: 2px;\r\n background: var(--afri-gold, #fcd116);\r\n transition: all 0.3s ease;\r\n transform: translateX(-50%);\r\n }\r\n\r\n .nav-links ::slotted(a:hover)::after,\r\n .nav-links ::slotted(a.active)::after {\r\n width: 100%;\r\n }\r\n\r\n /* Mobile Toggle */\r\n .menu-toggle {\r\n display: none;\r\n flex-direction: column;\r\n gap: 6px;\r\n background: none;\r\n border: none;\r\n cursor: pointer;\r\n z-index: 1002;\r\n padding: 8px;\r\n }\r\n\r\n .menu-toggle span {\r\n width: 24px;\r\n height: 2px;\r\n background: var(--text-primary);\r\n border-radius: 2px;\r\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\r\n }\r\n\r\n /* Mobile State */\r\n .menu-toggle.open span:nth-child(1) { transform: translateY(8px) rotate(45deg); }\r\n .menu-toggle.open span:nth-child(2) { opacity: 0; transform: translateX(-10px); }\r\n .menu-toggle.open span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }\r\n\r\n @media (max-width: 768px) {\r\n .menu-toggle {\r\n display: flex;\r\n }\r\n\r\n .nav-links {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100vh;\r\n background: var(--bg-base, #020617);\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n gap: 24px;\r\n opacity: 0;\r\n visibility: hidden;\r\n transform: translateY(-20px);\r\n transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);\r\n z-index: 1001;\r\n }\r\n\r\n .nav-links.open {\r\n opacity: 1;\r\n visibility: visible;\r\n transform: translateY(0);\r\n }\r\n\r\n .nav-links ::slotted(a) {\r\n font-size: 1.5rem;\r\n font-weight: 700;\r\n }\r\n }\r\n </style>\r\n\r\n <nav>\r\n <a href=\"/\" class=\"logo-container\">\r\n <div class=\"logo-mark\">A</div>\r\n <span class=\"logo-text\">${logo}</span>\r\n </a>\r\n\r\n <button\r\n class=\"menu-toggle\"\r\n aria-label=\"Toggle menu\"\r\n aria-controls=\"nav-links\"\r\n aria-expanded=\"${this._isOpen}\"\r\n >\r\n <span></span>\r\n <span></span>\r\n <span></span>\r\n </button>\r\n\r\n <div id=\"nav-links\" class=\"nav-links ${this._isOpen ? 'open' : ''}\">\r\n <slot></slot>\r\n </div>\r\n </nav>\r\n `;\r\n }\r\n}\r\n\r\nregisterComponent('af-navbar', AfriNavbar);\r\nexport default AfriNavbar;\r\n",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"import { ZodError, ZodIssueCode, } from \"./ZodError.js\";\nimport { defaultErrorMap, getErrorMap } from \"./errors.js\";\nimport { errorUtil } from \"./helpers/errorUtil.js\";\nimport { DIRTY, INVALID, OK, ParseStatus, addIssueToContext, isAborted, isAsync, isDirty, isValid, makeIssue, } from \"./helpers/parseUtil.js\";\nimport { util, ZodParsedType, getParsedType } from \"./helpers/util.js\";\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (Array.isArray(this._key)) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message ?? ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: message ?? required_error ?? ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: message ?? invalid_type_error ?? ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nexport class ZodType {\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n const ctx = {\n common: {\n issues: [],\n async: params?.async ?? false,\n contextualErrorMap: params?.errorMap,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n \"~validate\"(data) {\n const ctx = {\n common: {\n issues: [],\n async: !!this[\"~standard\"].async,\n },\n path: [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n if (!this[\"~standard\"].async) {\n try {\n const result = this._parseSync({ data, path: [], parent: ctx });\n return isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n };\n }\n catch (err) {\n if (err?.message?.toLowerCase()?.includes(\"encountered\")) {\n this[\"~standard\"].async = true;\n }\n ctx.common = {\n issues: [],\n async: true,\n };\n }\n }\n return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n });\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params?.errorMap,\n async: true,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\" ? refinementData(val, ctx) : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n this[\"~standard\"] = {\n version: 1,\n vendor: \"zod\",\n validate: (data) => this[\"~validate\"](data),\n };\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst jwtRegex = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\nconst durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nconst ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/;\n// const ipv6Regex =\n// /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\nconst ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\nconst ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// https://base64.guru/standards/base64url\nconst base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n let secondsRegexSource = `[0-5]\\\\d`;\n if (args.precision) {\n secondsRegexSource = `${secondsRegexSource}\\\\.\\\\d{${args.precision}}`;\n }\n else if (args.precision == null) {\n secondsRegexSource = `${secondsRegexSource}(\\\\.\\\\d+)?`;\n }\n const secondsQuantifier = args.precision ? \"+\" : \"?\"; // require seconds if precision is nonzero\n return `([01]\\\\d|2[0-3]):[0-5]\\\\d(:${secondsRegexSource})${secondsQuantifier}`;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetimeRegex(args) {\n let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nfunction isValidJWT(jwt, alg) {\n if (!jwtRegex.test(jwt))\n return false;\n try {\n const [header] = jwt.split(\".\");\n if (!header)\n return false;\n // Convert base64url to base64\n const base64 = header\n .replace(/-/g, \"+\")\n .replace(/_/g, \"/\")\n .padEnd(header.length + ((4 - (header.length % 4)) % 4), \"=\");\n const decoded = JSON.parse(atob(base64));\n if (typeof decoded !== \"object\" || decoded === null)\n return false;\n if (\"typ\" in decoded && decoded?.typ !== \"JWT\")\n return false;\n if (!decoded.alg)\n return false;\n if (alg && decoded.alg !== alg)\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nfunction isValidCidr(ip, version) {\n if ((version === \"v4\" || !version) && ipv4CidrRegex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6CidrRegex.test(ip)) {\n return true;\n }\n return false;\n}\nexport class ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"nanoid\") {\n if (!nanoidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"nanoid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"date\") {\n const regex = dateRegex;\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"date\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"time\") {\n const regex = timeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"time\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"duration\") {\n if (!durationRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"duration\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"jwt\") {\n if (!isValidJWT(input.data, check.alg)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"jwt\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cidr\") {\n if (!isValidCidr(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cidr\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64\") {\n if (!base64Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64url\") {\n if (!base64urlRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil.errToObj(message) });\n }\n base64url(message) {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return this._addCheck({\n kind: \"base64url\",\n ...errorUtil.errToObj(message),\n });\n }\n jwt(options) {\n return this._addCheck({ kind: \"jwt\", ...errorUtil.errToObj(options) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n cidr(options) {\n return this._addCheck({ kind: \"cidr\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n local: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n offset: options?.offset ?? false,\n local: options?.local ?? false,\n ...errorUtil.errToObj(options?.message),\n });\n }\n date(message) {\n return this._addCheck({ kind: \"date\", message });\n }\n time(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"time\",\n precision: null,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"time\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n ...errorUtil.errToObj(options?.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options?.position,\n ...errorUtil.errToObj(options?.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * Equivalent to `.min(1)`\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isCIDR() {\n return !!this._def.checks.find((ch) => ch.kind === \"cidr\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get isBase64url() {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return !!this._def.checks.find((ch) => ch.kind === \"base64url\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nexport class ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" || (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null;\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" || ch.kind === \"int\" || ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n try {\n input.data = BigInt(input.data);\n }\n catch {\n return this._getInvalidInput(input);\n }\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n return this._getInvalidInput(input);\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _getInvalidInput(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (Number.isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: params?.coerce || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nexport class ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nexport class ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nexport class ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nexport class ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nexport class ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nexport class ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nexport class ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nexport class ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<T, Augmentation>,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n this._cached = { shape, keys };\n return this._cached;\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") {\n }\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n const defaultError = this._def.errorMap?.(issue, ctx).message ?? ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: errorUtil.errToObj(message).message ?? defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // <Def extends ZodObjectDef>(def: Def) =>\n // <Augmentation extends ZodRawShape>(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<ReturnType<Def[\"shape\"]>, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge<Incoming extends AnyZodObject>(\n // merging: Incoming\n // ): //ZodObject<T & Incoming[\"_shape\"], UnknownKeys, Catchall> = (merging) => {\n // ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n for (const key of util.objectKeys(mask)) {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return util.objectValues(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else if (type instanceof ZodOptional) {\n return [undefined, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodNullable) {\n return [null, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodBranded) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodReadonly) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodCatch) {\n return getDiscriminator(type._def.innerType);\n }\n else {\n return [];\n }\n};\nexport class ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues.length) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nexport class ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\n// type ZodTupleItems = [ZodTypeAny, ...ZodTypeAny[]];\nexport class ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nexport class ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nexport class ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nexport class ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nexport class ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(async function (...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args ? args : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nexport class ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nexport class ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nexport class ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(this._def.values);\n }\n if (!this._cache.has(input.data)) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values, newDef = this._def) {\n return ZodEnum.create(values, {\n ...this._def,\n ...newDef,\n });\n }\n exclude(values, newDef = this._def) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n ...this._def,\n ...newDef,\n });\n }\n}\nZodEnum.create = createZodEnum;\nexport class ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(util.getValidEnumValues(this._def.values));\n }\n if (!this._cache.has(input.data)) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nexport class ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nexport class ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(processed).then(async (processed) => {\n if (status.value === \"aborted\")\n return INVALID;\n const result = await this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return INVALID;\n const result = this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return INVALID;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {\n if (!isValid(base))\n return INVALID;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({\n status: status.value,\n value: result,\n }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nexport { ZodEffects as ZodTransformer };\nexport class ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nexport class ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nexport class ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\" ? params.default : () => params.default,\n ...processCreateParams(params),\n });\n};\nexport class ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nexport class ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nexport const BRAND = Symbol(\"zod_brand\");\nexport class ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nexport class ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nexport class ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if (isValid(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\n////////////////////////////////////////\n////////////////////////////////////////\n////////// //////////\n////////// z.custom //////////\n////////// //////////\n////////////////////////////////////////\n////////////////////////////////////////\nfunction cleanParams(params, data) {\n const p = typeof params === \"function\" ? params(data) : typeof params === \"string\" ? { message: params } : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n return p2;\n}\nexport function custom(check, _params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n const r = check(data);\n if (r instanceof Promise) {\n return r.then((r) => {\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n });\n }\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n return;\n });\n return ZodAny.create();\n}\nexport { ZodType as Schema, ZodType as ZodSchema };\nexport const late = {\n object: ZodObject.lazycreate,\n};\nexport var ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n// requires TS 4.4+\nclass Class {\n constructor(..._) { }\n}\nconst instanceOfType = (\n// const instanceOfType = <T extends new (...args: any[]) => any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nexport const coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nexport { anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, dateType as date, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, instanceOfType as instanceof, intersectionType as intersection, lazyType as lazy, literalType as literal, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, recordType as record, setType as set, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, voidType as void, };\nexport const NEVER = INVALID;\n",
|
|
20
20
|
"export * from \"./errors.js\";\nexport * from \"./helpers/parseUtil.js\";\nexport * from \"./helpers/typeAliases.js\";\nexport * from \"./helpers/util.js\";\nexport * from \"./types.js\";\nexport * from \"./ZodError.js\";\n",
|
|
21
21
|
"import * as z from \"./v3/external.js\";\nexport * from \"./v3/external.js\";\nexport { z };\nexport default z;\n",
|
|
22
|
-
"/**\r\n * AfriCode Framework Configuration\r\n *\r\n * Centralized configuration for the entire framework.\r\n * Provides createFramework() as the entry point for apps.\r\n *\r\n * Design:\r\n * - Single config object controls all framework behavior\r\n * - Defaults are strict and secure\r\n * - Every opt-in behavior is explicit\r\n * - Observability hooks are first-class\r\n *\r\n * @module core/config\r\n */\r\n\r\n/**\r\n * @typedef {Object} AfriCodeConfig\r\n *\r\n * @property {Object} [validation] - Validation configuration\r\n * @property {boolean} [validation.trimStrings=false] - Trim whitespace from string inputs\r\n * @property {boolean} [validation.emptyAsNullDefault=false] - Convert \"\" → null for nullable fields (NOT recommended)\r\n *\r\n * @property {Object} [security] - Security configuration\r\n * @property {Object} [security.csrf] - CSRF configuration\r\n * @property {boolean} [security.csrf.enabled=true] - Enable CSRF protection\r\n * @property {string[]} [security.csrf.excludePaths=[]] - Paths to exclude from CSRF\r\n * @property {string} [security.csrf.sameSite='Strict'] - SameSite cookie policy\r\n * @property {boolean} [security.csrf.secure=false] - Require HTTPS for cookies\r\n * @property {Object} [security.rateLimit] - Rate limit configuration\r\n * @property {boolean} [security.rateLimit.enabled=true] - Enable rate limiting\r\n * @property {number} [security.rateLimit.windowMs=60000] - Window in milliseconds\r\n * @property {number} [security.rateLimit.maxRequests=60] - Max requests per window\r\n * @property {string[]} [security.rateLimit.excludePaths=[]] - Paths to exclude\r\n *\r\n * @property {Object} [hooks] - Observability hooks\r\n * @property {Function} [hooks.onValidationError] - Called on validation failure\r\n * @property {Function} [hooks.onSecurityViolation] - Called on CSRF/security failure\r\n * @property {Function} [hooks.onRateLimit] - Called when rate limit is hit\r\n * @property {Function} [hooks.onDatabaseError] - Called on database error\r\n * @property {Function} [hooks.onRequest] - Called on every incoming request\r\n */\r\n\r\n/**\r\n * Default configuration values.\r\n * Strict by default. Secure by default.\r\n */\r\nconst DEFAULT_CONFIG = {\r\n validation: {\r\n trimStrings: false,\r\n emptyAsNullDefault: false\r\n },\r\n security: {\r\n csrf: {\r\n enabled: true,\r\n excludePaths: [],\r\n sameSite: 'Strict',\r\n secure: false\r\n },\r\n rateLimit: {\r\n enabled: true,\r\n windowMs: 60 * 1000,\r\n maxRequests: 60,\r\n excludePaths: []\r\n }\r\n },\r\n hooks: {\r\n onValidationError: null,\r\n onSecurityViolation: null,\r\n onRateLimit: null,\r\n onDatabaseError: null,\r\n onRequest: null\r\n }\r\n};\r\n\r\n/** @type {AfriCodeConfig} */\r\nlet _config = deepClone(DEFAULT_CONFIG);\r\n\r\n/** @type {boolean} */\r\nlet _initialized = false;\r\n\r\n/**\r\n * Deep clone a plain object.\r\n * @param {Object} obj\r\n * @returns {Object}\r\n */\r\nfunction deepClone(obj) {\r\n if (obj === null || typeof obj !== 'object') {return obj;}\r\n if (Array.isArray(obj)) {return obj.map(deepClone);}\r\n const cloned = {};\r\n for (const key of Object.keys(obj)) {\r\n cloned[key] = deepClone(obj[key]);\r\n }\r\n return cloned;\r\n}\r\n\r\n/**\r\n * Deep merge source into target.\r\n * @param {Object} target\r\n * @param {Object} source\r\n * @returns {Object}\r\n */\r\nfunction deepMerge(target, source) {\r\n const result = { ...target };\r\n for (const key of Object.keys(source)) {\r\n if (\r\n source[key] !== null &&\r\n typeof source[key] === 'object' &&\r\n !Array.isArray(source[key]) &&\r\n typeof target[key] === 'object' &&\r\n !Array.isArray(target[key])\r\n ) {\r\n result[key] = deepMerge(target[key] || {}, source[key]);\r\n } else {\r\n result[key] = source[key];\r\n }\r\n }\r\n return result;\r\n}\r\n\r\n/**\r\n * Initialize the AfriCode framework with configuration.\r\n *\r\n * This is the single entry point for framework configuration.\r\n * Call once at app startup. All systems read from this config.\r\n *\r\n * @param {Partial<AfriCodeConfig>} [userConfig={}] - User overrides\r\n * @returns {AfriCodeConfig} The resolved configuration\r\n *\r\n * @example\r\n * import { createFramework } from 'africode/core/config';\r\n *\r\n * createFramework({\r\n * validation: {\r\n * trimStrings: true\r\n * },\r\n * security: {\r\n * csrf: { enabled: true, secure: true },\r\n * rateLimit: { maxRequests: 100 }\r\n * },\r\n * hooks: {\r\n * onValidationError: (error) => logger.warn('Validation:', error),\r\n * onSecurityViolation: (error) => logger.error('Security:', error),\r\n * onRateLimit: (key) => metrics.increment('rate_limit_hit')\r\n * }\r\n * });\r\n */\r\nexport function createFramework(userConfig = {}) {\r\n _config = deepMerge(DEFAULT_CONFIG, userConfig);\r\n _initialized = true;\r\n return getConfig();\r\n}\r\n\r\n/**\r\n * Get the current framework configuration.\r\n * Returns a frozen copy to prevent accidental mutation.\r\n *\r\n * @returns {AfriCodeConfig}\r\n */\r\nexport function getConfig() {\r\n return Object.freeze(deepClone(_config));\r\n}\r\n\r\n/**\r\n * Check if the framework has been initialized.\r\n * @returns {boolean}\r\n */\r\nexport function isInitialized() {\r\n return _initialized;\r\n}\r\n\r\n/**\r\n * Reset configuration to defaults.\r\n * Primarily for testing.\r\n */\r\nexport function resetConfig() {\r\n _config = deepClone(DEFAULT_CONFIG);\r\n _initialized = false;\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────\r\n// Observability Hooks — fire-and-forget event emitters\r\n//\r\n// These are framework-level hooks for monitoring and logging.\r\n// They never throw — errors in hooks are caught and logged.\r\n// ─────────────────────────────────────────────────────────────\r\n\r\n/**\r\n * Emit a validation error event.\r\n * @param {import('./errors.js').ValidationError} error\r\n */\r\nexport function emitValidationError(error) {\r\n const hook = _config.hooks?.onValidationError;\r\n if (typeof hook === 'function') {\r\n try { hook(error); } catch (e) {\r\n
|
|
22
|
+
"/**\r\n * AfriCode Framework Configuration\r\n *\r\n * Centralized configuration for the entire framework.\r\n * Provides createFramework() as the entry point for apps.\r\n *\r\n * Design:\r\n * - Single config object controls all framework behavior\r\n * - Defaults are strict and secure\r\n * - Every opt-in behavior is explicit\r\n * - Observability hooks are first-class\r\n *\r\n * @module core/config\r\n */\r\n\r\nimport { frameworkLog } from './logging.js';\r\n\r\n/**\r\n * @typedef {Object} AfriCodeConfig\r\n *\r\n * @property {Object} [validation] - Validation configuration\r\n * @property {boolean} [validation.trimStrings=false] - Trim whitespace from string inputs\r\n * @property {boolean} [validation.emptyAsNullDefault=false] - Convert \"\" → null for nullable fields (NOT recommended)\r\n *\r\n * @property {Object} [security] - Security configuration\r\n * @property {Object} [security.csrf] - CSRF configuration\r\n * @property {boolean} [security.csrf.enabled=true] - Enable CSRF protection\r\n * @property {string[]} [security.csrf.excludePaths=[]] - Paths to exclude from CSRF\r\n * @property {string} [security.csrf.sameSite='Strict'] - SameSite cookie policy\r\n * @property {boolean} [security.csrf.secure=false] - Require HTTPS for cookies\r\n * @property {Object} [security.rateLimit] - Rate limit configuration\r\n * @property {boolean} [security.rateLimit.enabled=true] - Enable rate limiting\r\n * @property {number} [security.rateLimit.windowMs=60000] - Window in milliseconds\r\n * @property {number} [security.rateLimit.maxRequests=60] - Max requests per window\r\n * @property {string[]} [security.rateLimit.excludePaths=[]] - Paths to exclude\r\n *\r\n * @property {Object} [hooks] - Observability hooks\r\n * @property {Function} [hooks.onValidationError] - Called on validation failure\r\n * @property {Function} [hooks.onSecurityViolation] - Called on CSRF/security failure\r\n * @property {Function} [hooks.onRateLimit] - Called when rate limit is hit\r\n * @property {Function} [hooks.onDatabaseError] - Called on database error\r\n * @property {Function} [hooks.onRequest] - Called on every incoming request\r\n */\r\n\r\n/**\r\n * Default configuration values.\r\n * Strict by default. Secure by default.\r\n */\r\nconst DEFAULT_CONFIG = {\r\n validation: {\r\n trimStrings: false,\r\n emptyAsNullDefault: false\r\n },\r\n security: {\r\n csrf: {\r\n enabled: true,\r\n excludePaths: [],\r\n sameSite: 'Strict',\r\n secure: false\r\n },\r\n rateLimit: {\r\n enabled: true,\r\n windowMs: 60 * 1000,\r\n maxRequests: 60,\r\n excludePaths: []\r\n }\r\n },\r\n hooks: {\r\n onValidationError: null,\r\n onSecurityViolation: null,\r\n onRateLimit: null,\r\n onDatabaseError: null,\r\n onRequest: null\r\n }\r\n};\r\n\r\n/** @type {AfriCodeConfig} */\r\nlet _config = deepClone(DEFAULT_CONFIG);\r\n\r\n/** @type {boolean} */\r\nlet _initialized = false;\r\n\r\n/**\r\n * Deep clone a plain object.\r\n * @param {Object} obj\r\n * @returns {Object}\r\n */\r\nfunction deepClone(obj) {\r\n if (obj === null || typeof obj !== 'object') {return obj;}\r\n if (Array.isArray(obj)) {return obj.map(deepClone);}\r\n const cloned = {};\r\n for (const key of Object.keys(obj)) {\r\n cloned[key] = deepClone(obj[key]);\r\n }\r\n return cloned;\r\n}\r\n\r\n/**\r\n * Deep merge source into target.\r\n * @param {Object} target\r\n * @param {Object} source\r\n * @returns {Object}\r\n */\r\nfunction deepMerge(target, source) {\r\n const result = { ...target };\r\n for (const key of Object.keys(source)) {\r\n if (\r\n source[key] !== null &&\r\n typeof source[key] === 'object' &&\r\n !Array.isArray(source[key]) &&\r\n typeof target[key] === 'object' &&\r\n !Array.isArray(target[key])\r\n ) {\r\n result[key] = deepMerge(target[key] || {}, source[key]);\r\n } else {\r\n result[key] = source[key];\r\n }\r\n }\r\n return result;\r\n}\r\n\r\n/**\r\n * Initialize the AfriCode framework with configuration.\r\n *\r\n * This is the single entry point for framework configuration.\r\n * Call once at app startup. All systems read from this config.\r\n *\r\n * @param {Partial<AfriCodeConfig>} [userConfig={}] - User overrides\r\n * @returns {AfriCodeConfig} The resolved configuration\r\n *\r\n * @example\r\n * import { createFramework } from 'africode/core/config';\r\n *\r\n * createFramework({\r\n * validation: {\r\n * trimStrings: true\r\n * },\r\n * security: {\r\n * csrf: { enabled: true, secure: true },\r\n * rateLimit: { maxRequests: 100 }\r\n * },\r\n * hooks: {\r\n * onValidationError: (error) => logger.warn('Validation:', error),\r\n * onSecurityViolation: (error) => logger.error('Security:', error),\r\n * onRateLimit: (key) => metrics.increment('rate_limit_hit')\r\n * }\r\n * });\r\n */\r\nexport function createFramework(userConfig = {}) {\r\n _config = deepMerge(DEFAULT_CONFIG, userConfig);\r\n _initialized = true;\r\n return getConfig();\r\n}\r\n\r\n/**\r\n * Get the current framework configuration.\r\n * Returns a frozen copy to prevent accidental mutation.\r\n *\r\n * @returns {AfriCodeConfig}\r\n */\r\nexport function getConfig() {\r\n return Object.freeze(deepClone(_config));\r\n}\r\n\r\n/**\r\n * Check if the framework has been initialized.\r\n * @returns {boolean}\r\n */\r\nexport function isInitialized() {\r\n return _initialized;\r\n}\r\n\r\n/**\r\n * Reset configuration to defaults.\r\n * Primarily for testing.\r\n */\r\nexport function resetConfig() {\r\n _config = deepClone(DEFAULT_CONFIG);\r\n _initialized = false;\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────\r\n// Observability Hooks — fire-and-forget event emitters\r\n//\r\n// These are framework-level hooks for monitoring and logging.\r\n// They never throw — errors in hooks are caught and logged.\r\n// ─────────────────────────────────────────────────────────────\r\n\r\n/**\r\n * Emit a validation error event.\r\n * @param {import('./errors.js').ValidationError} error\r\n */\r\nexport function emitValidationError(error) {\r\n const hook = _config.hooks?.onValidationError;\r\n if (typeof hook === 'function') {\r\n try { hook(error); } catch (e) {\r\n frameworkLog('error', '[AfriCode] Hook error in onValidationError:', e);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Emit a security violation event.\r\n * @param {import('./errors.js').SecurityError} error\r\n */\r\nexport function emitSecurityViolation(error) {\r\n const hook = _config.hooks?.onSecurityViolation;\r\n if (typeof hook === 'function') {\r\n try { hook(error); } catch (e) {\r\n frameworkLog('error', '[AfriCode] Hook error in onSecurityViolation:', e);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Emit a rate limit event.\r\n * @param {string} key - The client identifier that was rate limited\r\n * @param {Request} [request] - The request that triggered the limit\r\n */\r\nexport function emitRateLimit(key, request = null) {\r\n const hook = _config.hooks?.onRateLimit;\r\n if (typeof hook === 'function') {\r\n try { hook(key, request); } catch (e) {\r\n frameworkLog('error', '[AfriCode] Hook error in onRateLimit:', e);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Emit a database error event.\r\n * @param {import('./errors.js').DatabaseError} error\r\n */\r\nexport function emitDatabaseError(error) {\r\n const hook = _config.hooks?.onDatabaseError;\r\n if (typeof hook === 'function') {\r\n try { hook(error); } catch (e) {\r\n frameworkLog('error', '[AfriCode] Hook error in onDatabaseError:', e);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Emit a request event.\r\n * @param {Request} request\r\n */\r\nexport function emitRequest(request) {\r\n const hook = _config.hooks?.onRequest;\r\n if (typeof hook === 'function') {\r\n try { hook(request); } catch (e) {\r\n frameworkLog('error', '[AfriCode] Hook error in onRequest:', e);\r\n }\r\n }\r\n}\r\n\r\nexport default {\r\n createFramework,\r\n getConfig,\r\n isInitialized,\r\n resetConfig,\r\n emitValidationError,\r\n emitSecurityViolation,\r\n emitRateLimit,\r\n emitDatabaseError,\r\n emitRequest\r\n};\r\n",
|
|
23
23
|
"/**\r\n * AfriCode Validation System\r\n *\r\n * Philosophy: Strict by default. Convenient by composition. Secure early.\r\n *\r\n * Core validation is strict — URL fields accept only valid URLs.\r\n * Normalization (e.g. empty string → null) is explicit and opt-in.\r\n * Security basics (CSRF, rate limiting) are built into the foundation.\r\n *\r\n * Provides:\r\n * - Zod-based validation schemas for forms, auth, and API validation\r\n * - AfriFieldBuilder: chainable field builder with .nullable(), .emptyAsNull(), .optional()\r\n * - afri namespace: factory for building field schemas (afri.url(), afri.string(), etc.)\r\n * - normalizeInput(): preprocessing utility that runs before validation\r\n *\r\n * @module core/validation\r\n */\r\n\r\nimport { z } from 'zod';\r\nimport { getConfig } from './config.js';\r\n\r\n/**\r\n * Common validation schemas for AfriCode components\r\n */\r\nexport const schemas = {\r\n // User authentication schemas\r\n login: z.object({\r\n email: z.string()\r\n .min(1, 'Email is required')\r\n .email('Please enter a valid email address'),\r\n password: z.string()\r\n .min(8, 'Password must be at least 8 characters')\r\n .regex(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)/,\r\n 'Password must contain at least one uppercase letter, one lowercase letter, and one number')\r\n }),\r\n\r\n register: z.object({\r\n name: z.string()\r\n .min(2, 'Name must be at least 2 characters')\r\n .max(50, 'Name must be less than 50 characters')\r\n .regex(/^[a-zA-Z\\s'-]+$/, 'Name can only contain letters, spaces, hyphens, and apostrophes'),\r\n email: z.string()\r\n .min(1, 'Email is required')\r\n .email('Please enter a valid email address'),\r\n password: z.string()\r\n .min(8, 'Password must be at least 8 characters')\r\n .regex(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&])/,\r\n 'Password must contain uppercase, lowercase, number, and special character'),\r\n confirmPassword: z.string()\r\n }).refine(data => data.password === data.confirmPassword, {\r\n message: \"Passwords don't match\",\r\n path: [\"confirmPassword\"]\r\n }),\r\n\r\n auth: {\r\n register: z.object({\r\n action: z.literal('register'),\r\n email: z.string()\r\n .min(1, 'Email is required')\r\n .email('Please enter a valid email address'),\r\n username: z.string()\r\n .min(3, 'Username must be at least 3 characters')\r\n .max(30, 'Username must be less than 30 characters'),\r\n password: z.string()\r\n .min(8, 'Password must be at least 8 characters'),\r\n full_name: z.string()\r\n .min(2, 'Full name is required')\r\n .max(100, 'Full name is too long')\r\n }),\r\n\r\n login: z.object({\r\n action: z.literal('login'),\r\n email: z.string()\r\n .min(1, 'Email is required')\r\n .email('Please enter a valid email address'),\r\n password: z.string()\r\n .min(8, 'Password must be at least 8 characters')\r\n }),\r\n\r\n logout: z.object({\r\n action: z.literal('logout')\r\n }),\r\n\r\n action: z.discriminatedUnion('action', [\r\n z.object({ action: z.literal('register') }).merge(z.object({\r\n email: z.string()\r\n .min(1, 'Email is required')\r\n .email('Please enter a valid email address'),\r\n username: z.string()\r\n .min(3, 'Username must be at least 3 characters')\r\n .max(30, 'Username must be less than 30 characters'),\r\n password: z.string()\r\n .min(8, 'Password must be at least 8 characters'),\r\n full_name: z.string()\r\n .min(2, 'Full name is required')\r\n .max(100, 'Full name is too long')\r\n })),\r\n z.object({ action: z.literal('login') }).merge(z.object({\r\n email: z.string()\r\n .min(1, 'Email is required')\r\n .email('Please enter a valid email address'),\r\n password: z.string()\r\n .min(8, 'Password must be at least 8 characters')\r\n })),\r\n z.object({ action: z.literal('logout') })\r\n ])\r\n },\r\n\r\n // Form input schemas\r\n contact: z.object({\r\n name: z.string()\r\n .min(2, 'Name must be at least 2 characters')\r\n .max(100, 'Name is too long'),\r\n email: z.string()\r\n .email('Please enter a valid email address'),\r\n message: z.string()\r\n .min(10, 'Message must be at least 10 characters')\r\n .max(1000, 'Message is too long')\r\n }),\r\n\r\n // Generic input validation\r\n email: z.string()\r\n .min(1, 'Email is required')\r\n .email('Please enter a valid email address'),\r\n\r\n password: z.string()\r\n .min(8, 'Password must be at least 8 characters')\r\n .regex(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)/,\r\n 'Password must contain uppercase, lowercase, and number'),\r\n\r\n phone: z.string()\r\n .regex(/^[\\+]?[1-9][\\d]{0,15}$/, 'Please enter a valid phone number'),\r\n\r\n // Strict URL: must be a valid URL. Use afri.url().nullable() for nullable URLs.\r\n url: z.string()\r\n .min(1, 'URL is required')\r\n .url('Please enter a valid URL'),\r\n\r\n required: z.string()\r\n .min(1, 'This field is required'),\r\n\r\n // Number validations\r\n positiveNumber: z.number()\r\n .positive('Must be a positive number'),\r\n\r\n integer: z.number()\r\n .int('Must be a whole number'),\r\n\r\n // Date validations\r\n futureDate: z.date()\r\n .min(new Date(), 'Date must be in the future'),\r\n\r\n // File validations\r\n imageFile: z.instanceof(File)\r\n .refine(file => file.size <= 5 * 1024 * 1024, 'File size must be less than 5MB')\r\n .refine(file => ['image/jpeg', 'image/png', 'image/gif', 'image/webp'].includes(file.type),\r\n 'File must be a JPEG, PNG, GIF, or WebP image'),\r\n\r\n // --- DB Model Schemas ---\r\n\r\n /**\r\n * User profile update schema.\r\n * avatar_url: valid URL or null (with opt-in empty-string normalization)\r\n */\r\n userProfile: z.object({\r\n full_name: z.string().min(2, 'Full name must be at least 2 characters').max(100, 'Full name is too long').optional(),\r\n bio: z.string().max(500, 'Bio must be less than 500 characters').nullable().optional(),\r\n avatar_url: z.string().url('Please enter a valid URL').nullable().optional(),\r\n theme: z.enum(['africanity', 'dark', 'light', 'system']).optional(),\r\n language: z.string().min(2).max(10).optional()\r\n }),\r\n\r\n /**\r\n * Project creation/update schema.\r\n * repository_url, demo_url: valid URL or null\r\n */\r\n project: z.object({\r\n name: z.string().min(1, 'Project name is required').max(100, 'Project name is too long'),\r\n description: z.string().max(1000, 'Description is too long').nullable().optional(),\r\n repository_url: z.string().url('Please enter a valid repository URL').nullable().optional(),\r\n demo_url: z.string().url('Please enter a valid demo URL').nullable().optional(),\r\n tags: z.array(z.string()).optional(),\r\n is_public: z.boolean().optional()\r\n })\r\n};\r\n\r\n/**\r\n * Validation utilities\r\n */\r\nexport class Validation {\r\n /**\r\n * Validate data against a schema\r\n * @param {z.ZodSchema} schema - Zod schema to validate against\r\n * @param {any} data - Data to validate\r\n * @returns {Object} { success: boolean, data?: any, errors?: Object }\r\n */\r\n static validate(schema, data) {\r\n try {\r\n const result = schema.parse(data);\r\n return { success: true, data: result };\r\n } catch (error) {\r\n if (error instanceof z.ZodError) {\r\n const errors = {};\r\n error.errors.forEach(err => {\r\n const path = err.path.join('.');\r\n errors[path] = err.message;\r\n });\r\n return { success: false, errors };\r\n }\r\n return { success: false, errors: { general: 'Validation failed' } };\r\n }\r\n }\r\n\r\n /**\r\n * Validate a single field\r\n * @param {z.ZodSchema} schema - Field schema\r\n * @param {any} value - Field value\r\n * @returns {Object} { success: boolean, error?: string }\r\n */\r\n static validateField(schema, value) {\r\n try {\r\n schema.parse(value);\r\n return { success: true };\r\n } catch (error) {\r\n if (error instanceof z.ZodError) {\r\n return { success: false, error: error.errors[0]?.message || 'Invalid value' };\r\n }\r\n return { success: false, error: 'Validation failed' };\r\n }\r\n }\r\n\r\n /**\r\n * Get validation error message for a field\r\n * @param {Object} validationResult - Result from validate()\r\n * @param {string} fieldPath - Dot notation field path\r\n * @returns {string|null} Error message or null\r\n */\r\n static getFieldError(validationResult, fieldPath) {\r\n if (validationResult.success) {return null;}\r\n return validationResult.errors?.[fieldPath] || null;\r\n }\r\n\r\n /**\r\n * Check if a field has validation errors\r\n * @param {Object} validationResult - Result from validate()\r\n * @param {string} fieldPath - Dot notation field path\r\n * @returns {boolean} True if field has errors\r\n */\r\n static hasFieldError(validationResult, fieldPath) {\r\n return !!this.getFieldError(validationResult, fieldPath);\r\n }\r\n}\r\n\r\n/**\r\n * Predefined validation rules for common use cases\r\n */\r\nexport const rules = {\r\n required: (message = 'This field is required') =>\r\n z.string().min(1, message),\r\n\r\n email: (message = 'Please enter a valid email address') =>\r\n z.string().email(message),\r\n\r\n minLength: (min, message) =>\r\n z.string().min(min, message || `Must be at least ${min} characters`),\r\n\r\n maxLength: (max, message) =>\r\n z.string().max(max, message || `Must be less than ${max} characters`),\r\n\r\n pattern: (regex, message) =>\r\n z.string().regex(regex, message),\r\n\r\n numeric: (message = 'Must be a number') =>\r\n z.string().regex(/^\\d+$/, message),\r\n\r\n phone: (message = 'Please enter a valid phone number') =>\r\n z.string().regex(/^[\\+]?[1-9][\\d]{0,15}$/, message),\r\n\r\n url: (message = 'Please enter a valid URL') =>\r\n z.string().min(1, 'URL is required').url(message)\r\n};\r\n\r\n// ─────────────────────────────────────────────────────────────\r\n// AfriFieldBuilder — Chainable field schema builder\r\n//\r\n// Design: Strict by default. Convenient by composition.\r\n//\r\n// Usage:\r\n// afri.url() → valid URL, required\r\n// afri.url().nullable() → valid URL or null\r\n// afri.url().nullable().emptyAsNull() → \"\" → null, then validates\r\n// afri.url().optional() → valid URL or undefined\r\n// afri.string().trim() → trim whitespace in normalizeInput\r\n// ─────────────────────────────────────────────────────────────\r\n\r\n/**\r\n * Chainable field builder for AfriCode validation schemas.\r\n * Wraps Zod with framework-level semantics.\r\n *\r\n * IMPORTANT: .emptyAsNull() does NOT alter the Zod schema itself.\r\n * It marks the field for preprocessing via normalizeInput().\r\n * Validation remains strict — the preprocessing layer is separate.\r\n */\r\nexport class AfriFieldBuilder {\r\n /**\r\n * @param {z.ZodSchema} baseSchema - The base Zod schema for this field\r\n * @param {string} fieldType - The field type identifier (e.g. 'url', 'email')\r\n */\r\n constructor(baseSchema, fieldType = 'string') {\r\n this._baseSchema = baseSchema;\r\n this._fieldType = fieldType;\r\n this._isNullable = false;\r\n this._isOptional = false;\r\n this._emptyAsNull = false;\r\n this._trim = false;\r\n this._customMessage = null;\r\n }\r\n\r\n /**\r\n * Allow null as a valid value.\r\n * @returns {AfriFieldBuilder}\r\n */\r\n nullable() {\r\n this._isNullable = true;\r\n return this;\r\n }\r\n\r\n /**\r\n * Allow undefined (field can be omitted).\r\n * @returns {AfriFieldBuilder}\r\n */\r\n optional() {\r\n this._isOptional = true;\r\n return this;\r\n }\r\n\r\n /**\r\n * Mark this field for empty-string-to-null conversion.\r\n * REQUIRES .nullable() to have been called first.\r\n * The conversion happens in normalizeInput(), not in the Zod schema.\r\n *\r\n * @returns {AfriFieldBuilder}\r\n * @throws {Error} If .nullable() was not called first\r\n */\r\n emptyAsNull() {\r\n if (!this._isNullable) {\r\n throw new Error(\r\n `[AfriCode] .emptyAsNull() requires .nullable() to be called first. ` +\r\n `Use: afri.${this._fieldType}().nullable().emptyAsNull()`\r\n );\r\n }\r\n this._emptyAsNull = true;\r\n return this;\r\n }\r\n\r\n /**\r\n * Mark this field for whitespace trimming.\r\n * The trimming happens in normalizeInput(), not in the Zod schema.\r\n * \" hello \" → \"hello\"\r\n *\r\n * @returns {AfriFieldBuilder}\r\n */\r\n trim() {\r\n this._trim = true;\r\n return this;\r\n }\r\n\r\n /**\r\n * Set a custom error message for the base validation.\r\n * @param {string} message\r\n * @returns {AfriFieldBuilder}\r\n */\r\n message(message) {\r\n this._customMessage = message;\r\n return this;\r\n }\r\n\r\n /**\r\n * Build the final Zod schema.\r\n * @returns {z.ZodSchema}\r\n */\r\n build() {\r\n let schema = this._baseSchema;\r\n\r\n if (this._isNullable) {\r\n schema = schema.nullable();\r\n }\r\n\r\n if (this._isOptional) {\r\n schema = schema.optional();\r\n }\r\n\r\n return schema;\r\n }\r\n\r\n /**\r\n * Get the metadata for this field (used by normalizeInput).\r\n * @returns {Object}\r\n */\r\n getMeta() {\r\n return {\r\n fieldType: this._fieldType,\r\n isNullable: this._isNullable,\r\n isOptional: this._isOptional,\r\n emptyAsNull: this._emptyAsNull,\r\n trim: this._trim\r\n };\r\n }\r\n}\r\n\r\n/**\r\n * AfriCode field factory namespace.\r\n * Creates AfriFieldBuilder instances for common field types.\r\n *\r\n * @example\r\n * // Strict URL — required, only valid URLs accepted\r\n * const urlField = afri.url().build();\r\n *\r\n * @example\r\n * // Nullable URL — valid URL or null\r\n * const avatarField = afri.url().nullable().build();\r\n *\r\n * @example\r\n * // Nullable URL with empty-string normalization\r\n * const avatarField = afri.url().nullable().emptyAsNull().build();\r\n */\r\nexport const afri = {\r\n /**\r\n * Create a strict URL field builder.\r\n * Empty strings are always rejected at the core.\r\n * @param {string} [message='Please enter a valid URL']\r\n * @returns {AfriFieldBuilder}\r\n */\r\n url(message = 'Please enter a valid URL') {\r\n return new AfriFieldBuilder(\r\n z.string().min(1, 'URL cannot be empty').url(message),\r\n 'url'\r\n );\r\n },\r\n\r\n /**\r\n * Create a strict email field builder.\r\n * @param {string} [message='Please enter a valid email address']\r\n * @returns {AfriFieldBuilder}\r\n */\r\n email(message = 'Please enter a valid email address') {\r\n return new AfriFieldBuilder(\r\n z.string().min(1, 'Email cannot be empty').email(message),\r\n 'email'\r\n );\r\n },\r\n\r\n /**\r\n * Create a string field builder.\r\n * @param {Object} [opts]\r\n * @param {number} [opts.min] - Minimum length\r\n * @param {number} [opts.max] - Maximum length\r\n * @param {string} [opts.message] - Custom error message\r\n * @returns {AfriFieldBuilder}\r\n */\r\n string(opts = {}) {\r\n let schema = z.string();\r\n if (opts.min !== undefined) {schema = schema.min(opts.min, opts.message || `Must be at least ${opts.min} characters`);}\r\n if (opts.max !== undefined) {schema = schema.max(opts.max, opts.message || `Must be less than ${opts.max} characters`);}\r\n return new AfriFieldBuilder(schema, 'string');\r\n },\r\n\r\n /**\r\n * Create a number field builder.\r\n * @param {Object} [opts]\r\n * @param {number} [opts.min] - Minimum value\r\n * @param {number} [opts.max] - Maximum value\r\n * @param {boolean} [opts.int] - Must be integer\r\n * @returns {AfriFieldBuilder}\r\n */\r\n number(opts = {}) {\r\n let schema = z.number();\r\n if (opts.min !== undefined) {schema = schema.min(opts.min);}\r\n if (opts.max !== undefined) {schema = schema.max(opts.max);}\r\n if (opts.int) {schema = schema.int('Must be a whole number');}\r\n return new AfriFieldBuilder(schema, 'number');\r\n },\r\n\r\n /**\r\n * Create a phone field builder.\r\n * @param {string} [message='Please enter a valid phone number']\r\n * @returns {AfriFieldBuilder}\r\n */\r\n phone(message = 'Please enter a valid phone number') {\r\n return new AfriFieldBuilder(\r\n z.string().regex(/^[\\+]?[1-9][\\d]{0,15}$/, message),\r\n 'phone'\r\n );\r\n }\r\n};\r\n\r\n/**\r\n * Normalize input data before validation.\r\n *\r\n * This is the preprocessing layer. It examines field metadata from\r\n * AfriFieldBuilder instances and applies transformations:\r\n *\r\n * 1. Trim whitespace (if .trim() or config.validation.trimStrings)\r\n * 2. Convert \"\" → null (if .emptyAsNull())\r\n *\r\n * Order matters: trim runs BEFORE emptyAsNull so that\r\n * \" \" → \"\" → null works correctly.\r\n *\r\n * Separation of concerns:\r\n * - normalizeInput() = input adapter (flexible)\r\n * - Validation.validate() = core validation (strict)\r\n *\r\n * @param {Object} fieldBuilders - Map of field names to AfriFieldBuilder instances\r\n * @param {Object} data - Raw input data (e.g. form submission)\r\n * @returns {Object} Normalized data ready for validation\r\n *\r\n * @example\r\n * const fields = {\r\n * avatar_url: afri.url().nullable().emptyAsNull(),\r\n * name: afri.string({ min: 2 }).trim(),\r\n * bio: afri.string({ max: 500 }).nullable()\r\n * };\r\n *\r\n * const raw = { avatar_url: '', name: ' AfriCode ', bio: 'Hello' };\r\n * const cleaned = normalizeInput(fields, raw);\r\n * // → { avatar_url: null, name: 'AfriCode', bio: 'Hello' }\r\n */\r\nexport function normalizeInput(fieldBuilders, data) {\r\n const result = { ...data };\r\n let globalTrim = false;\r\n\r\n // Check framework config for global trim setting\r\n try {\r\n const config = getConfig();\r\n globalTrim = config.validation?.trimStrings === true;\r\n } catch {\r\n // Config not initialized yet — use defaults (no global trim)\r\n }\r\n\r\n for (const [fieldName, builder] of Object.entries(fieldBuilders)) {\r\n if (!(builder instanceof AfriFieldBuilder)) {continue;}\r\n\r\n const meta = builder.getMeta();\r\n const value = result[fieldName];\r\n\r\n // Step 1: Trim whitespace (per-field .trim() or global config)\r\n if (typeof value === 'string' && (meta.trim || globalTrim)) {\r\n result[fieldName] = value.trim();\r\n }\r\n\r\n // Step 2: Convert empty string to null (per-field .emptyAsNull())\r\n if (meta.emptyAsNull && result[fieldName] === '') {\r\n result[fieldName] = null;\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n\r\n/**\r\n * Build a Zod object schema from a map of AfriFieldBuilder instances.\r\n * Convenience method to go from builders → Zod schema in one step.\r\n *\r\n * @param {Object} fieldBuilders - Map of field names to AfriFieldBuilder instances\r\n * @returns {z.ZodObject}\r\n *\r\n * @example\r\n * const schema = buildSchema({\r\n * avatar_url: afri.url().nullable().emptyAsNull(),\r\n * name: afri.string({ min: 2, max: 50 })\r\n * });\r\n *\r\n * const result = Validation.validate(schema, data);\r\n */\r\nexport function buildSchema(fieldBuilders) {\r\n const shape = {};\r\n\r\n for (const [fieldName, builder] of Object.entries(fieldBuilders)) {\r\n if (builder instanceof AfriFieldBuilder) {\r\n shape[fieldName] = builder.build();\r\n } else {\r\n // Allow raw Zod schemas to be mixed in\r\n shape[fieldName] = builder;\r\n }\r\n }\r\n\r\n return z.object(shape);\r\n}\r\n\r\nexport default { schemas, Validation, rules, afri, AfriFieldBuilder, normalizeInput, buildSchema };",
|
|
24
24
|
"/**\r\n * AfriCode Input Component\r\n * \r\n * Form input with validation, icons, and cultural styling.\r\n * Suitable for: All sectors requiring data collection\r\n * \r\n * @module components/input\r\n */\r\n\r\nimport { AfriCodeComponent, registerComponent } from './base.js';\r\nimport { Validation, rules } from '../core/validation.js';\r\n\r\nexport class AfriInput extends AfriCodeComponent {\r\n static get observedAttributes() {\r\n return ['type', 'name', 'label', 'placeholder', 'error', 'helper', 'theme', 'icon', 'required', 'aria-label', 'aria-describedby', 'validation'];\r\n }\r\n\r\n constructor() {\r\n super();\r\n this._uniqueId = Math.random().toString(36).substr(2, 9);\r\n this.render();\r\n }\r\n\r\n get value() {\r\n return this.shadowRoot.querySelector('input')?.value || '';\r\n }\r\n\r\n set value(val) {\r\n const input = this.shadowRoot.querySelector('input');\r\n if (input) {input.value = val;}\r\n }\r\n\r\n connectedCallback() {\r\n this._attachInputListeners();\r\n this.loadStyles();\r\n }\r\n\r\n attributeChangedCallback() {\r\n this.render();\r\n this._attachInputListeners();\r\n }\r\n\r\n _attachInputListeners() {\r\n const input = this.shadowRoot.querySelector('input');\r\n if (!input) {return;}\r\n\r\n input.addEventListener('input', (e) => {\r\n this.emit('af-input', { value: e.target.value });\r\n if (this.hasAttribute('error')) {\r\n this.removeAttribute('error');\r\n }\r\n });\r\n\r\n input.addEventListener('blur', () => {\r\n this.emit('af-blur', { value: this.value });\r\n this._validateInput();\r\n });\r\n }\r\n\r\n _setupValidation() {\r\n const validationRule = this.getAttribute('validation');\r\n if (!validationRule) {return;}\r\n\r\n const input = this.shadowRoot.querySelector('input');\r\n if (!input) {return;}\r\n\r\n input.addEventListener('input', () => {\r\n if (this.hasAttribute('error')) {\r\n this.removeAttribute('error');\r\n }\r\n });\r\n }\r\n\r\n _validateInput() {\r\n const input = this.shadowRoot.querySelector('input');\r\n if (!input) {return;}\r\n\r\n const validationRule = this.getAttribute('validation');\r\n const value = input.value;\r\n const required = this.hasAttribute('required');\r\n\r\n // Check required first\r\n if (required && !value.trim()) {\r\n this.setAttribute('error', 'This field is required');\r\n return;\r\n }\r\n\r\n // Apply validation rule\r\n if (validationRule && value.trim()) {\r\n const schema = this._getValidationSchema(validationRule);\r\n if (schema) {\r\n const result = Validation.validateField(schema, value);\r\n if (!result.success) {\r\n this.setAttribute('error', result.error);\r\n } else {\r\n this.removeAttribute('error');\r\n }\r\n }\r\n }\r\n }\r\n\r\n _getValidationSchema(ruleName) {\r\n const ruleMap = {\r\n 'email': rules.email(),\r\n 'password': rules.password(),\r\n 'phone': rules.phone(),\r\n 'url': rules.url(),\r\n 'required': rules.required()\r\n };\r\n\r\n // Handle parameterized rules like minLength:5\r\n if (ruleName.includes(':')) {\r\n const [rule, param] = ruleName.split(':');\r\n const numParam = parseInt(param);\r\n\r\n switch (rule) {\r\n case 'minLength':\r\n return rules.minLength(numParam);\r\n case 'maxLength':\r\n return rules.maxLength(numParam);\r\n case 'pattern':\r\n return rules.pattern(new RegExp(param), 'Invalid format');\r\n }\r\n }\r\n\r\n return ruleMap[ruleName] || null;\r\n }\r\n\r\n attributeChangedCallback() {\r\n this.render();\r\n }\r\n\r\n render() {\r\n const type = this.getAttribute('type') || 'text';\r\n const name = this.getAttribute('name') || '';\r\n const label = this.getAttribute('label') || '';\r\n const placeholder = this.getAttribute('placeholder') || '';\r\n const error = this.getAttribute('error') || '';\r\n const helper = this.getAttribute('helper') || '';\r\n const theme = this.getAttribute('theme') || 'tanzania';\r\n const icon = this.getAttribute('icon') || '';\r\n const required = this.hasAttribute('required');\r\n const ariaLabel = this.getAttribute('aria-label');\r\n const ariaDescribedBy = this.getAttribute('aria-describedby');\r\n\r\n const themes = {\r\n tanzania: { focus: '#1EB53A', error: '#DC3545' },\r\n maasai: { focus: '#FF0000', error: '#8B0000' },\r\n ndebele: { focus: '#4169E1', error: '#DC143C' }\r\n };\r\n const t = themes[theme] || themes.tanzania;\r\n\r\n const describedByList = [];\r\n if (error) {describedByList.push(`error-${this._uniqueId}`);}\r\n else if (helper) {describedByList.push(`helper-${this._uniqueId}`);}\r\n if (ariaDescribedBy) {describedByList.push(...ariaDescribedBy.split(' '));}\r\n const combinedDescribedBy = describedByList.length > 0 ? `aria-describedby=\"${describedByList.join(' ')}\"` : '';\r\n\r\n this.shadowRoot.innerHTML = `\r\n <style>\r\n :host {\r\n display: block;\r\n font-family: 'Inter', system-ui, sans-serif;\r\n }\r\n\r\n .input-wrapper {\r\n position: relative;\r\n }\r\n\r\n label {\r\n display: block;\r\n font-weight: 500;\r\n margin-bottom: 5px;\r\n color: #333;\r\n font-size: 14px;\r\n }\r\n\r\n .required-star {\r\n color: ${t.error};\r\n margin-left: 2px;\r\n }\r\n\r\n .input-container {\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n input {\r\n width: 100%;\r\n padding: 10px 13px;\r\n ${icon ? 'padding-left: 40px;' : ''}\r\n font-size: 15px;\r\n border: 2px solid #ddd;\r\n border-radius: 5px;\r\n transition: all 200ms ease;\r\n font-family: inherit;\r\n box-sizing: border-box;\r\n }\r\n\r\n input:focus {\r\n outline: none;\r\n border-color: ${error ? t.error : t.focus};\r\n box-shadow: 0 0 0 3px ${error ? t.error + '20' : t.focus + '20'};\r\n }\r\n\r\n input.has-error {\r\n border-color: ${t.error};\r\n }\r\n\r\n .icon {\r\n position: absolute;\r\n left: 13px;\r\n color: #888;\r\n font-size: 16px;\r\n pointer-events: none;\r\n }\r\n\r\n .helper-text {\r\n font-size: 12px;\r\n margin-top: 4px;\r\n color: #666;\r\n }\r\n\r\n .error-text {\r\n font-size: 12px;\r\n margin-top: 4px;\r\n color: ${t.error};\r\n }\r\n </style>\r\n\r\n <div class=\"input-wrapper\">\r\n ${label ? `<label for=\"input-${this._uniqueId}\">${label}${required ? '<span class=\"required-star\">*</span>' : ''}</label>` : ''}\r\n <div class=\"input-container\">\r\n ${icon ? `<span class=\"icon\">${icon}</span>` : ''}\r\n <input \r\n id=\"input-${this._uniqueId}\"\r\n name=\"${name}\"\r\n type=\"${type}\"\r\n placeholder=\"${placeholder}\"\r\n class=\"${error ? 'has-error' : ''}\"\r\n ${required ? 'required' : ''}\r\n ${ariaLabel ? `aria-label=\"${ariaLabel}\"` : ''}\r\n ${error ? 'aria-invalid=\"true\"' : ''}\r\n ${combinedDescribedBy}\r\n />\r\n </div>\r\n ${error ? `<div id=\"error-${this._uniqueId}\" class=\"error-text\" role=\"alert\">${error}</div>` : ''}\r\n ${helper && !error ? `<div id=\"helper-${this._uniqueId}\" class=\"helper-text\">${helper}</div>` : ''}\r\n </div>\r\n `;\r\n }\r\n}\r\n\r\nregisterComponent('af-input', AfriInput);\r\nexport default AfriInput;\r\n",
|
|
25
25
|
"/**\r\n * AfriCode Alert/Notification Component\r\n * \r\n * Status messages, alerts, and notifications with cultural theming.\r\n * Suitable for: Healthcare alerts, Financial notifications, System messages\r\n * \r\n * @module components/alert\r\n */\r\n\r\nimport { AfriCodeComponent, registerComponent } from './base.js';\r\n\r\nexport class AfriAlert extends AfriCodeComponent {\r\n static get observedAttributes() {\r\n return ['type', 'title', 'dismissible'];\r\n }\r\n\r\n constructor() {\r\n super();\r\n this.render();\r\n }\r\n\r\n connectedCallback() {\r\n this.shadowRoot.querySelector('.close-btn')?.addEventListener('click', () => {\r\n this.remove();\r\n this.emit('af-dismiss');\r\n });\r\n }\r\n\r\n attributeChangedCallback() {\r\n this.render();\r\n }\r\n\r\n render() {\r\n const type = this.getAttribute('type') || 'info';\r\n const title = this.getAttribute('title') || '';\r\n const dismissible = this.hasAttribute('dismissible');\r\n\r\n const types = {\r\n success: { bg: '#d4edda', border: '#1EB53A', text: '#155724', icon: '✓' },\r\n warning: { bg: '#fff3cd', border: '#FCD116', text: '#856404', icon: '⚠' },\r\n error: { bg: '#f8d7da', border: '#DC3545', text: '#721c24', icon: '✕' },\r\n info: { bg: '#d1ecf1', border: '#00A3DD', text: '#0c5460', icon: 'ℹ' }\r\n };\r\n const t = types[type] || types.info;\r\n\r\n this.shadowRoot.innerHTML = `\r\n <style>\r\n :host {\r\n display: block;\r\n font-family: 'Inter', system-ui, sans-serif;\r\n }\r\n\r\n .alert {\r\n padding: 13px 21px;\r\n border-radius: 5px;\r\n border-left: 4px solid ${t.border};\r\n background: ${t.bg};\r\n color: ${t.text};\r\n display: flex;\r\n align-items: flex-start;\r\n gap: 13px;\r\n animation: slideIn 300ms ease-out;\r\n }\r\n\r\n @keyframes slideIn {\r\n from {\r\n opacity: 0;\r\n transform: translateY(-10px);\r\n }\r\n to {\r\n opacity: 1;\r\n transform: translateY(0);\r\n }\r\n }\r\n\r\n .icon {\r\n font-size: 18px;\r\n flex-shrink: 0;\r\n width: 24px;\r\n height: 24px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n background: ${t.border};\r\n color: white;\r\n border-radius: 50%;\r\n }\r\n\r\n .content {\r\n flex: 1;\r\n }\r\n\r\n .title {\r\n font-weight: 600;\r\n margin-bottom: 3px;\r\n }\r\n\r\n .close-btn {\r\n background: none;\r\n border: none;\r\n font-size: 18px;\r\n cursor: pointer;\r\n color: ${t.text};\r\n opacity: 0.7;\r\n padding: 0;\r\n line-height: 1;\r\n }\r\n\r\n .close-btn:hover {\r\n opacity: 1;\r\n }\r\n\r\n ::slotted(*) {\r\n margin: 0;\r\n }\r\n </style>\r\n\r\n <div class=\"alert\" role=\"alert\">\r\n <span class=\"icon\">${t.icon}</span>\r\n <div class=\"content\">\r\n ${title ? `<div class=\"title\">${title}</div>` : ''}\r\n <slot></slot>\r\n </div>\r\n ${dismissible ? '<button class=\"close-btn\" aria-label=\"Dismiss\">×</button>' : ''}\r\n </div>\r\n `;\r\n }\r\n}\r\n\r\nregisterComponent('af-alert', AfriAlert);\r\nexport default AfriAlert;\r\n",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"/**\r\n * Component Registry (Islands Map)\r\n * \r\n * Instead of statically importing all components (monolithic bundle),\r\n * we export a map for lazy hydration.\r\n */\r\n\r\nexport { AfriCodeComponent } from './base.js';\r\nexport { AfriErrorBoundary } from './error-boundary.js';\r\n\r\n// Map of Tag Name -> Dynamic Import\r\nexport const componentMap = {\r\n // Core UI\r\n 'af-button': () => import('./button.js'),\r\n 'af-card': () => import('./card.js'),\r\n 'af-navbar': () => import('./navbar.js'),\r\n 'af-input': () => import('./input.js'),\r\n 'af-alert': () => import('./alert.js'),\r\n 'af-grid': () => import('./grid.js'),\r\n 'af-section': () => import('./section.js'),\r\n 'af-icon': () => import('./icon.js'),\r\n\r\n // Enterprise\r\n 'af-accordion': () => import('./accordion.js'),\r\n 'af-hero': () => import('./hero.js'),\r\n 'af-table': () => import('./table.js'),\r\n 'af-modal': () => import('./modal.js'),\r\n 'af-tabs': () => import('./tabs.js'),\r\n 'af-sidebar': () => import('./sidebar.js'),\r\n 'af-dropdown': () => import('./dropdown.js'),\r\n 'af-select': () => import('./select.js'),\r\n 'af-form': () => import('./form.js'),\r\n 'af-tooltip': () => import('./tooltip.js'),\r\n 'af-toast': () => import('./toast.js'),\r\n\r\n // Feedback & Display\r\n 'af-badge': () => import('./badge.js'),\r\n 'af-avatar': () => import('./avatar.js'),\r\n 'af-progress': () => import('./progress.js'),\r\n 'af-loader': () => import('./loader.js'),\r\n 'af-skeleton': () => import('./skeleton.js'),\r\n 'af-divider': () => import('./divider.js'),\r\n\r\n // Cultural\r\n 'af-kanga-card': () => import('./kanga-card.js'),\r\n 'af-cultural-card': () => import('./cultural-card.js'),\r\n 'af-pattern-showcase': () => import('./pattern-showcase.js'),\r\n 'af-language-switcher': () => import('./language-switcher.js'),\r\n\r\n // Auth\r\n 'af-auth': () => import('./auth.js'),\r\n\r\n // Theming\r\n 'af-theme-toggle': () => import('./theme-toggle.js'),\r\n};\r\n\r\nexport default componentMap;\r\n",
|
|
56
56
|
"import { AfriCodeComponent, registerComponent } from './base.js';\r\n\r\n/**\r\n * AfriCode Error Boundary Component\r\n * \r\n * Native Web Component implementation of an error boundary.\r\n * Listens for 'af-component-error' events bubbling up from children.\r\n * Gracefully displays a localized fallback UI.\r\n * \r\n * @module components/error-boundary\r\n */\r\nexport class AfriErrorBoundary extends AfriCodeComponent {\r\n static get observedAttributes() {\r\n return ['theme', 'fallback-message'];\r\n }\r\n\r\n constructor() {\r\n super();\r\n this._hasError = false;\r\n this._errorDetail = null;\r\n this.render();\r\n }\r\n\r\n connectedCallback() {\r\n // Listen for internal errors bubbling up from custom AfriCode children\r\n this.addEventListener('af-component-error', this._handleError.bind(this));\r\n }\r\n\r\n disconnectedCallback() {\r\n this.removeEventListener('af-component-error', this._handleError.bind(this));\r\n }\r\n\r\n _handleError(e) {\r\n // Prevent it from bubbling further up and crashing higher boundaries\r\n e.stopPropagation();\r\n \r\n this._hasError = true;\r\n this._errorDetail = e.detail;\r\n \r\n console.warn('[AfriCode Boundary] Caught error:', this._errorDetail);\r\n this.render();\r\n }\r\n\r\n reset() {\r\n this._hasError = false;\r\n this._errorDetail = null;\r\n this.render();\r\n }\r\n\r\n attributeChangedCallback() {\r\n this.render();\r\n }\r\n\r\n render() {\r\n const theme = this.getAttribute('theme') || 'tanzania';\r\n const fallbackMessage = this.getAttribute('fallback-message') || 'A part of this page failed to load.';\r\n\r\n // Use appropriate semantic warning colors depending on culture theme\r\n const themes = {\r\n tanzania: { bg: '#FFF9E6', border: '#FCD116', text: '#5A4A00' },\r\n maasai: { bg: '#FFEEEE', border: '#FF0000', text: '#8B0000' },\r\n ndebele: { bg: '#EBF0FF', border: '#4169E1', text: '#002B5C' },\r\n ocean: { bg: '#E6FAFF', border: '#00A3DD', text: '#004A66' }\r\n };\r\n\r\n const t = themes[theme] || themes.tanzania;\r\n\r\n if (this._hasError) {\r\n this.shadowRoot.innerHTML = `\r\n <style>\r\n :host { display: block; width: 100%; font-family: 'Inter', system-ui, sans-serif; }\r\n .boundary-error {\r\n background: ${t.bg};\r\n border-left: 4px solid ${t.border};\r\n color: ${t.text};\r\n padding: 16px 20px;\r\n border-radius: 4px;\r\n margin: 12px 0;\r\n box-shadow: 0 2px 8px rgba(0,0,0,0.05);\r\n }\r\n .boundary-header {\r\n display: flex;\r\n align-items: center;\r\n gap: 12px;\r\n font-weight: 600;\r\n margin-bottom: 8px;\r\n font-size: 16px;\r\n }\r\n .boundary-message {\r\n font-size: 14px;\r\n opacity: 0.9;\r\n margin-bottom: 12px;\r\n }\r\n .boundary-dev-detail {\r\n font-family: monospace;\r\n font-size: 12px;\r\n background: rgba(0,0,0,0.05);\r\n padding: 8px;\r\n border-radius: 4px;\r\n overflow-x: auto;\r\n white-space: pre-wrap;\r\n }\r\n .boundary-action {\r\n margin-top: 12px;\r\n }\r\n button {\r\n background: transparent;\r\n border: 1px solid ${t.border};\r\n color: ${t.text};\r\n padding: 6px 12px;\r\n border-radius: 4px;\r\n cursor: pointer;\r\n font-weight: 500;\r\n transition: background 0.2s;\r\n }\r\n button:hover {\r\n background: rgba(0,0,0,0.05);\r\n }\r\n </style>\r\n <div class=\"boundary-error\" role=\"alert\">\r\n <div class=\"boundary-header\">\r\n <span aria-hidden=\"true\">🔄</span>\r\n <span>Component Recovery</span>\r\n </div>\r\n <div class=\"boundary-message\">${fallbackMessage}</div>\r\n \r\n ${this._errorDetail ? `\r\n <div class=\"boundary-dev-detail\">\r\n <code><${this._errorDetail.component}>: ${this._errorDetail.message}</code>\r\n </div>\r\n ` : ''}\r\n\r\n <div class=\"boundary-action\">\r\n <button id=\"retry-btn\">Try Again</button>\r\n </div>\r\n </div>\r\n `;\r\n \r\n // Re-bind retry logic\r\n this.shadowRoot.getElementById('retry-btn').addEventListener('click', () => {\r\n this.reset();\r\n });\r\n return;\r\n }\r\n\r\n // If no error, just passthrough the light DOM via slots\r\n this.shadowRoot.innerHTML = `\r\n <style>:host { display: block; }</style>\r\n <slot></slot>\r\n `;\r\n }\r\n}\r\n\r\nregisterComponent('af-error-boundary', AfriErrorBoundary);\r\nexport default AfriErrorBoundary;\r\n"
|
|
57
57
|
],
|
|
58
|
-
"mappings": "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",
|
|
59
|
-
"debugId": "
|
|
58
|
+
"mappings": "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",
|
|
59
|
+
"debugId": "E47C17E1BD0D369F64756E2164756E21",
|
|
60
60
|
"names": []
|
|
61
61
|
}
|