Initial
|
@ -0,0 +1,7 @@
|
|||
FROM node:latest
|
||||
|
||||
WORKDIR /usr/src/m0lang_frontend
|
||||
COPY . .
|
||||
RUN npm install -g serve
|
||||
EXPOSE 3000
|
||||
CMD ["serve", "-s", ".", "-l", "3000"]
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"files": {
|
||||
"main.css": "/static/css/main.e6a0ee8b.css",
|
||||
"main.js": "/static/js/main.4a15efdf.js",
|
||||
"static/js/787.e9dfa757.chunk.js": "/static/js/787.e9dfa757.chunk.js",
|
||||
"index.html": "/index.html",
|
||||
"main.e6a0ee8b.css.map": "/static/css/main.e6a0ee8b.css.map",
|
||||
"main.4a15efdf.js.map": "/static/js/main.4a15efdf.js.map",
|
||||
"787.e9dfa757.chunk.js.map": "/static/js/787.e9dfa757.chunk.js.map"
|
||||
},
|
||||
"entrypoints": [
|
||||
"static/css/main.e6a0ee8b.css",
|
||||
"static/js/main.4a15efdf.js"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 78 KiB |
After Width: | Height: | Size: 78 KiB |
After Width: | Height: | Size: 78 KiB |
After Width: | Height: | Size: 55 KiB |
After Width: | Height: | Size: 55 KiB |
After Width: | Height: | Size: 55 KiB |
After Width: | Height: | Size: 7.6 KiB |
After Width: | Height: | Size: 7.6 KiB |
After Width: | Height: | Size: 7.6 KiB |
After Width: | Height: | Size: 58 KiB |
|
@ -0,0 +1 @@
|
|||
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><title>m0lang++</title><script defer="defer" src="/static/js/main.4a15efdf.js"></script><link href="/static/css/main.e6a0ee8b.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
|
After Width: | Height: | Size: 5.2 KiB |
After Width: | Height: | Size: 9.4 KiB |
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
"short_name": "React App",
|
||||
"name": "Create React App Sample",
|
||||
"icons": [
|
||||
{
|
||||
"src": "favicon.ico",
|
||||
"sizes": "64x64 32x32 24x24 16x16",
|
||||
"type": "image/x-icon"
|
||||
},
|
||||
{
|
||||
"src": "logo192.png",
|
||||
"type": "image/png",
|
||||
"sizes": "192x192"
|
||||
},
|
||||
{
|
||||
"src": "logo512.png",
|
||||
"type": "image/png",
|
||||
"sizes": "512x512"
|
||||
}
|
||||
],
|
||||
"start_url": ".",
|
||||
"display": "standalone",
|
||||
"theme_color": "#000000",
|
||||
"background_color": "#ffffff"
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
# https://www.robotstxt.org/robotstxt.html
|
||||
User-agent: *
|
||||
Disallow:
|
|
@ -0,0 +1,2 @@
|
|||
"use strict";(self.webpackChunkinterpreter_frontend=self.webpackChunkinterpreter_frontend||[]).push([[787],{787:function(e,t,n){n.r(t),n.d(t,{getCLS:function(){return y},getFCP:function(){return g},getFID:function(){return C},getLCP:function(){return P},getTTFB:function(){return D}});var i,r,a,o,u=function(e,t){return{name:e,value:void 0===t?-1:t,delta:0,entries:[],id:"v2-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12)}},c=function(e,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){if("first-input"===e&&!("PerformanceEventTiming"in self))return;var n=new PerformanceObserver((function(e){return e.getEntries().map(t)}));return n.observe({type:e,buffered:!0}),n}}catch(e){}},f=function(e,t){var n=function n(i){"pagehide"!==i.type&&"hidden"!==document.visibilityState||(e(i),t&&(removeEventListener("visibilitychange",n,!0),removeEventListener("pagehide",n,!0)))};addEventListener("visibilitychange",n,!0),addEventListener("pagehide",n,!0)},s=function(e){addEventListener("pageshow",(function(t){t.persisted&&e(t)}),!0)},m=function(e,t,n){var i;return function(r){t.value>=0&&(r||n)&&(t.delta=t.value-(i||0),(t.delta||void 0===i)&&(i=t.value,e(t)))}},v=-1,p=function(){return"hidden"===document.visibilityState?0:1/0},d=function(){f((function(e){var t=e.timeStamp;v=t}),!0)},l=function(){return v<0&&(v=p(),d(),s((function(){setTimeout((function(){v=p(),d()}),0)}))),{get firstHiddenTime(){return v}}},g=function(e,t){var n,i=l(),r=u("FCP"),a=function(e){"first-contentful-paint"===e.name&&(f&&f.disconnect(),e.startTime<i.firstHiddenTime&&(r.value=e.startTime,r.entries.push(e),n(!0)))},o=window.performance&&performance.getEntriesByName&&performance.getEntriesByName("first-contentful-paint")[0],f=o?null:c("paint",a);(o||f)&&(n=m(e,r,t),o&&a(o),s((function(i){r=u("FCP"),n=m(e,r,t),requestAnimationFrame((function(){requestAnimationFrame((function(){r.value=performance.now()-i.timeStamp,n(!0)}))}))})))},h=!1,T=-1,y=function(e,t){h||(g((function(e){T=e.value})),h=!0);var n,i=function(t){T>-1&&e(t)},r=u("CLS",0),a=0,o=[],v=function(e){if(!e.hadRecentInput){var t=o[0],i=o[o.length-1];a&&e.startTime-i.startTime<1e3&&e.startTime-t.startTime<5e3?(a+=e.value,o.push(e)):(a=e.value,o=[e]),a>r.value&&(r.value=a,r.entries=o,n())}},p=c("layout-shift",v);p&&(n=m(i,r,t),f((function(){p.takeRecords().map(v),n(!0)})),s((function(){a=0,T=-1,r=u("CLS",0),n=m(i,r,t)})))},E={passive:!0,capture:!0},w=new Date,L=function(e,t){i||(i=t,r=e,a=new Date,F(removeEventListener),S())},S=function(){if(r>=0&&r<a-w){var e={entryType:"first-input",name:i.type,target:i.target,cancelable:i.cancelable,startTime:i.timeStamp,processingStart:i.timeStamp+r};o.forEach((function(t){t(e)})),o=[]}},b=function(e){if(e.cancelable){var t=(e.timeStamp>1e12?new Date:performance.now())-e.timeStamp;"pointerdown"==e.type?function(e,t){var n=function(){L(e,t),r()},i=function(){r()},r=function(){removeEventListener("pointerup",n,E),removeEventListener("pointercancel",i,E)};addEventListener("pointerup",n,E),addEventListener("pointercancel",i,E)}(t,e):L(t,e)}},F=function(e){["mousedown","keydown","touchstart","pointerdown"].forEach((function(t){return e(t,b,E)}))},C=function(e,t){var n,a=l(),v=u("FID"),p=function(e){e.startTime<a.firstHiddenTime&&(v.value=e.processingStart-e.startTime,v.entries.push(e),n(!0))},d=c("first-input",p);n=m(e,v,t),d&&f((function(){d.takeRecords().map(p),d.disconnect()}),!0),d&&s((function(){var a;v=u("FID"),n=m(e,v,t),o=[],r=-1,i=null,F(addEventListener),a=p,o.push(a),S()}))},k={},P=function(e,t){var n,i=l(),r=u("LCP"),a=function(e){var t=e.startTime;t<i.firstHiddenTime&&(r.value=t,r.entries.push(e),n())},o=c("largest-contentful-paint",a);if(o){n=m(e,r,t);var v=function(){k[r.id]||(o.takeRecords().map(a),o.disconnect(),k[r.id]=!0,n(!0))};["keydown","click"].forEach((function(e){addEventListener(e,v,{once:!0,capture:!0})})),f(v,!0),s((function(i){r=u("LCP"),n=m(e,r,t),requestAnimationFrame((function(){requestAnimationFrame((function(){r.value=performance.now()-i.timeStamp,k[r.id]=!0,n(!0)}))}))}))}},D=function(e){var t,n=u("TTFB");t=function(){try{var t=performance.getEntriesByType("navigation")[0]||function(){var e=performance.timing,t={entryType:"navigation",startTime:0};for(var n in e)"navigationStart"!==n&&"toJSON"!==n&&(t[n]=Math.max(e[n]-e.navigationStart,0));return t}();if(n.value=n.delta=t.responseStart,n.value<0||n.value>performance.now())return;n.entries=[t],e(n)}catch(e){}},"complete"===document.readyState?setTimeout(t,0):addEventListener("load",(function(){return setTimeout(t,0)}))}}}]);
|
||||
//# sourceMappingURL=787.e9dfa757.chunk.js.map
|
|
@ -0,0 +1,106 @@
|
|||
/*!
|
||||
Copyright (c) 2018 Jed Watson.
|
||||
Licensed under the MIT License (MIT), see
|
||||
http://jedwatson.github.io/classnames
|
||||
*/
|
||||
|
||||
/*!
|
||||
* Determine if an object is a Buffer
|
||||
*
|
||||
* @author Feross Aboukhadijeh <https://feross.org>
|
||||
* @license MIT
|
||||
*/
|
||||
|
||||
/*!
|
||||
* The buffer module from node.js, for the browser.
|
||||
*
|
||||
* @author Feross Aboukhadijeh <https://feross.org>
|
||||
* @license MIT
|
||||
*/
|
||||
|
||||
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
||||
|
||||
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
|
||||
|
||||
/**
|
||||
* @license React
|
||||
* react-dom.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license React
|
||||
* react-is.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license React
|
||||
* react-jsx-runtime.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license React
|
||||
* react.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license React
|
||||
* scheduler.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @remix-run/router v1.0.3
|
||||
*
|
||||
* Copyright (c) Remix Software Inc.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE.md file in the root directory of this source tree.
|
||||
*
|
||||
* @license MIT
|
||||
*/
|
||||
|
||||
/**
|
||||
* React Router DOM v6.4.3
|
||||
*
|
||||
* Copyright (c) Remix Software Inc.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE.md file in the root directory of this source tree.
|
||||
*
|
||||
* @license MIT
|
||||
*/
|
||||
|
||||
/**
|
||||
* React Router v6.4.3
|
||||
*
|
||||
* Copyright (c) Remix Software Inc.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE.md file in the root directory of this source tree.
|
||||
*
|
||||
* @license MIT
|
||||
*/
|
|
@ -0,0 +1,53 @@
|
|||
### IMPORTANTE!!! ###
|
||||
# Per runnare si devono esportare le variabili d'ambiente in '.envssl' e
|
||||
# creare la cartella './team$TEAM_NUMBER/m0langpp.team$TEAM_NUMBER.m0lecon.fans'
|
||||
# con un certificato valido
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
|
||||
m0lang_db:
|
||||
image: mysql
|
||||
container_name: m0lang-db
|
||||
command: --default-authentication-plugin=mysql_native_password
|
||||
volumes:
|
||||
- ./init.sql:/docker-entrypoint-initdb.d/setup.sql
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: B4nan!
|
||||
MYSQL_USER: pixel
|
||||
MYSQL_PASSWORD: 12345678
|
||||
MYSQL_DATABASE: Maps
|
||||
|
||||
m0lang_tomcat:
|
||||
image: tomcat:10.0.27
|
||||
container_name: m0lang-tomcat
|
||||
mem_limit: "1G"
|
||||
volumes:
|
||||
- ./Serv7Api-API.war:/usr/local/tomcat/webapps/ROOT.war
|
||||
- ./emoji.csv:/resources/emoji.csv
|
||||
- ./interpreter.jar:/resources/interpreter.jar
|
||||
environment:
|
||||
MYSQL_USER: pixel
|
||||
MYSQL_PASSWORD: 12345678
|
||||
MYSQL_URL: "jdbc:mysql://m0lang-db:3306/Maps"
|
||||
|
||||
m0lang_frontend:
|
||||
container_name: m0lang-frontend
|
||||
build: ./build
|
||||
# WARNING: port is temporary
|
||||
# ports:
|
||||
# - 3000:3000
|
||||
|
||||
m0lang_proxy:
|
||||
image: nginx:latest
|
||||
container_name: m0lang-nginx
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- m0lang_frontend
|
||||
- m0lang_tomcat
|
||||
ports:
|
||||
- "7538:7538"
|
||||
- "8342:8342"
|
||||
volumes:
|
||||
- ./nginx.conf:/etc/nginx/nginx.conf
|
||||
- /secrets/m0langpp/:/ssl/
|
|
@ -0,0 +1,79 @@
|
|||
0️⃣,0
|
||||
1️⃣,1
|
||||
2️⃣,2
|
||||
3️⃣,3
|
||||
4️⃣,4
|
||||
5️⃣,5
|
||||
6️⃣,6
|
||||
7️⃣,7
|
||||
8️⃣,8
|
||||
9️⃣,9
|
||||
🅰,a
|
||||
🅰️,a
|
||||
🅱,b
|
||||
🅱️,b
|
||||
🆎,c
|
||||
🆑,d
|
||||
🅾,e
|
||||
🅾️,e
|
||||
☮,f
|
||||
☮️,f
|
||||
✝,g
|
||||
✝️,g
|
||||
☪,h
|
||||
☪️,h
|
||||
🆔,i
|
||||
🕉,j
|
||||
☸,k
|
||||
☸️,k
|
||||
✡,l
|
||||
✡️,l
|
||||
🕎,m
|
||||
☯,n
|
||||
☯️,n
|
||||
☦,o
|
||||
☦️,o
|
||||
🛐,p
|
||||
⛎,q
|
||||
♈,r
|
||||
♉,s
|
||||
♊,t
|
||||
♋,u
|
||||
♌,v
|
||||
♍,x
|
||||
♎,y
|
||||
♐,w
|
||||
♑,z
|
||||
🔁,while
|
||||
➕,+
|
||||
➖,-
|
||||
✖,*
|
||||
✖️,*
|
||||
➗,/
|
||||
⬅,=
|
||||
⬅️,=
|
||||
🏘️,getNeighbours
|
||||
🌛,)
|
||||
🌜,(
|
||||
🏃,move
|
||||
🖨,print
|
||||
❓,if
|
||||
❗,else
|
||||
#️⃣,;
|
||||
🌻,]
|
||||
🌼,[
|
||||
🔢,int
|
||||
⭐,{
|
||||
🌟,}
|
||||
⏩,>
|
||||
⏪,<
|
||||
❎,!
|
||||
⚡,&
|
||||
⏸,|
|
||||
🚻,double
|
||||
〰,","
|
||||
〰️,","
|
||||
🚥,/*
|
||||
🚦,*/
|
||||
🍌,cancel
|
||||
⏺,.
|
|
|
@ -0,0 +1,12 @@
|
|||
-- drop tables if exist
|
||||
DROP TABLE IF EXISTS Map;
|
||||
|
||||
-- create tables
|
||||
CREATE TABLE Map (
|
||||
Name VARCHAR(50),
|
||||
Data MEDIUMTEXT,
|
||||
Pubkey TEXT,
|
||||
Signature TEXT,
|
||||
Time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
primary key (Name)
|
||||
);
|
|
@ -0,0 +1,38 @@
|
|||
events { }
|
||||
|
||||
http{
|
||||
|
||||
client_max_body_size 64M;
|
||||
|
||||
server {
|
||||
|
||||
listen 8342 ssl;
|
||||
|
||||
server_name *.m0lecon.fans;
|
||||
|
||||
ssl_certificate /ssl/fullchain.pem;
|
||||
ssl_certificate_key /ssl/privkey.pem;
|
||||
|
||||
location / {
|
||||
proxy_pass http://m0lang-tomcat:8080;
|
||||
}
|
||||
}
|
||||
|
||||
server {
|
||||
|
||||
listen 7538 ssl;
|
||||
|
||||
server_name *.m0lecon.fans;
|
||||
|
||||
ssl_certificate /ssl/fullchain.pem;
|
||||
ssl_certificate_key /ssl/privkey.pem;
|
||||
|
||||
location / {
|
||||
proxy_pass http://m0lang-frontend:3000;
|
||||
}
|
||||
|
||||
location /api/ {
|
||||
proxy_pass http://m0lang-tomcat:8080/api/;
|
||||
}
|
||||
}
|
||||
}
|