{"version":3,"sources":["native_types.ts"],"sourcesContent":["// deno-lint-ignore-file no-async-promise-executor\nimport { ValueError } from \"./errors.ts\";\nimport { Type } from \"./type.ts\";\nimport { Pointer } from \"../runtime/pointers.ts\";\nimport type { any_class } from \"../utils/global_types.ts\";\nimport { DX_TIMEOUT, INVALID, NOT_EXISTING } from \"../runtime/constants.ts\";\nimport { Tuple } from \"./tuple.ts\";\n\nimport \"../utils/auto_map.ts\"\nimport { ReactiveMapMethods } from \"./reactive-methods/map.ts\";\nimport { Stream } from \"./stream.ts\";\n\n// @ts-ignore accecssible to dev console\nglobalThis.serializeImg = (img:HTMLImageElement)=> {\n    return new Promise(async resolve=>{\n        const blob = await fetch(img.src).then(r => r.blob())\n        const fileReader = new FileReader();\n        fileReader.onloadend = (e) => {\n            // @ts-ignore\n            const arr = (new Uint8Array(e.target.result)).subarray(0, 4);\n            let header = '';\n            for (let i = 0; i < arr.length; i++) {\n                header += arr[i].toString(16);\n            }\n            // Check the file signature against known types\n            let type:string;\n            switch (header) {\n                case '89504e47':\n                    type = 'image/png';\n                    break;\n                case '47494638':\n                    type = 'image/gif';\n                    break;\n                case 'ffd8ffdb':\n                case 'ffd8ffe0':\n                case 'ffd8ffe1':\n                case 'ffd8ffe2':\n                    type = 'image/jpeg';\n                    break;\n                case '25504446':\n                    type = 'application/pdf';\n                    break;\n                case '504B0304':\n                    type = 'application/zip'\n                    break;\n            }\n            if (!type) {\n                resolve(false)\n                return;\n            }\n\n            // @ts-ignore\n            img._type = Type.get(\"std\", type);\n            // @ts-ignore\n            img._buffer = fileReader.result;\n            resolve(type);\n        }\n        fileReader.onerror = () => resolve(false)\n        fileReader.readAsArrayBuffer(blob);        \n    })\n}\n\n\n// <Map>\n\n\nType.std.Map.setJSInterface({\n    class: Map,\n\n    serialize: value => [...value.entries()],\n\n    empty_generator: ()=>new Map(),\n\n    proxify_children: true,\n\n    cast: value => {\n        if (value instanceof Array) {\n            try { // might not be an entry array ([[x,y], [z,v]])\n                return new Map(value);\n            }\n            catch (e) {\n                throw new ValueError(\"Failed to convert \"+ Type.ofValue(value) +\" to \"+ Type.std.Map);\n            }\n        }                    \n        else if (value instanceof Tuple) return new Map(value.entries());\n\n        else if (typeof value == \"object\") return new Map(Object.entries(value));\n        return INVALID;\n    },\n\n    create_proxy: (value:Map<any,any>, pointer:Pointer) => {\n\n        // override methods\n        Object.defineProperty(value, \"set\", {value:(key, value) => {\n                return pointer.handleSet(key, value);\n            }, writable:false, enumerable:false});\n\n        Object.defineProperty(value, \"clear\", {value: () => {\n                return pointer.handleClear();\n            }, writable:false, enumerable:false});\n\n        Object.defineProperty(value, \"delete\", {value:(el) => {\n                return pointer.handleDelete(el);\n            }, writable:false, enumerable:false});\n\n        /**** override getters to trigger handleBeforeValueGet(): ****/\n\n        // original getters\n        const getSize = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(value), \"size\")!.get!.bind(value);\n        const keys = value.keys.bind(value);\n        const values = value.values.bind(value);\n        const entries = value.entries.bind(value);\n        const get = value.get.bind(value);\n        const has = value.has.bind(value);\n\n        Object.defineProperty(value, \"size\", {get() {\n            pointer.handleBeforeNonReferencableGet();\n            return getSize();\n        }, enumerable:false});\n\n        Object.defineProperty(value, \"values\", {value: () => {\n            pointer.handleBeforeNonReferencableGet();\n            return values()\n        }, writable:false, enumerable:false});\n\n        Object.defineProperty(value, \"keys\", {value: () => {\n            pointer.handleBeforeNonReferencableGet();\n            return keys()\n        }, writable:false, enumerable:false});\n\n        Object.defineProperty(value, \"entries\", {value: () => {\n            pointer.handleBeforeNonReferencableGet();\n            return entries()\n        }, writable:false, enumerable:false});\n\n        Object.defineProperty(value, \"get\", {value: (key: unknown) => {\n            pointer.handleBeforeNonReferencableGet(key);\n            return get(key)\n        }, writable:false, enumerable:false});\n\n        Object.defineProperty(value, \"has\", {value: (key: unknown) => {\n            pointer.handleBeforeNonReferencableGet(key);\n            return has(key)\n        }, writable:false, enumerable:false});\n\n        Object.defineProperty(value, Symbol.iterator, {value: value.entries, writable:true, enumerable:false});\n\n        return value;\n    },\n\n    get_reactive_methods_object: (ptr) => new ReactiveMapMethods(ptr),\n\n    set_property_silently: (parent:Map<any,any>, key, value, pointer) => Map.prototype.set.call(parent, key, value),\n    delete_property_silently: (parent:Map<any,any>, key, pointer) => Map.prototype.delete.call(parent, key),\n    clear_silently: (parent:Map<any,any>, pointer) => Map.prototype.clear.call(parent),\n\n\n    set_property: (parent:Map<any,any>, key, value) => parent.set(key, value),\n    get_property: (parent:Map<any,any>, key) => parent.get(key),\n    delete_property: (parent:Map<any,any>, key) => parent.delete(key),\n    has_property: (parent:Map<any,any>, key) => parent.has(key),\n\n    clear: (parent:Map<any,any>) => parent.clear(),\n\n    count: (parent:Map<any,any>) => parent.size,\n    keys: (parent:Map<any,any>) => [...parent.keys()],\n    values: (parent:Map<any,any>) => [...parent.values()],\n})\n\n\n// <Set>\nType.std.Set.setJSInterface({\n    class: Set,\n    //detect_class: (val) => (val instanceof Set && !(val instanceof AndSet)),\n\n    serialize: value => [...value].sort(),\n\n    empty_generator: ()=>new Set(),\n\n    proxify_children: true,\n\n    cast: value => {\n        if (value instanceof Array) return new Set(value);\n        else if (value instanceof Tuple) return new Set(value.toArray());\n        return INVALID;\n    },\n\n    override_silently(ref, value) {\n        Set.prototype.clear.call(ref);\n        for (const entry of value) Set.prototype.add.call(ref, entry)\n    },\n\n    create_proxy: (value:Set<any>, pointer:Pointer) => {\n        // override methods\n        Object.defineProperty(value, \"add\", {value: el => {\n                if (value.has(el)) return false;\n                return pointer.handleAdd(el); // TODO: return the Set\n            }, writable:false, enumerable:false});\n\n        Object.defineProperty(value, \"clear\", {value: () => {\n                return pointer.handleClear();\n            }, writable:false, enumerable:false});\n\n        Object.defineProperty(value, \"delete\", {value: el => {\n                if (!value.has(el)) return false;\n                return pointer.handleRemove(el); // TODO: return the Set\n            }, writable:false, enumerable:false});\n\n        /**** override getters to trigger handleBeforeValueGet(): ****/\n\n        // original getters\n        const getSize = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(value), \"size\")!.get!.bind(value);\n        const values = value.values.bind(value);\n        const entries = value.entries.bind(value);\n        const has = value.has.bind(value);\n\n        Object.defineProperty(value, \"size\", {get() {\n            pointer.handleBeforeNonReferencableGet();\n            return getSize();\n        }, enumerable:false});\n\n        Object.defineProperty(value, \"values\", {value: () => {\n            pointer.handleBeforeNonReferencableGet();\n            return values()\n        }, writable:false, enumerable:false});\n\n        Object.defineProperty(value, \"keys\", {value: () => {\n            pointer.handleBeforeNonReferencableGet();\n            return values()\n        }, writable:false, enumerable:false});\n\n        Object.defineProperty(value, \"entries\", {value: () => {\n            pointer.handleBeforeNonReferencableGet();\n            return entries()\n        }, writable:false, enumerable:false});\n\n        Object.defineProperty(value, \"has\", {value: (key: unknown) => {\n            pointer.handleBeforeNonReferencableGet();\n            return has(key)\n        }, writable:false, enumerable:false});\n\n        Object.defineProperty(value, Symbol.iterator, {value: value.values, writable:true, enumerable:false});\n\n        return value;\n    },\n\n\n    // <Set> - <Set> operations\n    // union\n    operator_or(first, second) {\n        if (first instanceof Set && second instanceof Set) return new Set([...first, ...second])\n        else return INVALID\n    },\n    action_or(ref, value, silently) {\n        if (value instanceof Set) {\n            for (let v of value) {\n                if (silently) Set.prototype.add.call(ref, v);\n                else ref.add(v);\n            }\n        }\n        else return INVALID\n    },\n\n    // intersection\n    operator_and(first, second) {\n        if (first instanceof Set && second instanceof Set) return new Set([...first].filter(x => second.has(x)));\n        else return INVALID\n    },\n    action_and(ref, value, silently) {\n        if (value instanceof Set) {\n            for (let v of ref) {\n                if (!value.has(v)) {\n                    if (silently) Set.prototype.delete.call(ref, v);\n                    else ref.delete(v);\n                } \n            }\n        }\n        else return INVALID\n    },\n\n\n    // <Set> - value operations\n    action_add(ref, value, silently) {\n        if (silently) Set.prototype.add.call(ref, value);\n        else ref.add(value);\n    },\n\n    action_subtract(ref, value, silently) {\n        if (silently) Set.prototype.delete.call(ref, value);\n        else ref.delete(value);\n    },\n\n\n\n    clear: (parent:Set<any>) => parent.clear(),\n    clear_silently: (parent:Set<any>, pointer) => Set.prototype.clear.call(parent),\n\n\n    get_property: (parent:Set<any>, key) => NOT_EXISTING,\n    has_property: (parent:Set<any>, key) => parent.has(key),\n\n    // implemented to support self-referencing serialization, not actual properties\n    // small issue with this approach: the Set always contains 'undefined'\n    set_property_silently: (parent:Set<unknown>, key, value, pointer) => Set.prototype.add.call(parent, value),\n    set_property: (parent:Set<unknown>, key, value) => parent.add(value),\n\n\n    count: (parent:Set<any>) => parent.size,\n    keys: (parent:Set<any>) => [...parent],\n    values: (parent:Set<any>) => [...parent],\n})\n\n\nconst AsyncGenerator = Object.getPrototypeOf(Object.getPrototypeOf((async function*(){})()));\nconst Generator = Object.getPrototypeOf(Object.getPrototypeOf((function*(){})()))\n\nType.js.AsyncGenerator.setJSInterface({\n    no_instanceof: true,\n    class: AsyncGenerator,\n    detect_class: (val) => AsyncGenerator.isPrototypeOf(val) || Generator.isPrototypeOf(val),\n\n    is_normal_object: true,\n    proxify_children: true,\n\n    serialize: value => {\n        return {\n            next: (...args: []|[unknown]) => value.next(...args),\n            return: (v: any) => value.return(v),\n            throw: (v: any) => value.throw(v),\n        }\n    },\n\n\n    cast: value => {\n        if (value && value.next && value.return && value.throw) {\n            return async function*() {\n                let res = await value.next();\n                while (!res.done) {\n                    yield res.value;\n                    res = await value.next();\n                }\n                return value.return();\n            }()\n        }\n        else return INVALID;\n    }\n})\n\nType.js.Promise.setJSInterface({\n    class: Promise,\n    \n    is_normal_object: true,\n    proxify_children: true,\n\n    serialize: value => {\n        return {\n            then: (onFulfilled:any, onRejected:any) => {\n                // fails if promise was serialized and js function was reconstructed locally\n                try {value}\n                catch {\n                    throw new Error(\"Promise cannot be restored - storing Promises persistently is not supported\")\n                }\n                return value.then(onFulfilled, onRejected)\n            },\n            catch: (onRejected:any) => {\n                // fails if promise was serialized and js function was reconstructed locally \n                try {value}\n                catch {\n                    throw new Error(\"Promise cannot be restored - storing Promises persistently is not supported\")\n                }\n                return value.catch(onRejected)\n            }\n        }\n    },\n\n\n    cast: value => {\n        if (value && value.then && value.catch) {\n            (value.then as any)[DX_TIMEOUT] = Infinity;\n            (value.catch as any)[DX_TIMEOUT] = Infinity;\n            return new Promise((resolve, reject) => {\n                value\n                    .then(resolve)\n                    .catch(reject);\n            })\n        }\n        else return INVALID;\n    }\n})\n\nType.js.ReadableStream.setJSInterface({\n    class: ReadableStream,\n\n    serialize: value => {\n        return {stream:new Stream(value)}\n    },\n\n    cast: value => {\n        if (value?.stream instanceof Stream) {\n            return (value.stream as Stream).readable_stream\n        }\n        else return INVALID;\n    }\n})\n\nType.js.WritableStream.setJSInterface({\n    class: WritableStream,\n\n    serialize: value => {\n        const stream = new Stream();\n        stream.pipeTo(value);\n        return {stream};\n    },\n\n    cast: value => {\n        if (value?.stream instanceof Stream) {\n            return (value.stream as Stream).writable_stream\n        }\n        else return INVALID;\n    }\n})\n\nType.js.Response.setJSInterface({\n    class: Response,\n\n    serialize: value => {\n        return {\n            body: value.body,\n            status: value.status,\n            statusText: value.statusText,\n            headers: Array.from(value.headers.entries())\n        }\n    },\n\n    cast: value => {\n        if (typeof value === \"object\") {\n            const headers = new Headers();\n            if (value.headers) {\n                for (const [key, val] of value.headers) {\n                    headers.append(key, val);\n                }\n            }\n            return new Response(value.body, {\n                status: value.status,\n                statusText: value.statusText,\n                headers\n            })\n        }\n        else return INVALID;\n    }\n})\n\nType.js.Request.setJSInterface({\n    class: Request,\n\n    serialize: value => {\n        return {\n            url: value.url,\n            method: value.method,\n            headers: Array.from(value.headers.entries()),\n            body: value.body,\n            cache: value.cache,\n            credentials: value.credentials,\n            integrity: value.integrity,\n            keepalive: value.keepalive,\n            mode: value.mode,\n            redirect: value.redirect,\n            referrer: value.referrer,\n            referrerPolicy: value.referrerPolicy,\n        }\n    },\n\n    cast: value => {\n        if (typeof value === \"object\") {\n            const headers = new Headers();\n            if (value.headers) {\n                for (const [key, val] of value.headers) {\n                    headers.append(key, val);\n                }\n            }\n            return new Request(value.url, {\n                method: value.method,\n                headers,\n                body: value.body,\n                cache: value.cache,\n                credentials: value.credentials,\n                integrity: value.integrity,\n                keepalive: value.keepalive,\n                mode: value.mode,\n                redirect: value.redirect,\n                referrer: value.referrer,\n                referrerPolicy: value.referrerPolicy,\n            })\n        }\n        else return INVALID;\n    }\n})\n\n// override set prototype to make sure all sets are sorted at runtime when calling [...set] (TODO is that good?)\n// const set_iterator = Set.prototype[Symbol.iterator];\n// Set.prototype[Symbol.iterator] = function() {\n//     const ordered = [...set_iterator.call(this)].sort();\n//     let i = 0;\n//     return <IterableIterator<any>>{\n//       next: () => ({\n//         done: i >= ordered.length,\n//         value: ordered[i++]\n//       })\n//     }\n// }\n\n\n\n// // <image/*>\n// if (globalThis.HTMLImageElement) Type.get(\"std:image\").setJSInterface({\n//     class: globalThis.HTMLImageElement,\n\n//     serialize: value => value._buffer,\n\n//     empty_generator: ()=>new Image(),\n\n//     cast: (value, type) => {\n//         console.log(\"cast image \" + type)\n//         if (value instanceof ArrayBuffer) {\n//             let blob = new Blob([value], {type: \"image/\"+type.variation});\n//             let imageUrl = (globalThis.URL || globalThis.webkitURL).createObjectURL(blob);\n//             let img = <HTMLImageElement> new Image();\n//             // @ts-ignore\n//             img._buffer = value;\n//             // @ts-ignore\n//             img._type = type;\n//             img.src = imageUrl;\n//             return img;\n//         }\n//         return INVALID;\n//     },\n\n//     // get specific type\n//     get_type: value => {\n//         return value._type ?? Type.get(\"std:image\")\n//     },\n\n//     visible_children: new Set([\"src\"]),\n\n// })"],"names":["ValueError","Type","DX_TIMEOUT","INVALID","NOT_EXISTING","Tuple","ReactiveMapMethods","Stream","globalThis","serializeImg","img","Promise","resolve","blob","fetch","src","then","r","fileReader","FileReader","onloadend","e","type","arr","Uint8Array","target","result","subarray","header","i","length","toString","_type","get","_buffer","onerror","readAsArrayBuffer","std","Map","setJSInterface","class","serialize","value","entries","empty_generator","proxify_children","cast","Array","ofValue","Object","create_proxy","pointer","defineProperty","key","handleSet","writable","enumerable","handleClear","el","handleDelete","getSize","getOwnPropertyDescriptor","getPrototypeOf","bind","keys","values","has","handleBeforeNonReferencableGet","Symbol","iterator","get_reactive_methods_object","ptr","set_property_silently","parent","prototype","set","call","delete_property_silently","delete","clear_silently","clear","set_property","get_property","delete_property","has_property","count","size","Set","sort","toArray","override_silently","ref","entry","add","handleAdd","handleRemove","operator_or","first","second","action_or","silently","v","operator_and","filter","x","action_and","action_add","action_subtract","AsyncGenerator","Generator","js","no_instanceof","detect_class","val","isPrototypeOf","is_normal_object","next","args","return","throw","res","done","onFulfilled","onRejected","catch","Infinity","reject","ReadableStream","stream","readable_stream","WritableStream","pipeTo","writable_stream","Response","body","status","statusText","headers","from","Headers","append","Request","url","method","cache","credentials","integrity","keepalive","mode","redirect","referrer","referrerPolicy"],"mappings":"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","sourceRoot":"/lib/datex-core-js-legacy-0.3.15/types/","file":"native_types.ts"}