@mochabug/adapt-sdk 0.4.22 → 0.4.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/dist/cel/index.d.ts +4 -0
  2. package/dist/cel/index.d.ts.map +1 -1
  3. package/dist/cjs/anthropic.cjs.map +1 -1
  4. package/dist/cjs/api.cjs +1 -1
  5. package/dist/cjs/api.cjs.map +2 -2
  6. package/dist/cjs/cel.cjs +3 -3
  7. package/dist/cjs/cel.cjs.map +4 -4
  8. package/dist/cjs/gemini.cjs.map +1 -1
  9. package/dist/cjs/openai.cjs.map +1 -1
  10. package/dist/cjs/router.cjs +1 -1
  11. package/dist/cjs/router.cjs.map +2 -2
  12. package/dist/cjs/signals.cjs +2 -2
  13. package/dist/cjs/signals.cjs.map +2 -2
  14. package/dist/esm/anthropic.mjs.map +1 -1
  15. package/dist/esm/api.mjs +1 -1
  16. package/dist/esm/api.mjs.map +2 -2
  17. package/dist/esm/cel.mjs +3 -3
  18. package/dist/esm/cel.mjs.map +4 -4
  19. package/dist/esm/gemini.mjs.map +1 -1
  20. package/dist/esm/openai.mjs.map +1 -1
  21. package/dist/esm/router.mjs +1 -1
  22. package/dist/esm/router.mjs.map +2 -2
  23. package/dist/esm/signals.mjs +1 -1
  24. package/dist/esm/signals.mjs.map +2 -2
  25. package/dist/genproto/buf/validate/validate_pb.d.ts +438 -320
  26. package/dist/genproto/buf/validate/validate_pb.d.ts.map +1 -1
  27. package/dist/genproto/google/api/client_pb.d.ts +471 -103
  28. package/dist/genproto/google/api/client_pb.d.ts.map +1 -1
  29. package/dist/genproto/mochabugapis/adapt/automations/v1/automations_pb.d.ts +26 -26
  30. package/dist/genproto/mochabugapis/adapt/automations/v1/automations_pb.d.ts.map +1 -1
  31. package/dist/genproto/mochabugapis/adapt/graph/exchange_pb.d.ts +1 -1
  32. package/dist/genproto/mochabugapis/adapt/graph/exchange_pb.d.ts.map +1 -1
  33. package/dist/genproto/mochabugapis/adapt/graph/jtd_schema_pb.d.ts +8 -8
  34. package/dist/genproto/mochabugapis/adapt/graph/jtd_schema_pb.d.ts.map +1 -1
  35. package/dist/genproto/mochabugapis/adapt/graph/receiver_pb.d.ts +1 -1
  36. package/dist/genproto/mochabugapis/adapt/graph/receiver_pb.d.ts.map +1 -1
  37. package/dist/genproto/mochabugapis/adapt/graph/signal_binding_pb.d.ts +4 -4
  38. package/dist/genproto/mochabugapis/adapt/graph/signal_binding_pb.d.ts.map +1 -1
  39. package/dist/genproto/mochabugapis/adapt/graph/signal_data_pb.d.ts +1 -1
  40. package/dist/genproto/mochabugapis/adapt/graph/signal_data_pb.d.ts.map +1 -1
  41. package/dist/genproto/mochabugapis/adapt/graph/signal_descriptor_pb.d.ts +3 -3
  42. package/dist/genproto/mochabugapis/adapt/graph/signal_descriptor_pb.d.ts.map +1 -1
  43. package/dist/genproto/mochabugapis/adapt/graph/transceiver_pb.d.ts +2 -2
  44. package/dist/genproto/mochabugapis/adapt/graph/transceiver_pb.d.ts.map +1 -1
  45. package/dist/genproto/mochabugapis/adapt/graph/transmitter_pb.d.ts +2 -2
  46. package/dist/genproto/mochabugapis/adapt/graph/transmitter_pb.d.ts.map +1 -1
  47. package/dist/genproto/mochabugapis/adapt/graph/user_defined_exchange_options_pb.d.ts +12 -12
  48. package/dist/genproto/mochabugapis/adapt/graph/user_defined_exchange_options_pb.d.ts.map +1 -1
  49. package/dist/genproto/mochabugapis/adapt/graph/vertex_metadata_pb.d.ts +2 -2
  50. package/dist/genproto/mochabugapis/adapt/graph/vertex_metadata_pb.d.ts.map +1 -1
  51. package/dist/genproto/mochabugapis/adapt/plugins/v1/compound_services_pb.d.ts +1 -1
  52. package/dist/genproto/mochabugapis/adapt/plugins/v1/compound_services_pb.d.ts.map +1 -1
  53. package/dist/genproto/mochabugapis/adapt/plugins/v1/file_pb.d.ts +1 -1
  54. package/dist/genproto/mochabugapis/adapt/plugins/v1/file_pb.d.ts.map +1 -1
  55. package/dist/genproto/mochabugapis/adapt/plugins/v1/http_proxy_service_pb.d.ts +8 -8
  56. package/dist/genproto/mochabugapis/adapt/plugins/v1/http_proxy_service_pb.d.ts.map +1 -1
  57. package/dist/genproto/mochabugapis/adapt/plugins/v1/manifest_pb.d.ts +5 -5
  58. package/dist/genproto/mochabugapis/adapt/plugins/v1/manifest_pb.d.ts.map +1 -1
  59. package/dist/genproto/mochabugapis/adapt/plugins/v1/oauth2_service_pb.d.ts +13 -13
  60. package/dist/genproto/mochabugapis/adapt/plugins/v1/oauth2_service_pb.d.ts.map +1 -1
  61. package/dist/genproto/mochabugapis/adapt/plugins/v1/plugins_pb.d.ts +5 -5
  62. package/dist/genproto/mochabugapis/adapt/plugins/v1/plugins_pb.d.ts.map +1 -1
  63. package/dist/genproto/mochabugapis/adapt/plugins/v1/service_definition_pb.d.ts +2 -2
  64. package/dist/genproto/mochabugapis/adapt/plugins/v1/service_definition_pb.d.ts.map +1 -1
  65. package/dist/genproto/mochabugapis/adapt/plugins/v1/service_settings_pb.d.ts +2 -2
  66. package/dist/genproto/mochabugapis/adapt/plugins/v1/service_settings_pb.d.ts.map +1 -1
  67. package/dist/genproto/mochabugapis/adapt/plugins/v1/variable_service_pb.d.ts +2 -2
  68. package/dist/genproto/mochabugapis/adapt/plugins/v1/variable_service_pb.d.ts.map +1 -1
  69. package/dist/genproto/mochabugapis/adapt/plugins/v1/vertex_pb.d.ts +4 -4
  70. package/dist/genproto/mochabugapis/adapt/plugins/v1/vertex_pb.d.ts.map +1 -1
  71. package/dist/genproto/mochabugapis/adapt/runtime/v1/configurator_service_pb.d.ts +16 -14
  72. package/dist/genproto/mochabugapis/adapt/runtime/v1/configurator_service_pb.d.ts.map +1 -1
  73. package/dist/genproto/mochabugapis/adapt/runtime/v1/executor_service_pb.d.ts +16 -14
  74. package/dist/genproto/mochabugapis/adapt/runtime/v1/executor_service_pb.d.ts.map +1 -1
  75. package/dist/genproto/mochabugapis/adapt/runtime/v1/fileforge_service_pb.d.ts +130 -130
  76. package/dist/genproto/mochabugapis/adapt/runtime/v1/fileforge_service_pb.d.ts.map +1 -1
  77. package/dist/genproto/mochabugapis/adapt/runtime/v1/incoming_pb.d.ts +7 -7
  78. package/dist/genproto/mochabugapis/adapt/runtime/v1/incoming_pb.d.ts.map +1 -1
  79. package/dist/genproto/mochabugapis/adapt/runtime/v1/plugin_service_pb.d.ts +1 -1
  80. package/dist/genproto/mochabugapis/adapt/runtime/v1/plugin_service_pb.d.ts.map +1 -1
  81. package/dist/genproto/mochabugapis/adapt/runtime/v1/store_pb.d.ts +26 -24
  82. package/dist/genproto/mochabugapis/adapt/runtime/v1/store_pb.d.ts.map +1 -1
  83. package/package.json +4 -4
