ezno-cache-fileS%consolev"}"Math JSON##debug_effects_rust11 undefinedcontext_id_chain(383 is_dependentH2T2JSXHw.{.Object&& context_id23Error""Proxy%%debug_type_independent_3u3Functiony$$Number print_type'010Array debug_typel0v0 satisfies33compile_type_to_object34 debug_effects22print_and_debug_type00RegExp39Map1 4 StringW]Consoledebug_type_rust=1L1PromiseSymbols$$ debug_context22document//print_environment_state22fetchR/W/print_constraint11 SyntaxError6#A#Responsedebug_type_rust_independenty112number ResponseBodyIReadonly)MapFResponseJConsoleKErrorLvoidLessThan.IntegerC ImportEnv9JSONNboolean NotNotANumber1ProxyP SyntaxErrorM Exclusive3 ImportMetaLiteral2ObjectRDocumentSArray FormDataT Capitalize&NoInfer(object Uppercase$ Lowercase% Uncapitalize' MultipleOf/InfinitySymbolsORegExpExecArrayHPropertyDescriptorQnull GreaterThan-Promise Not4ExclusiveRange?RegExpInclusiveRangeB undefinedMinFloatMaxFloatMathGNegativeInfinityRecord<stringFunction CaseInsensitive5U  push  pop  map)=  filterf  find  every  some  join9  atJ M  MisArrayR  Y# \z \sine \cosn  \tanq.D \floortay \sqrtw \cbrtz \log} \truncMe \imul \PI \E \random +  toUpperCase  toLowerCase length  sliceI split_ I  NEGATIVE_INFINITY POSITIVE_INFINITY isNaN  exec j   Kassert Kclear5B Kcount K countResetNn Kdebug Kdirs Kdirxml* Kerror Kgroup1L KgroupCollapsed KgroupEndhx Kinfo Klog{ Ktable ? Ktime KtimeEndF c KtimeLog ! K timeStamp!!@! Ktrace!! Kwarn F"`"  " W# # parse##  stringifyF$c$  bind"$$ %k$ ($ (iterator$$ ,O% /& /setPrototypeOf3&& /getPrototypeOf7'1' /freeze:P'j' /seal='' /preventExtensions@'' /isFrozenC(!( /isSealedF@(]( / isExtensibleI|(( /definePropertyN(J) /getOwnPropertyDescriptorR)) /keys\** /valuesj*+ /entries~+, /assign,Q-%/2u1 Y$(_3|#(3x31S6#'0CH2k&/y$%W2rv"0Ol0I"R/=w.8y1[3%,=1W1a2o \2g3M K(assertclearcount countResetdebugdirdirxmlerrorgroupgroupCollapsedgroupEndinfologtabletimetimeEndtimeLog timeStamptracewarnassertclearcount countResetdebugdirdirxmlerrorgroupgroupCollapsedgroupEndinfologtabletimetimeEndtimeLog timeStamptracewarn o01lengthp7tag3 attributes4children6NEGATIVE_INFINITYPOSITIVE_INFINITYisNaN\ sinecosntanqfloortsqrtwcbrtzlog}truncimulPIErandom/setPrototypeOf3getPrototypeOf7freeze:seal=preventExtensions@isFrozenCisSealedF isExtensibleIdefinePropertyNgetOwnPropertyDescriptorRkeys\valuesjentries~assignr01lengthsFkeysSvalueT01lengthparse stringifyYlengthulengthLmessagemessage  toUpperCase toLowerCaselengthslicesplit toUpperCase toLowerCaselengthslicesplit  lengthpushpopmapfilterfindeverysomejoin9atJ9 bindbind"Hindexinput0groups6MisArrayRlengthStitlelengthexecexecJokoklengthclengthenv9urlresolveVQvalue6get6set6writable6 configurable6 enumerable6}01length|(iteratormessagemessagemessagemessage  } o  u Mc Mr LY neveranybooleannumberstringvoidArray Promise TobjectFunctionRegExpSymbol?< new.target ImportMetaiterator asyncIterator hasInstance toPrimitiveS Uppercase# Lowercase# Capitalize# Uncapitalize#NoInfer Readonly  NonOptionalWritableT GreaterThan,LessThan, MultipleOf, 4  0Literal  Exclusive Not CaseInsensitive#  ImportEnvKTRecord:;}FCExclusiveRange=>FCInclusiveRange@AIntegerTUMapDEMathRegExpExecArray ResponseBodyResponseConsoleError SyntaxErrorJSONSymbolsProxyPropertyDescriptorObjectDocumentFormData   U \ 4  ZTU ) b q   f h    n   s     P:|; -,= .,> ~ -,@ .,A @A /,   DO P  Dk l # -, .,  -, .,  . a    M -DT! @iW @ -, .,   z       ~ _ I     j H    &   &      5    N      s  !      @C 1    h      {   06      F     !!  !! !  T"W" F" K " W# # F$ # $ k$ $ O% & & &  ' P' ' ' ( @( |( ( )  (*.* *  ** *@  ++ + , &  f.  Jo/w/ A/ST  D0E0 0T  00 [0T  00 0 0 ,1 h1 1 1 2 1 72T p2 2 2 3 N3T 3T 3JSXH 001 5f.fetch  Jo/w/A/ print_typeT  @D0E0A0 debug_typeT  F00G[0print_and_debug_typeT  L00M0print_constraint0debug_type_rust,1debug_type_rust_independenth1debug_effects_rust 1_1 debug_effects 2e1 is_dependent72print_environment_stateTp2 debug_context2 context_id2context_id_chain3debug_type_independentN3 satisfiesT3compile_type_to_objectT3  push lengthlength  pop length 4 length length   mapU  4  TU  length 0   )  filter  q    length m@EGJ @EGJf  find   length9    every  lengthp  6  some   length      L Q S V    L Q S V   join,length 4 # 6 &0'() +$e  -.+ +12/3+ +6e    at:= .,=?<length@A <BC> <=F DG>DGH Array isArrayMP    DO P  Dk l Map# Mathz sin -,_ ., `a _ bc cos -,h ., ij h kl tan.floorasqrtcbrtlogtruncMimul-DT! @iW @random -, .,     toUpperCase toLowerCaselengthslice  split  ~ _StringINumberisNaNPromiseexec HRegExp jResponse assert   clear5count  countReset Ndebug  dir  sdirxml  !error  group  @C1groupCollapsed  groupEndhinfo  log  {table   06  time timeEnd F timeLog      timeStamp !!trace  !!!warn  T"W" F"ConsoleError" SyntaxError syntax errorW#JSON#parse# stringifyF$bind $Functionk$Symbols$ProxyO%Object&setPrototypeOf  &getPrototypeOf 'freeze P'seal 'preventExtensions 'isFrozen (isSealed @( isExtensible |(defineProperty Q(getOwnPropertyDescriptor )keys/U  (*.*  M*S*Y*values/_  **  ++c*_ fdg *entries/m@  o++@  r+,u+m yvz@+assign/  , , ,  llabelcountO%O%obj*[%c%cb+e%l%P)proxy:constructor  L LK Llength  [0[0TFargsFHz00ED debug_type11^11tf2 2cb debug_effects x^ d]sinhhgroupEndf.f.tag3|.. attributes4..children6..72/.7.. 7tag3.. 7 attributes4.. 7children6.. 7..A/A/from;X/d/<:9fetch11data7EgroupdatagroupCollapsedF$F$inputP$Z$JSON:stringify|(|(onH((G isExtensible!!data!!trace22qp debug_context))onP))propertyQ))QOgetOwnPropertyDescriptorz z [G[ZtiNNlabelYg countReset  J ok 00TLargsLN00KJprint_and_debug_type55cleardatadebug00tR11QPprint_constraint33Tcompile_type_to_object__splittereu""message""L message"!#message##x| {logW#W#M message"!#message## "11t`11]\debug_effects_rust&&.R.-7272tjU2[2ih is_dependentF"F"data K"Y"warn##input## JSON:parseM22ts context_id33wvcontext_id_chain xg mfcosti22d  & &!!!!label+!9! timeStamp conditiondataassertffcbmlength  length#*@EGJ=Km   #*m=?GH@EGJ=K=K0length    N3N3t{v3|3zydebug_type_independentcb length  / 6 L Q S V I W          / 6 I K S T L Q S V I W I W l w   dataerrorlabeltime))Ucb0Klengthjp  length 0   0 0length   (5##Nxyimul..xp2;otancblength!9 9XYQ Q 9   {{datalog joiner length  & 2 C L 0(w ~ +7 e *   + ,  e - . e /  0 +2 e 4 e 8  8  e II33Tt33~} satisfies K  ((onB ((AisFrozen**onV**WTS YW*Y* YlengthW*Y*VZY0ZYlength    Y**''on5'!'64getPrototypeOfdata#dirxml''on<'' ;sealurlUxyxcbrtssitemwoptionsdir,1,1tVM1S1UTdebug_type_rustxvusqrtdatainfo label data !timeLog length?J?P aqlengthlengthlength    toLowerCase&&on1&&to2&& 0setPrototypeOf00T@args@B50F0?> print_typeitemlengthlength length   h1h1tZ11YXdebug_type_rust_independentp2p2Tnmlprint_environment_stateinput regexp:exect i",&&v!&'& toUpperCase itemP QON Q # # VFVU WT V WlengthT V VkeysW# v  Xp r Xlengthp r VvalueX# v 44t59i;E   tabularData! properties#8tablestart%2end4@F F labelN \ timeEnd**on`**a^]  c!+#+ clength!+#+`d*`*f_+a+fdh_+f+c0hclength    c}++item @(@(onEI(S(DisSealed''on?'' >preventExtensionsqqtrvix,,target,,source,, ,,,--,-#--(---  =-J-  randomMMxS\~trunck$k$$ $#jjpatternvflagsregexp:constructor++onn++qlk o++ o0++ o1++ olengthp++ r+, r0++ r1,, rlengths+, u , , ulength , , }H,V, }0I,L, }1N,U, }length|H,V,nv+n  xH,V, x0vI,L,+yN,P,yv{N,U, x1{N,U, xlength|H,V,u0xulength   um,{,  index= % I<;>6 ? <lengthAd o <BDW p DP p <=G G $$this_ty!$$  ((onK) )propertyL )) discriminatorM)@)JdefineProperty$$'O'&P'P'on9W'a' 8freezeaaxsgprfloorcb4lengthRXp pK K p  %1  oz$./checker/definitions/overrides.d.ts// Eventually this will be merged with existing TS es5.d.ts files but for now is the standalone see #121 interface ImportEnv { [key: string]: string; } interface ImportMeta { env: ImportEnv; url: string; resolve(url: string): string; } declare class Array { [index: number]: T; length: number; // TODO WIP // constructor(...items: Array) { // return items; // } push(item: T) { this[this.length] = item; return ++this.length } pop(): T | undefined { if (this.length === 0) { return undefined } else { const value = this[--this.length]; delete this[this.length]; return value } } // TODO this argument map(cb: (t: T, i?: number) => U): Array { const { length } = this, mapped: U[] = []; let i: number = 0; while (i < length) { const value = this[i]; mapped.push(cb(value, i++)) } return mapped; } // // TODO any is debatable filter(cb: (t: T, i?: number) => any): Array { const { length } = this, filtered: T[] = []; let i: number = 0; while (i < length) { const value = this[i]; if (cb(value, i++)) { filtered.push(value) } } return filtered; } // TODO any is debatable find(cb: (t: T, i?: number) => any): T | undefined { const { length } = this; let i: number = 0; while (i < length) { const value = this[i]; if (cb(value, i++)) { return value } } } // TODO any is debatable every(cb: (t: T, i?: number) => any): boolean { const { length } = this; let i: number = 0; while (i < length) { const value = this[i]; const result = cb(value, i++) as boolean; if (!result) { return false } } // Vacuous truth return true } some(cb: (t: T, i?: number) => any): boolean { const { length } = this; let i: number = 0; while (i < length) { const value = this[i]; if (cb(value, i++)) { return true } } return false } join(joiner: string = ","): string { const { length } = this; let i: number = 1; if (length === 0) { return "" } let s: string = "" + (this[0] as string); while (i < length) { s += joiner; s += this[i++] as string; } return s } at(index: number) { if (index < 0) { return this[index + this.length] } else { return this[index] } } static isArray(item: any) { return item instanceof Array; } } type Record = { [P in K]: T } type ExclusiveRange = GreaterThan & LessThan; type InclusiveRange = (GreaterThan & LessThan) | (F | C); type Integer = MultipleOf<1>; declare class Map { #keys: Array = []; #value: Array = []; } declare class Math { @Constant static sin(x: number): InclusiveRange<-1, 1>; @Constant static cos(x: number): InclusiveRange<-1, 1>; @Constant static tan(x: number): number; @Constant static floor(x: number): number; @Constant static sqrt(x: number): number; @Constant static cbrt(x: number): number; @Constant static log(x: number): number; // TODO newer method @Constant static trunc(x: number): number; @Constant static imul(x: number, y: number): number; static PI: 3.141592653589793 static E: 2.718281828459045 @InputOutput static random(): InclusiveRange<0, 1>; } @Primitive("string") declare class String { [index: number]: string; @Constant toUpperCase(this: string): string; @Constant toLowerCase(this: string): string; get length(): number; // TODO slice(start: number, end?: number): string; // TODO split(splitter: string): Array; } @Primitive("number") declare class Number { static NEGATIVE_INFINITY: NegativeInfinity; static POSITIVE_INFINITY: Infinity; // static isFinite(item: any) { // return !(item === Number.NEGATIVE_INFINITY || item === Number.POSITIVE_INFINITY || Number.isNaN(item)) // } static isNaN(item: any) { return item !== item; } } declare class Promise { } declare class RegExp { @Constant("regexp:constructor") constructor(pattern: string, flags?: string); @Constant("regexp:exec") exec(input: string): RegExpExecArray | null; } // es5 interface RegExpExecArray extends Array { /** * The index of the search at which the result was found. */ index: number; /** * A copy of the search string. */ input: string; /** * The first match. This will always be present because `null` will be returned if there are no matches. */ 0: string; // } // // es2018 // interface RegExpExecArray { groups?: { [key: string]: string; }; } type ResponseBody = string; declare class Response { ok: boolean; // constructor(body?: ResponseBody, options: any); // json(): Promise; // static json(data: any): Response { // return new Response(JSON.stringify(data)) // } } declare class Console { /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/assert_static) */ @InputOutput assert(condition?: boolean, ...data: any[]): void; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/clear_static) */ @InputOutput clear(): void; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/count_static) */ @InputOutput count(label?: string): void; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/countReset_static) */ @InputOutput countReset(label?: string): void; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/debug_static) */ @InputOutput debug(...data: any[]): void; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/dir_static) */ @InputOutput dir(item?: any, options?: any): void; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/dirxml_static) */ @InputOutput dirxml(...data: any[]): void; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/error_static) */ @InputOutput error(...data: any[]): void; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/group_static) */ @InputOutput group(...data: any[]): void; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/groupCollapsed_static) */ @InputOutput groupCollapsed(...data: any[]): void; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/groupEnd_static) */ @InputOutput groupEnd(): void; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/info_static) */ @InputOutput info(...data: any[]): void; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static) */ @InputOutput log(...data: any[]): void; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/table_static) */ @InputOutput table(tabularData?: any, properties?: string[]): void; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/time_static) */ @InputOutput time(label?: string): void; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/timeEnd_static) */ @InputOutput timeEnd(label?: string): void; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/timeLog_static) */ @InputOutput timeLog(label?: string, ...data: any[]): void; @InputOutput timeStamp(label?: string): void; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/trace_static) */ @InputOutput trace(...data: any[]): void; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/warn_static) */ @InputOutput warn(...data: any[]): void; } declare const console: Console; declare class Error { message: string // TODO `@AllowElidedNew` constructor(message: string) { this.message = message } } declare class SyntaxError extends Error { constructor() { super("syntax error") } } declare class JSON { // TODO any temp @Constant("JSON:parse", SyntaxError) static parse(input: string): any; // TODO any temp @Constant("JSON:stringify") static stringify(input: any): string; } declare class Function { bind(this_ty: any): Function; } declare class Symbols { // TODO temp static iterator: unique symbol "iterator" } declare class Proxy { @Constant("proxy:constructor") constructor(obj: any, cb: any); } // Copied from `es5.d.ts`. Could this be an or // TODO string keys temp because parser broke interface PropertyDescriptor { value?: any; get?(): any; set?(v: any): void; writable?: boolean; configurable?: boolean; enumerable?: boolean; } declare class Object { @Constant static setPrototypeOf(on: object, to: object): object; @Constant static getPrototypeOf(on: object): object | null; @Constant static freeze(on: object): object; @Constant static seal(on: object): object; @Constant static preventExtensions(on: object): object; @Constant static isFrozen(on: object): boolean; @Constant static isSealed(on: object): boolean; @Constant static isExtensible(on: object): boolean; // TODO defineProperties via body (not constant) @Constant static defineProperty(on: object, property: string, discriminator: PropertyDescriptor): boolean; // TODO getOwnPropertyDescriptors via body (not constant) @Constant static getOwnPropertyDescriptor(on: object, property: string): PropertyDescriptor; static keys(on: { [s: string]: any }): Array { const keys: Array = []; for (const key in on) { keys.push(key); } return keys } static values(on: { [s: string]: any }): Array { const values: Array = []; for (const key in on) { values.push(on[key]); } return values } static entries(on: { [s: string]: any }): Array<[string, any]> { const entries: Array<[string, any]> = []; for (const key in on) { entries.push([key, on[key]]); } return entries } // TODO spread source static assign(target: object, source: object): object { for (const key in source) { target[key] = source[key] } return target } // static fromEntries(iterator: any): object { // const obj = {}; // for (const item of iterator) { // const { 0: key, 1: value } = item; // obj[key] = value; // } // return obj // } } // TODO wip declare function JSXH(tag: string, attributes: any, children?: any) { return { tag, attributes, children } } interface Document { title: string } interface FormData { } // TODO temp @InputOutput declare function fetch(from: string): Promise; @client declare const document: Document; // @server // declare function createItem(a: any); // ↓↓ Ezno testing functions ↓↓ @Constant declare function print_type(...args: Array): void; @Constant declare function debug_type(...args: Array): void; @Constant declare function print_and_debug_type(...args: Array): void; @Constant declare function print_constraint(t: any): void; @Constant declare function debug_type_rust(t: any): void; @Constant declare function debug_type_rust_independent(t: any): void; @Constant declare function debug_effects_rust(t: () => {}): void; @Constant declare function debug_effects(t: () => {}): void; @Constant declare function is_dependent(t: any): void; @Constant declare function print_environment_state(): any; @Constant declare function debug_context(): void; @Constant declare function context_id(): void; @Constant declare function context_id_chain(): void; @Constant declare function debug_type_independent(t: any): void; // A function, as it should be! @Constant declare function satisfies(t: T): T; @Constant declare function compile_type_to_object(): any; // ↑↑ Ezno Functions ↑↑