eny-ai 1.0.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.
- package/LICENSE +18 -0
- package/README.md +740 -0
- package/dist/chunk-2WFUL4XJ.js +2476 -0
- package/dist/chunk-E4KJZEXX.js +274 -0
- package/dist/chunk-PNKVD2UK.js +26 -0
- package/dist/cli.cjs +2453 -0
- package/dist/cli.d.cts +1 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +100 -0
- package/dist/index.cjs +3235 -0
- package/dist/index.d.cts +704 -0
- package/dist/index.d.ts +704 -0
- package/dist/index.js +495 -0
- package/dist/react/index.cjs +342 -0
- package/dist/react/index.d.cts +751 -0
- package/dist/react/index.d.ts +751 -0
- package/dist/react/index.js +284 -0
- package/dist/symbols.cjs +324 -0
- package/dist/symbols.d.cts +584 -0
- package/dist/symbols.d.ts +584 -0
- package/dist/symbols.js +61 -0
- package/examples/README.md +13 -0
- package/examples/ia-demo.eny +37 -0
- package/examples/sample.eny +15 -0
- package/examples/simple/system.eny +7 -0
- package/examples/spec/sample.eny +19 -0
- package/examples/starter/README.md +96 -0
- package/examples/starter/main.eny +39 -0
- package/examples/starter/run.js +68 -0
- package/examples/starter.eny +16 -0
- package/examples/wasm-demo.eny +34 -0
- package/master.mid.ai +540 -0
- package/package.json +71 -0
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
import "../chunk-PNKVD2UK.js";
|
|
2
|
+
|
|
3
|
+
// src/react/index.ts
|
|
4
|
+
import { useState, useEffect, useReducer, useCallback, useRef, createElement } from "react";
|
|
5
|
+
function useStateSymbol(initial) {
|
|
6
|
+
return useState(initial);
|
|
7
|
+
}
|
|
8
|
+
function usePersistentState(key, initial) {
|
|
9
|
+
const [state, setState] = useState(() => {
|
|
10
|
+
if (typeof window === "undefined") return initial;
|
|
11
|
+
const stored = localStorage.getItem(key);
|
|
12
|
+
return stored ? JSON.parse(stored) : initial;
|
|
13
|
+
});
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
localStorage.setItem(key, JSON.stringify(state));
|
|
16
|
+
}, [key, state]);
|
|
17
|
+
return [state, setState];
|
|
18
|
+
}
|
|
19
|
+
function useReducerSymbol(reducer, initial) {
|
|
20
|
+
return useReducer(reducer, initial);
|
|
21
|
+
}
|
|
22
|
+
function useEffectSymbol(effectFn, deps) {
|
|
23
|
+
useEffect(effectFn, deps);
|
|
24
|
+
}
|
|
25
|
+
function useDebounce(value, delay) {
|
|
26
|
+
const [debounced, setDebounced] = useState(value);
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
const timer = setTimeout(() => setDebounced(value), delay);
|
|
29
|
+
return () => clearTimeout(timer);
|
|
30
|
+
}, [value, delay]);
|
|
31
|
+
return debounced;
|
|
32
|
+
}
|
|
33
|
+
function useInterval(callback, delay) {
|
|
34
|
+
const savedCallback = useRef(callback);
|
|
35
|
+
useEffect(() => {
|
|
36
|
+
savedCallback.current = callback;
|
|
37
|
+
}, [callback]);
|
|
38
|
+
useEffect(() => {
|
|
39
|
+
if (delay === null) return;
|
|
40
|
+
const id = setInterval(() => savedCallback.current(), delay);
|
|
41
|
+
return () => clearInterval(id);
|
|
42
|
+
}, [delay]);
|
|
43
|
+
}
|
|
44
|
+
function useFetch(url, options) {
|
|
45
|
+
const [state, setState] = useState({
|
|
46
|
+
data: null,
|
|
47
|
+
loading: true,
|
|
48
|
+
error: null
|
|
49
|
+
});
|
|
50
|
+
useEffect(() => {
|
|
51
|
+
let cancelled = false;
|
|
52
|
+
fetch(url, options).then((res) => res.json()).then((data) => {
|
|
53
|
+
if (!cancelled) setState({ data, loading: false, error: null });
|
|
54
|
+
}).catch((error) => {
|
|
55
|
+
if (!cancelled) setState({ data: null, loading: false, error });
|
|
56
|
+
});
|
|
57
|
+
return () => {
|
|
58
|
+
cancelled = true;
|
|
59
|
+
};
|
|
60
|
+
}, [url]);
|
|
61
|
+
return state;
|
|
62
|
+
}
|
|
63
|
+
function useGet(url) {
|
|
64
|
+
return useFetch(url);
|
|
65
|
+
}
|
|
66
|
+
function usePost(url) {
|
|
67
|
+
const [loading, setLoading] = useState(false);
|
|
68
|
+
const [error, setError] = useState(null);
|
|
69
|
+
const post = useCallback(async (body) => {
|
|
70
|
+
setLoading(true);
|
|
71
|
+
setError(null);
|
|
72
|
+
try {
|
|
73
|
+
const res = await fetch(url, {
|
|
74
|
+
method: "POST",
|
|
75
|
+
headers: { "Content-Type": "application/json" },
|
|
76
|
+
body: JSON.stringify(body)
|
|
77
|
+
});
|
|
78
|
+
const data = await res.json();
|
|
79
|
+
setLoading(false);
|
|
80
|
+
return data;
|
|
81
|
+
} catch (e) {
|
|
82
|
+
setError(e);
|
|
83
|
+
setLoading(false);
|
|
84
|
+
throw e;
|
|
85
|
+
}
|
|
86
|
+
}, [url]);
|
|
87
|
+
return { post, loading, error };
|
|
88
|
+
}
|
|
89
|
+
var storage = {
|
|
90
|
+
get: function getStorage(key) {
|
|
91
|
+
if (typeof window === "undefined") return null;
|
|
92
|
+
const item = localStorage.getItem(key);
|
|
93
|
+
return item ? JSON.parse(item) : null;
|
|
94
|
+
},
|
|
95
|
+
set: function setStorage(key, value) {
|
|
96
|
+
if (typeof window === "undefined") return;
|
|
97
|
+
localStorage.setItem(key, JSON.stringify(value));
|
|
98
|
+
},
|
|
99
|
+
remove: function removeStorage(key) {
|
|
100
|
+
if (typeof window === "undefined") return;
|
|
101
|
+
localStorage.removeItem(key);
|
|
102
|
+
},
|
|
103
|
+
clear: function clearStorage() {
|
|
104
|
+
if (typeof window === "undefined") return;
|
|
105
|
+
localStorage.clear();
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
var sessionStore = {
|
|
109
|
+
get: function getSession(key) {
|
|
110
|
+
if (typeof window === "undefined") return null;
|
|
111
|
+
const item = sessionStorage.getItem(key);
|
|
112
|
+
return item ? JSON.parse(item) : null;
|
|
113
|
+
},
|
|
114
|
+
set: function setSession(key, value) {
|
|
115
|
+
if (typeof window === "undefined") return;
|
|
116
|
+
sessionStorage.setItem(key, JSON.stringify(value));
|
|
117
|
+
},
|
|
118
|
+
remove: function removeSession(key) {
|
|
119
|
+
if (typeof window === "undefined") return;
|
|
120
|
+
sessionStorage.removeItem(key);
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
var nav = {
|
|
124
|
+
to: (path) => {
|
|
125
|
+
if (typeof window !== "undefined") {
|
|
126
|
+
window.location.href = path;
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
back: () => {
|
|
130
|
+
if (typeof window !== "undefined") {
|
|
131
|
+
window.history.back();
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
reload: () => {
|
|
135
|
+
if (typeof window !== "undefined") {
|
|
136
|
+
window.location.reload();
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
params: () => {
|
|
140
|
+
if (typeof window === "undefined") return new URLSearchParams();
|
|
141
|
+
return new URLSearchParams(window.location.search);
|
|
142
|
+
},
|
|
143
|
+
hash: () => {
|
|
144
|
+
if (typeof window === "undefined") return "";
|
|
145
|
+
return window.location.hash;
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
function mapArr(arr, fn) {
|
|
149
|
+
return arr.map(fn);
|
|
150
|
+
}
|
|
151
|
+
function filterArr(arr, fn) {
|
|
152
|
+
return arr.filter(fn);
|
|
153
|
+
}
|
|
154
|
+
function reduceArr(arr, fn, initial) {
|
|
155
|
+
return arr.reduce(fn, initial);
|
|
156
|
+
}
|
|
157
|
+
function findArr(arr, fn) {
|
|
158
|
+
return arr.find(fn);
|
|
159
|
+
}
|
|
160
|
+
function everyArr(arr, fn) {
|
|
161
|
+
return arr.every(fn);
|
|
162
|
+
}
|
|
163
|
+
function someArr(arr, fn) {
|
|
164
|
+
return arr.some(fn);
|
|
165
|
+
}
|
|
166
|
+
function Card({ children, className = "", ...props }) {
|
|
167
|
+
return createElement("div", { className: `card ${className}`, ...props }, children);
|
|
168
|
+
}
|
|
169
|
+
function Btn({ children, variant = "primary", className = "", ...props }) {
|
|
170
|
+
return createElement("button", { className: `btn btn-${variant} ${className}`, ...props }, children);
|
|
171
|
+
}
|
|
172
|
+
function Input({ label, className = "", ...props }) {
|
|
173
|
+
return createElement(
|
|
174
|
+
"div",
|
|
175
|
+
{ className: "input-wrapper" },
|
|
176
|
+
label ? createElement("label", null, label) : null,
|
|
177
|
+
createElement("input", { className: `input ${className}`, ...props })
|
|
178
|
+
);
|
|
179
|
+
}
|
|
180
|
+
function Modal({ open, onClose, children }) {
|
|
181
|
+
if (!open) return null;
|
|
182
|
+
return createElement(
|
|
183
|
+
"div",
|
|
184
|
+
{ className: "modal-overlay", onClick: onClose },
|
|
185
|
+
createElement("div", { className: "modal-content", onClick: (e) => e.stopPropagation() }, children)
|
|
186
|
+
);
|
|
187
|
+
}
|
|
188
|
+
function Spinner({ size = 24 }) {
|
|
189
|
+
return createElement("div", { className: "spinner", style: { width: size, height: size } });
|
|
190
|
+
}
|
|
191
|
+
function Badge({ children, variant = "default" }) {
|
|
192
|
+
return createElement("span", { className: `badge badge-${variant}` }, children);
|
|
193
|
+
}
|
|
194
|
+
var Sigma = useStateSymbol;
|
|
195
|
+
var SigmaPersist = usePersistentState;
|
|
196
|
+
var sigma = useReducerSymbol;
|
|
197
|
+
var bolt = useEffectSymbol;
|
|
198
|
+
var swap = useFetch;
|
|
199
|
+
var swapGet = useGet;
|
|
200
|
+
var swapPost = usePost;
|
|
201
|
+
var mem = storage;
|
|
202
|
+
var memSession = sessionStore;
|
|
203
|
+
var compass = nav;
|
|
204
|
+
var arrMap = mapArr;
|
|
205
|
+
var arrFilter = filterArr;
|
|
206
|
+
var react_default = {
|
|
207
|
+
// Hooks
|
|
208
|
+
useStateSymbol,
|
|
209
|
+
usePersistentState,
|
|
210
|
+
useReducerSymbol,
|
|
211
|
+
useEffectSymbol,
|
|
212
|
+
useDebounce,
|
|
213
|
+
useInterval,
|
|
214
|
+
useFetch,
|
|
215
|
+
useGet,
|
|
216
|
+
usePost,
|
|
217
|
+
// Helpers
|
|
218
|
+
storage,
|
|
219
|
+
sessionStore,
|
|
220
|
+
nav,
|
|
221
|
+
mapArr,
|
|
222
|
+
filterArr,
|
|
223
|
+
reduceArr,
|
|
224
|
+
findArr,
|
|
225
|
+
everyArr,
|
|
226
|
+
someArr,
|
|
227
|
+
// Components
|
|
228
|
+
Card,
|
|
229
|
+
Btn,
|
|
230
|
+
Input,
|
|
231
|
+
Modal,
|
|
232
|
+
Spinner,
|
|
233
|
+
Badge,
|
|
234
|
+
// Aliases
|
|
235
|
+
Sigma,
|
|
236
|
+
SigmaPersist,
|
|
237
|
+
sigma,
|
|
238
|
+
bolt,
|
|
239
|
+
swap,
|
|
240
|
+
swapGet,
|
|
241
|
+
swapPost,
|
|
242
|
+
mem,
|
|
243
|
+
memSession,
|
|
244
|
+
compass
|
|
245
|
+
};
|
|
246
|
+
export {
|
|
247
|
+
Badge,
|
|
248
|
+
Btn,
|
|
249
|
+
Card,
|
|
250
|
+
Input,
|
|
251
|
+
Modal,
|
|
252
|
+
Sigma,
|
|
253
|
+
SigmaPersist,
|
|
254
|
+
Spinner,
|
|
255
|
+
arrFilter,
|
|
256
|
+
arrMap,
|
|
257
|
+
bolt,
|
|
258
|
+
compass,
|
|
259
|
+
react_default as default,
|
|
260
|
+
everyArr,
|
|
261
|
+
filterArr,
|
|
262
|
+
findArr,
|
|
263
|
+
mapArr,
|
|
264
|
+
mem,
|
|
265
|
+
memSession,
|
|
266
|
+
nav,
|
|
267
|
+
reduceArr,
|
|
268
|
+
sessionStore,
|
|
269
|
+
sigma,
|
|
270
|
+
someArr,
|
|
271
|
+
storage,
|
|
272
|
+
swap,
|
|
273
|
+
swapGet,
|
|
274
|
+
swapPost,
|
|
275
|
+
useDebounce,
|
|
276
|
+
useEffectSymbol,
|
|
277
|
+
useFetch,
|
|
278
|
+
useGet,
|
|
279
|
+
useInterval,
|
|
280
|
+
usePersistentState,
|
|
281
|
+
usePost,
|
|
282
|
+
useReducerSymbol,
|
|
283
|
+
useStateSymbol
|
|
284
|
+
};
|
package/dist/symbols.cjs
ADDED
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/symbols.ts
|
|
21
|
+
var symbols_exports = {};
|
|
22
|
+
__export(symbols_exports, {
|
|
23
|
+
ALPHABET: () => ALPHABET,
|
|
24
|
+
FALSE: () => FALSE,
|
|
25
|
+
NIL: () => NIL,
|
|
26
|
+
SYMBOLS: () => SYMBOLS,
|
|
27
|
+
TRANSPILE_MAP: () => TRANSPILE_MAP,
|
|
28
|
+
TRUE: () => TRUE,
|
|
29
|
+
VOID: () => VOID,
|
|
30
|
+
asyncFn: () => asyncFn,
|
|
31
|
+
component: () => component,
|
|
32
|
+
default: () => symbols_default,
|
|
33
|
+
effect: () => effect,
|
|
34
|
+
error: () => error,
|
|
35
|
+
filter: () => filter,
|
|
36
|
+
find: () => find,
|
|
37
|
+
fn: () => fn,
|
|
38
|
+
get: () => get,
|
|
39
|
+
log: () => log,
|
|
40
|
+
map: () => map,
|
|
41
|
+
navigate: () => navigate,
|
|
42
|
+
post: () => post,
|
|
43
|
+
reduce: () => reduce,
|
|
44
|
+
shape: () => shape,
|
|
45
|
+
state: () => state,
|
|
46
|
+
storageGet: () => storageGet,
|
|
47
|
+
storageSet: () => storageSet,
|
|
48
|
+
toSymbolic: () => toSymbolic,
|
|
49
|
+
transpileSymbols: () => transpileSymbols,
|
|
50
|
+
validate: () => validate
|
|
51
|
+
});
|
|
52
|
+
module.exports = __toCommonJS(symbols_exports);
|
|
53
|
+
var TRUE = true;
|
|
54
|
+
var FALSE = false;
|
|
55
|
+
var VOID = null;
|
|
56
|
+
var NIL = void 0;
|
|
57
|
+
var SYMBOLS = {
|
|
58
|
+
STATE: "\u03A3",
|
|
59
|
+
SUBSTATE: "\u03C3",
|
|
60
|
+
VOID: "\xD8",
|
|
61
|
+
TRUE: "\u22A4",
|
|
62
|
+
FALSE: "\u22A5",
|
|
63
|
+
LOCK: "\u{1F512}",
|
|
64
|
+
UNLOCK: "\u{1F513}",
|
|
65
|
+
STRING: "\u{1D54A}",
|
|
66
|
+
INTEGER: "\u2124",
|
|
67
|
+
REAL: "\u211D",
|
|
68
|
+
BOOLEAN: "\u{1D539}",
|
|
69
|
+
ARRAY: "\u{1D538}",
|
|
70
|
+
OBJECT: "\u{1D546}",
|
|
71
|
+
FUNCTION: "\u03BB",
|
|
72
|
+
PROMISE: "\u2119",
|
|
73
|
+
ANY: "\u229B",
|
|
74
|
+
NULL: "\u2205",
|
|
75
|
+
SHAPE: "\u25A0",
|
|
76
|
+
CLASS: "\u25CB",
|
|
77
|
+
INSTANCE: "\u25CF",
|
|
78
|
+
MODULE: "\u29C9",
|
|
79
|
+
FN: "\u0192",
|
|
80
|
+
LAMBDA: "\u03BB",
|
|
81
|
+
ASYNC: "\u03BB\u21C4",
|
|
82
|
+
MEMO: "\u03BB+",
|
|
83
|
+
ACTION: "\u0394",
|
|
84
|
+
EXEC: "\u2192",
|
|
85
|
+
IMPLIES: "\u21D2",
|
|
86
|
+
PARALLEL: "\u21C9",
|
|
87
|
+
ASSIGN: "\u2190",
|
|
88
|
+
DERIVE: "\u21D0",
|
|
89
|
+
NOT_EQUAL: "\u2260",
|
|
90
|
+
LTE: "\u2264",
|
|
91
|
+
GTE: "\u2265",
|
|
92
|
+
AND: "\u2227",
|
|
93
|
+
OR: "\u2228",
|
|
94
|
+
NOT: "\xAC",
|
|
95
|
+
MULT: "\xD7",
|
|
96
|
+
DIV: "\xF7",
|
|
97
|
+
MERGE: "\u2295",
|
|
98
|
+
IN: "\u2208",
|
|
99
|
+
UNION: "\u222A",
|
|
100
|
+
MAP: "\u21A6",
|
|
101
|
+
FILTER: "\u22B3",
|
|
102
|
+
REDUCE: "\u22B2",
|
|
103
|
+
FIND: "\u2299",
|
|
104
|
+
EVERY: "\u2200",
|
|
105
|
+
SOME: "\u2203",
|
|
106
|
+
EFFECT: "\u26A1",
|
|
107
|
+
EVENT: "\u25CC",
|
|
108
|
+
AWAIT: "\u21C4",
|
|
109
|
+
GET: "\u21C4 GET",
|
|
110
|
+
POST: "\u21C4 POST",
|
|
111
|
+
MEMORY: "\u{1D4DC}",
|
|
112
|
+
ROUTE: "\u{1F9ED}",
|
|
113
|
+
NAVIGATE: "\u{1F9ED}\u2192",
|
|
114
|
+
COMPONENT: "\u2610",
|
|
115
|
+
JSX_OPEN: "\u27E8",
|
|
116
|
+
JSX_CLOSE: "\u27E9",
|
|
117
|
+
PAGE: "\u2610.page",
|
|
118
|
+
CARD: "\u2610.card",
|
|
119
|
+
BTN: "\u2610.btn",
|
|
120
|
+
INPUT: "\u2610.input",
|
|
121
|
+
MODAL: "\u2610.modal",
|
|
122
|
+
SPINNER: "\u2610.spinner",
|
|
123
|
+
SECURITY: "\u{1F6E1}",
|
|
124
|
+
VALIDATE: "\u{1F6E1}!",
|
|
125
|
+
KEY: "\u{1F511}",
|
|
126
|
+
EVOLVE: "\u27F3",
|
|
127
|
+
AI: "\u03A8",
|
|
128
|
+
LOG: "\u{1F4DC}",
|
|
129
|
+
INTERVAL: "\u21BB",
|
|
130
|
+
IMPORT: "\u29C9",
|
|
131
|
+
EXPORT: "\u2191"
|
|
132
|
+
};
|
|
133
|
+
var TRANSPILE_MAP = {
|
|
134
|
+
"\u03A3[": "const [",
|
|
135
|
+
"\xD8": "null",
|
|
136
|
+
"\u22A4": "true",
|
|
137
|
+
"\u22A5": "false",
|
|
138
|
+
"\u{1D54A}": "string",
|
|
139
|
+
"\u2124": "number",
|
|
140
|
+
"\u211D": "number",
|
|
141
|
+
"\u{1D539}": "boolean",
|
|
142
|
+
"\u{1D538}": "Array",
|
|
143
|
+
"\u{1D546}": "object",
|
|
144
|
+
"\u03BB": "() =>",
|
|
145
|
+
"\u2119": "Promise",
|
|
146
|
+
"\u25A0": "interface",
|
|
147
|
+
"\u25CB": "class",
|
|
148
|
+
"\u25CF": "new",
|
|
149
|
+
"\u0192": "function",
|
|
150
|
+
"\u2192": "=>",
|
|
151
|
+
"\u21D2": "?",
|
|
152
|
+
"\u21C9": "Promise.all",
|
|
153
|
+
"\u2190": "=",
|
|
154
|
+
"\u2260": "!==",
|
|
155
|
+
"\u2264": "<=",
|
|
156
|
+
"\u2265": ">=",
|
|
157
|
+
"\u2227": "&&",
|
|
158
|
+
"\u2228": "||",
|
|
159
|
+
"\xAC": "!",
|
|
160
|
+
"\xD7": "*",
|
|
161
|
+
"\xF7": "/",
|
|
162
|
+
"\u21A6": ".map(",
|
|
163
|
+
"\u22B3": ".filter(",
|
|
164
|
+
"\u22B2": ".reduce(",
|
|
165
|
+
"\u2299": ".find(",
|
|
166
|
+
"\u2200": ".every(",
|
|
167
|
+
"\u2203": ".some(",
|
|
168
|
+
"\u26A1[]": "useEffect(() => {",
|
|
169
|
+
"\u25CC.click": "onClick",
|
|
170
|
+
"\u25CC.change": "onChange",
|
|
171
|
+
"\u25CC.submit": "onSubmit",
|
|
172
|
+
"\u21C4": "await",
|
|
173
|
+
"\u21C4 GET": "await fetch(",
|
|
174
|
+
"\u{1D4DC}[": "localStorage.getItem(",
|
|
175
|
+
"\u{1D4DC}\u2190": "localStorage.setItem(",
|
|
176
|
+
"\u{1F9ED}\u2192": "navigate(",
|
|
177
|
+
"\u2610": "function Component",
|
|
178
|
+
"\u27E8": "<",
|
|
179
|
+
"\u27E9": ">",
|
|
180
|
+
"\u{1F4DC}": "console.log(",
|
|
181
|
+
"\u26D4": "throw new Error(",
|
|
182
|
+
"\u21BB": "setInterval("
|
|
183
|
+
};
|
|
184
|
+
function transpileSymbols(code) {
|
|
185
|
+
let result = code;
|
|
186
|
+
const sortedKeys = Object.keys(TRANSPILE_MAP).sort((a, b) => b.length - a.length);
|
|
187
|
+
for (const symbol of sortedKeys) {
|
|
188
|
+
result = result.split(symbol).join(TRANSPILE_MAP[symbol]);
|
|
189
|
+
}
|
|
190
|
+
return result;
|
|
191
|
+
}
|
|
192
|
+
function toSymbolic(code) {
|
|
193
|
+
let result = code;
|
|
194
|
+
const inverseMap = {};
|
|
195
|
+
for (const [symbol, js] of Object.entries(TRANSPILE_MAP)) {
|
|
196
|
+
inverseMap[js] = symbol;
|
|
197
|
+
}
|
|
198
|
+
const sortedKeys = Object.keys(inverseMap).sort((a, b) => b.length - a.length);
|
|
199
|
+
for (const js of sortedKeys) {
|
|
200
|
+
result = result.split(js).join(inverseMap[js]);
|
|
201
|
+
}
|
|
202
|
+
return result;
|
|
203
|
+
}
|
|
204
|
+
var state = (name, initial) => `const [${name}, set${name.charAt(0).toUpperCase() + name.slice(1)}] = useState(${JSON.stringify(initial)});`;
|
|
205
|
+
var effect = (body, deps = []) => `useEffect(() => { ${body} }, [${deps.join(", ")}]);`;
|
|
206
|
+
var fn = (name, params, body) => `function ${name}(${params.join(", ")}) { ${body} }`;
|
|
207
|
+
var asyncFn = (name, params, body) => `async function ${name}(${params.join(", ")}) { ${body} }`;
|
|
208
|
+
var component = (name, body) => `function ${name}() { ${body} }`;
|
|
209
|
+
var shape = (name, fields) => {
|
|
210
|
+
const fieldStrs = Object.entries(fields).map(([k, v]) => ` ${k}: ${v};`).join("\n");
|
|
211
|
+
return `interface ${name} {
|
|
212
|
+
${fieldStrs}
|
|
213
|
+
}`;
|
|
214
|
+
};
|
|
215
|
+
var get = (url) => `await fetch(${JSON.stringify(url)}).then(r => r.json())`;
|
|
216
|
+
var post = (url, body) => `await fetch(${JSON.stringify(url)}, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(${body}) }).then(r => r.json())`;
|
|
217
|
+
var navigate = (path) => `navigate(${JSON.stringify(path)})`;
|
|
218
|
+
var map = (arr, cb) => `${arr}.map(${cb})`;
|
|
219
|
+
var filter = (arr, pred) => `${arr}.filter(${pred})`;
|
|
220
|
+
var reduce = (arr, red, init) => `${arr}.reduce(${red}, ${init})`;
|
|
221
|
+
var find = (arr, pred) => `${arr}.find(${pred})`;
|
|
222
|
+
var storageGet = (key) => `localStorage.getItem(${JSON.stringify(key)})`;
|
|
223
|
+
var storageSet = (key, val) => `localStorage.setItem(${JSON.stringify(key)}, JSON.stringify(${val}))`;
|
|
224
|
+
var validate = (schema, data) => `validate(${schema}, ${data})`;
|
|
225
|
+
var log = (msg) => `console.log(${msg})`;
|
|
226
|
+
var error = (msg) => `throw new Error(${JSON.stringify(msg)})`;
|
|
227
|
+
var ALPHABET = {
|
|
228
|
+
STATE: { symbol: "\u03A3", js: "useState", desc: "Estado global" },
|
|
229
|
+
SUBSTATE: { symbol: "\u03C3", js: "localState", desc: "Estado local" },
|
|
230
|
+
VOID: { symbol: "\xD8", js: "null", desc: "N\xE3o-exist\xEAncia" },
|
|
231
|
+
TRUE: { symbol: "\u22A4", js: "true", desc: "Verdadeiro" },
|
|
232
|
+
FALSE: { symbol: "\u22A5", js: "false", desc: "Falso" },
|
|
233
|
+
STRING: { symbol: "\u{1D54A}", js: "string", desc: "Texto" },
|
|
234
|
+
INTEGER: { symbol: "\u2124", js: "number", desc: "Inteiro" },
|
|
235
|
+
REAL: { symbol: "\u211D", js: "number", desc: "Real" },
|
|
236
|
+
BOOLEAN: { symbol: "\u{1D539}", js: "boolean", desc: "Booleano" },
|
|
237
|
+
ARRAY: { symbol: "\u{1D538}", js: "Array", desc: "Lista" },
|
|
238
|
+
OBJECT: { symbol: "\u{1D546}", js: "object", desc: "Objeto" },
|
|
239
|
+
FUNCTION: { symbol: "\u03BB", js: "() =>", desc: "Fun\xE7\xE3o" },
|
|
240
|
+
FN: { symbol: "\u0192", js: "function", desc: "Fun\xE7\xE3o nomeada" },
|
|
241
|
+
SHAPE: { symbol: "\u25A0", js: "interface", desc: "Interface" },
|
|
242
|
+
CLASS: { symbol: "\u25CB", js: "class", desc: "Classe" },
|
|
243
|
+
INSTANCE: { symbol: "\u25CF", js: "new", desc: "Inst\xE2ncia" },
|
|
244
|
+
EXEC: { symbol: "\u2192", js: "=>", desc: "Execu\xE7\xE3o" },
|
|
245
|
+
ASSIGN: { symbol: "\u2190", js: "=", desc: "Atribui\xE7\xE3o" },
|
|
246
|
+
AND: { symbol: "\u2227", js: "&&", desc: "E l\xF3gico" },
|
|
247
|
+
OR: { symbol: "\u2228", js: "||", desc: "Ou l\xF3gico" },
|
|
248
|
+
NOT: { symbol: "\xAC", js: "!", desc: "Nega\xE7\xE3o" },
|
|
249
|
+
MAP: { symbol: "\u21A6", js: ".map", desc: "Mapear" },
|
|
250
|
+
FILTER: { symbol: "\u22B3", js: ".filter", desc: "Filtrar" },
|
|
251
|
+
REDUCE: { symbol: "\u22B2", js: ".reduce", desc: "Reduzir" },
|
|
252
|
+
FIND: { symbol: "\u2299", js: ".find", desc: "Encontrar" },
|
|
253
|
+
EFFECT: { symbol: "\u26A1", js: "useEffect", desc: "Efeito" },
|
|
254
|
+
EVENT: { symbol: "\u25CC", js: "on", desc: "Evento" },
|
|
255
|
+
AWAIT: { symbol: "\u21C4", js: "await", desc: "Async" },
|
|
256
|
+
MEMORY: { symbol: "\u{1D4DC}", js: "localStorage", desc: "Storage" },
|
|
257
|
+
ROUTE: { symbol: "\u{1F9ED}", js: "router", desc: "Rota" },
|
|
258
|
+
NAVIGATE: { symbol: "\u{1F9ED}\u2192", js: "navigate", desc: "Navegar" },
|
|
259
|
+
COMPONENT: { symbol: "\u2610", js: "function", desc: "Componente" },
|
|
260
|
+
SECURITY: { symbol: "\u{1F6E1}", js: "security", desc: "Seguran\xE7a" },
|
|
261
|
+
EVOLVE: { symbol: "\u27F3", js: "evolve", desc: "Evoluir" },
|
|
262
|
+
AI: { symbol: "\u03A8", js: "ai", desc: "IA" },
|
|
263
|
+
LOG: { symbol: "\u{1F4DC}", js: "console.log", desc: "Log" },
|
|
264
|
+
INTERVAL: { symbol: "\u21BB", js: "setInterval", desc: "Intervalo" }
|
|
265
|
+
};
|
|
266
|
+
var symbols_default = {
|
|
267
|
+
SYMBOLS,
|
|
268
|
+
ALPHABET,
|
|
269
|
+
TRANSPILE_MAP,
|
|
270
|
+
transpileSymbols,
|
|
271
|
+
toSymbolic,
|
|
272
|
+
state,
|
|
273
|
+
effect,
|
|
274
|
+
fn,
|
|
275
|
+
asyncFn,
|
|
276
|
+
component,
|
|
277
|
+
shape,
|
|
278
|
+
get,
|
|
279
|
+
post,
|
|
280
|
+
navigate,
|
|
281
|
+
map,
|
|
282
|
+
filter,
|
|
283
|
+
reduce,
|
|
284
|
+
find,
|
|
285
|
+
storageGet,
|
|
286
|
+
storageSet,
|
|
287
|
+
validate,
|
|
288
|
+
log,
|
|
289
|
+
error,
|
|
290
|
+
TRUE,
|
|
291
|
+
FALSE,
|
|
292
|
+
VOID,
|
|
293
|
+
NIL
|
|
294
|
+
};
|
|
295
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
296
|
+
0 && (module.exports = {
|
|
297
|
+
ALPHABET,
|
|
298
|
+
FALSE,
|
|
299
|
+
NIL,
|
|
300
|
+
SYMBOLS,
|
|
301
|
+
TRANSPILE_MAP,
|
|
302
|
+
TRUE,
|
|
303
|
+
VOID,
|
|
304
|
+
asyncFn,
|
|
305
|
+
component,
|
|
306
|
+
effect,
|
|
307
|
+
error,
|
|
308
|
+
filter,
|
|
309
|
+
find,
|
|
310
|
+
fn,
|
|
311
|
+
get,
|
|
312
|
+
log,
|
|
313
|
+
map,
|
|
314
|
+
navigate,
|
|
315
|
+
post,
|
|
316
|
+
reduce,
|
|
317
|
+
shape,
|
|
318
|
+
state,
|
|
319
|
+
storageGet,
|
|
320
|
+
storageSet,
|
|
321
|
+
toSymbolic,
|
|
322
|
+
transpileSymbols,
|
|
323
|
+
validate
|
|
324
|
+
});
|