jsgui3-server 0.0.121 → 0.0.122
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/.vscode/settings.json +6 -0
- package/README.md +10 -10
- package/controls/Active_HTML_Document.js +116 -116
- package/controls/README.md +7 -7
- package/controls/page/admin.js +74 -74
- package/controls/panel/admin.js +11 -11
- package/examples/_css/basic.css +913 -913
- package/examples/_css/database-control.css +51 -51
- package/examples/_css/jsgui.css +66 -66
- package/examples/_css/multi-layout.css +23 -23
- package/examples/_css/style.css +1669 -1669
- package/examples/_css/top-and-bottom-bars.css +54 -54
- package/examples/box/1) square box/client.js +188 -188
- package/examples/box/1) square box/server.js +112 -112
- package/examples/box/2) twenty square boxes/css flex wrap/client.js +248 -248
- package/examples/box/2) twenty square boxes/css flex wrap/server.js +112 -112
- package/examples/boxes/square_boxes.js +45 -48
- package/examples/boxes/square_boxes_client.js +132 -136
- package/examples/client-side-popup-menu-button.html +93 -93
- package/examples/color_palette.js +51 -51
- package/examples/color_palette_client.js +95 -95
- package/examples/controls/1) window/client.js +186 -186
- package/examples/controls/1) window/server.js +117 -117
- package/examples/controls/10) window, mirrored text inputs/client.js +320 -320
- package/examples/controls/10) window, mirrored text inputs/server.js +117 -117
- package/examples/controls/11) window, mirrored text fields/client.js +493 -251
- package/examples/controls/11) window, mirrored text fields/server.js +117 -117
- package/examples/controls/11b) window, shared Data_Object model mirrored text fields/client.js +613 -331
- package/examples/controls/11b) window, shared Data_Object model mirrored text fields/server.js +117 -117
- package/examples/controls/11c) window, shared Data_Value model mirrored text fields/client.js +617 -617
- package/examples/controls/11c) window, shared Data_Value model mirrored text fields/server.js +117 -117
- package/examples/controls/11d) window, shared model mirrored integer text fields/client.js +611 -280
- package/examples/controls/11d) window, shared model mirrored integer text fields/server.js +134 -22
- package/examples/controls/12) window, Select_Options control/client.js +435 -452
- package/examples/controls/12) window, Select_Options control/server.js +117 -117
- package/examples/controls/2) two windows/client.js +193 -193
- package/examples/controls/2) two windows/server.js +113 -113
- package/examples/controls/3) five windows/client.js +217 -217
- package/examples/controls/3) five windows/server.js +116 -115
- package/examples/controls/4) window, tabbed panel/client.js +54 -225
- package/examples/controls/4) window, tabbed panel/server.js +17 -117
- package/examples/controls/5) window, grid/client.js +204 -484
- package/examples/controls/5) window, grid/server.js +117 -119
- package/examples/controls/6) window, color_palette/client.js +204 -204
- package/examples/controls/6) window, color_palette/server.js +117 -117
- package/examples/controls/7) window, month_view/client.js +40 -231
- package/examples/controls/7) window, month_view/server.js +117 -117
- package/examples/controls/8) window, checkbox/client.js +247 -209
- package/examples/controls/8) window, checkbox/server.js +117 -117
- package/examples/controls/9) window, date picker/client.js +303 -303
- package/examples/controls/9) window, date picker/server.js +117 -117
- package/examples/controls/9b) window, shared data.model mirrored date pickers/client.js +398 -398
- package/examples/controls/9b) window, shared data.model mirrored date pickers/server.js +117 -117
- package/examples/controls/__old/_html-server-color-palette.js +114 -114
- package/examples/controls/__old/html-server-combo-box.js +104 -104
- package/examples/controls/__old/html-server-list.js +98 -98
- package/examples/controls/__old/html-server-popup-menu-button.js +114 -114
- package/examples/controls/__old/html-server-start-stop-toggle-button.js +146 -146
- package/examples/controls/__old/scs-arrow-button.js +36 -36
- package/examples/controls/__old/scs-date-picker.js +157 -157
- package/examples/controls/__old/scs-file-browser.js +82 -82
- package/examples/controls/__old/scs-item.js +159 -159
- package/examples/controls/__old/scs-month-arrow-selector.js +126 -126
- package/examples/controls/__old/scs-month-view.js +94 -94
- package/examples/controls/__old/scs-start-stop-toggle-button.js +40 -40
- package/examples/controls/__old/scs-tree.js +49 -49
- package/examples/controls/__old/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/grids/grid_1.js +45 -45
- package/examples/grids/grid_1_client.js +329 -329
- package/examples/html-rendering.js +20 -20
- package/examples/html-server.js +105 -105
- package/examples/introducing jsgui3/server.js +110 -110
- package/examples/mx_display/mx_display_1.js +45 -45
- package/examples/mx_display/mx_display_1_client.js +444 -444
- package/fs2.js +1836 -1836
- package/http/responders/HTTP_Responder.js +15 -15
- package/http/responders/static/Static_Route_HTTP_Responder.js +105 -105
- package/module.js +34 -34
- package/old/_single-control-server.js +418 -418
- package/old/single-control-server.js +368 -368
- package/old/single-page-app.js +131 -131
- package/package.json +42 -42
- package/page-context.js +92 -92
- package/publishers/helpers/assigners/Assigner.js +10 -10
- package/publishers/helpers/assigners/static-compressed-response-buffers/Single_Control_Webpage_Server_Static_Compressed_Response_Buffers_Assigner.js +150 -150
- package/publishers/helpers/assigners/static-headers/Single_Control_Webpage_Server_Static_Headers_Assigner.js +109 -109
- package/publishers/helpers/assigners/static-routes/Single_Control_Webpage_Server_Static_Routes_Assigner.js +91 -91
- package/publishers/helpers/assigners/static-uncompressed-response-buffers/Single_Control_Webpage_Server_Static_Uncompressed_Response_Buffers_Assigner.js +104 -104
- package/publishers/helpers/preparers/static/bundle/Ready_To_Serve_Preparer.js +18 -18
- package/publishers/helpers/preparers/static/bundle/Static_Routes_Responses_Webpage_Bundle_Preparer.js +44 -44
- package/publishers/http-function-publisher.js +212 -212
- package/publishers/http-html-page-publisher.js +5 -5
- package/publishers/http-html-publisher.js +24 -24
- package/publishers/http-js-publisher.js +135 -135
- package/publishers/http-observable-publisher.js +124 -124
- package/publishers/http-publisher.js +53 -53
- package/publishers/http-resource-publisher.js +325 -325
- package/publishers/http-webpage-publisher.js +659 -658
- package/publishers/http-webpageorsite-publisher.js +343 -343
- package/publishers/http-website-publisher.js +640 -640
- package/publishers/notes.md +9 -9
- package/resources/README.md +16 -16
- package/resources/_old_website-javascript-resource.js +994 -994
- package/resources/_old_website-resource.js +507 -507
- package/resources/compile/server-resource-compilation.js +43 -43
- package/resources/data-resource.js +118 -118
- package/resources/fs-resource.js +146 -146
- package/resources/jsbuilder/Abstract_Single_Declaration.js +105 -105
- package/resources/jsbuilder/Abstract_Single_Declaration_Sequence.js +42 -42
- package/resources/jsbuilder/JS_AST/JS_AST_Abstract_Node.js +61 -61
- package/resources/jsbuilder/JS_AST/JS_AST_Abstract_Node_Group.js +41 -41
- package/resources/jsbuilder/JS_AST/JS_AST_Group_Shared.js +61 -61
- package/resources/jsbuilder/JS_AST/JS_AST_Node.js +93 -93
- package/resources/jsbuilder/JS_AST/JS_AST_Node_0-Core.js +253 -253
- package/resources/jsbuilder/JS_AST/JS_AST_Node_1-Babel.js +337 -337
- package/resources/jsbuilder/JS_AST/JS_AST_Node_10-Changing.js +39 -39
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.1-Child.js +96 -96
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.2-Parent.js +37 -37
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.3-Ancestor.js +61 -61
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.2-Inner.js +43 -43
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.3-All.js +72 -72
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.4-Sibling.js +92 -92
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.5-Available_In_Scope.js +29 -29
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.9-Signature.js +116 -116
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3-Basics.js +159 -159
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.0-Basics_First.js +178 -178
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.1-Basics_Second.js +87 -87
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.99-Basics_Last.js +91 -91
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.1-Basics_Each.js +136 -136
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.1.5-Basics_Count.js +73 -73
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.2-Basics_Filter.js +39 -39
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.3-Basics_Collect.js +85 -85
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.4-Basics_Select.js +42 -42
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.5-Basics_Find.js +40 -40
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.6-Basics_Callmap.js +54 -54
- package/resources/jsbuilder/JS_AST/JS_AST_Node_4.0-Index_Indexes.js +45 -45
- package/resources/jsbuilder/JS_AST/JS_AST_Node_4.1-Index.js +343 -343
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.0-Category.js +38 -38
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.1-Category_Identifier.js +30 -30
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.2-Category_Literal.js +28 -28
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.3-Category_Expression.js +26 -26
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.4-Category_Pattern.js +8 -8
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.5-Category_Declaration.js +43 -43
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.6-Category_Statement.js +21 -21
- package/resources/jsbuilder/JS_AST/JS_AST_Node_6.0-Type.js +89 -89
- package/resources/jsbuilder/JS_AST/JS_AST_Node_6.1-Type_Class_Declaration.js +8 -8
- package/resources/jsbuilder/JS_AST/JS_AST_Node_6.2-Type_Variable_Declaration.js +27 -27
- package/resources/jsbuilder/JS_AST/JS_AST_Node_6.3-Type_Variable_Declarator.js +28 -28
- package/resources/jsbuilder/JS_AST/JS_AST_Node_7-Query.js +736 -736
- package/resources/jsbuilder/JS_AST/JS_AST_Node_8-Features.js +64 -64
- package/resources/jsbuilder/JS_AST/JS_AST_Node_9-Planning.js +31 -31
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Arrangement.js +15 -15
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Declared_Object.js +305 -305
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature.js +77 -77
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature_Declaration.js +248 -248
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature_Declarator.js +138 -138
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature.js +10 -10
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature_Exported.js +100 -100
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature_Exports.js +60 -60
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Interpreted.js +179 -179
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/_JSGUI_Root_Node_Interpreted.js +43 -43
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/special_case_objectassign_to_object.js +12 -12
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Group.js +35 -35
- package/resources/jsbuilder/JS_AST/JS_AST_Operation.js +11 -11
- package/resources/jsbuilder/JS_AST/JS_AST_Operation_On_Relationship.js +31 -31
- package/resources/jsbuilder/JS_AST/JS_AST_Ordered_Relationship_Node_To_Group.js +37 -37
- package/resources/jsbuilder/JS_AST/JS_AST_Ordinal.js +39 -39
- package/resources/jsbuilder/JS_AST/JS_AST_Ordinal_Relationship.js +25 -25
- package/resources/jsbuilder/JS_AST/JS_AST_Relationship_Node_To_Group.js +200 -200
- package/resources/jsbuilder/JS_AST/JS_AST_Relationship_Node_Within_Group_To_Node.js +43 -43
- package/resources/jsbuilder/JS_AST/_JS_AST_Node_3.8-Query_Features.js +76 -76
- package/resources/jsbuilder/JS_AST/query/enable_array_as_queryable.js +227 -227
- package/resources/jsbuilder/JS_AST/query/find_object_keys.js +404 -404
- package/resources/jsbuilder/JS_AST/query/node_queries.js +8 -8
- package/resources/jsbuilder/JS_AST/query/root_query_identidy.js +11 -11
- package/resources/jsbuilder/JS_AST_Node_Extended/JSGUI_Singular_Declaration.js +85 -85
- package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Declaration.js +123 -123
- package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Extended.js +87 -87
- package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Extended_0-Core.js +10 -10
- package/resources/jsbuilder/JS_Builder.js +10 -10
- package/resources/jsbuilder/JS_File/Feature/JS_File_Declared_Object.js +31 -31
- package/resources/jsbuilder/JS_File/Feature/JS_File_Exported_Object_Info.js +25 -25
- package/resources/jsbuilder/JS_File/Feature/JS_File_Exports.js +78 -78
- package/resources/jsbuilder/JS_File/Feature/JS_File_Feature.js +17 -17
- package/resources/jsbuilder/JS_File/Feature/JS_File_Imported_Object_Info.js +25 -25
- package/resources/jsbuilder/JS_File/Feature/JS_File_Imports.js +8 -8
- package/resources/jsbuilder/JS_File/JS_File.js +12 -12
- package/resources/jsbuilder/JS_File/JS_File_0-Core.js +202 -202
- package/resources/jsbuilder/JS_File/JS_File_1-Early_Parse.js +175 -175
- package/resources/jsbuilder/JS_File/JS_File_2-Babel.js +81 -81
- package/resources/jsbuilder/JS_File/JS_File_3-JS_AST_Node.js +86 -86
- package/resources/jsbuilder/JS_File/JS_File_4-Query.js +413 -413
- package/resources/jsbuilder/JS_File/JS_File_4.1-Query_Features.js +414 -414
- package/resources/jsbuilder/JS_File/JS_File_5-Planning.js +59 -59
- package/resources/jsbuilder/JS_File/JS_File_6-Changing.js +24 -24
- package/resources/jsbuilder/JS_File/JS_File_Export_Reference.js +12 -12
- package/resources/jsbuilder/JS_File/JS_File_Import_Reference.js +23 -23
- package/resources/jsbuilder/JS_File/JS_File_Import_References.js +31 -31
- package/resources/jsbuilder/JS_File/JS_File_Processor.js +16 -16
- package/resources/jsbuilder/JS_File/JS_Files.js +15 -15
- package/resources/jsbuilder/Module.js +14 -14
- package/resources/jsbuilder/Platform.js +13 -13
- package/resources/jsbuilder/Platforms.js +69 -69
- package/resources/jsbuilder/Project.js +109 -109
- package/resources/jsbuilder/Reference.js +1 -1
- package/resources/jsbuilder/Reference_Sequence.js +16 -16
- package/resources/jsbuilder/Scope.js +29 -29
- package/resources/jsbuilder/Variable_Name_Provider.js +42 -42
- package/resources/jsbuilder/_JS_File.js +225 -225
- package/resources/jsbuilder/ast_query.js +20 -20
- package/resources/jsbuilder/babel/babel_consts.js +162 -162
- package/resources/jsbuilder/babel/babel_node_tools.js +541 -541
- package/resources/jsbuilder/babel/deep_iterate/deep_iterate_babel.js +923 -904
- package/resources/jsbuilder/build.js +16 -16
- package/resources/jsbuilder/platform_notes.md +66 -66
- package/resources/jsbuilder/test/test_ast_node.js +381 -381
- package/resources/jsbuilder/test/test_js_file.js +303 -303
- package/resources/jsbuilder/test/test_project.js +157 -157
- package/resources/local-server-info-resource.js +96 -96
- package/resources/notes.txt +10 -10
- package/resources/old/website-image-resource.js +1185 -1185
- package/resources/process-js.js +498 -498
- package/resources/processors/bundlers/bundle.js +29 -29
- package/resources/processors/bundlers/bundler.js +23 -23
- package/resources/processors/bundlers/css-bundler.js +234 -234
- package/resources/processors/bundlers/js/JS_Bundler.js +51 -51
- package/resources/processors/bundlers/js/esbuild/Advanced_JS_Bundler_Using_ESBuild.js +388 -391
- package/resources/processors/bundlers/js/esbuild/Bundler_Using_ESBuild.js +8 -8
- package/resources/processors/bundlers/js/esbuild/Core_JS_Non_Minifying_Bundler_Using_ESBuild.js +188 -188
- package/resources/processors/bundlers/js/esbuild/Core_JS_Single_File_Minifying_Bundler_Using_ESBuild.js +191 -192
- package/resources/processors/bundlers/js/esbuild/_Old_CSS_Extractor.js +239 -239
- package/resources/processors/bundlers/js-bundler.js +263 -263
- package/resources/processors/bundlers/test_ast.js +73 -73
- package/resources/processors/bundlers/webpage-bundler.js +404 -404
- package/resources/processors/bundlers/website-bundler.js +22 -22
- package/resources/processors/extractors/Extractor.js +9 -11
- package/resources/processors/extractors/js/css_and_js/AST_Node/CSS_And_JS_From_JS_String_Using_AST_Node_Extractor.js +239 -254
- package/resources/processors/extractors/js/css_and_js/CSS_And_JS_From_JS_String_Extractor.js +3 -3
- package/resources/processors/extractors/string/Pos_Span_String_Extractor.js +93 -93
- package/resources/server-installed-tools.js +28 -28
- package/resources/server-resource-pool.js +41 -41
- package/resources/website-audio-resource.js +735 -735
- package/resources/website-css-resource.js +411 -411
- package/resources/website-image-resource.js +412 -412
- package/resources/website-javascript-resource-processor.js +908 -908
- package/resources/website-javascript-resource.js +874 -874
- package/resources/website-resource-processor.js +10 -10
- package/resources/website-resource.js +164 -164
- package/resources/website-static-html-resource.js +199 -199
- package/resources/website-template-html-resource.js +231 -231
- package/roadmap.md +75 -75
- package/server.js +609 -573
- package/static-page-context.js +13 -13
- package/website/webpage.js +81 -81
- package/website/website-group.js +15 -15
- package/website/website.js +260 -260
- package/examples/controls/11d) window, shared model mirrored integer text fields/both.js +0 -17
- package/examples/controls/13) window, shared model mirrored lat_long/client.js +0 -933
- package/examples/controls/13) window, shared model mirrored lat_long/server.js +0 -50
- package/examples/controls/14) window, control compositional model/client.js +0 -328
- package/examples/controls/14) window, control compositional model/server.js +0 -118
- package/examples/controls/14a) window, control spec has compositional model/client.js +0 -440
- package/examples/controls/14a) window, control spec has compositional model/server.js +0 -118
- package/examples/controls/15) window, text field/client.js +0 -256
- package/examples/controls/15) window, text field/server.js +0 -39
- package/examples/controls/16) Window([Text_Input])/client.js +0 -266
- package/examples/controls/16) Window([Text_Input])/server.js +0 -109
- package/examples/controls/16a) Window([Text_Input]) Integer data.model.data_type/client.js +0 -494
- package/examples/controls/16a) Window([Text_Input]) Integer data.model.data_type/isomorphic.js +0 -24
- package/examples/controls/16a) Window([Text_Input]) Integer data.model.data_type/server.js +0 -73
- package/examples/controls/2b) two window, context menus/client.js +0 -193
- package/examples/controls/2b) two window, context menus/server.js +0 -114
- package/examples/controls/4a) window, tabbed panel with various controls inside/client.js +0 -233
- package/examples/controls/4a) window, tabbed panel with various controls inside/server.js +0 -118
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
// Could make this a Collection?
|
|
2
|
-
|
|
3
|
-
// jsgui3-bundle possibly?
|
|
4
|
-
// Could save the whole thing as a ZIP file, or in-memory buffer in ZIP format?
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
// Not so sure it's best as a collection...?
|
|
10
|
-
// Maybe it could work though.
|
|
11
|
-
// Simple collection code could be fine.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
// bundle.add(obj that is part of the bundle)
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const {Collection} = require('jsgui3-html');
|
|
23
|
-
|
|
24
|
-
class Bundle extends Collection {
|
|
25
|
-
constructor(spec = {}) {
|
|
26
|
-
super(spec);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
1
|
+
// Could make this a Collection?
|
|
2
|
+
|
|
3
|
+
// jsgui3-bundle possibly?
|
|
4
|
+
// Could save the whole thing as a ZIP file, or in-memory buffer in ZIP format?
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
// Not so sure it's best as a collection...?
|
|
10
|
+
// Maybe it could work though.
|
|
11
|
+
// Simple collection code could be fine.
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
// bundle.add(obj that is part of the bundle)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
const {Collection} = require('jsgui3-html');
|
|
23
|
+
|
|
24
|
+
class Bundle extends Collection {
|
|
25
|
+
constructor(spec = {}) {
|
|
26
|
+
super(spec);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
30
|
module.exports = Bundle;
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
const {Evented_Class} = require('jsgui3-html');
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
// Or just have the bundler itself raise events, no need exactly for an observable.
|
|
5
|
-
|
|
6
|
-
class Bundler extends Evented_Class {
|
|
7
|
-
constructor(spec = {}) {
|
|
8
|
-
super(spec);
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
// API - bundle() obs / promise
|
|
12
|
-
// Obs would be best because of status / progress updates.
|
|
13
|
-
|
|
14
|
-
bundle(item) {
|
|
15
|
-
console.trace();
|
|
16
|
-
throw 'Need implementation of specific item bundling'
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
|
|
1
|
+
const {Evented_Class} = require('jsgui3-html');
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
// Or just have the bundler itself raise events, no need exactly for an observable.
|
|
5
|
+
|
|
6
|
+
class Bundler extends Evented_Class {
|
|
7
|
+
constructor(spec = {}) {
|
|
8
|
+
super(spec);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// API - bundle() obs / promise
|
|
12
|
+
// Obs would be best because of status / progress updates.
|
|
13
|
+
|
|
14
|
+
bundle(item) {
|
|
15
|
+
console.trace();
|
|
16
|
+
throw 'Need implementation of specific item bundling'
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
}
|
|
23
|
+
|
|
24
24
|
module.exports = Bundler;
|
|
@@ -1,235 +1,235 @@
|
|
|
1
|
-
const Bundler = require('./bundler');
|
|
2
|
-
//const Bundle = require('./bundle');
|
|
3
|
-
const {obs, prom_or_cb} = require('fnl');
|
|
4
|
-
const {tof, each} = require('jsgui3-html');
|
|
5
|
-
const fnlfs = require('fnlfs');
|
|
6
|
-
//const browserify = require('browserify');
|
|
7
|
-
//const babel = require('@babel/core');
|
|
8
|
-
const stream_to_array = require('stream-to-array');
|
|
9
|
-
const util = require('util');
|
|
10
|
-
const Stream = require('stream');
|
|
11
|
-
// Will put the JS together. Maybe images?
|
|
12
|
-
const fs = require('fs');
|
|
13
|
-
const path = require('path');
|
|
14
|
-
|
|
15
|
-
const JS_AST_Node = require('../../jsbuilder/JS_AST/JS_AST_Node');
|
|
16
|
-
|
|
17
|
-
// Will put the JS together. Maybe images?
|
|
18
|
-
// Get everything ready to serve.
|
|
19
|
-
|
|
20
|
-
// Would need a JS file that contains refs to all of the components used.
|
|
21
|
-
// Examine what is in the website and what JS it needs.
|
|
22
|
-
|
|
23
|
-
// Should be customisable which system gets used to make the bundle.
|
|
24
|
-
// eg babel or esbuild. Browserify still seems to work on code here at least, but esbuild seems better.
|
|
25
|
-
|
|
26
|
-
// JS bundling will become a bit more advanced in this server. Similar principles.
|
|
27
|
-
|
|
28
|
-
// JS_Bundler reporting css that gets found while bundling JS would make sense.
|
|
29
|
-
|
|
30
|
-
// jsgui3-jsbuilder could be a separate project too.
|
|
31
|
-
// or jsgui3-js-builder even.
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
// bundle_css_from_js_file?
|
|
35
|
-
// scan_js_file_for_css perhaps.
|
|
36
|
-
// scan_js_for_css
|
|
37
|
-
// maybe scan an AST or AST stream as it's coming in.
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
// Needs to be able to copy / access the basic.css from jsgui3-html.
|
|
41
|
-
// Maybe be able to find them on disk.
|
|
42
|
-
|
|
43
|
-
// Streaming does seem like the best meachanism for loading data etc.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
const stream_html_basic_css = () => {
|
|
47
|
-
const css_file_path = path.join(path.dirname(require.resolve('jsgui3-html')), 'css', 'basic.css');
|
|
48
|
-
console.log('css_file_path', css_file_path);
|
|
49
|
-
|
|
50
|
-
const res_stream = fs.createReadStream(css_file_path);
|
|
51
|
-
|
|
52
|
-
return res_stream;
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
const bundle_css_from_js_str = (js_str, options = {}) => {
|
|
57
|
-
|
|
58
|
-
//console.log('js_str.length', js_str.length);
|
|
59
|
-
// Moving towards using observables as a matter of course for longer-running functions.
|
|
60
|
-
|
|
61
|
-
// Seems like this makes a settimeout as well???
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
// OK, but see about also getting the JS without the CSS parts.
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
return obs((next, complete, error) => {
|
|
69
|
-
|
|
70
|
-
//console.log('js_str.length', js_str.length);
|
|
71
|
-
|
|
72
|
-
// Returning a Bundle object when done could be best...?
|
|
73
|
-
|
|
74
|
-
const spec = {
|
|
75
|
-
source: js_str
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
// This part is kind-of slow.
|
|
79
|
-
|
|
80
|
-
console.log('pre create js ast node');
|
|
81
|
-
const js_ast_node = JS_AST_Node.from_spec(spec);
|
|
82
|
-
console.log('post create js ast node');
|
|
83
|
-
|
|
84
|
-
// Maybe a faster / different JS parser.
|
|
85
|
-
// Or do it using regex / specialised algorithm of some sort.
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
//console.log('!!js_ast_node', !!js_ast_node);
|
|
91
|
-
|
|
92
|
-
//console.log('Object.keys(js_ast_node)', Object.keys(js_ast_node));
|
|
93
|
-
|
|
94
|
-
// count all
|
|
95
|
-
|
|
96
|
-
//console.log('js_ast_node.query("count all")', js_ast_node.query("count all"));
|
|
97
|
-
|
|
98
|
-
//console.log('js_ast_node.query.count.all.exe()', js_ast_node.query.count.all.exe());
|
|
99
|
-
|
|
100
|
-
// A filter iterate query....? filter_deep_iterate could work.
|
|
101
|
-
// but we are looking specifically for 'ClassName.css'
|
|
102
|
-
// .css property assignments.
|
|
103
|
-
|
|
104
|
-
const ae_nodes = [];
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
// Just assigning a template literal to .css?
|
|
108
|
-
const css_ae_nodes = [];
|
|
109
|
-
|
|
110
|
-
// How about removing those parts from the JS AST?
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
js_ast_node.deep_iterate(node => {
|
|
115
|
-
|
|
116
|
-
// Maybe this part is slow? Don't think so though.
|
|
117
|
-
|
|
118
|
-
//console.log('node', node);
|
|
119
|
-
//console.log('Object.keys(node)', Object.keys(node));
|
|
120
|
-
//console.log('node.type_signature', node.type_signature);
|
|
121
|
-
//console.log('node.signature', node.signature);
|
|
122
|
-
//console.log('node.type', node.type);
|
|
123
|
-
//console.log('node.abbreviated_type', node.abbreviated_type);
|
|
124
|
-
|
|
125
|
-
if (node.type === 'AssignmentExpression') {
|
|
126
|
-
//return true;
|
|
127
|
-
ae_nodes.push(node);
|
|
128
|
-
//console.log('node.source', node.source);
|
|
129
|
-
|
|
130
|
-
//console.log('Object.keys(node)', Object.keys(node));
|
|
131
|
-
|
|
132
|
-
//console.log('node.child_nodes.length', node.child_nodes.length);
|
|
133
|
-
|
|
134
|
-
const [node_assigned_to, node_assigned] = node.child_nodes;
|
|
135
|
-
//console.log('node_assigned_to.source', node_assigned_to.source);
|
|
136
|
-
//console.log('node_assigned_to.type', node_assigned_to.type);
|
|
137
|
-
//console.log('node_assigned.type', node_assigned.type);
|
|
138
|
-
|
|
139
|
-
if (node_assigned.type === 'TemplateLiteral') {
|
|
140
|
-
|
|
141
|
-
if (node_assigned_to.type === 'MemberExpression') {
|
|
142
|
-
|
|
143
|
-
//console.log('node_assigned_to', node_assigned_to);
|
|
144
|
-
|
|
145
|
-
// the last ID being .css?
|
|
146
|
-
const last_me_child = node_assigned_to.child_nodes[node_assigned_to.child_nodes.length - 1];
|
|
147
|
-
//console.log('last_me_child', last_me_child);
|
|
148
|
-
//console.log('last_me_child.source', last_me_child.source);
|
|
149
|
-
|
|
150
|
-
if (last_me_child.source === 'css') {
|
|
151
|
-
css_ae_nodes.push(node);
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
// does it end '.css'?
|
|
157
|
-
// break it down further?
|
|
158
|
-
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
///console.log('node.source', node.source);
|
|
162
|
-
//throw 'stop';
|
|
163
|
-
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
//console.log('');
|
|
167
|
-
// look at the left part...
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
//throw 'stop';
|
|
171
|
-
});
|
|
172
|
-
//console.log('ae_nodes', ae_nodes);
|
|
173
|
-
//console.log('ae_nodes.length', ae_nodes.length);
|
|
174
|
-
//console.log('css_ae_nodes.length', css_ae_nodes.length);
|
|
175
|
-
|
|
176
|
-
const arr_css = [];
|
|
177
|
-
|
|
178
|
-
if (css_ae_nodes.length > 0) {
|
|
179
|
-
//console.log('css_ae_nodes', css_ae_nodes);
|
|
180
|
-
|
|
181
|
-
each(css_ae_nodes, css_ae_node => {
|
|
182
|
-
//console.log('css_ae_node.source', css_ae_node.source);
|
|
183
|
-
const tl = css_ae_node.child_nodes[1].child_nodes[0];
|
|
184
|
-
//console.log('tl', tl);
|
|
185
|
-
//console.log('tl.source', tl.source);
|
|
186
|
-
arr_css.push(tl.source);
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
})
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
if (arr_css.length > 0) {
|
|
193
|
-
const str_css = arr_css.join('\n');
|
|
194
|
-
|
|
195
|
-
complete(str_css);
|
|
196
|
-
} else {
|
|
197
|
-
complete();
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
// Can then do query to get all .css properties that are string templates.
|
|
202
|
-
// is it a property of a Class object?
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
// Need to get an AST from it....
|
|
209
|
-
// Or could simply search (regex?) for .css = `...`?
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
// Go through each file? Just the first?
|
|
215
|
-
|
|
216
|
-
// Or should the whole bundled (browserified) JS be consulted?
|
|
217
|
-
|
|
218
|
-
const [stop, pause, resume] = [() => {}, () => {}, () => {}];
|
|
219
|
-
return [stop, pause, resume];
|
|
220
|
-
|
|
221
|
-
});
|
|
222
|
-
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
class CSS_Bundler extends Bundler {
|
|
228
|
-
constructor(spec = {}) {
|
|
229
|
-
super(spec);
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
CSS_Bundler.bundle_css_from_js_str = bundle_css_from_js_str;
|
|
234
|
-
CSS_Bundler.stream_html_basic_css = stream_html_basic_css;
|
|
1
|
+
const Bundler = require('./bundler');
|
|
2
|
+
//const Bundle = require('./bundle');
|
|
3
|
+
const {obs, prom_or_cb} = require('fnl');
|
|
4
|
+
const {tof, each} = require('jsgui3-html');
|
|
5
|
+
const fnlfs = require('fnlfs');
|
|
6
|
+
//const browserify = require('browserify');
|
|
7
|
+
//const babel = require('@babel/core');
|
|
8
|
+
const stream_to_array = require('stream-to-array');
|
|
9
|
+
const util = require('util');
|
|
10
|
+
const Stream = require('stream');
|
|
11
|
+
// Will put the JS together. Maybe images?
|
|
12
|
+
const fs = require('fs');
|
|
13
|
+
const path = require('path');
|
|
14
|
+
|
|
15
|
+
const JS_AST_Node = require('../../jsbuilder/JS_AST/JS_AST_Node');
|
|
16
|
+
|
|
17
|
+
// Will put the JS together. Maybe images?
|
|
18
|
+
// Get everything ready to serve.
|
|
19
|
+
|
|
20
|
+
// Would need a JS file that contains refs to all of the components used.
|
|
21
|
+
// Examine what is in the website and what JS it needs.
|
|
22
|
+
|
|
23
|
+
// Should be customisable which system gets used to make the bundle.
|
|
24
|
+
// eg babel or esbuild. Browserify still seems to work on code here at least, but esbuild seems better.
|
|
25
|
+
|
|
26
|
+
// JS bundling will become a bit more advanced in this server. Similar principles.
|
|
27
|
+
|
|
28
|
+
// JS_Bundler reporting css that gets found while bundling JS would make sense.
|
|
29
|
+
|
|
30
|
+
// jsgui3-jsbuilder could be a separate project too.
|
|
31
|
+
// or jsgui3-js-builder even.
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
// bundle_css_from_js_file?
|
|
35
|
+
// scan_js_file_for_css perhaps.
|
|
36
|
+
// scan_js_for_css
|
|
37
|
+
// maybe scan an AST or AST stream as it's coming in.
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
// Needs to be able to copy / access the basic.css from jsgui3-html.
|
|
41
|
+
// Maybe be able to find them on disk.
|
|
42
|
+
|
|
43
|
+
// Streaming does seem like the best meachanism for loading data etc.
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
const stream_html_basic_css = () => {
|
|
47
|
+
const css_file_path = path.join(path.dirname(require.resolve('jsgui3-html')), 'css', 'basic.css');
|
|
48
|
+
console.log('css_file_path', css_file_path);
|
|
49
|
+
|
|
50
|
+
const res_stream = fs.createReadStream(css_file_path);
|
|
51
|
+
|
|
52
|
+
return res_stream;
|
|
53
|
+
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const bundle_css_from_js_str = (js_str, options = {}) => {
|
|
57
|
+
|
|
58
|
+
//console.log('js_str.length', js_str.length);
|
|
59
|
+
// Moving towards using observables as a matter of course for longer-running functions.
|
|
60
|
+
|
|
61
|
+
// Seems like this makes a settimeout as well???
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
// OK, but see about also getting the JS without the CSS parts.
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
return obs((next, complete, error) => {
|
|
69
|
+
|
|
70
|
+
//console.log('js_str.length', js_str.length);
|
|
71
|
+
|
|
72
|
+
// Returning a Bundle object when done could be best...?
|
|
73
|
+
|
|
74
|
+
const spec = {
|
|
75
|
+
source: js_str
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
// This part is kind-of slow.
|
|
79
|
+
|
|
80
|
+
console.log('pre create js ast node');
|
|
81
|
+
const js_ast_node = JS_AST_Node.from_spec(spec);
|
|
82
|
+
console.log('post create js ast node');
|
|
83
|
+
|
|
84
|
+
// Maybe a faster / different JS parser.
|
|
85
|
+
// Or do it using regex / specialised algorithm of some sort.
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
//console.log('!!js_ast_node', !!js_ast_node);
|
|
91
|
+
|
|
92
|
+
//console.log('Object.keys(js_ast_node)', Object.keys(js_ast_node));
|
|
93
|
+
|
|
94
|
+
// count all
|
|
95
|
+
|
|
96
|
+
//console.log('js_ast_node.query("count all")', js_ast_node.query("count all"));
|
|
97
|
+
|
|
98
|
+
//console.log('js_ast_node.query.count.all.exe()', js_ast_node.query.count.all.exe());
|
|
99
|
+
|
|
100
|
+
// A filter iterate query....? filter_deep_iterate could work.
|
|
101
|
+
// but we are looking specifically for 'ClassName.css'
|
|
102
|
+
// .css property assignments.
|
|
103
|
+
|
|
104
|
+
const ae_nodes = [];
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
// Just assigning a template literal to .css?
|
|
108
|
+
const css_ae_nodes = [];
|
|
109
|
+
|
|
110
|
+
// How about removing those parts from the JS AST?
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
js_ast_node.deep_iterate(node => {
|
|
115
|
+
|
|
116
|
+
// Maybe this part is slow? Don't think so though.
|
|
117
|
+
|
|
118
|
+
//console.log('node', node);
|
|
119
|
+
//console.log('Object.keys(node)', Object.keys(node));
|
|
120
|
+
//console.log('node.type_signature', node.type_signature);
|
|
121
|
+
//console.log('node.signature', node.signature);
|
|
122
|
+
//console.log('node.type', node.type);
|
|
123
|
+
//console.log('node.abbreviated_type', node.abbreviated_type);
|
|
124
|
+
|
|
125
|
+
if (node.type === 'AssignmentExpression') {
|
|
126
|
+
//return true;
|
|
127
|
+
ae_nodes.push(node);
|
|
128
|
+
//console.log('node.source', node.source);
|
|
129
|
+
|
|
130
|
+
//console.log('Object.keys(node)', Object.keys(node));
|
|
131
|
+
|
|
132
|
+
//console.log('node.child_nodes.length', node.child_nodes.length);
|
|
133
|
+
|
|
134
|
+
const [node_assigned_to, node_assigned] = node.child_nodes;
|
|
135
|
+
//console.log('node_assigned_to.source', node_assigned_to.source);
|
|
136
|
+
//console.log('node_assigned_to.type', node_assigned_to.type);
|
|
137
|
+
//console.log('node_assigned.type', node_assigned.type);
|
|
138
|
+
|
|
139
|
+
if (node_assigned.type === 'TemplateLiteral') {
|
|
140
|
+
|
|
141
|
+
if (node_assigned_to.type === 'MemberExpression') {
|
|
142
|
+
|
|
143
|
+
//console.log('node_assigned_to', node_assigned_to);
|
|
144
|
+
|
|
145
|
+
// the last ID being .css?
|
|
146
|
+
const last_me_child = node_assigned_to.child_nodes[node_assigned_to.child_nodes.length - 1];
|
|
147
|
+
//console.log('last_me_child', last_me_child);
|
|
148
|
+
//console.log('last_me_child.source', last_me_child.source);
|
|
149
|
+
|
|
150
|
+
if (last_me_child.source === 'css') {
|
|
151
|
+
css_ae_nodes.push(node);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
// does it end '.css'?
|
|
157
|
+
// break it down further?
|
|
158
|
+
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
///console.log('node.source', node.source);
|
|
162
|
+
//throw 'stop';
|
|
163
|
+
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
//console.log('');
|
|
167
|
+
// look at the left part...
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
//throw 'stop';
|
|
171
|
+
});
|
|
172
|
+
//console.log('ae_nodes', ae_nodes);
|
|
173
|
+
//console.log('ae_nodes.length', ae_nodes.length);
|
|
174
|
+
//console.log('css_ae_nodes.length', css_ae_nodes.length);
|
|
175
|
+
|
|
176
|
+
const arr_css = [];
|
|
177
|
+
|
|
178
|
+
if (css_ae_nodes.length > 0) {
|
|
179
|
+
//console.log('css_ae_nodes', css_ae_nodes);
|
|
180
|
+
|
|
181
|
+
each(css_ae_nodes, css_ae_node => {
|
|
182
|
+
//console.log('css_ae_node.source', css_ae_node.source);
|
|
183
|
+
const tl = css_ae_node.child_nodes[1].child_nodes[0];
|
|
184
|
+
//console.log('tl', tl);
|
|
185
|
+
//console.log('tl.source', tl.source);
|
|
186
|
+
arr_css.push(tl.source);
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
})
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
if (arr_css.length > 0) {
|
|
193
|
+
const str_css = arr_css.join('\n');
|
|
194
|
+
|
|
195
|
+
complete(str_css);
|
|
196
|
+
} else {
|
|
197
|
+
complete();
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
// Can then do query to get all .css properties that are string templates.
|
|
202
|
+
// is it a property of a Class object?
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
// Need to get an AST from it....
|
|
209
|
+
// Or could simply search (regex?) for .css = `...`?
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
// Go through each file? Just the first?
|
|
215
|
+
|
|
216
|
+
// Or should the whole bundled (browserified) JS be consulted?
|
|
217
|
+
|
|
218
|
+
const [stop, pause, resume] = [() => {}, () => {}, () => {}];
|
|
219
|
+
return [stop, pause, resume];
|
|
220
|
+
|
|
221
|
+
});
|
|
222
|
+
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
class CSS_Bundler extends Bundler {
|
|
228
|
+
constructor(spec = {}) {
|
|
229
|
+
super(spec);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
CSS_Bundler.bundle_css_from_js_str = bundle_css_from_js_str;
|
|
234
|
+
CSS_Bundler.stream_html_basic_css = stream_html_basic_css;
|
|
235
235
|
module.exports = CSS_Bundler;
|