master
root 2022-11-18 14:25:26 +00:00
commit 1ac0a3ef6b
33 changed files with 354 additions and 0 deletions

BIN
Serv7Api-API.war Executable file

Binary file not shown.

7
build/Dockerfile Executable file
View File

@ -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"]

15
build/asset-manifest.json Executable file
View File

@ -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"
]
}

BIN
build/emojis/doubt.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
build/emojis/doubt2.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
build/emojis/doubt3.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
build/emojis/laugh.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

BIN
build/emojis/laugh2.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

BIN
build/emojis/laugh3.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

BIN
build/emojis/smile.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

BIN
build/emojis/smile2.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

BIN
build/emojis/smile3.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

BIN
build/emojis/think.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

BIN
build/emojis/think2.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

BIN
build/emojis/think3.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

BIN
build/favicon.ico Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

1
build/index.html Executable file
View File

@ -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>

BIN
build/logo192.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

BIN
build/logo512.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

25
build/manifest.json Executable file
View File

@ -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"
}

3
build/robots.txt Executable file
View File

@ -0,0 +1,3 @@
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -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
*/

File diff suppressed because one or more lines are too long

53
docker-compose.yaml Executable file
View File

@ -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/

79
emoji.csv Executable file
View File

@ -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
⏺,.
1 0️⃣ 0
2 1️⃣ 1
3 2️⃣ 2
4 3️⃣ 3
5 4️⃣ 4
6 5️⃣ 5
7 6️⃣ 6
8 7️⃣ 7
9 8️⃣ 8
10 9️⃣ 9
11 🅰 a
12 🅰️ a
13 🅱 b
14 🅱️ b
15 🆎 c
16 🆑 d
17 🅾 e
18 🅾️ e
19 f
20 ☮️ f
21 g
22 ✝️ g
23 h
24 ☪️ h
25 🆔 i
26 🕉 j
27 k
28 ☸️ k
29 l
30 ✡️ l
31 🕎 m
32 n
33 ☯️ n
34 o
35 ☦️ o
36 🛐 p
37 q
38 r
39 s
40 t
41 u
42 v
43 x
44 y
45 w
46 z
47 🔁 while
48 +
49 -
50 *
51 ✖️ *
52 /
53 =
54 ⬅️ =
55 🏘️ getNeighbours
56 🌛 )
57 🌜 (
58 🏃 move
59 🖨 print
60 if
61 else
62 #️⃣ ;
63 🌻 ]
64 🌼 [
65 🔢 int
66 {
67 🌟 }
68 >
69 <
70 !
71 &
72 |
73 🚻 double
74 ,
75 〰️ ,
76 🚥 /*
77 🚦 */
78 🍌 cancel
79 .

12
init.sql Executable file
View File

@ -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)
);

BIN
interpreter.jar Executable file

Binary file not shown.

38
nginx.conf Executable file
View File

@ -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/;
}
}
}