From 54f2e5de7590c20268567d0d4dc841d4a9325625 Mon Sep 17 00:00:00 2001
From: "Alexey.Golubev" <Alexey.Golubev@OnlyOffice.com>
Date: Fri, 6 Dec 2013 10:43:17 +0000
Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=BA=D1=80=D0=B8=D0=BF=D1=82=D1=8B=20?=
 =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20=D1=81=D0=B1=D0=BE=D1=80=D0=BA=D0=B8=20?=
 =?UTF-8?q?=D0=BE=D0=BF=D0=B5=D0=BD=D1=81=D0=BE=D1=80=D1=81=20=D0=B2=D0=B5?=
 =?UTF-8?q?=D1=80=D1=81=D0=B8=D0=B8.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@52918 954022d7-b5bf-4e40-9824-e11837661b57
---
 Build/opensource/build.bat          |   7 +
 Build/opensource/grunt.js           | 248 ++++++++++++++++++++++++++++
 Build/opensource/installtools.bat   |   8 +
 Build/opensource/webexcel.json      | 217 ++++++++++++++++++++++++
 Build/opensource/webpowerpoint.json | 228 +++++++++++++++++++++++++
 Build/opensource/webword.json       | 219 ++++++++++++++++++++++++
 6 files changed, 927 insertions(+)
 create mode 100644 Build/opensource/build.bat
 create mode 100644 Build/opensource/grunt.js
 create mode 100644 Build/opensource/installtools.bat
 create mode 100644 Build/opensource/webexcel.json
 create mode 100644 Build/opensource/webpowerpoint.json
 create mode 100644 Build/opensource/webword.json

