Merge branch 'master' into releases

This commit is contained in:
RedocBot 2016-05-20 20:13:00 +00:00 committed by travis@localhost
commit 15583a9dab
18 changed files with 203 additions and 170 deletions

32
build/prepare_deploy.js Executable file
View File

@ -0,0 +1,32 @@
#!/usr/bin/env node
'use strict';
require('shelljs/global');
var paths = require('./paths');
var path = require('path');
// copy old releases
mkdir('-p', '.ghpages-tmp');
cd('.ghpages-tmp');
// reset local changes before checkout
exec('git reset --hard');
exec('git fetch origin gh-pages:gh-pages');
exec('git checkout gh-pages');
cp('-R', '../releases/*', '.');
exec('git checkout @{-1}');
cd('..');
// build
exec('npm run build-dist');
cd('demo');
mkdir('-p', 'dist');
cp('-R', '../dist/*', './dist/');
mkdir('-p', 'releases');
cp('-R', '../.ghpages-tmp/*', './releases/');
cd('..');
var version = 'v' + require(path.join(__dirname, '../package.json')).version + '/';
var versionDir = path.join(paths.releases, version);
mkdir('-p', versionDir)
cp(paths.redocBuilt + '.min.js', versionDir);
cp(paths.redocBuilt + '.min.js', path.join(paths.releases, 'latest/'));

View File

