jsgui3-server 0.0.75 → 0.0.77

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 (158) hide show
  1. package/examples/client-side-popup-menu-button.html +93 -93
  2. package/examples/controls/_html-server-color-palette.js +114 -114
  3. package/examples/controls/html-server-combo-box.js +104 -104
  4. package/examples/controls/html-server-list.js +98 -98
  5. package/examples/controls/html-server-popup-menu-button.js +114 -114
  6. package/examples/controls/html-server-start-stop-toggle-button.js +146 -146
  7. package/examples/controls/scs-arrow-button.js +36 -36
  8. package/examples/controls/scs-date-picker.js +157 -157
  9. package/examples/controls/scs-file-browser.js +82 -82
  10. package/examples/controls/scs-item.js +159 -159
  11. package/examples/controls/scs-month-arrow-selector.js +126 -126
  12. package/examples/controls/scs-month-view.js +95 -95
  13. package/examples/controls/scs-start-stop-toggle-button.js +40 -40
  14. package/examples/controls/scs-tree.js +49 -49
  15. package/examples/controls/scs-year-arrow-selector.js +127 -127
  16. package/examples/demos/date-picker.js +119 -119
  17. package/examples/demos/explain-encapsulation.js +9 -9
  18. package/examples/demos/resizing.js +35 -35
  19. package/examples/demos/server_time.js +6 -6
  20. package/examples/demos/square_box.js +324 -324
  21. package/examples/html-rendering.js +20 -20
  22. package/examples/html-server.js +100 -100
  23. package/fs2.js +1836 -1836
  24. package/module.js +21 -21
  25. package/old/single-control-server.js +418 -418
  26. package/package.json +44 -42
  27. package/publishing/function-publisher.js +202 -202
  28. package/publishing/notes.md +5 -5
  29. package/publishing/observable-publisher.js +118 -118
  30. package/publishing/resource-publisher.js +306 -306
  31. package/resources/data-resource.js +104 -104
  32. package/resources/fs-resource.js +148 -148
  33. package/resources/jsbuilder/Abstract_Single_Declaration.js +105 -0
  34. package/resources/jsbuilder/Abstract_Single_Declaration_Sequence.js +43 -0
  35. package/resources/jsbuilder/JS_AST/JS_AST_Abstract_Node.js +62 -0
  36. package/resources/jsbuilder/JS_AST/JS_AST_Abstract_Node_Group.js +42 -0
  37. package/resources/jsbuilder/JS_AST/JS_AST_Group_Shared.js +62 -0
  38. package/resources/jsbuilder/JS_AST/JS_AST_Node.js +94 -0
  39. package/resources/jsbuilder/JS_AST/JS_AST_Node_0-Core.js +228 -0
  40. package/resources/jsbuilder/JS_AST/JS_AST_Node_1-Babel.js +338 -0
  41. package/resources/jsbuilder/JS_AST/JS_AST_Node_10-Changing.js +40 -0
  42. package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.1-Child.js +97 -0
  43. package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.2-Parent.js +38 -0
  44. package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.3-Ancestor.js +62 -0
  45. package/resources/jsbuilder/JS_AST/JS_AST_Node_2.2-Inner.js +44 -0
  46. package/resources/jsbuilder/JS_AST/JS_AST_Node_2.3-All.js +73 -0
  47. package/resources/jsbuilder/JS_AST/JS_AST_Node_2.4-Sibling.js +93 -0
  48. package/resources/jsbuilder/JS_AST/JS_AST_Node_2.5-Available_In_Scope.js +29 -0
  49. package/resources/jsbuilder/JS_AST/JS_AST_Node_2.9-Signature.js +116 -0
  50. package/resources/jsbuilder/JS_AST/JS_AST_Node_3-Basics.js +160 -0
  51. package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.0-Basics_First.js +179 -0
  52. package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.1-Basics_Second.js +88 -0
  53. package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.99-Basics_Last.js +92 -0
  54. package/resources/jsbuilder/JS_AST/JS_AST_Node_3.1-Basics_Each.js +137 -0
  55. package/resources/jsbuilder/JS_AST/JS_AST_Node_3.1.5-Basics_Count.js +74 -0
  56. package/resources/jsbuilder/JS_AST/JS_AST_Node_3.2-Basics_Filter.js +40 -0
  57. package/resources/jsbuilder/JS_AST/JS_AST_Node_3.3-Basics_Collect.js +86 -0
  58. package/resources/jsbuilder/JS_AST/JS_AST_Node_3.4-Basics_Select.js +43 -0
  59. package/resources/jsbuilder/JS_AST/JS_AST_Node_3.5-Basics_Find.js +41 -0
  60. package/resources/jsbuilder/JS_AST/JS_AST_Node_3.6-Basics_Callmap.js +55 -0
  61. package/resources/jsbuilder/JS_AST/JS_AST_Node_4.0-Index_Indexes.js +46 -0
  62. package/resources/jsbuilder/JS_AST/JS_AST_Node_4.1-Index.js +344 -0
  63. package/resources/jsbuilder/JS_AST/JS_AST_Node_5.0-Category.js +39 -0
  64. package/resources/jsbuilder/JS_AST/JS_AST_Node_5.1-Category_Identifier.js +31 -0
  65. package/resources/jsbuilder/JS_AST/JS_AST_Node_5.2-Category_Literal.js +29 -0
  66. package/resources/jsbuilder/JS_AST/JS_AST_Node_5.3-Category_Expression.js +27 -0
  67. package/resources/jsbuilder/JS_AST/JS_AST_Node_5.4-Category_Pattern.js +9 -0
  68. package/resources/jsbuilder/JS_AST/JS_AST_Node_5.5-Category_Declaration.js +44 -0
  69. package/resources/jsbuilder/JS_AST/JS_AST_Node_5.6-Category_Statement.js +22 -0
  70. package/resources/jsbuilder/JS_AST/JS_AST_Node_6.0-Type.js +87 -0
  71. package/resources/jsbuilder/JS_AST/JS_AST_Node_6.1-Type_Class_Declaration.js +9 -0
  72. package/resources/jsbuilder/JS_AST/JS_AST_Node_6.2-Type_Variable_Declaration.js +28 -0
  73. package/resources/jsbuilder/JS_AST/JS_AST_Node_6.3-Type_Variable_Declarator.js +29 -0
  74. package/resources/jsbuilder/JS_AST/JS_AST_Node_7-Query.js +737 -0
  75. package/resources/jsbuilder/JS_AST/JS_AST_Node_8-Features.js +65 -0
  76. package/resources/jsbuilder/JS_AST/JS_AST_Node_9-Planning.js +32 -0
  77. package/resources/jsbuilder/JS_AST/JS_AST_Node_Arrangement.js +15 -0
  78. package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Declared_Object.js +306 -0
  79. package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature.js +78 -0
  80. package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature_Declaration.js +249 -0
  81. package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature_Declarator.js +139 -0
  82. package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature.js +10 -0
  83. package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature_Exported.js +101 -0
  84. package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature_Exports.js +61 -0
  85. package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Interpreted.js +180 -0
  86. package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/_JSGUI_Root_Node_Interpreted.js +43 -0
  87. package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/special_case_objectassign_to_object.js +12 -0
  88. package/resources/jsbuilder/JS_AST/JS_AST_Node_Group.js +35 -0
  89. package/resources/jsbuilder/JS_AST/JS_AST_Operation.js +11 -0
  90. package/resources/jsbuilder/JS_AST/JS_AST_Operation_On_Relationship.js +32 -0
  91. package/resources/jsbuilder/JS_AST/JS_AST_Ordered_Relationship_Node_To_Group.js +38 -0
  92. package/resources/jsbuilder/JS_AST/JS_AST_Ordinal.js +40 -0
  93. package/resources/jsbuilder/JS_AST/JS_AST_Ordinal_Relationship.js +25 -0
  94. package/resources/jsbuilder/JS_AST/JS_AST_Relationship_Node_To_Group.js +201 -0
  95. package/resources/jsbuilder/JS_AST/JS_AST_Relationship_Node_Within_Group_To_Node.js +44 -0
  96. package/resources/jsbuilder/JS_AST/_JS_AST_Node_3.8-Query_Features.js +77 -0
  97. package/resources/jsbuilder/JS_AST/query/all.js +0 -0
  98. package/resources/jsbuilder/JS_AST/query/enable_array_as_queryable.js +228 -0
  99. package/resources/jsbuilder/JS_AST/query/find_object_keys.js +405 -0
  100. package/resources/jsbuilder/JS_AST/query/node_queries.js +9 -0
  101. package/resources/jsbuilder/JS_AST/query/root_queries.js +0 -0
  102. package/resources/jsbuilder/JS_AST/query/root_query_identidy.js +12 -0
  103. package/resources/jsbuilder/JS_AST_Node_Extended/JSGUI_Singular_Declaration.js +86 -0
  104. package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Declaration.js +124 -0
  105. package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Extended.js +88 -0
  106. package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Extended_0-Core.js +11 -0
  107. package/resources/jsbuilder/JS_Builder.js +10 -36
  108. package/resources/jsbuilder/JS_File/Feature/JS_File_Declared_Object.js +32 -0
  109. package/resources/jsbuilder/JS_File/Feature/JS_File_Exported_Object_Info.js +26 -0
  110. package/resources/jsbuilder/JS_File/Feature/JS_File_Exports.js +79 -0
  111. package/resources/jsbuilder/JS_File/Feature/JS_File_Feature.js +18 -0
  112. package/resources/jsbuilder/JS_File/Feature/JS_File_Imported_Object_Info.js +26 -0
  113. package/resources/jsbuilder/JS_File/Feature/JS_File_Imports.js +9 -0
  114. package/resources/jsbuilder/JS_File/JS_File.js +12 -0
  115. package/resources/jsbuilder/JS_File/JS_File_0-Core.js +202 -0
  116. package/resources/jsbuilder/JS_File/JS_File_1-Early_Parse.js +175 -0
  117. package/resources/jsbuilder/JS_File/JS_File_2-Babel.js +81 -0
  118. package/resources/jsbuilder/JS_File/JS_File_3-JS_AST_Node.js +86 -0
  119. package/resources/jsbuilder/JS_File/JS_File_4-Query.js +414 -0
  120. package/resources/jsbuilder/JS_File/JS_File_4.1-Query_Features.js +415 -0
  121. package/resources/jsbuilder/JS_File/JS_File_5-Planning.js +59 -0
  122. package/resources/jsbuilder/JS_File/JS_File_6-Changing.js +24 -0
  123. package/resources/jsbuilder/JS_File/JS_File_Export_Reference.js +12 -0
  124. package/resources/jsbuilder/JS_File/JS_File_Import_Reference.js +24 -0
  125. package/resources/jsbuilder/JS_File/JS_File_Import_References.js +32 -0
  126. package/resources/jsbuilder/JS_File/JS_File_Processor.js +16 -0
  127. package/resources/jsbuilder/JS_File/JS_Files.js +16 -0
  128. package/resources/jsbuilder/Module.js +14 -0
  129. package/resources/jsbuilder/Platform.js +13 -53
  130. package/resources/jsbuilder/Platforms.js +69 -15
  131. package/resources/jsbuilder/Project.js +109 -0
  132. package/resources/jsbuilder/Reference.js +1 -1
  133. package/resources/jsbuilder/Reference_Sequence.js +16 -7
  134. package/resources/jsbuilder/Scope.js +30 -0
  135. package/resources/jsbuilder/Variable_Name_Provider.js +43 -0
  136. package/resources/jsbuilder/_JS_File.js +226 -0
  137. package/resources/jsbuilder/ast_query.js +21 -0
  138. package/resources/jsbuilder/babel/babel_consts.js +150 -0
  139. package/resources/jsbuilder/babel/babel_node_tools.js +542 -0
  140. package/resources/jsbuilder/babel/deep_iterate/deep_iterate_babel.js +604 -0
  141. package/resources/jsbuilder/build.js +16 -0
  142. package/resources/jsbuilder/platform_notes.md +66 -0
  143. package/resources/jsbuilder/test/test_ast_node.js +451 -0
  144. package/resources/jsbuilder/test/test_js_file.js +303 -11
  145. package/resources/jsbuilder/test/test_project.js +157 -0
  146. package/resources/local-server-info-resource.js +78 -78
  147. package/resources/process-js.js +537 -537
  148. package/resources/server-resource-pool.js +84 -84
  149. package/resources/website-css-resource.js +411 -411
  150. package/resources/website-javascript-resource.js +761 -751
  151. package/resources/website-resource.js +390 -390
  152. package/resources/website-static-html-resource.js +196 -196
  153. package/server.js +170 -170
  154. package/single-control-server.js +398 -398
  155. package/single-page-app.js +129 -129
  156. package/resources/jsbuilder/Declaration.js +0 -15
  157. package/resources/jsbuilder/Declaration_Sequence.js +0 -15
  158. package/resources/jsbuilder/JS_File.js +0 -77