diff --git a/Build/opensource/build.bat b/Build/opensource/build.bat
new file mode 100644
index 000000000..1a0a185df
--- /dev/null
+++ b/Build/opensource/build.bat
@@ -0,0 +1,7 @@
+@echo off
+cd /D %~dp0
+
+@echo on
+call grunt.cmd build_webword
+
+pause
\ No newline at end of file
diff --git a/Build/opensource/grunt.js b/Build/opensource/grunt.js
new file mode 100644
index 000000000..755e74072
--- /dev/null
+++ b/Build/opensource/grunt.js
@@ -0,0 +1,248 @@
+module.exports = function(grunt) {
+    var defaultConfig, packageFile, toolsConfig, toolsFile;
+
+    grunt.loadNpmTasks('grunt-contrib');
+    grunt.loadNpmTasks('grunt-exec');
+	grunt.loadNpmTasks('grunt-closure-tools');
+	grunt.loadNpmTasks('grunt-replace');
+	
+	grunt.registerTask('setup_tools', 'Initialize tools.', function(){
+        toolsConfig = 'tools.json';
+        toolsFile = require('./' + toolsConfig);
+
+        if (toolsFile)
+            grunt.log.ok('Tools config loaded successfully'.green);
+        else
+            grunt.log.error().writeln('Could not load config file'.red);
+    });
+	
+	grunt.registerTask('cleanup_deploy_folder_init', 'Initialize tools.', function(){
+		grunt.initConfig({
+			clean: [
+				toolsFile['menu_path']
+			]
+		});
+    });	
+	
+	grunt.registerTask('cleanup_deploy_folder',  'cleanup_deploy_folder_init clean');
+	
+	grunt.registerTask('build_webword_init', 'Initialize build WebWord SDK.', function(){
+        defaultConfig = './sdk_configs/webword.json';
+        packageFile = require(defaultConfig);
+
+        if (packageFile)
+            grunt.log.ok('WebWord config loaded successfully'.green);
+        else
+            grunt.log.error().writeln('Could not load config file'.red);
+    });
+
+	grunt.registerTask('build_webword_server_init', 'Initialize build WebWord SDK.', function(){
+        defaultConfig = './sdk_configs/webword_server.json';
+        packageFile = require(defaultConfig);
+
+        if (packageFile)
+            grunt.log.ok('WebWord_server config loaded successfully'.green);
+        else
+            grunt.log.error().writeln('Could not load config file'.red);
+    });
+	
+    grunt.registerTask('build_webexcel_init', 'Initialize build WebExcel SDK.', function(){
+        defaultConfig = './sdk_configs/webexcel.json';
+        packageFile = require(defaultConfig);
+
+        if (packageFile)
+            grunt.log.ok('WebExcel config loaded successfully'.green);
+        else
+            grunt.log.error().writeln('Could not load config file'.red);
+    });
+
+    grunt.registerTask('build_webpowerpoint_init', 'Initialize build WebPowerPoint SDK.', function(){
+        defaultConfig = './sdk_configs/webpowerpoint.json';
+        packageFile = require(defaultConfig);
+
+        if (packageFile)
+            grunt.log.ok('WebPowerPoint config loaded successfully'.green);
+        else
+            grunt.log.error().writeln('Could not load config file'.red);
+    });
+	
+	grunt.registerTask('build_sdk', 'Build sdk.', function(){
+        if (packageFile) {
+            if (packageFile['tasks']['build'])
+                grunt.task.run(packageFile['tasks']['build']);
+            else
+                grunt.log.error().writeln('Not found "build" task in configure'.red);
+        } else {
+            grunt.log.error().writeln('Is not load configure file.'.red);
+        }
+    });
+	
+	grunt.registerTask('build_webword',     'setup_tools build_webword_init build_sdk');
+	grunt.registerTask('build_webword_server', 'setup_tools build_webword_server_init build_sdk');
+    grunt.registerTask('build_webexcel',  'setup_tools build_webexcel_init build_sdk');
+    grunt.registerTask('build_webpowerpoint', 'setup_tools build_webpowerpoint_init build_sdk');
+	grunt.registerTask('build_all', 'setup_tools build_webword_init build_sdk build_webexcel_init build_sdk build_webpowerpoint_init build_sdk');
+	grunt.registerTask('cleanup_and_build_all', 'setup_tools cleanup_deploy_folder build_webword_init build_sdk build_webexcel_init build_sdk build_webpowerpoint_init build_sdk');
+
+	grunt.registerTask('up_sdk_src_init', 'Update SDK source', function() {
+		grunt.initConfig({
+			exec: {
+				update_sources: {
+					command: 'svn.exe up -q --non-interactive -r ' + packageFile['update_src']['revision'] + ' ' + packageFile['update_src']['src'],
+					stdout: true
+				},				
+				update_logs: {
+					command: 'svn.exe up -q --non-interactive -r HEAD ' + packageFile['compile']['sdk']['log'],
+					stdout: true
+				}
+			}
+		});
+    });
+	
+	grunt.registerTask('update_sources_webword', 'build_webword_init up_sdk_src_init exec');
+	grunt.registerTask('update_sources_webexcel', 'build_webexcel_init up_sdk_src_init exec');
+	grunt.registerTask('update_sources_webpowerpoint', 'build_webpowerpoint_init up_sdk_src_init exec');
+
+	grunt.registerTask('update_sources', 'update_sources_webword update_sources_webexcel update_sources_webpowerpoint');
+
+	grunt.registerTask('commit_logs_init', function() {
+		var build_num = packageFile['info']['build'];
+		var svn_rev = packageFile['update_src']['revision'];
+		
+		if(undefined !== process.env['BUILD_NUMBER'])
+			build_num = parseInt(process.env['BUILD_NUMBER']);
+			
+		if(undefined !== process.env['SVN_REVISION'])
+			svn_rev = parseInt(process.env['SVN_REVISION']);
+			
+		var commit_message ='\"Version: '+ packageFile['info']['version'] + 
+							' (build:' + build_num + ')' +
+							' from svn rev: ' + svn_rev + '\"';
+        grunt.initConfig({
+			exec: {
+				store_log: {
+					command: 'svn.exe commit ' + packageFile['deploy']['store_log']['dst'] + ' -q -m ' + commit_message,
+					stdout: false
+				}
+			}
+        });
+    });	
+	
+	grunt.registerTask('commit_logs_webword', 'build_webword_init commit_logs_init exec');
+	grunt.registerTask('commit_logs_webexcel', 'build_webexcel_init commit_logs_init exec');
+	grunt.registerTask('commit_logs_webpowerpoint', 'build_webpowerpoint_init commit_logs_init exec');
+	
+	grunt.registerTask('commit_logs', 'commit_logs_webword commit_logs_webexcel commit_logs_webpowerpoint');
+	
+    grunt.registerTask('increment_build', function() {
+		var pkg = grunt.file.readJSON(defaultConfig);
+		pkg.info.build = parseInt(pkg.info.build) + 1;
+
+		if(undefined !== process.env['BUILD_NUMBER']) {
+			grunt.log.ok('Use Jenkins build number as sdk-all build number!'.yellow);
+			packageFile['info']['build'] = parseInt(process.env['BUILD_NUMBER']);
+			pkg.info.build = packageFile['info']['build'];
+		}
+		grunt.file.write(defaultConfig, JSON.stringify(pkg, null, 4));
+    });
+
+	
+	grunt.registerTask('concat_js_api_init', 'Concatinate JS API', function() {
+        grunt.initConfig({
+            concat:  packageFile['concat_api']
+        });
+    });
+	grunt.registerTask('concat_js_api', 'concat_js_api_init concat');
+	
+	grunt.registerTask('extract_js_api_init', 'Extract JS API', function(){
+		grunt.initConfig({
+			exec: {
+				api: {
+					command: 'bin\\ExtractJSApi.exe ' + packageFile['extract_api']['src'] + ' ' + packageFile['extract_api']['dst'],
+					stdout: false
+				}
+			}
+		});
+	});
+	grunt.registerTask('extract_js_api', 'extract_js_api_init exec');
+	
+	grunt.registerTask('create_map_file', function() {
+		//Не нашел как передать параметры в таску, поэтому  продублировал код.	
+		var map_file_path = packageFile['compile']['sdk']['dst'] + '.map';	
+		var map_record = '//@ sourceMappingURL=' + packageFile['compile']['source_map']['url'] + '/' + map_file_path;
+
+		var map_record_file_path = map_file_path + '.tmp';
+		grunt.file.write(map_record_file_path, map_record);
+	});
+	
+	grunt.registerTask('compile_sdk_init', function() {
+		var map_file_path = packageFile['compile']['sdk']['dst'] + '.map';
+		var map_record_file_path = map_file_path + '.tmp';
+		var concat_res = {};
+		concat_res[packageFile['compile']['sdk']['dst']] = [
+					packageFile['compile']['sdk']['dst'],
+					packageFile['compile']['defines']['dst'],
+					map_record_file_path ];
+		grunt.initConfig({
+			closureCompiler: {
+			  sdk: {
+				closureCompiler: toolsFile['closure_compiler'],
+				js: packageFile['compile']['sdk']['src'],
+				output_file: packageFile['compile']['sdk']['dst'],
+				options: {
+					compilation_level: 'ADVANCED_OPTIMIZATIONS',
+					externs: packageFile['compile']['sdk']['externs'],
+					define: packageFile['compile']['sdk']['define'],
+					warning_level: 'QUIET',
+					variable_map_output_file: packageFile['compile']['sdk']['log'] + '/variable.map',
+					property_map_output_file: packageFile['compile']['sdk']['log'] + '/property.map',
+					create_source_map: map_file_path,
+					source_map_format: "V3"
+				}
+			  },
+			  defines: {
+				closureCompiler: toolsFile['closure_compiler'],
+				js: packageFile['compile']['defines']['src'],
+				output_file: packageFile['compile']['defines']['dst'],
+				options: {
+					compilation_level: 'SIMPLE_OPTIMIZATIONS',
+					warning_level: 'QUIET'
+				}
+			  }
+			},
+			create_map_file: {},
+			concat: concat_res,
+			clean: [ 
+				packageFile['compile']['defines']['dst'],
+				map_record_file_path
+			],
+			pkg: '<json:' + defaultConfig + '>',
+			replace: {
+				version: {
+					options: {
+						variables: {
+							Version: packageFile['info']['version'],
+							Build: packageFile['info']['build'].toString()
+						}
+					},
+					files: {
+						'<%= pkg.compile.sdk.dst %>': '<%= pkg.compile.sdk.dst %>'
+					}
+				}
+			}
+		});
+	});
+	
+	grunt.registerTask('compile_sdk', 'compile_sdk_init closureCompiler concat replace clean');
+	
+	grunt.registerTask('deploy_sdk_init', function() {
+        grunt.initConfig({
+		    pkg: '<json:' + toolsConfig + '>',
+            copy:  packageFile['deploy']['copy']
+        });
+    });
+	
+	grunt.registerTask('deploy_sdk', 'deploy_sdk_init copy');
+	
+	grunt.registerTask('default', 'update_sources build_all commit_logs');
+};
\ No newline at end of file
diff --git a/Build/opensource/installtools.bat b/Build/opensource/installtools.bat
new file mode 100644
index 000000000..ee8213ea4
--- /dev/null
+++ b/Build/opensource/installtools.bat
@@ -0,0 +1,8 @@
+@echo off
+
+echo Installation grunt and grunt-contrib
+call npm install -g grunt@0.3.17 
+call npm install grunt-contrib@0.3.0
+call npm install grunt-closure-tools@0.6.12
+call npm install grunt-exec@0.3.0
+call npm install grunt-replace@0.3.2
diff --git a/Build/opensource/webexcel.json b/Build/opensource/webexcel.json
new file mode 100644
index 000000000..b248e531b
--- /dev/null
+++ b/Build/opensource/webexcel.json
@@ -0,0 +1,217 @@
+{
+    "info": {
+        "version": "1.1",
+        "build": 145
+    },
+    "update_src": {
+        "revision": "HEAD",
+        "src": "../Common ../Word ../Excel ../PowerPoint"
+    },
+    "extract_api": {
+        "src": "../Word/apiCommon.js",
+        "dst": "../Excel/.build/Log/apiCommonExport.js"
+    },
+    "compile": {
+        "sdk": {
+            "src": [
+                "../Common/Build/License.js",
+				"../Common/browser.js",
+                "../Common/docscoapisettings.js",
+                "../Common/docscoapicommon.js",
+                "../Common/docscoapi.js",
+                "../Common/downloaderfiles.js",
+				"../Common/apiCommon.js",
+                "../Common/commonDefines.js",
+                "../Common/editorscommon.js",
+                "../Common/NumFormat.js",
+                "../Common/Charts/charts.js",
+                "../Common/Charts/DrawingObjects.js",
+                "../Common/FontsFreeType/font_engine.js",
+                "../Common/FontsFreeType/FontFile.js",
+                "../Common/FontsFreeType/FontManager.js",
+				"../Word/Drawing/HatchPattern.js",
+                "../Word/Drawing/Externals.js",
+                "../Word/Drawing/Graphics.js",
+                "../Word/Drawing/Metafile.js",
+				"../Excel/model/DrawingObjects/GlobalLoaders.js",				
+                "../Common/trackFile.js",
+				"../Excel/apiDefines.js",
+                "../Excel/offlinedocs/test-workbook9/Editor.js",
+                "../Excel/offlinedocs/empty-workbook.js",
+                "../Excel/utils/utils.js",
+                "../Excel/model/clipboard.js",
+                "../Excel/model/autofilters.js",
+                "../Excel/graphics/DrawingContext.js",
+                "../Excel/graphics/pdfprinter.js",
+                "../Excel/model/CollaborativeEditing.js",
+                "../Excel/model/ConditionalFormatting.js",
+                "../Excel/model/FormulaObjects/parserFormula.js",
+                "../Excel/model/FormulaObjects/dateandtimeFunctions.js",
+                "../Excel/model/FormulaObjects/engineeringFunctions.js",
+                "../Excel/model/FormulaObjects/cubeFunctions.js",
+                "../Excel/model/FormulaObjects/databaseFunctions.js",
+                "../Excel/model/FormulaObjects/textanddataFunctions.js",
+                "../Excel/model/FormulaObjects/statisticalFunctions.js",
+                "../Excel/model/FormulaObjects/financialFunctions.js",
+                "../Excel/model/FormulaObjects/mathematicFunctions.js",
+                "../Excel/model/FormulaObjects/lookupandreferenceFunctions.js",
+                "../Excel/model/FormulaObjects/informationFunctions.js",
+                "../Excel/model/FormulaObjects/logicalFunctions.js",
+                "../Excel/model/Serialize.js",
+                "../Excel/model/WorkbookElems.js",
+                "../Excel/model/Workbook.js",
+                "../Excel/model/CellInfo.js",
+                "../Excel/model/AdvancedOptions.js",
+                "../Excel/model/History.js",
+                "../Excel/model/UndoRedo.js",
+                "../Excel/model/CellComment.js",
+                "../Excel/view/StringRender.js",
+                "../Excel/view/CellTextRender.js",
+                "../Excel/view/CellEditorView.js",
+                "../Excel/view/WorksheetView.js",
+                "../Excel/view/HandlerList.js",
+                "../Excel/view/EventsController.js",
+                "../Excel/view/WorkbookView.js",
+                "../Common/scroll.js",
+                "../Word/Editor/SerializeCommon.js",
+                "../Excel/model/DrawingObjects/Format/Format.js",
+                "../Word/Editor/GraphicObjects/ObjectTypes/CreateGeometry.js",
+                "../Excel/model/DrawingObjects/Format/Geometry.js",
+                "../Excel/model/DrawingObjects/Format/Path.js",
+                "../Word/Editor/GraphicObjects/Math.js",
+                "../Word/Drawing/ArcTo.js",
+                "../Word/Drawing/ColorArray.js",
+                "../Common/Shapes/Serialize.js",
+                "../Common/Shapes/SerializeWriter.js",
+                "../Common/SerializeCommonWordExcel.js",
+                "../Common/Charts/libraries/OfficeExcel.common.core.js",
+                "../Common/Charts/libraries/OfficeExcel.common.key.js",
+                "../Common/Charts/libraries/OfficeExcel.bar.js",
+                "../Common/Charts/libraries/OfficeExcel.hbar.js",
+                "../Common/Charts/libraries/OfficeExcel.line.js",
+                "../Common/Charts/libraries/OfficeExcel.pie.js",
+                "../Common/Charts/libraries/OfficeExcel.scatter.js",
+                "../Common/Charts/libraries/OfficeExcel.chartProperties.js",
+                "../Excel/model/DrawingObjects/DrawingObjectsController.js",
+                "../Excel/model/DrawingObjects/States.js",
+                "../Excel/model/DrawingObjects/Format/GroupShape.js",
+                "../Excel/model/DrawingObjects/Format/Image.js",
+                "../Excel/model/DrawingObjects/Format/Shape.js",
+                "../Excel/model/DrawingObjects/Format/TextBody.js",
+                "../Excel/model/DrawingObjects/Format/Styles.js",
+                "../Excel/model/DrawingObjects/Format/Numbering.js",
+                "../Excel/model/DrawingObjects/Format/ParagraphContent.js",
+                "../Excel/model/DrawingObjects/Format/Paragraph.js",
+                "../Excel/model/DrawingObjects/Format/DocumentContent.js",
+                "../Excel/model/DrawingObjects/Format/FontClassification.js",
+                "../Excel/model/DrawingObjects/Format/Chart.js",
+                "../Excel/model/DrawingObjects/Format/ChartLayout.js",
+                "../Excel/model/DrawingObjects/Format/ChartLegend.js",
+                "../Excel/model/DrawingObjects/Format/ChartTitle.js",
+                "../Excel/model/DrawingObjects/Tracks/AdjustmentTracks.js",
+                "../Excel/model/DrawingObjects/Tracks/ResizeTracks.js",
+                "../Excel/model/DrawingObjects/Tracks/RotateTracks.js",
+                "../Excel/model/DrawingObjects/Tracks/NewShapeTracks.js",
+                "../Excel/model/DrawingObjects/Tracks/PolyLine.js",
+                "../Excel/model/DrawingObjects/Tracks/Spline.js",
+                "../Excel/model/DrawingObjects/Tracks/MoveTracks.js",
+                "../Excel/model/DrawingObjects/Hit.js",
+                "../Excel/model/DrawingObjects/Controls.js",
+                "../Excel/model/DrawingObjects/Graphics.js",
+                "../Excel/model/DrawingObjects/Overlay.js",
+				"../Excel/model/DrawingObjects/GlobalCounters.js",
+				"../Excel/model/DrawingObjects/DrawingDocument.js",
+				"../Excel/model/DrawingObjects/ShapeDrawer.js",
+                "../Word/apiCommon.js",
+                "../Excel/.build/Log/apiCommonExport.js",
+                "../Excel/api.js"
+            ],
+            "dst": "../Excel/sdk-all.js",
+            "externs": [
+                "../Common/Build/Externs.js",
+                "../Excel/jquery/jquery-1.7.1.js",
+                "../Excel/jquery/jquery.mousewheel-3.0.6.js",
+                "../Common/3rdparty/XRegExp/xregexp-all-min.js"
+            ],
+            "map": "sdk-all.js.map",
+            "log": "../Excel/.build/Log",
+            "define": [
+                "ASC_DOCS_API_LOAD_COAUTHORING_SETTINGS=false",
+                "ASC_DOCS_API_USE_FONTS_ORIGINAL_FORMAT=true"
+            ]
+        },
+        "defines": {
+            "src": [
+                "../Common/Shapes/EditorSettings.js",
+                "../Common/commonDefines.js",
+                "../Excel/apiDefines.js"
+            ],
+            "dst": "apiDefines.min.js"
+        },
+        "source_map": {
+            "url": "http://localhost:8080/sdk/Excel"
+        }
+    },
+    "deploy": {
+        "copy": {
+            "common": {
+                "files": {
+                    "<%= pkg.menu_path %>/Excel/model/": [
+                        "../Common/Charts/DrawingObjects.js"
+                    ]
+                }
+            },
+            "api": {
+                "files": {
+                    "<%= pkg.menu_path %>/Excel/": [
+                        "../Excel/api.js",
+                        "../Excel/apiDefines.js",
+                        "../Excel/view/EventsController.js",
+                        "../Excel/view/HandlerList.js",
+                        "../Excel/model/AdvancedOptions.js",
+                        "../Excel/model/CellInfo.js",
+                        "../Excel/model/CellComment.js",
+                        "../Excel/utils/utils.js",
+                        "../Excel/css/*.css"
+                    ]
+                }
+            },
+            "sdk": {
+                "files": {
+                    "<%= pkg.menu_path %>/Excel/": "../Excel/sdk-all.js"
+                }
+            },
+            "doc": {
+                "files": {
+                    "<%= pkg.menu_path %>/Excel/offlinedocs/test-workbook9/": "../Excel/offlinedocs/test-workbook9/**"
+                }
+            },
+            "log": {
+                "files": {
+                    "<%= pkg.menu_path %>/Excel/": "../Excel/sdk-all.js.map"
+                }
+            },
+            "samlpe": {
+                "files": {
+                    "<%= pkg.menu_path %>/Excel/Spreadsheet.html": "../Excel/Spreadsheet.html.deploy"
+                }
+            },
+            "samlpe_files": {
+                "files": {
+                    "<%= pkg.menu_path %>/Excel/": [
+                        "../Excel/jquery/jquery-1.7.1.js",
+                        "../Excel/jquery/jquery.mousewheel-3.0.6.js",
+                        "../Excel/css/nav-buttons.png",
+                        "../Excel/css/gradient.png"
+                    ]
+                }
+            }
+        },
+        "store_log": {
+            "dst": "../Excel/.build/Log"
+        }
+    },
+    "tasks": {
+        "build": "increment_build extract_js_api compile_sdk deploy_sdk"
+    }
+}
\ No newline at end of file
diff --git a/Build/opensource/webpowerpoint.json b/Build/opensource/webpowerpoint.json
new file mode 100644
index 000000000..3e4178c74
--- /dev/null
+++ b/Build/opensource/webpowerpoint.json
@@ -0,0 +1,228 @@
+{
+    "info": {
+        "version": "1.1",
+        "build": 147
+    },
+    "update_src": {
+        "revision": "HEAD",
+        "src": "../Common ../Word ../PowerPoint"
+    },
+    "concat_api": {
+        "../PowerPoint/api-all.js": [
+            "../PowerPoint/api.js",
+            "../PowerPoint/apiCommon.js"
+        ]
+    },
+    "extract_api": {
+        "src": "../PowerPoint/api-all.js",
+        "dst": "../PowerPoint/Build/Log/apiExport.js"
+    },
+    "compile": {
+        "sdk": {
+            "src": [
+                "../Common/Build/License.js",
+				"../Common/browser.js",
+                "../Common/docscoapisettings.js",
+                "../Common/docscoapicommon.js",
+                "../Common/docscoapi.js",
+                "../Common/wordcopypaste.js",
+                "../Common/downloaderfiles.js",
+                "../Common/editorscommon.js",
+				"../Common/apiCommon.js",
+                "../Common/Shapes/Serialize.js",
+                "../Common/Shapes/SerializeWriter.js",
+                "../Common/FontsFreeType/font_engine.js",
+                "../Common/FontsFreeType/FontFile.js",
+                "../Common/FontsFreeType/FontManager.js",
+                "../Word/Drawing/Externals.js",
+                "../Word/Drawing/GlobalLoaders.js",
+                "../PowerPoint/Drawing/ThemeLoader.js",
+                "../PowerPoint/Editor/Format/CollaborativeEditing.js",
+                "../PowerPoint/Editor/Styles.js",
+                "../PowerPoint/Editor/Format/ParagraphContent.js",
+                "../PowerPoint/Editor/Format/FontClassification.js",
+                "../PowerPoint/Editor/Format/Spelling.js",
+                "../PowerPoint/Editor/Format/Comments.js",
+                "../PowerPoint/Editor/GraphicObjects.js",
+                "../PowerPoint/Editor/States.js",
+
+
+                "../Common/Charts/DrawingObjects.js",
+                "../Common/commonDefines.js",
+                "../Common/SerializeCommonWordExcel.js",
+                "../Word/Editor/Serialize2.js",
+                "../Common/Charts/charts.js",
+                "../Excel/graphics/DrawingContextWord.js",
+
+                "../Common/trackFile.js",
+
+                "../Common/Charts/libraries/OfficeExcel.common.core.js",
+                "../Common/Charts/libraries/OfficeExcel.common.key.js",
+
+                "../Common/Charts/libraries/OfficeExcel.bar.js",
+
+
+                "../Common/Charts/libraries/OfficeExcel.hbar.js",
+
+                "../Common/Charts/libraries/OfficeExcel.line.js",
+
+                "../Common/Charts/libraries/OfficeExcel.pie.js",
+                "../Common/Charts/libraries/OfficeExcel.scatter.js",
+
+                "../Common/Charts/libraries/OfficeExcel.chartProperties.js",
+
+                "../Word/Editor/SerializeCommon.js",
+
+
+                "../Word/Drawing/Metafile.js",
+                "../Word/Drawing/GraphicsEvents.js",
+                "../Word/Drawing/WorkEvents.js",
+                "../Word/Drawing/Controls.js",
+                "../Word/Drawing/Rulers.js",
+                "../PowerPoint/Editor/Format/Table.js",
+                "../Word/Editor/Common.js",
+                "../Word/Editor/Sections.js",
+                "../Common/scroll.js",
+                "../PowerPoint/Editor/History.js",
+                "../PowerPoint/Editor/Format/Paragraph.js",
+                "../PowerPoint/Editor/FlowObjects.js",
+                "../PowerPoint/Editor/Format/DocumentContent.js",
+                "../PowerPoint/Editor/Format/Presentation.js",
+                "../PowerPoint/Editor/SlideShowInfo.js",
+                "../PowerPoint/Editor/PresentationProperties.js",
+                "../PowerPoint/Editor/Format/Shape.js",
+                "../PowerPoint/Editor/Format/GraphicFrame.js",
+                "../PowerPoint/Editor/Numbering.js",
+
+                "../PowerPoint/Editor/TrackObjects/AdjustmentTracks.js",
+                "../PowerPoint/Editor/TrackObjects/MoveTracks.js",
+                "../PowerPoint/Editor/TrackObjects/NewShapeTracks.js",
+                "../PowerPoint/Editor/TrackObjects/PolyLine.js",
+                "../PowerPoint/Editor/TrackObjects/ResizeTracks.js",
+                "../PowerPoint/Editor/TrackObjects/RotateTracks.js",
+                "../PowerPoint/Editor/TrackObjects/Spline.js",
+
+                "../PowerPoint/Editor/Format/TextBody.js",
+                "../PowerPoint/Editor/Format/Image.js",
+                "../PowerPoint/Editor/Format/GroupShape.js",
+                "../PowerPoint/Editor/Format/ChartTitle.js",
+                "../PowerPoint/Editor/Format/Chart.js",
+                "../PowerPoint/Editor/Format/ChartLayout.js",
+                "../PowerPoint/Editor/Format/Slide.js",
+                "../PowerPoint/Editor/Format/SlideMaster.js",
+                "../PowerPoint/Editor/Format/Layout.js",
+
+
+
+
+                "../PowerPoint/Editor/Drawing/Geometry.js",
+                "../PowerPoint/Editor/Drawing/CreateGoemetry.js",
+                "../PowerPoint/Editor/Drawing/ColorArray.js",
+                "../PowerPoint/Editor/Drawing/Math.js",
+                "../PowerPoint/Editor/Drawing/Path.js",
+                "../PowerPoint/Editor/Drawing/ArcTo.js",
+                "../PowerPoint/Editor/Drawing/GraphicFigure.js",
+                "../PowerPoint/Editor/Drawing/Clone.js",
+                "../PowerPoint/Editor/Drawing/CImage.js",
+                "../PowerPoint/Editor/Drawing/Spline.js",
+                "../PowerPoint/Editor/Drawing/PolyLine.js",
+                "../PowerPoint/Editor/Drawing/Hit.js",
+                "../PowerPoint/Editor/Drawing/Joined.js",
+
+                "../Word/Drawing/Graphics.js",
+                "../Word/Drawing/Overlay.js",
+				"../Word/Drawing/HatchPattern.js",
+                "../Word/Drawing/ShapeDrawer.js",
+				"../PowerPoint/Drawing/Transitions.js",
+                "../PowerPoint/Drawing/DrawingDocument.js",
+                "../PowerPoint/Drawing/HtmlPage.js",
+                "../PowerPoint/Editor/Format.js",
+                "../PowerPoint/apiDefines.js",
+
+                "../PowerPoint/api-all.js",
+                "../PowerPoint/Build/Log/apiExport.js"
+            ],
+            "dst": "../PowerPoint/sdk-all.js",
+            "externs": [
+                "../Common/Build/Externs.js",
+                "../Word/Drawing/scrolls/jquery.min.js",
+                "../Common/3rdparty/Underscore/underscore-min.js",
+                "../Common/3rdparty/Sockjs/sockjs-0.3.min.js",
+				"../Common/3rdparty/XRegExp/xregexp-all-min.js"
+            ],
+            "map": "sdk-all.js.map",
+            "log": "../PowerPoint/Build/Log",
+            "define": [
+                "ASC_DOCS_API_LOAD_COAUTHORING_SETTINGS=false",
+                "ASC_DOCS_API_USE_FONTS_ORIGINAL_FORMAT=true"
+            ]
+        },
+        "defines": {
+            "src": [
+                "../Common/Shapes/EditorSettings.js",
+                "../PowerPoint/themes/Themes.js",
+                "../PowerPoint/apiDefines.js",
+                "../Common/commonDefines.js"
+            ],
+            "dst": "apiDefines.min.js"
+        },
+        "source_map": {
+            "url": "http://localhost:8080/sdk/PowerPoint"
+        }
+    },
+    "deploy": {
+        "copy": {
+            "api": {
+                "files": {
+                    "<%= pkg.menu_path %>/PowerPoint/": [
+                        "../PowerPoint/api.js",
+                        "../PowerPoint/apiCommon.js",
+                        "../PowerPoint/apiDefines.js"
+                    ]
+                }
+            },
+            "sdk": {
+                "files": {
+                    "<%= pkg.menu_path %>/PowerPoint/": [
+                        "../PowerPoint/sdk-all.js",
+                        "../PowerPoint/themes/theme*/**"
+                    ]
+                }
+            },
+            "doc": {
+                "files": {
+                    "<%= pkg.menu_path %>/PowerPoint/document/": "../PowerPoint/document/**"
+                }
+            },
+            "log": {
+                "files": {
+                    "<%= pkg.menu_path %>/PowerPoint/": [
+                        "../PowerPoint/sdk-all.js.map",
+                        "../PowerPoint/Build/Log/property.map",
+                        "../PowerPoint/Build/Log/variable.map",
+                        "../PowerPoint/Build/Log/apiExport.js"
+                    ]
+                },
+                "options": {
+                    "flatten": true
+                }
+            },
+            "sample": {
+                "files": {
+                    "<%= pkg.menu_path %>/PowerPoint/": [
+                        "../PowerPoint/Images/**",
+                        "../PowerPoint/menu/**",
+                        "../PowerPoint/MenuIcons/**"
+                    ],
+                    "<%= pkg.menu_path %>/PowerPoint/index.html": "../PowerPoint/index.html.deploy"
+                }
+            }
+        },
+        "store_log": {
+            "dst": "../PowerPoint/Build/Log"
+        }
+    },
+    "tasks": {
+        "build": "increment_build concat_js_api extract_js_api compile_sdk deploy_sdk"
+    }
+}
\ No newline at end of file
diff --git a/Build/opensource/webword.json b/Build/opensource/webword.json
new file mode 100644
index 000000000..1ac5675eb
--- /dev/null
+++ b/Build/opensource/webword.json
@@ -0,0 +1,219 @@
+{
+    "info": {
+        "version": "1.1",
+        "build": 161
+    },
+    "update_src": {
+        "revision": "HEAD",
+        "src": "../Common ../Word"
+    },
+    "concat_api": {
+        "../Word/api-all.js": [
+            "../Word/api.js",
+            "../Word/apiCommon.js"
+        ]
+    },
+    "extract_api": {
+        "src": "../Word/api-all.js",
+        "dst": "../Word/Build/Log/apiExport.js"
+    },
+    "compile": {
+        "sdk": {
+            "src": [
+                "../Common/Build/License.js",
+                "../Common/Merge/NodejsEnv.js",
+                "../Common/browser.js",
+                "../Common/docscoapisettings.js",
+                "../Common/docscoapicommon.js",
+                "../Common/docscoapi.js",
+                "../Common/apiCommon.js",
+                "../Common/spellcheckapisettings.js",
+                "../Common/spellcheckapi.js",
+                "../Common/wordcopypaste.js",
+                "../Common/spellCheckLanguage.js",
+                "../Common/spellCheckLanguagesAll.js",
+                "../Common/downloaderfiles.js",
+                "../Common/commonDefines.js",
+                "../Common/editorscommon.js",
+                "../Common/NumFormat.js",
+                "../Common/Shapes/Serialize.js",
+                "../Common/Shapes/SerializeWriter.js",
+                "../Common/SerializeCommonWordExcel.js",
+                "../Common/trackFile.js",
+                "../Common/Charts/libraries/OfficeExcel.common.core.js",
+                "../Common/Charts/libraries/OfficeExcel.common.key.js",
+                "../Common/Charts/libraries/OfficeExcel.bar.js",
+                "../Common/Charts/libraries/OfficeExcel.hbar.js",
+                "../Common/Charts/libraries/OfficeExcel.line.js",
+                "../Common/Charts/libraries/OfficeExcel.pie.js",
+                "../Common/Charts/libraries/OfficeExcel.scatter.js",
+                "../Common/Charts/libraries/OfficeExcel.chartProperties.js",
+                "../Common/Charts/charts.js",
+                "../Common/Charts/DrawingObjects.js",
+                "../Common/FontsFreeType/font_engine.js",
+                "../Common/FontsFreeType/FontFile.js",
+                "../Common/FontsFreeType/FontManager.js",
+                "../Word/Drawing/Externals.js",
+                "../Word/Drawing/GlobalLoaders.js",
+                "../Word/Drawing/translations.js",
+                "../Word/Editor/GraphicObjects/GraphicObjects.js",
+                "../Word/Editor/GraphicObjects/GraphicPage.js",
+                "../Word/Editor/GraphicObjects/States.js",
+                "../Word/Editor/GraphicObjects/Math.js",
+                "../Word/Editor/GraphicObjects/TrackGraphicObjects.js",
+                "../Word/Editor/GraphicObjects/WrapManager.js",
+                "../Word/Editor/GraphicObjects/Spline.js",
+                "../Word/Editor/GraphicObjects/PolyLine.js",
+                "../Word/Editor/GraphicObjects/ObjectTypes/WordShape.js",
+                "../Word/Editor/GraphicObjects/ObjectTypes/WordImage.js",
+                "../Word/Editor/GraphicObjects/ObjectTypes/WordGroupShapes.js",
+                "../Word/Editor/GraphicObjects/ObjectTypes/Format.js",
+                "../Word/Editor/GraphicObjects/ObjectTypes/Geometry.js",
+                "../Word/Editor/GraphicObjects/ObjectTypes/ShapeTracks.js",
+                "../Word/Editor/GraphicObjects/ObjectTypes/GroupTracks.js",
+                "../Word/Editor/GraphicObjects/ObjectTypes/CreateGeometry.js",
+                "../Word/Editor/GraphicObjects/ObjectTypes/Path.js",
+                "../Word/Editor/GraphicObjects/ObjectTypes/Chart.js",
+                "../Word/Editor/GraphicObjects/ObjectTypes/ChartLayout.js",
+                "../Word/Editor/GraphicObjects/ObjectTypes/ChartLegend.js",
+                "../Word/Editor/GraphicObjects/ObjectTypes/ChartTitle.js",
+                "../Word/Editor/GraphicObjects/ObjectTypes/TextBody.js",
+                "../Word/Editor/CollaborativeEditing.js",
+                "../Word/Editor/Comments.js",
+                "../Word/Editor/History.js",
+                "../Word/Editor/Styles.js",
+                "../Word/Editor/DrawingObjects.js",
+                "../Word/Editor/FlowObjects.js",
+                "../Word/Editor/ParagraphContent.js",
+                "../Word/Editor/Paragraph.js",
+                "../Word/Editor/Sections.js",
+                "../Word/Editor/Numbering.js",
+                "../Word/Editor/HeaderFooter.js",
+                "../Word/Editor/Document.js",
+                "../Word/Editor/Common.js",
+                "../Word/Editor/DocumentContent.js",
+                "../Word/Editor/Table.js",
+                "../Word/Editor/Serialize2.js",
+                "../Word/Editor/Search.js",
+                "../Word/Editor/FontClassification.js",
+                "../Word/Editor/Spelling.js",
+                "../Word/Drawing/Graphics.js",
+                "../Word/Drawing/ArcTo.js",
+                "../Word/Drawing/Hit.js",
+                "../Word/Drawing/ColorArray.js",
+                "../Word/Drawing/Overlay.js",
+                "../Word/Drawing/HatchPattern.js",
+                "../Word/Drawing/ShapeDrawer.js",
+                "../Word/Drawing/Metafile.js",
+                "../Word/Drawing/DrawingDocument.js",
+                "../Word/Drawing/GraphicsEvents.js",
+                "../Word/Drawing/scrolls/iscroll.js",
+                "../Word/Drawing/WorkEvents.js",
+                "../Word/Drawing/Controls.js",
+                "../Word/Drawing/Rulers.js",
+                "../Word/Drawing/HtmlPage.js",
+                "../Word/Drawing/documentrenderer.js",
+                "../Common/scroll.js",
+                "../Word/Editor/SerializeCommon.js",
+                "../Word/apiDefines.js",
+                "../Word/api-all.js",
+                "../Word/merge/api_merge.js",
+                "../Word/Build/Log/apiExport.js",
+                "../Word/document/empty.js",
+                "../Excel/graphics/DrawingContextWord.js"
+            ],
+            "dst": "../Word/sdk-all.js",
+            "externs": [
+                "../Common/Build/Externs.js",
+                "../Word/Drawing/scrolls/jquery.min.js",
+                "../Common/3rdparty/Underscore/underscore-min.js",
+                "../Common/3rdparty/Sockjs/sockjs-0.3.min.js",
+                "../Common/3rdparty/XRegExp/xregexp-all-min.js"
+            ],
+            "map": "sdk-all.js.map",
+            "log": "../Word/Build/Log",
+            "define": [
+                "ASC_DOCS_API_LOAD_COAUTHORING_SETTINGS=false",
+                "ASC_DOCS_API_USE_FONTS_ORIGINAL_FORMAT=true"
+            ]
+        },
+        "defines": {
+            "src": [
+                "../Common/Shapes/EditorSettings.js",
+                "../Common/commonDefines.js",
+                "../Word/apiDefines.js"
+            ],
+            "dst": "apiDefines.min.js"
+        },
+        "source_map": {
+            "url": "http://localhost:8080/sdk/Word"
+        }
+    },
+    "deploy": {
+        "copy": {
+            "api": {
+                "files": {
+                    "<%= pkg.menu_path %>/Word/": [
+                        "../Word/api.js",
+                        "../Word/apiCommon.js",
+                        "../Word/apiDefines.js"
+                    ]
+                }
+            },
+            "sdk": {
+                "files": {
+                    "<%= pkg.menu_path %>/Word/": [
+                        "../Word/sdk-all.js",
+                        "../Word/Images/*.cur"
+                    ]
+                }
+            },
+            "fonts": {
+                "files": {
+                    "<%= pkg.menu_path %>/Fonts/": [
+                        "../Fonts/js/*.js",
+                        "../Fonts/native/*.ttf",
+                        "../Fonts/native/*.ttc",
+                        "../Fonts/native/*.otf",
+                        "../Fonts/native/*.TTF",
+                        "../Fonts/native/*.TTC",
+                        "../Fonts/native/*.OTF",
+                        "../Fonts/native/*.bin",
+                        "../Fonts/native/*.BIN"
+                    ]
+                }
+            },
+            "doc": {
+                "files": {
+                    "<%= pkg.menu_path %>/Word/document/": "../Word/document/**"
+                }
+            },
+            "docscoapisettings": {
+                "files": {
+                    "<%= pkg.menu_path %>/Common/": [
+                        "../Common/AllFonts.js",
+                        "../Common/docscoapisettings.js",
+                        "../Common/commonDefines.js",
+                        "../Common/apiCommon.js",
+                        "../Common/downloaderfiles.js"
+                    ]
+                }
+            },
+            "log": {
+                "files": {
+                    "<%= pkg.menu_path %>/Word/": [
+                        "../Word/Build/Log/property.map",
+                        "../Word/Build/Log/variable.map",
+                        "../Word/Build/Log/apiExport.js"
+                    ]
+                }
+            }
+        },
+        "store_log": {
+            "dst": "../Word/Build/Log"
+        }
+    },
+    "tasks": {
+        "build": "increment_build concat_js_api extract_js_api compile_sdk deploy_sdk"
+    }
+}
\ No newline at end of file
-- 
2.30.9