@ -1,21 +0,0 @@
#!/bin/bash
set -e
set -x
# copy old releases
mkdir -p .ghpages-tmp && cd .ghpages-tmp
# reset local changes before checkout
git reset --hard
git fetch origin gh-pages:gh-pages
git checkout gh-pages
cp -R ../releases/* .
git checkout @{-1}
cd -
# build
npm run build-dist
cd demo
cp -R ../dist/* ./dist/
mkdir -p releases
cp -R ../.ghpages-tmp/* ./releases/
cd -
gulp copy-version

13
build/run_tests.js Executable file
View File

@ -0,0 +1,13 @@
#!/usr/bin/env node
'use strict';
require('shelljs/global');
set('-e');
if (process.env.JOB === 'e2e-guru') {
exec('npm run e2e');
} else {
exec('npm run unit');
console.log('Starting Basic E2E');
exec('npm run e2e');
}

View File

@ -1,8 +0,0 @@
#!/bin/bash
if [ "$JOB" = "e2e-guru" ]; then
npm run e2e
else
npm run unit
echo "Starting Basic E2E"
npm run e2e
fi

View File

@ -12,6 +12,7 @@ var sass = require('gulp-sass');
var replace = require('gulp-replace'); var replace = require('gulp-replace');
var rename = require('gulp-rename'); var rename = require('gulp-rename');
var argv = require('yargs').argv; var argv = require('yargs').argv;
var gulpIf = require('gulp-if');
gulp.task('build', function (callback) { gulp.task('build', function (callback) {
if (argv.skipRebuild) { if (argv.skipRebuild) {
@ -23,10 +24,18 @@ gulp.task('build', function (callback) {
'concatPrism', 'concatPrism',
'bundle', 'bundle',
'concatDeps', 'concatDeps',
'copyDebug',
callback callback
); );
}); });
gulp.task('copyDebug', () => {
if (!argv.prod) {
// copy for be accessible from demo for debug
cp(paths.redocBuilt + '.js', paths.redocBuilt + '.min.js');
}
});
gulp.task('rebuild', function(done) { gulp.task('rebuild', function(done) {
return runSequence( return runSequence(
'bundle', 'bundle',
@ -43,16 +52,16 @@ gulp.task('inlineTemplates', ['sass'], function() {
}); });
var JS_DEPS = argv.prod ? [ var JS_DEPS = argv.prod ? [
'lib/utils/browser-update.js',
'node_modules/zone.js/dist/zone.min.js',
'node_modules/reflect-metadata/Reflect.js',
'node_modules/babel-polyfill/dist/polyfill.min.js'
]: [
'lib/utils/browser-update.js', 'lib/utils/browser-update.js',
'node_modules/zone.js/dist/zone.js', 'node_modules/zone.js/dist/zone.js',
'node_modules/zone.js/dist/long-stack-trace-zone.js', 'node_modules/zone.js/dist/long-stack-trace-zone.js',
'node_modules/reflect-metadata/Reflect.js', 'node_modules/reflect-metadata/Reflect.js',
'node_modules/babel-polyfill/dist/polyfill.js' 'node_modules/babel-polyfill/dist/polyfill.js'
] : [
'lib/utils/browser-update.js',
'node_modules/zone.js/dist/zone.min.js',
'node_modules/reflect-metadata/Reflect.js',
'node_modules/babel-polyfill/dist/polyfill.min.js'
]; ];
var outputFileName = paths.redocBuilt + (argv.prod ? '.min.js' : '.js'); var outputFileName = paths.redocBuilt + (argv.prod ? '.min.js' : '.js');
@ -66,13 +75,13 @@ gulp.task('sass', function () {
// concatenate angular2 deps // concatenate angular2 deps
gulp.task('concatDeps', function() { gulp.task('concatDeps', function() {
return gulp.src(JS_DEPS.concat([outputFileName])) return gulp.src(JS_DEPS.concat([outputFileName]))
.pipe(sourcemaps.init({loadMaps: true})) .pipe(gulpIf(!argv.prod, sourcemaps.init({loadMaps: true})))
.pipe(concat(outputFileName)) .pipe(concat(outputFileName))
.pipe(sourcemaps.write('.')) .pipe(gulpIf(!argv.prod, sourcemaps.write('.')))
.pipe(gulp.dest('.')) .pipe(gulp.dest('.'))
}); });
gulp.task('bundle', ['inlineTemplates'], function bundle(cb) { gulp.task('bundle', ['injectVersionFile', 'inlineTemplates'], function bundle(done) {
fs.existsSync('dist') || fs.mkdirSync('dist'); fs.existsSync('dist') || fs.mkdirSync('dist');
var builder = new Builder('./', 'system.config.js'); var builder = new Builder('./', 'system.config.js');
@ -81,13 +90,11 @@ gulp.task('bundle', ['inlineTemplates'], function bundle(cb) {
outputFileName, outputFileName,
{ format:'umd', sourceMaps: !argv.prod, lowResSourceMaps: true, minify: argv.prod } { format:'umd', sourceMaps: !argv.prod, lowResSourceMaps: true, minify: argv.prod }
) )
.then(function() { .then(() => {
// wait some time to allow flush // wait some time to allow flush
setTimeout(() => cb(), 500); setTimeout(() => done(), 500);
}) })
.catch(function(err) { .catch(err => done(err));
cb(new Error(err));
});
}); });
gulp.task('concatPrism', function() { gulp.task('concatPrism', function() {
@ -121,3 +128,9 @@ gulp.task('concatPrism', function() {
.pipe(concat(path.join(paths.tmp, 'prismjs-bundle.js'))) .pipe(concat(path.join(paths.tmp, 'prismjs-bundle.js')))
.pipe(gulp.dest('.')) .pipe(gulp.dest('.'))
}); });
// needs inlineTemplates run before to create .tmp/lib folder
gulp.task('injectVersionFile', ['inlineTemplates'], function() {
var version = require('../../package.json').version;
fs.writeFileSync(path.join(paths.tmp, 'lib/version.json'), JSON.stringify(version));
})

View File

@ -5,7 +5,7 @@ var Server = require('karma').Server;
/** /**
* Run test once and exit * Run test once and exit
*/ */
gulp.task('test', ['concatPrism', 'inlineTemplates'], function (done) { gulp.task('test', ['concatPrism', 'inlineTemplates', 'injectVersionFile'], function (done) {
new Server({ new Server({
configFile: __dirname + '/../../karma.conf.js', configFile: __dirname + '/../../karma.conf.js',
singleRun: true singleRun: true

View File

@ -18,8 +18,7 @@
<redoc scroll-y-offset="body > nav" spec-url='http://rebilly.github.io/SwaggerTemplateRepo/swagger.yaml'></redoc> <redoc scroll-y-offset="body > nav" spec-url='http://rebilly.github.io/SwaggerTemplateRepo/swagger.yaml'></redoc>
<!-- ReDoc built file with all dependencies included -->
<script src="main.js"> </script> <script src="main.js"> </script>
<script src="dist/redoc.js"> </script> <script src="dist/redoc.min.js"> </script>
</body> </body>
</html> </html>

View File

@ -1 +1,2 @@
require('shelljs/global');
require('require-dir')('build/tasks'); require('require-dir')('build/tasks');

View File

@ -57,13 +57,15 @@ module.exports = function (config) {
jspm: { jspm: {
config: 'system.config.js', config: 'system.config.js',
loadFiles: ['tests/setup.js', 'tests/helpers.js', 'tests/unit/*.spec.js', 'lib/**/*.js'], loadFiles: ['tests/setup.js', 'tests/helpers.js', 'tests/unit/*.spec.js', 'lib/**/*.js'],
serveFiles: ['tests/schemas/**/*.json','tests/schemas/**/*.yml', 'lib/**/*.html', '.tmp/*js', '.tmp/lib/**/*.css'], serveFiles: ['tests/schemas/**/*.json','tests/schemas/**/*.yml', 'lib/**/*.html',
'.tmp/lib/**/*.json', '.tmp/*js', '.tmp/lib/**/*.css'],
nocache: true nocache: true
}, },
proxies: { proxies: {
'/tests/': '/base/tests/', '/tests/': '/base/tests/',
'/lib/components/Redoc/redoc-loading-styles.css': '/base/.tmp/lib/components/Redoc/redoc-loading-styles.css', '/lib/components/Redoc/redoc-initial-styles.css': '/base/.tmp/lib/components/Redoc/redoc-initial-styles.css',
'/lib/version.json': '/base/.tmp/lib/version.json',
'/lib/': '/base/lib/', '/lib/': '/base/lib/',
'/jspm_packages/': '/base/jspm_packages/', '/jspm_packages/': '/base/jspm_packages/',
'/node_modules/': '/base/node_modules/', '/node_modules/': '/base/node_modules/',

View File

@ -35,20 +35,24 @@ export class JsonSchemaLazy {
return schema && schema.$ref || this.pointer; return schema && schema.$ref || this.pointer;
} }
load() { _loadAfterSelf() {
if (this.optionsService.options.disableLazySchemas) return; return this.dcl.loadNextToLocation(JsonSchema, this.viewRef).then((compRef) => {
if (this.loaded) return;
if (this.pointer) {
this.dcl.loadNextToLocation(JsonSchema, this.viewRef).then((compRef) => {
this.initComponent(compRef); this.initComponent(compRef);
// trigger change detection
if (compRef.changeDetectorRef) { if (compRef.changeDetectorRef) {
compRef.changeDetectorRef.detectChanges(); compRef.changeDetectorRef.detectChanges();
} else { } else {
compRef.hostView.changeDetectorRef.detectChanges(); compRef.hostView.changeDetectorRef.detectChanges();
} }
return compRef;
}); });
} }
load() {
if (this.optionsService.options.disableLazySchemas) return;
if (this.loaded) return;
if (this.pointer) {
this._loadAfterSelf();
}
this.loaded = true; this.loaded = true;
} }
@ -63,29 +67,13 @@ export class JsonSchemaLazy {
// skip caching view with tabs inside (discriminator) as it needs attached controller // skip caching view with tabs inside (discriminator) as it needs attached controller
// FIXME: get rid of dependency on selector // FIXME: get rid of dependency on selector
if ($element.querySelector('.discriminator-wrap')) { if ($element.querySelector('.discriminator-wrap')) {
this.dcl.loadNextToLocation(JsonSchema, this.viewRef).then((compRef) => {
this.initComponent(compRef);
if (compRef.changeDetectorRef) {
compRef.changeDetectorRef.detectChanges();
} else {
compRef.hostView.changeDetectorRef.detectChanges();
}
});
return; return;
} }
insertAfter($element.cloneNode(true), this.elementRef.nativeElement); insertAfter($element.cloneNode(true), this.elementRef.nativeElement);
} ); } );
}); });
} else { } else {
cache[this.pointer] = this.dcl.loadNextToLocation(JsonSchema, this.viewRef).then((compRef) => { cache[this.pointer] = this._loadAfterSelf();
this.initComponent(compRef);
if (compRef.changeDetectorRef) {
compRef.changeDetectorRef.detectChanges();
} else {
compRef.hostView.changeDetectorRef.detectChanges();
}
return compRef;
});
} }
} }

