@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.
Files changed (153) hide show
  1. package/README.md +436 -0
  2. package/dist/__test__/dsl-descriptor.test.d.ts +1 -0
  3. package/dist/__test__/dsl-descriptor.test.js +27 -0
  4. package/dist/__test__/dsl-descriptor.test.js.map +1 -0
  5. package/dist/__test__/example_descriptor.d.ts +125 -0
  6. package/dist/__test__/example_descriptor.js +607 -0
  7. package/dist/__test__/example_descriptor.js.map +1 -0
  8. package/dist/__test__/food_descriptor.state.json +1 -0
  9. package/dist/__test__/food_descriptor.test.d.ts +74 -0
  10. package/dist/__test__/food_descriptor.test.js +205 -0
  11. package/dist/__test__/food_descriptor.test.js.map +1 -0
  12. package/dist/__test__/nl-interpreter-provider-selection.test.d.ts +1 -0
  13. package/dist/__test__/nl-interpreter-provider-selection.test.js +73 -0
  14. package/dist/__test__/nl-interpreter-provider-selection.test.js.map +1 -0
  15. package/dist/__test__/nl-interpreter.test.d.ts +1 -0
  16. package/dist/__test__/nl-interpreter.test.js +86 -0
  17. package/dist/__test__/nl-interpreter.test.js.map +1 -0
  18. package/dist/decorators/__test__/decorators.test.d.ts +1 -0
  19. package/dist/decorators/__test__/decorators.test.js +182 -0
  20. package/dist/decorators/__test__/decorators.test.js.map +1 -0
  21. package/dist/decorators/__test__/inheritance-descriptor.test.d.ts +1 -0
  22. package/dist/decorators/__test__/inheritance-descriptor.test.js +107 -0
  23. package/dist/decorators/__test__/inheritance-descriptor.test.js.map +1 -0
  24. package/dist/decorators/decorators.d.ts +20 -0
  25. package/dist/decorators/decorators.js +520 -0
  26. package/dist/decorators/decorators.js.map +1 -0
  27. package/dist/decorators/index.d.ts +2 -0
  28. package/dist/decorators/index.js +19 -0
  29. package/dist/decorators/index.js.map +1 -0
  30. package/dist/decorators/store.d.ts +12 -0
  31. package/dist/decorators/store.js +43 -0
  32. package/dist/decorators/store.js.map +1 -0
  33. package/dist/dsl/__test__/dsl-interpreter.test.d.ts +1 -0
  34. package/dist/dsl/__test__/dsl-interpreter.test.js +334 -0
  35. package/dist/dsl/__test__/dsl-interpreter.test.js.map +1 -0
  36. package/dist/dsl/__test__/parser.gen.test.d.ts +1 -0
  37. package/dist/dsl/__test__/parser.gen.test.js +283 -0
  38. package/dist/dsl/__test__/parser.gen.test.js.map +1 -0
  39. package/dist/dsl/dsl-interpreter.d.ts +66 -0
  40. package/dist/dsl/dsl-interpreter.js +767 -0
  41. package/dist/dsl/dsl-interpreter.js.map +1 -0
  42. package/dist/dsl/index.d.ts +1 -0
  43. package/dist/dsl/index.js +18 -0
  44. package/dist/dsl/index.js.map +1 -0
  45. package/dist/dsl/parser.gen.d.ts +10 -0
  46. package/dist/dsl/parser.gen.js +1524 -0
  47. package/dist/dsl/parser.gen.js.map +1 -0
  48. package/dist/dsl-descriptor.d.ts +75 -0
  49. package/dist/dsl-descriptor.js +151 -0
  50. package/dist/dsl-descriptor.js.map +1 -0
  51. package/dist/index.d.ts +5 -0
  52. package/dist/index.js +22 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/nl/__test__/context-aware-prompt.test.d.ts +1 -0
  55. package/dist/nl/__test__/context-aware-prompt.test.js +247 -0
  56. package/dist/nl/__test__/context-aware-prompt.test.js.map +1 -0
  57. package/dist/nl/__test__/context-selector.test.d.ts +1 -0
  58. package/dist/nl/__test__/context-selector.test.js +20 -0
  59. package/dist/nl/__test__/context-selector.test.js.map +1 -0
  60. package/dist/nl/__test__/nl-parser-groq-transport.test.d.ts +1 -0
  61. package/dist/nl/__test__/nl-parser-groq-transport.test.js +87 -0
  62. package/dist/nl/__test__/nl-parser-groq-transport.test.js.map +1 -0
  63. package/dist/nl/__test__/nl-parser-openai-parity.test.d.ts +1 -0
  64. package/dist/nl/__test__/nl-parser-openai-parity.test.js +206 -0
  65. package/dist/nl/__test__/nl-parser-openai-parity.test.js.map +1 -0
  66. package/dist/nl/__test__/nl-parser-openai-sampling.test.d.ts +1 -0
  67. package/dist/nl/__test__/nl-parser-openai-sampling.test.js +44 -0
  68. package/dist/nl/__test__/nl-parser-openai-sampling.test.js.map +1 -0
  69. package/dist/nl/__test__/nl-parser-openai-transport.test.d.ts +1 -0
  70. package/dist/nl/__test__/nl-parser-openai-transport.test.js +55 -0
  71. package/dist/nl/__test__/nl-parser-openai-transport.test.js.map +1 -0
  72. package/dist/nl/__test__/nl-parser-utils.test.d.ts +1 -0
  73. package/dist/nl/__test__/nl-parser-utils.test.js +70 -0
  74. package/dist/nl/__test__/nl-parser-utils.test.js.map +1 -0
  75. package/dist/nl/__test__/nl-parser.test.d.ts +1 -0
  76. package/dist/nl/__test__/nl-parser.test.js +64 -0
  77. package/dist/nl/__test__/nl-parser.test.js.map +1 -0
  78. package/dist/nl/__test__/parameter-tuning.test.d.ts +1 -0
  79. package/dist/nl/__test__/parameter-tuning.test.js +95 -0
  80. package/dist/nl/__test__/parameter-tuning.test.js.map +1 -0
  81. package/dist/nl/__test__/semantic-parsing-experiment.test.d.ts +1 -0
  82. package/dist/nl/__test__/semantic-parsing-experiment.test.js +178 -0
  83. package/dist/nl/__test__/semantic-parsing-experiment.test.js.map +1 -0
  84. package/dist/nl/context-selector.d.ts +17 -0
  85. package/dist/nl/context-selector.js +99 -0
  86. package/dist/nl/context-selector.js.map +1 -0
  87. package/dist/nl/index.d.ts +6 -0
  88. package/dist/nl/index.js +15 -0
  89. package/dist/nl/index.js.map +1 -0
  90. package/dist/nl/llm-monitoring.d.ts +49 -0
  91. package/dist/nl/llm-monitoring.js +243 -0
  92. package/dist/nl/llm-monitoring.js.map +1 -0
  93. package/dist/nl/llm-monitoring.test.d.ts +5 -0
  94. package/dist/nl/llm-monitoring.test.js +101 -0
  95. package/dist/nl/llm-monitoring.test.js.map +1 -0
  96. package/dist/nl/nl-parser-groq.d.ts +21 -0
  97. package/dist/nl/nl-parser-groq.js +357 -0
  98. package/dist/nl/nl-parser-groq.js.map +1 -0
  99. package/dist/nl/nl-parser-utils.d.ts +101 -0
  100. package/dist/nl/nl-parser-utils.js +255 -0
  101. package/dist/nl/nl-parser-utils.js.map +1 -0
  102. package/dist/nl/nl-parser.d.ts +30 -0
  103. package/dist/nl/nl-parser.js +433 -0
  104. package/dist/nl/nl-parser.js.map +1 -0
  105. package/dist/nl/prompt-gen.d.ts +93 -0
  106. package/dist/nl/prompt-gen.js +369 -0
  107. package/dist/nl/prompt-gen.js.map +1 -0
  108. package/dist/nl/prompt-res.d.ts +16 -0
  109. package/dist/nl/prompt-res.js +190 -0
  110. package/dist/nl/prompt-res.js.map +1 -0
  111. package/dist/nl-interpreter.d.ts +48 -0
  112. package/dist/nl-interpreter.js +155 -0
  113. package/dist/nl-interpreter.js.map +1 -0
  114. package/lib/__test__/dsl-descriptor.test.ts +27 -0
  115. package/lib/__test__/example_descriptor.ts +762 -0
  116. package/lib/__test__/food_descriptor.state.json +1 -0
  117. package/lib/__test__/food_descriptor.test.ts +331 -0
  118. package/lib/__test__/nl-interpreter-provider-selection.test.ts +126 -0
  119. package/lib/__test__/nl-interpreter.test.ts +129 -0
  120. package/lib/decorators/__test__/decorators.test.ts +177 -0
  121. package/lib/decorators/__test__/inheritance-descriptor.test.ts +92 -0
  122. package/lib/decorators/decorators.ts +754 -0
  123. package/lib/decorators/index.ts +2 -0
  124. package/lib/decorators/store.ts +47 -0
  125. package/lib/dsl/__test__/dsl-interpreter.test.ts +453 -0
  126. package/lib/dsl/__test__/parser.gen.test.ts +296 -0
  127. package/lib/dsl/dsl-interpreter.ts +974 -0
  128. package/lib/dsl/index.ts +1 -0
  129. package/lib/dsl/parser.gen.js +1479 -0
  130. package/lib/dsl/parser.pegjs +130 -0
  131. package/lib/dsl-descriptor.ts +241 -0
  132. package/lib/index.ts +5 -0
  133. package/lib/nl/__test__/context-aware-prompt.test.ts +372 -0
  134. package/lib/nl/__test__/context-selector.test.ts +27 -0
  135. package/lib/nl/__test__/nl-parser-groq-transport.test.ts +139 -0
  136. package/lib/nl/__test__/nl-parser-openai-parity.test.ts +381 -0
  137. package/lib/nl/__test__/nl-parser-openai-sampling.test.ts +73 -0
  138. package/lib/nl/__test__/nl-parser-openai-transport.test.ts +79 -0
  139. package/lib/nl/__test__/nl-parser-utils.test.ts +98 -0
  140. package/lib/nl/__test__/nl-parser.test.ts +119 -0
  141. package/lib/nl/__test__/parameter-tuning.test.ts +137 -0
  142. package/lib/nl/__test__/semantic-parsing-experiment.test.ts +260 -0
  143. package/lib/nl/context-selector.ts +123 -0
  144. package/lib/nl/index.ts +19 -0
  145. package/lib/nl/llm-monitoring.test.ts +136 -0
  146. package/lib/nl/llm-monitoring.ts +339 -0
  147. package/lib/nl/nl-parser-groq.ts +510 -0
  148. package/lib/nl/nl-parser-utils.ts +310 -0
  149. package/lib/nl/nl-parser.ts +616 -0
  150. package/lib/nl/prompt-gen.ts +607 -0
  151. package/lib/nl/prompt-res.ts +207 -0
  152. package/lib/nl-interpreter.ts +262 -0
  153. 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,2 @@
1
+ export * from "./decorators";
2
+ export * from "./store";
@@ -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 {};