From 823806516332ebe37c312e4171033df0d140a6ac Mon Sep 17 00:00:00 2001
From: Swagatam Mitra
Date: Mon, 3 Jul 2017 11:33:44 +0530
Subject: [PATCH] Merge master into release for 1.10 release (#13503)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* add a tab with default extensions to extension manager
* implement getDefaultExtensionPath function
* enable and disable default extensions through a preference
* use the preference when attempting to load an extension
* do not allow disabling/enabling of themes
* better way to handle themes
* Upgraded version to 1.10
* Now search history is stored in preferences and user can go through the search history using key up and key down in search bar
* ALF Automation (#13179)
* Updated by ALF automation.
* Updated by ALF automation.
* Updated by ALF automation.
* Fixed a minor issue
* Addresses issue where style and script tags (and their contents) did not appear as collapsible in html mixed mode.
* Add no-unsafe-negation rule and upgrade grunt-eslint to 19.0.0
* Added a check of Untitled doc in _getNormalizedFilename and _getDenormalizedFilename
* ALF Automation (#13204)
* Updated by ALF automation.
* Updated by ALF automation.
* Updated by ALF automation.
* Updated by ALF automation.
* Updated by ALF automation.
* Replaced .border-radius with border-radius css in brackets_patterns_override.less
This fixes #13227
* Addressed review comments and also added tests
* Add jsx language ID to supported languages for JavaScript code hints
* Style code (cleanup)
* Add media queries to display search and filter below tabs
* Change padding to be consistent with other elements' padding
* Reset margin of filter dropdown and add top and bottom padding to div container
* Prevent media queries from overlapping
* Wrap search elements in a container & add responsiveness using flex
* Use flex-item mixin
* Move custom search bar width to media query
* Add GitHub Brackets OAuth token to romove CLA pull request limit
* Adding rest filter expression
* Updated webplatform links in css.json from https://docs.webplatform.org/wiki/ to http://www.webplatform.org/docs/ (#13266)
* Addresses #13264 where setting `saveFoldStates` preference to false caused the code folding extension to stop working.
* CSS code hints in 'style' attribute value context
* Append auth token only when available in travis environment (#13272)
* Append auth token only when available in travis environment
* Remove unused var
* #7276 Live Preview highlight customization (#12949)
* Live Preview visual customization (colors of highlight can be customized via user preferences)
* PR improvements
Remove trailing spaces, use Object.assign instead of manually iterating over remoteHighlight properties and remove quotes from object properties in default configuration of remoteHighlight
* Allow to animate transform property via transition
* Remove old vendor prefixes from transitionValues in RemoteFunctions.js
* updateConfig RemoteFunctions.js method
Enable injecting new config into remoteFunction when user changed preferences, without the need to restart the live preview session.
* Show margin and paddings in live preview.
* Do not show element if it has width or height equal to 0. A little bit of clean up
* PR improvements
calculateSize is renamed to sum. (better naming conventions are welcome). sum now takes an array as argument. It returns sum of parsed array elements, suffixed with „px”.
* Redraw via requestAnimationFrame if element has transition / animation on it.
* PR improvements.
Set experimental to false by default, if no config specified (caused the test to crash).
Minor code quality improvements, removed duplicated variables.
* Fix ESLINT errors.
* drawMarginRect and drawPaddingRect functions now calculate the require size of highlight elements instead of manaul calculations on each element.
The code is shorter and more readable. Also, it’ll be easier to move drawing functions into separate file if necessary.
* Temporary workaround for transform issue.
* Formatting improvements
* Fix font family name preference (#13279)
* Update grunt-contrib-watch to 1.0.0 and clean a bit the task (#13215)
* Scrapped QuickDocs data for css and html from MDN to css.json and html.json (#13268)
* Scrapped summary and values of css properties from MDN to css.json
* Migrated mozilla's extension of MDNDocs to Brackets with some minor changes
* Removed redundant file
* Fixed faling tests, modified a test to test HTML docs
* Renamed all WebPlatformDocs strings to MDNDocs
* Addressed review comments
* Removed the usage of array for supported languages
* Pre-release build for 1.10 (#13283)
* Fix #13274 - make Brackets margin/padding highlight work like Chrome devtools one
* Migrated missing Quick Docs Tests from PR #10036 (#13285)
* Add inputStyle preference (#13216)
* Add indentBlockComment preference. Support indent block comments on line comment command
* Whitespace removal
* AtRules, Pseudo elements and Pseudo selector code hints
* Revert "Fix #13274 - make Brackets margin/padding remoteHighlight work like Chrome one"
* Fix highlighting elements with border and transform-origin property.
* Adress review comments and restructure using different extensions
* Added Search History UI similar to Quick Open
* Minor Change
* Fixed some issues
* Check for useTabChar and correct a comment. Add some tests
* Handle multiline attribute value and add UNIT test for element styles
* Search bar is visible after pressing arrow up and down keys
* Added JSDocs and updated tests
* Zero results are not highlighted red now
* Added dropdown icon to toggle search History
* fix the extension-manager-min-width variable
* Handle SCSS mode seperately
* Use a single preference
* Add test for block comments
* Correct a test
* Check also if it is a line comment command
* Addresses #13282 which caused performance issues when navigating between large folded files.
A check is now performed to ensure we do not attempt to restore line folds for editors whose folds have already been initialised.
* removed unused variable
* Removed filtering in search dropdown
* Return 0 from _firstNotWs
* Changed url to access Japanese translated page (#13321)
* Update Codemirror to version 5.25.2
* Addressed review comments
* Removed Lint error
* add: flow-root as value for display (#13334)
* Changed Global.js to enable Native Menus for Linux
* Adding unit tests for the newly added extensions
* Fix for eslint errors
* Extract pseudo context validation as a function
* Enabled tests for Native Menus in Linux
* Editor command handlers test (#13337)
* EditorCommandHandlers-test: use testToggleLine everywhere
* EditorCommandHandlers-test: use testToggleBlock everywhere
* Now initial query is also added to searchHistory queue
* Update CSS Code Hints Properties
Add properties
– `all`
– `caret-color`
– `hanging-punctuation`
– `scroll-behavior`
– `tab-size`
– `user-select`.
Add values:
– `clone` and `slice` for `box-decoration-break`
– `contents` for `display`
Remove deprecated `padding-box` from `box-sizing`.
* Update CSS Code Hints pseudo-selectors
Add pseudo-classes
– `:default`
– `:dir()`
– `:focus-within`
– `:indeterminate`
– `:matches()`
– `:placeholder-shown`.
Add pseudo-element `::placeholder`.
Fix alphabetical order, space around `:`.
* Update more
Add
– `grid-template`
– `isolation`
– `mix-blend-mode`
Add `subgrid` for `display`
Reorder `background-blend-mode`
* Added test
* Fix :matches(), add :fullscreen
* Added check for length of dependencies also in npm-installer.js
* Translated English to Japanese Comments (#13327)
* Change parseInt to parseFloat everywhere where calculating box-model visualization to prevent glitches (#13353)
* Fixed Project Manager failing tests
* Brackets 1.10 Pre-release 2
* Fix box model regression (transform) (#13357)
* Various additions and changes to Swedish interface strings (#13404)
* Mixed changes and additions to Swedish interface strings
* One addition and one fix
* More additions and changes
* Correct one word in sv/strings.js
* Externalize Live preview hightlight settings string
* ALF Automation (#13293)
* Updated by ALF automation.
* Updated by ALF automation.
* Updated by ALF automation.
* Updated by ALF automation.
* Updated by ALF automation.
* Updated by ALF automation.
* Fix root strings (#13435)
* ALF Automation (#13434)
* Updated by ALF automation.
* Updated by ALF automation.
* Updated by ALF automation.
* Updated by ALF automation.
* Updated by ALF automation.
* Updated by ALF automation.
* Updated by ALF automation.
* Updated by ALF automation.
* Updated by ALF automation.
* Change in UUID fetching for first launches (#13419)
* Fixing Mac compilation errors
* Removing console message
* Fixing linter errors in this file.
* Add option for first highlight index in Quick Open and Search History (#13444)
* Fixed #13437
* minor change
* Passed first highlight index as paramater to QuickSearchField
* Added jsdocs
* Changed WebPlatform License to MDN License and respective strings
* Use the correct border color in multifile Replace in Files bar with dark theme
* Updated by ALF automation. (#13454)
* In writeJSON (grunt), use CRLF on Windows (#13458)
* Fixes translation error in Simplified Chinese
Fixes adobe/brackets/issues/13416
* Enable no-redeclare to eslint (#13452)
* Added strings for translation for 1.10 Release
* minor change
* Add navigation strings.
* Updated some strings
* ALF Automation (#13471)
* Updated by ALF automation.
* Updated by ALF automation.
* Added some more translations
* Saurabh95/encoding support (#13412)
* Now encoding is passed as parameter on file read and it is used by writefile in order to preserve encoding
* UI wiring
* Code Cleanup
* Fixed failing tests
* Added warning Dialog while changing encoding
* Added some Linux specific changes
* Fixed some linting errors
* Reverted last commit
* Minor changes
* Now selected encoding is stored in state
* Fixed lint error
* Added some more encodings
* Added some more encodings
* Fixed lint errors
* Removed duplicate encodings
* Fixed failing tests
* Used externalized strings
* Addressed review comments
* Added supported encodings file
* Addressed review comments
* Addressed review comments
* More Robust UUID Handling (#13476)
* More efficient UUID Handling: We need to backing up existing uuid so that we can accurately get the new user count, as the uuid is changed now and will effect the existing users as well. Also added robust checking for shell API availability before calling the shell API and if not present handling olderUUID in a different way.
* Addressed review comments.
* Now BOM is preserved for UTF-8 files (#13477)
* Now BOM is preserved for UTF-8 files
* Added error strings for failure in encode/decode and utf-16
* Removed utf-16 from encodings list
* Addressed review comments
* fix JP translation in comment tags (#13363)
* New File and New Folder execute in project root if there's no selection (#12752)
* New File and New Folder execute in project root if there's no selection
* Add ProjectManager.getSelectedFileTreeItem
* Add function to get file tree context instead
* Polish translation update for brackets 1.10 (#13398)
* Polish translation update for brackets 1.10
* Corrected some strings in pl translation
* Added basic translation for core preferences section
* Transform some polish strings in core preferences section
* German translation (#13436)
* zh-cn (#13473)
* Update urls.js
* Create Getting Started
* Delete Getting Started
* Create index.html
* Create main.css
* Add files via upload
quick-edit.png
* Problems panel: add an icon per problem to tell which type it is (#13430)
* Sequential navigation in edit history (#13418)
* First commit - sequential navigation in edit history
* Fix lint errors
* Handle undefined history entries
* Added comments and some additional edge case handling
* Update code review comments
* Put a max navigation frame capture limit and control overflow once reached. Fix all bugs found in unit testing.
* Fix indentation issues
* Change spaces to tabs for indentation
* Fix mixed tabs and spaces
* Convert spaces to tab
* resolve mixed tabs and spaces
* Initialize variables
* Handle external file changes and discard stale frames
* Additional checks to validate the navigation frames
* Address review comments
* pre release build 3
* Fixed JS lint error (#13489)
* Fix NavigationProvider throwing errors when doc.file is missing. Fixes #13491 (#13492)
Signed-off-by: petetnt
* ALF Automation (#13474)
* Updated by ALF automation.
* Updated by ALF automation.
* Updated by ALF automation.
* Updated by ALF automation.
* Updated by ALF automation.
* Adding extra check to handle null mrof list entries (#13495)
* After changing encoding of a dirty file if user cancels the popup then encoding of file should not be changed (#13497)
* After changing encoding of a dirty file if user cancels the popup then encoding of file should not be changed
* Removed popup for dirty file encoding change
* Now doc is reloaded if the path of the file being saved is same
---
.eslintrc.js | 2 +
Gruntfile.js | 19 +-
build.json | 6 +-
npm-shrinkwrap.json | 428 +-
package.json | 10 +-
samples/ja/Getting Started/index.html | 14 +-
samples/zh-cn/Getting Started/index.html | 193 +
samples/zh-cn/Getting Started/main.css | 60 +
.../screenshots/quick-edit.png | Bin 0 -> 271776 bytes
src/LiveDevelopment/Agents/RemoteAgent.js | 2 +-
src/LiveDevelopment/Agents/RemoteFunctions.js | 238 +-
src/LiveDevelopment/main.js | 35 +
src/config.json | 8 +-
src/document/Document.js | 19 +
src/document/DocumentCommandHandlers.js | 34 +-
src/document/DocumentManager.js | 15 +-
src/editor/Editor.js | 35 +-
src/editor/EditorCommandHandlers.js | 79 +-
src/editor/EditorStatusBar.js | 147 +-
src/extensibility/ExtensionManagerDialog.js | 1 +
src/extensibility/ExtensionManagerView.js | 8 +-
.../ExtensionManagerViewModel.js | 66 +
src/extensibility/Package.js | 56 +-
src/extensibility/node/npm-installer.js | 2 +-
.../CSSAtRuleCodeHints/AtRulesDef.json | 10 +
.../default/CSSAtRuleCodeHints/main.js | 118 +
.../default/CSSAtRuleCodeHints/unittests.js | 236 +
.../default/CSSCodeHints/CSSProperties.json | 17 +-
src/extensions/default/CSSCodeHints/main.js | 2 +-
.../default/CSSCodeHints/unittests.js | 101 +
.../PseudoSelectors.json | 52 +
.../default/CSSPseudoSelectorHints/main.js | 181 +
.../CSSPseudoSelectorHints/unittests.js | 219 +
.../CodeFolding/foldhelpers/foldcode.js | 2 +-
.../CodeFolding/foldhelpers/foldgutter.js | 6 +-
src/extensions/default/CodeFolding/main.js | 14 +-
.../CodeFolding/unittest-files/test.html | 16 +-
.../default/CodeFolding/unittests.js | 18 +-
.../default/HealthData/HealthDataManager.js | 92 +-
.../default/JavaScriptCodeHints/HintUtils.js | 3 +-
.../default/LESSSupport/unittests.js | 6 +
.../InlineDocsViewer.html | 2 +-
.../InlineDocsViewer.js | 17 +-
.../{WebPlatformDocs => MDNDocs}/LICENSE | 0
.../MDNDocs.less} | 10 +
src/extensions/default/MDNDocs/README.md | 3 +
src/extensions/default/MDNDocs/css.json | 8322 +++++++++++++++++
src/extensions/default/MDNDocs/html.json | 550 ++
src/extensions/default/MDNDocs/logo.svg | 186 +
.../{WebPlatformDocs => MDNDocs}/main.js | 102 +-
.../unittest-files/test1.css | 0
.../default/MDNDocs/unittest-files/test1.html | 17 +
.../{WebPlatformDocs => MDNDocs}/unittests.js | 58 +-
.../NavigationProvider.js | 553 ++
.../NavigationAndHistory/keyboard.json | 10 +
.../default/NavigationAndHistory/main.js | 20 +-
.../default/WebPlatformDocs/README.md | 5 -
.../default/WebPlatformDocs/css.json | 1 -
.../default/WebPlatformDocs/logo.svg | 70 -
.../WebPlatformDocs/unittest-files/test1.html | 12 -
src/file/FileUtils.js | 8 +-
src/filesystem/File.js | 29 +-
src/filesystem/FileSystemError.js | 5 +-
.../impls/appshell/AppshellFileSystem.js | 15 +-
src/htmlContent/about-dialog.html | 2 +-
src/htmlContent/extension-manager-dialog.html | 22 +-
.../extension-manager-view-item.html | 2 +-
src/htmlContent/findreplace-bar.html | 2 +-
src/htmlContent/problems-panel-table.html | 5 +-
src/language/CSSUtils.js | 57 +-
src/language/HTMLUtils.js | 19 +-
src/nls/bg/strings.js | 4 +-
src/nls/bg/urls.js | 2 +-
src/nls/cs/strings.js | 4 +-
src/nls/cs/urls.js | 2 +-
src/nls/da/strings.js | 4 +-
src/nls/de/strings.js | 33 +-
src/nls/de/urls.js | 2 +-
src/nls/el/strings.js | 4 +-
src/nls/el/urls.js | 2 +-
src/nls/es/strings.js | 4 +-
src/nls/es/urls.js | 2 +-
src/nls/fa-ir/strings.js | 4 +-
src/nls/fa-ir/urls.js | 2 +-
src/nls/fi/strings.js | 4 +-
src/nls/fi/urls.js | 2 +-
src/nls/fr/strings.js | 35 +-
src/nls/fr/urls.js | 2 +-
src/nls/gl/strings.js | 4 +-
src/nls/hr/strings.js | 4 +-
src/nls/hr/urls.js | 2 +-
src/nls/hu/strings.js | 4 +-
src/nls/id/strings.js | 4 +-
src/nls/id/urls.js | 2 +-
src/nls/it/strings.js | 4 +-
src/nls/it/urls.js | 2 +-
src/nls/ja/strings.js | 19 +-
src/nls/ja/urls.js | 2 +-
src/nls/ko/strings.js | 4 +-
src/nls/ko/urls.js | 2 +-
src/nls/lv/strings.js | 4 +-
src/nls/nb/strings.js | 4 +-
src/nls/nb/urls.js | 2 +-
src/nls/nl/strings.js | 4 +-
src/nls/nl/urls.js | 2 +-
src/nls/pl/strings.js | 245 +-
src/nls/pl/urls.js | 2 +-
src/nls/pt-br/strings.js | 4 +-
src/nls/ro/strings.js | 4 +-
src/nls/root/strings.js | 19 +-
src/nls/root/urls.js | 2 +-
src/nls/ru/strings.js | 4 +-
src/nls/ru/urls.js | 2 +-
src/nls/sk/strings.js | 4 +-
src/nls/sr/strings.js | 4 +-
src/nls/sv/strings.js | 86 +-
src/nls/sv/urls.js | 2 +-
src/nls/tr/urls.js | 2 +-
src/nls/uk/strings.js | 4 +-
src/nls/zh-cn/strings.js | 8 +-
src/nls/zh-cn/urls.js | 3 +-
src/nls/zh-tw/strings.js | 4 +-
src/nls/zh-tw/urls.js | 2 +-
src/npm-shrinkwrap.json | 6 +-
src/package.json | 2 +-
src/project/ProjectManager.js | 14 +-
src/search/FindBar.js | 89 +
src/search/QuickOpen.js | 1 +
src/search/QuickSearchField.js | 62 +-
src/styles/brackets.less | 47 +-
src/styles/brackets_patterns_override.less | 100 +-
src/styles/brackets_variables.less | 25 +-
src/styles/images/dropdown-icon.svg | 17 +
src/supported-encodings.json | 45 +
src/utils/ExtensionLoader.js | 14 +-
src/utils/ExtensionUtils.js | 29 +-
src/utils/Global.js | 2 +-
src/view/ViewCommandHandlers.js | 2 +-
src/widgets/StatusBar.html | 1 +
tasks/build.js | 16 +-
tasks/lib/common.js | 12 +-
tasks/npm-install.js | 1 -
test/spec/EditorCommandHandlers-test.js | 682 +-
test/spec/FileSystem-test.js | 3 +-
test/spec/FindInFiles-test.js | 81 +
test/spec/MockFileSystemImpl.js | 2 +-
test/spec/NativeMenu-test.js | 4 +-
test/spec/ProjectManager-test.js | 2 +-
test/spec/QuickSearchField-test.js | 3 +-
149 files changed, 13438 insertions(+), 1080 deletions(-)
create mode 100644 samples/zh-cn/Getting Started/index.html
create mode 100644 samples/zh-cn/Getting Started/main.css
create mode 100644 samples/zh-cn/Getting Started/screenshots/quick-edit.png
create mode 100644 src/extensions/default/CSSAtRuleCodeHints/AtRulesDef.json
create mode 100644 src/extensions/default/CSSAtRuleCodeHints/main.js
create mode 100644 src/extensions/default/CSSAtRuleCodeHints/unittests.js
create mode 100644 src/extensions/default/CSSPseudoSelectorHints/PseudoSelectors.json
create mode 100644 src/extensions/default/CSSPseudoSelectorHints/main.js
create mode 100644 src/extensions/default/CSSPseudoSelectorHints/unittests.js
create mode 100644 src/extensions/default/LESSSupport/unittests.js
rename src/extensions/default/{WebPlatformDocs => MDNDocs}/InlineDocsViewer.html (78%)
rename src/extensions/default/{WebPlatformDocs => MDNDocs}/InlineDocsViewer.js (93%)
rename src/extensions/default/{WebPlatformDocs => MDNDocs}/LICENSE (100%)
rename src/extensions/default/{WebPlatformDocs/WebPlatformDocs.less => MDNDocs/MDNDocs.less} (97%)
create mode 100644 src/extensions/default/MDNDocs/README.md
create mode 100644 src/extensions/default/MDNDocs/css.json
create mode 100644 src/extensions/default/MDNDocs/html.json
create mode 100644 src/extensions/default/MDNDocs/logo.svg
rename src/extensions/default/{WebPlatformDocs => MDNDocs}/main.js (54%)
rename src/extensions/default/{WebPlatformDocs => MDNDocs}/unittest-files/test1.css (100%)
create mode 100644 src/extensions/default/MDNDocs/unittest-files/test1.html
rename src/extensions/default/{WebPlatformDocs => MDNDocs}/unittests.js (75%)
create mode 100644 src/extensions/default/NavigationAndHistory/NavigationProvider.js
delete mode 100644 src/extensions/default/WebPlatformDocs/README.md
delete mode 100644 src/extensions/default/WebPlatformDocs/css.json
delete mode 100644 src/extensions/default/WebPlatformDocs/logo.svg
delete mode 100644 src/extensions/default/WebPlatformDocs/unittest-files/test1.html
create mode 100644 src/styles/images/dropdown-icon.svg
create mode 100644 src/supported-encodings.json
diff --git a/.eslintrc.js b/.eslintrc.js
index 3663e2f317d..40331166ab1 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -7,6 +7,7 @@ module.exports = {
"no-empty": 1,
"no-invalid-regexp": 2,
"no-regex-spaces": 2,
+ "no-unsafe-negation": 1,
"valid-jsdoc": 0,
"valid-typeof": 2,
// http://eslint.org/docs/rules/#best-practices
@@ -23,6 +24,7 @@ module.exports = {
"no-new-wrappers": 2,
"no-new": 2,
"no-proto": 2,
+ "no-redeclare": 1,
"no-script-url": 2,
"wrap-iife": [2, "outside"],
// http://eslint.org/docs/rules/#strict-mode
diff --git a/Gruntfile.js b/Gruntfile.js
index a6b638113b6..7b08d8738a1 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -268,21 +268,20 @@ module.exports = function (grunt) {
]
},
watch: {
- all : {
- files: ['**/*', '!**/node_modules/**'],
- tasks: ['eslint']
- },
- grunt : {
- files: ['<%= meta.grunt %>', 'tasks/**/*'],
+ grunt: {
+ files: ['<%= meta.grunt %>'],
tasks: ['eslint:grunt']
},
- src : {
- files: ['<%= meta.src %>', 'src/**/*'],
+ src: {
+ files: ['<%= meta.src %>'],
tasks: ['eslint:src']
},
- test : {
- files: ['<%= meta.test %>', 'test/**/*'],
+ test: {
+ files: ['<%= meta.test %>'],
tasks: ['eslint:test']
+ },
+ options: {
+ spawn: false
}
},
/* FIXME (jasonsanjose): how to handle extension tests */
diff --git a/build.json b/build.json
index b2d5d0eda9a..908032018f5 100644
--- a/build.json
+++ b/build.json
@@ -1,6 +1,6 @@
{
- "version": "release-1.9-prerelease-2",
- "title" : "Brackets 1.9 Stable Pre-release for community testing",
- "description" : "This is a Brackets 1.9 pre-release build.",
+ "version": "release-1.10-prerelease-3",
+ "title" : "Brackets 1.10 Pre-release for community testing",
+ "description" : "This is a Brackets 1.10 3rd pre-release build. This release removes the utf-8 encoding limitation, adds native menus for Linux, provides backward/forward navigation in edit history, Search History with UI, enable/disable default exetensions from extension manager, pseudo selector and AtRules hints in CSS, CSS hints in style attribute value for HTML documents.",
"prerelease": true
}
diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json
index a96f2cea66a..e5df87e2b5a 100644
--- a/npm-shrinkwrap.json
+++ b/npm-shrinkwrap.json
@@ -1,6 +1,6 @@
{
"name": "Brackets",
- "version": "1.9.0-0",
+ "version": "1.10.0-0",
"dependencies": {
"abbrev": {
"version": "1.1.0",
@@ -190,6 +190,12 @@
"from": "aws4@>=1.2.1 <2.0.0",
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz"
},
+ "babel-code-frame": {
+ "version": "6.22.0",
+ "from": "babel-code-frame@>=6.16.0 <7.0.0",
+ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz",
+ "dev": true
+ },
"balanced-match": {
"version": "0.4.2",
"from": "balanced-match@>=0.4.1 <0.5.0",
@@ -249,6 +255,26 @@
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
"dev": true
},
+ "body-parser": {
+ "version": "1.14.2",
+ "from": "body-parser@>=1.14.0 <1.15.0",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz",
+ "dev": true,
+ "dependencies": {
+ "iconv-lite": {
+ "version": "0.4.13",
+ "from": "iconv-lite@0.4.13",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz",
+ "dev": true
+ },
+ "qs": {
+ "version": "5.2.0",
+ "from": "qs@5.2.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz",
+ "dev": true
+ }
+ }
+ },
"boom": {
"version": "2.10.1",
"from": "boom@>=2.0.0 <3.0.0",
@@ -340,6 +366,12 @@
"resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
"dev": true
},
+ "bytes": {
+ "version": "2.2.0",
+ "from": "bytes@2.2.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz",
+ "dev": true
+ },
"caller-path": {
"version": "0.1.0",
"from": "caller-path@>=0.1.0 <0.2.0",
@@ -505,6 +537,12 @@
"resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
"dev": true
},
+ "content-type": {
+ "version": "1.0.2",
+ "from": "content-type@>=1.0.1 <1.1.0",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz",
+ "dev": true
+ },
"core-util-is": {
"version": "1.0.2",
"from": "core-util-is@>=1.0.0 <1.1.0",
@@ -577,10 +615,18 @@
"dev": true
},
"debug": {
- "version": "0.7.4",
- "from": "debug@>=0.7.0 <0.8.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz",
- "dev": true
+ "version": "2.2.0",
+ "from": "debug@>=2.2.0 <2.3.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
+ "dev": true,
+ "dependencies": {
+ "ms": {
+ "version": "0.7.1",
+ "from": "ms@0.7.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
+ "dev": true
+ }
+ }
},
"decamelize": {
"version": "1.2.0",
@@ -622,6 +668,12 @@
"from": "delayed-stream@>=1.0.0 <1.1.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
},
+ "depd": {
+ "version": "1.1.0",
+ "from": "depd@>=1.1.0 <1.2.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz",
+ "dev": true
+ },
"des.js": {
"version": "1.0.0",
"from": "des.js@>=1.0.0 <2.0.0",
@@ -635,9 +687,9 @@
"dev": true
},
"doctrine": {
- "version": "1.5.0",
- "from": "doctrine@>=1.2.2 <2.0.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
+ "version": "2.0.0",
+ "from": "doctrine@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz",
"dev": true
},
"domain-browser": {
@@ -652,6 +704,12 @@
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
"optional": true
},
+ "ee-first": {
+ "version": "1.1.1",
+ "from": "ee-first@1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "dev": true
+ },
"elliptic": {
"version": "6.4.0",
"from": "elliptic@>=6.0.0 <7.0.0",
@@ -695,16 +753,68 @@
"dev": true
},
"es6-map": {
- "version": "0.1.4",
+ "version": "0.1.5",
"from": "es6-map@>=0.1.3 <0.2.0",
- "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.4.tgz",
- "dev": true
+ "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz",
+ "dev": true,
+ "dependencies": {
+ "d": {
+ "version": "1.0.0",
+ "from": "d@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
+ "dev": true
+ },
+ "es5-ext": {
+ "version": "0.10.15",
+ "from": "es5-ext@>=0.10.14 <0.11.0",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.15.tgz",
+ "dev": true
+ },
+ "es6-iterator": {
+ "version": "2.0.1",
+ "from": "es6-iterator@>=2.0.1 <2.1.0",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz",
+ "dev": true
+ },
+ "es6-symbol": {
+ "version": "3.1.1",
+ "from": "es6-symbol@>=3.1.1 <3.2.0",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
+ "dev": true
+ }
+ }
},
"es6-set": {
- "version": "0.1.4",
- "from": "es6-set@>=0.1.3 <0.2.0",
- "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.4.tgz",
- "dev": true
+ "version": "0.1.5",
+ "from": "es6-set@>=0.1.5 <0.2.0",
+ "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
+ "dev": true,
+ "dependencies": {
+ "d": {
+ "version": "1.0.0",
+ "from": "d@1",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
+ "dev": true
+ },
+ "es5-ext": {
+ "version": "0.10.15",
+ "from": "es5-ext@~0.10.14",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.15.tgz",
+ "dev": true
+ },
+ "es6-iterator": {
+ "version": "2.0.1",
+ "from": "es6-iterator@~2.0.1",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz",
+ "dev": true
+ },
+ "es6-symbol": {
+ "version": "3.1.1",
+ "from": "es6-symbol@3.1.1",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
+ "dev": true
+ }
+ }
},
"es6-symbol": {
"version": "3.1.0",
@@ -713,10 +823,36 @@
"dev": true
},
"es6-weak-map": {
- "version": "2.0.1",
+ "version": "2.0.2",
"from": "es6-weak-map@>=2.0.1 <3.0.0",
- "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.1.tgz",
- "dev": true
+ "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
+ "dev": true,
+ "dependencies": {
+ "d": {
+ "version": "1.0.0",
+ "from": "d@1",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
+ "dev": true
+ },
+ "es5-ext": {
+ "version": "0.10.15",
+ "from": "es5-ext@^0.10.14",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.15.tgz",
+ "dev": true
+ },
+ "es6-iterator": {
+ "version": "2.0.1",
+ "from": "es6-iterator@^2.0.1",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz",
+ "dev": true
+ },
+ "es6-symbol": {
+ "version": "3.1.1",
+ "from": "es6-symbol@^3.1.1",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
+ "dev": true
+ }
+ }
},
"escape-string-regexp": {
"version": "1.0.5",
@@ -730,9 +866,9 @@
"dev": true
},
"eslint": {
- "version": "2.13.1",
- "from": "eslint@>=2.0.0 <3.0.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-2.13.1.tgz",
+ "version": "3.18.0",
+ "from": "eslint@>=3.0.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.18.0.tgz",
"dev": true,
"dependencies": {
"argparse": {
@@ -758,6 +894,12 @@
"from": "js-yaml@>=3.5.1 <4.0.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.8.2.tgz",
"dev": true
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "from": "strip-bom@>=3.0.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "dev": true
}
}
},
@@ -773,6 +915,12 @@
"resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz",
"dev": true
},
+ "esquery": {
+ "version": "1.0.0",
+ "from": "esquery@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz",
+ "dev": true
+ },
"esrecurse": {
"version": "4.1.0",
"from": "esrecurse@>=4.1.0 <5.0.0",
@@ -800,10 +948,24 @@
"dev": true
},
"event-emitter": {
- "version": "0.3.4",
- "from": "event-emitter@>=0.3.4 <0.4.0",
- "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.4.tgz",
- "dev": true
+ "version": "0.3.5",
+ "from": "event-emitter@>=0.3.5 <0.4.0",
+ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
+ "dev": true,
+ "dependencies": {
+ "d": {
+ "version": "1.0.0",
+ "from": "d@1",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
+ "dev": true
+ },
+ "es5-ext": {
+ "version": "0.10.15",
+ "from": "es5-ext@~0.10.14",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.15.tgz",
+ "dev": true
+ }
+ }
},
"eventemitter2": {
"version": "0.4.14",
@@ -867,9 +1029,9 @@
"dev": true
},
"faye-websocket": {
- "version": "0.4.4",
- "from": "faye-websocket@>=0.4.3 <0.5.0",
- "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.4.4.tgz",
+ "version": "0.10.0",
+ "from": "faye-websocket@>=0.10.0 <0.11.0",
+ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
"dev": true
},
"figures": {
@@ -879,9 +1041,9 @@
"dev": true
},
"file-entry-cache": {
- "version": "1.3.1",
- "from": "file-entry-cache@>=1.1.1 <2.0.0",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-1.3.1.tgz",
+ "version": "2.0.0",
+ "from": "file-entry-cache@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz",
"dev": true
},
"filename-regex": {
@@ -1073,6 +1235,20 @@
"resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
"dev": true
},
+ "globule": {
+ "version": "1.1.0",
+ "from": "globule@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/globule/-/globule-1.1.0.tgz",
+ "dev": true,
+ "dependencies": {
+ "lodash": {
+ "version": "4.16.6",
+ "from": "lodash@>=4.16.4 <4.17.0",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.6.tgz",
+ "dev": true
+ }
+ }
+ },
"graceful-fs": {
"version": "4.1.11",
"from": "graceful-fs@>=4.1.2 <5.0.0",
@@ -1229,15 +1405,35 @@
"dev": true
},
"grunt-contrib-watch": {
- "version": "0.4.3",
- "from": "grunt-contrib-watch@0.4.3",
- "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-0.4.3.tgz",
- "dev": true
+ "version": "1.0.0",
+ "from": "grunt-contrib-watch@1.0.0",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.0.0.tgz",
+ "dev": true,
+ "dependencies": {
+ "async": {
+ "version": "1.5.2",
+ "from": "async@>=1.5.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "dev": true
+ },
+ "gaze": {
+ "version": "1.1.2",
+ "from": "gaze@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz",
+ "dev": true
+ },
+ "lodash": {
+ "version": "3.10.1",
+ "from": "lodash@>=3.10.1 <4.0.0",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
+ "dev": true
+ }
+ }
},
"grunt-eslint": {
- "version": "18.1.0",
- "from": "grunt-eslint@18.1.0",
- "resolved": "https://registry.npmjs.org/grunt-eslint/-/grunt-eslint-18.1.0.tgz",
+ "version": "19.0.0",
+ "from": "grunt-eslint@19.0.0",
+ "resolved": "https://registry.npmjs.org/grunt-eslint/-/grunt-eslint-19.0.0.tgz",
"dev": true
},
"grunt-jasmine-node": {
@@ -1400,6 +1596,12 @@
"resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-0.5.6.tgz",
"dev": true
},
+ "http-errors": {
+ "version": "1.3.1",
+ "from": "http-errors@>=1.3.1 <1.4.0",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz",
+ "dev": true
+ },
"http-signature": {
"version": "1.1.1",
"from": "http-signature@>=1.1.0 <1.2.0",
@@ -1438,9 +1640,9 @@
"dev": true
},
"ignore": {
- "version": "3.2.4",
- "from": "ignore@>=3.1.2 <4.0.0",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.2.4.tgz",
+ "version": "3.2.6",
+ "from": "ignore@>=3.2.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.2.6.tgz",
"dev": true
},
"image-size": {
@@ -1675,6 +1877,12 @@
"resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz",
"optional": true
},
+ "js-tokens": {
+ "version": "3.0.1",
+ "from": "js-tokens@>=3.0.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz",
+ "dev": true
+ },
"js-yaml": {
"version": "2.0.5",
"from": "js-yaml@>=2.0.5 <2.1.0",
@@ -1790,6 +1998,12 @@
"resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
"dev": true
},
+ "livereload-js": {
+ "version": "2.2.2",
+ "from": "livereload-js@>=2.2.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.2.2.tgz",
+ "dev": true
+ },
"load-grunt-tasks": {
"version": "3.5.0",
"from": "load-grunt-tasks@3.5.0",
@@ -1831,6 +2045,12 @@
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
"dev": true
},
+ "media-typer": {
+ "version": "0.3.0",
+ "from": "media-typer@0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "dev": true
+ },
"memory-fs": {
"version": "0.4.1",
"from": "memory-fs@>=0.4.1 <0.5.0",
@@ -1922,6 +2142,12 @@
"from": "nan@>=1.0.0 <1.1.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-1.0.0.tgz"
},
+ "natural-compare": {
+ "version": "1.4.0",
+ "from": "natural-compare@>=1.4.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "dev": true
+ },
"node-libs-browser": {
"version": "2.0.0",
"from": "node-libs-browser@>=2.0.0 <3.0.0",
@@ -1933,20 +2159,6 @@
"from": "nopt@>=3.0.1 <4.0.0",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz"
},
- "noptify": {
- "version": "0.0.3",
- "from": "noptify@latest",
- "resolved": "https://registry.npmjs.org/noptify/-/noptify-0.0.3.tgz",
- "dev": true,
- "dependencies": {
- "nopt": {
- "version": "2.0.0",
- "from": "nopt@>=2.0.0 <2.1.0",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-2.0.0.tgz",
- "dev": true
- }
- }
- },
"normalize-package-data": {
"version": "2.3.6",
"from": "normalize-package-data@>=2.3.2 <3.0.0",
@@ -3488,6 +3700,12 @@
"from": "object.omit@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz"
},
+ "on-finished": {
+ "version": "2.3.0",
+ "from": "on-finished@>=2.3.0 <2.4.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "dev": true
+ },
"once": {
"version": "1.4.0",
"from": "once@>=1.3.0 <2.0.0",
@@ -3588,6 +3806,12 @@
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
"dev": true
},
+ "parseurl": {
+ "version": "1.3.1",
+ "from": "parseurl@>=1.3.0 <1.4.0",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz",
+ "dev": true
+ },
"path-browserify": {
"version": "0.0.0",
"from": "path-browserify@0.0.0",
@@ -3611,6 +3835,12 @@
"resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
"dev": true
},
+ "path-parse": {
+ "version": "1.0.5",
+ "from": "path-parse@>=1.0.5 <2.0.0",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz",
+ "dev": true
+ },
"path-type": {
"version": "1.1.0",
"from": "path-type@>=1.0.0 <2.0.0",
@@ -3888,6 +4118,26 @@
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz",
"dev": true
},
+ "raw-body": {
+ "version": "2.1.7",
+ "from": "raw-body@>=2.1.5 <2.2.0",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.7.tgz",
+ "dev": true,
+ "dependencies": {
+ "bytes": {
+ "version": "2.4.0",
+ "from": "bytes@2.4.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz",
+ "dev": true
+ },
+ "iconv-lite": {
+ "version": "0.4.13",
+ "from": "iconv-lite@0.4.13",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz",
+ "dev": true
+ }
+ }
+ },
"read-pkg": {
"version": "1.1.0",
"from": "read-pkg@>=1.0.0 <2.0.0",
@@ -3916,6 +4166,20 @@
"resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz",
"dev": true
},
+ "rechoir": {
+ "version": "0.6.2",
+ "from": "rechoir@>=0.6.2 <0.7.0",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+ "dev": true,
+ "dependencies": {
+ "resolve": {
+ "version": "1.3.2",
+ "from": "resolve@>=1.1.6 <2.0.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.2.tgz",
+ "dev": true
+ }
+ }
+ },
"regex-cache": {
"version": "0.4.3",
"from": "regex-cache@>=0.4.2 <0.5.0",
@@ -4068,9 +4332,9 @@
"dev": true
},
"shelljs": {
- "version": "0.6.1",
- "from": "shelljs@>=0.6.0 <0.7.0",
- "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.6.1.tgz",
+ "version": "0.7.7",
+ "from": "shelljs@>=0.7.5 <0.8.0",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.7.tgz",
"dev": true
},
"sigmund": {
@@ -4138,6 +4402,12 @@
}
}
},
+ "statuses": {
+ "version": "1.3.1",
+ "from": "statuses@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
+ "dev": true
+ },
"stream-browserify": {
"version": "2.0.1",
"from": "stream-browserify@>=2.0.1 <3.0.0",
@@ -4178,9 +4448,9 @@
"dev": true
},
"strip-json-comments": {
- "version": "1.0.4",
- "from": "strip-json-comments@>=1.0.1 <1.1.0",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz",
+ "version": "2.0.1",
+ "from": "strip-json-comments@>=2.0.1 <2.1.0",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
"dev": true
},
"supports-color": {
@@ -4250,15 +4520,15 @@
"dev": true
},
"tiny-lr": {
- "version": "0.0.4",
- "from": "tiny-lr@0.0.4",
- "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-0.0.4.tgz",
+ "version": "0.2.1",
+ "from": "tiny-lr@>=0.2.1 <0.3.0",
+ "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-0.2.1.tgz",
"dev": true,
"dependencies": {
"qs": {
- "version": "0.5.6",
- "from": "qs@>=0.5.2 <0.6.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-0.5.6.tgz",
+ "version": "5.1.0",
+ "from": "qs@>=5.1.0 <5.2.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz",
"dev": true
}
}
@@ -4325,6 +4595,12 @@
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
"dev": true
},
+ "type-is": {
+ "version": "1.6.14",
+ "from": "type-is@>=1.6.10 <1.7.0",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.14.tgz",
+ "dev": true
+ },
"typedarray": {
"version": "0.0.6",
"from": "typedarray@>=0.0.6 <0.0.7",
@@ -4369,6 +4645,12 @@
"resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz",
"dev": true
},
+ "unpipe": {
+ "version": "1.0.0",
+ "from": "unpipe@1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "dev": true
+ },
"url": {
"version": "0.11.0",
"from": "url@>=0.11.0 <0.12.0",
@@ -4476,6 +4758,18 @@
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-0.1.5.tgz",
"dev": true
},
+ "websocket-driver": {
+ "version": "0.6.5",
+ "from": "websocket-driver@>=0.5.1",
+ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz",
+ "dev": true
+ },
+ "websocket-extensions": {
+ "version": "0.1.1",
+ "from": "websocket-extensions@>=0.1.1",
+ "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.1.tgz",
+ "dev": true
+ },
"which": {
"version": "1.0.9",
"from": "which@>=1.0.5 <1.1.0",
diff --git a/package.json b/package.json
index 35de9fe30e1..3a1a5b4746f 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "Brackets",
- "version": "1.9.0-0",
- "apiVersion": "1.9.0",
+ "version": "1.10.0-0",
+ "apiVersion": "1.10.0",
"homepage": "http://brackets.io",
"issues": {
"url": "http://github.com/adobe/brackets/issues"
@@ -35,8 +35,8 @@
"grunt-cli": "0.1.9",
"phantomjs": "1.9.18",
"grunt-lib-phantomjs": "0.3.0",
- "grunt-eslint": "18.1.0",
- "grunt-contrib-watch": "0.4.3",
+ "grunt-eslint": "19.0.0",
+ "grunt-contrib-watch": "1.0.0",
"grunt-contrib-jasmine": "0.4.2",
"grunt-template-jasmine-requirejs": "0.1.0",
"grunt-contrib-cssmin": "0.6.0",
@@ -68,4 +68,4 @@
"url": "https://github.com/adobe/brackets/blob/master/LICENSE"
}
]
-}
+}
\ No newline at end of file
diff --git a/samples/ja/Getting Started/index.html b/samples/ja/Getting Started/index.html
index 3b1f31734ee..bf6f491fef1 100644
--- a/samples/ja/Getting Started/index.html
+++ b/samples/ja/Getting Started/index.html
@@ -14,7 +14,7 @@ BRACKETS をはじめる前に
まずはこのガイドからスタート
@@ -22,7 +22,7 @@
まずはこのガイドからスタート
Brackets は、新しいタイプのエディターです。
@@ -30,7 +30,7 @@
まずはこのガイドからスタート
Brackets のプロジェクト
@@ -45,7 +45,7 @@ Brackets のプロジェクト
CSS と JavaScript のクイック編集
@@ -71,7 +71,7 @@
CSS と JavaScript のクイック編集
HTML および CSS の編集結果をブラウザーでライブプレビュー
@@ -114,7 +114,7 @@
拡張機能でさらに補強
Brackets プロジェクトに参加
@@ -155,4 +155,4 @@
Brackets プロジェクトに参加
[:::::::::::::: ::::::::::::::]
[[[[[[[[[[[[[[[ ]]]]]]]]]]]]]]]
--->
\ No newline at end of file
+-->
diff --git a/samples/zh-cn/Getting Started/index.html b/samples/zh-cn/Getting Started/index.html
new file mode 100644
index 00000000000..85e7ed810d8
--- /dev/null
+++ b/samples/zh-cn/Getting Started/index.html
@@ -0,0 +1,193 @@
+
+
+
+
+
+
+ BRACKETS 入门
+
+
+
+
+
+ BRACKETS 入门
+ 让我为你好好介绍!
+
+
+
+
+ 欢迎使用 Brackets,这是个很懂网页设计的现代化开放原始码程式编辑器。
+ 轻巧又不失威力,整合多项视觉化的编辑功能,在需要时提供您适当的协助。
+
+
+
+
+ Brackets 与众不同。
+ Brackets 提供「快速编辑」、「即时预览」等别的编辑器没有的独家功能。
+ 而且 Brackets 是用 JavaScript, HTML 及 CSS 写出来的。这代表大多数使用 Brackets 的人都有能力修改及扩充它。
+ 事实上,Brackets 本身就是我们用 Brackets 一天天打造出来的。
+ 如果您想学会如何使用这些功能,请继续看下去。
+
+
+
+
+ Brackets 中的「专案」
+
+ 只要开启包含您程式码的资料夹,就能使用 Brackets 来编辑。
+ Brackets 会将目前开启的资料夹视为一个「专案」,「程式提示」、「即时预览」及「快速编辑」等功能都只会参考到专案裡的档案。
+
+
+
+ 要是您已经准备好关掉这个范例专案,开始编辑自已的程式,可以使用左边侧栏的下拉式选单切换资料夹。
+ 现在应该是选到「Getting Started」,也就是您看的这份文件所在的资料夹。
+ 按一下下拉式选单,点选「开启资料夹…」选项,就能开启您自已的资料夹。
+
+ 之后您也可以透过同样的下拉式选单切回开启过的资料夹,包含这个范例专案。
+
+
+
+ CSS 及 JavaScript 快速编辑
+
+ 别再因为不断切换档案而一直分神失焦了。编辑 HTML 时,按下 Cmd/Ctrl + E
+ 快速键就地开启编辑器,秀出所有相关的 CSS 规则。
+ 调好 CSS 样式后按 ESC 马上就能回到 HTML 继续编辑。
+ 此外,也可以放手让那些 CSS 规则一直开在 HTML 编辑器裡。
+ 只要在快速编辑器的范围外按下 ESC 键,就能关掉所有快速编辑器。
+ 快速编辑也能找到定义在 LESS 及 SCSS 档案中的规则,就算是巢状规则也没问题。
+
+
+
+ 想亲身体验吗? 把游标移到上面的 标籤中,按下 Cmd/Ctrl + E。
+ 您应该就会看到 CSS 快速编辑器出现在上方,显示出所有套用到的 CSS 规则。
+ 快速编辑功能也支援 class 及 id 属性。搭配 LESS 或 SCSS 档嘛会通喔。
+
+ 您也可以透过这个方式新增规则。在上方随便一个 标籤上点一下,按 Cmd/Ctrl + E。
+ 可以看到它上面并没有任何 CSS 规则,但您可以按一下「新增规则」按钮,就会新增 规则。
+
+
+
+
+
+
+
+ 您也能使用相同的快速键编辑其他东西,例如 JavaScript 函式、CSS 色彩、CSS 动画计时函式等,持续增加中。
+
+
+ 目前还不能在快速编辑器中巢状开启其他快速编辑器,只有游标在主编辑器时才能开快速编辑功能。
+
+
+
+ 在浏览器裡即时预览 HTML 及 CSS 变更
+
+ 有一种舞叫做「存档再重新载入探戈」,我们跳了好多年,您听过吗?
+ 就是在编辑器裡改一改东西,储存好,马上再切过去浏览器,按「重新整理」后才能真正的看到结果,超鸟的!
+ 用 Brackets,您永远不必再这麽「跳」。
+
+
+ Brackets 会跟您本机的浏览器即时连线,在您修改的同时将 HTML 及 CSS 内容更新过去!
+ 说不定活在 21 世纪的您已经用浏览器提供的开发者工具做过类似的事了。
+ 但是用 Brackets,您不用再手动把总算是会动的程式複製贴回编辑器。
+ 您的程式虽然是跑在浏览器上,但是所有的血与肉都还是在编辑器裡啊!
+
+
+ 即时突显 HTML 元素及 CSS 规则
+
+ Brackets 让您更容易看到 HTML 及 CSS 的修改会对页面造成什麽影响。
+ 当游标停在 CSS 规则上时,Brackets 会在浏览器裡将所有会受影响的元素突显出来。
+ 编辑 HTML 档案时,Brackets 也会在浏览器中突显对应的 HTML 元素。
+
+
+
+ 如果您安装了 Google Chrome,马上就可以试看看。
+ 按一下 Brackets 视窗右上角的闪电图示,或是按 Cmd/Ctrl + Alt + P。
+ 当即时预览功能在 HTML 档案上启用后,所有连结到的 CSS 档案也都可以马上编辑马上生效。
+ Brackets 与您的浏览器建立连线时,图示会由灰转金。
+
+ 就是现在,把游标移到上面的 标籤。注意看 Chrome 在图片上显示的蓝色框。
+ 接下来,按 Cmd/Ctrl + E 开启相关的 CSS 规则定义。
+ 试著将框线 (border) 值由 10px 改成 20px,或将背景色 (background-color) 由透明 "transparent" 改成 "hotpink"。
+ 如果您把 Brackets 跟浏览器并排放好,就能看到所有异动都直接反应在浏览器上了。酷吧?!
+
+
+
+ 目前 Brackets 只能即时预览 HTML 及 CSS。不过,储存修改过的 JavaScript 档案时也会自动重新载入页面。
+ 我们正在努力让即时预览功能支援 JavaScript。
+ 此外,即时预览现在只能在 Google Chrome 上执行,我们希望将来能支援所有主流的浏览器。
+
+
+ 快速检视
+
+ 为了那些记不得色彩十六进位值或是 RGB 值的人,Brackets 能快速又简单的让您看见色彩的真相。
+ 不管在 CSS 或 HTML 中,只要将滑鼠游标移到任何色彩值或是渐变色上,Brackets 就会自动显示预览。
+ 对图片也同样有用,在 Brackets 裡将滑鼠游标移到图片连结上,就会自动显示预览缩图。
+
+
+
+ 自已试试快速检视,只要将游标移到这份文件最上方的 标籤上,按下 Cmd/Ctrl + E
+ 开启 CSS 快速编辑器,将滑鼠游标移到 CSS 上的任何一个色彩值上就能看到。
+ 想要预览渐变色,您也可以在 标籤上开启 CSS 快速编辑器,移到随便一个背景图片 (background-image) 值就能看到。
+ 要试图片预览,则是将游标移到前几段提到的画面撷图上就能看到。
+
+
+ 还不够吗? 安装扩充功能吧!
+
+ 除了 Brackets 内建的这些好物外,我们那深具规模,且日益状大的开发者社群已经写出了数百个扩充功能。
+ 如果您觉得 Brackets 少了什麽,说不定早就有人写好扩充功能了。
+ 点一下 档案 > 扩充功能管理员...,再点一下「可使用」页籤,就能浏览或搜寻扩充功能清单。
+ 一旦找到想要的扩充功能,按一下后面的「安装」按钮就可以了。
+
+
+
+ 一起参与
+
+ Brackets 专案是开放原始码的。世界各地的网页开发者贡献一己之力,只为打造出更好的程式编辑器。
+ 也有不少人正在开发扩充功能,让 Brackets 更强大。
+ 告诉我们您的想法,分享您的构想,或是直接为本专案做点事吧。
+
+
+
+
+
+
diff --git a/samples/zh-cn/Getting Started/main.css b/samples/zh-cn/Getting Started/main.css
new file mode 100644
index 00000000000..225fc8967f1
--- /dev/null
+++ b/samples/zh-cn/Getting Started/main.css
@@ -0,0 +1,60 @@
+html {
+ background: #e6e9e9;
+ background-image: linear-gradient(270deg, rgb(230, 233, 233) 0%, rgb(216, 221, 221) 100%);
+ -webkit-font-smoothing: antialiased;
+}
+
+body {
+ background: #fff;
+ box-shadow: 0 0 2px rgba(0, 0, 0, 0.06);
+ color: #545454;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 16px;
+ line-height: 1.5;
+ margin: 0 auto;
+ max-width: 800px;
+ padding: 2em 2em 4em;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ color: #222;
+ font-weight: 700;
+ line-height: 1.3;
+}
+
+h2 {
+ margin-top: 1.3em;
+}
+
+a {
+ color: #0083e8;
+}
+
+b, strong {
+ font-weight: 700;
+}
+
+samp {
+ display: none;
+}
+
+img {
+ animation: colorize 2s cubic-bezier(0, 0, .78, .36) 1;
+ background: transparent;
+ border: 10px solid rgba(0, 0, 0, 0.12);
+ border-radius: 4px;
+ display: block;
+ margin: 1.3em auto;
+ max-width: 95%;
+}
+
+@keyframes colorize {
+ 0% {
+ -webkit-filter: grayscale(100%);
+ filter: grayscale(100%);
+ }
+ 100% {
+ -webkit-filter: grayscale(0%);
+ filter: grayscale(0%);
+ }
+}
diff --git a/samples/zh-cn/Getting Started/screenshots/quick-edit.png b/samples/zh-cn/Getting Started/screenshots/quick-edit.png
new file mode 100644
index 0000000000000000000000000000000000000000..82a984b52555bf277843ae418fdeab6ba9bc0d16
GIT binary patch
literal 271776
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