View File

@ -48,3 +48,20 @@ redoc.loading:after {
redoc.loading-remove:before, redoc.loading-remove:after { redoc.loading-remove:before, redoc.loading-remove:after {
opacity: 0; opacity: 0;
} }
.redoc-error {
padding: 20px;
text-align: center;
color: #cc0000;
> h2 {
color: #cc0000;
font-size: 40px;
}
}
.redoc-error-details {
max-width: 750px;
margin: 0 auto;
font-size: 18px;
}

View File

@ -5,6 +5,8 @@ import { bootstrap } from '@angular/platform-browser-dynamic';
import { BrowserDomAdapter } from '@angular/platform-browser/src/browser/browser_adapter'; import { BrowserDomAdapter } from '@angular/platform-browser/src/browser/browser_adapter';
import { RedocComponent, BaseComponent } from '../base'; import { RedocComponent, BaseComponent } from '../base';
import detectScollParent from 'scrollparent';
import { ApiInfo } from '../ApiInfo/api-info'; import { ApiInfo } from '../ApiInfo/api-info';
import { ApiLogo } from '../ApiLogo/api-logo'; import { ApiLogo } from '../ApiLogo/api-logo';
import { MethodsList } from '../MethodsList/methods-list'; import { MethodsList } from '../MethodsList/methods-list';
@ -13,9 +15,10 @@ import { SideMenu } from '../SideMenu/side-menu';
import { StickySidebar } from '../../shared/components/index'; import { StickySidebar } from '../../shared/components/index';
import SchemaManager from '../../utils/SchemaManager'; import SchemaManager from '../../utils/SchemaManager';
import { OptionsService, RedocEventsService } from '../../services/index'; import { OptionsService, RedocEventsService } from '../../services/index';
import redocVersion from '../../version.json!json';
import detectScollParent from 'scrollparent';
import './redoc-loading-styles.css!css'; import './redoc-initial-styles.css!css';
var dom = new BrowserDomAdapter(); var dom = new BrowserDomAdapter();
var _modeLocked = false; var _modeLocked = false;
@ -86,17 +89,15 @@ export class Redoc extends BaseComponent {
} }
return bootstrap(Redoc, providers); return bootstrap(Redoc, providers);
}) })
.then( .then(appRef => {
(appRef) => {
Redoc.hideLoadingAnimation(); Redoc.hideLoadingAnimation();
Redoc.appRef = appRef; Redoc.appRef = appRef;
console.log('ReDoc bootstrapped!'); console.log('ReDoc bootstrapped!');
}, }, err => {
error => { console.log(err);
console.log(error); Redoc.hideLoadingAnimation();
throw error; Redoc.displayError(err);
} });
);
} }
static autoInit() { static autoInit() {
@ -109,6 +110,21 @@ export class Redoc extends BaseComponent {
} }
} }
static displayError(err) {
console.log(err);
let redocEl = dom.query('redoc');
let heading = 'Oops... ReDoc failed to render this spec';
let details = err.message;
let erroHtml = `<div class="redoc-error">
<h1>${heading}</h1>
<div class='redoc-error-details'>${details}</div>`;
redocEl.innerHTML = erroHtml;
}
static get version() {
return redocVersion;
}
static destroy() { static destroy() {
let el = dom.query('redoc'); let el = dom.query('redoc');
let elClone; let elClone;

View File

@ -72,12 +72,15 @@ describe('Redoc components', () => {
res.should.be.instanceof(Promise); res.should.be.instanceof(Promise);
}); });
it('should reject promise for not specifed url', (done) => { it('should hide loading animation and display message in case of error', async(() => {
spyOn(Redoc, 'hideLoadingAnimation').and.callThrough();
spyOn(Redoc, 'displayError').and.callThrough();
let res = Redoc.init(); let res = Redoc.init();
res.then(() => { done.fail('Should not been called'); }, () => { return res.then(() => {
done(); expect(Redoc.hideLoadingAnimation).toHaveBeenCalled();
}); expect(Redoc.displayError).toHaveBeenCalled();
}); });
}));
//skip because of PhantomJS crashes on this testcase //skip because of PhantomJS crashes on this testcase
xit('should init redoc', (done) => { xit('should init redoc', (done) => {

View File

@ -86,9 +86,6 @@ export function RedocComponent(options) {
pipes: pipes pipes: pipes
}); });
console.log(options.selector, options.detect ?
(options.onPushOnly ? 'OnPush' : 'Default') : 'Detached');
return componentDecorator(target) || target; return componentDecorator(target) || target;
}; };
} }

View File

