godprotocol 1.2.53 → 2.2.0

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.
Files changed (80) hide show
  1. package/Godprotocol.js +33 -0
  2. package/Index.js +8 -5
  3. package/README.md +0 -0
  4. package/package.json +1 -1
  5. package/server/Routable/Header.js +240 -0
  6. package/server/Routable/Route_table.js +198 -0
  7. package/server/Routable/Services.js +193 -0
  8. package/server/utils.js +54 -0
  9. package/server/version_control.js +71 -0
  10. package/{Objects → virtual_machine/Objects}/Clock.js +9 -9
  11. package/{Objects → virtual_machine/Objects}/Events.js +47 -47
  12. package/{callables → virtual_machine/callables}/functions/assert.js +9 -9
  13. package/{callables → virtual_machine/callables}/functions/env.js +4 -4
  14. package/{callables → virtual_machine/callables}/functions/query.js +17 -17
  15. package/{callables → virtual_machine/callables}/functions/wait.js +8 -8
  16. package/{html → virtual_machine/html}/create.js +95 -95
  17. package/{html → virtual_machine/html}/index.js +125 -125
  18. package/{html → virtual_machine/html}/load.js +166 -166
  19. package/{html → virtual_machine/html}/parse.js +170 -170
  20. package/{html → virtual_machine/html}/run.js +150 -150
  21. package/{html → virtual_machine/html}/util.js +4 -4
  22. /package/{Datatypes → virtual_machine/Datatypes}/arr.js +0 -0
  23. /package/{Datatypes → virtual_machine/Datatypes}/bool.js +0 -0
  24. /package/{Datatypes → virtual_machine/Datatypes}/callable.js +0 -0
  25. /package/{Datatypes → virtual_machine/Datatypes}/cls.js +0 -0
  26. /package/{Datatypes → virtual_machine/Datatypes}/conf.js +0 -0
  27. /package/{Datatypes → virtual_machine/Datatypes}/err.js +0 -0
  28. /package/{Datatypes → virtual_machine/Datatypes}/func.js +0 -0
  29. /package/{Datatypes → virtual_machine/Datatypes}/functions/storage.js +0 -0
  30. /package/{Datatypes → virtual_machine/Datatypes}/functions/wallet.js +0 -0
  31. /package/{Datatypes → virtual_machine/Datatypes}/instance.js +0 -0
  32. /package/{Datatypes → virtual_machine/Datatypes}/num.js +0 -0
  33. /package/{Datatypes → virtual_machine/Datatypes}/str.js +0 -0
  34. /package/{Datatypes → virtual_machine/Datatypes}/twa.js +0 -0
  35. /package/{Datatypes → virtual_machine/Datatypes}/voi.js +0 -0
  36. /package/{Instances → virtual_machine/Instances}/account.js +0 -0
  37. /package/{Instances → virtual_machine/Instances}/event.js +0 -0
  38. /package/{Instances → virtual_machine/Instances}/fold.js +0 -0
  39. /package/{Instances → virtual_machine/Instances}/folder_queries.js +0 -0
  40. /package/{Instances → virtual_machine/Instances}/response.js +0 -0
  41. /package/{Objects → virtual_machine/Objects}/Account.js +0 -0
  42. /package/{Objects → virtual_machine/Objects}/Block.js +0 -0
  43. /package/{Objects → virtual_machine/Objects}/Blockweb.js +0 -0
  44. /package/{Objects → virtual_machine/Objects}/Callable.js +0 -0
  45. /package/{Objects → virtual_machine/Objects}/Chain.js +0 -0
  46. /package/{Objects → virtual_machine/Objects}/Datatypes.js +0 -0
  47. /package/{Objects → virtual_machine/Objects}/Manager.js +0 -0
  48. /package/{Objects → virtual_machine/Objects}/Oracle.js +0 -0
  49. /package/{Objects → virtual_machine/Objects}/Repository.js +0 -0
  50. /package/{Objects → virtual_machine/Objects}/Trinity.js +0 -0
  51. /package/{Objects → virtual_machine/Objects}/Utils.js +0 -0
  52. /package/{Objects → virtual_machine/Objects}/Virtual_machine.js +0 -0
  53. /package/{callables → virtual_machine/callables}/functions/display.js +0 -0
  54. /package/{callables → virtual_machine/callables}/functions/event.js +0 -0
  55. /package/{callables → virtual_machine/callables}/functions/exit.js +0 -0
  56. /package/{callables → virtual_machine/callables}/functions/folder.js +0 -0
  57. /package/{callables → virtual_machine/callables}/functions/get_uid.js +0 -0
  58. /package/{callables → virtual_machine/callables}/functions/hash.js +0 -0
  59. /package/{callables → virtual_machine/callables}/functions/import_.js +0 -0
  60. /package/{callables → virtual_machine/callables}/functions/local.js +0 -0
  61. /package/{callables → virtual_machine/callables}/functions/net.js +0 -0
  62. /package/{callables → virtual_machine/callables}/functions/parse.js +0 -0
  63. /package/{callables → virtual_machine/callables}/functions/render.js +0 -0
  64. /package/{callables → virtual_machine/callables}/functions/servers.js +0 -0
  65. /package/{callables → virtual_machine/callables}/functions/spawn.js +0 -0
  66. /package/{callables → virtual_machine/callables}/functions/store.js +0 -0
  67. /package/{callables → virtual_machine/callables}/functions/super_.js +0 -0
  68. /package/{callables → virtual_machine/callables}/functions/twain.js +0 -0
  69. /package/{callables → virtual_machine/callables}/functions/typeof.js +0 -0
  70. /package/{callables → virtual_machine/callables}/register.js +0 -0
  71. /package/{utils → virtual_machine/utils}/create_server.js +0 -0
  72. /package/{utils → virtual_machine/utils}/functions.js +0 -0
  73. /package/{utils → virtual_machine/utils}/hash.js +0 -0
  74. /package/{utils → virtual_machine/utils}/ops.js +0 -0
  75. /package/{utils → virtual_machine/utils}/oracle_handlers.js +0 -0
  76. /package/{utils → virtual_machine/utils}/server.cert +0 -0
  77. /package/{utils → virtual_machine/utils}/server.key +0 -0
  78. /package/{utils → virtual_machine/utils}/services.js +0 -0
  79. /package/{utils → virtual_machine/utils}/socket_server.js +0 -0
  80. /package/{utils → virtual_machine/utils}/vm_utils.js +0 -0
