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,158 +1,158 @@
|
|
|
1
|
-
const test_lang_mini_project = () => {
|
|
2
|
-
|
|
3
|
-
// Just lang-mini in the project.
|
|
4
|
-
// Will be nice if we have a closure, where the variables from the platform are all available.
|
|
5
|
-
|
|
6
|
-
// Load a JS file into an OO structure
|
|
7
|
-
// Short term goals:
|
|
8
|
-
|
|
9
|
-
// jsgui-lang
|
|
10
|
-
// ----------
|
|
11
|
-
|
|
12
|
-
// Recognise the basic / general signature of the full document.
|
|
13
|
-
// Recognise that the declarations are all within the root
|
|
14
|
-
// Recognise the exports object at the end exports an object that is composed from same-name references to items declared within lang-mini
|
|
15
|
-
// and only items declared within jsgui
|
|
16
|
-
// that it has no external references
|
|
17
|
-
|
|
18
|
-
const JS_File = require('..//JS_File/JS_File');
|
|
19
|
-
//const JS_File_Comprehension = require('../JS_File_Comprehension');
|
|
20
|
-
const path = require('path');
|
|
21
|
-
const fs = require('fs');
|
|
22
|
-
const Project = require('../Project');
|
|
23
|
-
const {each} = require('lang-tools');
|
|
24
|
-
|
|
25
|
-
const JS_AST_Node = require('../JS_AST_Node_Extended/JS_AST_Node_Extended');
|
|
26
|
-
|
|
27
|
-
// Worth working with a lower level part of jsgui, such as lang-mini.
|
|
28
|
-
// lang-mini itself has an external reference.
|
|
29
|
-
// stream the file in.
|
|
30
|
-
throw 'STOP';
|
|
31
|
-
const lm_path = '../../../../../tools/lang-mini/lang-mini.js'
|
|
32
|
-
|
|
33
|
-
//const file_path = '../JS_File.js';
|
|
34
|
-
const file_path = lm_path;
|
|
35
|
-
// path of lang mini....
|
|
36
|
-
|
|
37
|
-
// Write and test a simple and convenient way for analysing JS files and recompiling them.
|
|
38
|
-
// To start with, find the ways to arrange parts of the JS into 'platforms'.
|
|
39
|
-
// How to then build platforms into JS files.
|
|
40
|
-
// Will be about closures and sequences.
|
|
41
|
-
// A lot about unique naming, closures, and getting the sequence of definitions correct.
|
|
42
|
-
|
|
43
|
-
// ObjectPattern
|
|
44
|
-
|
|
45
|
-
const resolved_path = path.resolve(file_path);
|
|
46
|
-
//console.log('resolved_path', resolved_path);
|
|
47
|
-
|
|
48
|
-
const fstream = fs.createReadStream(resolved_path);
|
|
49
|
-
|
|
50
|
-
const jsf = JS_File.load_from_stream(fstream, file_path);
|
|
51
|
-
jsf.on('ready', () => {
|
|
52
|
-
console.log('jsf ready');
|
|
53
|
-
console.log('jsf.sha512', jsf.sha512);
|
|
54
|
-
//const {babel_root_declarations} = jsf;
|
|
55
|
-
// Go through each of these Babel declarations.
|
|
56
|
-
// Basically see what they are.
|
|
57
|
-
//
|
|
58
|
-
const {js_ast_node_file} = jsf;
|
|
59
|
-
console.log('js_ast_node_file', js_ast_node_file);
|
|
60
|
-
console.log('js_ast_node_file.child_nodes.length', js_ast_node_file.child_nodes.length);
|
|
61
|
-
|
|
62
|
-
const jn_program = js_ast_node_file.child_nodes[0];
|
|
63
|
-
console.log('jn_program', jn_program);
|
|
64
|
-
console.log('jn_program.type', jn_program.type);
|
|
65
|
-
console.log('jn_program.child_nodes.length', jn_program.child_nodes.length);
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
// Scan once for features would be nice.
|
|
69
|
-
// Would be efficient if done well.
|
|
70
|
-
|
|
71
|
-
// However, for the moment will do singular queries.
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
// export_name
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
jn_program.each_child_node(js_ast_node => {
|
|
78
|
-
console.log('');
|
|
79
|
-
console.log('js_ast_node.source', '"' + js_ast_node.source + '"');
|
|
80
|
-
console.log('js_ast_node.deep_type_signature', js_ast_node.deep_type_signature);
|
|
81
|
-
|
|
82
|
-
// Looks like signatures could indeed be of more use for retrieving what the module exports.
|
|
83
|
-
|
|
84
|
-
// As would other types of pattern finding.
|
|
85
|
-
// Register a signature for a search.
|
|
86
|
-
// Or multiple
|
|
87
|
-
// Then deep iterate, checking against these signatures.
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
console.log('jsf.export_name', jsf.export_name);
|
|
95
|
-
|
|
96
|
-
// If we have an export name,
|
|
97
|
-
|
|
98
|
-
// Signature recognition does look like the best way to find pieces of code.
|
|
99
|
-
// We would also specify what to be extracted, as under what key.
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
/*
|
|
108
|
-
|
|
109
|
-
const find_module_exports = () => {
|
|
110
|
-
// iterate for an assignment of the module.exports
|
|
111
|
-
jn_program.each_declaration_child_node(js_ast_node => {
|
|
112
|
-
console.log('js_ast_node.source', js_ast_node.source);
|
|
113
|
-
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
find_module_exports();
|
|
117
|
-
|
|
118
|
-
*/
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
const names_test = () => {
|
|
128
|
-
jn_program.each_declaration_child_node(js_ast_node => {
|
|
129
|
-
console.log('');
|
|
130
|
-
console.log('js_ast_node.source.length', js_ast_node.source.length);
|
|
131
|
-
if (js_ast_node.source.length <= 30000) {
|
|
132
|
-
const spec = {
|
|
133
|
-
source: js_ast_node.source,
|
|
134
|
-
root_node: true // should do the babel parsing once it has the source, if it does not already have the babel node.
|
|
135
|
-
// actually, only if asked for the babel node.
|
|
136
|
-
};
|
|
137
|
-
const detached_js_ast_node = JS_AST_Node.from_spec(spec);
|
|
138
|
-
console.log('detached_js_ast_node', detached_js_ast_node);
|
|
139
|
-
console.log('detached_js_ast_node.source.length', detached_js_ast_node.source.length);
|
|
140
|
-
console.log('detached_js_ast_node.type', detached_js_ast_node.type);
|
|
141
|
-
console.log('detached_js_ast_node.category', detached_js_ast_node.category);
|
|
142
|
-
if (detached_js_ast_node.category === 'Declaration') {
|
|
143
|
-
// get_declared_names
|
|
144
|
-
//console.log(detached_js_ast_node.category)
|
|
145
|
-
console.log('detached_js_ast_node.get_declared_names()', detached_js_ast_node.get_declared_names());
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
})
|
|
149
|
-
}
|
|
150
|
-
//names_test();
|
|
151
|
-
});
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
}
|
|
157
|
-
|
|
1
|
+
const test_lang_mini_project = () => {
|
|
2
|
+
|
|
3
|
+
// Just lang-mini in the project.
|
|
4
|
+
// Will be nice if we have a closure, where the variables from the platform are all available.
|
|
5
|
+
|
|
6
|
+
// Load a JS file into an OO structure
|
|
7
|
+
// Short term goals:
|
|
8
|
+
|
|
9
|
+
// jsgui-lang
|
|
10
|
+
// ----------
|
|
11
|
+
|
|
12
|
+
// Recognise the basic / general signature of the full document.
|
|
13
|
+
// Recognise that the declarations are all within the root
|
|
14
|
+
// Recognise the exports object at the end exports an object that is composed from same-name references to items declared within lang-mini
|
|
15
|
+
// and only items declared within jsgui
|
|
16
|
+
// that it has no external references
|
|
17
|
+
|
|
18
|
+
const JS_File = require('..//JS_File/JS_File');
|
|
19
|
+
//const JS_File_Comprehension = require('../JS_File_Comprehension');
|
|
20
|
+
const path = require('path');
|
|
21
|
+
const fs = require('fs');
|
|
22
|
+
const Project = require('../Project');
|
|
23
|
+
const {each} = require('lang-tools');
|
|
24
|
+
|
|
25
|
+
const JS_AST_Node = require('../JS_AST_Node_Extended/JS_AST_Node_Extended');
|
|
26
|
+
|
|
27
|
+
// Worth working with a lower level part of jsgui, such as lang-mini.
|
|
28
|
+
// lang-mini itself has an external reference.
|
|
29
|
+
// stream the file in.
|
|
30
|
+
throw 'STOP';
|
|
31
|
+
const lm_path = '../../../../../tools/lang-mini/lang-mini.js'
|
|
32
|
+
|
|
33
|
+
//const file_path = '../JS_File.js';
|
|
34
|
+
const file_path = lm_path;
|
|
35
|
+
// path of lang mini....
|
|
36
|
+
|
|
37
|
+
// Write and test a simple and convenient way for analysing JS files and recompiling them.
|
|
38
|
+
// To start with, find the ways to arrange parts of the JS into 'platforms'.
|
|
39
|
+
// How to then build platforms into JS files.
|
|
40
|
+
// Will be about closures and sequences.
|
|
41
|
+
// A lot about unique naming, closures, and getting the sequence of definitions correct.
|
|
42
|
+
|
|
43
|
+
// ObjectPattern
|
|
44
|
+
|
|
45
|
+
const resolved_path = path.resolve(file_path);
|
|
46
|
+
//console.log('resolved_path', resolved_path);
|
|
47
|
+
|
|
48
|
+
const fstream = fs.createReadStream(resolved_path);
|
|
49
|
+
|
|
50
|
+
const jsf = JS_File.load_from_stream(fstream, file_path);
|
|
51
|
+
jsf.on('ready', () => {
|
|
52
|
+
console.log('jsf ready');
|
|
53
|
+
console.log('jsf.sha512', jsf.sha512);
|
|
54
|
+
//const {babel_root_declarations} = jsf;
|
|
55
|
+
// Go through each of these Babel declarations.
|
|
56
|
+
// Basically see what they are.
|
|
57
|
+
//
|
|
58
|
+
const {js_ast_node_file} = jsf;
|
|
59
|
+
console.log('js_ast_node_file', js_ast_node_file);
|
|
60
|
+
console.log('js_ast_node_file.child_nodes.length', js_ast_node_file.child_nodes.length);
|
|
61
|
+
|
|
62
|
+
const jn_program = js_ast_node_file.child_nodes[0];
|
|
63
|
+
console.log('jn_program', jn_program);
|
|
64
|
+
console.log('jn_program.type', jn_program.type);
|
|
65
|
+
console.log('jn_program.child_nodes.length', jn_program.child_nodes.length);
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
// Scan once for features would be nice.
|
|
69
|
+
// Would be efficient if done well.
|
|
70
|
+
|
|
71
|
+
// However, for the moment will do singular queries.
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
// export_name
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
jn_program.each_child_node(js_ast_node => {
|
|
78
|
+
console.log('');
|
|
79
|
+
console.log('js_ast_node.source', '"' + js_ast_node.source + '"');
|
|
80
|
+
console.log('js_ast_node.deep_type_signature', js_ast_node.deep_type_signature);
|
|
81
|
+
|
|
82
|
+
// Looks like signatures could indeed be of more use for retrieving what the module exports.
|
|
83
|
+
|
|
84
|
+
// As would other types of pattern finding.
|
|
85
|
+
// Register a signature for a search.
|
|
86
|
+
// Or multiple
|
|
87
|
+
// Then deep iterate, checking against these signatures.
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
console.log('jsf.export_name', jsf.export_name);
|
|
95
|
+
|
|
96
|
+
// If we have an export name,
|
|
97
|
+
|
|
98
|
+
// Signature recognition does look like the best way to find pieces of code.
|
|
99
|
+
// We would also specify what to be extracted, as under what key.
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
/*
|
|
108
|
+
|
|
109
|
+
const find_module_exports = () => {
|
|
110
|
+
// iterate for an assignment of the module.exports
|
|
111
|
+
jn_program.each_declaration_child_node(js_ast_node => {
|
|
112
|
+
console.log('js_ast_node.source', js_ast_node.source);
|
|
113
|
+
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
find_module_exports();
|
|
117
|
+
|
|
118
|
+
*/
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
const names_test = () => {
|
|
128
|
+
jn_program.each_declaration_child_node(js_ast_node => {
|
|
129
|
+
console.log('');
|
|
130
|
+
console.log('js_ast_node.source.length', js_ast_node.source.length);
|
|
131
|
+
if (js_ast_node.source.length <= 30000) {
|
|
132
|
+
const spec = {
|
|
133
|
+
source: js_ast_node.source,
|
|
134
|
+
root_node: true // should do the babel parsing once it has the source, if it does not already have the babel node.
|
|
135
|
+
// actually, only if asked for the babel node.
|
|
136
|
+
};
|
|
137
|
+
const detached_js_ast_node = JS_AST_Node.from_spec(spec);
|
|
138
|
+
console.log('detached_js_ast_node', detached_js_ast_node);
|
|
139
|
+
console.log('detached_js_ast_node.source.length', detached_js_ast_node.source.length);
|
|
140
|
+
console.log('detached_js_ast_node.type', detached_js_ast_node.type);
|
|
141
|
+
console.log('detached_js_ast_node.category', detached_js_ast_node.category);
|
|
142
|
+
if (detached_js_ast_node.category === 'Declaration') {
|
|
143
|
+
// get_declared_names
|
|
144
|
+
//console.log(detached_js_ast_node.category)
|
|
145
|
+
console.log('detached_js_ast_node.get_declared_names()', detached_js_ast_node.get_declared_names());
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
})
|
|
149
|
+
}
|
|
150
|
+
//names_test();
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
}
|
|
157
|
+
|
|
158
158
|
test_lang_mini_project();
|
|
@@ -1,96 +1,96 @@
|
|
|
1
|
-
|
|
2
|
-
var jsgui = require('jsgui3-html'), os = require('os'), http = require('http'),
|
|
3
|
-
libUrl = require('url'),
|
|
4
|
-
Resource = jsgui.Resource;
|
|
5
|
-
|
|
6
|
-
var stringify = jsgui.stringify, each = jsgui.each, arrayify = jsgui.arrayify, tof = jsgui.tof;
|
|
7
|
-
var filter_map_by_regex = jsgui.filter_map_by_regex;
|
|
8
|
-
var Class = jsgui.Class, Data_Object = jsgui.Data_Object;
|
|
9
|
-
var fp = jsgui.fp, is_defined = jsgui.is_defined;
|
|
10
|
-
var Collection = jsgui.Collection;
|
|
11
|
-
|
|
12
|
-
var exec = require('child_process').exec;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
/*
|
|
16
|
-
var Network_Interfaces = Collection.extend({
|
|
17
|
-
'item_def': {'name': 'string', 'entries': [{'address': 'string', 'family': 'string', 'internal': 'boolean'}]}
|
|
18
|
-
});
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
var local_server_info_fields = [
|
|
22
|
-
//['name', 'string'],
|
|
23
|
-
['networkInterfaces', Object], // was Network_Interfaces
|
|
24
|
-
['status', 'string']
|
|
25
|
-
];
|
|
26
|
-
class Local_Server_Info extends Resource {
|
|
27
|
-
// A network interfaces field.
|
|
28
|
-
constructor(spec) {
|
|
29
|
-
super(spec);
|
|
30
|
-
// meta status.
|
|
31
|
-
//this.meta.set('status', 'off');
|
|
32
|
-
// could use a _ object with proxies.
|
|
33
|
-
this.status = 'off';
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
this.getters = {};
|
|
37
|
-
|
|
38
|
-
var getters = {
|
|
39
|
-
'net': (callback) => {
|
|
40
|
-
callback(null, os.networkInterfaces());
|
|
41
|
-
},
|
|
42
|
-
'cpus': (callback) => {
|
|
43
|
-
callback(null, os.cpus());
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
Object.assign(this.getters, getters);
|
|
47
|
-
|
|
48
|
-
}
|
|
49
|
-
// context needs to work properly in call multiple.. need to sort that out.
|
|
50
|
-
// may need to specify the calling object and the function.
|
|
51
|
-
// may not just be a pair.
|
|
52
|
-
|
|
53
|
-
'start'(callback) {
|
|
54
|
-
|
|
55
|
-
// Returning observable / optional callback would be better.
|
|
56
|
-
// Switching to observable may be best all round.
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
//var that = this;
|
|
60
|
-
|
|
61
|
-
// Super should not be callback start? Seems a little confusing or like it could go wrong here.
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
super.start((err, res_start) => {
|
|
66
|
-
if (err) {
|
|
67
|
-
callback(err);
|
|
68
|
-
} else {
|
|
69
|
-
|
|
70
|
-
console.log('\n start callback \n');
|
|
71
|
-
|
|
72
|
-
// collections responding to events in their objects?
|
|
73
|
-
if (this.status === 'off') {
|
|
74
|
-
//that.meta.set('status', 'starting');
|
|
75
|
-
this.status = 'starting';
|
|
76
|
-
|
|
77
|
-
this.status = 'on';
|
|
78
|
-
this.raise_event('started');
|
|
79
|
-
if (callback) {
|
|
80
|
-
//console.log('pre cb lsi');
|
|
81
|
-
callback(null, true);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
} else if (o_status == 'on') {
|
|
85
|
-
callback(null, true);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
'meets_requirements'() {
|
|
91
|
-
return true;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
Local_Server_Info.prototype.fields = local_server_info_fields;
|
|
96
|
-
module.exports = Local_Server_Info;
|
|
1
|
+
|
|
2
|
+
var jsgui = require('jsgui3-html'), os = require('os'), http = require('http'),
|
|
3
|
+
libUrl = require('url'),
|
|
4
|
+
Resource = jsgui.Resource;
|
|
5
|
+
|
|
6
|
+
var stringify = jsgui.stringify, each = jsgui.each, arrayify = jsgui.arrayify, tof = jsgui.tof;
|
|
7
|
+
var filter_map_by_regex = jsgui.filter_map_by_regex;
|
|
8
|
+
var Class = jsgui.Class, Data_Object = jsgui.Data_Object;
|
|
9
|
+
var fp = jsgui.fp, is_defined = jsgui.is_defined;
|
|
10
|
+
var Collection = jsgui.Collection;
|
|
11
|
+
|
|
12
|
+
var exec = require('child_process').exec;
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
/*
|
|
16
|
+
var Network_Interfaces = Collection.extend({
|
|
17
|
+
'item_def': {'name': 'string', 'entries': [{'address': 'string', 'family': 'string', 'internal': 'boolean'}]}
|
|
18
|
+
});
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
var local_server_info_fields = [
|
|
22
|
+
//['name', 'string'],
|
|
23
|
+
['networkInterfaces', Object], // was Network_Interfaces
|
|
24
|
+
['status', 'string']
|
|
25
|
+
];
|
|
26
|
+
class Local_Server_Info extends Resource {
|
|
27
|
+
// A network interfaces field.
|
|
28
|
+
constructor(spec) {
|
|
29
|
+
super(spec);
|
|
30
|
+
// meta status.
|
|
31
|
+
//this.meta.set('status', 'off');
|
|
32
|
+
// could use a _ object with proxies.
|
|
33
|
+
this.status = 'off';
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
this.getters = {};
|
|
37
|
+
|
|
38
|
+
var getters = {
|
|
39
|
+
'net': (callback) => {
|
|
40
|
+
callback(null, os.networkInterfaces());
|
|
41
|
+
},
|
|
42
|
+
'cpus': (callback) => {
|
|
43
|
+
callback(null, os.cpus());
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
Object.assign(this.getters, getters);
|
|
47
|
+
|
|
48
|
+
}
|
|
49
|
+
// context needs to work properly in call multiple.. need to sort that out.
|
|
50
|
+
// may need to specify the calling object and the function.
|
|
51
|
+
// may not just be a pair.
|
|
52
|
+
|
|
53
|
+
'start'(callback) {
|
|
54
|
+
|
|
55
|
+
// Returning observable / optional callback would be better.
|
|
56
|
+
// Switching to observable may be best all round.
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
//var that = this;
|
|
60
|
+
|
|
61
|
+
// Super should not be callback start? Seems a little confusing or like it could go wrong here.
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
super.start((err, res_start) => {
|
|
66
|
+
if (err) {
|
|
67
|
+
callback(err);
|
|
68
|
+
} else {
|
|
69
|
+
|
|
70
|
+
console.log('\n start callback \n');
|
|
71
|
+
|
|
72
|
+
// collections responding to events in their objects?
|
|
73
|
+
if (this.status === 'off') {
|
|
74
|
+
//that.meta.set('status', 'starting');
|
|
75
|
+
this.status = 'starting';
|
|
76
|
+
|
|
77
|
+
this.status = 'on';
|
|
78
|
+
this.raise_event('started');
|
|
79
|
+
if (callback) {
|
|
80
|
+
//console.log('pre cb lsi');
|
|
81
|
+
callback(null, true);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
} else if (o_status == 'on') {
|
|
85
|
+
callback(null, true);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
'meets_requirements'() {
|
|
91
|
+
return true;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
Local_Server_Info.prototype.fields = local_server_info_fields;
|
|
96
|
+
module.exports = Local_Server_Info;
|
package/resources/notes.txt
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
from jsgui3-html
|
|
2
|
-
|
|
3
|
-
jsgui.Resource = require('./resource/resource');
|
|
4
|
-
jsgui.Resource_Pool = require('./resource/pool');
|
|
5
|
-
jsgui.Resource.Data_KV = require('./resource/data-kv-resource');
|
|
6
|
-
jsgui.Resource.Data_Transform = require('./resource/data-transform-resource');
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
Want a really simple search & replace type template system for the moment.
|
|
10
|
-
|
|
1
|
+
from jsgui3-html
|
|
2
|
+
|
|
3
|
+
jsgui.Resource = require('./resource/resource');
|
|
4
|
+
jsgui.Resource_Pool = require('./resource/pool');
|
|
5
|
+
jsgui.Resource.Data_KV = require('./resource/data-kv-resource');
|
|
6
|
+
jsgui.Resource.Data_Transform = require('./resource/data-transform-resource');
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
Want a really simple search & replace type template system for the moment.
|
|
10
|
+
|
|
11
11
|
Integrating react into the server at various levels would help.
|