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
@@ -1,119 +1,119 @@
1
- const jsgui = require('jsgui3-html');
2
- const {
3
- Evented_Class
4
- } = jsgui;
5
-
6
- const {
7
- observable
8
- } = require('fnl');
9
-
10
- // Evented_Class_Publisher?
11
- // Evented_Publisher
12
-
13
- // Want to do this over websockets too.
14
- // Should be a single ws point.
15
- // Could give out conntection keys alongside the HTTP request.
16
- // All the security needed - give out a 256 bit key in the HTML doc, require it to open the websocket connection.
17
- // Seems simple, would work with a single process auth provider, then could have centralised auth and token issuance and checking.
18
-
19
-
20
-
21
-
22
-
23
-
24
- class Observable_Publisher {
25
- constructor(spec) {
26
- let obs, schema;
27
- // needs to hook into the server though...
28
- if (spec.next && spec.complete && spec.error) {
29
- obs = spec;
30
- } else {
31
-
32
- //let {schema} = spec;
33
- obs = spec.obs;
34
- schema = spec.schema;
35
-
36
- //console.trace();
37
- //throw 'NYI';
38
- }
39
- // need to be able to process (http) requests.
40
- // reobserve that observable to prevent too many events being attached.
41
-
42
- // reobserve
43
- // code here could be written as resobserve function.
44
- // or just obs on an existing obs?
45
-
46
- let obs2 = observable((next, complete, error) => {
47
- obs.on('next', data => {
48
- next(data);
49
- })
50
- return [];
51
- })
52
- this.type = 'observable';
53
-
54
- // Also should publish when it's over.
55
-
56
- /*
57
-
58
- => Request
59
- GET /stream HTTP/1.1
60
- Host: example.com
61
- Accept: text/event-stream
62
-
63
- <= Response
64
- HTTP/1.1 200 OK
65
- Connection: keep-alive
66
- Content-Type: text/event-stream
67
- Transfer-Encoding: chunked
68
-
69
- retry: 15000
70
-
71
- data: First message is a simple string.
72
-
73
- data: {"message": "JSON payload"}
74
-
75
- event: foo
76
- data: Message of type "foo"
77
-
78
- id: 42
79
- event: bar
80
- data: Multi-line message of
81
- data: type "bar" and id "42"
82
-
83
- id: 43
84
- data: Last message, id "43"
85
-
86
- 1
87
- 2
88
- 3
89
- 4
90
- event: message\n
91
- data: this is an important message\n
92
- data: that has two lines\n
93
- \n
94
-
95
- */
96
-
97
-
98
- this.handle_http = (req, res) => {
99
- // need to handle observable http request.
100
- // Begin sending to that connection...
101
- // Following SSE would be nice.
102
- res.writeHead(200, {
103
- 'Content-Type': 'text/event-stream',
104
- 'Transfer-Encoding': 'chunked',
105
- //'Trailer': 'Content-MD5'
106
- });
107
- res.write('OK\n');
108
- let obs2_handler = data => {
109
- //console.log('data', data);
110
- let s_data = JSON.stringify(data);
111
- //res.write(s_data + '\n');
112
- res.write('event: message\ndata:' + s_data + '\n\n');
113
- }
114
- obs2.on('next', obs2_handler);
115
- }
116
- }
117
- }
118
-
1
+ const jsgui = require('jsgui3-html');
2
+ const {
3
+ Evented_Class
4
+ } = jsgui;
5
+
6
+ const {
7
+ observable
8
+ } = require('fnl');
9
+
10
+ // Evented_Class_Publisher?
11
+ // Evented_Publisher
12
+
13
+ // Want to do this over websockets too.
14
+ // Should be a single ws point.
15
+ // Could give out conntection keys alongside the HTTP request.
16
+ // All the security needed - give out a 256 bit key in the HTML doc, require it to open the websocket connection.
17
+ // Seems simple, would work with a single process auth provider, then could have centralised auth and token issuance and checking.
18
+
19
+
20
+
21
+
22
+
23
+
24
+ class Observable_Publisher {
25
+ constructor(spec) {
26
+ let obs, schema;
27
+ // needs to hook into the server though...
28
+ if (spec.next && spec.complete && spec.error) {
29
+ obs = spec;
30
+ } else {
31
+
32
+ //let {schema} = spec;
33
+ obs = spec.obs;
34
+ schema = spec.schema;
35
+
36
+ //console.trace();
37
+ //throw 'NYI';
38
+ }
39
+ // need to be able to process (http) requests.
40
+ // reobserve that observable to prevent too many events being attached.
41
+
42
+ // reobserve
43
+ // code here could be written as resobserve function.
44
+ // or just obs on an existing obs?
45
+
46
+ let obs2 = observable((next, complete, error) => {
47
+ obs.on('next', data => {
48
+ next(data);
49
+ })
50
+ return [];
51
+ })
52
+ this.type = 'observable';
53
+
54
+ // Also should publish when it's over.
55
+
56
+ /*
57
+
58
+ => Request
59
+ GET /stream HTTP/1.1
60
+ Host: example.com
61
+ Accept: text/event-stream
62
+
63
+ <= Response
64
+ HTTP/1.1 200 OK
65
+ Connection: keep-alive
66
+ Content-Type: text/event-stream
67
+ Transfer-Encoding: chunked
68
+
69
+ retry: 15000
70
+
71
+ data: First message is a simple string.
72
+
73
+ data: {"message": "JSON payload"}
74
+
75
+ event: foo
76
+ data: Message of type "foo"
77
+
78
+ id: 42
79
+ event: bar
80
+ data: Multi-line message of
81
+ data: type "bar" and id "42"
82
+
83
+ id: 43
84
+ data: Last message, id "43"
85
+
86
+ 1
87
+ 2
88
+ 3
89
+ 4
90
+ event: message\n
91
+ data: this is an important message\n
92
+ data: that has two lines\n
93
+ \n
94
+
95
+ */
96
+
97
+
98
+ this.handle_http = (req, res) => {
99
+ // need to handle observable http request.
100
+ // Begin sending to that connection...
101
+ // Following SSE would be nice.
102
+ res.writeHead(200, {
103
+ 'Content-Type': 'text/event-stream',
104
+ 'Transfer-Encoding': 'chunked',
105
+ //'Trailer': 'Content-MD5'
106
+ });
107
+ res.write('OK\n');
108
+ let obs2_handler = data => {
109
+ //console.log('data', data);
110
+ let s_data = JSON.stringify(data);
111
+ //res.write(s_data + '\n');
112
+ res.write('event: message\ndata:' + s_data + '\n\n');
113
+ }
114
+ obs2.on('next', obs2_handler);
115
+ }
116
+ }
117
+ }
118
+
119
119
  module.exports = Observable_Publisher;