@@ -0,0 +1,77 @@
1
+ //const babel_node_tools = require('../babel/babel_node_tools');
2
+
3
+
4
+ const JS_AST_Node_Basics_Find = require('./JS_AST_Node_3.5-Basics_Find');
5
+
6
+ // Could make a more specific feature extraction part.
7
+ // Will come up with more:
8
+
9
+ // 2.1 Identify
10
+ // 2.2 ??? - Extract_Feature?
11
+
12
+ // Will identify more information about what JS is contained.
13
+ // Eg if it's a recognised code library structure that can be extracted.
14
+ // Identify the main block of declarations in a (library or framework) file.
15
+ // Identify the variable definitions in there.
16
+
17
+ // Need more capability here to find and match specified features.
18
+ // Asking questions about a piece of code - questions to later determine what it is and how to use it.
19
+ // .matches_type_signature(signature)
20
+ // . but using a tree is better for checking multiple signatures at once.
21
+
22
+ class JS_AST_Node_Basics_Features extends JS_AST_Node_Basics_Find {
23
+ constructor(spec = {}) {
24
+ super(spec);
25
+ // Getting the assigned values also seems important.
26
+ // Possibly will be made into some kind of autoquery? Or may be better to do queries lazily, and store the results.
27
+
28
+ // Declared Object features inside a node.
29
+
30
+ // If a node 'features' declared objects, then the syntax in which they are declared is not so important.
31
+ // This is an abstraction level above that.
32
+
33
+ // Want to keep it faitrly generic at this stage
34
+ // Will do more with root node interpretation for the moment I expect.
35
+ // First priority is to get everything linking together properly in an output file.
36
+ //
37
+ const arr_features_declared_object = [];
38
+ const features = [];
39
+ const map_arr_features_by_feature_name = {
40
+
41
+ }
42
+ Object.defineProperty(this, 'features', {
43
+ get() {
44
+ //if (!features) {
45
+ // features = [];
46
+ //}
47
+ return features;
48
+ },
49
+ //set(newValue) { bValue = newValue; },
50
+ enumerable: true,
51
+ configurable: false
52
+ });
53
+
54
+ // get literal names
55
+ // or is it value
56
+
57
+ // // Assignment Feature?
58
+
59
+
60
+ // Document features make the most sense to work on from the API point of view.
61
+ // Or root node features really.
62
+
63
+ // Will try loading up and querying an interpreted root node.
64
+ // Or jsgui root node interpreted?
65
+ // Even with that Object.assign trick, we can make it aware, keep that in the general purpose code.
66
+
67
+
68
+ // The imports and exports features are important for linking together the documents.
69
+
70
+
71
+
72
+
73
+
74
+ }
75
+ }
76
+
77
+ module.exports = JS_AST_Node_Basics_Features;
File without changes
@@ -0,0 +1,228 @@
1
+ const {each} = require('lang-mini');
2
+
3
+ const create_query_execution_fn = (arr, words = []) => {
4
+ //console.log('words', words);
5
+
6
+ /*
7
+ const {
8
+ each_child_node, filter_each_child_node,
9
+ find_node, filter_deep_iterate, filter_inner_deep_iterate, filter_child_nodes_by_type,
10
+ select_all, select_child, select_inner
11
+ } = node;
12
+ */
13
+
14
+ let proceed = true;
15
+
16
+
17
+
18
+ if (proceed) {
19
+
20
+
21
+
22
+ //console.log('arr', arr);
23
+ console.log('* words', words);
24
+
25
+ const sentence = words.join(' ');
26
+ console.log('sentence', sentence);
27
+
28
+ // if the first word is collect, apply that query to each of the nodes in the array and amalgamate the results.
29
+
30
+ if (words[0] === 'select') {
31
+ return (selector) => {
32
+ const res = [];
33
+ each(arr, node => {
34
+ const node_res = node.query_with_words(words).exe(selector);
35
+ //console.log('node_res', node_res);
36
+
37
+ if (Array.isArray(node_res)) {
38
+ each(node_res, i => {
39
+ if (i !== undefined) {
40
+ res.push(i);
41
+
42
+ } else {
43
+ console.trace();
44
+ throw 'stop';
45
+ }
46
+ });
47
+ } else {
48
+ throw 'stop';
49
+ }
50
+
51
+
52
+
53
+ })
54
+ enable_array_as_queryable(res);
55
+ return res;
56
+ }
57
+ } else if (words[0] === 'collect') {
58
+ return () => {
59
+ const res = [];
60
+ each(arr, node => {
61
+ const node_res = node.query_with_words(words).exe();
62
+ //console.log('node_res', node_res);
63
+
64
+ if (Array.isArray(node_res)) {
65
+ each(node_res, i => {
66
+ if (i !== undefined) {
67
+ res.push(i);
68
+
69
+ } else {
70
+ console.trace();
71
+ throw 'stop';
72
+ }
73
+ });
74
+ } else {
75
+ throw 'stop';
76
+ }
77
+
78
+
79
+
80
+ })
81
+ enable_array_as_queryable(res);
82
+ return res;
83
+ }
84
+ } else {
85
+
86
+ if (words[0] === 'each') {
87
+ return (callback) => {
88
+ //const res = [];
89
+ each(arr, node => {
90
+ //console.log('words', words);
91
+ const node_res = node.query_with_words(words).exe(callback);
92
+ //console.log('node_res', node_res);
93
+
94
+ /*
95
+ each(node_res, i => {
96
+ //res.push(i);
97
+ callback(i);
98
+ });
99
+ */
100
+
101
+ })
102
+ //return res;
103
+ }
104
+ } else if (words[0] === 'find') {
105
+ return (callback) => {
106
+ //const res = [];
107
+
108
+ let res;
109
+ each(arr, node => {
110
+
111
+ if (!res) {
112
+ //console.log('words', words);
113
+ const node_res = node.query_with_words(words).exe(callback);
114
+ //console.log('node_res', node_res);
115
+
116
+ //throw 'stop';
117
+
118
+ if (node_res) {
119
+ res = node_res;
120
+ } else {
121
+ throw 'stop';
122
+ }
123
+ }
124
+
125
+
126
+
127
+
128
+ /*
129
+ each(node_res, i => {
130
+ //res.push(i);
131
+ callback(i);
132
+ });
133
+ */
134
+
135
+ })
136
+ return res;
137
+ }
138
+ } else {
139
+ throw 'NYI';
140
+ }
141
+
142
+
143
+
144
+ }
145
+
146
+
147
+ }
148
+
149
+
150
+
151
+
152
+ throw 'NYI';
153
+
154
+ }
155
+
156
+
157
+
158
+ const create_query = (arr, words = []) => {
159
+
160
+
161
+
162
+ const res = {
163
+ //message1: "hello",
164
+ //message2: "everyone"
165
+ };
166
+
167
+ const handler2 = {
168
+ get: function(target, prop, receiver) {
169
+
170
+ //console.log('target', target);
171
+ //console.log('prop', prop);
172
+ //console.log('receiver', receiver);
173
+
174
+ //console.log('target === res', target === res);
175
+
176
+ if (target === res) {
177
+
178
+ if (prop === 'exe') {
179
+
180
+ //throw 'stop';
181
+
182
+ return create_query_execution_fn(arr, words);
183
+
184
+ //throw 'NYI'
185
+
186
+ // return the execution function.
187
+
188
+
189
+
190
+ } else if (prop === 'qstring') {
191
+ return words.join('.');
192
+ } else {
193
+ words.push(prop);
194
+ return create_query(arr, words);
195
+ }
196
+
197
+ } else {
198
+ throw 'stop';
199
+ }
200
+ }
201
+ };
202
+
203
+ const proxy2 = new Proxy(res, handler2);
204
+
205
+ return proxy2;
206
+ }
207
+
208
+ const enable_array_as_queryable = (arr) => {
209
+
210
+ let proceed = true;
211
+ //console.log('arr', arr);
212
+
213
+ each(arr, item => {
214
+ //console.log('item', item);
215
+ //if (!Array.isArray(item)) proceed = false;
216
+ if (!item || !item.babel) {
217
+ proceed = false;
218
+ }
219
+ })
220
+
221
+ // will of course provide a query property.
222
+
223
+ if (!arr.query && proceed) arr.query = create_query(arr);
224
+ return arr;
225
+
226
+ }
227
+
228
+ module.exports = enable_array_as_queryable;