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.
- package/examples/client-side-popup-menu-button.html +93 -93
- package/examples/controls/_html-server-color-palette.js +114 -114
- package/examples/controls/html-server-combo-box.js +104 -104
- package/examples/controls/html-server-list.js +98 -98
- package/examples/controls/html-server-popup-menu-button.js +114 -114
- package/examples/controls/html-server-start-stop-toggle-button.js +146 -146
- package/examples/controls/scs-arrow-button.js +36 -36
- package/examples/controls/scs-date-picker.js +157 -157
- package/examples/controls/scs-file-browser.js +82 -82
- package/examples/controls/scs-item.js +159 -159
- package/examples/controls/scs-month-arrow-selector.js +126 -126
- package/examples/controls/scs-month-view.js +95 -95
- package/examples/controls/scs-start-stop-toggle-button.js +40 -40
- package/examples/controls/scs-tree.js +49 -49
- package/examples/controls/scs-year-arrow-selector.js +127 -127
- package/examples/demos/date-picker.js +119 -119
- package/examples/demos/explain-encapsulation.js +9 -9
- package/examples/demos/resizing.js +35 -35
- package/examples/demos/server_time.js +6 -6
- package/examples/demos/square_box.js +324 -324
- package/examples/html-rendering.js +20 -20
- package/examples/html-server.js +100 -100
- package/fs2.js +1836 -1836
- package/module.js +21 -21
- package/old/single-control-server.js +418 -418
- package/package.json +44 -42
- package/publishing/function-publisher.js +202 -202
- package/publishing/notes.md +5 -5
- package/publishing/observable-publisher.js +118 -118
- package/publishing/resource-publisher.js +306 -306
- package/resources/data-resource.js +104 -104
- package/resources/fs-resource.js +148 -148
- package/resources/jsbuilder/Abstract_Single_Declaration.js +105 -0
- package/resources/jsbuilder/Abstract_Single_Declaration_Sequence.js +43 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Abstract_Node.js +62 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Abstract_Node_Group.js +42 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Group_Shared.js +62 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node.js +94 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_0-Core.js +228 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_1-Babel.js +338 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_10-Changing.js +40 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.1-Child.js +97 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.2-Parent.js +38 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.3-Ancestor.js +62 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.2-Inner.js +44 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.3-All.js +73 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.4-Sibling.js +93 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.5-Available_In_Scope.js +29 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.9-Signature.js +116 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3-Basics.js +160 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.0-Basics_First.js +179 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.1-Basics_Second.js +88 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.99-Basics_Last.js +92 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.1-Basics_Each.js +137 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.1.5-Basics_Count.js +74 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.2-Basics_Filter.js +40 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.3-Basics_Collect.js +86 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.4-Basics_Select.js +43 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.5-Basics_Find.js +41 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.6-Basics_Callmap.js +55 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_4.0-Index_Indexes.js +46 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_4.1-Index.js +344 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.0-Category.js +39 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.1-Category_Identifier.js +31 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.2-Category_Literal.js +29 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.3-Category_Expression.js +27 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.4-Category_Pattern.js +9 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.5-Category_Declaration.js +44 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.6-Category_Statement.js +22 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_6.0-Type.js +87 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_6.1-Type_Class_Declaration.js +9 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_6.2-Type_Variable_Declaration.js +28 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_6.3-Type_Variable_Declarator.js +29 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_7-Query.js +737 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_8-Features.js +65 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_9-Planning.js +32 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Arrangement.js +15 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Declared_Object.js +306 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature.js +78 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature_Declaration.js +249 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature_Declarator.js +139 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature.js +10 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature_Exported.js +101 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature_Exports.js +61 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Interpreted.js +180 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/_JSGUI_Root_Node_Interpreted.js +43 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/special_case_objectassign_to_object.js +12 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Group.js +35 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Operation.js +11 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Operation_On_Relationship.js +32 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Ordered_Relationship_Node_To_Group.js +38 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Ordinal.js +40 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Ordinal_Relationship.js +25 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Relationship_Node_To_Group.js +201 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Relationship_Node_Within_Group_To_Node.js +44 -0
- package/resources/jsbuilder/JS_AST/_JS_AST_Node_3.8-Query_Features.js +77 -0
- package/resources/jsbuilder/JS_AST/query/all.js +0 -0
- package/resources/jsbuilder/JS_AST/query/enable_array_as_queryable.js +228 -0
- package/resources/jsbuilder/JS_AST/query/find_object_keys.js +405 -0
- package/resources/jsbuilder/JS_AST/query/node_queries.js +9 -0
- package/resources/jsbuilder/JS_AST/query/root_queries.js +0 -0
- package/resources/jsbuilder/JS_AST/query/root_query_identidy.js +12 -0
- package/resources/jsbuilder/JS_AST_Node_Extended/JSGUI_Singular_Declaration.js +86 -0
- package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Declaration.js +124 -0
- package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Extended.js +88 -0
- package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Extended_0-Core.js +11 -0
- package/resources/jsbuilder/JS_Builder.js +10 -36
- package/resources/jsbuilder/JS_File/Feature/JS_File_Declared_Object.js +32 -0
- package/resources/jsbuilder/JS_File/Feature/JS_File_Exported_Object_Info.js +26 -0
- package/resources/jsbuilder/JS_File/Feature/JS_File_Exports.js +79 -0
- package/resources/jsbuilder/JS_File/Feature/JS_File_Feature.js +18 -0
- package/resources/jsbuilder/JS_File/Feature/JS_File_Imported_Object_Info.js +26 -0
- package/resources/jsbuilder/JS_File/Feature/JS_File_Imports.js +9 -0
- package/resources/jsbuilder/JS_File/JS_File.js +12 -0
- package/resources/jsbuilder/JS_File/JS_File_0-Core.js +202 -0
- package/resources/jsbuilder/JS_File/JS_File_1-Early_Parse.js +175 -0
- package/resources/jsbuilder/JS_File/JS_File_2-Babel.js +81 -0
- package/resources/jsbuilder/JS_File/JS_File_3-JS_AST_Node.js +86 -0
- package/resources/jsbuilder/JS_File/JS_File_4-Query.js +414 -0
- package/resources/jsbuilder/JS_File/JS_File_4.1-Query_Features.js +415 -0
- package/resources/jsbuilder/JS_File/JS_File_5-Planning.js +59 -0
- package/resources/jsbuilder/JS_File/JS_File_6-Changing.js +24 -0
- package/resources/jsbuilder/JS_File/JS_File_Export_Reference.js +12 -0
- package/resources/jsbuilder/JS_File/JS_File_Import_Reference.js +24 -0
- package/resources/jsbuilder/JS_File/JS_File_Import_References.js +32 -0
- package/resources/jsbuilder/JS_File/JS_File_Processor.js +16 -0
- package/resources/jsbuilder/JS_File/JS_Files.js +16 -0
- package/resources/jsbuilder/Module.js +14 -0
- package/resources/jsbuilder/Platform.js +13 -53
- package/resources/jsbuilder/Platforms.js +69 -15
- package/resources/jsbuilder/Project.js +109 -0
- package/resources/jsbuilder/Reference.js +1 -1
- package/resources/jsbuilder/Reference_Sequence.js +16 -7
- package/resources/jsbuilder/Scope.js +30 -0
- package/resources/jsbuilder/Variable_Name_Provider.js +43 -0
- package/resources/jsbuilder/_JS_File.js +226 -0
- package/resources/jsbuilder/ast_query.js +21 -0
- package/resources/jsbuilder/babel/babel_consts.js +150 -0
- package/resources/jsbuilder/babel/babel_node_tools.js +542 -0
- package/resources/jsbuilder/babel/deep_iterate/deep_iterate_babel.js +604 -0
- package/resources/jsbuilder/build.js +16 -0
- package/resources/jsbuilder/platform_notes.md +66 -0
- package/resources/jsbuilder/test/test_ast_node.js +451 -0
- package/resources/jsbuilder/test/test_js_file.js +303 -11
- package/resources/jsbuilder/test/test_project.js +157 -0
- package/resources/local-server-info-resource.js +78 -78
- package/resources/process-js.js +537 -537
- package/resources/server-resource-pool.js +84 -84
- package/resources/website-css-resource.js +411 -411
- package/resources/website-javascript-resource.js +761 -751
- package/resources/website-resource.js +390 -390
- package/resources/website-static-html-resource.js +196 -196
- package/server.js +170 -170
- package/single-control-server.js +398 -398
- package/single-page-app.js +129 -129
- package/resources/jsbuilder/Declaration.js +0 -15
- package/resources/jsbuilder/Declaration_Sequence.js +0 -15
- 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;
|