{"version":3,"sources":["../src/schemas/index.ts","../src/schemas/settings.ts","../src/examples/index.ts","../src/examples/step.ts"],"sourcesContent":["import { zodToSchema } from '@walkeros/core/dev';\nimport { SettingsSchema } from './settings';\n\nexport { SettingsSchema, type Settings } from './settings';\nexport const settings = zodToSchema(SettingsSchema);\n","import { z } from '@walkeros/core/dev';\n\nconst MatchConditionSchema = z.object({\n  key: z.string().describe('Property path to match against'),\n  operator: z\n    .enum(['eq', 'contains', 'prefix', 'suffix', 'regex', 'gt', 'lt', 'exists'])\n    .describe('Match operator'),\n  value: z.string().describe('Value to compare against'),\n  not: z.boolean().optional().describe('Negate the condition'),\n});\n\nconst MatchExpressionSchema: z.ZodType = z.union([\n  MatchConditionSchema,\n  z.object({ and: z.array(z.lazy(() => MatchExpressionSchema)) }),\n  z.object({ or: z.array(z.lazy(() => MatchExpressionSchema)) }),\n]);\n\nconst CacheRuleSchema = z\n  .object({\n    match: z\n      .union([MatchExpressionSchema, z.literal('*')])\n      .describe('Match expression or \"*\" to match all events'),\n    key: z\n      .array(z.string())\n      .describe('Event property paths used to build the cache key'),\n    ttl: z\n      .number()\n      .positive()\n      .describe('Time-to-live in seconds for cached entries'),\n    headers: z\n      .record(z.string(), z.string())\n      .optional()\n      .describe('HTTP response headers to include with cached responses'),\n  })\n  .describe(\n    'Cache rule: defines which events to cache, key composition, and TTL',\n  );\n\n/**\n * Cache transformer settings schema.\n *\n * Mirrors: types.ts CacheSettings\n */\nexport const SettingsSchema = z\n  .object({\n    maxSize: z\n      .number()\n      .positive()\n      .optional()\n      .describe('Maximum cache size in bytes. Default: 10MB'),\n    rules: z\n      .array(CacheRuleSchema)\n      .describe('Cache rules evaluated in order. First matching rule wins.'),\n  })\n  .describe(\n    'Cache transformer: caches event responses by match rules with TTL',\n  );\n\nexport type Settings = z.infer<typeof SettingsSchema>;\n","export * as step from './step';\n","import type { Flow } from '@walkeros/core';\n\nexport const cacheMiss: Flow.StepExample = {\n  in: {\n    name: 'page view',\n    data: { url: '/api/events' },\n    id: '1700000600-gr0up-1',\n    trigger: 'load',\n    entity: 'page',\n    action: 'view',\n    timestamp: 1700000600,\n    group: 'gr0up',\n    count: 1,\n    version: { tagging: 1 },\n    source: { type: 'server', id: '', previous_id: '' },\n  },\n  out: { respond: true },\n};\n\nexport const cacheHit: Flow.StepExample = {\n  in: {\n    name: 'page view',\n    data: { url: '/api/events' },\n    id: '1700000601-gr0up-2',\n    trigger: 'load',\n    entity: 'page',\n    action: 'view',\n    timestamp: 1700000601,\n    group: 'gr0up',\n    count: 2,\n    version: { tagging: 1 },\n    source: { type: 'server', id: '', previous_id: '' },\n  },\n  out: false,\n};\n\nexport const differentCacheKeys: Flow.StepExample = {\n  description:\n    'POST to the same path produces a separate cache entry (key includes HTTP method)',\n  in: {\n    name: 'page view',\n    data: { url: '/api/events' },\n    id: '1700000602-gr0up-3',\n    trigger: 'load',\n    entity: 'page',\n    action: 'view',\n    timestamp: 1700000602,\n    group: 'gr0up',\n    count: 3,\n    version: { tagging: 1 },\n    source: { type: 'server', id: '', previous_id: '' },\n  },\n  out: { respond: true },\n};\n"],"mappings":"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","names":[]}