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,604 @@
1
+ // May make it support depth and paths.
2
+
3
+ // path starts at /
4
+ // then it's numbers for the number of each child.
5
+
6
+
7
+
8
+
9
+
10
+
11
+ const {each} = require('lang-mini');
12
+
13
+
14
+ // deep_iterate_babel_super_node
15
+
16
+ const deep_iterate_babel_super_node = (babel_node, depth, path, common, callback) => {
17
+ //let sibling_number = 0;
18
+ //const {test, concequent, alternate} = babel_node;
19
+ //deep_iterate_babel_node_$INTERNAL(test, depth + 1, path + sibling_number++ + '/', common, callback);
20
+ //deep_iterate_babel_node_$INTERNAL(concequent, depth + 1, path + sibling_number++ + '/', common, callback);
21
+ //deep_iterate_babel_node_$INTERNAL(alternate, depth + 1, path + sibling_number++ + '/', common, callback);
22
+
23
+ //console.log('babel_node', babel_node);
24
+ //throw 'nyi';
25
+
26
+ // like an if statement
27
+ }
28
+
29
+ const deep_iterate_babel_conditional_expression_node = (babel_node, depth, path, common, callback) => {
30
+ let sibling_number = 0;
31
+ const {test, concequent, alternate} = babel_node;
32
+ deep_iterate_babel_node_$INTERNAL(test, depth + 1, path + sibling_number++ + '/', common, callback);
33
+ deep_iterate_babel_node_$INTERNAL(concequent, depth + 1, path + sibling_number++ + '/', common, callback);
34
+ deep_iterate_babel_node_$INTERNAL(alternate, depth + 1, path + sibling_number++ + '/', common, callback);
35
+
36
+ // like an if statement
37
+ }
38
+
39
+ const deep_iterate_babel_object_method_node = (babel_node, depth, path, common, callback) => {
40
+ //console.log('babel_node', babel_node);
41
+
42
+ const {key, params, body} = babel_node;
43
+
44
+ let sibling_number = 0;
45
+ deep_iterate_babel_node_$INTERNAL(key, depth + 1, path + sibling_number++ + '/', common, callback);
46
+ each(params, x => deep_iterate_babel_node_$INTERNAL(x, depth + 1, path + sibling_number++ + '/', common, callback));
47
+ deep_iterate_babel_node_$INTERNAL(body, depth + 1, path + sibling_number++ + '/', common, callback);
48
+
49
+ //throw 'NYI';
50
+ }
51
+
52
+
53
+ // deep_iterate_object_method_node
54
+ const deep_iterate_this_expression_node = (babel_node, depth, path, common, callback) => {
55
+
56
+ }
57
+
58
+ // const deep_iterate_array_pattern_node
59
+
60
+ const deep_iterate_array_pattern_node = (babel_node, depth, path, common, callback) => {
61
+ // .elements
62
+
63
+ const {elements} = babel_node;
64
+ let sibling_number = 0;
65
+
66
+ each(elements, x => deep_iterate_babel_node_$INTERNAL(x, depth + 1, path + sibling_number++ + '/', common, callback));
67
+ }
68
+
69
+ // may put the sibling number / index into the callback.
70
+
71
+ const deep_iterate_program_node = (babel_node, depth, path, common, callback) => {
72
+ const {body, directives} = babel_node;
73
+ let sibling_number = 0;
74
+ each(body, x => deep_iterate_babel_node_$INTERNAL(x, depth + 1, path + sibling_number++ + '/', common, callback));
75
+
76
+ if (directives.length > 0) {
77
+ console.log('babel_node', babel_node);
78
+ console.log('directives', directives);
79
+ throw 'NYI';
80
+ }
81
+ }
82
+
83
+ // deep_iterate_babel_file_node
84
+
85
+ const deep_iterate_babel_file_node = (babel_node, depth, path, common, callback) => {
86
+ const {program} = babel_node;
87
+ let sibling_number = 0;
88
+ deep_iterate_babel_node_$INTERNAL(program, depth + 1, path + sibling_number++ + '/', common, callback);
89
+ }
90
+
91
+
92
+ const deep_iterate_babel_class_method_node = (babel_node, depth, path, common, callback) => {
93
+ const {key, computed, kind, id, body, params} = babel_node;
94
+ let sibling_number = 0;
95
+ //console.log('babel_node', babel_node);
96
+ //throw 'stop';
97
+ deep_iterate_babel_node_$INTERNAL(key, depth + 1, path + sibling_number++ + '/', common, callback);
98
+ if (id) {
99
+ console.log('babel_node', babel_node);
100
+ throw 'NYI';
101
+ }
102
+
103
+ each(params, x => deep_iterate_babel_node_$INTERNAL(x, depth + 1, path + sibling_number++ + '/', common, callback));
104
+ deep_iterate_babel_node_$INTERNAL(body, depth + 1, path + sibling_number++ + '/', common, callback);
105
+
106
+ //console.log('babel_node', babel_node);
107
+ //throw 'stop';
108
+ }
109
+
110
+ const deep_iterate_babel_class_body_node = (babel_node, depth, path, common, callback) => {
111
+ const {extra, body} = babel_node;
112
+ let sibling_number = 0;
113
+ //deep_iterate_babel_node(body, depth, path, common, callback);
114
+ each(body, x => deep_iterate_babel_node_$INTERNAL(x, depth + 1, path + sibling_number++ + '/', common, callback));
115
+
116
+ }
117
+
118
+ const deep_iterate_babel_class_declaration_node = (babel_node, depth, path, common, callback) => {
119
+ //console.log('babel_node', babel_node);
120
+ let sibling_number = 0;
121
+ const {extra, id, superclass, body} = babel_node;
122
+ deep_iterate_babel_node_$INTERNAL(id, depth + 1, path + sibling_number++ + '/', common, callback);
123
+
124
+ if (superclass) {
125
+ console.log('babel_node', babel_node);
126
+ throw 'NYI';
127
+ }
128
+ deep_iterate_babel_node_$INTERNAL(body, depth + 1, path + sibling_number++ + '/', common, callback);
129
+
130
+
131
+ //console.log('body', body);
132
+ //console.log('babel_node', babel_node);
133
+ //throw 'stop';
134
+ }
135
+
136
+ const deep_iterate_babel_object_pattern_node = (babel_node, depth, path, common, callback) => {
137
+ const {extra, properties} = babel_node;
138
+ let sibling_number = 0;
139
+ each(properties, x => deep_iterate_babel_node_$INTERNAL(x, depth + 1, path + sibling_number++ + '/', common, callback));
140
+ }
141
+
142
+ const deep_iterate_babel_while_statement_node = (babel_node, depth, path, common, callback) => {
143
+ const {extra, body, test} = babel_node;
144
+ let sibling_number = 0;
145
+ deep_iterate_babel_node_$INTERNAL(test, depth + 1, path + sibling_number++ + '/', common, callback);
146
+ deep_iterate_babel_node_$INTERNAL(body, depth + 1, path + sibling_number++ + '/', common, callback);
147
+ }
148
+
149
+ const deep_iterate_babel_assignment_pattern_node = (babel_node, depth, path, common, callback) => {
150
+ const {extra, left, right} = babel_node;
151
+ let sibling_number = 0;
152
+ deep_iterate_babel_node_$INTERNAL(left, depth + 1, path + sibling_number++ + '/', common, callback);
153
+ deep_iterate_babel_node_$INTERNAL(right, depth + 1, path + sibling_number++ + '/', common, callback);
154
+ }
155
+
156
+ const deep_iterate_babel_throw_statement_node = (babel_node, depth, path, common, callback) => {
157
+ const {extra, argument} = babel_node;
158
+ let sibling_number = 0;
159
+ deep_iterate_babel_node_$INTERNAL(argument, depth + 1, path + sibling_number++ + '/', common, callback);
160
+
161
+ //deep_iterate_babel_node(right, str_source);
162
+ //each(elements, element => deep_iterate_babel_node(element, str_source));
163
+ }
164
+
165
+ const deep_iterate_babel_boolean_literal_node = (babel_node, depth, path, common, callback) => {
166
+ const {value} = babel_node;
167
+ }
168
+
169
+ const deep_iterate_babel_null_literal_node = (babel_node, depth, path, common, callback) => {
170
+
171
+ }
172
+
173
+ const deep_iterate_babel_empty_statement_node = (babel_node, depth, path, common, callback) => {
174
+
175
+ }
176
+
177
+ const deep_iterate_babel_new_expression_node = (babel_node, depth, path, common, callback) => {
178
+ const {extra, callee} = babel_node;
179
+ let sibling_number = 0;
180
+
181
+ deep_iterate_babel_node_$INTERNAL(callee, depth + 1, path + sibling_number++ + '/', common, callback);
182
+ each(babel_node.arguments, x => deep_iterate_babel_node_$INTERNAL(x, depth + 1, path + sibling_number++ + '/', common, callback));
183
+ //deep_iterate_babel_node(right, str_source);
184
+ //each(elements, element => deep_iterate_babel_node(element, str_source));
185
+ }
186
+
187
+ const deep_iterate_babel_update_expression_node = (babel_node, depth, path, common, callback) => {
188
+ const {extra, operator, prefix, argument} = babel_node;
189
+ let sibling_number = 0;
190
+
191
+ deep_iterate_babel_node_$INTERNAL(argument, depth + 1, path + sibling_number++ + '/', common, callback);
192
+
193
+ //deep_iterate_babel_node(right, str_source);
194
+ //each(elements, element => deep_iterate_babel_node(element, str_source));
195
+ }
196
+
197
+ const deep_iterate_babel_numeric_literal_node = (babel_node, depth, path, common, callback) => {
198
+ const {extra, value} = babel_node;
199
+
200
+ //deep_iterate_babel_node(right, str_source);
201
+ //each(elements, element => deep_iterate_babel_node(element, str_source));
202
+ }
203
+
204
+
205
+ const deep_iterate_babel_for_statement_node = (babel_node, depth, path, common, callback) => {
206
+ const {extra, init, test, update, body} = babel_node;
207
+ let sibling_number = 0;
208
+
209
+ deep_iterate_babel_node_$INTERNAL(init, depth + 1, path + sibling_number++ + '/', common, callback);
210
+ deep_iterate_babel_node_$INTERNAL(test, depth + 1, path + sibling_number++ + '/', common, callback);
211
+ deep_iterate_babel_node_$INTERNAL(update, depth + 1, path + sibling_number++ + '/', common, callback);
212
+ deep_iterate_babel_node_$INTERNAL(body, depth + 1, path + sibling_number++ + '/', common, callback);
213
+ //deep_iterate_babel_node(right, str_source);
214
+ //each(elements, element => deep_iterate_babel_node(element, str_source));
215
+ }
216
+
217
+ const deep_iterate_babel_array_expression_node = (babel_node, depth, path, common, callback) => {
218
+ const {extra, elements} = babel_node;
219
+ let sibling_number = 0;
220
+ //console.log('babel_node', babel_node);
221
+ //throw 'stop';
222
+ //deep_iterate_babel_node(left, str_source);
223
+ //deep_iterate_babel_node(right, str_source);
224
+ each(elements, element => deep_iterate_babel_node_$INTERNAL(element, depth + 1, path + sibling_number++ + '/', common, callback));
225
+ }
226
+
227
+ const deep_iterate_babel_assignment_expression_node = (babel_node, depth, path, common, callback) => {
228
+ const {extra, left, operator, right} = babel_node;
229
+ let sibling_number = 0;
230
+ deep_iterate_babel_node_$INTERNAL(left, depth + 1, path + sibling_number++ + '/', common, callback);
231
+ deep_iterate_babel_node_$INTERNAL(right, depth + 1, path + sibling_number++ + '/', common, callback);
232
+ }
233
+
234
+ const deep_iterate_babel_expression_statement_node = (babel_node, depth, path, common, callback) => {
235
+ //const {extra, left, operator, right} = babel_node;
236
+ const {extra, expression} = babel_node;
237
+ let sibling_number = 0;
238
+ deep_iterate_babel_node_$INTERNAL(expression, depth + 1, path + sibling_number++ + '/', common, callback);
239
+ //deep_iterate_babel_node_$INTERNAL(right, depth + 1, path + sibling_number++ + '/', common, callback);
240
+ }
241
+
242
+ const deep_iterate_babel_variable_declarator_node = (babel_node, depth, path, common, callback) => {
243
+ const {extra, id, init} = babel_node;
244
+ let sibling_number = 0;
245
+ deep_iterate_babel_node_$INTERNAL(id, depth + 1, path + sibling_number++ + '/', common, callback);
246
+ deep_iterate_babel_node_$INTERNAL(init, depth + 1, path + sibling_number++ + '/', common, callback);
247
+ }
248
+
249
+ const deep_iterate_babel_logical_expression_node = (babel_node, depth, path, common, callback) => {
250
+ const {extra, left, operator, right} = babel_node;
251
+ let sibling_number = 0;
252
+ deep_iterate_babel_node_$INTERNAL(left, depth + 1, path + sibling_number++ + '/', common, callback);
253
+ deep_iterate_babel_node_$INTERNAL(right, depth + 1, path + sibling_number++ + '/', common, callback);
254
+ }
255
+
256
+ const deep_iterate_babel_function_expression_node = (babel_node, depth, path, common, callback) => {
257
+ //console.log('deep_iterate_babel_function_expression_node', babel_node);
258
+ let sibling_number = 0;
259
+ const {extra, id, generator, async, params, body} = babel_node;
260
+
261
+ deep_iterate_babel_node_$INTERNAL(id, depth + 1, path + sibling_number++ + '/', common, callback);
262
+ each(params, param => deep_iterate_babel_node_$INTERNAL(param, depth + 1, path + sibling_number++ + '/', common, callback));
263
+ deep_iterate_babel_node_$INTERNAL(body, depth + 1, path + sibling_number++ + '/', common, callback);
264
+
265
+ //const {extra, object, computed /*bool*/, property} = babel_node;
266
+ //throw 'NYI'
267
+ }
268
+
269
+ const deep_iterate_babel_member_expression_node = (babel_node, depth, path, common, callback) => {
270
+ //console.log('deep_iterate_babel_member_expression_node', babel_node);
271
+ const {extra, object, computed /*bool*/, property} = babel_node;
272
+ let sibling_number = 0;
273
+
274
+
275
+ if (extra) {
276
+ throw 'NYI'
277
+ };
278
+ deep_iterate_babel_node_$INTERNAL(object, depth + 1, path + sibling_number++ + '/', common, callback);
279
+ deep_iterate_babel_node_$INTERNAL(property, depth + 1, path + sibling_number++ + '/', common, callback);
280
+ }
281
+
282
+ const deep_iterate_babel_call_expression_node = (babel_node, depth, path, common, callback) => {
283
+ //console.log('deep_iterate_babel_object_property_node', babel_node);
284
+ let sibling_number = 0;
285
+ const {extra, callee} = babel_node;
286
+
287
+ if (extra) {
288
+ //throw 'NYI';
289
+ const {parenthasized, parenStart} = extra;
290
+ }
291
+ deep_iterate_babel_node_$INTERNAL(callee, depth + 1, path + sibling_number++ + '/', common, callback);
292
+
293
+ each(babel_node.arguments, argument => {
294
+ deep_iterate_babel_node_$INTERNAL(argument, depth + 1, path + sibling_number++ + '/', common, callback);
295
+ })
296
+
297
+ //throw 'stop';
298
+ }
299
+
300
+ const deep_iterate_babel_object_property_node = (babel_node, depth, path, common, callback) => {
301
+ //console.log('deep_iterate_babel_object_property_node', babel_node);
302
+
303
+ const {method, key, computed, shorthand, value} = babel_node;
304
+ //const {properties} = babel_node;
305
+ let sibling_number = 0;
306
+
307
+ // but the key and the value can be the same???
308
+
309
+ //console.log('key', key);
310
+ //console.log('value', value);
311
+
312
+ // Key and value being the same thing?
313
+
314
+
315
+
316
+ deep_iterate_babel_node_$INTERNAL(key, depth + 1, path + sibling_number++ + '/', common, callback);
317
+
318
+ if (value.start !== key.start) {
319
+ //throw 'stop';
320
+ deep_iterate_babel_node_$INTERNAL(value, depth + 1, path + sibling_number++ + '/', common, callback);
321
+ }
322
+ //
323
+
324
+ //throw 'stop';
325
+ }
326
+
327
+ const deep_iterate_babel_object_expression_node = (babel_node, depth, path, common, callback) => {
328
+ //console.log('deep_iterate_babel_object_expression_node', babel_node);
329
+ const {properties} = babel_node;
330
+ let sibling_number = 0;
331
+ each(properties, property => {
332
+ deep_iterate_babel_node_$INTERNAL(property, depth + 1, path + sibling_number++ + '/', common, callback);
333
+ })
334
+
335
+ //throw 'stop';
336
+ }
337
+
338
+ const deep_iterate_babel_return_statement_node = (babel_node, depth, path, common, callback) => {
339
+ //console.log('deep_iterate_babel_return_statement_node', babel_node);
340
+ let sibling_number = 0;
341
+ const {argument} = babel_node;
342
+ deep_iterate_babel_node_$INTERNAL(argument, depth + 1, path + sibling_number++ + '/', common, callback);
343
+
344
+ //throw 'stop';
345
+
346
+ }
347
+
348
+ const deep_iterate_babel_if_statement_node = (babel_node, depth, path, common, callback) => {
349
+ //console.log('deep_iterate_babel_if_statement_node', babel_node);
350
+ let sibling_number = 0;
351
+ const {test, concequent, alternate} = babel_node;
352
+ deep_iterate_babel_node_$INTERNAL(test, depth + 1, path + sibling_number++ + '/', common, callback);
353
+ deep_iterate_babel_node_$INTERNAL(concequent, depth + 1, path + sibling_number++ + '/', common, callback);
354
+ deep_iterate_babel_node_$INTERNAL(alternate, depth + 1, path + sibling_number++ + '/', common, callback);
355
+
356
+
357
+ //throw 'stop';
358
+
359
+ }
360
+
361
+ const deep_iterate_babel_block_statement_node = (babel_node, depth, path, common, callback) => {
362
+ const {params, body} = babel_node;
363
+ let sibling_number = 0;
364
+ if (params && params.length > 0) {
365
+ console.log('params', params);
366
+ throw 'stop';
367
+ }
368
+ each(body, body_item => {
369
+ deep_iterate_babel_node_$INTERNAL(body_item, depth + 1, path + sibling_number++ + '/', common, callback);
370
+ });
371
+ }
372
+
373
+ const deep_iterate_babel_arrow_function_expression_node = (babel_node, depth, path, common, callback) => {
374
+ //console.log('deep_iterate_babel_arrow_function_expression_node', babel_node);
375
+
376
+ const {generator, async, params, body} = babel_node;
377
+ let sibling_number = 0;
378
+ // Assume the params are nodes.
379
+
380
+ if (params.length > 0) {
381
+ //console.log('params', params);
382
+ //throw 'NYI';
383
+ each(params, param => {
384
+ deep_iterate_babel_node_$INTERNAL(param, depth + 1, path + sibling_number++ + '/', common, callback);
385
+ })
386
+ }
387
+
388
+ deep_iterate_babel_node_$INTERNAL(body, depth + 1, path + sibling_number++ + '/', common, callback);
389
+
390
+
391
+
392
+ //throw 'stop';
393
+ }
394
+
395
+ const deep_iterate_babel_variable_declaration_node = (babel_node, depth, path, common, callback) => {
396
+ //console.log('deep_iterate_babel_variable_declaration_node', babel_node);
397
+
398
+ const {kind, declarations} = babel_node;
399
+ let sibling_number = 0;
400
+ each(declarations, declaration => deep_iterate_babel_node_$INTERNAL(declaration, depth + 1, path + sibling_number++ + '/', common, callback));
401
+ //throw 'stop';
402
+ }
403
+
404
+ const deep_iterate_babel_string_literal_node = (babel_node, depth, path, common, callback) => {
405
+ //console.log('deep_iterate_babel_string_literal_node', babel_node);
406
+ const {value} = babel_node;
407
+ //throw 'stop';
408
+ }
409
+
410
+ const deep_iterate_babel_identifier_node = (babel_node, depth, path, common, callback) => {
411
+ //console.log('deep_iterate_babel_identifier_node', babel_node);
412
+ const {name} = babel_node;
413
+
414
+ //throw 'stop';
415
+ }
416
+
417
+ const deep_iterate_babel_unary_expression_node = (babel_node, depth, path, common, callback) => {
418
+ //console.log('deep_iterate_babel_unary_expression_node', babel_node);
419
+ const {operator, argument} = babel_node;
420
+ let sibling_number = 0;
421
+
422
+ deep_iterate_babel_node_$INTERNAL(argument, depth + 1, path + sibling_number++ + '/', common, callback);
423
+
424
+
425
+ }
426
+
427
+
428
+ const deep_iterate_babel_binary_expression_node = (babel_node, depth, path, common, callback) => {
429
+ //console.log('deep_iterate_babel_binary_expression_node babel_node', babel_node);
430
+ let sibling_number = 0;
431
+ const {left, operator, right} = babel_node;
432
+ deep_iterate_babel_node_$INTERNAL(left, depth + 1, path + sibling_number++ + '/', common, callback);
433
+ deep_iterate_babel_node_$INTERNAL(right, depth + 1, path + sibling_number++ + '/', common, callback);
434
+
435
+ //throw 'stop';
436
+ }
437
+
438
+ const deep_iterate_babel_node_$INTERNAL = (babel_node, depth, path, common, callback) => {
439
+
440
+ if (babel_node) {
441
+
442
+ //let stopped = false;
443
+
444
+ const stop = () => common.stopped = true;
445
+
446
+ if (callback) {
447
+ callback(babel_node, path, depth, stop);
448
+ }
449
+ const {type} = babel_node;
450
+
451
+ if (!common.stopped) {
452
+
453
+ if (type === 'BinaryExpression') {
454
+ return deep_iterate_babel_binary_expression_node(babel_node, depth, path, common, callback);
455
+ } else if (type === 'UnaryExpression') {
456
+ return deep_iterate_babel_unary_expression_node(babel_node, depth, path, common, callback);
457
+ } else if (type === 'Identifier') {
458
+ return deep_iterate_babel_identifier_node(babel_node, depth, path, common, callback);
459
+ } else if (type === 'StringLiteral') {
460
+ return deep_iterate_babel_string_literal_node(babel_node, depth, path, common, callback);
461
+ } else if (type === 'VariableDeclaration') {
462
+ return deep_iterate_babel_variable_declaration_node(babel_node, depth, path, common, callback);
463
+ } else if (type === 'ArrowFunctionExpression') {
464
+ return deep_iterate_babel_arrow_function_expression_node(babel_node, depth, path, common, callback);
465
+ } else if (type === 'BlockStatement') {
466
+ return deep_iterate_babel_block_statement_node(babel_node, depth, path, common, callback);
467
+ } else if (type === 'IfStatement') {
468
+ return deep_iterate_babel_if_statement_node(babel_node, depth, path, common, callback);
469
+ } else if (type === 'ReturnStatement') {
470
+ return deep_iterate_babel_return_statement_node(babel_node, depth, path, common, callback);
471
+ } else if (type === 'ObjectExpression') {
472
+ return deep_iterate_babel_object_expression_node(babel_node, depth, path, common, callback);
473
+ } else if (type === 'ObjectProperty') {
474
+ return deep_iterate_babel_object_property_node(babel_node, depth, path, common, callback);
475
+ } else if (type === 'CallExpression') {
476
+ return deep_iterate_babel_call_expression_node(babel_node, depth, path, common, callback);
477
+ } else if (type === 'MemberExpression') {
478
+ return deep_iterate_babel_member_expression_node(babel_node, depth, path, common, callback);
479
+ } else if (type === 'FunctionExpression') {
480
+ return deep_iterate_babel_function_expression_node(babel_node, depth, path, common, callback);
481
+ } else if (type === 'LogicalExpression') {
482
+ return deep_iterate_babel_logical_expression_node(babel_node, depth, path, common, callback);
483
+ } else if (type === 'VariableDeclarator') {
484
+ return deep_iterate_babel_variable_declarator_node(babel_node, depth, path, common, callback);
485
+ } else if (type === 'ExpressionStatement') {
486
+ return deep_iterate_babel_expression_statement_node(babel_node, depth, path, common, callback);
487
+ } else if (type === 'AssignmentExpression') {
488
+ return deep_iterate_babel_assignment_expression_node(babel_node, depth, path, common, callback);
489
+ } else if (type === 'ArrayExpression') {
490
+ return deep_iterate_babel_array_expression_node(babel_node, depth, path, common, callback);
491
+ } else if (type === 'ForStatement') {
492
+ return deep_iterate_babel_for_statement_node(babel_node, depth, path, common, callback);
493
+ } else if (type === 'NumericLiteral') {
494
+ return deep_iterate_babel_numeric_literal_node(babel_node, depth, path, common, callback);
495
+ } else if (type === 'UpdateExpression') {
496
+ return deep_iterate_babel_update_expression_node(babel_node, depth, path, common, callback);
497
+ } else if (type === 'NewExpression') {
498
+ return deep_iterate_babel_new_expression_node(babel_node, depth, path, common, callback);
499
+ } else if (type === 'EmptyStatement') {
500
+ return deep_iterate_babel_empty_statement_node(babel_node, depth, path, common, callback);
501
+ } else if (type === 'NullLiteral') {
502
+ return deep_iterate_babel_null_literal_node(babel_node, depth, path, common, callback);
503
+ } else if (type === 'BooleanLiteral') {
504
+ return deep_iterate_babel_boolean_literal_node(babel_node, depth, path, common, callback);
505
+ } else if (type === 'ThrowStatement') {
506
+ return deep_iterate_babel_throw_statement_node(babel_node, depth, path, common, callback);
507
+ } else if (type === 'AssignmentPattern') {
508
+ return deep_iterate_babel_assignment_pattern_node(babel_node, depth, path, common, callback);
509
+ } else if (type === 'WhileStatement') {
510
+ return deep_iterate_babel_while_statement_node(babel_node, depth, path, common, callback);
511
+ } else if (type === 'ObjectPattern') {
512
+ return deep_iterate_babel_object_pattern_node(babel_node, depth, path, common, callback);
513
+ } else if (type === 'ClassDeclaration') {
514
+ return deep_iterate_babel_class_declaration_node(babel_node, depth, path, common, callback);
515
+ } else if (type === 'ClassBody') {
516
+ return deep_iterate_babel_class_body_node(babel_node, depth, path, common, callback);
517
+ } else if (type === 'ClassMethod') {
518
+ return deep_iterate_babel_class_method_node(babel_node, depth, path, common, callback);
519
+ } else if (type === 'File') {
520
+ return deep_iterate_babel_file_node(babel_node, depth, path, common, callback);
521
+ } else if (type === 'Program') {
522
+ return deep_iterate_program_node(babel_node, depth, path, common, callback);
523
+ } else if (type === 'ArrayPattern') {
524
+ return deep_iterate_array_pattern_node(babel_node, depth, path, common, callback);
525
+ } else if (type === 'ThisExpression') {
526
+ return deep_iterate_this_expression_node(babel_node, depth, path, common, callback);
527
+ //} else if (type === 'BlockStatement') {
528
+ // return deep_iterate_block_statement_node(babel_node, depth, path, common, callback);
529
+ } else if (type === 'ObjectMethod') {
530
+ return deep_iterate_babel_object_method_node(babel_node, depth, path, common, callback);
531
+ } else if (type === 'ConditionalExpression') {
532
+ return deep_iterate_babel_conditional_expression_node(babel_node, depth, path, common, callback);
533
+ } else if (type === 'Super') {
534
+ return deep_iterate_babel_super_node(babel_node, depth, path, common, callback);
535
+ } else {
536
+ console.log('');
537
+ console.log('type', type);
538
+ console.log('');
539
+ console.log('babel_node', babel_node);
540
+ throw 'stop';
541
+ }
542
+
543
+ // ConditionalExpression
544
+ }
545
+ }
546
+ }
547
+
548
+
549
+
550
+ const deep_iterate_babel_node = (babel_node, callback /* (babel_node, path, depth, stop) => {}*/ ) => {
551
+ // Iteration callback: callback(babel_node, path, depth, stop);
552
+
553
+ //console.log('babel_node', babel_node);
554
+
555
+ const common = {
556
+ stopped: false
557
+ }
558
+
559
+ return deep_iterate_babel_node_$INTERNAL(babel_node, 0, '/', common, callback);
560
+ }
561
+
562
+ /*
563
+ iterate_babel_binary_expression_node: iterate_babel_binary_expression_node,
564
+ iterate_babel_unary_expression_node: iterate_babel_unary_expression_node,
565
+ iterate_babel_identifier_node: iterate_babel_identifier_node,
566
+ iterate_babel_string_literal_node: iterate_babel_string_literal_node,
567
+ iterate_babel_variable_declaration_node: iterate_babel_variable_declaration_node,
568
+ iterate_babel_arrow_function_expression_node: iterate_babel_arrow_function_expression_node,
569
+ iterate_babel_block_statement_node: iterate_babel_block_statement_node,
570
+ iterate_babel_if_statement_node: iterate_babel_if_statement_node,
571
+ iterate_babel_return_statement_node: iterate_babel_return_statement_node,
572
+ iterate_babel_object_expression_node: iterate_babel_object_expression_node,
573
+ iterate_babel_member_expression_node: iterate_babel_member_expression_node,
574
+ iterate_babel_function_expression_node: iterate_babel_function_expression_node,
575
+ iterate_babel_logical_expression_node: iterate_babel_logical_expression_node,
576
+ iterate_babel_variable_declarator_node: iterate_babel_variable_declarator_node,
577
+ iterate_babel_expression_statement_node: iterate_babel_expression_statement_node,
578
+ iterate_babel_assignment_expression_node: iterate_babel_assignment_expression_node,
579
+ iterate_babel_array_expression_node: iterate_babel_array_expression_node,
580
+ iterate_babel_for_statement_node: iterate_babel_for_statement_node,
581
+ iterate_babel_numeric_literal_node: iterate_babel_numeric_literal_node,
582
+ iterate_babel_update_expression_node: iterate_babel_update_expression_node,
583
+ iterate_babel_new_expression_node: iterate_babel_new_expression_node,
584
+ iterate_babel_empty_statement_node: iterate_babel_empty_statement_node,
585
+ iterate_babel_null_literal_node: iterate_babel_null_literal_node,
586
+ iterate_babel_boolean_literal_node: iterate_babel_boolean_literal_node,
587
+ iterate_babel_throw_statement_node: iterate_babel_throw_statement_node,
588
+ iterate_babel_assignment_pattern_node: iterate_babel_assignment_pattern_node,
589
+ iterate_babel_while_statement_node: iterate_babel_while_statement_node,
590
+ iterate_babel_object_pattern_node: iterate_babel_object_pattern_node,
591
+ iterate_babel_class_declaration_node: iterate_babel_class_declaration_node,
592
+ iterate_babel_class_body_node: iterate_babel_class_body_node,
593
+ iterate_babel_class_method_node: iterate_babel_class_method_node,
594
+
595
+ iterate_babel_node: iterate_babel_node, //maybe just this one is necessary.
596
+ iterate_babel_child_nodes: iterate_babel_child_nodes,
597
+ //each_babel_child_node: each_babel_child_node,
598
+
599
+ count_nodes: count_nodes,
600
+
601
+ get_babel_child_nodes: get_babel_child_nodes,
602
+ */
603
+
604
+ module.exports = deep_iterate_babel_node;
@@ -0,0 +1,16 @@
1
+
2
+ // Build jsgui-client as a platform.
3
+ // Have a map of the variables provided (a long list), and the names have been remapped, meaning that inside the platform's internal closure (a function call), these variables are available outside
4
+ // or could even be given in a tidy, user friendly way that keeps to the right API.
5
+
6
+ // Want to expose jsgui3-client in a way that than makes it easy to code for, even directly without further building.
7
+
8
+ // Another important feature will be to build jsgui3-client there as a requirement for the client-side js for an app.
9
+ // Will be good / great to get really small file sizes.
10
+
11
+ // A working build will be a nice thing too of course.
12
+
13
+
14
+
15
+
16
+