@@ -1,125 +1,125 @@
1
- import create from "./create.js";
2
- import run from "./run.js";
3
- import load from "./load.js";
4
- import parse from "./parse.js";
5
-
6
- let routes = ["create_account", "load", "run", "parse"];
7
-
8
- const forms = (route, manager) => {
9
- let pair = {
10
- create_account: create,
11
- load,
12
- run,
13
- parse,
14
- };
15
- let rt = pair[route];
16
- if (rt) return rt(manager);
17
-
18
- return "";
19
- };
20
-
21
- const header_script = (manager) => {
22
- let domain = manager.options.server_domain;
23
- if (domain.startsWith("127")) domain = `http://${domain}`;
24
- else domain = `https://${domain}`;
25
-
26
- return ` let ftch = async(path, body)=>{
27
- try{
28
- let fch = await fetch("${domain}".concat(path), {
29
- method: 'POST',
30
- header: {
31
- 'Content-Type': 'application/json',
32
- Accept: 'application/json'
33
- },
34
- body: JSON.stringify(body)
35
- })
36
- let response = await fch.json()
37
- return response;
38
- }catch(e){
39
- console.log(e)
40
- return {message: e.message}
41
- }
42
- }`;
43
- };
44
-
45
- const header = (route) => {
46
- let tml = `<nav class="navbar navbar-expand-lg navbar-light bg-light shadow-sm">
47
- <div class="container">
48
- <a class="navbar-brand fw-bold" href="/">GODPROTOCOL</a>
49
- <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"
50
- aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
51
- <span class="navbar-toggler-icon"></span>
52
- </button>
53
-
54
- <div class="collapse navbar-collapse justify-content-center" id="navbarNav">
55
- <ul class="navbar-nav" id="nav-list">
56
- `;
57
-
58
- routes.map((r) => {
59
- tml = `${tml}<li class='nav-item'><a href='/${r}' class="nav-link text-capitalize ${
60
- route === r ? "active text-danger fw-bold" : ""
61
- }">${r.replace(/_/g, " ")}</a></li>`;
62
- });
63
-
64
- tml = `${tml}</ul>
65
- </div>
66
- </div>
67
- </nav>`;
68
-
69
- return tml;
70
- };
71
-
72
- const footer = (route) => {
73
- let yr = new Date().getFullYear();
74
- let tml = `<footer class="mt-auto py-3 bg-light text-center">
75
- <div class="container">
76
- <p class="mb-1">
77
- Made with <i class="bi bi-heart-fill text-danger"></i> by
78
- <a target="_blank" href="https://github.com/immanuel-savvy">Savvy</a>.
79
- </p>
80
- <small>
81
- Airditor beta version 0.0.1 — Released under the <a target="_blank" href="https://opensource.org/licenses/MIT">MIT License</a>. &copy
82
- <span id="year">${2025 - yr !== 0 ? `${2025} - ${yr}` : yr}</span>
83
- </small>
84
- </div>
85
- </footer>`;
86
-
87
- return tml;
88
- };
89
-
90
- const set_page = (route, manager) => {
91
- let title = `GODPROTOCOL`;
92
- let init_acc = manager.options.init_account;
93
- if (init_acc) {
94
- title = `${init_acc.name} - ${title}`;
95
- }
96
- let tml = `
97
- <html>
98
- <head>
99
- <meta charset="UTF-8">
100
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
101
- <title>GodProtocol</title>
102
- <!-- Bootstrap 5 CDN -->
103
- <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
104
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.css">
105
-
106
- </head>
107
-
108
- <body class="d-flex flex-column min-vh-100"><div class="container text-center my-5"><h1 id='page-title' class='mb-4'>${title}</h1>`;
109
-
110
- tml = `${tml}${header(route)}`;
111
-
112
- tml = `${tml}<script>${header_script(manager)}</script>`;
113
-
114
- if (route !== "") {
115
- tml = `${tml}${forms(route, manager)}`;
116
- }
117
-
118
- tml = `${tml}${footer(route)}`;
119
- tml = `${tml}<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script></div></body> </html>
120
- `;
121
-
122
- return tml;
123
- };
124
-
125
- export { set_page };
1
+ import create from "./create.js";
2
+ import run from "./run.js";
3
+ import load from "./load.js";
4
+ import parse from "./parse.js";
5
+
6
+ let routes = ["create_account", "load", "run", "parse"];
7
+
8
+ const forms = (route, manager) => {
9
+ let pair = {
10
+ create_account: create,
11
+ load,
12
+ run,
13
+ parse,
14
+ };
15
+ let rt = pair[route];
16
+ if (rt) return rt(manager);
17
+
18
+ return "";
19
+ };
20
+
21
+ const header_script = (manager) => {
22
+ let domain = manager.options.server_domain;
23
+ if (domain.startsWith("127")) domain = `http://${domain}`;
24
+ else domain = `https://${domain}`;
25
+
26
+ return ` let ftch = async(path, body)=>{
27
+ try{
28
+ let fch = await fetch("${domain}".concat(path), {
29
+ method: 'POST',
30
+ header: {
31
+ 'Content-Type': 'application/json',
32
+ Accept: 'application/json'
33
+ },
34
+ body: JSON.stringify(body)
35
+ })
36
+ let response = await fch.json()
37
+ return response;
38
+ }catch(e){
39
+ console.log(e)
40
+ return {message: e.message}
41
+ }
42
+ }`;
43
+ };
44
+
45
+ const header = (route) => {
46
+ let tml = `<nav class="navbar navbar-expand-lg navbar-light bg-light shadow-sm">
47
+ <div class="container">
48
+ <a class="navbar-brand fw-bold" href="/">GODPROTOCOL</a>
49
+ <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"
50
+ aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
51
+ <span class="navbar-toggler-icon"></span>
52
+ </button>
53
+
54
+ <div class="collapse navbar-collapse justify-content-center" id="navbarNav">
55
+ <ul class="navbar-nav" id="nav-list">
56
+ `;
57
+
58
+ routes.map((r) => {
59
+ tml = `${tml}<li class='nav-item'><a href='/${r}' class="nav-link text-capitalize ${
60
+ route === r ? "active text-danger fw-bold" : ""
61
+ }">${r.replace(/_/g, " ")}</a></li>`;
62
+ });
63
+
64
+ tml = `${tml}</ul>
65
+ </div>
66
+ </div>
67
+ </nav>`;
68
+
69
+ return tml;
70
+ };
71
+
72
+ const footer = (route) => {
73
+ let yr = new Date().getFullYear();
74
+ let tml = `<footer class="mt-auto py-3 bg-light text-center">
75
+ <div class="container">
76
+ <p class="mb-1">
77
+ Made with <i class="bi bi-heart-fill text-danger"></i> by
78
+ <a target="_blank" href="https://github.com/immanuel-savvy">Savvy</a>.
79
+ </p>
80
+ <small>
81
+ Airditor beta version 0.0.1 — Released under the <a target="_blank" href="https://opensource.org/licenses/MIT">MIT License</a>. &copy
82
+ <span id="year">${2025 - yr !== 0 ? `${2025} - ${yr}` : yr}</span>
83
+ </small>
84
+ </div>
85
+ </footer>`;
86
+
87
+ return tml;
88
+ };
89
+
90
+ const set_page = (route, manager) => {
91
+ let title = `GODPROTOCOL`;
92
+ let init_acc = manager.options.init_account;
93
+ if (init_acc) {
94
+ title = `${init_acc.name} - ${title}`;
95
+ }
96
+ let tml = `
97
+ <html>
98
+ <head>
99
+ <meta charset="UTF-8">
100
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
101
+ <title>GodProtocol</title>
102
+ <!-- Bootstrap 5 CDN -->
103
+ <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
104
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.css">
105
+
106
+ </head>
107
+
108
+ <body class="d-flex flex-column min-vh-100"><div class="container text-center my-5"><h1 id='page-title' class='mb-4'>${title}</h1>`;
109
+
110
+ tml = `${tml}${header(route)}`;
111
+
112
+ tml = `${tml}<script>${header_script(manager)}</script>`;
113
+
114
+ if (route !== "") {
115
+ tml = `${tml}${forms(route, manager)}`;
116
+ }
117
+
118
+ tml = `${tml}${footer(route)}`;
119
+ tml = `${tml}<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script></div></body> </html>
120
+ `;
121
+
122
+ return tml;
123
+ };
124
+
125
+ export { set_page };
@@ -1,166 +1,166 @@
1
- const script = (manager) => {
2
- return `
3
- const account_selection_el = document.getElementById('account_selection'), address_el = document.getElementById('address'),
4
- sequence_el = document.getElementById('sequence'),
5
- id_el = document.getElementById('ID'),
6
- should_compile = document.getElementById('should_compile'), load = document.getElementById('load'), retrieve_code = document.getElementById('retrieve_code')
7
-
8
- sequence_el.addEventListener('keyup', e=>{
9
- retrieve_code.textContent = 'Retrieve'
10
- })
11
- should_compile.addEventListener('click', e=>{
12
- let message_box = document.getElementById('message-box')
13
-
14
- document.getElementById('sequence_label').textContent = e.target.checked ? 'Code' : 'Sequence'
15
- retrieve_code.style.visibility = e.target.checked ? 'visible' : 'hidden'
16
- })
17
-
18
- retrieve_code.addEventListener('click', async e=>{
19
- e.preventDefault()
20
-
21
- let account = account_selection_el.selectedIndex
22
- console.log(account)
23
-
24
- if (!account){
25
- message_box.innerHTML = 'Provide an account, or <a href="https://${manager.options.server_domain}/create_account">create one here</a>'
26
-
27
- setTimeout(() => {
28
- message_box.textContent = ''
29
- }, 2500);
30
- return;
31
- }
32
-
33
- let account_uid = account_selection_el.children[account].id
34
-
35
- e.target.value = 'Retrieving...'
36
- let code = await ftch("/parse", {
37
- address: address_el.value,
38
- from: '.codes',
39
- account: account_uid,
40
- account_name: account_selection_el.children[account].value
41
- })
42
- console.log(code, 'uhhh')
43
- if (code.result){
44
- sequence_el.value = code.result;
45
- e.target.textContent = 'Retrieve'
46
- }else e.target.textContent = code.message
47
- })
48
-
49
- let message_box = document.getElementById('message-box')
50
-
51
- document.addEventListener('DOMContentLoaded', e=>{
52
- let accs = sessionStorage.getItem('accounts')
53
- if (!accs) return;
54
-
55
- let tml = '<option default>--Select Account--</option>'
56
- if (accs){
57
- accs = JSON.parse(accs)
58
- accs.map(acc=>{
59
- let el = document.createElement('option')
60
- el.id = acc.uid
61
- el.value = acc.uid
62
- el.textContent = acc.name
63
-
64
- account_selection_el.appendChild(el)
65
- })
66
- }
67
- })
68
-
69
- load.addEventListener('click', e=>{
70
- e.preventDefault();
71
-
72
- let id = id_el.value.trim(), address = address_el.value.trim(), sequence = sequence_el.value.trim(), account = account_selection_el.selectedIndex, compiler = should_compile.checked;
73
-
74
- if (!account){
75
- message_box.innerHTML = 'Provide an account, or <a href="https://${manager.options.server_domain}/create_account">create one here</a>'
76
-
77
- setTimeout(() => {
78
- message_box.textContent = ''
79
- }, 2500);
80
- return;
81
- }
82
-
83
- let account_uid = account_selection_el.children[account].id
84
- if (!address || !sequence){
85
- message_box.textContent = 'Please completely fill all form fields.'
86
-
87
- setTimeout(() => {
88
- message_box.textContent = ''
89
- }, 2500);
90
- return;
91
- }
92
-
93
- let data = {
94
- _id: id, address, sequence, compiler, account: account_uid, account_name: account_selection_el.children[account].value
95
- }
96
-
97
- ftch('/load', data)
98
- .then(res=>{
99
- console.log(res)
100
- message_box.textContent = res.done ? 'Sequence loaded successfully! - ' + res.datapath : res.message
101
- return;
102
- }).catch(err=>console.log(err))
103
-
104
- }) `;
105
- };
106
-
107
- const load = (manager) => {
108
- let tml = `<!-- Container for the Load form -->
109
- <div class="container my-5">
110
- <div class="row justify-content-center">
111
- <div class="col-md-8">
112
- <form id="load-form" class="card p-4 shadow-sm">
113
- <h4 class="mb-4 text-center">Load</h4>
114
-
115
- <!-- Account Selection -->
116
- <div class="mb-3">
117
- <label for="account_selection" class="form-label">Account</label>
118
- <select id="account_selection" class="form-select" required>
119
- <option selected disabled>-- Select Account --</option>
120
- <!-- Options will be injected via JS -->
121
- </select>
122
- </div>
123
-
124
- <!-- Address -->
125
- <div class="mb-3">
126
- <label for="address" class="form-label">Address</label>
127
- <input type="text" class="form-control" id="address" placeholder="Address" required>
128
- </div>
129
-
130
- <!-- ID (Optional) -->
131
- <div class="mb-3">
132
- <label for="ID" class="form-label">ID (optional)</label>
133
- <input type="text" class="form-control" id="ID" placeholder="ID">
134
- </div>
135
-
136
- <!-- Sequence -->
137
- <div class="mb-3">
138
- <label for="sequence" class="form-label">Code</label>
139
- <a href="#" id="retrieve_code" class="ms-2 fst-italic fw-bold">Retrieve</a>
140
- <textarea class="form-control mt-2" id="sequence" rows="4" placeholder="Sequence"></textarea>
141
- </div>
142
-
143
- <!-- Compile Option -->
144
- <div class="form-check mb-3">
145
- <input class="form-check-input" type="checkbox" id="should_compile" checked>
146
- <label class="form-check-label" for="should_compile">Should compile</label>
147
- </div>
148
-
149
- <!-- Submit Button -->
150
- <div class="d-grid">
151
- <button type="submit" class="btn btn-success" id="load">Send</button>
152
- </div>
153
- </form>
154
-
155
- <!-- Message box -->
156
- <div id="message-box" class="mt-3"></div>
157
- </div>
158
- </div>
159
- </div>`;
160
-
161
- tml = `${tml} <script>${script(manager)}</script>`;
162
-
163
- return tml;
164
- };
165
-
166
- export default load;
1
+ const script = (manager) => {
2
+ return `
3
+ const account_selection_el = document.getElementById('account_selection'), address_el = document.getElementById('address'),
4
+ sequence_el = document.getElementById('sequence'),
5
+ id_el = document.getElementById('ID'),
6
+ should_compile = document.getElementById('should_compile'), load = document.getElementById('load'), retrieve_code = document.getElementById('retrieve_code')
7
+
8
+ sequence_el.addEventListener('keyup', e=>{
9
+ retrieve_code.textContent = 'Retrieve'
10
+ })
11
+ should_compile.addEventListener('click', e=>{
12
+ let message_box = document.getElementById('message-box')
13
+
14
+ document.getElementById('sequence_label').textContent = e.target.checked ? 'Code' : 'Sequence'
15
+ retrieve_code.style.visibility = e.target.checked ? 'visible' : 'hidden'
16
+ })
17
+
18
+ retrieve_code.addEventListener('click', async e=>{
19
+ e.preventDefault()
20
+
21
+ let account = account_selection_el.selectedIndex
22
+ console.log(account)
23
+
24
+ if (!account){
25
+ message_box.innerHTML = 'Provide an account, or <a href="https://${manager.options.server_domain}/create_account">create one here</a>'
26
+
27
+ setTimeout(() => {
28
+ message_box.textContent = ''
29
+ }, 2500);
30
+ return;
31
+ }
32
+
33
+ let account_uid = account_selection_el.children[account].id
34
+
35
+ e.target.value = 'Retrieving...'
36
+ let code = await ftch("/parse", {
37
+ address: address_el.value,
38
+ from: '.codes',
39
+ account: account_uid,
40
+ account_name: account_selection_el.children[account].value
41
+ })
42
+ console.log(code, 'uhhh')
43
+ if (code.result){
44
+ sequence_el.value = code.result;
45
+ e.target.textContent = 'Retrieve'
46
+ }else e.target.textContent = code.message
47
+ })
48
+
49
+ let message_box = document.getElementById('message-box')
50
+
51
+ document.addEventListener('DOMContentLoaded', e=>{
52
+ let accs = sessionStorage.getItem('accounts')
53
+ if (!accs) return;
54
+
55
+ let tml = '<option default>--Select Account--</option>'
56
+ if (accs){
57
+ accs = JSON.parse(accs)
58
+ accs.map(acc=>{
59
+ let el = document.createElement('option')
60
+ el.id = acc.uid
61
+ el.value = acc.uid
62
+ el.textContent = acc.name
63
+
64
+ account_selection_el.appendChild(el)
65
+ })
66
+ }
67
+ })
68
+
69
+ load.addEventListener('click', e=>{
70
+ e.preventDefault();
71
+
72
+ let id = id_el.value.trim(), address = address_el.value.trim(), sequence = sequence_el.value.trim(), account = account_selection_el.selectedIndex, compiler = should_compile.checked;
73
+
74
+ if (!account){
75
+ message_box.innerHTML = 'Provide an account, or <a href="https://${manager.options.server_domain}/create_account">create one here</a>'
76
+
77
+ setTimeout(() => {
78
+ message_box.textContent = ''
79
+ }, 2500);
80
+ return;
81
+ }
82
+
83
+ let account_uid = account_selection_el.children[account].id
84
+ if (!address || !sequence){
85
+ message_box.textContent = 'Please completely fill all form fields.'
86
+
87
+ setTimeout(() => {
88
+ message_box.textContent = ''
89
+ }, 2500);
90
+ return;
91
+ }
92
+
93
+ let data = {
94
+ _id: id, address, sequence, compiler, account: account_uid, account_name: account_selection_el.children[account].value
95
+ }
96
+
97
+ ftch('/load', data)
98
+ .then(res=>{
99
+ console.log(res)
100
+ message_box.textContent = res.done ? 'Sequence loaded successfully! - ' + res.datapath : res.message
101
+ return;
102
+ }).catch(err=>console.log(err))
103
+
104
+ }) `;
105
+ };
106
+
107
+ const load = (manager) => {
108
+ let tml = `<!-- Container for the Load form -->
109
+ <div class="container my-5">
110
+ <div class="row justify-content-center">
111
+ <div class="col-md-8">
112
+ <form id="load-form" class="card p-4 shadow-sm">
113
+ <h4 class="mb-4 text-center">Load</h4>
114
+
115
+ <!-- Account Selection -->
116
+ <div class="mb-3">
117
+ <label for="account_selection" class="form-label">Account</label>
118
+ <select id="account_selection" class="form-select" required>
119
+ <option selected disabled>-- Select Account --</option>
120
+ <!-- Options will be injected via JS -->
121
+ </select>
122
+ </div>
123
+
124
+ <!-- Address -->
125
+ <div class="mb-3">
126
+ <label for="address" class="form-label">Address</label>
127
+ <input type="text" class="form-control" id="address" placeholder="Address" required>
128
+ </div>
129
+
130
+ <!-- ID (Optional) -->
131
+ <div class="mb-3">
132
+ <label for="ID" class="form-label">ID (optional)</label>
133
+ <input type="text" class="form-control" id="ID" placeholder="ID">
134
+ </div>
135
+
136
+ <!-- Sequence -->
137
+ <div class="mb-3">
138
+ <label for="sequence" class="form-label">Code</label>
139
+ <a href="#" id="retrieve_code" class="ms-2 fst-italic fw-bold">Retrieve</a>
140
+ <textarea class="form-control mt-2" id="sequence" rows="4" placeholder="Sequence"></textarea>
141
+ </div>
142
+
143
+ <!-- Compile Option -->
144
+ <div class="form-check mb-3">
145
+ <input class="form-check-input" type="checkbox" id="should_compile" checked>
146
+ <label class="form-check-label" for="should_compile">Should compile</label>
147
+ </div>
148
+
149
+ <!-- Submit Button -->
150
+ <div class="d-grid">
151
+ <button type="submit" class="btn btn-success" id="load">Send</button>
152
+ </div>
153
+ </form>
154
+
155
+ <!-- Message box -->
156
+ <div id="message-box" class="mt-3"></div>
157
+ </div>
158
+ </div>
159
+ </div>`;
160
+
161
+ tml = `${tml} <script>${script(manager)}</script>`;
162
+
163
+ return tml;
164
+ };
165
+
166
+ export default load;