From 27a8ef343c963bdb5b4cfdc28b32cb4e4403093b Mon Sep 17 00:00:00 2001 From: Rizky Date: Tue, 14 May 2024 12:59:03 +0700 Subject: [PATCH] fix --- app/srv/api/prod-zip.ts | 6 +- .../sync/code/templates/typings/global_d_ts | 9 +- app/static-br/sworker.js | Bin 3660 -> 3671 bytes app/static/sworker.js | 2 +- app/web/src/nova/vi/exts/notif.ts | 93 +++++++++--------- 5 files changed, 60 insertions(+), 50 deletions(-) diff --git a/app/srv/api/prod-zip.ts b/app/srv/api/prod-zip.ts index 0c2b0aa7..e95c90c6 100644 --- a/app/srv/api/prod-zip.ts +++ b/app/srv/api/prod-zip.ts @@ -4,7 +4,7 @@ import path from "path"; import { gzipAsync } from "../ws/sync/entity/zlib"; import { validate } from "uuid"; import { dir } from "dir"; -import { existsAsync, readAsync } from "fs-jetpack"; +import { existsAsync, readAsync, exists } from "fs-jetpack"; import { code } from "../ws/sync/code/code"; export const _ = { @@ -51,6 +51,9 @@ export const _ = { }, select: { id: true, content_tree: true }, }), + public: readDirectoryRecursively( + code.path(site_id, "site", "src", "public") + ), site: await _db.site.findFirst({ where: { id: site_id }, select: { @@ -87,6 +90,7 @@ export function readDirectoryRecursively( ): Record { const result: Record = {}; + if (!exists(dirPath)) return result; const contents = fs.readdirSync(dirPath); for (const item of contents) { diff --git a/app/srv/ws/sync/code/templates/typings/global_d_ts b/app/srv/ws/sync/code/templates/typings/global_d_ts index 9203ae56..12b5303a 100644 --- a/app/srv/ws/sync/code/templates/typings/global_d_ts +++ b/app/srv/ws/sync/code/templates/typings/global_d_ts @@ -30,9 +30,16 @@ declare global { inputValue?: string; notification: PushNotificationSchema; } + interface NOTIF_ARG { + user_id: any; + body: string; + title: string; + data?: any; + } const notif: | { - loaded: (send: (data: any) => void) => void; + send: (data: NOTIF_ARG) => Promise; + register: (user_id: string) => void; onReceive: (notif: PushNotificationSchema) => void | Promise; onTap: (notif: null | ActionPerformed) => void | Promise; } diff --git a/app/static-br/sworker.js b/app/static-br/sworker.js index 2aa049169bb96d8ae531442c09658085000146c4..10d3ad7bf9a66ba15cab6d81f6f47830c20def15 100644 GIT binary patch literal 3671 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 literal 3660 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 diff --git a/app/static/sworker.js b/app/static/sworker.js index 348e46a9..b802f8fb 100644 --- a/app/static/sworker.js +++ b/app/static/sworker.js @@ -1,2 +1,2 @@ -!function(e,s,a,i,n){var r="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},t="function"==typeof r[i]&&r[i],l=t.cache||{},o="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function c(s,a){if(!l[s]){if(!e[s]){var n="function"==typeof r[i]&&r[i];if(!a&&n)return n(s,!0);if(t)return t(s,!0);if(o&&"string"==typeof s)return o(s);var m=Error("Cannot find module '"+s+"'");throw m.code="MODULE_NOT_FOUND",m}d.resolve=function(a){var i=e[s][1][a];return null!=i?i:a},d.cache={};var u=l[s]=new c.Module(s);e[s][0].call(u.exports,d,u,u.exports,this)}return l[s].exports;function d(e){var s=d.resolve(e);return!1===s?{}:c(s)}}c.isParcelRequire=!0,c.Module=function(e){this.id=e,this.bundle=c,this.exports={}},c.modules=e,c.cache=l,c.parent=t,c.register=function(s,a){e[s]=[function(e,s){s.exports=a},{}]},Object.defineProperty(c,"root",{get:function(){return r[i]}}),r[i]=c;for(var m=0;mn),i.export(a,"version",()=>r),i.export(a,"_register",()=>t);let n=[],r="";function t(e,s){n=e,r=s}},{"@parcel/transformer-js/src/esmodule-helpers.js":"dNXWi"}],dNXWi:[function(e,s,a){a.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},a.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},a.exportAll=function(e,s){return Object.keys(e).forEach(function(a){"default"===a||"__esModule"===a||Object.prototype.hasOwnProperty.call(s,a)||Object.defineProperty(s,a,{enumerable:!0,get:function(){return e[a]}})}),s},a.export=function(e,s,a){Object.defineProperty(e,s,{enumerable:!0,get:a})}},{}],"5iB2w":[function(e,s,a){var i=e("@parcel/service-worker"),n=e("radix3"),r=e("../timestamp"),t=e("../public_files");let l={router:null,offline:!1,broadcast(e){self.clients.matchAll({includeUncontrolled:!0}).then(s=>{s.forEach(s=>{s.postMessage(e)})})}};async function o(){let e=await caches.open(r.version);await e.addAll([...i.manifest,...t.files]),l.broadcast({type:"installed"})}async function c(){let e=!1;if(!l.offline){let s=await caches.keys();await Promise.all(s.map(async s=>{s!==r.version&&(await caches.delete(s),e=!0)})),l.broadcast({type:"activated",shouldRefresh:e,version:r.version})}}addEventListener("install",e=>e.waitUntil(o())),addEventListener("activate",e=>e.waitUntil(c())),addEventListener("fetch",async e=>{let s=new URL(e.request.url);l.router&&l.router.lookup(s.pathname)||e.respondWith((async()=>{let s=await caches.match(e.request);if(s)return s;try{return l.offline=!1,await fetch(e.request)}catch(e){return l.offline=!0,l.broadcast({type:"offline"}),new Response}})())}),addEventListener("message",async e=>{let s=e.data.type,a=await caches.open(r.version);switch(s){case"add-cache":await a.match(e.data.url)||await a.add(e.data.url);break;case"define-route":for(let s of(l.router=(0,n.createRouter)({strictTrailingSlash:!1}),e.data.routes))l.router.insert(s.url,s);await c();break;case"force-update":{let e=await caches.keys();await Promise.all(e.map(async e=>{e!==r.version&&await caches.delete(e)})),await o()}}})},{"@parcel/service-worker":"dnsG0",radix3:"jkzZ1","../timestamp":"jH99Y","../public_files":"k4EOQ"}],jkzZ1:[function(e,s,a){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(a),i.export(a,"NODE_TYPES",()=>n),i.export(a,"createMatcherFromExport",()=>u),i.export(a,"createRouter",()=>r),i.export(a,"exportMatcher",()=>m),i.export(a,"toRouteMatcher",()=>o);let n={NORMAL:0,WILDCARD:1,PLACEHOLDER:2};function r(e={}){let s={options:e,rootNode:l(),staticRoutesMap:{}},a=s=>e.strictTrailingSlash?s:s.replace(/\/$/,"")||"/";if(e.routes)for(let i in e.routes)t(s,a(i),e.routes[i]);return{ctx:s,lookup:e=>(function(e,s){let a=e.staticRoutesMap[s];if(a)return a.data;let i=s.split("/"),n={},r=!1,t=null,l=e.rootNode,o=null;for(let e=0;et(s,a(e),i),remove:e=>(function(e,s){let a=!1,i=s.split("/"),n=e.rootNode;for(let e of i)if(!(n=n.children.get(e)))return a;if(n.data){let e=i[i.length-1];if(n.data=null,0===Object.keys(n.children).length){let s=n.parent;s.children.delete(e),s.wildcardChildNode=null,s.placeholderChildNode=null}a=!0}return a})(s,a(e))}}function t(e,s,a){let i=!0,r=s.split("/"),t=e.rootNode,o=0;for(let e of r){let s;if(s=t.children.get(e))t=s;else{let a=e.startsWith("**")?n.WILDCARD:":"===e[0]||"*"===e?n.PLACEHOLDER:n.NORMAL;s=l({type:a,parent:t}),t.children.set(e,s),a===n.PLACEHOLDER?(s.paramName="*"===e?`_${o++}`:e.slice(1),t.placeholderChildNode=s,i=!1):a===n.WILDCARD&&(t.wildcardChildNode=s,s.paramName=e.slice(3)||"_",i=!1),t=s}}return t.data=a,!0===i&&(e.staticRoutesMap[s]=t),t}function l(e={}){return{type:e.type||n.NORMAL,parent:e.parent||null,children:new Map,data:e.data||null,paramName:e.paramName||null,wildcardChildNode:null,placeholderChildNode:null}}function o(e){return c(function e(s,a){let i={static:new Map,wildcard:new Map,dynamic:new Map};return!function s(a,r){if(a){if(r.type!==n.NORMAL||a.includes("*")||a.includes(":")){if(r.type===n.WILDCARD)i.wildcard.set(a.replace("/**",""),r.data);else if(r.type===n.PLACEHOLDER){let s=e("",r);r.data&&s.static.set("/",r.data),i.dynamic.set(a.replace(/\/\*|\/:\w+/,""),s);return}}else i.static.set(a,r.data)}for(let[e,i]of r.children.entries())s(`${a}/${e}`.replace("//","/"),i)}(s,a),i}("",e.ctx.rootNode))}function c(e){return{ctx:{table:e},matchAll:s=>(function e(s,a){let i=[];for(let[e,n]of d(a.wildcard))s.startsWith(e)&&i.push(n);for(let[n,r]of d(a.dynamic))if(s.startsWith(n+"/")){let a="/"+s.slice(n.length).split("/").splice(2).join("/");i.push(...e(a,r))}let n=a.static.get(s);return n&&i.push(n),i.filter(Boolean)})(s,e)}}function m(e){return function e(s){let a=Object.create(null);for(let i in s)a[i]="dynamic"===i?Object.fromEntries([...s[i].entries()].map(([s,a])=>[s,e(a)])):Object.fromEntries(s[i].entries());return a}(e.ctx.table)}function u(e){return c(function e(s){let a={};for(let i in s)a[i]=new Map("dynamic"===i?Object.entries(s[i]).map(([s,a])=>[s,e(a)]):Object.entries(s[i]));return a}(e))}function d(e){return[...e.entries()].sort((e,s)=>e[0].length-s[0].length)}},{"@parcel/transformer-js/src/esmodule-helpers.js":"dNXWi"}],jH99Y:[function(e,s,a){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(a),i.export(a,"version",()=>n);let n="xu1ufho"},{"@parcel/transformer-js/src/esmodule-helpers.js":"dNXWi"}],k4EOQ:[function(e,s,a){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(a),i.export(a,"files",()=>n);let n=["favicon.ico","index.html","min/vs/loader.js","min/vs/editor/editor.main.nls.ru.js","min/vs/editor/editor.main.css","min/vs/editor/editor.main.nls.ko.js","min/vs/editor/editor.main.nls.zh-cn.js","min/vs/editor/editor.main.js","min/vs/editor/editor.main.nls.ja.js","min/vs/editor/editor.main.nls.zh-tw.js","min/vs/editor/editor.main.nls.de.js","min/vs/editor/editor.main.nls.it.js","min/vs/editor/editor.main.nls.es.js","min/vs/editor/editor.main.nls.js","min/vs/editor/editor.main.nls.fr.js","min/vs/base/worker/workerMain.js","min/vs/base/common/worker/simpleWorker.nls.it.js","min/vs/base/common/worker/simpleWorker.nls.es.js","min/vs/base/common/worker/simpleWorker.nls.fr.js","min/vs/base/common/worker/simpleWorker.nls.de.js","min/vs/base/common/worker/simpleWorker.nls.js","min/vs/base/common/worker/simpleWorker.nls.ja.js","min/vs/base/common/worker/simpleWorker.nls.ru.js","min/vs/base/common/worker/simpleWorker.nls.zh-cn.js","min/vs/base/common/worker/simpleWorker.nls.zh-tw.js","min/vs/base/common/worker/simpleWorker.nls.ko.js","min/vs/base/browser/ui/codicons/codicon/codicon.ttf","min/vs/language/json/jsonWorker.js","min/vs/language/json/jsonMode.js","min/vs/language/html/htmlMode.js","min/vs/language/html/htmlWorker.js","min/vs/language/typescript/tsWorker.js","min/vs/language/typescript/tsMode.js","min/vs/language/css/cssMode.js","min/vs/language/css/cssWorker.js","min/vs/basic-languages/sql/sql.js","min/vs/basic-languages/flow9/flow9.js","min/vs/basic-languages/ruby/ruby.js","min/vs/basic-languages/ecl/ecl.js","min/vs/basic-languages/protobuf/protobuf.js","min/vs/basic-languages/objective-c/objective-c.js","min/vs/basic-languages/restructuredtext/restructuredtext.js","min/vs/basic-languages/wgsl/wgsl.js","min/vs/basic-languages/msdax/msdax.js","min/vs/basic-languages/twig/twig.js","min/vs/basic-languages/bicep/bicep.js","min/vs/basic-languages/javascript/javascript.js","min/vs/basic-languages/bat/bat.js","min/vs/basic-languages/julia/julia.js","min/vs/basic-languages/csharp/csharp.js","min/vs/basic-languages/yaml/yaml.js","min/vs/basic-languages/m3/m3.js","min/vs/basic-languages/pgsql/pgsql.js","min/vs/basic-languages/csp/csp.js","min/vs/basic-languages/coffee/coffee.js","min/vs/basic-languages/mysql/mysql.js","min/vs/basic-languages/qsharp/qsharp.js","min/vs/basic-languages/graphql/graphql.js","min/vs/basic-languages/swift/swift.js","min/vs/basic-languages/cpp/cpp.js","min/vs/basic-languages/hcl/hcl.js","min/vs/basic-languages/scala/scala.js","min/vs/basic-languages/handlebars/handlebars.js","min/vs/basic-languages/ini/ini.js","min/vs/basic-languages/tcl/tcl.js","min/vs/basic-languages/pla/pla.js","min/vs/basic-languages/mips/mips.js","min/vs/basic-languages/powershell/powershell.js","min/vs/basic-languages/vb/vb.js","min/vs/basic-languages/redshift/redshift.js","min/vs/basic-languages/st/st.js","min/vs/basic-languages/solidity/solidity.js","min/vs/basic-languages/pascaligo/pascaligo.js","min/vs/basic-languages/xml/xml.js","min/vs/basic-languages/lua/lua.js","min/vs/basic-languages/php/php.js","min/vs/basic-languages/cypher/cypher.js","min/vs/basic-languages/kotlin/kotlin.js","min/vs/basic-languages/abap/abap.js","min/vs/basic-languages/html/html.js","min/vs/basic-languages/java/java.js","min/vs/basic-languages/liquid/liquid.js","min/vs/basic-languages/freemarker2/freemarker2.js","min/vs/basic-languages/r/r.js","min/vs/basic-languages/fsharp/fsharp.js","min/vs/basic-languages/pug/pug.js","min/vs/basic-languages/rust/rust.js","min/vs/basic-languages/typescript/typescript.js","min/vs/basic-languages/perl/perl.js","min/vs/basic-languages/sophia/sophia.js","min/vs/basic-languages/scss/scss.js","min/vs/basic-languages/markdown/markdown.js","min/vs/basic-languages/shell/shell.js","min/vs/basic-languages/dart/dart.js","min/vs/basic-languages/dockerfile/dockerfile.js","min/vs/basic-languages/lexon/lexon.js","min/vs/basic-languages/redis/redis.js","min/vs/basic-languages/elixir/elixir.js","min/vs/basic-languages/less/less.js","min/vs/basic-languages/clojure/clojure.js","min/vs/basic-languages/css/css.js","min/vs/basic-languages/python/python.js","min/vs/basic-languages/azcli/azcli.js","min/vs/basic-languages/sparql/sparql.js","min/vs/basic-languages/systemverilog/systemverilog.js","min/vs/basic-languages/go/go.js","min/vs/basic-languages/apex/apex.js","min/vs/basic-languages/powerquery/powerquery.js","min/vs/basic-languages/razor/razor.js","min/vs/basic-languages/cameligo/cameligo.js","min/vs/basic-languages/pascal/pascal.js","min/vs/basic-languages/mdx/mdx.js","min/vs/basic-languages/sb/sb.js","min/vs/basic-languages/scheme/scheme.js","min/vs/basic-languages/postiats/postiats.js","min-maps/vs/loader.js.map","min-maps/vs/editor/editor.main.nls.ko.js.map","min-maps/vs/editor/editor.main.nls.ja.js.map","min-maps/vs/editor/editor.main.nls.fr.js.map","min-maps/vs/editor/editor.main.nls.zh-cn.js.map","min-maps/vs/editor/editor.main.nls.js.map","min-maps/vs/editor/editor.main.js.map","min-maps/vs/editor/editor.main.nls.it.js.map","min-maps/vs/editor/editor.main.nls.zh-tw.js.map","min-maps/vs/editor/editor.main.nls.ru.js.map","min-maps/vs/editor/editor.main.nls.es.js.map","min-maps/vs/editor/editor.main.nls.de.js.map","min-maps/vs/base/worker/workerMain.js.map","min-maps/vs/base/common/worker/simpleWorker.nls.js.map","min-maps/vs/base/common/worker/simpleWorker.nls.zh-tw.js.map","min-maps/vs/base/common/worker/simpleWorker.nls.ko.js.map","min-maps/vs/base/common/worker/simpleWorker.nls.ja.js.map","min-maps/vs/base/common/worker/simpleWorker.nls.fr.js.map","min-maps/vs/base/common/worker/simpleWorker.nls.ru.js.map","min-maps/vs/base/common/worker/simpleWorker.nls.it.js.map","min-maps/vs/base/common/worker/simpleWorker.nls.es.js.map","min-maps/vs/base/common/worker/simpleWorker.nls.zh-cn.js.map","min-maps/vs/base/common/worker/simpleWorker.nls.de.js.map","img/empty.png","img/logo-white.png","img/logo.png"]},{"@parcel/transformer-js/src/esmodule-helpers.js":"dNXWi"}]},["9n8xk","5iB2w"],"5iB2w","parcelRequire2d1f"); +!function(e,s,a,i,n){var r="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},t="function"==typeof r[i]&&r[i],l=t.cache||{},o="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function c(s,a){if(!l[s]){if(!e[s]){var n="function"==typeof r[i]&&r[i];if(!a&&n)return n(s,!0);if(t)return t(s,!0);if(o&&"string"==typeof s)return o(s);var m=Error("Cannot find module '"+s+"'");throw m.code="MODULE_NOT_FOUND",m}d.resolve=function(a){var i=e[s][1][a];return null!=i?i:a},d.cache={};var u=l[s]=new c.Module(s);e[s][0].call(u.exports,d,u,u.exports,this)}return l[s].exports;function d(e){var s=d.resolve(e);return!1===s?{}:c(s)}}c.isParcelRequire=!0,c.Module=function(e){this.id=e,this.bundle=c,this.exports={}},c.modules=e,c.cache=l,c.parent=t,c.register=function(s,a){e[s]=[function(e,s){s.exports=a},{}]},Object.defineProperty(c,"root",{get:function(){return r[i]}}),r[i]=c;for(var m=0;mn),i.export(a,"version",()=>r),i.export(a,"_register",()=>t);let n=[],r="";function t(e,s){n=e,r=s}},{"@parcel/transformer-js/src/esmodule-helpers.js":"dNXWi"}],dNXWi:[function(e,s,a){a.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},a.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},a.exportAll=function(e,s){return Object.keys(e).forEach(function(a){"default"===a||"__esModule"===a||Object.prototype.hasOwnProperty.call(s,a)||Object.defineProperty(s,a,{enumerable:!0,get:function(){return e[a]}})}),s},a.export=function(e,s,a){Object.defineProperty(e,s,{enumerable:!0,get:a})}},{}],"5iB2w":[function(e,s,a){var i=e("@parcel/service-worker"),n=e("radix3"),r=e("../timestamp"),t=e("../public_files");let l={router:null,offline:!1,broadcast(e){self.clients.matchAll({includeUncontrolled:!0}).then(s=>{s.forEach(s=>{s.postMessage(e)})})}};async function o(){let e=await caches.open(r.version);await e.addAll([...i.manifest,...t.files]),l.broadcast({type:"installed"})}async function c(){let e=!1;if(!l.offline){let s=await caches.keys();await Promise.all(s.map(async s=>{s!==r.version&&(await caches.delete(s),e=!0)})),l.broadcast({type:"activated",shouldRefresh:e,version:r.version})}}addEventListener("install",e=>e.waitUntil(o())),addEventListener("activate",e=>e.waitUntil(c())),addEventListener("fetch",async e=>{let s=new URL(e.request.url);l.router&&l.router.lookup(s.pathname)||e.respondWith((async()=>{let s=await caches.match(e.request);if(s)return s;try{return l.offline=!1,await fetch(e.request)}catch(e){return l.offline=!0,l.broadcast({type:"offline"}),new Response}})())}),addEventListener("message",async e=>{let s=e.data.type,a=await caches.open(r.version);switch(s){case"add-cache":await a.match(e.data.url)||await a.add(e.data.url);break;case"define-route":for(let s of(l.router=(0,n.createRouter)({strictTrailingSlash:!1}),e.data.routes))l.router.insert(s.url,s);await c();break;case"force-update":{let e=await caches.keys();await Promise.all(e.map(async e=>{e!==r.version&&await caches.delete(e)})),await o()}}})},{"@parcel/service-worker":"dnsG0",radix3:"jkzZ1","../timestamp":"jH99Y","../public_files":"k4EOQ"}],jkzZ1:[function(e,s,a){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(a),i.export(a,"NODE_TYPES",()=>n),i.export(a,"createMatcherFromExport",()=>u),i.export(a,"createRouter",()=>r),i.export(a,"exportMatcher",()=>m),i.export(a,"toRouteMatcher",()=>o);let n={NORMAL:0,WILDCARD:1,PLACEHOLDER:2};function r(e={}){let s={options:e,rootNode:l(),staticRoutesMap:{}},a=s=>e.strictTrailingSlash?s:s.replace(/\/$/,"")||"/";if(e.routes)for(let i in e.routes)t(s,a(i),e.routes[i]);return{ctx:s,lookup:e=>(function(e,s){let a=e.staticRoutesMap[s];if(a)return a.data;let i=s.split("/"),n={},r=!1,t=null,l=e.rootNode,o=null;for(let e=0;et(s,a(e),i),remove:e=>(function(e,s){let a=!1,i=s.split("/"),n=e.rootNode;for(let e of i)if(!(n=n.children.get(e)))return a;if(n.data){let e=i[i.length-1];if(n.data=null,0===Object.keys(n.children).length){let s=n.parent;s.children.delete(e),s.wildcardChildNode=null,s.placeholderChildNode=null}a=!0}return a})(s,a(e))}}function t(e,s,a){let i=!0,r=s.split("/"),t=e.rootNode,o=0;for(let e of r){let s;if(s=t.children.get(e))t=s;else{let a=e.startsWith("**")?n.WILDCARD:":"===e[0]||"*"===e?n.PLACEHOLDER:n.NORMAL;s=l({type:a,parent:t}),t.children.set(e,s),a===n.PLACEHOLDER?(s.paramName="*"===e?`_${o++}`:e.slice(1),t.placeholderChildNode=s,i=!1):a===n.WILDCARD&&(t.wildcardChildNode=s,s.paramName=e.slice(3)||"_",i=!1),t=s}}return t.data=a,!0===i&&(e.staticRoutesMap[s]=t),t}function l(e={}){return{type:e.type||n.NORMAL,parent:e.parent||null,children:new Map,data:e.data||null,paramName:e.paramName||null,wildcardChildNode:null,placeholderChildNode:null}}function o(e){return c(function e(s,a){let i={static:new Map,wildcard:new Map,dynamic:new Map};return!function s(a,r){if(a){if(r.type!==n.NORMAL||a.includes("*")||a.includes(":")){if(r.type===n.WILDCARD)i.wildcard.set(a.replace("/**",""),r.data);else if(r.type===n.PLACEHOLDER){let s=e("",r);r.data&&s.static.set("/",r.data),i.dynamic.set(a.replace(/\/\*|\/:\w+/,""),s);return}}else i.static.set(a,r.data)}for(let[e,i]of r.children.entries())s(`${a}/${e}`.replace("//","/"),i)}(s,a),i}("",e.ctx.rootNode))}function c(e){return{ctx:{table:e},matchAll:s=>(function e(s,a){let i=[];for(let[e,n]of d(a.wildcard))s.startsWith(e)&&i.push(n);for(let[n,r]of d(a.dynamic))if(s.startsWith(n+"/")){let a="/"+s.slice(n.length).split("/").splice(2).join("/");i.push(...e(a,r))}let n=a.static.get(s);return n&&i.push(n),i.filter(Boolean)})(s,e)}}function m(e){return function e(s){let a=Object.create(null);for(let i in s)a[i]="dynamic"===i?Object.fromEntries([...s[i].entries()].map(([s,a])=>[s,e(a)])):Object.fromEntries(s[i].entries());return a}(e.ctx.table)}function u(e){return c(function e(s){let a={};for(let i in s)a[i]=new Map("dynamic"===i?Object.entries(s[i]).map(([s,a])=>[s,e(a)]):Object.entries(s[i]));return a}(e))}function d(e){return[...e.entries()].sort((e,s)=>e[0].length-s[0].length)}},{"@parcel/transformer-js/src/esmodule-helpers.js":"dNXWi"}],jH99Y:[function(e,s,a){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(a),i.export(a,"version",()=>n);let n="if5hzi0"},{"@parcel/transformer-js/src/esmodule-helpers.js":"dNXWi"}],k4EOQ:[function(e,s,a){var i=e("@parcel/transformer-js/src/esmodule-helpers.js");i.defineInteropFlag(a),i.export(a,"files",()=>n);let n=["favicon.ico","index.html","min/vs/loader.js","min/vs/editor/editor.main.nls.ru.js","min/vs/editor/editor.main.css","min/vs/editor/editor.main.nls.ko.js","min/vs/editor/editor.main.nls.zh-cn.js","min/vs/editor/editor.main.js","min/vs/editor/editor.main.nls.ja.js","min/vs/editor/editor.main.nls.zh-tw.js","min/vs/editor/editor.main.nls.de.js","min/vs/editor/editor.main.nls.it.js","min/vs/editor/editor.main.nls.es.js","min/vs/editor/editor.main.nls.js","min/vs/editor/editor.main.nls.fr.js","min/vs/base/worker/workerMain.js","min/vs/base/common/worker/simpleWorker.nls.it.js","min/vs/base/common/worker/simpleWorker.nls.es.js","min/vs/base/common/worker/simpleWorker.nls.fr.js","min/vs/base/common/worker/simpleWorker.nls.de.js","min/vs/base/common/worker/simpleWorker.nls.js","min/vs/base/common/worker/simpleWorker.nls.ja.js","min/vs/base/common/worker/simpleWorker.nls.ru.js","min/vs/base/common/worker/simpleWorker.nls.zh-cn.js","min/vs/base/common/worker/simpleWorker.nls.zh-tw.js","min/vs/base/common/worker/simpleWorker.nls.ko.js","min/vs/base/browser/ui/codicons/codicon/codicon.ttf","min/vs/language/json/jsonWorker.js","min/vs/language/json/jsonMode.js","min/vs/language/html/htmlMode.js","min/vs/language/html/htmlWorker.js","min/vs/language/typescript/tsWorker.js","min/vs/language/typescript/tsMode.js","min/vs/language/css/cssMode.js","min/vs/language/css/cssWorker.js","min/vs/basic-languages/sql/sql.js","min/vs/basic-languages/flow9/flow9.js","min/vs/basic-languages/ruby/ruby.js","min/vs/basic-languages/ecl/ecl.js","min/vs/basic-languages/protobuf/protobuf.js","min/vs/basic-languages/objective-c/objective-c.js","min/vs/basic-languages/restructuredtext/restructuredtext.js","min/vs/basic-languages/wgsl/wgsl.js","min/vs/basic-languages/msdax/msdax.js","min/vs/basic-languages/twig/twig.js","min/vs/basic-languages/bicep/bicep.js","min/vs/basic-languages/javascript/javascript.js","min/vs/basic-languages/bat/bat.js","min/vs/basic-languages/julia/julia.js","min/vs/basic-languages/csharp/csharp.js","min/vs/basic-languages/yaml/yaml.js","min/vs/basic-languages/m3/m3.js","min/vs/basic-languages/pgsql/pgsql.js","min/vs/basic-languages/csp/csp.js","min/vs/basic-languages/coffee/coffee.js","min/vs/basic-languages/mysql/mysql.js","min/vs/basic-languages/qsharp/qsharp.js","min/vs/basic-languages/graphql/graphql.js","min/vs/basic-languages/swift/swift.js","min/vs/basic-languages/cpp/cpp.js","min/vs/basic-languages/hcl/hcl.js","min/vs/basic-languages/scala/scala.js","min/vs/basic-languages/handlebars/handlebars.js","min/vs/basic-languages/ini/ini.js","min/vs/basic-languages/tcl/tcl.js","min/vs/basic-languages/pla/pla.js","min/vs/basic-languages/mips/mips.js","min/vs/basic-languages/powershell/powershell.js","min/vs/basic-languages/vb/vb.js","min/vs/basic-languages/redshift/redshift.js","min/vs/basic-languages/st/st.js","min/vs/basic-languages/solidity/solidity.js","min/vs/basic-languages/pascaligo/pascaligo.js","min/vs/basic-languages/xml/xml.js","min/vs/basic-languages/lua/lua.js","min/vs/basic-languages/php/php.js","min/vs/basic-languages/cypher/cypher.js","min/vs/basic-languages/kotlin/kotlin.js","min/vs/basic-languages/abap/abap.js","min/vs/basic-languages/html/html.js","min/vs/basic-languages/java/java.js","min/vs/basic-languages/liquid/liquid.js","min/vs/basic-languages/freemarker2/freemarker2.js","min/vs/basic-languages/r/r.js","min/vs/basic-languages/fsharp/fsharp.js","min/vs/basic-languages/pug/pug.js","min/vs/basic-languages/rust/rust.js","min/vs/basic-languages/typescript/typescript.js","min/vs/basic-languages/perl/perl.js","min/vs/basic-languages/sophia/sophia.js","min/vs/basic-languages/scss/scss.js","min/vs/basic-languages/markdown/markdown.js","min/vs/basic-languages/shell/shell.js","min/vs/basic-languages/dart/dart.js","min/vs/basic-languages/dockerfile/dockerfile.js","min/vs/basic-languages/lexon/lexon.js","min/vs/basic-languages/redis/redis.js","min/vs/basic-languages/elixir/elixir.js","min/vs/basic-languages/less/less.js","min/vs/basic-languages/clojure/clojure.js","min/vs/basic-languages/css/css.js","min/vs/basic-languages/python/python.js","min/vs/basic-languages/azcli/azcli.js","min/vs/basic-languages/sparql/sparql.js","min/vs/basic-languages/systemverilog/systemverilog.js","min/vs/basic-languages/go/go.js","min/vs/basic-languages/apex/apex.js","min/vs/basic-languages/powerquery/powerquery.js","min/vs/basic-languages/razor/razor.js","min/vs/basic-languages/cameligo/cameligo.js","min/vs/basic-languages/pascal/pascal.js","min/vs/basic-languages/mdx/mdx.js","min/vs/basic-languages/sb/sb.js","min/vs/basic-languages/scheme/scheme.js","min/vs/basic-languages/postiats/postiats.js","min-maps/vs/loader.js.map","min-maps/vs/editor/editor.main.nls.ko.js.map","min-maps/vs/editor/editor.main.nls.ja.js.map","min-maps/vs/editor/editor.main.nls.fr.js.map","min-maps/vs/editor/editor.main.nls.zh-cn.js.map","min-maps/vs/editor/editor.main.nls.js.map","min-maps/vs/editor/editor.main.js.map","min-maps/vs/editor/editor.main.nls.it.js.map","min-maps/vs/editor/editor.main.nls.zh-tw.js.map","min-maps/vs/editor/editor.main.nls.ru.js.map","min-maps/vs/editor/editor.main.nls.es.js.map","min-maps/vs/editor/editor.main.nls.de.js.map","min-maps/vs/base/worker/workerMain.js.map","min-maps/vs/base/common/worker/simpleWorker.nls.js.map","min-maps/vs/base/common/worker/simpleWorker.nls.zh-tw.js.map","min-maps/vs/base/common/worker/simpleWorker.nls.ko.js.map","min-maps/vs/base/common/worker/simpleWorker.nls.ja.js.map","min-maps/vs/base/common/worker/simpleWorker.nls.fr.js.map","min-maps/vs/base/common/worker/simpleWorker.nls.ru.js.map","min-maps/vs/base/common/worker/simpleWorker.nls.it.js.map","min-maps/vs/base/common/worker/simpleWorker.nls.es.js.map","min-maps/vs/base/common/worker/simpleWorker.nls.zh-cn.js.map","min-maps/vs/base/common/worker/simpleWorker.nls.de.js.map","img/empty.png","img/logo-white.png","img/logo.png"]},{"@parcel/transformer-js/src/esmodule-helpers.js":"dNXWi"}]},["9n8xk","5iB2w"],"5iB2w","parcelRequire2d1f"); //# sourceMappingURL=sworker.js.map diff --git a/app/web/src/nova/vi/exts/notif.ts b/app/web/src/nova/vi/exts/notif.ts index ab4b827c..7325ecfe 100644 --- a/app/web/src/nova/vi/exts/notif.ts +++ b/app/web/src/nova/vi/exts/notif.ts @@ -1,3 +1,4 @@ +import { waitUntil } from "web-utils"; import { PG } from "../../ed/logic/ed-global"; import { VG } from "../render/global"; import { PrasiExt, prasi_ext } from "./types"; @@ -32,7 +33,8 @@ interface ActionPerformed { const w = window as unknown as { notif: | { - loaded: (send: (data: any) => void) => void; + send: (data: NOTIF_ARG) => Promise; + register: (user_id: string) => void; onReceive: (notif: PushNotificationSchema) => void | Promise; onTap: (notif: null | ActionPerformed) => void | Promise; } @@ -41,6 +43,13 @@ const w = window as unknown as { export const initExtNotif = async (vi: VG, prasi_ext: PrasiExt) => { const config = prasi_ext.notif; + w.notif = { + async send() {}, + register() {}, + onReceive(notif) {}, + onTap(notif) {}, + }; + if (window.parent && config) { window.addEventListener("message", async ({ data: raw }) => { if (typeof raw === "object" && raw.mobile) { @@ -53,7 +62,7 @@ export const initExtNotif = async (vi: VG, prasi_ext: PrasiExt) => { | { type: "notification-receive"; notif: PushNotificationSchema }; const waitUntil = async (fn: () => boolean) => { - if (!current.notif.onTap) { + if (!w.notif?.onTap) { let ival = null as any; let i = 0; await new Promise(() => { @@ -76,10 +85,10 @@ export const initExtNotif = async (vi: VG, prasi_ext: PrasiExt) => { config.token = data.token; break; case "notification-tap": - if (!current.notif.onTap) { + if (!w.notif?.onTap) { waitUntil(() => { - if (current.notif.onTap) { - current.notif.onTap(data.notif); + if (w.notif?.onTap) { + w.notif?.onTap(data.notif); return true; } return false; @@ -87,63 +96,53 @@ export const initExtNotif = async (vi: VG, prasi_ext: PrasiExt) => { return; } - if (current.notif.onTap) { - current.notif.onTap(data.notif); + if (w.notif?.onTap) { + w.notif?.onTap(data.notif); } break; case "notification-receive": - if (!current.notif.onReceive) { + if (!w.notif?.onReceive) { waitUntil(() => { - if (current.notif.onReceive) { - current.notif.onReceive(data.notif); + if (w.notif?.onReceive) { + w.notif?.onReceive(data.notif); return true; } return false; }); } - if (current.notif.onReceive) { - current.notif.onReceive(data.notif); + if (w.notif?.onReceive) { + w.notif?.onReceive(data.notif); } break; } } }); - const current = { - send: (msg: { type: "ready" }) => { - window.parent.postMessage({ mobile: true, ...msg }, "*"); - }, - config, - notif: { - register: async (user_id: any) => { - if (vi && vi.site.api) { - return await vi.site.api._notif("register", { - type: "register", - id: typeof user_id === "string" ? user_id : user_id.toString(), - token: config.token, - }); - } - }, - send: async (data: NOTIF_ARG) => { - if (vi && vi.site.api) { - return await vi.site.api._notif("send", { - type: "send", - id: - typeof data.user_id === "string" - ? data.user_id - : data.user_id.toString(), - body: data.body, - title: data.title, - data: data.data, - }); - } - }, - onTap: null as null | Exclude["onTap"], - onReceive: null as - | null - | Exclude["onReceive"], - }, + window.parent.postMessage({ mobile: true, type: "ready" }, "*"); + w.notif.register = async (user_id: any) => { + await waitUntil(() => config.token); + if (vi && vi.site.api) { + return await vi.site.api._notif("register", { + type: "register", + id: typeof user_id === "string" ? user_id : user_id.toString(), + token: config.token, + }); + } + }; + + w.notif.send = async (data: NOTIF_ARG) => { + if (vi && vi.site.api) { + return await vi.site.api._notif("send", { + type: "send", + id: + typeof data.user_id === "string" + ? data.user_id + : data.user_id.toString(), + body: data.body, + title: data.title, + data: data.data, + }); + } }; - current.send({ type: "ready" }); } };