@garrix82/reactgenie-dsl 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/README.md +436 -0
- package/dist/__test__/dsl-descriptor.test.d.ts +1 -0
- package/dist/__test__/dsl-descriptor.test.js +27 -0
- package/dist/__test__/dsl-descriptor.test.js.map +1 -0
- package/dist/__test__/example_descriptor.d.ts +125 -0
- package/dist/__test__/example_descriptor.js +607 -0
- package/dist/__test__/example_descriptor.js.map +1 -0
- package/dist/__test__/food_descriptor.state.json +1 -0
- package/dist/__test__/food_descriptor.test.d.ts +74 -0
- package/dist/__test__/food_descriptor.test.js +205 -0
- package/dist/__test__/food_descriptor.test.js.map +1 -0
- package/dist/__test__/nl-interpreter-provider-selection.test.d.ts +1 -0
- package/dist/__test__/nl-interpreter-provider-selection.test.js +73 -0
- package/dist/__test__/nl-interpreter-provider-selection.test.js.map +1 -0
- package/dist/__test__/nl-interpreter.test.d.ts +1 -0
- package/dist/__test__/nl-interpreter.test.js +86 -0
- package/dist/__test__/nl-interpreter.test.js.map +1 -0
- package/dist/decorators/__test__/decorators.test.d.ts +1 -0
- package/dist/decorators/__test__/decorators.test.js +182 -0
- package/dist/decorators/__test__/decorators.test.js.map +1 -0
- package/dist/decorators/__test__/inheritance-descriptor.test.d.ts +1 -0
- package/dist/decorators/__test__/inheritance-descriptor.test.js +107 -0
- package/dist/decorators/__test__/inheritance-descriptor.test.js.map +1 -0
- package/dist/decorators/decorators.d.ts +20 -0
- package/dist/decorators/decorators.js +520 -0
- package/dist/decorators/decorators.js.map +1 -0
- package/dist/decorators/index.d.ts +2 -0
- package/dist/decorators/index.js +19 -0
- package/dist/decorators/index.js.map +1 -0
- package/dist/decorators/store.d.ts +12 -0
- package/dist/decorators/store.js +43 -0
- package/dist/decorators/store.js.map +1 -0
- package/dist/dsl/__test__/dsl-interpreter.test.d.ts +1 -0
- package/dist/dsl/__test__/dsl-interpreter.test.js +334 -0
- package/dist/dsl/__test__/dsl-interpreter.test.js.map +1 -0
- package/dist/dsl/__test__/parser.gen.test.d.ts +1 -0
- package/dist/dsl/__test__/parser.gen.test.js +283 -0
- package/dist/dsl/__test__/parser.gen.test.js.map +1 -0
- package/dist/dsl/dsl-interpreter.d.ts +66 -0
- package/dist/dsl/dsl-interpreter.js +767 -0
- package/dist/dsl/dsl-interpreter.js.map +1 -0
- package/dist/dsl/index.d.ts +1 -0
- package/dist/dsl/index.js +18 -0
- package/dist/dsl/index.js.map +1 -0
- package/dist/dsl/parser.gen.d.ts +10 -0
- package/dist/dsl/parser.gen.js +1524 -0
- package/dist/dsl/parser.gen.js.map +1 -0
- package/dist/dsl-descriptor.d.ts +75 -0
- package/dist/dsl-descriptor.js +151 -0
- package/dist/dsl-descriptor.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/nl/__test__/context-aware-prompt.test.d.ts +1 -0
- package/dist/nl/__test__/context-aware-prompt.test.js +247 -0
- package/dist/nl/__test__/context-aware-prompt.test.js.map +1 -0
- package/dist/nl/__test__/context-selector.test.d.ts +1 -0
- package/dist/nl/__test__/context-selector.test.js +20 -0
- package/dist/nl/__test__/context-selector.test.js.map +1 -0
- package/dist/nl/__test__/nl-parser-groq-transport.test.d.ts +1 -0
- package/dist/nl/__test__/nl-parser-groq-transport.test.js +87 -0
- package/dist/nl/__test__/nl-parser-groq-transport.test.js.map +1 -0
- package/dist/nl/__test__/nl-parser-openai-parity.test.d.ts +1 -0
- package/dist/nl/__test__/nl-parser-openai-parity.test.js +206 -0
- package/dist/nl/__test__/nl-parser-openai-parity.test.js.map +1 -0
- package/dist/nl/__test__/nl-parser-openai-sampling.test.d.ts +1 -0
- package/dist/nl/__test__/nl-parser-openai-sampling.test.js +44 -0
- package/dist/nl/__test__/nl-parser-openai-sampling.test.js.map +1 -0
- package/dist/nl/__test__/nl-parser-openai-transport.test.d.ts +1 -0
- package/dist/nl/__test__/nl-parser-openai-transport.test.js +55 -0
- package/dist/nl/__test__/nl-parser-openai-transport.test.js.map +1 -0
- package/dist/nl/__test__/nl-parser-utils.test.d.ts +1 -0
- package/dist/nl/__test__/nl-parser-utils.test.js +70 -0
- package/dist/nl/__test__/nl-parser-utils.test.js.map +1 -0
- package/dist/nl/__test__/nl-parser.test.d.ts +1 -0
- package/dist/nl/__test__/nl-parser.test.js +64 -0
- package/dist/nl/__test__/nl-parser.test.js.map +1 -0
- package/dist/nl/__test__/parameter-tuning.test.d.ts +1 -0
- package/dist/nl/__test__/parameter-tuning.test.js +95 -0
- package/dist/nl/__test__/parameter-tuning.test.js.map +1 -0
- package/dist/nl/__test__/semantic-parsing-experiment.test.d.ts +1 -0
- package/dist/nl/__test__/semantic-parsing-experiment.test.js +178 -0
- package/dist/nl/__test__/semantic-parsing-experiment.test.js.map +1 -0
- package/dist/nl/context-selector.d.ts +17 -0
- package/dist/nl/context-selector.js +99 -0
- package/dist/nl/context-selector.js.map +1 -0
- package/dist/nl/index.d.ts +6 -0
- package/dist/nl/index.js +15 -0
- package/dist/nl/index.js.map +1 -0
- package/dist/nl/llm-monitoring.d.ts +49 -0
- package/dist/nl/llm-monitoring.js +243 -0
- package/dist/nl/llm-monitoring.js.map +1 -0
- package/dist/nl/llm-monitoring.test.d.ts +5 -0
- package/dist/nl/llm-monitoring.test.js +101 -0
- package/dist/nl/llm-monitoring.test.js.map +1 -0
- package/dist/nl/nl-parser-groq.d.ts +21 -0
- package/dist/nl/nl-parser-groq.js +357 -0
- package/dist/nl/nl-parser-groq.js.map +1 -0
- package/dist/nl/nl-parser-utils.d.ts +101 -0
- package/dist/nl/nl-parser-utils.js +255 -0
- package/dist/nl/nl-parser-utils.js.map +1 -0
- package/dist/nl/nl-parser.d.ts +30 -0
- package/dist/nl/nl-parser.js +433 -0
- package/dist/nl/nl-parser.js.map +1 -0
- package/dist/nl/prompt-gen.d.ts +93 -0
- package/dist/nl/prompt-gen.js +369 -0
- package/dist/nl/prompt-gen.js.map +1 -0
- package/dist/nl/prompt-res.d.ts +16 -0
- package/dist/nl/prompt-res.js +190 -0
- package/dist/nl/prompt-res.js.map +1 -0
- package/dist/nl-interpreter.d.ts +48 -0
- package/dist/nl-interpreter.js +155 -0
- package/dist/nl-interpreter.js.map +1 -0
- package/lib/__test__/dsl-descriptor.test.ts +27 -0
- package/lib/__test__/example_descriptor.ts +762 -0
- package/lib/__test__/food_descriptor.state.json +1 -0
- package/lib/__test__/food_descriptor.test.ts +331 -0
- package/lib/__test__/nl-interpreter-provider-selection.test.ts +126 -0
- package/lib/__test__/nl-interpreter.test.ts +129 -0
- package/lib/decorators/__test__/decorators.test.ts +177 -0
- package/lib/decorators/__test__/inheritance-descriptor.test.ts +92 -0
- package/lib/decorators/decorators.ts +754 -0
- package/lib/decorators/index.ts +2 -0
- package/lib/decorators/store.ts +47 -0
- package/lib/dsl/__test__/dsl-interpreter.test.ts +453 -0
- package/lib/dsl/__test__/parser.gen.test.ts +296 -0
- package/lib/dsl/dsl-interpreter.ts +974 -0
- package/lib/dsl/index.ts +1 -0
- package/lib/dsl/parser.gen.js +1479 -0
- package/lib/dsl/parser.pegjs +130 -0
- package/lib/dsl-descriptor.ts +241 -0
- package/lib/index.ts +5 -0
- package/lib/nl/__test__/context-aware-prompt.test.ts +372 -0
- package/lib/nl/__test__/context-selector.test.ts +27 -0
- package/lib/nl/__test__/nl-parser-groq-transport.test.ts +139 -0
- package/lib/nl/__test__/nl-parser-openai-parity.test.ts +381 -0
- package/lib/nl/__test__/nl-parser-openai-sampling.test.ts +73 -0
- package/lib/nl/__test__/nl-parser-openai-transport.test.ts +79 -0
- package/lib/nl/__test__/nl-parser-utils.test.ts +98 -0
- package/lib/nl/__test__/nl-parser.test.ts +119 -0
- package/lib/nl/__test__/parameter-tuning.test.ts +137 -0
- package/lib/nl/__test__/semantic-parsing-experiment.test.ts +260 -0
- package/lib/nl/context-selector.ts +123 -0
- package/lib/nl/index.ts +19 -0
- package/lib/nl/llm-monitoring.test.ts +136 -0
- package/lib/nl/llm-monitoring.ts +339 -0
- package/lib/nl/nl-parser-groq.ts +510 -0
- package/lib/nl/nl-parser-utils.ts +310 -0
- package/lib/nl/nl-parser.ts +616 -0
- package/lib/nl/prompt-gen.ts +607 -0
- package/lib/nl/prompt-res.ts +207 -0
- package/lib/nl-interpreter.ts +262 -0
- package/package.json +58 -0
|
@@ -0,0 +1,520 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GenieProperty = exports.GenieKey = exports.GenieFunction = exports.GenieClass = exports.initGenie = exports.AllGenieObjects = void 0;
|
|
4
|
+
require("reflect-metadata");
|
|
5
|
+
const dsl_descriptor_1 = require("../dsl-descriptor");
|
|
6
|
+
const toolkit_1 = require("@reduxjs/toolkit");
|
|
7
|
+
const store_1 = require("./store");
|
|
8
|
+
exports.AllGenieObjects = {};
|
|
9
|
+
let genieClassModifier = undefined;
|
|
10
|
+
let genieFunctionModifier = undefined;
|
|
11
|
+
let geniePropertyModifier = undefined;
|
|
12
|
+
let genieInitialized = false;
|
|
13
|
+
function hasOwn(target, key) {
|
|
14
|
+
return Object.prototype.hasOwnProperty.call(target, key);
|
|
15
|
+
}
|
|
16
|
+
function uniqueFuncDescriptors(descriptors) {
|
|
17
|
+
const unique = [];
|
|
18
|
+
descriptors.forEach((descriptor) => {
|
|
19
|
+
if (!unique.some((candidate) => candidate.isSame(descriptor))) {
|
|
20
|
+
unique.push(descriptor);
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
return unique;
|
|
24
|
+
}
|
|
25
|
+
function uniqueFieldDescriptors(descriptors) {
|
|
26
|
+
const unique = [];
|
|
27
|
+
descriptors.forEach((descriptor) => {
|
|
28
|
+
if (!unique.some((candidate) => candidate.isSame(descriptor))) {
|
|
29
|
+
unique.push(descriptor);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
return unique;
|
|
33
|
+
}
|
|
34
|
+
function initGenie({ initGenieClassModifier, initGenieFunctionModifier, initGeniePropertyModifier, } = {}) {
|
|
35
|
+
if (initGenieClassModifier) {
|
|
36
|
+
genieClassModifier = initGenieClassModifier;
|
|
37
|
+
}
|
|
38
|
+
if (initGenieFunctionModifier) {
|
|
39
|
+
genieFunctionModifier = initGenieFunctionModifier;
|
|
40
|
+
}
|
|
41
|
+
if (initGeniePropertyModifier) {
|
|
42
|
+
geniePropertyModifier = initGeniePropertyModifier;
|
|
43
|
+
}
|
|
44
|
+
let genieStore = (0, toolkit_1.configureStore)({ reducer: store_1.storeReducer });
|
|
45
|
+
(0, store_1.setSharedStore)(genieStore);
|
|
46
|
+
for (let className in exports.AllGenieObjects) {
|
|
47
|
+
const target = exports.AllGenieObjects[className];
|
|
48
|
+
if (genieClassModifier) {
|
|
49
|
+
genieClassModifier(target);
|
|
50
|
+
}
|
|
51
|
+
for (let propertyDescriptor of target.ClassDescriptor.fields) {
|
|
52
|
+
if (geniePropertyModifier) {
|
|
53
|
+
geniePropertyModifier(target, propertyDescriptor.field, propertyDescriptor.isStatic);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
for (let functionDescriptor of target.ClassDescriptor.functions) {
|
|
57
|
+
if (genieFunctionModifier) {
|
|
58
|
+
genieFunctionModifier(target, functionDescriptor.func_name, functionDescriptor.isStatic);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
for (let className in exports.AllGenieObjects) {
|
|
63
|
+
const target = exports.AllGenieObjects[className];
|
|
64
|
+
target.setup();
|
|
65
|
+
}
|
|
66
|
+
genieInitialized = true;
|
|
67
|
+
return genieStore;
|
|
68
|
+
}
|
|
69
|
+
exports.initGenie = initGenie;
|
|
70
|
+
function getJsonByPath(json, path) {
|
|
71
|
+
let current = json;
|
|
72
|
+
for (let pathElement of path) {
|
|
73
|
+
current = current[pathElement];
|
|
74
|
+
}
|
|
75
|
+
return current;
|
|
76
|
+
}
|
|
77
|
+
function setJsonByPath(json, path, value) {
|
|
78
|
+
if (path.length === 0) {
|
|
79
|
+
return value;
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
if (Array.isArray(json)) {
|
|
83
|
+
const array = json;
|
|
84
|
+
const index = path[0];
|
|
85
|
+
return [
|
|
86
|
+
...array.slice(0, index),
|
|
87
|
+
setJsonByPath(array[index], path.slice(1), value),
|
|
88
|
+
...array.slice(index + 1),
|
|
89
|
+
];
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
return {
|
|
93
|
+
...json,
|
|
94
|
+
[path[0]]: setJsonByPath(json[path[0]], path.slice(1), value),
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
class ObservableArray extends Array {
|
|
100
|
+
constructor(callback, ...items) {
|
|
101
|
+
super(...items);
|
|
102
|
+
this.callback = () => callback(this);
|
|
103
|
+
}
|
|
104
|
+
push(...items) {
|
|
105
|
+
const result = super.push(...items);
|
|
106
|
+
this.callback();
|
|
107
|
+
return result;
|
|
108
|
+
}
|
|
109
|
+
pop() {
|
|
110
|
+
const result = super.pop();
|
|
111
|
+
this.callback();
|
|
112
|
+
return result;
|
|
113
|
+
}
|
|
114
|
+
splice(start, deleteCount, ...items) {
|
|
115
|
+
const result = super.splice(start, deleteCount, ...items);
|
|
116
|
+
this.callback();
|
|
117
|
+
return result;
|
|
118
|
+
}
|
|
119
|
+
shift() {
|
|
120
|
+
const result = super.shift();
|
|
121
|
+
this.callback();
|
|
122
|
+
return result;
|
|
123
|
+
}
|
|
124
|
+
unshift(...items) {
|
|
125
|
+
const result = super.unshift(...items);
|
|
126
|
+
this.callback();
|
|
127
|
+
return result;
|
|
128
|
+
}
|
|
129
|
+
set(index, item) {
|
|
130
|
+
this[index] = item;
|
|
131
|
+
this.callback();
|
|
132
|
+
}
|
|
133
|
+
map(callbackfn, thisArg) {
|
|
134
|
+
return [...super.map(callbackfn, thisArg)];
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
const serializeField = (generateGetterSetter) => (value, path = []) => {
|
|
138
|
+
if (Array.isArray(value)) {
|
|
139
|
+
return value.map((item, index) => {
|
|
140
|
+
return serializeField(generateGetterSetter)(item, path.concat(index));
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
else if (value != null &&
|
|
144
|
+
value.constructor.__genieObjectType == "DataClass") {
|
|
145
|
+
return {
|
|
146
|
+
__genieObjectType: "DataClass",
|
|
147
|
+
__genieObjectClass: value.constructor.name,
|
|
148
|
+
__genieObjectKey: value[value.genieKey],
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
else if (value != null &&
|
|
152
|
+
value.constructor.__genieObjectType == "HelperClass") {
|
|
153
|
+
value.localStoreGetterSetter =
|
|
154
|
+
generateGetterSetter(path);
|
|
155
|
+
let serializedValue = value.localStore;
|
|
156
|
+
if (serializedValue == null) {
|
|
157
|
+
throw new Error("HelperClass is not initialized.\n" +
|
|
158
|
+
"Please make sure to use CreateObject() to create HelperClass instance.");
|
|
159
|
+
}
|
|
160
|
+
serializedValue["__genieObjectType"] = "HelperClass";
|
|
161
|
+
serializedValue["__genieObjectClass"] = value.constructor.name;
|
|
162
|
+
return serializedValue;
|
|
163
|
+
}
|
|
164
|
+
return value;
|
|
165
|
+
};
|
|
166
|
+
const deserializeField = (generateGetterSetter) => (value, path = []) => {
|
|
167
|
+
if (Array.isArray(value)) {
|
|
168
|
+
return new ObservableArray((newArray) => {
|
|
169
|
+
generateGetterSetter(path)[1](serializeField(generateGetterSetter)(newArray, path));
|
|
170
|
+
}, ...value.map((item, index) => {
|
|
171
|
+
return deserializeField(generateGetterSetter)(item, path.concat(index));
|
|
172
|
+
}));
|
|
173
|
+
}
|
|
174
|
+
else if (value != null && value.__genieObjectType == "DataClass") {
|
|
175
|
+
return store_1.objects[value.__genieObjectClass][value.__genieObjectKey];
|
|
176
|
+
}
|
|
177
|
+
else if (value != null && value.__genieObjectType == "HelperClass") {
|
|
178
|
+
let obj = exports.AllGenieObjects[value.__genieObjectClass];
|
|
179
|
+
let deserializedValue = obj.CreateObject(value);
|
|
180
|
+
deserializedValue.localStoreGetterSetter = generateGetterSetter(path);
|
|
181
|
+
return deserializedValue;
|
|
182
|
+
}
|
|
183
|
+
return value;
|
|
184
|
+
};
|
|
185
|
+
function GenieClass(comment = "") {
|
|
186
|
+
return function (target) {
|
|
187
|
+
target.prototype.comment = comment;
|
|
188
|
+
if (!hasOwn(target, "ClassDescriptor")) {
|
|
189
|
+
const inheritedClass = Object.getPrototypeOf(target);
|
|
190
|
+
const inheritedDescriptor = inheritedClass?.ClassDescriptor;
|
|
191
|
+
const inheritedFunctions = inheritedDescriptor
|
|
192
|
+
? Array.from(inheritedDescriptor.functions)
|
|
193
|
+
: [];
|
|
194
|
+
const inheritedFields = inheritedDescriptor
|
|
195
|
+
? Array.from(inheritedDescriptor.fields)
|
|
196
|
+
: [];
|
|
197
|
+
const ownFunctions = hasOwn(target, "__class_descriptor_functions")
|
|
198
|
+
? target.__class_descriptor_functions
|
|
199
|
+
: [];
|
|
200
|
+
const ownFields = hasOwn(target, "__class_descriptor_properties")
|
|
201
|
+
? target.__class_descriptor_properties
|
|
202
|
+
: [];
|
|
203
|
+
target.ClassDescriptor = new dsl_descriptor_1.ClassDescriptor(target.name, uniqueFuncDescriptors([...inheritedFunctions, ...ownFunctions]), uniqueFieldDescriptors([...inheritedFields, ...ownFields]), target, comment);
|
|
204
|
+
}
|
|
205
|
+
if (target.prototype instanceof dsl_descriptor_1.DataClass) {
|
|
206
|
+
target._createObject = function (...args) {
|
|
207
|
+
const obj = new target(...args);
|
|
208
|
+
const generateGetterSetter = function (path) {
|
|
209
|
+
return [
|
|
210
|
+
() => getJsonByPath(store_1.sharedState["OBJECT"][target.name][obj[keyField]], path),
|
|
211
|
+
(value) => {
|
|
212
|
+
(0, store_1.genieDispatch)(() => {
|
|
213
|
+
(0, store_1.setSharedState)({
|
|
214
|
+
...store_1.sharedState,
|
|
215
|
+
["OBJECT"]: {
|
|
216
|
+
...store_1.sharedState["OBJECT"],
|
|
217
|
+
[target.name]: {
|
|
218
|
+
...store_1.sharedState["OBJECT"][target.name],
|
|
219
|
+
[obj[keyField]]: setJsonByPath(store_1.sharedState["OBJECT"][target.name][obj[keyField]], path, value),
|
|
220
|
+
},
|
|
221
|
+
}
|
|
222
|
+
});
|
|
223
|
+
});
|
|
224
|
+
},
|
|
225
|
+
];
|
|
226
|
+
};
|
|
227
|
+
let allFields = Object.getOwnPropertyNames(obj).filter((name) => name[0] !== "_");
|
|
228
|
+
allFields = allFields.filter((field) => {
|
|
229
|
+
return typeof obj[field] !== "function";
|
|
230
|
+
});
|
|
231
|
+
let keyField = obj.genieKey;
|
|
232
|
+
if (allFields.indexOf(keyField) === -1) {
|
|
233
|
+
throw new Error("keyField " + keyField + " not found in class " + target.name);
|
|
234
|
+
}
|
|
235
|
+
if (obj[keyField] === null || obj[keyField] === undefined) {
|
|
236
|
+
throw new Error("keyField " +
|
|
237
|
+
keyField +
|
|
238
|
+
" not found in object " +
|
|
239
|
+
obj.constructor.name +
|
|
240
|
+
"\n" +
|
|
241
|
+
"Did you have @GenieKey on the key field?\n" +
|
|
242
|
+
"Did set the key field in the constructor?");
|
|
243
|
+
}
|
|
244
|
+
(0, store_1.genieDispatch)(() => {
|
|
245
|
+
let objectState = {};
|
|
246
|
+
if (store_1.sharedState["OBJECT"][target.name]) {
|
|
247
|
+
objectState = {
|
|
248
|
+
...store_1.sharedState["OBJECT"][target.name],
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
objectState[obj[keyField]] = {};
|
|
252
|
+
allFields.forEach((field) => {
|
|
253
|
+
objectState[obj[keyField]][field] = serializeField(generateGetterSetter)(obj[field], [field]);
|
|
254
|
+
});
|
|
255
|
+
(0, store_1.setSharedState)({
|
|
256
|
+
...store_1.sharedState,
|
|
257
|
+
["OBJECT"]: {
|
|
258
|
+
...store_1.sharedState["OBJECT"],
|
|
259
|
+
[target.name]: objectState,
|
|
260
|
+
}
|
|
261
|
+
});
|
|
262
|
+
});
|
|
263
|
+
allFields.forEach((field) => {
|
|
264
|
+
if (field == keyField) {
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
Object.defineProperty(obj, field, {
|
|
268
|
+
get: function () {
|
|
269
|
+
let value = store_1.sharedState["OBJECT"][target.name][obj[keyField]][field];
|
|
270
|
+
return deserializeField(generateGetterSetter)(value, [field]);
|
|
271
|
+
},
|
|
272
|
+
set: function (value) {
|
|
273
|
+
(0, store_1.genieDispatch)(() => {
|
|
274
|
+
(0, store_1.setSharedState)({
|
|
275
|
+
...store_1.sharedState,
|
|
276
|
+
["OBJECT"]: {
|
|
277
|
+
...store_1.sharedState["OBJECT"],
|
|
278
|
+
[target.name]: {
|
|
279
|
+
...store_1.sharedState["OBJECT"][target.name],
|
|
280
|
+
[obj[keyField]]: {
|
|
281
|
+
...store_1.sharedState["OBJECT"][target.name][obj[keyField]],
|
|
282
|
+
[field]: serializeField(generateGetterSetter)(value, [
|
|
283
|
+
field,
|
|
284
|
+
]),
|
|
285
|
+
},
|
|
286
|
+
},
|
|
287
|
+
},
|
|
288
|
+
});
|
|
289
|
+
});
|
|
290
|
+
},
|
|
291
|
+
});
|
|
292
|
+
});
|
|
293
|
+
if (!store_1.objects[target.name]) {
|
|
294
|
+
store_1.objects[target.name] = {};
|
|
295
|
+
}
|
|
296
|
+
store_1.objects[target.name][obj[keyField]] = obj;
|
|
297
|
+
obj.__getState = function () {
|
|
298
|
+
return {
|
|
299
|
+
"object": store_1.sharedState["OBJECT"][target.name][obj[keyField]],
|
|
300
|
+
"class": store_1.sharedState["CLASS"][target.name]
|
|
301
|
+
};
|
|
302
|
+
};
|
|
303
|
+
return obj;
|
|
304
|
+
};
|
|
305
|
+
target.GetObject = function (key) {
|
|
306
|
+
const classObjects = store_1.objects[target.name];
|
|
307
|
+
if (!classObjects) {
|
|
308
|
+
return undefined;
|
|
309
|
+
}
|
|
310
|
+
return classObjects[key[target.prototype.genieKey]];
|
|
311
|
+
};
|
|
312
|
+
target.DeleteObject = function (key) {
|
|
313
|
+
(0, store_1.genieDispatch)(() => {
|
|
314
|
+
const classObjects = store_1.objects[target.name];
|
|
315
|
+
if (!classObjects) {
|
|
316
|
+
return undefined;
|
|
317
|
+
}
|
|
318
|
+
let obj = classObjects[key[target.prototype.genieKey]];
|
|
319
|
+
if (!obj) {
|
|
320
|
+
return undefined;
|
|
321
|
+
}
|
|
322
|
+
obj.__deleted = true;
|
|
323
|
+
return obj;
|
|
324
|
+
});
|
|
325
|
+
};
|
|
326
|
+
}
|
|
327
|
+
else if (target.prototype instanceof dsl_descriptor_1.HelperClass) {
|
|
328
|
+
target._createObject = function (...args) {
|
|
329
|
+
const obj = new target(...args);
|
|
330
|
+
const generateGetterSetter = function (path) {
|
|
331
|
+
return [
|
|
332
|
+
() => (0, store_1.genieDispatch)(() => {
|
|
333
|
+
if (obj.localStoreGetterSetter != null) {
|
|
334
|
+
obj.localStore = obj.localStoreGetterSetter[0]();
|
|
335
|
+
}
|
|
336
|
+
return getJsonByPath(obj.localStore, path);
|
|
337
|
+
}),
|
|
338
|
+
(value) => {
|
|
339
|
+
(0, store_1.genieDispatch)(() => {
|
|
340
|
+
if (obj.localStoreGetterSetter != null) {
|
|
341
|
+
obj.localStore = obj.localStoreGetterSetter[0]();
|
|
342
|
+
}
|
|
343
|
+
setJsonByPath(obj.localStore, path, value);
|
|
344
|
+
if (obj.localStoreGetterSetter != null) {
|
|
345
|
+
obj.localStoreGetterSetter[1](obj.localStore);
|
|
346
|
+
}
|
|
347
|
+
});
|
|
348
|
+
},
|
|
349
|
+
];
|
|
350
|
+
};
|
|
351
|
+
let allFields = Object.getOwnPropertyNames(obj).filter((name) => name[0] !== "_");
|
|
352
|
+
allFields = allFields.filter((field) => {
|
|
353
|
+
return typeof obj[field] !== "function" && field !== "localStore" && field !== "localStoreGetterSetter";
|
|
354
|
+
});
|
|
355
|
+
obj.localStore = {};
|
|
356
|
+
allFields.forEach((field) => {
|
|
357
|
+
obj.localStore[field] = serializeField(generateGetterSetter)(obj[field], [field]);
|
|
358
|
+
});
|
|
359
|
+
let targetObj = obj;
|
|
360
|
+
allFields.forEach((field) => {
|
|
361
|
+
Object.defineProperty(obj, field, {
|
|
362
|
+
get: function () {
|
|
363
|
+
if (targetObj.localStoreGetterSetter != null) {
|
|
364
|
+
targetObj.localStore = targetObj.localStoreGetterSetter[0]();
|
|
365
|
+
}
|
|
366
|
+
let value = targetObj.localStore[field];
|
|
367
|
+
return deserializeField(generateGetterSetter)(value, [field]);
|
|
368
|
+
},
|
|
369
|
+
set: function (value) {
|
|
370
|
+
let serializedValue = serializeField(generateGetterSetter)(value, [field]);
|
|
371
|
+
if (targetObj.localStoreGetterSetter != null) {
|
|
372
|
+
targetObj.localStore = targetObj.localStoreGetterSetter[0]();
|
|
373
|
+
}
|
|
374
|
+
targetObj.localStore = {
|
|
375
|
+
...targetObj.localStore,
|
|
376
|
+
[field]: serializedValue,
|
|
377
|
+
};
|
|
378
|
+
if (targetObj.localStoreGetterSetter != null) {
|
|
379
|
+
targetObj.localStoreGetterSetter[1](targetObj.localStore);
|
|
380
|
+
}
|
|
381
|
+
},
|
|
382
|
+
});
|
|
383
|
+
});
|
|
384
|
+
return obj;
|
|
385
|
+
};
|
|
386
|
+
}
|
|
387
|
+
if (target.prototype instanceof dsl_descriptor_1.DataClass) {
|
|
388
|
+
function All() {
|
|
389
|
+
let allObjects = [];
|
|
390
|
+
const classObjects = store_1.objects[target.name];
|
|
391
|
+
if (!classObjects) {
|
|
392
|
+
return allObjects;
|
|
393
|
+
}
|
|
394
|
+
for (let key in classObjects) {
|
|
395
|
+
if (classObjects[key].__deleted) {
|
|
396
|
+
continue;
|
|
397
|
+
}
|
|
398
|
+
allObjects.push(classObjects[key]);
|
|
399
|
+
}
|
|
400
|
+
return allObjects;
|
|
401
|
+
}
|
|
402
|
+
if (target.All == dsl_descriptor_1.DataClass.All) {
|
|
403
|
+
target.All = All;
|
|
404
|
+
target.ClassDescriptor.functions.add(new dsl_descriptor_1.FuncDescriptor("All", [], target.ClassDescriptor.className + "[]", true));
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
if (genieClassModifier) {
|
|
408
|
+
genieClassModifier(target);
|
|
409
|
+
}
|
|
410
|
+
exports.AllGenieObjects[target.name] = target;
|
|
411
|
+
if (genieInitialized) {
|
|
412
|
+
target.setup();
|
|
413
|
+
}
|
|
414
|
+
return target;
|
|
415
|
+
};
|
|
416
|
+
}
|
|
417
|
+
exports.GenieClass = GenieClass;
|
|
418
|
+
function classToName(object) {
|
|
419
|
+
if (object.constructor.name === "Object") {
|
|
420
|
+
if (object["type"]) {
|
|
421
|
+
if (object["type"].name !== "Array") {
|
|
422
|
+
throw new Error("non-array type not supported");
|
|
423
|
+
}
|
|
424
|
+
if (object["elementType"]) {
|
|
425
|
+
if (object["elementType"].name) {
|
|
426
|
+
return object["elementType"].name + "[]";
|
|
427
|
+
}
|
|
428
|
+
else {
|
|
429
|
+
return object["elementType"] + "[]";
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
else {
|
|
433
|
+
throw new Error("array elementType missing");
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
else if (object.constructor.name === "String") {
|
|
438
|
+
return object;
|
|
439
|
+
}
|
|
440
|
+
else if (object === String) {
|
|
441
|
+
return "string";
|
|
442
|
+
}
|
|
443
|
+
else if (object === Boolean) {
|
|
444
|
+
return "bool";
|
|
445
|
+
}
|
|
446
|
+
else if (object.hasOwnProperty("name")) {
|
|
447
|
+
return object.name;
|
|
448
|
+
}
|
|
449
|
+
throw new Error("classToName not implemented for " + object);
|
|
450
|
+
}
|
|
451
|
+
function GenieFunction(comment = "") {
|
|
452
|
+
return function (target, propertyKey) {
|
|
453
|
+
const isStaticMeta = Reflect.getMetadata("design:is_static", target, propertyKey);
|
|
454
|
+
const isStatic = isStaticMeta === true;
|
|
455
|
+
const targetClass = isStatic ? target : target.constructor;
|
|
456
|
+
if (!hasOwn(targetClass, "ClassDescriptor")) {
|
|
457
|
+
const paramTypes = Reflect.getMetadata("design:paramtypes", target, propertyKey);
|
|
458
|
+
const returnType = Reflect.getMetadata("design:returntype", target, propertyKey);
|
|
459
|
+
const destructuringParamTypes = Reflect.getMetadata("design:destructuringparamtypes", target, propertyKey);
|
|
460
|
+
const destructingParamValues = Reflect.getMetadata("design:destructuringparamvalues", target, propertyKey);
|
|
461
|
+
const funcName = propertyKey;
|
|
462
|
+
if (returnType === undefined) {
|
|
463
|
+
throw new Error(`Genie functions must have a return type: ${target.constructor.name}.${propertyKey}`);
|
|
464
|
+
}
|
|
465
|
+
const returnTypeStr = classToName(returnType);
|
|
466
|
+
let parameters = [];
|
|
467
|
+
if (paramTypes.length > 1) {
|
|
468
|
+
throw new Error("Genie functions can only have one destructuring parameter");
|
|
469
|
+
}
|
|
470
|
+
if (paramTypes.length == 1) {
|
|
471
|
+
if (destructuringParamTypes.length !== 1 || destructingParamValues.length !== 1) {
|
|
472
|
+
throw new Error("deconstructed parameters should be the same number as the number of parameters");
|
|
473
|
+
}
|
|
474
|
+
const paramTypeObj = destructuringParamTypes[0];
|
|
475
|
+
const paramValueObj = destructingParamValues[0];
|
|
476
|
+
parameters = Object.keys(paramTypeObj).map((paramName) => {
|
|
477
|
+
const paramType = classToName(paramTypeObj[paramName].type);
|
|
478
|
+
let paramValue = paramValueObj[paramName];
|
|
479
|
+
if (paramValue === undefined || paramValue === "undefined") {
|
|
480
|
+
paramValue = null;
|
|
481
|
+
}
|
|
482
|
+
const paramOptional = paramTypeObj[paramName].optional;
|
|
483
|
+
return new dsl_descriptor_1.ParamDescriptor(paramName, paramType, !paramOptional, paramValue);
|
|
484
|
+
});
|
|
485
|
+
}
|
|
486
|
+
const funcDescriptor = new dsl_descriptor_1.FuncDescriptor(funcName, parameters, returnTypeStr, isStatic, comment);
|
|
487
|
+
if (!hasOwn(targetClass, "__class_descriptor_functions")) {
|
|
488
|
+
targetClass.__class_descriptor_functions = [];
|
|
489
|
+
}
|
|
490
|
+
targetClass.__class_descriptor_functions.push(funcDescriptor);
|
|
491
|
+
if (genieFunctionModifier) {
|
|
492
|
+
genieFunctionModifier(target, propertyKey, isStatic);
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
};
|
|
496
|
+
}
|
|
497
|
+
exports.GenieFunction = GenieFunction;
|
|
498
|
+
function GenieKey(target, propertyKey) {
|
|
499
|
+
target.genieKey = propertyKey;
|
|
500
|
+
}
|
|
501
|
+
exports.GenieKey = GenieKey;
|
|
502
|
+
function GenieProperty(comment = "") {
|
|
503
|
+
return function (target, propertyKey) {
|
|
504
|
+
const typeObj = Reflect.getMetadata("design:type", target, propertyKey);
|
|
505
|
+
const isStaticMeta = Reflect.getMetadata("design:is_static", target, propertyKey);
|
|
506
|
+
const isStatic = isStaticMeta === true;
|
|
507
|
+
const type = classToName(typeObj);
|
|
508
|
+
const targetClass = isStatic ? target : target.constructor;
|
|
509
|
+
if (!hasOwn(targetClass, "__class_descriptor_properties")) {
|
|
510
|
+
targetClass.__class_descriptor_properties = [];
|
|
511
|
+
}
|
|
512
|
+
const propertyDescriptor = new dsl_descriptor_1.FieldDescriptor(propertyKey, type, isStatic, comment);
|
|
513
|
+
targetClass.__class_descriptor_properties.push(propertyDescriptor);
|
|
514
|
+
if (geniePropertyModifier) {
|
|
515
|
+
geniePropertyModifier(target, propertyKey, isStatic);
|
|
516
|
+
}
|
|
517
|
+
};
|
|
518
|
+
}
|
|
519
|
+
exports.GenieProperty = GenieProperty;
|
|
520
|
+
//# sourceMappingURL=decorators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../lib/decorators/decorators.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./decorators"), exports);
|
|
18
|
+
__exportStar(require("./store"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/decorators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,0CAAwB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Store } from "redux";
|
|
2
|
+
export declare let sharedStore: Store;
|
|
3
|
+
export declare let sharedState: {};
|
|
4
|
+
export declare let objects: {};
|
|
5
|
+
export declare let originalClasses: {};
|
|
6
|
+
export declare function setSharedStore(store: Store): void;
|
|
7
|
+
export declare function setSharedState(state: {}): void;
|
|
8
|
+
export declare function storeReducer(state: {}, action: {
|
|
9
|
+
type: string;
|
|
10
|
+
payload: any;
|
|
11
|
+
}): {};
|
|
12
|
+
export declare function genieDispatch(func: () => any): any;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.genieDispatch = exports.storeReducer = exports.setSharedState = exports.setSharedStore = exports.originalClasses = exports.objects = exports.sharedState = exports.sharedStore = void 0;
|
|
4
|
+
let genieActionFunc = null;
|
|
5
|
+
let genieActionReturnVal = null;
|
|
6
|
+
exports.sharedStore = null;
|
|
7
|
+
exports.sharedState = null;
|
|
8
|
+
exports.objects = {};
|
|
9
|
+
exports.originalClasses = {};
|
|
10
|
+
function setSharedStore(store) {
|
|
11
|
+
exports.sharedStore = store;
|
|
12
|
+
}
|
|
13
|
+
exports.setSharedStore = setSharedStore;
|
|
14
|
+
function setSharedState(state) {
|
|
15
|
+
exports.sharedState = state;
|
|
16
|
+
}
|
|
17
|
+
exports.setSharedState = setSharedState;
|
|
18
|
+
function storeReducer(state = { "CLASS": {}, "OBJECT": {} }, action) {
|
|
19
|
+
if (action.type === "genieAction") {
|
|
20
|
+
exports.sharedState = {
|
|
21
|
+
...state,
|
|
22
|
+
};
|
|
23
|
+
genieActionReturnVal = genieActionFunc();
|
|
24
|
+
return {
|
|
25
|
+
...exports.sharedState,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
return state;
|
|
29
|
+
}
|
|
30
|
+
exports.storeReducer = storeReducer;
|
|
31
|
+
function genieDispatch(func) {
|
|
32
|
+
if (genieActionFunc != null) {
|
|
33
|
+
return func();
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
genieActionFunc = func;
|
|
37
|
+
exports.sharedStore.dispatch({ type: "genieAction", payload: {} });
|
|
38
|
+
genieActionFunc = null;
|
|
39
|
+
return genieActionReturnVal;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.genieDispatch = genieDispatch;
|
|
43
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../lib/decorators/store.ts"],"names":[],"mappings":";;;AAEA,IAAI,eAAe,GAAc,IAAI,CAAC;AACtC,IAAI,oBAAoB,GAAQ,IAAI,CAAC;AAE1B,QAAA,WAAW,GAAU,IAAI,CAAC;AAC1B,QAAA,WAAW,GAAO,IAAI,CAAC;AAEvB,QAAA,OAAO,GAAO,EAAE,CAAC;AAEjB,QAAA,eAAe,GAAO,EAAE,CAAC;AAEpC,SAAgB,cAAc,CAAC,KAAY;IACzC,mBAAW,GAAG,KAAK,CAAC;AACtB,CAAC;AAFD,wCAEC;AAED,SAAgB,cAAc,CAAC,KAAS;IACtC,mBAAW,GAAG,KAAK,CAAC;AACtB,CAAC;AAFD,wCAEC;AAED,SAAgB,YAAY,CAC1B,QAAY,EAAC,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAC,EACvC,MAAsC;IAEtC,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QAClC,mBAAW,GAAG;YACZ,GAAG,KAAK;SACT,CAAC;QACF,oBAAoB,GAAG,eAAe,EAAE,CAAC;QACzC,OAAO;YACL,GAAG,mBAAW;SACf,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAdD,oCAcC;AAED,SAAgB,aAAa,CAAC,IAAe;IAC3C,IAAI,eAAe,IAAI,IAAI,EAAE,CAAC;QAE5B,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;SAAM,CAAC;QACN,eAAe,GAAG,IAAI,CAAC;QACvB,mBAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3D,eAAe,GAAG,IAAI,CAAC;QACvB,OAAO,oBAAoB,CAAC;IAC9B,CAAC;AACH,CAAC;AAVD,sCAUC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|