@comate/zulu 0.4.0-beta.1 → 0.4.0-beta.2
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.
- package/comate-engine/node_modules/@comate/plugin-engine/dist/index.js +2 -2
- package/comate-engine/node_modules/@comate/plugin-host/dist/index.js +1 -1
- package/comate-engine/node_modules/@comate/plugin-host/dist/main.js +1 -1
- package/comate-engine/node_modules/@comate/plugin-host/dist/{user-BVkkx49j.js → user-CYNHRAqv.js} +1 -1
- package/comate-engine/node_modules/@comate/plugin-shared-internals/dist/index.d.ts +25 -4
- package/comate-engine/node_modules/@comate/plugin-shared-internals/dist/index.js +3 -3
- package/comate-engine/node_modules/@comate/preview-proxy/bin/preview.js +1 -0
- package/comate-engine/node_modules/@comate/preview-proxy/dist/index.js +2 -2
- package/comate-engine/node_modules/@comate/preview-proxy/static/comate-preview-injector.css +1 -1
- package/comate-engine/node_modules/@comate/preview-proxy/static/comate-preview-injector.js +1 -1
- package/comate-engine/node_modules/better-sqlite3/node_modules/.bin/prebuild-install +2 -2
- package/comate-engine/package.json +2 -2
- package/comate-engine/plugins/aiscan/dist/index.js +3 -2
- package/comate-engine/plugins/demo-feature/dist/index.js +1 -0
- package/comate-engine/plugins/devaux/dist/index.js +598 -121
- package/comate-engine/plugins/f2c/dist/index.js +1 -0
- package/comate-engine/plugins/jarvis/dist/index.js +25 -3
- package/comate-engine/server.js +18 -18
- package/dist/bundle/index.js +2 -2
- package/package.json +1 -1
- package/comate-engine/node_modules/sql.js/.devcontainer/Dockerfile +0 -76
- package/comate-engine/node_modules/sql.js/.devcontainer/devcontainer.json +0 -20
- package/comate-engine/node_modules/sql.js/.eslintrc.js +0 -68
- package/comate-engine/node_modules/sql.js/.jsdoc.config.json +0 -38
- package/comate-engine/node_modules/sql.js/.nojekyll +0 -0
- package/comate-engine/node_modules/sql.js/AUTHORS +0 -8
- package/comate-engine/node_modules/sql.js/CONTRIBUTING.md +0 -66
- package/comate-engine/node_modules/sql.js/LICENSE +0 -44
- package/comate-engine/node_modules/sql.js/README.md +0 -357
- package/comate-engine/node_modules/sql.js/dist/sql-asm-debug.js +0 -140661
- package/comate-engine/node_modules/sql.js/dist/sql-asm-memory-growth.js +0 -209
- package/comate-engine/node_modules/sql.js/dist/sql-asm.js +0 -209
- package/comate-engine/node_modules/sql.js/dist/sql-wasm-debug.js +0 -6989
- package/comate-engine/node_modules/sql.js/dist/sql-wasm-debug.wasm +0 -0
- package/comate-engine/node_modules/sql.js/dist/sql-wasm.js +0 -188
- package/comate-engine/node_modules/sql.js/dist/sql-wasm.wasm +0 -0
- package/comate-engine/node_modules/sql.js/dist/sqljs-all.zip +0 -0
- package/comate-engine/node_modules/sql.js/dist/sqljs-wasm.zip +0 -0
- package/comate-engine/node_modules/sql.js/dist/sqljs-worker-wasm.zip +0 -0
- package/comate-engine/node_modules/sql.js/dist/worker.sql-asm-debug.js +0 -140784
- package/comate-engine/node_modules/sql.js/dist/worker.sql-asm.js +0 -332
- package/comate-engine/node_modules/sql.js/dist/worker.sql-wasm-debug.js +0 -7112
- package/comate-engine/node_modules/sql.js/dist/worker.sql-wasm.js +0 -311
- package/comate-engine/node_modules/sql.js/documentation_index.md +0 -26
- package/comate-engine/node_modules/sql.js/logo.svg +0 -13
- package/comate-engine/node_modules/sql.js/package.json +0 -51
|
@@ -3,6 +3,7 @@ import {PreviewServerProxy} from '../dist/index.js';
|
|
|
3
3
|
const name = process.env.PREVIEW_PROCESS_NAME;
|
|
4
4
|
const server = new PreviewServerProxy({
|
|
5
5
|
port: Number(process.env.PREVIEW_PROCESS_PORT),
|
|
6
|
+
host: Number(process.env.PREVIEW_PROCESS_HOST),
|
|
6
7
|
target: process.env.PREVIEW_PROCESS_TARGET,
|
|
7
8
|
rootPath: process.env.PREVIEW_PROCESS_ROOT_PATH,
|
|
8
9
|
userLocale: process.env.PREVIEW_PROCESS_USER_LOCALE
|
|
@@ -313,7 +313,7 @@ parse:function(e,a){if("string"!=typeof e)throw new TypeError("argument str must
|
|
|
313
313
|
* Copyright(c) 2013 Roman Shtylman
|
|
314
314
|
* Copyright(c) 2014-2015 Douglas Christopher Wilson
|
|
315
315
|
* MIT Licensed
|
|
316
|
-
*/function jv(e,a,i="body-end"){if(!a)return e;const n=e.toLowerCase();try{if("string"!=typeof i){const o=n.indexOf(i);return-1!==o?e.substring(0,o)+a+e.substring(o):e+"\n"+a}switch(i){case"start":const i=/<!doctype[^>]*>/i.exec(e);if(i){const n=(i.index||0)+i[0].length;return e.substring(0,n)+"\n"+a+e.substring(n)}return a+"\n"+e;case"end":return e+"\n"+a;case"head-start":const o=n.indexOf("<head");if(-1!==o){const i=n.indexOf(">",o)+1;return e.substring(0,i)+a+e.substring(i)}return a+"\n"+e;case"head-end":const t=n.indexOf("</head");return-1!==t?e.substring(0,t)+a+e.substring(t):function(e,a){const i=e.toLowerCase().indexOf("<body");if(-1!==i)return e.substring(0,i)+a+e.substring(i);return Ev(e,a)}(e,a);case"body-start":const s=n.indexOf("<body");if(-1!==s){const i=n.indexOf(">",s)+1;return e.substring(0,i)+a+e.substring(i)}return Ev(e,a);default:const r=n.lastIndexOf("</body");return-1!==r?e.substring(0,r)+a+e.substring(r):Ev(e,a)}}catch(a){return console.error("Error inserting HTML fragment:",a),e}}function Ev(e,a){const i=e.toLowerCase().lastIndexOf("</html>");return-1!==i?e.substring(0,i)+a+e.substring(i):e+"\n"+a}const _v=(e,a,i)=>e?jv(((e,a="UTF-8")=>{if(/<meta\s+charset/i.test(e)||/<meta[^>]+content[^>]+charset/i.test(e))return e;const i=`<meta charset="${a}">`;return/<head[^>]*>/i.test(e)?e.replace(/<head[^>]*>/i,(e=>`${e}\n ${i}`)):`${i}\n${e}`})(e),`<link href="/${a}.css" rel="stylesheet" type="text/css"></link><script>window._comate_user_locale_="${i}"<\/script><script defer src="/${a}.js"><\/script>`,"head-start"):e,Cv=async(e,a=500)=>{const i=v.createServer();let n;return new Promise((o=>{const t=()=>{clearTimeout(n),i.removeAllListeners(),i.close()};n=setTimeout((()=>{t(),o(!1)}),a),i.once("error",(e=>{t(),o(!1)})),i.once("listening",(()=>{t(),o(!0)})),i.listen(e)}))},Av=(e=5e4,a=7e4)=>Math.floor(Math.random()*(a-e+1))+e,Sv=async
|
|
316
|
+
*/function jv(e,a,i="body-end"){if(!a)return e;const n=e.toLowerCase();try{if("string"!=typeof i){const o=n.indexOf(i);return-1!==o?e.substring(0,o)+a+e.substring(o):e+"\n"+a}switch(i){case"start":const i=/<!doctype[^>]*>/i.exec(e);if(i){const n=(i.index||0)+i[0].length;return e.substring(0,n)+"\n"+a+e.substring(n)}return a+"\n"+e;case"end":return e+"\n"+a;case"head-start":const o=n.indexOf("<head");if(-1!==o){const i=n.indexOf(">",o)+1;return e.substring(0,i)+a+e.substring(i)}return a+"\n"+e;case"head-end":const t=n.indexOf("</head");return-1!==t?e.substring(0,t)+a+e.substring(t):function(e,a){const i=e.toLowerCase().indexOf("<body");if(-1!==i)return e.substring(0,i)+a+e.substring(i);return Ev(e,a)}(e,a);case"body-start":const s=n.indexOf("<body");if(-1!==s){const i=n.indexOf(">",s)+1;return e.substring(0,i)+a+e.substring(i)}return Ev(e,a);default:const r=n.lastIndexOf("</body");return-1!==r?e.substring(0,r)+a+e.substring(r):Ev(e,a)}}catch(a){return console.error("Error inserting HTML fragment:",a),e}}function Ev(e,a){const i=e.toLowerCase().lastIndexOf("</html>");return-1!==i?e.substring(0,i)+a+e.substring(i):e+"\n"+a}const _v=(e,a,i)=>e?jv(((e,a="UTF-8")=>{if(/<meta\s+charset/i.test(e)||/<meta[^>]+content[^>]+charset/i.test(e))return e;const i=`<meta charset="${a}">`;return/<head[^>]*>/i.test(e)?e.replace(/<head[^>]*>/i,(e=>`${e}\n ${i}`)):`${i}\n${e}`})(e),`<link href="/${a}.css" rel="stylesheet" type="text/css"></link><script>window._comate_user_locale_="${i}"<\/script><script defer src="/${a}.js"><\/script>`,"head-start"):e,Cv=async(e,a=500)=>{const i=v.createServer();let n;return new Promise((o=>{const t=()=>{clearTimeout(n),i.removeAllListeners(),i.close()};n=setTimeout((()=>{t(),o(!1)}),a),i.once("error",(e=>{t(),o(!1)})),i.once("listening",(()=>{t(),o(!0)})),i.listen(e)}))},Av=(e=5e4,a=7e4)=>Math.floor(Math.random()*(a-e+1))+e,Sv=async(e,a,i)=>e||(async(e=5e4,a=65536)=>{if(e>=a)throw new Error(`Invalid port range: start (${e}) must be less than end (${a})`);const i=a-e+1,n=new Set;let o=0;for(;o<i;){const i=Av(e,a);if(!n.has(i)&&(n.add(i),o++,await Cv(i)))return i}throw new Error(`No available port found in the range ${e}-${a}`)})(a,i);
|
|
317
317
|
/*!
|
|
318
318
|
* fresh
|
|
319
319
|
* Copyright(c) 2012 TJ Holowaychuk
|
|
@@ -334,4 +334,4 @@ var Rv=/(?:^|,)\s*?no-cache\s*?(?:,|$)/,Ov=function(e,a){var i=e["if-modified-si
|
|
|
334
334
|
* Copyright(c) 2014-2022 Douglas Christopher Wilson
|
|
335
335
|
* MIT Licensed
|
|
336
336
|
*/
|
|
337
|
-
var Hv=Lt,Mv=ve("send"),Fv=al,Bv=sl,$v=cd,Dv=Ov,Uv=f,Gv=Pv,Wv=ee,Kv=ir,Vv=gd,Zv=l,Xv=jt,Qv=t,Yv=e,Jv=Zv.extname,ex=Zv.join,ax=Zv.normalize,ix=Zv.resolve,nx=Zv.sep,ox=/^ *bytes=/,tx=31536e6,sx=/(?:^|[\\/])\.\.(?:[\\/]|$)/,rx=function(e,a,i){return new cx(e,a,i)};function cx(e,a,i){Qv.call(this);var n=i||{};if(this.options=n,this.path=a,this.req=e,this._acceptRanges=void 0===n.acceptRanges||Boolean(n.acceptRanges),this._cacheControl=void 0===n.cacheControl||Boolean(n.cacheControl),this._etag=void 0===n.etag||Boolean(n.etag),this._dotfiles=void 0!==n.dotfiles?n.dotfiles:"ignore","ignore"!==this._dotfiles&&"allow"!==this._dotfiles&&"deny"!==this._dotfiles)throw new TypeError('dotfiles option must be "allow", "deny", or "ignore"');this._extensions=void 0!==n.extensions?dx(n.extensions,"extensions option"):[],this._immutable=void 0!==n.immutable&&Boolean(n.immutable),this._index=void 0!==n.index?dx(n.index,"index option"):["index.html"],this._lastModified=void 0===n.lastModified||Boolean(n.lastModified),this._maxage=n.maxAge||n.maxage,this._maxage="string"==typeof this._maxage?Wv(this._maxage):Number(this._maxage),this._maxage=isNaN(this._maxage)?0:Math.min(Math.max(0,this._maxage),tx),this._root=n.root?ix(n.root):null}function px(e,a,i){return e+" "+(i?i.start+"-"+i.end:"*")+"/"+a}function lx(e,a){return'<!DOCTYPE html>\n<html lang="en">\n<head>\n<meta charset="utf-8">\n<title>'+e+"</title>\n</head>\n<body>\n<pre>"+a+"</pre>\n</body>\n</html>\n"}function ux(e,a){return("function"!=typeof e.listenerCount?e.listeners(a).length:e.listenerCount(a))>0}function dx(e,a){for(var i=[].concat(e||[]),n=0;n<i.length;n++)if("string"!=typeof i[n])throw new TypeError(a+" must be array of strings or false");return i}function mx(e){var a=e&&Date.parse(e);return"number"==typeof a?a:NaN}Yv.inherits(cx,Qv),cx.prototype.error=function(e,a){if(ux(this,"error"))return this.emit("error",function(e,a){if(!a)return Hv(e);return a instanceof Error?Hv(e,a,{expose:!1}):Hv(e,a)}(e,a));var i=this.res,n=Xv.message[e]||String(e),o=lx("Error",Bv(n));!function(e){for(const a of e.getHeaderNames())e.removeHeader(a)}(i),a&&a.headers&&function(e,a){for(var i=Object.keys(a),n=0;n<i.length;n++){var o=i[n];e.setHeader(o,a[o])}}(i,a.headers),i.statusCode=e,i.setHeader("Content-Type","text/html; charset=UTF-8"),i.setHeader("Content-Length",Buffer.byteLength(o)),i.setHeader("Content-Security-Policy","default-src 'none'"),i.setHeader("X-Content-Type-Options","nosniff"),i.end(o)},cx.prototype.hasTrailingSlash=function(){return"/"===this.path[this.path.length-1]},cx.prototype.isConditionalGET=function(){return this.req.headers["if-match"]||this.req.headers["if-unmodified-since"]||this.req.headers["if-none-match"]||this.req.headers["if-modified-since"]},cx.prototype.isPreconditionFailure=function(){var e=this.req,a=this.res,i=e.headers["if-match"];if(i){var n=a.getHeader("ETag");return!n||"*"!==i&&function(e){for(var a=0,i=[],n=0,o=0,t=e.length;o<t;o++)switch(e.charCodeAt(o)){case 32:n===a&&(n=a=o+1);break;case 44:n!==a&&i.push(e.substring(n,a)),n=a=o+1;break;default:a=o+1}n!==a&&i.push(e.substring(n,a));return i}(i).every((function(e){return e!==n&&e!=="W/"+n&&"W/"+e!==n}))}var o=mx(e.headers["if-unmodified-since"]);if(!isNaN(o)){var t=mx(a.getHeader("Last-Modified"));return isNaN(t)||t>o}return!1},cx.prototype.removeContentHeaderFields=function(){var e=this.res;e.removeHeader("Content-Encoding"),e.removeHeader("Content-Language"),e.removeHeader("Content-Length"),e.removeHeader("Content-Range"),e.removeHeader("Content-Type")},cx.prototype.notModified=function(){var e=this.res;Mv("not modified"),this.removeContentHeaderFields(),e.statusCode=304,e.end()},cx.prototype.headersAlreadySent=function(){var e=new Error("Can't set headers after they are sent.");Mv("headers already sent"),this.error(500,e)},cx.prototype.isCachable=function(){var e=this.res.statusCode;return e>=200&&e<300||304===e},cx.prototype.onStatError=function(e){switch(e.code){case"ENAMETOOLONG":case"ENOENT":case"ENOTDIR":this.error(404,e);break;default:this.error(500,e)}},cx.prototype.isFresh=function(){return Dv(this.req.headers,{etag:this.res.getHeader("ETag"),"last-modified":this.res.getHeader("Last-Modified")})},cx.prototype.isRangeFresh=function(){var e=this.req.headers["if-range"];if(!e)return!0;if(-1!==e.indexOf('"')){var a=this.res.getHeader("ETag");return Boolean(a&&-1!==e.indexOf(a))}return mx(this.res.getHeader("Last-Modified"))<=mx(e)},cx.prototype.redirect=function(e){var a=this.res;if(ux(this,"directory"))this.emit("directory",a,e);else if(this.hasTrailingSlash())this.error(403);else{var i=Fv(function(e){for(var a=0;a<e.length&&"/"===e[a];a++);return a>1?"/"+e.substr(a):e}(this.path+"/")),n=lx("Redirecting","Redirecting to "+Bv(i));a.statusCode=301,a.setHeader("Content-Type","text/html; charset=UTF-8"),a.setHeader("Content-Length",Buffer.byteLength(n)),a.setHeader("Content-Security-Policy","default-src 'none'"),a.setHeader("X-Content-Type-Options","nosniff"),a.setHeader("Location",i),a.end(n)}},cx.prototype.pipe=function(e){var a=this._root;this.res=e;var i,n=function(e){try{return decodeURIComponent(e)}catch(e){return-1}}(this.path);if(-1===n)return this.error(400),e;if(~n.indexOf("\0"))return this.error(400),e;if(null!==a){if(n&&(n=ax("."+nx+n)),sx.test(n))return Mv('malicious path "%s"',n),this.error(403),e;i=n.split(nx),n=ax(ex(a,n))}else{if(sx.test(n))return Mv('malicious path "%s"',n),this.error(403),e;i=ax(n).split(nx),n=ix(n)}if(function(e){for(var a=0;a<e.length;a++){var i=e[a];if(i.length>1&&"."===i[0])return!0}return!1}(i))switch(Mv('%s dotfile "%s"',this._dotfiles,n),this._dotfiles){case"allow":break;case"deny":return this.error(403),e;default:return this.error(404),e}return this._index.length&&this.hasTrailingSlash()?(this.sendIndex(n),e):(this.sendFile(n),e)},cx.prototype.send=function(e,a){var i=a.size,n=this.options,o={},t=this.res,s=this.req,r=s.headers.range,c=n.start||0;if(t.headersSent)this.headersAlreadySent();else{if(Mv('pipe "%s"',e),this.setHeader(e,a),this.type(e),this.isConditionalGET()){if(this.isPreconditionFailure())return void this.error(412);if(this.isCachable()&&this.isFresh())return void this.notModified()}if(i=Math.max(0,i-c),void 0!==n.end){var p=n.end-c+1;i>p&&(i=p)}if(this._acceptRanges&&ox.test(r)){if(r=Vv(i,r,{combine:!0}),this.isRangeFresh()||(Mv("range stale"),r=-2),-1===r)return Mv("range unsatisfiable"),t.setHeader("Content-Range",px("bytes",i)),this.error(416,{headers:{"Content-Range":t.getHeader("Content-Range")}});-2!==r&&1===r.length&&(Mv("range %j",r),t.statusCode=206,t.setHeader("Content-Range",px("bytes",i,r[0])),c+=r[0].start,i=r[0].end-r[0].start+1)}for(var l in n)o[l]=n[l];o.start=c,o.end=Math.max(c,c+i-1),t.setHeader("Content-Length",i),"HEAD"!==s.method?this.stream(e,o):t.end()}},cx.prototype.sendFile=function(e){var a=0,i=this;function n(o){if(i._extensions.length<=a)return o?i.onStatError(o):i.error(404);var t=e+"."+i._extensions[a++];Mv('stat "%s"',t),Uv.stat(t,(function(e,a){return e?n(e):a.isDirectory()?n():(i.emit("file",t,a),void i.send(t,a))}))}Mv('stat "%s"',e),Uv.stat(e,(function(a,o){var t=e[e.length-1]===nx;return!a||"ENOENT"!==a.code||Jv(e)||t?a?i.onStatError(a):o.isDirectory()?i.redirect(e):t?i.error(404):(i.emit("file",e,o),void i.send(e,o)):n(a)}))},cx.prototype.sendIndex=function(e){var a=-1,i=this;!function n(o){if(++a>=i._index.length)return o?i.onStatError(o):i.error(404);var t=ex(e,i._index[a]);Mv('stat "%s"',t),Uv.stat(t,(function(e,a){return e?n(e):a.isDirectory()?n():(i.emit("file",t,a),void i.send(t,a))}))}()},cx.prototype.stream=function(e,a){var i=this,n=this.res,o=Uv.createReadStream(e,a);function t(){o.destroy()}this.emit("stream",o),o.pipe(n),Kv(n,t),o.on("error",(function(e){t(),i.onStatError(e)})),o.on("end",(function(){i.emit("end")}))},cx.prototype.type=function(e){var a=this.res;if(!a.getHeader("Content-Type")){var i=Jv(e),n=Gv.contentType(i)||"application/octet-stream";Mv("content-type %s",n),a.setHeader("Content-Type",n)}},cx.prototype.setHeader=function(e,a){var i=this.res;if(this.emit("headers",i,e,a),this._acceptRanges&&!i.getHeader("Accept-Ranges")&&(Mv("accept ranges"),i.setHeader("Accept-Ranges","bytes")),this._cacheControl&&!i.getHeader("Cache-Control")){var n="public, max-age="+Math.floor(this._maxage/1e3);this._immutable&&(n+=", immutable"),Mv("cache-control %s",n),i.setHeader("Cache-Control",n)}if(this._lastModified&&!i.getHeader("Last-Modified")){var o=a.mtime.toUTCString();Mv("modified %s",o),i.setHeader("Last-Modified",o)}if(this._etag&&!i.getHeader("ETag")){var t=$v(a);Mv("etag %s",t),i.setHeader("ETag",t)}};var fx=R(rx);const vx="comate-preview-injector",xx="127.0.0.1",hx="/comatePreviewService";var bx,gx,yx;!function(e){e.SEND_ELEMENT="SEND_ELEMENT",e.SEND_CONSOLE_ERROR="SEND_CONSOLE_ERROR",e.SEND_TEXT_SELECTION="SEND_TEXT_SELECTION",e.CHANGE_USER_LOCALE="CHANGE_USER_LOCALE"}(bx||(bx={})),function(e){e.INIT="comate-preview-injector_init",e.ERROR="comate-preview-injector_error"}(gx||(gx={})),function(e){e.ZH="zh-cn",e.EN="en"}(yx||(yx={}));const wx=(e,a)=>{process?.send&&process.send({type:e,data:a})},kx=e=>(e=>/^file:\/\//.test(e))(e)?_(e):e;function jx(e,a){process.send&&wx(bx.SEND_ELEMENT,e.body);s.from(["ok"]).pipe(a)}function Ex(e,a){process.send&&wx(bx.SEND_CONSOLE_ERROR,e.body);s.from(["ok"]).pipe(a)}function _x(e,a){process.send&&wx(bx.SEND_TEXT_SELECTION,e.body);s.from(["ok"]).pipe(a)}class Cx{options;app=null;server=null;userLocale=yx.ZH;onMessageBind;constructor(e){if(this.options=e,!this.options.target)throw wx(gx.ERROR),new Error("target is required");this.changeUserLocale(e.userLocale||yx.ZH),this.onMessageBind=this.onMessage.bind(this),this.registerEvent()}async init(){return this.options.port=await Sv(this.options.port||0),this.options.host||(this.options.host=xx),this.setupApp(),this.setupStatic(),this.setupRouter(),this.setupProxy(),this.setupServer()}setupApp(){this.app=kv(),this.app.use(kv.json())}setupProxy(){if(!this.app)return;if(!(e=>/^http(s?):\/\//.test(e))(this.options.target))return void this.app.use(this.localFileProxyMiddleware());const e=this,a=O.createProxyMiddleware(Object.assign({target:this.options.target,changeOrigin:!0,selfHandleResponse:!0,router:{[hx]:`http://${this.options.host}:${this.options.port}`},on:{error:async(e,a,i)=>{if(!a&&!i)throw e;const n=(e=>{try{const a=new C(e);if(a.port)return parseInt(a.port);const i=a.protocol;return"http:"===i?80:"https:"===i?443:"ftp:"===i?21:null}catch(e){return null}})(this.options.target);if("ECONNREFUSED"===e.code&&n&&await Cv(n)){i.setHeader("Content-Type","text/plain; charset=utf-8");const e=`${this.options?.target||""} 服务没有启动, 请尝试输入:使用预览打开这个项目`,a=Buffer.from(e,"utf8");w.from([a]).pipe(i)}},proxyReq:O.fixRequestBody,proxyRes:O.responseInterceptor((async function(a,i,n,o){if((i.headers["content-type"]||"").includes("text/html")){let i=a.toString("utf-8");const n=_v(i,vx,e.userLocale);return o.setHeader("Content-Length",Buffer.byteLength(n)),n}return a}))}},this.options.proxyConfig));this.app.use(a)}getStiticPath(){if(this.options.rootPath)return j(this.options.rootPath,"static");const e=i(import.meta.url),a=u(e);return j(a,"../../..","static")}setupStatic(){this.app&&this.app.use(kv.static(this.getStiticPath(),{index:!1,extensions:["js","css"]}))}setupRouter(){this.app&&(e=>{const a=wv.Router();a.post("/sendElement",jx),a.post("/sendConsoleError",Ex),a.post("/sendTextSelection",_x),e.use(hx,a)})(this.app)}setupServer(){if(this.app)return new Promise((async(e,a)=>{if(this.app)try{this.app.on("error",a),this.server=this.app.listen(this.options.port,this.options.host,(()=>{wx(gx.INIT),e(this.options.port)}))}catch(e){a(e),wx(gx.ERROR)}else a(new Error("app is not initialized"))}))}localFileProxyMiddleware(){return(e,a,i)=>{const n=e.url.split("?")?.[0];if(["","/"].includes(n)){const e=kx(this.options.target),i=j(e||"");if(!y.existsSync(i)){return void w.from(["404"]).pipe(a)}a.setHeader("Content-Type","text/html","utf-8");const n=y.readFileSync(i).toString("utf-8"),o=_v(n,vx,this.userLocale),t=Buffer.from(o,"utf8");w.from([t]).pipe(a)}else{const n=kx(this.options.target),o=j(n),t=u(o);if(y.existsSync(t)&&e){const i=vl(e)?.pathname;if(i)return void fx(e,i,{root:t}).pipe(a)}i()}}}changeUserLocale(e){this.userLocale=e,this.app&&this.app.set("userLocale",this.userLocale)}onMessage(e){if(e.type===bx.CHANGE_USER_LOCALE)this.changeUserLocale(e.data)}registerEvent(){process.on("message",this.onMessageBind)}dispose(){process.off("message",this.onMessageBind),this.server?.close(),this.server=null,this.app=null}}class Ax{messageEvent={};on(e,a){this.messageEvent[e]||(this.messageEvent[e]=[]),this.messageEvent[e].push(a)}emit(e,...a){if(this.messageEvent[e])for(let i of this.messageEvent[e])i(...a)}off(e,a){if(a){if(this.messageEvent[e]&&this.messageEvent[e].length>0){const i=this.messageEvent[e].indexOf(a);i>-1&&this.messageEvent[e].splice(i,1)}}else this.messageEvent[e]&&(this.messageEvent[e]=[],delete this.messageEvent[e])}clear(){for(let e in this.messageEvent)this.messageEvent[e]=[],delete this.messageEvent[e]}}class Sx{options;servers=new Map;config;messageEvent=new Ax;constructor(e){this.options=e,this.config={userLocale:this.options?.userLocale||"zh-cn"},this.setConfig(this.config.userLocale)}init(){this.registerSignal()}async addServer(e,a){if(this.servers.has(e))throw new Error(`Server ${e} already exists`);a.port=await Sv(a.port),this.servers.set(e,{child:null,options:a,name:e,port:a.port,host:xx,localhostAddress:`http://${xx}:${a.port}`});const i=await this.createChildProcess(e,{userLocale:this.config.userLocale,...a}),n=this.servers.get(e);return this.registerServerEvents(i,n),n}removeServer(e){const a=this.stopServer(e);return a&&this.servers.delete(e),a}stopServer(e){const a=this.servers.get(e);return a?(a.child?.kill(),a):null}startServer(e,a={}){const i=this.removeServer(e);i&&this.addServer(e,Object.assign(i.options,a))}getServer(e){return this.servers.get(e)}getServers(){return this.servers}getNodePath(){return this.options?.nodePath||process.env.NODE_PATH||"node"}getNodeBinPath(){if(this.options?.rootPath)return k.resolve(this.options.rootPath,"bin/preview.js");const e=_(import.meta.url),a=E(e);return k.resolve(a,"../../","bin/preview.js")}async createChildProcess(e,a){return new Promise(((i,n)=>{const o=this.getNodeBinPath();let t=!1;const s=A(o,[],{env:{...process.env,PREVIEW_PROCESS_PORT:String(a.port),PREVIEW_PROCESS_TARGET:a.target,PREVIEW_PROCESS_NAME:e,PREVIEW_PROCESS_ROOT_PATH:this.options?.rootPath,PREVIEW_PROCESS_USER_LOCALE:a.userLocale}}),r=this.servers.get(e);r&&(r.child=s),s.on("message",(e=>{e.type===gx.INIT?(i(s),this.messageEvent.emit("init"),t=!0):e.type===gx.ERROR&&(n(s),this.messageEvent.emit("runError"),t=!0)})),setTimeout((()=>{t||n(s)}),5e3)}))}getConfig(){return this.config}setConfig(e){this.config.userLocale=e,this.servers.size>0&&this.servers.forEach((a=>{a.child&&a.child.send({type:bx.CHANGE_USER_LOCALE,data:e})}))}registerCodeSinppetMessage(e){this.registerChildMessageEvent((a=>{a.type===bx.SEND_ELEMENT&&e(a.data)}))}unregisterCodeSinppetMessage(e){this.unregisterChildMessageEvent(e)}registerTextSinppetMessage(e){this.registerChildMessageEvent((a=>{a.type===bx.SEND_TEXT_SELECTION&&e(a.data)}))}unregisterTextSinppetMessage(e){this.unregisterChildMessageEvent(e)}registerConsoleErrorMessage(e){this.registerChildMessageEvent((a=>{a.type===bx.SEND_CONSOLE_ERROR&&e(a.data)}))}unregisterConsoleErrorMessage(e){this.unregisterChildMessageEvent(e)}registerChildExitEvent(e){this.messageEvent.on("exit",e)}registerChildMessageEvent(e){this.messageEvent.on("message",e)}registerChildErrorEvent(e){this.messageEvent.on("error",e)}unregisterChildExitEvent(e){this.messageEvent.off("exit",e)}registerChildInitEvent(e){this.messageEvent.on("init",e)}unregisterChildInitEvent(e){this.messageEvent.off("init",e)}registerChildRunErrorEvent(e){this.messageEvent.on("runError",e)}unregisterChildRunErrorEvent(e){this.messageEvent.off("runError",e)}unregisterChildMessageEvent(e){this.messageEvent.off("message",e)}unregisterChildErrorEvent(e){this.messageEvent.off("error",e)}registerServerEvents(e,a){e.on("exit",(e=>{this.messageEvent.emit("exit",e,a)})),e.on("message",(e=>{[gx.INIT,gx.ERROR].includes(e.type)||this.messageEvent.emit("message",e,a)})),e.addListener("error",(e=>{this.messageEvent.emit("error",e,a)}))}registerSignal(){["SIGINT","SIGTERM","exit"].forEach((e=>{process.on(e,(()=>{this.dispose(),"exit"===e&&process.exit(0)}))}))}dispose(){this.servers.forEach((e=>this.removeServer(e.name))),this.messageEvent.clear(),this.servers.clear()}}export{bx as MESSAGE_HANDLER_TYPE,gx as MESSAGE_RUN_TYPE,Cx as PreviewServerProxy,Sx as ProxyServerManager,Cv as isPortAvailable};
|
|
337
|
+
var Hv=Lt,Mv=ve("send"),Fv=al,Bv=sl,$v=cd,Dv=Ov,Uv=f,Gv=Pv,Wv=ee,Kv=ir,Vv=gd,Zv=l,Xv=jt,Qv=t,Yv=e,Jv=Zv.extname,ex=Zv.join,ax=Zv.normalize,ix=Zv.resolve,nx=Zv.sep,ox=/^ *bytes=/,tx=31536e6,sx=/(?:^|[\\/])\.\.(?:[\\/]|$)/,rx=function(e,a,i){return new cx(e,a,i)};function cx(e,a,i){Qv.call(this);var n=i||{};if(this.options=n,this.path=a,this.req=e,this._acceptRanges=void 0===n.acceptRanges||Boolean(n.acceptRanges),this._cacheControl=void 0===n.cacheControl||Boolean(n.cacheControl),this._etag=void 0===n.etag||Boolean(n.etag),this._dotfiles=void 0!==n.dotfiles?n.dotfiles:"ignore","ignore"!==this._dotfiles&&"allow"!==this._dotfiles&&"deny"!==this._dotfiles)throw new TypeError('dotfiles option must be "allow", "deny", or "ignore"');this._extensions=void 0!==n.extensions?dx(n.extensions,"extensions option"):[],this._immutable=void 0!==n.immutable&&Boolean(n.immutable),this._index=void 0!==n.index?dx(n.index,"index option"):["index.html"],this._lastModified=void 0===n.lastModified||Boolean(n.lastModified),this._maxage=n.maxAge||n.maxage,this._maxage="string"==typeof this._maxage?Wv(this._maxage):Number(this._maxage),this._maxage=isNaN(this._maxage)?0:Math.min(Math.max(0,this._maxage),tx),this._root=n.root?ix(n.root):null}function px(e,a,i){return e+" "+(i?i.start+"-"+i.end:"*")+"/"+a}function lx(e,a){return'<!DOCTYPE html>\n<html lang="en">\n<head>\n<meta charset="utf-8">\n<title>'+e+"</title>\n</head>\n<body>\n<pre>"+a+"</pre>\n</body>\n</html>\n"}function ux(e,a){return("function"!=typeof e.listenerCount?e.listeners(a).length:e.listenerCount(a))>0}function dx(e,a){for(var i=[].concat(e||[]),n=0;n<i.length;n++)if("string"!=typeof i[n])throw new TypeError(a+" must be array of strings or false");return i}function mx(e){var a=e&&Date.parse(e);return"number"==typeof a?a:NaN}Yv.inherits(cx,Qv),cx.prototype.error=function(e,a){if(ux(this,"error"))return this.emit("error",function(e,a){if(!a)return Hv(e);return a instanceof Error?Hv(e,a,{expose:!1}):Hv(e,a)}(e,a));var i=this.res,n=Xv.message[e]||String(e),o=lx("Error",Bv(n));!function(e){for(const a of e.getHeaderNames())e.removeHeader(a)}(i),a&&a.headers&&function(e,a){for(var i=Object.keys(a),n=0;n<i.length;n++){var o=i[n];e.setHeader(o,a[o])}}(i,a.headers),i.statusCode=e,i.setHeader("Content-Type","text/html; charset=UTF-8"),i.setHeader("Content-Length",Buffer.byteLength(o)),i.setHeader("Content-Security-Policy","default-src 'none'"),i.setHeader("X-Content-Type-Options","nosniff"),i.end(o)},cx.prototype.hasTrailingSlash=function(){return"/"===this.path[this.path.length-1]},cx.prototype.isConditionalGET=function(){return this.req.headers["if-match"]||this.req.headers["if-unmodified-since"]||this.req.headers["if-none-match"]||this.req.headers["if-modified-since"]},cx.prototype.isPreconditionFailure=function(){var e=this.req,a=this.res,i=e.headers["if-match"];if(i){var n=a.getHeader("ETag");return!n||"*"!==i&&function(e){for(var a=0,i=[],n=0,o=0,t=e.length;o<t;o++)switch(e.charCodeAt(o)){case 32:n===a&&(n=a=o+1);break;case 44:n!==a&&i.push(e.substring(n,a)),n=a=o+1;break;default:a=o+1}n!==a&&i.push(e.substring(n,a));return i}(i).every((function(e){return e!==n&&e!=="W/"+n&&"W/"+e!==n}))}var o=mx(e.headers["if-unmodified-since"]);if(!isNaN(o)){var t=mx(a.getHeader("Last-Modified"));return isNaN(t)||t>o}return!1},cx.prototype.removeContentHeaderFields=function(){var e=this.res;e.removeHeader("Content-Encoding"),e.removeHeader("Content-Language"),e.removeHeader("Content-Length"),e.removeHeader("Content-Range"),e.removeHeader("Content-Type")},cx.prototype.notModified=function(){var e=this.res;Mv("not modified"),this.removeContentHeaderFields(),e.statusCode=304,e.end()},cx.prototype.headersAlreadySent=function(){var e=new Error("Can't set headers after they are sent.");Mv("headers already sent"),this.error(500,e)},cx.prototype.isCachable=function(){var e=this.res.statusCode;return e>=200&&e<300||304===e},cx.prototype.onStatError=function(e){switch(e.code){case"ENAMETOOLONG":case"ENOENT":case"ENOTDIR":this.error(404,e);break;default:this.error(500,e)}},cx.prototype.isFresh=function(){return Dv(this.req.headers,{etag:this.res.getHeader("ETag"),"last-modified":this.res.getHeader("Last-Modified")})},cx.prototype.isRangeFresh=function(){var e=this.req.headers["if-range"];if(!e)return!0;if(-1!==e.indexOf('"')){var a=this.res.getHeader("ETag");return Boolean(a&&-1!==e.indexOf(a))}return mx(this.res.getHeader("Last-Modified"))<=mx(e)},cx.prototype.redirect=function(e){var a=this.res;if(ux(this,"directory"))this.emit("directory",a,e);else if(this.hasTrailingSlash())this.error(403);else{var i=Fv(function(e){for(var a=0;a<e.length&&"/"===e[a];a++);return a>1?"/"+e.substr(a):e}(this.path+"/")),n=lx("Redirecting","Redirecting to "+Bv(i));a.statusCode=301,a.setHeader("Content-Type","text/html; charset=UTF-8"),a.setHeader("Content-Length",Buffer.byteLength(n)),a.setHeader("Content-Security-Policy","default-src 'none'"),a.setHeader("X-Content-Type-Options","nosniff"),a.setHeader("Location",i),a.end(n)}},cx.prototype.pipe=function(e){var a=this._root;this.res=e;var i,n=function(e){try{return decodeURIComponent(e)}catch(e){return-1}}(this.path);if(-1===n)return this.error(400),e;if(~n.indexOf("\0"))return this.error(400),e;if(null!==a){if(n&&(n=ax("."+nx+n)),sx.test(n))return Mv('malicious path "%s"',n),this.error(403),e;i=n.split(nx),n=ax(ex(a,n))}else{if(sx.test(n))return Mv('malicious path "%s"',n),this.error(403),e;i=ax(n).split(nx),n=ix(n)}if(function(e){for(var a=0;a<e.length;a++){var i=e[a];if(i.length>1&&"."===i[0])return!0}return!1}(i))switch(Mv('%s dotfile "%s"',this._dotfiles,n),this._dotfiles){case"allow":break;case"deny":return this.error(403),e;default:return this.error(404),e}return this._index.length&&this.hasTrailingSlash()?(this.sendIndex(n),e):(this.sendFile(n),e)},cx.prototype.send=function(e,a){var i=a.size,n=this.options,o={},t=this.res,s=this.req,r=s.headers.range,c=n.start||0;if(t.headersSent)this.headersAlreadySent();else{if(Mv('pipe "%s"',e),this.setHeader(e,a),this.type(e),this.isConditionalGET()){if(this.isPreconditionFailure())return void this.error(412);if(this.isCachable()&&this.isFresh())return void this.notModified()}if(i=Math.max(0,i-c),void 0!==n.end){var p=n.end-c+1;i>p&&(i=p)}if(this._acceptRanges&&ox.test(r)){if(r=Vv(i,r,{combine:!0}),this.isRangeFresh()||(Mv("range stale"),r=-2),-1===r)return Mv("range unsatisfiable"),t.setHeader("Content-Range",px("bytes",i)),this.error(416,{headers:{"Content-Range":t.getHeader("Content-Range")}});-2!==r&&1===r.length&&(Mv("range %j",r),t.statusCode=206,t.setHeader("Content-Range",px("bytes",i,r[0])),c+=r[0].start,i=r[0].end-r[0].start+1)}for(var l in n)o[l]=n[l];o.start=c,o.end=Math.max(c,c+i-1),t.setHeader("Content-Length",i),"HEAD"!==s.method?this.stream(e,o):t.end()}},cx.prototype.sendFile=function(e){var a=0,i=this;function n(o){if(i._extensions.length<=a)return o?i.onStatError(o):i.error(404);var t=e+"."+i._extensions[a++];Mv('stat "%s"',t),Uv.stat(t,(function(e,a){return e?n(e):a.isDirectory()?n():(i.emit("file",t,a),void i.send(t,a))}))}Mv('stat "%s"',e),Uv.stat(e,(function(a,o){var t=e[e.length-1]===nx;return!a||"ENOENT"!==a.code||Jv(e)||t?a?i.onStatError(a):o.isDirectory()?i.redirect(e):t?i.error(404):(i.emit("file",e,o),void i.send(e,o)):n(a)}))},cx.prototype.sendIndex=function(e){var a=-1,i=this;!function n(o){if(++a>=i._index.length)return o?i.onStatError(o):i.error(404);var t=ex(e,i._index[a]);Mv('stat "%s"',t),Uv.stat(t,(function(e,a){return e?n(e):a.isDirectory()?n():(i.emit("file",t,a),void i.send(t,a))}))}()},cx.prototype.stream=function(e,a){var i=this,n=this.res,o=Uv.createReadStream(e,a);function t(){o.destroy()}this.emit("stream",o),o.pipe(n),Kv(n,t),o.on("error",(function(e){t(),i.onStatError(e)})),o.on("end",(function(){i.emit("end")}))},cx.prototype.type=function(e){var a=this.res;if(!a.getHeader("Content-Type")){var i=Jv(e),n=Gv.contentType(i)||"application/octet-stream";Mv("content-type %s",n),a.setHeader("Content-Type",n)}},cx.prototype.setHeader=function(e,a){var i=this.res;if(this.emit("headers",i,e,a),this._acceptRanges&&!i.getHeader("Accept-Ranges")&&(Mv("accept ranges"),i.setHeader("Accept-Ranges","bytes")),this._cacheControl&&!i.getHeader("Cache-Control")){var n="public, max-age="+Math.floor(this._maxage/1e3);this._immutable&&(n+=", immutable"),Mv("cache-control %s",n),i.setHeader("Cache-Control",n)}if(this._lastModified&&!i.getHeader("Last-Modified")){var o=a.mtime.toUTCString();Mv("modified %s",o),i.setHeader("Last-Modified",o)}if(this._etag&&!i.getHeader("ETag")){var t=$v(a);Mv("etag %s",t),i.setHeader("ETag",t)}};var fx=R(rx);const vx="comate-preview-injector",xx="127.0.0.1",hx="/comatePreviewService";var bx,gx,yx;!function(e){e.SEND_ELEMENT="SEND_ELEMENT",e.SEND_CONSOLE_ERROR="SEND_CONSOLE_ERROR",e.SEND_TEXT_SELECTION="SEND_TEXT_SELECTION",e.CHANGE_USER_LOCALE="CHANGE_USER_LOCALE"}(bx||(bx={})),function(e){e.INIT="comate-preview-injector_init",e.ERROR="comate-preview-injector_error"}(gx||(gx={})),function(e){e.ZH="zh-cn",e.EN="en"}(yx||(yx={}));const wx=(e,a)=>{process?.send&&process.send({type:e,data:a})},kx=e=>(e=>/^file:\/\//.test(e))(e)?_(e):e;function jx(e,a){process.send&&wx(bx.SEND_ELEMENT,e.body);s.from(["ok"]).pipe(a)}function Ex(e,a){process.send&&wx(bx.SEND_CONSOLE_ERROR,e.body);s.from(["ok"]).pipe(a)}function _x(e,a){process.send&&wx(bx.SEND_TEXT_SELECTION,e.body);s.from(["ok"]).pipe(a)}class Cx{options;app=null;server=null;userLocale=yx.ZH;onMessageBind;constructor(e){if(this.options=e,!this.options.target)throw wx(gx.ERROR),new Error("target is required");this.changeUserLocale(e.userLocale||yx.ZH),this.onMessageBind=this.onMessage.bind(this),this.registerEvent()}async init(){return this.options.port=await Sv(this.options.port||0),this.options.host||(this.options.host=xx),this.setupApp(),this.setupStatic(),this.setupRouter(),this.setupProxy(),this.setupServer()}setupApp(){this.app=kv(),this.app.use(kv.json())}setupProxy(){if(!this.app)return;if(!(e=>/^http(s?):\/\//.test(e))(this.options.target))return void this.app.use(this.localFileProxyMiddleware());const e=this,a=O.createProxyMiddleware(Object.assign({target:this.options.target,changeOrigin:!0,selfHandleResponse:!0,router:{[hx]:`http://${this.options.host}:${this.options.port}`},on:{error:async(e,a,i)=>{if(!a&&!i)throw e;const n=(e=>{try{const a=new C(e);if(a.port)return parseInt(a.port);const i=a.protocol;return"http:"===i?80:"https:"===i?443:"ftp:"===i?21:null}catch(e){return null}})(this.options.target);if("ECONNREFUSED"===e.code&&n&&await Cv(n)){i.setHeader("Content-Type","text/plain; charset=utf-8");const e=`${this.options?.target||""} 服务没有启动, 请尝试输入:使用预览打开这个项目`,a=Buffer.from(e,"utf8");w.from([a]).pipe(i)}},proxyReq:O.fixRequestBody,proxyRes:O.responseInterceptor((async function(a,i,n,o){if((i.headers["content-type"]||"").includes("text/html")){let i=a.toString("utf-8");const n=_v(i,vx,e.userLocale);return o.setHeader("Content-Length",Buffer.byteLength(n)),n}return a}))}},this.options.proxyConfig));this.app.use(a)}getStiticPath(){if(this.options.rootPath)return j(this.options.rootPath,"static");const e=i(import.meta.url),a=u(e);return j(a,"../../..","static")}setupStatic(){this.app&&this.app.use(kv.static(this.getStiticPath(),{index:!1,extensions:["js","css"]}))}setupRouter(){this.app&&(e=>{const a=wv.Router();a.post("/sendElement",jx),a.post("/sendConsoleError",Ex),a.post("/sendTextSelection",_x),e.use(hx,a)})(this.app)}setupServer(){if(this.app)return new Promise((async(e,a)=>{if(this.app)try{this.app.on("error",a),this.server=this.app.listen(this.options.port,this.options.host,(()=>{wx(gx.INIT),e(this.options.port)}))}catch(e){a(e),wx(gx.ERROR)}else a(new Error("app is not initialized"))}))}localFileProxyMiddleware(){return(e,a,i)=>{const n=e.url.split("?")?.[0];if(["","/"].includes(n)){const e=kx(this.options.target),i=j(e||"");if(!y.existsSync(i)){return void w.from(["404"]).pipe(a)}a.setHeader("Content-Type","text/html","utf-8");const n=y.readFileSync(i).toString("utf-8"),o=_v(n,vx,this.userLocale),t=Buffer.from(o,"utf8");w.from([t]).pipe(a)}else{const n=kx(this.options.target),o=j(n),t=u(o);if(y.existsSync(t)&&e){const i=vl(e)?.pathname;if(i)return void fx(e,i,{root:t}).pipe(a)}i()}}}changeUserLocale(e){this.userLocale=e,this.app&&this.app.set("userLocale",this.userLocale)}onMessage(e){if(e.type===bx.CHANGE_USER_LOCALE)this.changeUserLocale(e.data)}registerEvent(){process.on("message",this.onMessageBind)}dispose(){process.off("message",this.onMessageBind),this.server?.close(),this.server=null,this.app=null}}class Ax{messageEvent={};on(e,a){this.messageEvent[e]||(this.messageEvent[e]=[]),this.messageEvent[e].push(a)}emit(e,...a){if(this.messageEvent[e])for(let i of this.messageEvent[e])i(...a)}off(e,a){if(a){if(this.messageEvent[e]&&this.messageEvent[e].length>0){const i=this.messageEvent[e].indexOf(a);i>-1&&this.messageEvent[e].splice(i,1)}}else this.messageEvent[e]&&(this.messageEvent[e]=[],delete this.messageEvent[e])}clear(){for(let e in this.messageEvent)this.messageEvent[e]=[],delete this.messageEvent[e]}}class Sx{options;servers=new Map;config;messageEvent=new Ax;constructor(e){this.options=e,this.config={userLocale:this.options?.userLocale||"zh-cn"},this.setConfig(this.config.userLocale)}init(){this.registerSignal()}async addServer(e,a){if(this.servers.has(e))throw new Error(`Server ${e} already exists`);a.port=await Sv(a.port,a.startPort||this.options?.startPort,a.endPort||this?.options?.endPort);const i=a.host||this.options?.host||xx;this.servers.set(e,{child:null,options:a,name:e,port:a.port,host:i,localhostAddress:`http://${i}:${a.port}`});const n=await this.createChildProcess(e,{userLocale:this.config.userLocale,...a}),o=this.servers.get(e);return this.registerServerEvents(n,o),o}removeServer(e){const a=this.stopServer(e);return a&&this.servers.delete(e),a}stopServer(e){const a=this.servers.get(e);return a?(a.child?.kill(),a):null}startServer(e,a={}){const i=this.removeServer(e);i&&this.addServer(e,Object.assign(i.options,a))}getServer(e){return this.servers.get(e)}getServers(){return this.servers}getNodePath(){return this.options?.nodePath||process.env.NODE_PATH||"node"}getNodeBinPath(){if(this.options?.rootPath)return k.resolve(this.options.rootPath,"bin/preview.js");const e=_(import.meta.url),a=E(e);return k.resolve(a,"../../","bin/preview.js")}async createChildProcess(e,a){return new Promise(((i,n)=>{const o=this.getNodeBinPath();let t=!1;const s=A(o,[],{env:{...process.env,PREVIEW_PROCESS_PORT:String(a.port),PREVIEW_PROCESS_HOST:String(a.host),PREVIEW_PROCESS_TARGET:a.target,PREVIEW_PROCESS_NAME:e,PREVIEW_PROCESS_ROOT_PATH:this.options?.rootPath,PREVIEW_PROCESS_USER_LOCALE:a.userLocale}}),r=this.servers.get(e);r&&(r.child=s),s.on("message",(e=>{e.type===gx.INIT?(i(s),this.messageEvent.emit("init"),t=!0):e.type===gx.ERROR&&(n(s),this.messageEvent.emit("runError"),t=!0)})),setTimeout((()=>{t||n(s)}),5e3)}))}getConfig(){return this.config}setConfig(e){this.config.userLocale=e,this.servers.size>0&&this.servers.forEach((a=>{a.child&&a.child.send({type:bx.CHANGE_USER_LOCALE,data:e})}))}registerCodeSinppetMessage(e){this.registerChildMessageEvent((a=>{a.type===bx.SEND_ELEMENT&&e(a.data)}))}unregisterCodeSinppetMessage(e){this.unregisterChildMessageEvent(e)}registerTextSinppetMessage(e){this.registerChildMessageEvent((a=>{a.type===bx.SEND_TEXT_SELECTION&&e(a.data)}))}unregisterTextSinppetMessage(e){this.unregisterChildMessageEvent(e)}registerConsoleErrorMessage(e){this.registerChildMessageEvent((a=>{a.type===bx.SEND_CONSOLE_ERROR&&e(a.data)}))}unregisterConsoleErrorMessage(e){this.unregisterChildMessageEvent(e)}registerChildExitEvent(e){this.messageEvent.on("exit",e)}registerChildMessageEvent(e){this.messageEvent.on("message",e)}registerChildErrorEvent(e){this.messageEvent.on("error",e)}unregisterChildExitEvent(e){this.messageEvent.off("exit",e)}registerChildInitEvent(e){this.messageEvent.on("init",e)}unregisterChildInitEvent(e){this.messageEvent.off("init",e)}registerChildRunErrorEvent(e){this.messageEvent.on("runError",e)}unregisterChildRunErrorEvent(e){this.messageEvent.off("runError",e)}unregisterChildMessageEvent(e){this.messageEvent.off("message",e)}unregisterChildErrorEvent(e){this.messageEvent.off("error",e)}registerServerEvents(e,a){e.on("exit",(e=>{this.messageEvent.emit("exit",e,a)})),e.on("message",(e=>{[gx.INIT,gx.ERROR].includes(e.type)||this.messageEvent.emit("message",e,a)})),e.addListener("error",(e=>{this.messageEvent.emit("error",e,a)}))}registerSignal(){["SIGINT","SIGTERM","exit"].forEach((e=>{process.on(e,(()=>{this.dispose(),"exit"===e&&process.exit(0)}))}))}dispose(){this.servers.forEach((e=>this.removeServer(e.name))),this.messageEvent.clear(),this.servers.clear()}}export{bx as MESSAGE_HANDLER_TYPE,gx as MESSAGE_RUN_TYPE,Cx as PreviewServerProxy,Sx as ProxyServerManager,Cv as isPortAvailable};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.text-selection-button{z-index:9999;cursor:pointer;-webkit-user-select:none;user-select:none;box-sizing:border-box;border-radius:4px;padding:4px;transition:opacity .2s;box-shadow:0 0 6px #0003;color:#303031!important;background:#fff!important;border:1px solid #d4d4d4!important}.text-selection-button .text-selection-button-text{font-family:PingFang SC;font-weight:400;font-style:Regular;letter-spacing:0;vertical-align:middle;border-radius:4px;align-items:center;height:20px;padding:2px 8px;font-size:12px;line-height:20px;display:flex;color:#303031!important;background:#fff!important}.text-selection-button .text-selection-button-text:hover{background:#d4d4d480!important}.text-selection-button .ml-8{margin-right:4px;margin-left:0!important}*,:before,:after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}#comate-preview-container .pointer-events-none{pointer-events:none}#comate-preview-container .\!visible{visibility:visible!important}#comate-preview-container .visible{visibility:visible}#comate-preview-container .fixed{position:fixed}#comate-preview-container .absolute{position:absolute}#comate-preview-container .bottom-\[8px\]{bottom:8px}#comate-preview-container .left-0{left:0}#comate-preview-container .left-\[-999\]{left:-999px}#comate-preview-container .right-\[7px\]{right:7px}#comate-preview-container .top-\[-30px\]{top:-30px}#comate-preview-container .top-\[-999\]{top:-999px}#comate-preview-container .z-\[2147483646\]{z-index:2147483646}#comate-preview-container .z-\[2147483647\]{z-index:2147483647}#comate-preview-container .mx-\[4px\]{margin-left:4px;margin-right:4px}#comate-preview-container .ml-8{margin-left:2rem}#comate-preview-container .ml-\[8px\]{margin-left:8px}#comate-preview-container .mr-\[4px\]{margin-right:4px}#comate-preview-container .flex{display:flex}#comate-preview-container .h-\[14px\]{height:14px}#comate-preview-container .h-\[24px\]{height:24px}#comate-preview-container .h-\[30px\]{height:30px}#comate-preview-container .h-\[32px\]{height:32px}#comate-preview-container .w-\[1px\]{width:1px}#comate-preview-container .cursor-not-allowed{cursor:not-allowed}#comate-preview-container .cursor-pointer{cursor:pointer}#comate-preview-container .resize{resize:both}#comate-preview-container .items-center{align-items:center}#comate-preview-container .overflow-hidden{overflow:hidden}#comate-preview-container .rounded-\[2px\]{border-radius:2px}#comate-preview-container .rounded-\[4px\]{border-radius:4px}#comate-preview-container .rounded-tl-\[4px\]{border-top-left-radius:4px}#comate-preview-container .rounded-tr-\[4px\]{border-top-right-radius:4px}#comate-preview-container .border-\[2px\]{border-width:2px}#comate-preview-container .border-solid{border-style:solid}#comate-preview-container .border-\[\#2E93FF\]{--tw-border-opacity:1;border-color:rgb(46 147 255/var(--tw-border-opacity))}#comate-preview-container .border-\[1px_solid_\#D4D4D4\]{border-color:1px solid #d4d4d4}#comate-preview-container .bg-\[\#2E93FF\]{--tw-bg-opacity:1;background-color:rgb(46 147 255/var(--tw-bg-opacity))}#comate-preview-container .bg-\[\#80808059\]{background-color:#80808059}#comate-preview-container .bg-\[rgba\(255\,255\,255\,0\.09\)\]{background-color:#ffffff17}#comate-preview-container .bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}#comate-preview-container .p-\[2px_8px\]{padding:2px 8px}#comate-preview-container .px-\[12px\]{padding-left:12px;padding-right:12px}#comate-preview-container .px-\[4px\]{padding-left:4px;padding-right:4px}#comate-preview-container .py-\[4px\]{padding-top:4px;padding-bottom:4px}#comate-preview-container .py-\[6px\]{padding-top:6px;padding-bottom:6px}#comate-preview-container .pl-\[10px\]{padding-left:10px}#comate-preview-container .pr-\[10px\]{padding-right:10px}#comate-preview-container .text-\[12px\]{font-size:12px}#comate-preview-container .font-\[400\]{font-weight:400}#comate-preview-container .text-\[\#9C9E9E\]{--tw-text-opacity:1;color:rgb(156 158 158/var(--tw-text-opacity))}#comate-preview-container .text-\[\#FFFFFF\],#comate-preview-container .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}#comate-preview-container .shadow-\[0px_0px_6px_0px_\#00000033\]{--tw-shadow:0px 0px 6px 0px #0003;--tw-shadow-colored:0px 0px 6px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}#comate-preview-container .filter{filter:var(--tw-blur)var(--tw-brightness)var(--tw-contrast)var(--tw-grayscale)var(--tw-hue-rotate)var(--tw-invert)var(--tw-saturate)var(--tw-sepia)var(--tw-drop-shadow)}#comate-preview-container .transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}#comate-preview-container .duration-300{transition-duration:.3s}#comate-preview-container .ease-linear{transition-timing-function:linear}button{background:0 0}ol{margin-block-start:3px;margin-block-end:3px;margin-inline-start:0;margin-inline-end:0;padding-inline-start:1rem;list-style-type:decimal}ul{margin-block-start:3px;margin-block-end:3px;margin-inline-start:0;margin-inline-end:0;padding-inline-start:1rem;list-style-type:disc}#comate-preview-container{color:#000;font-size:13px}#comate-preview-container *,#comate-preview-container :after,#comate-preview-container :before{box-sizing:border-box;border:0 solid;margin:0;padding:0}#comate-preview-container ::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}#comate-preview-container ::-webkit-file-upload-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}#comate-preview-container ::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}#comate-preview-container :host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:--theme(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:--theme(--default-font-feature-settings,normal);font-variation-settings:--theme(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}#comate-preview-container hr{height:0;color:inherit;border-top-width:1px}#comate-preview-container abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}#comate-preview-container h1,#comate-preview-container h2,#comate-preview-container h3,#comate-preview-container h4,#comate-preview-container h5,#comate-preview-container h6{font-size:inherit;font-weight:inherit}#comate-preview-container a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}#comate-preview-container b,#comate-preview-container strong{font-weight:bolder}#comate-preview-container code,#comate-preview-container kbd,#comate-preview-container samp,#comate-preview-container pre{font-family:--theme(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:--theme(--default-mono-font-feature-settings,normal);font-variation-settings:--theme(--default-mono-font-variation-settings,normal);font-size:1em}#comate-preview-container small{font-size:80%}#comate-preview-container sub,#comate-preview-container sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}#comate-preview-container sub{bottom:-.25em}#comate-preview-container sup{top:-.5em}#comate-preview-container table{text-indent:0;border-color:inherit;border-collapse:collapse}#comate-preview-container :-moz-focusring{outline:auto}#comate-preview-container progress{vertical-align:baseline}#comate-preview-container summary{display:list-item}#comate-preview-container ol,#comate-preview-container ul,#comate-preview-container menu{list-style:none}#comate-preview-container img,#comate-preview-container svg,#comate-preview-container video,#comate-preview-container canvas,#comate-preview-container audio,#comate-preview-container iframe,#comate-preview-container embed,#comate-preview-container object{display:block}#comate-preview-container img,#comate-preview-container video{max-width:100%;height:auto}#comate-preview-container button,#comate-preview-container input,#comate-preview-container select,#comate-preview-container optgroup,#comate-preview-container textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}#comate-preview-container ::-webkit-file-upload-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}#comate-preview-container ::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}#comate-preview-container :where(select:-webkit-any([multiple],[size])) optgroup{font-weight:bolder}#comate-preview-container :where(select:-moz-any([multiple],[size])) optgroup{font-weight:bolder}#comate-preview-container :where(select:-webkit-any([multiple],[size])) optgroup{font-weight:bolder}#comate-preview-container :where(select:-moz-any([multiple],[size])) optgroup{font-weight:bolder}#comate-preview-container :where(select:is([multiple],[size])) optgroup{font-weight:bolder}#comate-preview-container :where(select:-webkit-any([multiple],[size])) optgroup option{padding-inline-start:20px}#comate-preview-container :where(select:-moz-any([multiple],[size])) optgroup option{padding-inline-start:20px}#comate-preview-container :where(select:-webkit-any([multiple],[size])) optgroup option{padding-inline-start:20px}#comate-preview-container :where(select:-moz-any([multiple],[size])) optgroup option{padding-inline-start:20px}#comate-preview-container :where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}#comate-preview-container ::-webkit-file-upload-button{margin-inline-end:4px}#comate-preview-container ::file-selector-button{margin-inline-end:4px}#comate-preview-container ::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){#comate-preview-container ::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}#comate-preview-container textarea{resize:vertical}#comate-preview-container ::-webkit-search-decoration{-webkit-appearance:none}#comate-preview-container ::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}#comate-preview-container ::-webkit-datetime-edit{display:inline-flex}#comate-preview-container ::-webkit-datetime-edit-fields-wrapper{padding:0}#comate-preview-container ::-webkit-datetime-edit{padding-block-start:0;padding-block-end:0}#comate-preview-container ::-webkit-datetime-edit-year-field{padding-block-start:0;padding-block-end:0}#comate-preview-container ::-webkit-datetime-edit-month-field{padding-block-start:0;padding-block-end:0}#comate-preview-container ::-webkit-datetime-edit-day-field{padding-block-start:0;padding-block-end:0}#comate-preview-container ::-webkit-datetime-edit-hour-field{padding-block-start:0;padding-block-end:0}#comate-preview-container ::-webkit-datetime-edit-minute-field{padding-block-start:0;padding-block-end:0}#comate-preview-container ::-webkit-datetime-edit-second-field{padding-block-start:0;padding-block-end:0}#comate-preview-container ::-webkit-datetime-edit-millisecond-field{padding-block-start:0;padding-block-end:0}#comate-preview-container ::-webkit-datetime-edit-meridiem-field{padding-block-start:0;padding-block-end:0}#comate-preview-container :-moz-ui-invalid{box-shadow:none}#comate-preview-container button{-webkit-appearance:button;-moz-appearance:button;appearance:button}#comate-preview-container input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}#comate-preview-container ::-webkit-file-upload-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}#comate-preview-container ::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}#comate-preview-container ::-webkit-inner-spin-button{height:auto}#comate-preview-container ::-webkit-outer-spin-button{height:auto}#comate-preview-container [hidden]:where(:not([hidden=until-found])){display:none!important}#comate-preview-container .hover\:bg-\[\#48A1FF\]:hover{--tw-bg-opacity:1;background-color:rgb(72 161 255/var(--tw-bg-opacity))}#comate-preview-container .hover\:bg-\[\#D4D4D480\]:hover{background-color:#d4d4d480}
|
|
1
|
+
.text-selection-button{z-index:9999;cursor:pointer;-webkit-user-select:none;user-select:none;box-sizing:border-box;border-radius:4px;padding:4px;transition:opacity .2s;box-shadow:0 0 6px #0003;color:#303031!important;background:#fff!important;border:1px solid #d4d4d4!important}.text-selection-button .text-selection-button-text{font-family:PingFang SC;font-weight:400;font-style:Regular;letter-spacing:0;vertical-align:middle;border-radius:4px;align-items:center;height:20px;padding:2px 8px;font-size:12px;line-height:20px;display:flex;color:#303031!important;background:#fff!important}.text-selection-button .text-selection-button-text:hover{background:#d4d4d480!important}.text-selection-button .icon-left{margin-right:4px;margin-left:0!important}*,:before,:after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}#comate-preview-container .pointer-events-none{pointer-events:none}#comate-preview-container .\!visible{visibility:visible!important}#comate-preview-container .visible{visibility:visible}#comate-preview-container .fixed{position:fixed}#comate-preview-container .absolute{position:absolute}#comate-preview-container .bottom-\[8px\]{bottom:8px}#comate-preview-container .left-0{left:0}#comate-preview-container .left-\[-999\]{left:-999px}#comate-preview-container .right-\[7px\]{right:7px}#comate-preview-container .top-\[-30px\]{top:-30px}#comate-preview-container .top-\[-999\]{top:-999px}#comate-preview-container .z-\[2147483646\]{z-index:2147483646}#comate-preview-container .z-\[2147483647\]{z-index:2147483647}#comate-preview-container .mx-\[4px\]{margin-left:4px;margin-right:4px}#comate-preview-container .ml-\[8px\]{margin-left:8px}#comate-preview-container .mr-\[4px\]{margin-right:4px}#comate-preview-container .flex{display:flex}#comate-preview-container .h-\[14px\]{height:14px}#comate-preview-container .h-\[24px\]{height:24px}#comate-preview-container .h-\[30px\]{height:30px}#comate-preview-container .h-\[32px\]{height:32px}#comate-preview-container .w-\[1px\]{width:1px}#comate-preview-container .cursor-not-allowed{cursor:not-allowed}#comate-preview-container .cursor-pointer{cursor:pointer}#comate-preview-container .resize{resize:both}#comate-preview-container .items-center{align-items:center}#comate-preview-container .overflow-hidden{overflow:hidden}#comate-preview-container .rounded-\[2px\]{border-radius:2px}#comate-preview-container .rounded-\[4px\]{border-radius:4px}#comate-preview-container .rounded-tl-\[4px\]{border-top-left-radius:4px}#comate-preview-container .rounded-tr-\[4px\]{border-top-right-radius:4px}#comate-preview-container .border-\[2px\]{border-width:2px}#comate-preview-container .border-solid{border-style:solid}#comate-preview-container .border-\[\#2E93FF\]{--tw-border-opacity:1;border-color:rgb(46 147 255/var(--tw-border-opacity))}#comate-preview-container .border-\[1px_solid_\#D4D4D4\]{border-color:1px solid #d4d4d4}#comate-preview-container .bg-\[\#2E93FF\]{--tw-bg-opacity:1;background-color:rgb(46 147 255/var(--tw-bg-opacity))}#comate-preview-container .bg-\[\#80808059\]{background-color:#80808059}#comate-preview-container .bg-\[rgba\(255\,255\,255\,0\.09\)\]{background-color:#ffffff17}#comate-preview-container .bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}#comate-preview-container .p-\[2px_8px\]{padding:2px 8px}#comate-preview-container .px-\[12px\]{padding-left:12px;padding-right:12px}#comate-preview-container .px-\[4px\]{padding-left:4px;padding-right:4px}#comate-preview-container .py-\[4px\]{padding-top:4px;padding-bottom:4px}#comate-preview-container .py-\[6px\]{padding-top:6px;padding-bottom:6px}#comate-preview-container .pl-\[10px\]{padding-left:10px}#comate-preview-container .pr-\[10px\]{padding-right:10px}#comate-preview-container .text-\[12px\]{font-size:12px}#comate-preview-container .font-\[400\]{font-weight:400}#comate-preview-container .text-\[\#9C9E9E\]{--tw-text-opacity:1;color:rgb(156 158 158/var(--tw-text-opacity))}#comate-preview-container .text-\[\#FFFFFF\],#comate-preview-container .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}#comate-preview-container .shadow-\[0px_0px_6px_0px_\#00000033\]{--tw-shadow:0px 0px 6px 0px #0003;--tw-shadow-colored:0px 0px 6px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}#comate-preview-container .filter{filter:var(--tw-blur)var(--tw-brightness)var(--tw-contrast)var(--tw-grayscale)var(--tw-hue-rotate)var(--tw-invert)var(--tw-saturate)var(--tw-sepia)var(--tw-drop-shadow)}#comate-preview-container .transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}#comate-preview-container .duration-300{transition-duration:.3s}#comate-preview-container .ease-linear{transition-timing-function:linear}button{background:0 0}ol{margin-block-start:3px;margin-block-end:3px;margin-inline-start:0;margin-inline-end:0;padding-inline-start:1rem;list-style-type:decimal}ul{margin-block-start:3px;margin-block-end:3px;margin-inline-start:0;margin-inline-end:0;padding-inline-start:1rem;list-style-type:disc}#comate-preview-container{color:#000;font-size:13px}#comate-preview-container *,#comate-preview-container :after,#comate-preview-container :before{box-sizing:border-box;border:0 solid;margin:0;padding:0}#comate-preview-container ::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}#comate-preview-container ::-webkit-file-upload-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}#comate-preview-container ::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}#comate-preview-container :host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:--theme(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:--theme(--default-font-feature-settings,normal);font-variation-settings:--theme(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}#comate-preview-container hr{height:0;color:inherit;border-top-width:1px}#comate-preview-container abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}#comate-preview-container h1,#comate-preview-container h2,#comate-preview-container h3,#comate-preview-container h4,#comate-preview-container h5,#comate-preview-container h6{font-size:inherit;font-weight:inherit}#comate-preview-container a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}#comate-preview-container b,#comate-preview-container strong{font-weight:bolder}#comate-preview-container code,#comate-preview-container kbd,#comate-preview-container samp,#comate-preview-container pre{font-family:--theme(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:--theme(--default-mono-font-feature-settings,normal);font-variation-settings:--theme(--default-mono-font-variation-settings,normal);font-size:1em}#comate-preview-container small{font-size:80%}#comate-preview-container sub,#comate-preview-container sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}#comate-preview-container sub{bottom:-.25em}#comate-preview-container sup{top:-.5em}#comate-preview-container table{text-indent:0;border-color:inherit;border-collapse:collapse}#comate-preview-container :-moz-focusring{outline:auto}#comate-preview-container progress{vertical-align:baseline}#comate-preview-container summary{display:list-item}#comate-preview-container ol,#comate-preview-container ul,#comate-preview-container menu{list-style:none}#comate-preview-container img,#comate-preview-container svg,#comate-preview-container video,#comate-preview-container canvas,#comate-preview-container audio,#comate-preview-container iframe,#comate-preview-container embed,#comate-preview-container object{display:block}#comate-preview-container img,#comate-preview-container video{max-width:100%;height:auto}#comate-preview-container button,#comate-preview-container input,#comate-preview-container select,#comate-preview-container optgroup,#comate-preview-container textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}#comate-preview-container ::-webkit-file-upload-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}#comate-preview-container ::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}#comate-preview-container :where(select:-webkit-any([multiple],[size])) optgroup{font-weight:bolder}#comate-preview-container :where(select:-moz-any([multiple],[size])) optgroup{font-weight:bolder}#comate-preview-container :where(select:-webkit-any([multiple],[size])) optgroup{font-weight:bolder}#comate-preview-container :where(select:-moz-any([multiple],[size])) optgroup{font-weight:bolder}#comate-preview-container :where(select:is([multiple],[size])) optgroup{font-weight:bolder}#comate-preview-container :where(select:-webkit-any([multiple],[size])) optgroup option{padding-inline-start:20px}#comate-preview-container :where(select:-moz-any([multiple],[size])) optgroup option{padding-inline-start:20px}#comate-preview-container :where(select:-webkit-any([multiple],[size])) optgroup option{padding-inline-start:20px}#comate-preview-container :where(select:-moz-any([multiple],[size])) optgroup option{padding-inline-start:20px}#comate-preview-container :where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}#comate-preview-container ::-webkit-file-upload-button{margin-inline-end:4px}#comate-preview-container ::file-selector-button{margin-inline-end:4px}#comate-preview-container ::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){#comate-preview-container ::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}#comate-preview-container textarea{resize:vertical}#comate-preview-container ::-webkit-search-decoration{-webkit-appearance:none}#comate-preview-container ::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}#comate-preview-container ::-webkit-datetime-edit{display:inline-flex}#comate-preview-container ::-webkit-datetime-edit-fields-wrapper{padding:0}#comate-preview-container ::-webkit-datetime-edit{padding-block-start:0;padding-block-end:0}#comate-preview-container ::-webkit-datetime-edit-year-field{padding-block-start:0;padding-block-end:0}#comate-preview-container ::-webkit-datetime-edit-month-field{padding-block-start:0;padding-block-end:0}#comate-preview-container ::-webkit-datetime-edit-day-field{padding-block-start:0;padding-block-end:0}#comate-preview-container ::-webkit-datetime-edit-hour-field{padding-block-start:0;padding-block-end:0}#comate-preview-container ::-webkit-datetime-edit-minute-field{padding-block-start:0;padding-block-end:0}#comate-preview-container ::-webkit-datetime-edit-second-field{padding-block-start:0;padding-block-end:0}#comate-preview-container ::-webkit-datetime-edit-millisecond-field{padding-block-start:0;padding-block-end:0}#comate-preview-container ::-webkit-datetime-edit-meridiem-field{padding-block-start:0;padding-block-end:0}#comate-preview-container :-moz-ui-invalid{box-shadow:none}#comate-preview-container button{-webkit-appearance:button;-moz-appearance:button;appearance:button}#comate-preview-container input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}#comate-preview-container ::-webkit-file-upload-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}#comate-preview-container ::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}#comate-preview-container ::-webkit-inner-spin-button{height:auto}#comate-preview-container ::-webkit-outer-spin-button{height:auto}#comate-preview-container [hidden]:where(:not([hidden=until-found])){display:none!important}#comate-preview-container .hover\:bg-\[\#48A1FF\]:hover{--tw-bg-opacity:1;background-color:rgb(72 161 255/var(--tw-bg-opacity))}#comate-preview-container .hover\:bg-\[\#D4D4D480\]:hover{background-color:#d4d4d480}
|