@ -1,5 +1,5 @@
'use strict'; 'use strict';
import SwaggerParser from 'swagger-parser'; import JsonSchemaRefParser from 'json-schema-ref-parser';
import JsonPointer from './JsonPointer'; import JsonPointer from './JsonPointer';
import {methods as swaggerMethods} from './swagger-defs'; import {methods as swaggerMethods} from './swagger-defs';
@ -22,7 +22,7 @@ export default class SchemaManager {
let promise = new Promise((resolve, reject) => { let promise = new Promise((resolve, reject) => {
this._schema = {}; this._schema = {};
SwaggerParser.bundle(url, {http: {withCredentials: false}}) JsonSchemaRefParser.bundle(url, {http: {withCredentials: false}})
.then( .then(
(schema) => { (schema) => {
this._schema = schema; this._schema = schema;

View File

@ -1,21 +1,21 @@
{ {
"name": "redoc", "name": "redoc",
"description": "Swagger-generated API Reference Documentation", "description": "Swagger-generated API Reference Documentation",
"version": "0.11.1", "version": "0.12.0",
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git://github.com/Rebilly/ReDoc" "url": "git://github.com/Rebilly/ReDoc"
}, },
"main": "dist/redoc.min.js", "main": "dist/redoc.min.js",
"scripts": { "scripts": {
"test": "gulp lint && ./build/run_tests.sh", "test": "gulp lint && node ./build/run_tests.js",
"jspm-install": "jspm install", "jspm-install": "jspm install",
"start": "gulp serve", "start": "gulp serve",
"build-dist": "gulp build --prod", "build-dist": "gulp build --prod",
"branch-release": "git reset --hard && branch-release", "branch-release": "git reset --hard && branch-release",
"unit": "gulp test", "unit": "gulp test",
"e2e": "gulp e2e --prod", "e2e": "gulp e2e --prod",
"deploy": "build/prepare_deploy.sh && deploy-to-gh-pages demo" "deploy": "node ./build/prepare_deploy.js && deploy-to-gh-pages demo"
}, },
"keywords": [ "keywords": [
"OpenAPI", "OpenAPI",
@ -44,12 +44,12 @@
"json-formatter-js": "npm:json-formatter-js@^0.2.0", "json-formatter-js": "npm:json-formatter-js@^0.2.0",
"json-pointer": "npm:json-pointer@^0.3.0", "json-pointer": "npm:json-pointer@^0.3.0",
"json-schema-instantiator": "npm:json-schema-instantiator@^0.3.0", "json-schema-instantiator": "npm:json-schema-instantiator@^0.3.0",
"json-schema-ref-parser": "npm:json-schema-ref-parser@^3.1.2",
"marked": "npm:marked@^0.3.5", "marked": "npm:marked@^0.3.5",
"prismjs": "npm:prismjs@^1.3.0", "prismjs": "npm:prismjs@^1.3.0",
"rxjs": "npm:rxjs@5.0.0-beta.6", "rxjs": "npm:rxjs@5.0.0-beta.6",
"scrollparent": "npm:scrollparent@^0.1.0", "scrollparent": "npm:scrollparent@^0.1.0",
"stream-http": "npm:stream-http@^2.3.0", "stream-http": "npm:stream-http@^2.3.0",
"swagger-parser": "npm:swagger-parser@4.0.0-beta.2",
"zone.js": "npm:zone.js@0.6.12" "zone.js": "npm:zone.js@0.6.12"
}, },
"devDependencies": { "devDependencies": {
@ -63,11 +63,6 @@
"overrides": { "overrides": {
"github:Robdel12/DropKick@2.1.7": { "github:Robdel12/DropKick@2.1.7": {
"format": "global" "format": "global"
},
"npm:json-schema-ref-parser@3.1.2": {
"map": {
"http": "npm:stream-http@2.3.0"
}
} }
} }
}, },
@ -81,6 +76,7 @@
"gulp": "^3.9.1", "gulp": "^3.9.1",
"gulp-concat": "^2.6.0", "gulp-concat": "^2.6.0",
"gulp-eslint": "^1.1.1", "gulp-eslint": "^1.1.1",
"gulp-if": "^2.0.1",
"gulp-inline-ng2-template": "^1.1.2", "gulp-inline-ng2-template": "^1.1.2",
"gulp-protractor": "^2.1.0", "gulp-protractor": "^2.1.0",
"gulp-rename": "^1.2.2", "gulp-rename": "^1.2.2",
@ -110,6 +106,7 @@
"reflect-metadata": "^0.1.2", "reflect-metadata": "^0.1.2",
"require-dir": "^0.3.0", "require-dir": "^0.3.0",
"run-sequence": "^1.1.5", "run-sequence": "^1.1.5",
"shelljs": "^0.7.0",
"should": "^8.0.2", "should": "^8.0.2",
"sinon": "^1.17.2", "sinon": "^1.17.2",
"systemjs-builder": "^0.15.16", "systemjs-builder": "^0.15.16",

View File

@ -54,16 +54,16 @@ System.config({
"json-formatter-js": "npm:json-formatter-js@0.2.0", "json-formatter-js": "npm:json-formatter-js@0.2.0",
"json-pointer": "npm:json-pointer@0.3.0", "json-pointer": "npm:json-pointer@0.3.0",
"json-schema-instantiator": "npm:json-schema-instantiator@0.3.0", "json-schema-instantiator": "npm:json-schema-instantiator@0.3.0",
"json-schema-ref-parser": "npm:json-schema-ref-parser@3.1.2",
"marked": "npm:marked@0.3.5", "marked": "npm:marked@0.3.5",
"prismjs": "npm:prismjs@1.3.0", "prismjs": "npm:prismjs@1.3.0",
"rxjs": "npm:rxjs@5.0.0-beta.6", "rxjs": "npm:rxjs@5.0.0-beta.6",
"scrollparent": "npm:scrollparent@0.1.0", "scrollparent": "npm:scrollparent@0.1.0",
"stream-http": "npm:stream-http@2.3.0", "stream-http": "npm:stream-http@2.3.0",
"swagger-parser": "npm:swagger-parser@4.0.0-beta.2",
"systemjs/plugin-json": "github:systemjs/plugin-json@0.1.2", "systemjs/plugin-json": "github:systemjs/plugin-json@0.1.2",
"zone.js": "npm:zone.js@0.6.12", "zone.js": "npm:zone.js@0.6.12",
"github:jspm/nodelibs-assert@0.1.0": { "github:jspm/nodelibs-assert@0.1.0": {
"assert": "npm:assert@1.3.0" "assert": "npm:assert@1.4.0"
}, },
"github:jspm/nodelibs-buffer@0.1.0": { "github:jspm/nodelibs-buffer@0.1.0": {
"buffer": "npm:buffer@3.6.0" "buffer": "npm:buffer@3.6.0"
@ -105,7 +105,7 @@ System.config({
"path-browserify": "npm:path-browserify@0.0.0" "path-browserify": "npm:path-browserify@0.0.0"
}, },
"github:jspm/nodelibs-process@0.1.2": { "github:jspm/nodelibs-process@0.1.2": {
"process": "npm:process@0.11.2" "process": "npm:process@0.11.3"
}, },
"github:jspm/nodelibs-punycode@0.1.0": { "github:jspm/nodelibs-punycode@0.1.0": {
"punycode": "npm:punycode@1.3.2" "punycode": "npm:punycode@1.3.2"
@ -176,13 +176,14 @@ System.config({
"sprintf-js": "npm:sprintf-js@1.0.3", "sprintf-js": "npm:sprintf-js@1.0.3",
"util": "github:jspm/nodelibs-util@0.1.0" "util": "github:jspm/nodelibs-util@0.1.0"
}, },
"npm:asn1.js@4.5.2": { "npm:asn1.js@4.6.0": {
"assert": "github:jspm/nodelibs-assert@0.1.0", "assert": "github:jspm/nodelibs-assert@0.1.0",
"bn.js": "npm:bn.js@4.11.3", "bn.js": "npm:bn.js@4.11.3",
"buffer": "github:jspm/nodelibs-buffer@0.1.0", "buffer": "github:jspm/nodelibs-buffer@0.1.0",
"fs": "github:jspm/nodelibs-fs@0.1.2", "fs": "github:jspm/nodelibs-fs@0.1.2",
"inherits": "npm:inherits@2.0.1", "inherits": "npm:inherits@2.0.1",
"minimalistic-assert": "npm:minimalistic-assert@1.0.0", "minimalistic-assert": "npm:minimalistic-assert@1.0.0",
"systemjs-json": "github:systemjs/plugin-json@0.1.2",
"vm": "github:jspm/nodelibs-vm@0.1.0" "vm": "github:jspm/nodelibs-vm@0.1.0"
}, },
"npm:asn1@0.2.3": { "npm:asn1@0.2.3": {
@ -205,7 +206,11 @@ System.config({
"stream": "github:jspm/nodelibs-stream@0.1.0", "stream": "github:jspm/nodelibs-stream@0.1.0",
"util": "github:jspm/nodelibs-util@0.1.0" "util": "github:jspm/nodelibs-util@0.1.0"
}, },
"npm:assert@1.3.0": { "npm:assert@1.4.0": {
"assert": "github:jspm/nodelibs-assert@0.1.0",
"buffer": "github:jspm/nodelibs-buffer@0.1.0",
"buffer-shims": "npm:buffer-shims@1.0.0",
"process": "github:jspm/nodelibs-process@0.1.2",
"util": "npm:util@0.10.3" "util": "npm:util@0.10.3"
}, },
"npm:async@1.5.2": { "npm:async@1.5.2": {
@ -215,10 +220,9 @@ System.config({
"crypto": "github:jspm/nodelibs-crypto@0.1.0", "crypto": "github:jspm/nodelibs-crypto@0.1.0",
"url": "github:jspm/nodelibs-url@0.1.0" "url": "github:jspm/nodelibs-url@0.1.0"
}, },
"npm:aws4@1.3.2": { "npm:aws4@1.4.1": {
"buffer": "github:jspm/nodelibs-buffer@0.1.0", "buffer": "github:jspm/nodelibs-buffer@0.1.0",
"crypto": "github:jspm/nodelibs-crypto@0.1.0", "crypto": "github:jspm/nodelibs-crypto@0.1.0",
"lru-cache": "npm:lru-cache@4.0.1",
"process": "github:jspm/nodelibs-process@0.1.2", "process": "github:jspm/nodelibs-process@0.1.2",
"querystring": "github:jspm/nodelibs-querystring@0.1.0", "querystring": "github:jspm/nodelibs-querystring@0.1.0",
"url": "github:jspm/nodelibs-url@0.1.0" "url": "github:jspm/nodelibs-url@0.1.0"
@ -293,6 +297,9 @@ System.config({
"readable-stream": "npm:readable-stream@2.0.6", "readable-stream": "npm:readable-stream@2.0.6",
"util": "github:jspm/nodelibs-util@0.1.0" "util": "github:jspm/nodelibs-util@0.1.0"
}, },
"npm:buffer-shims@1.0.0": {
"buffer": "github:jspm/nodelibs-buffer@0.1.0"
},
"npm:buffer-xor@1.0.3": { "npm:buffer-xor@1.0.3": {
"buffer": "github:jspm/nodelibs-buffer@0.1.0", "buffer": "github:jspm/nodelibs-buffer@0.1.0",
"systemjs-json": "github:systemjs/plugin-json@0.1.2" "systemjs-json": "github:systemjs/plugin-json@0.1.2"
@ -461,7 +468,7 @@ System.config({
"inherits": "npm:inherits@2.0.1", "inherits": "npm:inherits@2.0.1",
"systemjs-json": "github:systemjs/plugin-json@0.1.2" "systemjs-json": "github:systemjs/plugin-json@0.1.2"
}, },
"npm:es6-promise@3.1.2": { "npm:es6-promise@3.2.1": {
"process": "github:jspm/nodelibs-process@0.1.2" "process": "github:jspm/nodelibs-process@0.1.2"
}, },
"npm:evp_bytestokey@1.0.0": { "npm:evp_bytestokey@1.0.0": {
@ -488,7 +495,7 @@ System.config({
"fs": "github:jspm/nodelibs-fs@0.1.2", "fs": "github:jspm/nodelibs-fs@0.1.2",
"http": "github:jspm/nodelibs-http@1.7.1", "http": "github:jspm/nodelibs-http@1.7.1",
"https": "github:jspm/nodelibs-https@0.1.0", "https": "github:jspm/nodelibs-https@0.1.0",
"mime-types": "npm:mime-types@2.1.10", "mime-types": "npm:mime-types@2.1.11",
"path": "github:jspm/nodelibs-path@0.1.0", "path": "github:jspm/nodelibs-path@0.1.0",
"process": "github:jspm/nodelibs-process@0.1.2", "process": "github:jspm/nodelibs-process@0.1.2",
"url": "github:jspm/nodelibs-url@0.1.0", "url": "github:jspm/nodelibs-url@0.1.0",
@ -502,7 +509,7 @@ System.config({
"is-property": "npm:is-property@1.0.2", "is-property": "npm:is-property@1.0.2",
"systemjs-json": "github:systemjs/plugin-json@0.1.2" "systemjs-json": "github:systemjs/plugin-json@0.1.2"
}, },
"npm:getpass@0.1.5": { "npm:getpass@0.1.6": {
"assert-plus": "npm:assert-plus@1.0.0", "assert-plus": "npm:assert-plus@1.0.0",
"fs": "github:jspm/nodelibs-fs@0.1.2", "fs": "github:jspm/nodelibs-fs@0.1.2",
"process": "github:jspm/nodelibs-process@0.1.2", "process": "github:jspm/nodelibs-process@0.1.2",
@ -547,7 +554,7 @@ System.config({
"crypto": "github:jspm/nodelibs-crypto@0.1.0", "crypto": "github:jspm/nodelibs-crypto@0.1.0",
"http": "github:jspm/nodelibs-http@1.7.1", "http": "github:jspm/nodelibs-http@1.7.1",
"jsprim": "npm:jsprim@1.2.2", "jsprim": "npm:jsprim@1.2.2",
"sshpk": "npm:sshpk@1.8.2", "sshpk": "npm:sshpk@1.8.3",
"util": "github:jspm/nodelibs-util@0.1.0" "util": "github:jspm/nodelibs-util@0.1.0"
}, },
"npm:https-browserify@0.0.0": { "npm:https-browserify@0.0.0": {
@ -582,7 +589,7 @@ System.config({
"crypto": "github:jspm/nodelibs-crypto@0.1.0", "crypto": "github:jspm/nodelibs-crypto@0.1.0",
"jsbn": "npm:jsbn@0.1.0" "jsbn": "npm:jsbn@0.1.0"
}, },
"npm:js-yaml@3.6.0": { "npm:js-yaml@3.6.1": {
"argparse": "npm:argparse@1.0.7", "argparse": "npm:argparse@1.0.7",
"buffer": "github:jspm/nodelibs-buffer@0.1.0", "buffer": "github:jspm/nodelibs-buffer@0.1.0",
"esprima": "npm:esprima@2.7.2", "esprima": "npm:esprima@2.7.2",
@ -605,11 +612,12 @@ System.config({
"buffer": "github:jspm/nodelibs-buffer@0.1.0", "buffer": "github:jspm/nodelibs-buffer@0.1.0",
"call-me-maybe": "npm:call-me-maybe@1.0.1", "call-me-maybe": "npm:call-me-maybe@1.0.1",
"debug": "npm:debug@2.2.0", "debug": "npm:debug@2.2.0",
"es6-promise": "npm:es6-promise@3.1.2", "es6-promise": "npm:es6-promise@3.2.1",
"events": "github:jspm/nodelibs-events@0.1.1", "events": "github:jspm/nodelibs-events@0.1.1",
"fs": "github:jspm/nodelibs-fs@0.1.2", "fs": "github:jspm/nodelibs-fs@0.1.2",
"https": "github:jspm/nodelibs-https@0.1.0", "http": "npm:stream-http@2.3.0",
"js-yaml": "npm:js-yaml@3.6.0", "https": "npm:stream-http@2.3.0",
"js-yaml": "npm:js-yaml@3.6.1",
"ono": "npm:ono@2.2.1", "ono": "npm:ono@2.2.1",
"process": "github:jspm/nodelibs-process@0.1.2", "process": "github:jspm/nodelibs-process@0.1.2",
"punycode": "github:jspm/nodelibs-punycode@0.1.0", "punycode": "github:jspm/nodelibs-punycode@0.1.0",
@ -631,36 +639,33 @@ System.config({
"util": "github:jspm/nodelibs-util@0.1.0", "util": "github:jspm/nodelibs-util@0.1.0",
"verror": "npm:verror@1.3.6" "verror": "npm:verror@1.3.6"
}, },
"npm:lodash._stringtopath@4.7.1": { "npm:lodash._basetostring@4.12.0": {
"process": "github:jspm/nodelibs-process@0.1.2" "process": "github:jspm/nodelibs-process@0.1.2"
}, },
"npm:lodash.get@4.2.1": { "npm:lodash._stringtopath@4.8.0": {
"lodash._stringtopath": "npm:lodash._stringtopath@4.7.1" "lodash._basetostring": "npm:lodash._basetostring@4.12.0",
"process": "github:jspm/nodelibs-process@0.1.2"
}, },
"npm:lru-cache@4.0.1": { "npm:lodash.get@4.3.0": {
"pseudomap": "npm:pseudomap@1.0.2", "lodash._stringtopath": "npm:lodash._stringtopath@4.8.0"
"util": "github:jspm/nodelibs-util@0.1.0",
"yallist": "npm:yallist@2.0.0"
}, },
"npm:miller-rabin@4.0.0": { "npm:miller-rabin@4.0.0": {
"bn.js": "npm:bn.js@4.11.3", "bn.js": "npm:bn.js@4.11.3",
"brorand": "npm:brorand@1.0.5" "brorand": "npm:brorand@1.0.5"
}, },
"npm:mime-db@1.22.0": { "npm:mime-db@1.23.0": {
"systemjs-json": "github:systemjs/plugin-json@0.1.2" "systemjs-json": "github:systemjs/plugin-json@0.1.2"
}, },
"npm:mime-types@2.1.10": { "npm:mime-types@2.1.11": {
"mime-db": "npm:mime-db@1.22.0", "mime-db": "npm:mime-db@1.23.0",
"path": "github:jspm/nodelibs-path@0.1.0" "path": "github:jspm/nodelibs-path@0.1.0"
}, },
"npm:node-uuid@1.4.7": { "npm:node-uuid@1.4.7": {
"buffer": "github:jspm/nodelibs-buffer@0.1.0", "buffer": "github:jspm/nodelibs-buffer@0.1.0",
"crypto": "github:jspm/nodelibs-crypto@0.1.0" "crypto": "github:jspm/nodelibs-crypto@0.1.0"
}, },
"npm:oauth-sign@0.8.1": { "npm:oauth-sign@0.8.2": {
"assert": "github:jspm/nodelibs-assert@0.1.0",
"crypto": "github:jspm/nodelibs-crypto@0.1.0", "crypto": "github:jspm/nodelibs-crypto@0.1.0",
"process": "github:jspm/nodelibs-process@0.1.2",
"querystring": "github:jspm/nodelibs-querystring@0.1.0" "querystring": "github:jspm/nodelibs-querystring@0.1.0"
}, },
"npm:ono@2.2.1": { "npm:ono@2.2.1": {
@ -675,7 +680,7 @@ System.config({
"process": "github:jspm/nodelibs-process@0.1.2" "process": "github:jspm/nodelibs-process@0.1.2"
}, },
"npm:parse-asn1@5.0.0": { "npm:parse-asn1@5.0.0": {
"asn1.js": "npm:asn1.js@4.5.2", "asn1.js": "npm:asn1.js@4.6.0",
"browserify-aes": "npm:browserify-aes@1.0.6", "browserify-aes": "npm:browserify-aes@1.0.6",
"buffer": "github:jspm/nodelibs-buffer@0.1.0", "buffer": "github:jspm/nodelibs-buffer@0.1.0",
"create-hash": "npm:create-hash@1.1.2", "create-hash": "npm:create-hash@1.1.2",
@ -707,12 +712,12 @@ System.config({
"process": "github:jspm/nodelibs-process@0.1.2", "process": "github:jspm/nodelibs-process@0.1.2",
"systemjs-json": "github:systemjs/plugin-json@0.1.2" "systemjs-json": "github:systemjs/plugin-json@0.1.2"
}, },
"npm:process@0.11.2": { "npm:process-nextick-args@1.0.7": {
"assert": "github:jspm/nodelibs-assert@0.1.0"
},
"npm:pseudomap@1.0.2": {
"process": "github:jspm/nodelibs-process@0.1.2" "process": "github:jspm/nodelibs-process@0.1.2"
}, },
"npm:process@0.11.3": {
"assert": "github:jspm/nodelibs-assert@0.1.0"
},
"npm:public-encrypt@4.0.0": { "npm:public-encrypt@4.0.0": {
"bn.js": "npm:bn.js@4.11.3", "bn.js": "npm:bn.js@4.11.3",
"browserify-rsa": "npm:browserify-rsa@4.0.1", "browserify-rsa": "npm:browserify-rsa@4.0.1",
@ -748,7 +753,7 @@ System.config({
"inherits": "npm:inherits@2.0.1", "inherits": "npm:inherits@2.0.1",
"isarray": "npm:isarray@1.0.0", "isarray": "npm:isarray@1.0.0",
"process": "github:jspm/nodelibs-process@0.1.2", "process": "github:jspm/nodelibs-process@0.1.2",
"process-nextick-args": "npm:process-nextick-args@1.0.6", "process-nextick-args": "npm:process-nextick-args@1.0.7",
"string_decoder": "npm:string_decoder@0.10.31", "string_decoder": "npm:string_decoder@0.10.31",
"util-deprecate": "npm:util-deprecate@1.0.2" "util-deprecate": "npm:util-deprecate@1.0.2"
}, },
@ -765,7 +770,7 @@ System.config({
}, },
"npm:request@2.72.0": { "npm:request@2.72.0": {
"aws-sign2": "npm:aws-sign2@0.6.0", "aws-sign2": "npm:aws-sign2@0.6.0",
"aws4": "npm:aws4@1.3.2", "aws4": "npm:aws4@1.4.1",
"bl": "npm:bl@1.1.2", "bl": "npm:bl@1.1.2",
"buffer": "github:jspm/nodelibs-buffer@0.1.0", "buffer": "github:jspm/nodelibs-buffer@0.1.0",
"caseless": "npm:caseless@0.11.0", "caseless": "npm:caseless@0.11.0",
@ -783,16 +788,16 @@ System.config({
"is-typedarray": "npm:is-typedarray@1.0.0", "is-typedarray": "npm:is-typedarray@1.0.0",
"isstream": "npm:isstream@0.1.2", "isstream": "npm:isstream@0.1.2",
"json-stringify-safe": "npm:json-stringify-safe@5.0.1", "json-stringify-safe": "npm:json-stringify-safe@5.0.1",
"mime-types": "npm:mime-types@2.1.10", "mime-types": "npm:mime-types@2.1.11",
"node-uuid": "npm:node-uuid@1.4.7", "node-uuid": "npm:node-uuid@1.4.7",
"oauth-sign": "npm:oauth-sign@0.8.1", "oauth-sign": "npm:oauth-sign@0.8.2",
"process": "github:jspm/nodelibs-process@0.1.2", "process": "github:jspm/nodelibs-process@0.1.2",
"qs": "npm:qs@6.1.0", "qs": "npm:qs@6.1.0",
"querystring": "github:jspm/nodelibs-querystring@0.1.0", "querystring": "github:jspm/nodelibs-querystring@0.1.0",
"stream": "github:jspm/nodelibs-stream@0.1.0", "stream": "github:jspm/nodelibs-stream@0.1.0",
"stringstream": "npm:stringstream@0.0.5", "stringstream": "npm:stringstream@0.0.5",
"tough-cookie": "npm:tough-cookie@2.2.2", "tough-cookie": "npm:tough-cookie@2.2.2",
"tunnel-agent": "npm:tunnel-agent@0.4.2", "tunnel-agent": "npm:tunnel-agent@0.4.3",
"url": "github:jspm/nodelibs-url@0.1.0", "url": "github:jspm/nodelibs-url@0.1.0",
"util": "github:jspm/nodelibs-util@0.1.0", "util": "github:jspm/nodelibs-util@0.1.0",
"zlib": "github:jspm/nodelibs-zlib@0.1.0" "zlib": "github:jspm/nodelibs-zlib@0.1.0"
@ -822,14 +827,14 @@ System.config({
"amdefine": "npm:amdefine@1.0.0", "amdefine": "npm:amdefine@1.0.0",
"process": "github:jspm/nodelibs-process@0.1.2" "process": "github:jspm/nodelibs-process@0.1.2"
}, },
"npm:sshpk@1.8.2": { "npm:sshpk@1.8.3": {
"asn1": "npm:asn1@0.2.3", "asn1": "npm:asn1@0.2.3",
"assert-plus": "npm:assert-plus@1.0.0", "assert-plus": "npm:assert-plus@1.0.0",
"buffer": "github:jspm/nodelibs-buffer@0.1.0", "buffer": "github:jspm/nodelibs-buffer@0.1.0",
"crypto": "github:jspm/nodelibs-crypto@0.1.0", "crypto": "github:jspm/nodelibs-crypto@0.1.0",
"dashdash": "npm:dashdash@1.13.1", "dashdash": "npm:dashdash@1.13.1",
"ecc-jsbn": "npm:ecc-jsbn@0.1.1", "ecc-jsbn": "npm:ecc-jsbn@0.1.1",
"getpass": "npm:getpass@0.1.5", "getpass": "npm:getpass@0.1.6",
"jodid25519": "npm:jodid25519@1.0.2", "jodid25519": "npm:jodid25519@1.0.2",
"jsbn": "npm:jsbn@0.1.0", "jsbn": "npm:jsbn@0.1.0",
"stream": "github:jspm/nodelibs-stream@0.1.0", "stream": "github:jspm/nodelibs-stream@0.1.0",
@ -871,31 +876,8 @@ System.config({
"npm:supports-color@2.0.0": { "npm:supports-color@2.0.0": {
"process": "github:jspm/nodelibs-process@0.1.2" "process": "github:jspm/nodelibs-process@0.1.2"
}, },
"npm:swagger-parser@4.0.0-beta.2": {
"buffer": "github:jspm/nodelibs-buffer@0.1.0",
"call-me-maybe": "npm:call-me-maybe@1.0.1",
"debug": "npm:debug@2.2.0",
"es6-promise": "npm:es6-promise@3.1.2",
"events": "github:jspm/nodelibs-events@0.1.1",
"fs": "github:jspm/nodelibs-fs@0.1.2",
"http": "github:jspm/nodelibs-http@1.7.1",
"https": "github:jspm/nodelibs-https@0.1.0",
"json-schema-ref-parser": "npm:json-schema-ref-parser@3.1.2",
"ono": "npm:ono@2.2.1",
"process": "github:jspm/nodelibs-process@0.1.2",
"punycode": "github:jspm/nodelibs-punycode@0.1.0",
"querystring": "github:jspm/nodelibs-querystring@0.1.0",
"stream": "github:jspm/nodelibs-stream@0.1.0",
"string_decoder": "github:jspm/nodelibs-string_decoder@0.1.0",
"swagger-methods": "npm:swagger-methods@1.0.0",
"swagger-schema-official": "npm:swagger-schema-official@2.0.0-bab6bed",
"systemjs-json": "github:systemjs/plugin-json@0.1.2",
"url": "github:jspm/nodelibs-url@0.1.0",
"util": "github:jspm/nodelibs-util@0.1.0",
"z-schema": "npm:z-schema@3.17.0"
},
"npm:timers-browserify@1.4.2": { "npm:timers-browserify@1.4.2": {
"process": "npm:process@0.11.2" "process": "npm:process@0.11.3"
}, },
"npm:to-arraybuffer@1.0.1": { "npm:to-arraybuffer@1.0.1": {
"buffer": "github:jspm/nodelibs-buffer@0.1.0", "buffer": "github:jspm/nodelibs-buffer@0.1.0",
@ -908,7 +890,7 @@ System.config({
"url": "github:jspm/nodelibs-url@0.1.0", "url": "github:jspm/nodelibs-url@0.1.0",
"util": "github:jspm/nodelibs-util@0.1.0" "util": "github:jspm/nodelibs-util@0.1.0"
}, },
"npm:tunnel-agent@0.4.2": { "npm:tunnel-agent@0.4.3": {
"assert": "github:jspm/nodelibs-assert@0.1.0", "assert": "github:jspm/nodelibs-assert@0.1.0",
"buffer": "github:jspm/nodelibs-buffer@0.1.0", "buffer": "github:jspm/nodelibs-buffer@0.1.0",
"events": "github:jspm/nodelibs-events@0.1.1", "events": "github:jspm/nodelibs-events@0.1.1",
@ -946,7 +928,7 @@ System.config({
}, },
"npm:z-schema@3.17.0": { "npm:z-schema@3.17.0": {
"commander": "npm:commander@2.9.0", "commander": "npm:commander@2.9.0",
"lodash.get": "npm:lodash.get@4.2.1", "lodash.get": "npm:lodash.get@4.3.0",
"process": "github:jspm/nodelibs-process@0.1.2", "process": "github:jspm/nodelibs-process@0.1.2",
"request": "npm:request@2.72.0", "request": "npm:request@2.72.0",
"systemjs-json": "github:systemjs/plugin-json@0.1.2", "systemjs-json": "github:systemjs/plugin-json@0.1.2",

View File

@ -72,6 +72,8 @@ describe('Language tabs sync', () => {
var $item = $$('[operation-id="addPet"] tabs > ul > li').last(); var $item = $$('[operation-id="addPet"] tabs > ul > li').last();
// check if correct item // check if correct item
expect($item.getText()).toContain('PHP'); expect($item.getText()).toContain('PHP');
var EC = protractor.ExpectedConditions;
browser.wait(EC.elementToBeClickable($item), 2000);
$item.click().then(() => { $item.click().then(() => {
expect($('[operation-id="updatePet"] li.active').getText()).toContain('PHP'); expect($('[operation-id="updatePet"] li.active').getText()).toContain('PHP');
}); });