package/dist/cjs/cel.cjs CHANGED
@@ -1,6 +1,6 @@
1
- "use strict";var j=Object.defineProperty;var ge=Object.getOwnPropertyDescriptor;var he=Object.getOwnPropertyNames;var ye=Object.prototype.hasOwnProperty;var be=(e,n)=>{for(var t in n)j(e,t,{get:n[t],enumerable:!0})},ve=(e,n,t,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of he(n))!ye.call(e,i)&&i!==t&&j(e,i,{get:()=>n[i],enumerable:!(r=ge(n,i))||r.enumerable});return e};var Te=e=>ve(j({},"__esModule",{value:!0}),e);var Le={};be(Le,{CEL_DESCRIPTORS:()=>z,CEL_LANGUAGE_ID:()=>J,CEL_METHODS:()=>U,CUSTOM_FUNCS:()=>ne,CelScalar:()=>s.CelScalar,GLOBAL_FUNCTIONS:()=>A,TimestampSchema:()=>b.TimestampSchema,celFunc:()=>s.celFunc,celMethod:()=>s.celMethod,celOptions:()=>re,celRun:()=>s.run,celToNative:()=>D,evaluateExpression:()=>$,extractAccessPaths:()=>ie,extractHoverSegments:()=>Ve,extractLambdaBindings:()=>ze,findOptionalSegments:()=>oe,formatDateWithPattern:()=>te,fuzzJTD:()=>y,generateCelSymbolTree:()=>Oe,generateTestPermutations:()=>se,generateTranslationsSymbolTree:()=>je,isCelError:()=>s.isCelError,isCelList:()=>s.isCelList,isCelMap:()=>s.isCelMap,isCelUint:()=>s.isCelUint,listType:()=>s.listType,objectType:()=>s.objectType,parseDotPath:()=>Me,parseGeneralDotPath:()=>Ee,registerCelLanguage:()=>Ae,resolveNode:()=>ce,resolveWithLambdas:()=>me,setInputVariables:()=>Re,stringsExt:()=>E.strings,timestampDate:()=>b.timestampDate,timestampFromDate:()=>b.timestampFromDate,timestampMs:()=>b.timestampMs,timestampNow:()=>b.timestampNow,validateCelExpression:()=>ke,validateCelExpressionSyntax:()=>Ie});module.exports=Te(Le);var s=require("@bufbuild/cel"),E=require("@bufbuild/cel/ext"),b=require("@bufbuild/protobuf/wkt");var M=require("jtd"),xe=10;function y(e,n,t=0){if(t>xe)return null;if(e.ref){let r=n?.[e.ref];return r?y(r,n,t+1):null}if(e.type)switch(e.type){case"string":return"Lorem ipsum";case"timestamp":return"2024-01-15T10:30:00Z";case"float32":case"float64":return 42.5;case"int8":case"uint8":case"int16":case"uint16":case"int32":case"uint32":return BigInt(42);case"boolean":return!0;default:return null}if(e.enum)return e.enum[0]??null;if(e.elements)return[y(e.elements,n,t+1),y(e.elements,n,t+1)];if(e.values)return{key1:y(e.values,n,t+1)};if(e.properties||e.optionalProperties){let r={};if(e.properties)for(let[i,o]of Object.entries(e.properties))r[i]=y(o,n,t+1);if(e.optionalProperties)for(let[i,o]of Object.entries(e.optionalProperties))r[i]=y(o,n,t+1);return r}if(e.discriminator&&e.mapping){let r=Object.keys(e.mapping)[0];if(r){let i=e.mapping[r],o=y(i,n,t+1);return o[e.discriminator]=r,o}return null}return null}function w(e){return typeof e=="number"?e:typeof e=="bigint"?Number(e):(0,s.isCelUint)(e)?Number(e.value):null}function N(e,n){if(e===n)return!0;let t=(0,s.isCelUint)(e)?e.value:e,r=(0,s.isCelUint)(n)?n.value:n;return t===r}function Se(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function V(e){return e instanceof Uint8Array?e:ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function we(e){return new Uint8Array(e)}var L=typeof Buffer<"u",Je=L?e=>Buffer.from(e,"base64"):typeof Uint8Array.fromBase64=="function"?e=>Uint8Array.fromBase64(e):e=>Uint8Array.from(atob(e),n=>n.charCodeAt(0)),Ne=L?e=>Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):typeof Uint8Array.prototype.toBase64=="function"?e=>e.toBase64():e=>btoa(Array.from(e,n=>String.fromCharCode(n)).join(""));function G(e,n="utf-8"){if(Se(e))return V(e);let t=JSON.stringify(D(e));return n==="utf-8"||n==="utf8"?we(new TextEncoder().encode(t)):L?new Uint8Array(Buffer.from(t,n)):Uint8Array.from(t,r=>r.charCodeAt(0))}function Y(e,n="utf-8"){let t=V(e);return JSON.parse(new TextDecoder(n).decode(t))}function Z(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}var h=(0,s.listType)(s.CelScalar.DYN),{DYN:d,BOOL:q,INT:R}=s.CelScalar;function te(e,n){let t=e.getFullYear(),r=e.getMonth()+1,i=e.getDate(),o=e.getHours(),a=e.getMinutes(),l=e.getSeconds();return n.replace(/YYYY/g,String(t)).replace(/YY/g,String(t).slice(-2)).replace(/MM/g,String(r).padStart(2,"0")).replace(/DD/g,String(i).padStart(2,"0")).replace(/HH/g,String(o).padStart(2,"0")).replace(/mm/g,String(a).padStart(2,"0")).replace(/ss/g,String(l).padStart(2,"0"))}var ne=[(0,s.celFunc)("sum",[h],d,e=>{let n=0;for(let t of e){let r=w(t);r!==null&&(n+=r)}return n}),(0,s.celMethod)("sum",h,[],d,function(){let e=0;for(let n of this){let t=w(n);t!==null&&(e+=t)}return e}),(0,s.celFunc)("min",[h],d,e=>{let n=null;for(let t of e){let r=w(t);r!==null&&(n===null||r<n)&&(n=r)}return n??0}),(0,s.celMethod)("min",h,[],d,function(){let e=null;for(let n of this){let t=w(n);t!==null&&(e===null||t<e)&&(e=t)}return e??0}),(0,s.celFunc)("max",[h],d,e=>{let n=null;for(let t of e){let r=w(t);r!==null&&(n===null||r>n)&&(n=r)}return n??0}),(0,s.celMethod)("max",h,[],d,function(){let e=null;for(let n of this){let t=w(n);t!==null&&(e===null||t>e)&&(e=t)}return e??0}),(0,s.celFunc)("avg",[h],d,e=>{let n=0,t=0;for(let r of e){let i=w(r);i!==null&&(n+=i,t++)}return t>0?n/t:0}),(0,s.celMethod)("avg",h,[],d,function(){let e=0,n=0;for(let t of this){let r=w(t);r!==null&&(e+=r,n++)}return n>0?e/n:0}),(0,s.celFunc)("includes",[h,d],q,(e,n)=>{for(let t of e)if(N(t,n))return!0;return!1}),(0,s.celMethod)("includes",h,[d],q,function(e){for(let n of this)if(N(n,e))return!0;return!1}),(0,s.celFunc)("findIndex",[h,d],R,(e,n)=>{let t=0n;for(let r of e){if(N(r,n))return t;t++}return-1n}),(0,s.celMethod)("findIndex",h,[d],R,function(e){let n=0n;for(let t of this){if(N(t,e))return n;n++}return-1n}),(0,s.celFunc)("findLastIndex",[h,d],R,(e,n)=>{let t=[...e];for(let r=t.length-1;r>=0;r--)if(N(t[r],n))return BigInt(r);return-1n}),(0,s.celMethod)("findLastIndex",h,[d],R,function(e){let n=[...this];for(let t=n.length-1;t>=0;t--)if(N(n[t],e))return BigInt(t);return-1n}),(0,s.celFunc)("now",[],(0,s.objectType)(b.TimestampSchema),()=>(0,b.timestampNow)()),(0,s.celFunc)("lower",[s.CelScalar.STRING],s.CelScalar.STRING,e=>e.toLowerCase()),(0,s.celFunc)("upper",[s.CelScalar.STRING],s.CelScalar.STRING,e=>e.toUpperCase()),(0,s.celMethod)("lower",s.CelScalar.STRING,[],s.CelScalar.STRING,function(){return this.toLowerCase()}),(0,s.celMethod)("upper",s.CelScalar.STRING,[],s.CelScalar.STRING,function(){return this.toUpperCase()}),(0,s.celFunc)("base64decode",[s.CelScalar.STRING],d,e=>Je(e)),(0,s.celFunc)("base64encode",[d],s.CelScalar.STRING,e=>Ne(V(e))),(0,s.celFunc)("encode",[d],d,e=>G(e)),(0,s.celFunc)("encode",[d,s.CelScalar.STRING],d,(e,n)=>G(e,n)),(0,s.celFunc)("decode",[d],d,e=>Y(e)),(0,s.celFunc)("decode",[d,s.CelScalar.STRING],d,(e,n)=>Y(e,n)),(0,s.celFunc)("htmlEscape",[s.CelScalar.STRING],s.CelScalar.STRING,e=>Z(e)),(0,s.celFunc)("attrEscape",[s.CelScalar.STRING],s.CelScalar.STRING,e=>Z(e)),(0,s.celMethod)("formatDate",(0,s.objectType)(b.TimestampSchema),[s.CelScalar.STRING],s.CelScalar.STRING,function(e){let n=this.message,t=Number(n.seconds)*1e3+Math.floor(n.nanos/1e6),r=new Date(t);return te(r,e)})],re={funcs:[...E.strings,...ne]};function D(e){if((0,s.isCelList)(e))return[...e].map(n=>D(n));if((0,s.isCelMap)(e)){let n={};for(let[t,r]of e)n[String(t)]=D(r);return n}return typeof e=="bigint"?Number(e):e}var W=1e4;function ie(e,n){let t=n.filter(u=>u.length>0&&/^\w+$/.test(u));if(t.length===0)return[];let r=[],o=t.map(u=>u.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|"),a=new RegExp(`\\b(${o})(?:(?:\\.([a-zA-Z_]\\w*)|\\["([^"]+)"\\]|\\['([^']+)'\\])|(?=$|[^a-zA-Z_0-9.\\[]))`,"g"),l;for(;(l=a.exec(e))!==null;){let u=l[1],m=l[2]||l[3]||l[4];if(!m){r.push({variableName:u,path:[],fullPath:u});continue}let f=[m],c=l.index+l[0].length;for(;c<e.length;){let g=e.slice(c).match(/^\.([a-zA-Z_]\w*)/);if(g){let T=c+g[0].length;if(e[T]==="(")break;f.push(g[1]),c=T;continue}let S=e.slice(c).match(/^\["([^"]+)"\]|^\['([^']+)'\]/);if(S){f.push(S[1]||S[2]),c+=S[0].length;continue}break}let p=u+"."+f.join(".");r.push({variableName:u,path:f,fullPath:p})}return Ce(r)}function Ce(e){let n=new Map;for(let r of e){let i=n.get(r.variableName)||[];i.push(r),n.set(r.variableName,i)}let t=[];for(let[,r]of n){r.sort((o,a)=>a.path.length-o.path.length);let i=[];for(let o of r)i.some(l=>Pe(o,l))||i.push(o);t.push(...i)}return t}function Pe(e,n){if(e.variableName!==n.variableName||e.path.length>n.path.length)return!1;for(let t=0;t<e.path.length;t++)if(e.path[t]!==n.path[t])return!1;return!0}function oe(e,n,t){let r=[];if(t&&r.push({segmentIndex:-1,propertyName:"",isSignalOptional:!0}),!n||e.length===0)return r;let i=n;for(let o=0;o<e.length;o++){let a=e[o];if(!i)break;let l=i.optionalProperties,u=i.properties;if(l&&a in l)r.push({segmentIndex:o,propertyName:a,isSignalOptional:!1}),i=l[a];else if(u&&a in u)i=u[a];else break}return r}function se(e,n){let t=[],r={};for(let i of e)r[i.name]=y(i.schema,i.schema.definitions);t.push({bindings:r,description:"All properties present"});for(let i of n){let o=e.find(l=>l.name===i.variableName);if(!o)continue;let a=oe(i.path,o.schema,o.optional??!1);for(let l of a){let u=structuredClone(r);if(l.isSignalOptional&&l.segmentIndex===-1)delete u[i.variableName],t.push({bindings:u,description:`Variable '${i.variableName}' not bound`,unsetPath:i.variableName});else{let m=i.path.slice(0,l.segmentIndex+1);De(u[i.variableName],m);let f=`${i.variableName}.${m.join(".")}`;t.push({bindings:u,description:`Optional property '${l.propertyName}' unset`,unsetPath:f})}}}return t}function De(e,n){if(n.length===0||e===null||typeof e!="object")return;let t=e;for(let r=0;r<n.length-1;r++){if(t===null||typeof t!="object")return;t=t[n[r]]}t!==null&&typeof t=="object"&&delete t[n[n.length-1]]}function $(e,n){if(e.length>W)return{error:`Expression exceeds maximum length of ${W} characters`};try{let t={};for(let[i,o]of Object.entries(n))t[i]=o;let r=(0,s.run)(e,t,re);return(0,s.isCelError)(r)?{error:r.message}:{result:D(r)}}catch(t){return{error:t instanceof Error?t.message:String(t)}}}function ke(e,n){let t=[];if(!e.trim())return{valid:!0};let r={};for(let u of n)r[u.name]=y(u.schema,u.schema.definitions);let i=$(e,r);if(i.error)return{valid:!1,errors:[{message:`Syntax error: ${i.error}`}]};let o=n.map(u=>u.name),a=ie(e,o);if(a.length===0)return{valid:!0};let l=se(n,a);for(let u=1;u<l.length;u++){let m=l[u],f=$(e,m.bindings);f.error&&t.push({message:`Expression fails when ${m.description}: ${f.error}`,path:m.unsetPath,isOptionalAccess:!0})}return t.length>0?{valid:!1,errors:t}:{valid:!0}}function Ie(e,n){if(!e.trim())return{valid:!0};let t={};for(let i of n)t[i.name]=y(i.schema,i.schema.definitions);let r=$(e,t);return r.error?{valid:!1,errors:[{message:r.error}]}:{valid:!0}}var J="cel",A=[{name:"string",detail:"string(x) \u2192 string",documentation:"Convert value to string. Works on bool, int, uint, double, bytes, timestamp, duration.",params:["x"]},{name:"int",detail:"int(x) \u2192 int",documentation:"Convert value to integer. Works on uint, double, string, timestamp, duration.",params:["x"]},{name:"uint",detail:"uint(x) \u2192 uint",documentation:"Convert value to unsigned integer. Works on int, double, string.",params:["x"]},{name:"double",detail:"double(x) \u2192 double",documentation:"Convert value to double. Works on int, uint, string.",params:["x"]},{name:"bool",detail:"bool(x) \u2192 bool",documentation:'Convert value to boolean. String values: "true", "false", "t", "f", "1", "0".',params:["x"]},{name:"bytes",detail:"bytes(x) \u2192 bytes",documentation:"Convert value to bytes. String is UTF-8 encoded.",params:["x"]},{name:"timestamp",detail:"timestamp(x) \u2192 timestamp",documentation:"Convert value to timestamp. String must be RFC3339 format.",params:["x"]},{name:"duration",detail:"duration(x) \u2192 duration",documentation:'Convert value to duration. String format: "300s", "1.5h", "2m30s".',params:["x"]},{name:"type",detail:"type(x) \u2192 type",documentation:"Returns the type of the value.",params:["x"]},{name:"dyn",detail:"dyn(x) \u2192 dyn",documentation:"Identity function, returns the value unchanged.",params:["x"]},{name:"size",detail:"size(x) \u2192 int",documentation:"Returns size of string (codepoints), list, bytes, or map.",params:["x"]},{name:"has",detail:"has(x.field) \u2192 bool",documentation:"Check if field exists and is not null. Use to guard optional values.",params:["x.field"]},{name:"now",detail:"now() \u2192 timestamp",documentation:"Returns the current timestamp.",params:[]},{name:"strings.quote",detail:"strings.quote(s) \u2192 string",documentation:"Returns a quoted string with escape sequences.",params:["s"]},{name:"sum",detail:"sum(list) \u2192 number",documentation:"Sum of numeric list elements.",params:["list"]},{name:"min",detail:"min(list) \u2192 number",documentation:"Minimum value in a numeric list.",params:["list"]},{name:"max",detail:"max(list) \u2192 number",documentation:"Maximum value in a numeric list.",params:["list"]},{name:"avg",detail:"avg(list) \u2192 number",documentation:"Average of numeric list elements.",params:["list"]},{name:"includes",detail:"includes(list, element) \u2192 bool",documentation:"True if list contains element.",params:["list","element"]},{name:"findIndex",detail:"findIndex(list, element) \u2192 int",documentation:"Index of first occurrence, or -1.",params:["list","element"]},{name:"findLastIndex",detail:"findLastIndex(list, element) \u2192 int",documentation:"Index of last occurrence, or -1.",params:["list","element"]},{name:"lower",detail:"lower(s) \u2192 string",documentation:"Full Unicode lowercase.",params:["s"]},{name:"upper",detail:"upper(s) \u2192 string",documentation:"Full Unicode uppercase.",params:["s"]},{name:"base64decode",detail:"base64decode(s) \u2192 bytes",documentation:"Decode base64 string to bytes.",params:["s"]},{name:"base64encode",detail:"base64encode(data) \u2192 string",documentation:"Encode bytes to base64 string.",params:["data"]},{name:"encode",detail:"encode(value, encoding?) \u2192 bytes",documentation:"JSON-serialize any value to bytes. Default encoding: utf-8. If value is already bytes, passes through.",params:["value","encoding"]},{name:"decode",detail:"decode(data, encoding?) \u2192 dyn",documentation:"Parse JSON bytes to a value. Default encoding: utf-8.",params:["data","encoding"]},{name:"htmlEscape",detail:"htmlEscape(s) \u2192 string",documentation:"HTML-encode a string for safe insertion into HTML text content.",params:["s"]},{name:"attrEscape",detail:"attrEscape(s) \u2192 string",documentation:"HTML-encode a string for safe insertion into an HTML attribute value.",params:["s"]}],U=[{name:"contains",detail:".contains(substr) \u2192 bool",documentation:"True if string contains substr.",params:["substr"],receiverType:"string"},{name:"startsWith",detail:".startsWith(prefix) \u2192 bool",documentation:"True if string starts with prefix.",params:["prefix"],receiverType:"string"},{name:"endsWith",detail:".endsWith(suffix) \u2192 bool",documentation:"True if string ends with suffix.",params:["suffix"],receiverType:"string"},{name:"matches",detail:".matches(regex) \u2192 bool",documentation:"True if string matches RE2 regex pattern.",params:["regex"],receiverType:"string"},{name:"size",detail:".size() \u2192 int",documentation:"Returns number of Unicode codepoints in string.",params:[],receiverType:"string"},{name:"charAt",detail:".charAt(index) \u2192 string",documentation:"Returns character at index.",params:["index"],receiverType:"string"},{name:"indexOf",detail:".indexOf(substr, start?) \u2192 int",documentation:"Index of first occurrence of substr, or -1 if not found.",params:["substr","start"],receiverType:"string"},{name:"lastIndexOf",detail:".lastIndexOf(substr, start?) \u2192 int",documentation:"Index of last occurrence of substr, or -1 if not found.",params:["substr","start"],receiverType:"string"},{name:"lowerAscii",detail:".lowerAscii() \u2192 string",documentation:"Convert ASCII letters to lowercase (A-Z only).",params:[],receiverType:"string"},{name:"upperAscii",detail:".upperAscii() \u2192 string",documentation:"Convert ASCII letters to uppercase (a-z only).",params:[],receiverType:"string"},{name:"replace",detail:".replace(old, new, count?) \u2192 string",documentation:"Replace occurrences of old with new. If count specified, replaces at most count times.",params:["old","new","count"],receiverType:"string"},{name:"split",detail:".split(sep, count?) \u2192 list",documentation:"Split string by separator. If count specified, splits into at most count parts.",params:["sep","count"],receiverType:"string"},{name:"substring",detail:".substring(start, end?) \u2192 string",documentation:"Extract substring from start index to end index (exclusive).",params:["start","end"],receiverType:"string"},{name:"trim",detail:".trim() \u2192 string",documentation:"Remove leading and trailing Unicode whitespace.",params:[],receiverType:"string"},{name:"format",detail:".format(args) \u2192 string",documentation:"Format string with arguments. Placeholders: %s (string), %d (decimal), %f (float), %e (exponent), %x (hex), %o (octal), %b (binary).",params:["args"],receiverType:"string"},{name:"lower",detail:".lower() \u2192 string",documentation:"Lowercase string (full Unicode).",params:[],receiverType:"string"},{name:"upper",detail:".upper() \u2192 string",documentation:"Uppercase string (full Unicode).",params:[],receiverType:"string"},{name:"join",detail:".join(sep?) \u2192 string",documentation:"Join list elements into string with optional separator.",params:["sep"],receiverType:"list"},{name:"size",detail:".size() \u2192 int",documentation:"Number of elements in list.",params:[],receiverType:"list"},{name:"map",detail:".map(x, expr) \u2192 list",documentation:"Transform each element using expression.",params:["x","expr"],receiverType:"list"},{name:"filter",detail:".filter(x, predicate) \u2192 list",documentation:"Filter elements by predicate.",params:["x","predicate"],receiverType:"list"},{name:"all",detail:".all(x, predicate) \u2192 bool",documentation:"True if all elements match predicate.",params:["x","predicate"],receiverType:"list"},{name:"exists",detail:".exists(x, predicate) \u2192 bool",documentation:"True if any element matches predicate.",params:["x","predicate"],receiverType:"list"},{name:"exists_one",detail:".exists_one(x, predicate) \u2192 bool",documentation:"True if exactly one element matches predicate.",params:["x","predicate"],receiverType:"list"},{name:"sum",detail:".sum() \u2192 number",documentation:"Sum of numeric list elements.",params:[],receiverType:"list"},{name:"min",detail:".min() \u2192 number",documentation:"Minimum value in list.",params:[],receiverType:"list"},{name:"max",detail:".max() \u2192 number",documentation:"Maximum value in list.",params:[],receiverType:"list"},{name:"avg",detail:".avg() \u2192 number",documentation:"Average of list elements.",params:[],receiverType:"list"},{name:"includes",detail:".includes(element) \u2192 bool",documentation:"True if list contains element.",params:["element"],receiverType:"list"},{name:"findIndex",detail:".findIndex(element) \u2192 int",documentation:"First index of element, or -1.",params:["element"],receiverType:"list"},{name:"findLastIndex",detail:".findLastIndex(element) \u2192 int",documentation:"Last index of element, or -1.",params:["element"],receiverType:"list"},{name:"getFullYear",detail:".getFullYear(tz?) \u2192 int",documentation:"4-digit year. Optional timezone (IANA or fixed offset).",params:["tz"],receiverType:"timestamp"},{name:"getMonth",detail:".getMonth(tz?) \u2192 int",documentation:"Month (0-11). Optional timezone.",params:["tz"],receiverType:"timestamp"},{name:"getDate",detail:".getDate(tz?) \u2192 int",documentation:"Day of month (1-31). Optional timezone.",params:["tz"],receiverType:"timestamp"},{name:"getDayOfMonth",detail:".getDayOfMonth(tz?) \u2192 int",documentation:"Day of month (0-30). Optional timezone.",params:["tz"],receiverType:"timestamp"},{name:"getDayOfWeek",detail:".getDayOfWeek(tz?) \u2192 int",documentation:"Day of week (0=Sunday). Optional timezone.",params:["tz"],receiverType:"timestamp"},{name:"getDayOfYear",detail:".getDayOfYear(tz?) \u2192 int",documentation:"Day of year (0-365). Optional timezone.",params:["tz"],receiverType:"timestamp"},{name:"getHours",detail:".getHours(tz?) \u2192 int",documentation:"Hours (0-23). Optional timezone.",params:["tz"],receiverType:"timestamp"},{name:"getMinutes",detail:".getMinutes(tz?) \u2192 int",documentation:"Minutes (0-59). Optional timezone.",params:["tz"],receiverType:"timestamp"},{name:"getSeconds",detail:".getSeconds(tz?) \u2192 int",documentation:"Seconds (0-59). Optional timezone.",params:["tz"],receiverType:"timestamp"},{name:"getMilliseconds",detail:".getMilliseconds(tz?) \u2192 int",documentation:"Milliseconds (0-999). Optional timezone.",params:["tz"],receiverType:"timestamp"},{name:"formatDate",detail:".formatDate(pattern) \u2192 string",documentation:"Format timestamp. Patterns: YYYY, YY, MM, DD, HH, mm, ss.",params:["pattern"],receiverType:"timestamp"},{name:"getSeconds",detail:".getSeconds() \u2192 int",documentation:"Total seconds in duration.",params:[],receiverType:"duration"},{name:"getMinutes",detail:".getMinutes() \u2192 int",documentation:"Total minutes in duration (seconds / 60).",params:[],receiverType:"duration"},{name:"getHours",detail:".getHours() \u2192 int",documentation:"Total hours in duration (seconds / 3600).",params:[],receiverType:"duration"},{name:"getMilliseconds",detail:".getMilliseconds() \u2192 int",documentation:"Milliseconds portion of duration.",params:[],receiverType:"duration"},{name:"size",detail:".size() \u2192 int",documentation:"Number of entries in map or bytes in buffer.",params:[],receiverType:"map"}],z=(()=>{let e=new Map;for(let n of A){let t=n.name.includes(".")?n.name.split(".")[1]:n.name;e.set(t,[n])}for(let n of U){let t=e.get(n.name);t?t.some(r=>r.detail===n.detail)||t.push(n):e.set(n.name,[n])}return e})(),P=[];function Re(e){P=e}function I(e,n){return e.ref&&n?.[e.ref]?I(n[e.ref],n):e}function K(e){return e?.definitions}function O(e,n,t){if(!e||n.length===0)return e;let r=I(e,t),[i,...o]=n,a={...r.properties,...r.optionalProperties};if(i&&a[i])return O(a[i],o,t);if(r.discriminator&&r.mapping&&i){if(i===r.discriminator)return o.length===0?{enum:Object.keys(r.mapping)}:void 0;for(let l of Object.values(r.mapping)){let u={...l.properties,...l.optionalProperties};if(u[i])return O(u[i],o,t)}}}function X(e,n){let t=I(e,n);return t.type?t.type:t.enum?`enum(${t.enum.slice(0,3).join(", ")}${t.enum.length>3?"...":""})`:t.properties||t.optionalProperties?"object":t.elements?"list":t.values?"map":t.discriminator?`union(${t.discriminator})`:"any"}function $e(e,n){if(!e)return[];let t=I(e,n),r=[],i={...t.properties,...t.optionalProperties};for(let[o,a]of Object.entries(i))r.push({name:o,type:X(a,n)});if(t.discriminator&&t.mapping){let o=Object.keys(t.mapping);r.push({name:t.discriminator,type:o.join(" | ")});let a=new Set([t.discriminator]);for(let l of Object.values(t.mapping)){let u={...l.properties,...l.optionalProperties};for(let[m,f]of Object.entries(u))a.has(m)||(a.add(m),r.push({name:m,type:X(f,n)}))}}return r}function Q(e,n){if(!e)return!1;let t=I(e,n);return!!(t.properties||t.optionalProperties||t.discriminator&&t.mapping)}function ee(){let e=new Set,n=[];for(let t of U){let r=`${t.name}|${t.detail}`;e.has(r)||(e.add(r),n.push(t))}return n}function Ae(e){e.languages.getLanguages().some(n=>n.id===J)||(e.languages.register({id:J}),e.languages.setLanguageConfiguration(J,{brackets:[["(",")"],["[","]"],["{","}"]],autoClosingPairs:[{open:"(",close:")"},{open:"[",close:"]"},{open:"{",close:"}"}],surroundingPairs:[{open:"(",close:")"},{open:"[",close:"]"},{open:"{",close:"}"},{open:'"',close:'"'},{open:"'",close:"'"}]}),e.languages.setMonarchTokensProvider(J,{keywords:["true","false","null","in"],builtins:A.map(n=>n.name.split(".")[0]),operators:["&&","||","!","==","!=","<=",">=","<",">","+","-","*","/","%","?",":"],tokenizer:{root:[[/"(?:[^"\\]|\\.)*"/,"string"],[/'(?:[^'\\]|\\.)*'/,"string"],[/\d+\.\d*([eE][-+]?\d+)?/,"number.float"],[/\d*\.\d+([eE][-+]?\d+)?/,"number.float"],[/\d+[eE][-+]?\d+/,"number.float"],[/0[xX][0-9a-fA-F]+[uU]?/,"number.hex"],[/\d+[uU]?/,"number"],[/\./,"delimiter","@afterDot"],[/[a-zA-Z_]\w*/,{cases:{"@keywords":"keyword","@builtins":"predefined","@default":"identifier"}}],[/&&|\|\||[!=]=|[<>]=?/,"operator"],[/[+\-*/%?:!]/,"operator"],[/[[\](){}]/,"@brackets"],[/,/,"delimiter"],[/\s+/,"white"]],afterDot:[[/[a-zA-Z_]\w*/,"variable.property","@pop"],[/\s+/,"white"],[/./,"@rematch","@pop"]]}}),e.languages.registerCompletionItemProvider(J,{triggerCharacters:["."],provideCompletionItems:(n,t)=>{let r=n.getValueInRange({startLineNumber:t.lineNumber,startColumn:1,endLineNumber:t.lineNumber,endColumn:t.column}),i=!1,o=!1;for(let c=0;c<r.length;c++){let p=r[c];if(p==="\\"){c++;continue}p==='"'&&!o&&(i=!i),p==="'"&&!i&&(o=!o)}if(i||o)return{suggestions:[]};let a=n.getWordUntilPosition(t),l={startLineNumber:t.lineNumber,startColumn:a.startColumn,endLineNumber:t.lineNumber,endColumn:a.endColumn},u=r.slice(0,r.length-a.word.length).match(/inputs\.(\w+(?:\.\w+)*)\.\s*$/);if(u){let c=u[1].split("."),p=c[0],g=c.slice(1),S=P.find(T=>T.name===p);if(S?.schema){let T=K(S.schema),F=O(S.schema,g,T),_=$e(F,T),H=_.map((x,v)=>{let de=O(F,[x.name],T),fe=Q(de,T);return{label:x.name,kind:fe?e.languages.CompletionItemKind.Module:e.languages.CompletionItemKind.Property,detail:x.type,documentation:`Property of inputs.${c.join(".")}`,insertText:x.name,range:l,sortText:String(v).padStart(3,"0")}}),B=ee();for(let x=0;x<B.length;x++){let v=B[x];H.push({label:v.name,kind:e.languages.CompletionItemKind.Method,detail:`${v.detail} (${v.receiverType})`,documentation:v.documentation,insertText:v.params.length>0?`${v.name}($0)`:`${v.name}()`,insertTextRules:v.params.length>0?e.languages.CompletionItemInsertTextRule.InsertAsSnippet:void 0,range:l,sortText:String(_.length+x).padStart(3,"0")})}return{suggestions:H}}return{suggestions:[]}}if(/inputs\.\s*$/.test(r.slice(0,r.length-a.word.length)))return{suggestions:P.map((c,p)=>{let g=Q(c.schema,K(c.schema));return{label:c.name,kind:g?e.languages.CompletionItemKind.Module:e.languages.CompletionItemKind.Variable,detail:c.label||(g?"object":"Input variable"),documentation:`Access as inputs.${c.name}${g?" (has nested properties)":""}`,insertText:c.name,range:l,sortText:String(p).padStart(3,"0")}})};if(/\.\s*$/.test(r.slice(0,r.length-a.word.length)))return{suggestions:ee().map((p,g)=>({label:p.name,kind:e.languages.CompletionItemKind.Method,detail:`${p.detail} (${p.receiverType})`,documentation:p.documentation,insertText:p.params.length>0?`${p.name}($0)`:`${p.name}()`,insertTextRules:p.params.length>0?e.languages.CompletionItemInsertTextRule.InsertAsSnippet:void 0,range:l,sortText:String(g).padStart(3,"0")}))};let m=[],f=0;m.push({label:"inputs",kind:e.languages.CompletionItemKind.Variable,detail:"object",documentation:"Access input signals (e.g., inputs.customerName)",insertText:"inputs.",range:l,sortText:String(f++).padStart(3,"0")});for(let c of P)m.push({label:`inputs.${c.name}`,kind:e.languages.CompletionItemKind.Variable,detail:c.label||"Input variable",documentation:`Access the "${c.name}" input signal`,insertText:`inputs.${c.name}`,range:l,sortText:String(f++).padStart(3,"0")});for(let c of A)m.push({label:c.name,kind:e.languages.CompletionItemKind.Function,detail:c.detail,documentation:c.documentation,insertText:c.params.length>0?`${c.name}($0)`:`${c.name}()`,insertTextRules:c.params.length>0?e.languages.CompletionItemInsertTextRule.InsertAsSnippet:void 0,range:l,sortText:String(f++).padStart(3,"0")});return{suggestions:m}}}),e.languages.registerHoverProvider(J,{provideHover:(n,t)=>{let r=n.getWordAtPosition(t);if(!r)return null;let i=P.find(a=>a.name===r.word);if(i)return{range:{startLineNumber:t.lineNumber,startColumn:r.startColumn,endLineNumber:t.lineNumber,endColumn:r.endColumn},contents:[{value:`**inputs.${i.name}**${i.label?`
1
+ "use strict";var M=Object.defineProperty;var Se=Object.getOwnPropertyDescriptor;var xe=Object.getOwnPropertyNames;var Je=Object.prototype.hasOwnProperty;var we=(e,t)=>{for(var n in t)M(e,n,{get:t[n],enumerable:!0})},ke=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of xe(t))!Je.call(e,i)&&i!==n&&M(e,i,{get:()=>t[i],enumerable:!(r=Se(t,i))||r.enumerable});return e};var De=e=>ke(M({},"__esModule",{value:!0}),e);var Ge={};we(Ge,{CEL_DESCRIPTORS:()=>_,CEL_LANGUAGE_ID:()=>w,CEL_METHODS:()=>H,CUSTOM_FUNCS:()=>le,CelScalar:()=>s.CelScalar,GLOBAL_FUNCTIONS:()=>A,TimestampSchema:()=>h.TimestampSchema,celFunc:()=>s.celFunc,celMethod:()=>s.celMethod,celOptions:()=>ue,celRun:()=>s.run,celToNative:()=>N,evaluateExpression:()=>O,extractAccessPaths:()=>ce,extractHoverSegments:()=>He,extractLambdaBindings:()=>Le,findOptionalSegments:()=>pe,formatDateWithPattern:()=>ae,fuzzJTD:()=>b,fuzzJTDForCel:()=>E,generateCelSymbolTree:()=>_e,generateTestPermutations:()=>fe,generateTranslationsSymbolTree:()=>Ve,isCelError:()=>s.isCelError,isCelList:()=>s.isCelList,isCelMap:()=>s.isCelMap,isCelUint:()=>s.isCelUint,jtdJsonToCelInput:()=>se,listType:()=>s.listType,objectType:()=>s.objectType,parseDotPath:()=>Fe,parseGeneralDotPath:()=>Be,registerCelLanguage:()=>Ue,resolveNode:()=>ye,resolveWithLambdas:()=>be,setInputVariables:()=>Me,stringsExt:()=>F.strings,timestampDate:()=>h.timestampDate,timestampFromDate:()=>h.timestampFromDate,timestampMs:()=>h.timestampMs,timestampNow:()=>h.timestampNow,validateCelExpression:()=>Ie,validateCelExpressionSyntax:()=>Ee});module.exports=De(Ge);var s=require("@bufbuild/cel"),F=require("@bufbuild/cel/ext"),h=require("@bufbuild/protobuf/wkt");var z=require("jtd"),Re=10;function b(e,t,n=0){if(n>Re)return null;if(e.ref){let r=t?.[e.ref];return r?b(r,t,n+1):null}if(e.type)switch(e.type){case"string":return"Lorem ipsum";case"timestamp":return"2024-01-15T10:30:00Z";case"float32":case"float64":return 42.5;case"int8":case"uint8":case"int16":case"uint16":case"int32":case"uint32":return 42;case"boolean":return!0;default:return null}if(e.enum)return e.enum[0]??null;if(e.elements)return[b(e.elements,t,n+1),b(e.elements,t,n+1)];if(e.values)return{key1:b(e.values,t,n+1)};if(e.properties||e.optionalProperties){let r={};if(e.properties)for(let[i,o]of Object.entries(e.properties))r[i]=b(o,t,n+1);if(e.optionalProperties)for(let[i,o]of Object.entries(e.optionalProperties))r[i]=b(o,t,n+1);return r}if(e.discriminator&&e.mapping){let r=Object.keys(e.mapping)[0];if(r){let i=e.mapping[r],o=b(i,t,n+1);return o[e.discriminator]=r,o}return null}return null}var W=32,K={int8:{minimum:-128,maximum:127},uint8:{minimum:0,maximum:255},int16:{minimum:-32768,maximum:32767},uint16:{minimum:0,maximum:65535},int32:{minimum:-2147483648,maximum:2147483647},uint32:{minimum:0,maximum:4294967295}};function J(e){return typeof e=="number"?e:typeof e=="bigint"?Number(e):(0,s.isCelUint)(e)?Number(e.value):null}function k(e,t){if(e===t)return!0;let n=(0,s.isCelUint)(e)?e.value:e,r=(0,s.isCelUint)(t)?t.value:t;return n===r}function Ce(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function L(e){return e instanceof Uint8Array?e:ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function U(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function D(e,t,n,r){if(e==null||r>W)return e;if(t.ref){let o=n?.[t.ref];return o?D(e,o,n,r+1):e}if(t.type&&t.type in K&&typeof e=="number"&&Number.isInteger(e))return BigInt(e);if(t.elements&&Array.isArray(e))return e.map(o=>D(o,t.elements,n,r+1));if(t.values&&U(e))return Object.fromEntries(Object.entries(e).map(([o,a])=>[o,D(a,t.values,n,r+1)]));if(t.discriminator&&t.mapping&&U(e)){let o=e[t.discriminator],a=typeof o=="string"?t.mapping[o]:void 0;return a?D(e,a,n,r+1):e}let i={...t.properties??{},...t.optionalProperties??{}};if(Object.keys(i).length>0&&U(e)){let o={...e};for(let[a,l]of Object.entries(i))Object.prototype.hasOwnProperty.call(e,a)&&(o[a]=D(e[a],l,n,r+1));return o}return e}function se(e,t){return D(e,t,V(t),0)}function E(e){return se(b(e,e.definitions),e)}function Ne(e){return new Uint8Array(e)}var B=typeof Buffer<"u",$e=B?e=>Buffer.from(e,"base64"):typeof Uint8Array.fromBase64=="function"?e=>Uint8Array.fromBase64(e):e=>Uint8Array.from(atob(e),t=>t.charCodeAt(0)),je=B?e=>Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):typeof Uint8Array.prototype.toBase64=="function"?e=>e.toBase64():e=>btoa(Array.from(e,t=>String.fromCharCode(t)).join(""));function X(e,t="utf-8"){if(Ce(e))return L(e);let n=JSON.stringify(N(e));return t==="utf-8"||t==="utf8"?Ne(new TextEncoder().encode(n)):B?new Uint8Array(Buffer.from(n,t)):Uint8Array.from(n,r=>r.charCodeAt(0))}function Q(e,t="utf-8"){let n=L(e);return JSON.parse(new TextDecoder(t).decode(n))}function ee(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}var y=(0,s.listType)(s.CelScalar.DYN),{DYN:m,BOOL:te,INT:P}=s.CelScalar;function ae(e,t){let n=e.getFullYear(),r=e.getMonth()+1,i=e.getDate(),o=e.getHours(),a=e.getMinutes(),l=e.getSeconds();return t.replace(/YYYY/g,String(n)).replace(/YY/g,String(n).slice(-2)).replace(/MM/g,String(r).padStart(2,"0")).replace(/DD/g,String(i).padStart(2,"0")).replace(/HH/g,String(o).padStart(2,"0")).replace(/mm/g,String(a).padStart(2,"0")).replace(/ss/g,String(l).padStart(2,"0"))}var le=[(0,s.celFunc)("sum",[y],m,e=>{let t=0;for(let n of e){let r=J(n);r!==null&&(t+=r)}return t}),(0,s.celMethod)("sum",y,[],m,function(){let e=0;for(let t of this){let n=J(t);n!==null&&(e+=n)}return e}),(0,s.celFunc)("min",[y],m,e=>{let t=null;for(let n of e){let r=J(n);r!==null&&(t===null||r<t)&&(t=r)}return t??0}),(0,s.celMethod)("min",y,[],m,function(){let e=null;for(let t of this){let n=J(t);n!==null&&(e===null||n<e)&&(e=n)}return e??0}),(0,s.celFunc)("max",[y],m,e=>{let t=null;for(let n of e){let r=J(n);r!==null&&(t===null||r>t)&&(t=r)}return t??0}),(0,s.celMethod)("max",y,[],m,function(){let e=null;for(let t of this){let n=J(t);n!==null&&(e===null||n>e)&&(e=n)}return e??0}),(0,s.celFunc)("avg",[y],m,e=>{let t=0,n=0;for(let r of e){let i=J(r);i!==null&&(t+=i,n++)}return n>0?t/n:0}),(0,s.celMethod)("avg",y,[],m,function(){let e=0,t=0;for(let n of this){let r=J(n);r!==null&&(e+=r,t++)}return t>0?e/t:0}),(0,s.celFunc)("includes",[y,m],te,(e,t)=>{for(let n of e)if(k(n,t))return!0;return!1}),(0,s.celMethod)("includes",y,[m],te,function(e){for(let t of this)if(k(t,e))return!0;return!1}),(0,s.celFunc)("findIndex",[y,m],P,(e,t)=>{let n=0n;for(let r of e){if(k(r,t))return n;n++}return-1n}),(0,s.celMethod)("findIndex",y,[m],P,function(e){let t=0n;for(let n of this){if(k(n,e))return t;t++}return-1n}),(0,s.celFunc)("findLastIndex",[y,m],P,(e,t)=>{let n=[...e];for(let r=n.length-1;r>=0;r--)if(k(n[r],t))return BigInt(r);return-1n}),(0,s.celMethod)("findLastIndex",y,[m],P,function(e){let t=[...this];for(let n=t.length-1;n>=0;n--)if(k(t[n],e))return BigInt(n);return-1n}),(0,s.celFunc)("now",[],(0,s.objectType)(h.TimestampSchema),()=>(0,h.timestampNow)()),(0,s.celFunc)("lower",[s.CelScalar.STRING],s.CelScalar.STRING,e=>e.toLowerCase()),(0,s.celFunc)("upper",[s.CelScalar.STRING],s.CelScalar.STRING,e=>e.toUpperCase()),(0,s.celMethod)("lower",s.CelScalar.STRING,[],s.CelScalar.STRING,function(){return this.toLowerCase()}),(0,s.celMethod)("upper",s.CelScalar.STRING,[],s.CelScalar.STRING,function(){return this.toUpperCase()}),(0,s.celFunc)("base64decode",[s.CelScalar.STRING],m,e=>$e(e)),(0,s.celFunc)("base64encode",[m],s.CelScalar.STRING,e=>je(L(e))),(0,s.celFunc)("encode",[m],m,e=>X(e)),(0,s.celFunc)("encode",[m,s.CelScalar.STRING],m,(e,t)=>X(e,t)),(0,s.celFunc)("decode",[m],m,e=>Q(e)),(0,s.celFunc)("decode",[m,s.CelScalar.STRING],m,(e,t)=>Q(e,t)),(0,s.celFunc)("htmlEscape",[s.CelScalar.STRING],s.CelScalar.STRING,e=>ee(e)),(0,s.celFunc)("attrEscape",[s.CelScalar.STRING],s.CelScalar.STRING,e=>ee(e)),(0,s.celMethod)("formatDate",(0,s.objectType)(h.TimestampSchema),[s.CelScalar.STRING],s.CelScalar.STRING,function(e){let t=this.message,n=Number(t.seconds)*1e3+Math.floor(t.nanos/1e6),r=new Date(n);return ae(r,e)})],ue={funcs:[...F.strings,...le]};function N(e){if((0,s.isCelList)(e))return[...e].map(t=>N(t));if((0,s.isCelMap)(e)){let t={};for(let[n,r]of e)t[String(n)]=N(r);return t}return typeof e=="bigint"?Number(e):e}var ne=1e4;function ce(e,t){let n=t.filter(u=>u.length>0&&/^\w+$/.test(u));if(n.length===0)return[];let r=[],o=n.map(u=>u.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|"),a=new RegExp(`\\b(${o})(?:(?:\\.([a-zA-Z_]\\w*)|\\["([^"]+)"\\]|\\['([^']+)'\\])|(?=$|[^a-zA-Z_0-9.\\[]))`,"g"),l;for(;(l=a.exec(e))!==null;){let u=l[1],f=l[2]||l[3]||l[4];if(!f){r.push({variableName:u,path:[],fullPath:u});continue}let d=[f],c=l.index+l[0].length;for(;c<e.length;){let g=e.slice(c).match(/^\.([a-zA-Z_]\w*)/);if(g){let v=c+g[0].length;if(e[v]==="(")break;d.push(g[1]),c=v;continue}let x=e.slice(c).match(/^\["([^"]+)"\]|^\['([^']+)'\]/);if(x){d.push(x[1]||x[2]),c+=x[0].length;continue}break}let p=u+"."+d.join(".");r.push({variableName:u,path:d,fullPath:p})}return Pe(r)}function Pe(e){let t=new Map;for(let r of e){let i=t.get(r.variableName)||[];i.push(r),t.set(r.variableName,i)}let n=[];for(let[,r]of t){r.sort((o,a)=>a.path.length-o.path.length);let i=[];for(let o of r)i.some(l=>Oe(o,l))||i.push(o);n.push(...i)}return n}function Oe(e,t){if(e.variableName!==t.variableName||e.path.length>t.path.length)return!1;for(let n=0;n<e.path.length;n++)if(e.path[n]!==t.path[n])return!1;return!0}function pe(e,t,n){let r=[];if(n&&r.push({segmentIndex:-1,propertyName:"",isSignalOptional:!0}),!t||e.length===0)return r;let i=t;for(let o=0;o<e.length;o++){let a=e[o];if(!i)break;let l=i.optionalProperties,u=i.properties;if(l&&a in l)r.push({segmentIndex:o,propertyName:a,isSignalOptional:!1}),i=l[a];else if(u&&a in u)i=u[a];else break}return r}function fe(e,t){let n=[],r={};for(let i of e)r[i.name]=E(i.schema);n.push({bindings:r,description:"All properties present"});for(let i of t){let o=e.find(l=>l.name===i.variableName);if(!o)continue;let a=pe(i.path,o.schema,o.optional??!1);for(let l of a){let u=structuredClone(r);if(l.isSignalOptional&&l.segmentIndex===-1)delete u[i.variableName],n.push({bindings:u,description:`Variable '${i.variableName}' not bound`,unsetPath:i.variableName});else{let f=i.path.slice(0,l.segmentIndex+1);Ae(u[i.variableName],f);let d=`${i.variableName}.${f.join(".")}`;n.push({bindings:u,description:`Optional property '${l.propertyName}' unset`,unsetPath:d})}}}return n}function Ae(e,t){if(t.length===0||e===null||typeof e!="object")return;let n=e;for(let r=0;r<t.length-1;r++){if(n===null||typeof n!="object")return;n=n[t[r]]}n!==null&&typeof n=="object"&&delete n[t[t.length-1]]}function O(e,t){if(e.length>ne)return{error:`Expression exceeds maximum length of ${ne} characters`};try{let n={};for(let[i,o]of Object.entries(t))n[i]=o;let r=(0,s.run)(e,n,ue);return(0,s.isCelError)(r)?{error:r.message}:{result:N(r)}}catch(n){return{error:n instanceof Error?n.message:String(n)}}}function Ie(e,t){let n=[];if(!e.trim())return{valid:!0};let r={};for(let u of t)r[u.name]=E(u.schema);let i=O(e,r);if(i.error)return{valid:!1,errors:[{message:`Syntax error: ${i.error}`}]};let o=t.map(u=>u.name),a=ce(e,o);if(a.length===0)return{valid:!0};let l=fe(t,a);for(let u=1;u<l.length;u++){let f=l[u],d=O(e,f.bindings);d.error&&n.push({message:`Expression fails when ${f.description}: ${d.error}`,path:f.unsetPath,isOptionalAccess:!0})}return n.length>0?{valid:!1,errors:n}:{valid:!0}}function Ee(e,t){if(!e.trim())return{valid:!0};let n={};for(let i of t)n[i.name]=E(i.schema);let r=O(e,n);return r.error?{valid:!1,errors:[{message:r.error}]}:{valid:!0}}var w="cel",A=[{name:"string",detail:"string(x) \u2192 string",documentation:"Convert value to string. Works on bool, int, uint, double, bytes, timestamp, duration.",params:["x"]},{name:"int",detail:"int(x) \u2192 int",documentation:"Convert value to integer. Works on uint, double, string, timestamp, duration.",params:["x"]},{name:"uint",detail:"uint(x) \u2192 uint",documentation:"Convert value to unsigned integer. Works on int, double, string.",params:["x"]},{name:"double",detail:"double(x) \u2192 double",documentation:"Convert value to double. Works on int, uint, string.",params:["x"]},{name:"bool",detail:"bool(x) \u2192 bool",documentation:'Convert value to boolean. String values: "true", "false", "t", "f", "1", "0".',params:["x"]},{name:"bytes",detail:"bytes(x) \u2192 bytes",documentation:"Convert value to bytes. String is UTF-8 encoded.",params:["x"]},{name:"timestamp",detail:"timestamp(x) \u2192 timestamp",documentation:"Convert value to timestamp. String must be RFC3339 format.",params:["x"]},{name:"duration",detail:"duration(x) \u2192 duration",documentation:'Convert value to duration. String format: "300s", "1.5h", "2m30s".',params:["x"]},{name:"type",detail:"type(x) \u2192 type",documentation:"Returns the type of the value.",params:["x"]},{name:"dyn",detail:"dyn(x) \u2192 dyn",documentation:"Identity function, returns the value unchanged.",params:["x"]},{name:"size",detail:"size(x) \u2192 int",documentation:"Returns size of string (codepoints), list, bytes, or map.",params:["x"]},{name:"has",detail:"has(x.field) \u2192 bool",documentation:"Check if field exists and is not null. Use to guard optional values.",params:["x.field"]},{name:"now",detail:"now() \u2192 timestamp",documentation:"Returns the current timestamp.",params:[]},{name:"strings.quote",detail:"strings.quote(s) \u2192 string",documentation:"Returns a quoted string with escape sequences.",params:["s"]},{name:"sum",detail:"sum(list) \u2192 number",documentation:"Sum of numeric list elements.",params:["list"]},{name:"min",detail:"min(list) \u2192 number",documentation:"Minimum value in a numeric list.",params:["list"]},{name:"max",detail:"max(list) \u2192 number",documentation:"Maximum value in a numeric list.",params:["list"]},{name:"avg",detail:"avg(list) \u2192 number",documentation:"Average of numeric list elements.",params:["list"]},{name:"includes",detail:"includes(list, element) \u2192 bool",documentation:"True if list contains element.",params:["list","element"]},{name:"findIndex",detail:"findIndex(list, element) \u2192 int",documentation:"Index of first occurrence, or -1.",params:["list","element"]},{name:"findLastIndex",detail:"findLastIndex(list, element) \u2192 int",documentation:"Index of last occurrence, or -1.",params:["list","element"]},{name:"lower",detail:"lower(s) \u2192 string",documentation:"Full Unicode lowercase.",params:["s"]},{name:"upper",detail:"upper(s) \u2192 string",documentation:"Full Unicode uppercase.",params:["s"]},{name:"base64decode",detail:"base64decode(s) \u2192 bytes",documentation:"Decode base64 string to bytes.",params:["s"]},{name:"base64encode",detail:"base64encode(data) \u2192 string",documentation:"Encode bytes to base64 string.",params:["data"]},{name:"encode",detail:"encode(value, encoding?) \u2192 bytes",documentation:"JSON-serialize any value to bytes. Default encoding: utf-8. If value is already bytes, passes through.",params:["value","encoding"]},{name:"decode",detail:"decode(data, encoding?) \u2192 dyn",documentation:"Parse JSON bytes to a value. Default encoding: utf-8.",params:["data","encoding"]},{name:"htmlEscape",detail:"htmlEscape(s) \u2192 string",documentation:"HTML-encode a string for safe insertion into HTML text content.",params:["s"]},{name:"attrEscape",detail:"attrEscape(s) \u2192 string",documentation:"HTML-encode a string for safe insertion into an HTML attribute value.",params:["s"]}],H=[{name:"contains",detail:".contains(substr) \u2192 bool",documentation:"True if string contains substr.",params:["substr"],receiverType:"string"},{name:"startsWith",detail:".startsWith(prefix) \u2192 bool",documentation:"True if string starts with prefix.",params:["prefix"],receiverType:"string"},{name:"endsWith",detail:".endsWith(suffix) \u2192 bool",documentation:"True if string ends with suffix.",params:["suffix"],receiverType:"string"},{name:"matches",detail:".matches(regex) \u2192 bool",documentation:"True if string matches RE2 regex pattern.",params:["regex"],receiverType:"string"},{name:"size",detail:".size() \u2192 int",documentation:"Returns number of Unicode codepoints in string.",params:[],receiverType:"string"},{name:"charAt",detail:".charAt(index) \u2192 string",documentation:"Returns character at index.",params:["index"],receiverType:"string"},{name:"indexOf",detail:".indexOf(substr, start?) \u2192 int",documentation:"Index of first occurrence of substr, or -1 if not found.",params:["substr","start"],receiverType:"string"},{name:"lastIndexOf",detail:".lastIndexOf(substr, start?) \u2192 int",documentation:"Index of last occurrence of substr, or -1 if not found.",params:["substr","start"],receiverType:"string"},{name:"lowerAscii",detail:".lowerAscii() \u2192 string",documentation:"Convert ASCII letters to lowercase (A-Z only).",params:[],receiverType:"string"},{name:"upperAscii",detail:".upperAscii() \u2192 string",documentation:"Convert ASCII letters to uppercase (a-z only).",params:[],receiverType:"string"},{name:"replace",detail:".replace(old, new, count?) \u2192 string",documentation:"Replace occurrences of old with new. If count specified, replaces at most count times.",params:["old","new","count"],receiverType:"string"},{name:"split",detail:".split(sep, count?) \u2192 list",documentation:"Split string by separator. If count specified, splits into at most count parts.",params:["sep","count"],receiverType:"string"},{name:"substring",detail:".substring(start, end?) \u2192 string",documentation:"Extract substring from start index to end index (exclusive).",params:["start","end"],receiverType:"string"},{name:"trim",detail:".trim() \u2192 string",documentation:"Remove leading and trailing Unicode whitespace.",params:[],receiverType:"string"},{name:"format",detail:".format(args) \u2192 string",documentation:"Format string with arguments. Placeholders: %s (string), %d (decimal), %f (float), %e (exponent), %x (hex), %o (octal), %b (binary).",params:["args"],receiverType:"string"},{name:"lower",detail:".lower() \u2192 string",documentation:"Lowercase string (full Unicode).",params:[],receiverType:"string"},{name:"upper",detail:".upper() \u2192 string",documentation:"Uppercase string (full Unicode).",params:[],receiverType:"string"},{name:"join",detail:".join(sep?) \u2192 string",documentation:"Join list elements into string with optional separator.",params:["sep"],receiverType:"list"},{name:"size",detail:".size() \u2192 int",documentation:"Number of elements in list.",params:[],receiverType:"list"},{name:"map",detail:".map(x, expr) \u2192 list",documentation:"Transform each element using expression.",params:["x","expr"],receiverType:"list"},{name:"filter",detail:".filter(x, predicate) \u2192 list",documentation:"Filter elements by predicate.",params:["x","predicate"],receiverType:"list"},{name:"all",detail:".all(x, predicate) \u2192 bool",documentation:"True if all elements match predicate.",params:["x","predicate"],receiverType:"list"},{name:"exists",detail:".exists(x, predicate) \u2192 bool",documentation:"True if any element matches predicate.",params:["x","predicate"],receiverType:"list"},{name:"exists_one",detail:".exists_one(x, predicate) \u2192 bool",documentation:"True if exactly one element matches predicate.",params:["x","predicate"],receiverType:"list"},{name:"sum",detail:".sum() \u2192 number",documentation:"Sum of numeric list elements.",params:[],receiverType:"list"},{name:"min",detail:".min() \u2192 number",documentation:"Minimum value in list.",params:[],receiverType:"list"},{name:"max",detail:".max() \u2192 number",documentation:"Maximum value in list.",params:[],receiverType:"list"},{name:"avg",detail:".avg() \u2192 number",documentation:"Average of list elements.",params:[],receiverType:"list"},{name:"includes",detail:".includes(element) \u2192 bool",documentation:"True if list contains element.",params:["element"],receiverType:"list"},{name:"findIndex",detail:".findIndex(element) \u2192 int",documentation:"First index of element, or -1.",params:["element"],receiverType:"list"},{name:"findLastIndex",detail:".findLastIndex(element) \u2192 int",documentation:"Last index of element, or -1.",params:["element"],receiverType:"list"},{name:"getFullYear",detail:".getFullYear(tz?) \u2192 int",documentation:"4-digit year. Optional timezone (IANA or fixed offset).",params:["tz"],receiverType:"timestamp"},{name:"getMonth",detail:".getMonth(tz?) \u2192 int",documentation:"Month (0-11). Optional timezone.",params:["tz"],receiverType:"timestamp"},{name:"getDate",detail:".getDate(tz?) \u2192 int",documentation:"Day of month (1-31). Optional timezone.",params:["tz"],receiverType:"timestamp"},{name:"getDayOfMonth",detail:".getDayOfMonth(tz?) \u2192 int",documentation:"Day of month (0-30). Optional timezone.",params:["tz"],receiverType:"timestamp"},{name:"getDayOfWeek",detail:".getDayOfWeek(tz?) \u2192 int",documentation:"Day of week (0=Sunday). Optional timezone.",params:["tz"],receiverType:"timestamp"},{name:"getDayOfYear",detail:".getDayOfYear(tz?) \u2192 int",documentation:"Day of year (0-365). Optional timezone.",params:["tz"],receiverType:"timestamp"},{name:"getHours",detail:".getHours(tz?) \u2192 int",documentation:"Hours (0-23). Optional timezone.",params:["tz"],receiverType:"timestamp"},{name:"getMinutes",detail:".getMinutes(tz?) \u2192 int",documentation:"Minutes (0-59). Optional timezone.",params:["tz"],receiverType:"timestamp"},{name:"getSeconds",detail:".getSeconds(tz?) \u2192 int",documentation:"Seconds (0-59). Optional timezone.",params:["tz"],receiverType:"timestamp"},{name:"getMilliseconds",detail:".getMilliseconds(tz?) \u2192 int",documentation:"Milliseconds (0-999). Optional timezone.",params:["tz"],receiverType:"timestamp"},{name:"formatDate",detail:".formatDate(pattern) \u2192 string",documentation:"Format timestamp. Patterns: YYYY, YY, MM, DD, HH, mm, ss.",params:["pattern"],receiverType:"timestamp"},{name:"getSeconds",detail:".getSeconds() \u2192 int",documentation:"Total seconds in duration.",params:[],receiverType:"duration"},{name:"getMinutes",detail:".getMinutes() \u2192 int",documentation:"Total minutes in duration (seconds / 60).",params:[],receiverType:"duration"},{name:"getHours",detail:".getHours() \u2192 int",documentation:"Total hours in duration (seconds / 3600).",params:[],receiverType:"duration"},{name:"getMilliseconds",detail:".getMilliseconds() \u2192 int",documentation:"Milliseconds portion of duration.",params:[],receiverType:"duration"},{name:"size",detail:".size() \u2192 int",documentation:"Number of entries in map or bytes in buffer.",params:[],receiverType:"map"}],_=(()=>{let e=new Map;for(let t of A){let n=t.name.includes(".")?t.name.split(".")[1]:t.name;e.set(n,[t])}for(let t of H){let n=e.get(t.name);n?n.some(r=>r.detail===t.detail)||n.push(t):e.set(t.name,[t])}return e})(),C=[];function Me(e){C=e}function j(e,t){return e.ref&&t?.[e.ref]?j(t[e.ref],t):e}function V(e){return e?.definitions}function I(e,t,n){if(!e||t.length===0)return e;let r=j(e,n),[i,...o]=t,a={...r.properties,...r.optionalProperties};if(i&&a[i])return I(a[i],o,n);if(r.discriminator&&r.mapping&&i){if(i===r.discriminator)return o.length===0?{enum:Object.keys(r.mapping)}:void 0;for(let l of Object.values(r.mapping)){let u={...l.properties,...l.optionalProperties};if(u[i])return I(u[i],o,n)}}}function re(e,t){let n=j(e,t);return n.type?n.type:n.enum?`enum(${n.enum.slice(0,3).join(", ")}${n.enum.length>3?"...":""})`:n.properties||n.optionalProperties?"object":n.elements?"list":n.values?"map":n.discriminator?`union(${n.discriminator})`:"any"}function ze(e,t){if(!e)return[];let n=j(e,t),r=[],i={...n.properties,...n.optionalProperties};for(let[o,a]of Object.entries(i))r.push({name:o,type:re(a,t)});if(n.discriminator&&n.mapping){let o=Object.keys(n.mapping);r.push({name:n.discriminator,type:o.join(" | ")});let a=new Set([n.discriminator]);for(let l of Object.values(n.mapping)){let u={...l.properties,...l.optionalProperties};for(let[f,d]of Object.entries(u))a.has(f)||(a.add(f),r.push({name:f,type:re(d,t)}))}}return r}function ie(e,t){if(!e)return!1;let n=j(e,t);return!!(n.properties||n.optionalProperties||n.discriminator&&n.mapping)}function oe(){let e=new Set,t=[];for(let n of H){let r=`${n.name}|${n.detail}`;e.has(r)||(e.add(r),t.push(n))}return t}function Ue(e){e.languages.getLanguages().some(t=>t.id===w)||(e.languages.register({id:w}),e.languages.setLanguageConfiguration(w,{brackets:[["(",")"],["[","]"],["{","}"]],autoClosingPairs:[{open:"(",close:")"},{open:"[",close:"]"},{open:"{",close:"}"}],surroundingPairs:[{open:"(",close:")"},{open:"[",close:"]"},{open:"{",close:"}"},{open:'"',close:'"'},{open:"'",close:"'"}]}),e.languages.setMonarchTokensProvider(w,{keywords:["true","false","null","in"],builtins:A.map(t=>t.name.split(".")[0]),operators:["&&","||","!","==","!=","<=",">=","<",">","+","-","*","/","%","?",":"],tokenizer:{root:[[/"(?:[^"\\]|\\.)*"/,"string"],[/'(?:[^'\\]|\\.)*'/,"string"],[/\d+\.\d*([eE][-+]?\d+)?/,"number.float"],[/\d*\.\d+([eE][-+]?\d+)?/,"number.float"],[/\d+[eE][-+]?\d+/,"number.float"],[/0[xX][0-9a-fA-F]+[uU]?/,"number.hex"],[/\d+[uU]?/,"number"],[/\./,"delimiter","@afterDot"],[/[a-zA-Z_]\w*/,{cases:{"@keywords":"keyword","@builtins":"predefined","@default":"identifier"}}],[/&&|\|\||[!=]=|[<>]=?/,"operator"],[/[+\-*/%?:!]/,"operator"],[/[[\](){}]/,"@brackets"],[/,/,"delimiter"],[/\s+/,"white"]],afterDot:[[/[a-zA-Z_]\w*/,"variable.property","@pop"],[/\s+/,"white"],[/./,"@rematch","@pop"]]}}),e.languages.registerCompletionItemProvider(w,{triggerCharacters:["."],provideCompletionItems:(t,n)=>{let r=t.getValueInRange({startLineNumber:n.lineNumber,startColumn:1,endLineNumber:n.lineNumber,endColumn:n.column}),i=!1,o=!1;for(let c=0;c<r.length;c++){let p=r[c];if(p==="\\"){c++;continue}p==='"'&&!o&&(i=!i),p==="'"&&!i&&(o=!o)}if(i||o)return{suggestions:[]};let a=t.getWordUntilPosition(n),l={startLineNumber:n.lineNumber,startColumn:a.startColumn,endLineNumber:n.lineNumber,endColumn:a.endColumn},u=r.slice(0,r.length-a.word.length).match(/inputs\.(\w+(?:\.\w+)*)\.\s*$/);if(u){let c=u[1].split("."),p=c[0],g=c.slice(1),x=C.find(v=>v.name===p);if(x?.schema){let v=V(x.schema),G=I(x.schema,g,v),q=ze(G,v),Y=q.map((S,T)=>{let Te=I(G,[S.name],v),ve=ie(Te,v);return{label:S.name,kind:ve?e.languages.CompletionItemKind.Module:e.languages.CompletionItemKind.Property,detail:S.type,documentation:`Property of inputs.${c.join(".")}`,insertText:S.name,range:l,sortText:String(T).padStart(3,"0")}}),Z=oe();for(let S=0;S<Z.length;S++){let T=Z[S];Y.push({label:T.name,kind:e.languages.CompletionItemKind.Method,detail:`${T.detail} (${T.receiverType})`,documentation:T.documentation,insertText:T.params.length>0?`${T.name}($0)`:`${T.name}()`,insertTextRules:T.params.length>0?e.languages.CompletionItemInsertTextRule.InsertAsSnippet:void 0,range:l,sortText:String(q.length+S).padStart(3,"0")})}return{suggestions:Y}}return{suggestions:[]}}if(/inputs\.\s*$/.test(r.slice(0,r.length-a.word.length)))return{suggestions:C.map((c,p)=>{let g=ie(c.schema,V(c.schema));return{label:c.name,kind:g?e.languages.CompletionItemKind.Module:e.languages.CompletionItemKind.Variable,detail:c.label||(g?"object":"Input variable"),documentation:`Access as inputs.${c.name}${g?" (has nested properties)":""}`,insertText:c.name,range:l,sortText:String(p).padStart(3,"0")}})};if(/\.\s*$/.test(r.slice(0,r.length-a.word.length)))return{suggestions:oe().map((p,g)=>({label:p.name,kind:e.languages.CompletionItemKind.Method,detail:`${p.detail} (${p.receiverType})`,documentation:p.documentation,insertText:p.params.length>0?`${p.name}($0)`:`${p.name}()`,insertTextRules:p.params.length>0?e.languages.CompletionItemInsertTextRule.InsertAsSnippet:void 0,range:l,sortText:String(g).padStart(3,"0")}))};let f=[],d=0;f.push({label:"inputs",kind:e.languages.CompletionItemKind.Variable,detail:"object",documentation:"Access input signals (e.g., inputs.customerName)",insertText:"inputs.",range:l,sortText:String(d++).padStart(3,"0")});for(let c of C)f.push({label:`inputs.${c.name}`,kind:e.languages.CompletionItemKind.Variable,detail:c.label||"Input variable",documentation:`Access the "${c.name}" input signal`,insertText:`inputs.${c.name}`,range:l,sortText:String(d++).padStart(3,"0")});for(let c of A)f.push({label:c.name,kind:e.languages.CompletionItemKind.Function,detail:c.detail,documentation:c.documentation,insertText:c.params.length>0?`${c.name}($0)`:`${c.name}()`,insertTextRules:c.params.length>0?e.languages.CompletionItemInsertTextRule.InsertAsSnippet:void 0,range:l,sortText:String(d++).padStart(3,"0")});return{suggestions:f}}}),e.languages.registerHoverProvider(w,{provideHover:(t,n)=>{let r=t.getWordAtPosition(n);if(!r)return null;let i=C.find(a=>a.name===r.word);if(i)return{range:{startLineNumber:n.lineNumber,startColumn:r.startColumn,endLineNumber:n.lineNumber,endColumn:r.endColumn},contents:[{value:`**inputs.${i.name}**${i.label?`
2
2
 
3
- ${i.label}`:""}`}]};let o=z.get(r.word);return o&&o.length>0?{range:{startLineNumber:t.lineNumber,startColumn:r.startColumn,endLineNumber:t.lineNumber,endColumn:r.endColumn},contents:o.map(a=>({value:`**${a.detail}**
3
+ ${i.label}`:""}`}]};let o=_.get(r.word);return o&&o.length>0?{range:{startLineNumber:n.lineNumber,startColumn:r.startColumn,endLineNumber:n.lineNumber,endColumn:r.endColumn},contents:o.map(a=>({value:`**${a.detail}**
4
4
 
5
- ${a.documentation}`}))}:null}}),e.languages.registerSignatureHelpProvider(J,{signatureHelpTriggerCharacters:["(",","],provideSignatureHelp:(n,t)=>{let r=n.getValueInRange({startLineNumber:t.lineNumber,startColumn:1,endLineNumber:t.lineNumber,endColumn:t.column}),i=0,o=0,a=-1;for(let p=r.length-1;p>=0;p--){let g=r[p];if(g===")")i++;else if(g==="("){if(i===0){a=p;break}i--}else g===","&&i===0&&o++}if(a<0)return null;let u=r.slice(0,a).match(/([a-zA-Z_]\w*)\s*$/);if(!u)return null;let m=u[1],f=z.get(m);if(!f||f.length===0)return null;let c=f.filter(p=>p.params.length>0).map(p=>({label:p.detail,documentation:p.documentation,parameters:p.params.map(g=>({label:g}))}));return c.length===0?null:{value:{signatures:c,activeSignature:0,activeParameter:Math.min(o,c[0].parameters.length-1)},dispose(){}}}}))}var k="[*]";function ae(e,n){return e.ref&&n?.[e.ref]?ae(n[e.ref],n):e}function C(e,n){let t=ae(e,n),r={},i;if(t.type)i=t.type;else if(t.enum)i=t.enum.map(o=>JSON.stringify(o)).join(" | ");else if(t.elements){let o=C(t.elements,n);r[k]=o,i=`${o.detail}[]`}else if(t.values){let o=C(t.values,n);r[k]=o,i=`map<${o.detail}>`}else if(t.properties||t.optionalProperties){let o=[];if(t.properties)for(let[a,l]of Object.entries(t.properties)){let u=C(l,n);r[a]=u,o.push(`${a}: ${u.detail}`)}if(t.optionalProperties)for(let[a,l]of Object.entries(t.optionalProperties)){let u=C(l,n);r[a]=u,o.push(`${a}?: ${u.detail}`)}i=`{ ${o.join(", ")} }`}else if(t.discriminator&&t.mapping){let o=Object.keys(t.mapping);r[t.discriminator]={detail:o.map(a=>JSON.stringify(a)).join(" | "),children:{}};for(let a of Object.values(t.mapping)){let l=C(a,n);for(let[u,m]of Object.entries(l.children))u in r||(r[u]=m)}i=`union(${t.discriminator}: ${o.join(" | ")})`}else i="any";return e.nullable&&(i+="?"),e.ref&&(i=`ref(${e.ref})`),{detail:i,children:r}}function Oe(e){let n={};for(let t of e){if(!t.name)continue;let r=t.accepts?.[0],i;r?.jtdSchema?i=C(r.jtdSchema,r.jtdSchema.definitions):r?.mimeType?i={detail:r.mimeType,children:{}}:i={detail:"any",children:{}},t.optional&&(i={...i,detail:i.detail+" | null"}),n[t.name]=i}return n}function le(e){let n={};for(let[r,i]of Object.entries(e))typeof i=="string"?n[r]={detail:"string",children:{}}:typeof i=="object"&&i!==null&&(n[r]=le(i));return{detail:`{ ${Object.entries(n).map(([r,i])=>`${r}: ${i.detail}`).join(", ")} }`,children:n}}function ue(e,n){for(let[t,r]of Object.entries(n))typeof r=="object"&&r!==null&&typeof e[t]=="object"&&e[t]!==null?ue(e[t],r):e[t]=r}function je(e){let n={};for(let t of Object.values(e))ue(n,t);return le(n)}function Me(e){let n=e.match(/\b(inputs|t)((?:\.[a-zA-Z_]\w*|\[[^\]]*\])*)\.\s*$/);if(!n)return null;let t=n[1],r=n[2],i=[t],o=0;for(;o<r.length;)if(r[o]==="."){o++;let a=r.substring(o).match(/^[a-zA-Z_]\w*/);a&&(i.push(a[0]),o+=a[0].length)}else if(r[o]==="["){let a=r.indexOf("]",o);if(a===-1)break;i.push(k),o=a+1}else o++;return i}function ce(e,n,t){if(n.length===0)return null;if(n[0]==="inputs"){if(n.length===1)return{detail:"Signal inputs",children:e};let r=e[n[1]];if(!r)return null;for(let i=2;i<n.length;i++)if(r=r.children[n[i]],!r)return null;return r}if(n[0]==="t"&&t){if(n.length===1)return t;let r=t.children[n[1]];if(!r)return null;for(let i=2;i<n.length;i++)if(r=r.children[n[i]],!r)return null;return r}return null}function pe(e){let n=[],t=e.match(/^[a-zA-Z_]\w*/);if(!t)return n;n.push(t[0]);let r=t[0].length;for(;r<e.length;)if(e[r]==="."){r++;let i=e.substring(r).match(/^[a-zA-Z_]\w*/);if(i)n.push(i[0]),r+=i[0].length;else break}else if(e[r]==="["){let i=e.indexOf("]",r);if(i===-1)break;n.push(k),r=i+1}else break;return n}function ze(e){let n=[],t=/([a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*|\[[^\]]*\])*)\.(?:map|filter|all|exists_one|exists)\s*\(\s*([a-zA-Z_]\w*)\s*,/g,r;for(;(r=t.exec(e))!==null;){let i=pe(r[1]);i.length>0&&n.push({varName:r[2],collectionSegments:i})}return n}function Ee(e){let n=e.match(/\b([a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*|\[[^\]]*\])*)\.\s*$/);if(!n)return null;let t=pe(n[1]);return t.length>0?t:null}function me(e,n,t,r){if(n.length===0)return null;let i=n[0];if(i==="inputs"||i==="t")return ce(e,n,r);for(let o=t.length-1;o>=0;o--){let a=t[o];if(a.varName===i){let l=me(e,a.collectionSegments,t,r);if(!l)return null;let u=l.children[k];if(!u)return null;let m=u;for(let f=1;f<n.length;f++)if(m=m.children[n[f]],!m)return null;return m}}return null}function Ve(e,n,t){let r=[],i=n-2;for(;i>=0&&e[i]===".";){i--;let o=i+1;for(;i>=0&&/[a-zA-Z_0-9]/.test(e[i]);)i--;let a=i+1,l=e.substring(a,o);if(/^[a-zA-Z_]\w*$/.test(l)&&l.length>0)r.unshift(l);else break}return r.push(t),r}0&&(module.exports={CEL_DESCRIPTORS,CEL_LANGUAGE_ID,CEL_METHODS,CUSTOM_FUNCS,CelScalar,GLOBAL_FUNCTIONS,TimestampSchema,celFunc,celMethod,celOptions,celRun,celToNative,evaluateExpression,extractAccessPaths,extractHoverSegments,extractLambdaBindings,findOptionalSegments,formatDateWithPattern,fuzzJTD,generateCelSymbolTree,generateTestPermutations,generateTranslationsSymbolTree,isCelError,isCelList,isCelMap,isCelUint,listType,objectType,parseDotPath,parseGeneralDotPath,registerCelLanguage,resolveNode,resolveWithLambdas,setInputVariables,stringsExt,timestampDate,timestampFromDate,timestampMs,timestampNow,validateCelExpression,validateCelExpressionSyntax});
5
+ ${a.documentation}`}))}:null}}),e.languages.registerSignatureHelpProvider(w,{signatureHelpTriggerCharacters:["(",","],provideSignatureHelp:(t,n)=>{let r=t.getValueInRange({startLineNumber:n.lineNumber,startColumn:1,endLineNumber:n.lineNumber,endColumn:n.column}),i=0,o=0,a=-1;for(let p=r.length-1;p>=0;p--){let g=r[p];if(g===")")i++;else if(g==="("){if(i===0){a=p;break}i--}else g===","&&i===0&&o++}if(a<0)return null;let u=r.slice(0,a).match(/([a-zA-Z_]\w*)\s*$/);if(!u)return null;let f=u[1],d=_.get(f);if(!d||d.length===0)return null;let c=d.filter(p=>p.params.length>0).map(p=>({label:p.detail,documentation:p.documentation,parameters:p.params.map(g=>({label:g}))}));return c.length===0?null:{value:{signatures:c,activeSignature:0,activeParameter:Math.min(o,c[0].parameters.length-1)},dispose(){}}}}))}var $="[*]";function me(e,t){return e.ref&&t?.[e.ref]?me(t[e.ref],t):e}function R(e,t){let n=me(e,t),r={},i;if(n.type)i=n.type;else if(n.enum)i=n.enum.map(o=>JSON.stringify(o)).join(" | ");else if(n.elements){let o=R(n.elements,t);r[$]=o,i=`${o.detail}[]`}else if(n.values){let o=R(n.values,t);r[$]=o,i=`map<${o.detail}>`}else if(n.properties||n.optionalProperties){let o=[];if(n.properties)for(let[a,l]of Object.entries(n.properties)){let u=R(l,t);r[a]=u,o.push(`${a}: ${u.detail}`)}if(n.optionalProperties)for(let[a,l]of Object.entries(n.optionalProperties)){let u=R(l,t);r[a]=u,o.push(`${a}?: ${u.detail}`)}i=`{ ${o.join(", ")} }`}else if(n.discriminator&&n.mapping){let o=Object.keys(n.mapping);r[n.discriminator]={detail:o.map(a=>JSON.stringify(a)).join(" | "),children:{}};for(let a of Object.values(n.mapping)){let l=R(a,t);for(let[u,f]of Object.entries(l.children))u in r||(r[u]=f)}i=`union(${n.discriminator}: ${o.join(" | ")})`}else i="any";return e.nullable&&(i+="?"),e.ref&&(i=`ref(${e.ref})`),{detail:i,children:r}}function _e(e){let t={};for(let n of e){if(!n.name)continue;let r=n.accepts?.[0],i;r?.jtdSchema?i=R(r.jtdSchema,r.jtdSchema.definitions):r?.mimeType?i={detail:r.mimeType,children:{}}:i={detail:"any",children:{}},n.optional&&(i={...i,detail:i.detail+" | null"}),t[n.name]=i}return t}function de(e){let t={};for(let[r,i]of Object.entries(e))typeof i=="string"?t[r]={detail:"string",children:{}}:typeof i=="object"&&i!==null&&(t[r]=de(i));return{detail:`{ ${Object.entries(t).map(([r,i])=>`${r}: ${i.detail}`).join(", ")} }`,children:t}}function ge(e,t){for(let[n,r]of Object.entries(t))typeof r=="object"&&r!==null&&typeof e[n]=="object"&&e[n]!==null?ge(e[n],r):e[n]=r}function Ve(e){let t={};for(let n of Object.values(e))ge(t,n);return de(t)}function Fe(e){let t=e.match(/\b(inputs|t)((?:\.[a-zA-Z_]\w*|\[[^\]]*\])*)\.\s*$/);if(!t)return null;let n=t[1],r=t[2],i=[n],o=0;for(;o<r.length;)if(r[o]==="."){o++;let a=r.substring(o).match(/^[a-zA-Z_]\w*/);a&&(i.push(a[0]),o+=a[0].length)}else if(r[o]==="["){let a=r.indexOf("]",o);if(a===-1)break;i.push($),o=a+1}else o++;return i}function ye(e,t,n){if(t.length===0)return null;if(t[0]==="inputs"){if(t.length===1)return{detail:"Signal inputs",children:e};let r=e[t[1]];if(!r)return null;for(let i=2;i<t.length;i++)if(r=r.children[t[i]],!r)return null;return r}if(t[0]==="t"&&n){if(t.length===1)return n;let r=n.children[t[1]];if(!r)return null;for(let i=2;i<t.length;i++)if(r=r.children[t[i]],!r)return null;return r}return null}function he(e){let t=[],n=e.match(/^[a-zA-Z_]\w*/);if(!n)return t;t.push(n[0]);let r=n[0].length;for(;r<e.length;)if(e[r]==="."){r++;let i=e.substring(r).match(/^[a-zA-Z_]\w*/);if(i)t.push(i[0]),r+=i[0].length;else break}else if(e[r]==="["){let i=e.indexOf("]",r);if(i===-1)break;t.push($),r=i+1}else break;return t}function Le(e){let t=[],n=/([a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*|\[[^\]]*\])*)\.(?:map|filter|all|exists_one|exists)\s*\(\s*([a-zA-Z_]\w*)\s*,/g,r;for(;(r=n.exec(e))!==null;){let i=he(r[1]);i.length>0&&t.push({varName:r[2],collectionSegments:i})}return t}function Be(e){let t=e.match(/\b([a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*|\[[^\]]*\])*)\.\s*$/);if(!t)return null;let n=he(t[1]);return n.length>0?n:null}function be(e,t,n,r){if(t.length===0)return null;let i=t[0];if(i==="inputs"||i==="t")return ye(e,t,r);for(let o=n.length-1;o>=0;o--){let a=n[o];if(a.varName===i){let l=be(e,a.collectionSegments,n,r);if(!l)return null;let u=l.children[$];if(!u)return null;let f=u;for(let d=1;d<t.length;d++)if(f=f.children[t[d]],!f)return null;return f}}return null}function He(e,t,n){let r=[],i=t-2;for(;i>=0&&e[i]===".";){i--;let o=i+1;for(;i>=0&&/[a-zA-Z_0-9]/.test(e[i]);)i--;let a=i+1,l=e.substring(a,o);if(/^[a-zA-Z_]\w*$/.test(l)&&l.length>0)r.unshift(l);else break}return r.push(n),r}0&&(module.exports={CEL_DESCRIPTORS,CEL_LANGUAGE_ID,CEL_METHODS,CUSTOM_FUNCS,CelScalar,GLOBAL_FUNCTIONS,TimestampSchema,celFunc,celMethod,celOptions,celRun,celToNative,evaluateExpression,extractAccessPaths,extractHoverSegments,extractLambdaBindings,findOptionalSegments,formatDateWithPattern,fuzzJTD,fuzzJTDForCel,generateCelSymbolTree,generateTestPermutations,generateTranslationsSymbolTree,isCelError,isCelList,isCelMap,isCelUint,jtdJsonToCelInput,listType,objectType,parseDotPath,parseGeneralDotPath,registerCelLanguage,resolveNode,resolveWithLambdas,setInputVariables,stringsExt,timestampDate,timestampFromDate,timestampMs,timestampNow,validateCelExpression,validateCelExpressionSyntax});
6
6
  //# sourceMappingURL=cel.cjs.map