workshopper-adventure
Advanced tools
Comparing version 6.0.4 to 6.1.0
@@ -23,3 +23,3 @@ const inherits = require('util').inherits | ||
if (typeof options === 'string') { | ||
options = {name: options} | ||
options = { name: options } | ||
} | ||
@@ -43,3 +43,3 @@ if (!options) { | ||
if (options.helpFile) { | ||
options.help = {file: options.helpFile} | ||
options.help = { file: options.helpFile } | ||
} | ||
@@ -46,0 +46,0 @@ |
@@ -1,5 +0,12 @@ | ||
# Change Log | ||
# Changelog | ||
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. | ||
## [6.1.0](https://github.com/workshopper/workshopper-adventure/compare/v6.0.4...v6.1.0) (2019-12-04) | ||
### Features | ||
* **util/idFromName:** allow customize character for white space ([d1d925f](https://github.com/workshopper/workshopper-adventure/commit/d1d925f)) | ||
<a name="6.0.4"></a> | ||
@@ -6,0 +13,0 @@ ## [6.0.4](https://github.com/workshopper/workshopper-adventure/compare/v6.0.3...v6.0.4) (2018-07-07) |
@@ -26,3 +26,4 @@ { | ||
"it": "Italienisch (Italiano)", | ||
"sr": "Serbisch (српски)" | ||
"sr": "Serbisch (српски)", | ||
"tr": "Türkisch (Türkçe)" | ||
}, | ||
@@ -29,0 +30,0 @@ "error": { |
@@ -29,3 +29,5 @@ { | ||
"uk": "Ukrainian (Українська)", | ||
"sr": "Serbian (српски)" | ||
"sr": "Serbian (српски)", | ||
"fi": "Finnish (suomi)", | ||
"tr": "Turkish (Türkçe)" | ||
}, | ||
@@ -32,0 +34,0 @@ "error": { |
@@ -29,7 +29,8 @@ { | ||
"it": "Italiano (Italiano)", | ||
"sr": "Serbio (српски)" | ||
"sr": "Serbio (српски)", | ||
"tr": "Turco (Türkçe)" | ||
}, | ||
"error": { | ||
"exercise": { | ||
"none_active": "No hay un ejercicio activo. Selecciona uno desde el menu.", | ||
"none_active": "No hay un ejercicio activo. Selecciona uno desde el menú.", | ||
"missing": "No se encontró el ejercicio: {{{name}}}", | ||
@@ -49,3 +50,3 @@ "unexpected_error": "No se pudo {{mode}}: {{{err}}}", | ||
"title": "FALLO", | ||
"message": "Su solución a {{{currentExercise.name}}} no pasó. Intentalo de nuevo!\n" | ||
"message": "Su solución a {{{currentExercise.name}}} no pasó. Inténtalo de nuevo!\n" | ||
}, | ||
@@ -57,3 +58,3 @@ "pass": { | ||
"notes": { | ||
"compare": "Aqui está la solución oficial si desea comparar notas:\n", | ||
"compare": "Aquí está la solución oficial si desea comparar notas:\n", | ||
"load_error": "ERROR: Hubo un problema mostrando el archivo de solución: {{{err}}}" | ||
@@ -63,3 +64,3 @@ } | ||
"ui": { | ||
"return": "Escriba '{{appName}}' para mostrar el menu.\n", | ||
"return": "Escriba '{{appName}}' para mostrar el menú.\n", | ||
"usage": "Uso: {{appName}} {{mode}} miprograma.js" | ||
@@ -72,3 +73,3 @@ }, | ||
"remaining": { | ||
"one": "Tienes solo un ejercicio por hacer.", | ||
"one": "Tienes sólo un ejercicio por hacer.", | ||
"other": "Tienes {{count}} ejercicios por hacer." | ||
@@ -78,5 +79,5 @@ } | ||
"credits": { | ||
"title": "{{appName}} is brought to you by the following dedicated hackers:", | ||
"name": "Name", | ||
"user": "GitHub Username" | ||
"title": "{{appName}} es traído a usted por los siguientes dedicados hackers:", | ||
"name": "Nombre", | ||
"user": "Nombre de usuario en GitHub" | ||
}, | ||
@@ -83,0 +84,0 @@ "update": { |
@@ -28,3 +28,4 @@ { | ||
"it": "Italien (Italiano)", | ||
"sr": "Serbe (српски)" | ||
"sr": "Serbe (српски)", | ||
"tr": "Turc (Türkçe)" | ||
}, | ||
@@ -31,0 +32,0 @@ "error": { |
@@ -28,3 +28,4 @@ { | ||
"it": "Italiano", | ||
"sr": "Serbo (српски)" | ||
"sr": "Serbo (српски)", | ||
"tr": "Turco (Türkçe)" | ||
}, | ||
@@ -31,0 +32,0 @@ "error": { |
@@ -28,3 +28,4 @@ { | ||
"nb-no": "ノルウェー語 (Norsk)", | ||
"sr": "セルビア語 (српски)" | ||
"sr": "セルビア語 (српски)", | ||
"tr": "トルコ (Türkçe)" | ||
}, | ||
@@ -31,0 +32,0 @@ "error": { |
@@ -29,3 +29,4 @@ { | ||
"it": "이탈리아어 (Italiano)", | ||
"sr": "세르비아어 (српски)" | ||
"sr": "세르비아어 (српски)", | ||
"tr": "터키의 (Türkçe)" | ||
}, | ||
@@ -32,0 +33,0 @@ "error": { |
@@ -29,3 +29,4 @@ { | ||
"it": "Italiensk (Italiano)", | ||
"sr": "Serbisk (српски)" | ||
"sr": "Serbisk (српски)", | ||
"tr": "Turkish (Türkçe)" | ||
}, | ||
@@ -32,0 +33,0 @@ "error": { |
@@ -29,3 +29,4 @@ { | ||
"it": "Włoski (Italiano)", | ||
"sr": "serbski (српски)" | ||
"sr": "serbski (српски)", | ||
"tr": "Turecki (Türkçe)" | ||
}, | ||
@@ -32,0 +33,0 @@ "error": { |
@@ -29,3 +29,4 @@ { | ||
"it": "Italiano (Italiano)", | ||
"sr": "Sérvio (српски)" | ||
"sr": "Sérvio (српски)", | ||
"tr": "Turco (Türkçe)" | ||
}, | ||
@@ -32,0 +33,0 @@ "error": { |
@@ -28,3 +28,4 @@ { | ||
"it": "Италья́нский (Italiano)", | ||
"sr": "Сербский (српски)" | ||
"sr": "Сербский (српски)", | ||
"tr": "турецкий (Türkçe)" | ||
}, | ||
@@ -31,0 +32,0 @@ "error": { |
@@ -29,3 +29,4 @@ { | ||
"it": "италијански (Italiano)", | ||
"sr": "српски" | ||
"sr": "српски", | ||
"tr": "турски (Türkçe)" | ||
}, | ||
@@ -32,0 +33,0 @@ "error": { |
@@ -29,3 +29,4 @@ { | ||
"it": "Iталійський (Italiano)", | ||
"sr": "Сербська (српски)" | ||
"sr": "Сербська (српски)", | ||
"tr": "турецька (Türkçe)" | ||
}, | ||
@@ -32,0 +33,0 @@ "error": { |
@@ -29,3 +29,4 @@ { | ||
"it": "Tiếng Ý (Italiano)", | ||
"sr": "Tiếng Serbia (српски)" | ||
"sr": "Tiếng Serbia (српски)", | ||
"tr": "Thổ Nhĩ Kỳ (Türkçe)" | ||
}, | ||
@@ -32,0 +33,0 @@ "error": { |
@@ -29,3 +29,4 @@ { | ||
"it": "意大利语 (Italiano)", | ||
"sr": "塞尔维亚语 (српски)" | ||
"sr": "塞尔维亚语 (српски)", | ||
"tr": "土耳其 (Türkçe)" | ||
}, | ||
@@ -32,0 +33,0 @@ "error": { |
@@ -29,3 +29,4 @@ { | ||
"it": "義大利文 (Italiano)", | ||
"sr": "塞爾維亞語 (српски)" | ||
"sr": "塞爾維亞語 (српски)", | ||
"tr": "土耳其 (Türkçe)" | ||
}, | ||
@@ -32,0 +33,0 @@ "error": { |
20
index.js
@@ -205,3 +205,3 @@ const path = require('path') | ||
if (err) { | ||
return cb(this.__('solution.notes.load_error', {err: err.message || err}), false, stream) | ||
return cb(this.__('solution.notes.load_error', { err: err.message || err }), false, stream) | ||
} | ||
@@ -296,3 +296,3 @@ | ||
if (!exercise) { | ||
cb(this.__('error.exercise.missing', {name: specifier}), false) | ||
cb(this.__('error.exercise.missing', { name: specifier }), false) | ||
return stream | ||
@@ -307,3 +307,3 @@ } | ||
if (requireSubmission !== false && args.length === 0) { | ||
cb(this.__('ui.usage', {appName: this.options.name, mode: mode}), false, stream) | ||
cb(this.__('ui.usage', { appName: this.options.name, mode: mode }), false, stream) | ||
return stream | ||
@@ -314,3 +314,3 @@ } | ||
if (!method) { | ||
cb(this.__('error.exercise.method_not_required', {method: mode}), false, stream) | ||
cb(this.__('error.exercise.method_not_required', { method: mode }), false, stream) | ||
return stream | ||
@@ -411,3 +411,3 @@ } | ||
if (cleanupErr) { | ||
return cb(this.__('error.cleanup', {err: cleanupErr.message || cleanupErr}), false) | ||
return cb(this.__('error.cleanup', { err: cleanupErr.message || cleanupErr }), false) | ||
} | ||
@@ -510,3 +510,3 @@ | ||
if (!id) { | ||
throw new Error(this.__('error.exercise.missing', {name: specifier})) | ||
throw new Error(this.__('error.exercise.missing', { name: specifier })) | ||
} | ||
@@ -516,3 +516,3 @@ | ||
if (!meta) { | ||
throw new Error(this.__('error.exercise.missing', {name: specifier})) | ||
throw new Error(this.__('error.exercise.missing', { name: specifier })) | ||
} | ||
@@ -532,3 +532,3 @@ | ||
'progress.total': this.exercises.length, | ||
'progress.state_resolved': this.__('progress.state', {count: exercise.meta.number, amount: this.exercises.length}) | ||
'progress.state_resolved': this.__('progress.state', { count: exercise.meta.number, amount: this.exercises.length }) | ||
}) | ||
@@ -552,3 +552,3 @@ } | ||
if (err) { | ||
return callback(this.__('error.exercise.preparing', {err: err.message || err})) | ||
return callback(this.__('error.exercise.preparing', { err: err.message || err })) | ||
} | ||
@@ -559,3 +559,3 @@ | ||
if (err) { | ||
return callback(this.__('error.exercise.loading', {err: err.message || err})) | ||
return callback(this.__('error.exercise.loading', { err: err.message || err })) | ||
} | ||
@@ -562,0 +562,0 @@ var stream = this.createMarkdownStream(exercise) |
exports.order = 2 | ||
exports.handler = function printHelp (shop) { | ||
var stream = shop.createMarkdownStream() | ||
stream.append(shop.options.hasOwnProperty('help') ? shop.options.help : require('../../default/help')) || | ||
stream.append(Object.hasOwnProperty.call(shop.options, 'help') ? shop.options.help : require('../../default/help')) || | ||
stream.append('No help available.') | ||
@@ -6,0 +6,0 @@ |
exports.menu = false | ||
exports.handler = function (shop) { | ||
shop.appStorage.reset() | ||
return console.log(shop.__('progress.reset', {title: shop.__('title')})) | ||
return console.log(shop.__('progress.reset', { title: shop.__('title') })) | ||
} |
@@ -20,3 +20,3 @@ var after = require('after') | ||
stream.on('end', exit) | ||
stream.pipe(process.stdout, {end: false}) | ||
stream.pipe(process.stdout, { end: false }) | ||
} |
@@ -33,6 +33,6 @@ var spawn = require('child_process').spawn | ||
} else if (current === latest) { | ||
stream.append(__('update.latest_version', {version: current, name: name})) | ||
stream.append(__('update.latest_version', { version: current, name: name })) | ||
} else { | ||
var cmd = 'npm install ' + name + '@latest -g' | ||
stream.append(__('update.now', {current: current, latest: latest, cmd: cmd, name: name})) | ||
stream.append(__('update.now', { current: current, latest: latest, cmd: cmd, name: name })) | ||
} | ||
@@ -50,4 +50,4 @@ stream | ||
}) | ||
.pipe(process.stdout, {end: false}) | ||
.pipe(process.stdout, { end: false }) | ||
}) | ||
} |
@@ -110,7 +110,7 @@ const fs = require('fs') | ||
if (content.hasOwnProperty('first')) { | ||
if (Object.hasOwnProperty.call(content, 'first')) { | ||
return content.first.reduce(function (found, child) { | ||
return found || this.append(child) | ||
}.bind(this), false) | ||
} else if (content.hasOwnProperty('files')) { | ||
} else if (Object.hasOwnProperty.call(content, 'files')) { | ||
var files = content.files | ||
@@ -126,3 +126,3 @@ .map(localisedFileName.bind(null, this.lang)) | ||
} | ||
stream.append({file: file}) | ||
stream.append({ file: file }) | ||
}) | ||
@@ -136,3 +136,3 @@ stream.append('---', 'md') | ||
if (content.hasOwnProperty('file')) { | ||
if (Object.hasOwnProperty.call(content, 'file')) { | ||
var file = localisedFirstFile(content.file, this.lang) | ||
@@ -153,3 +153,3 @@ if (file) { | ||
stream = content | ||
} else if (content.hasOwnProperty('text')) { | ||
} else if (Object.hasOwnProperty.call(content, 'text')) { | ||
contentType = content.type | ||
@@ -175,3 +175,3 @@ stream = new StrToStream(content.text + (content.skipNewline ? '' : '\n')) | ||
.pipe(split()) | ||
.pipe(through2({objectMode: true}, function (contents, encoding, done) { | ||
.pipe(through2({ objectMode: true }, function (contents, encoding, done) { | ||
buffer.push(getText(i18n, contents.toString())) | ||
@@ -178,0 +178,0 @@ done() |
{ | ||
"name": "workshopper-adventure", | ||
"version": "6.0.4", | ||
"version": "6.1.0", | ||
"description": "A terminal workshop runner framework (adventure compatible)", | ||
@@ -14,14 +14,14 @@ "main": "./index.js", | ||
"after": "^0.8.2", | ||
"chalk": "^2.3.1", | ||
"chalk": "^2.4.2", | ||
"colors-tmpl": "~1.0.0", | ||
"combined-stream-wait-for-it": "^1.1.0", | ||
"commandico": "^2.0.2", | ||
"commandico": "^2.0.4", | ||
"i18n-core": "^3.0.0", | ||
"latest-version": "^3.0.0", | ||
"latest-version": "^5.1.0", | ||
"msee": "^0.3.5", | ||
"simple-terminal-menu": "^1.1.3", | ||
"split": "^1.0.0", | ||
"string-to-stream": "^1.1.0", | ||
"strip-ansi": "^4.0.0", | ||
"through2": "^2.0.3", | ||
"string-to-stream": "^3.0.1", | ||
"strip-ansi": "^5.2.0", | ||
"through2": "^3.0.1", | ||
"workshopper-adventure-storage": "^3.0.0" | ||
@@ -37,9 +37,10 @@ }, | ||
"devDependencies": { | ||
"standard": "^11.0.0", | ||
"standard-version": "^4.3.0" | ||
"standard": "^14.2.0", | ||
"standard-version": "^7.0.0", | ||
"tape": "^4.11.0" | ||
}, | ||
"scripts": { | ||
"test": "./node_modules/.bin/standard", | ||
"test": "standard && tape test/**/*", | ||
"release": "./node_modules/.bin/standard-version" | ||
} | ||
} |
@@ -5,3 +5,3 @@ # Workshopper-Adventure | ||
[![Join the chat at https://gitter.im/nodeschool/workshoppers](https://badges.gitter.im/nodeschool/workshoppers.svg)](https://gitter.im/nodeschool/workshoppers?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) | ||
[![Join the chat at https://gitter.im/nodeschool/workshoppers](https://badges.gitter.im/nodeschool/workshoppers.svg)](https://gitter.im/nodeschool/workshoppers) [![Build Status](https://api.travis-ci.org/workshopper/workshopper-adventure.svg?branch=master)](https://travis-ci.org/workshopper/workshopper-adventure) [![Dependency Status](https://david-dm.org/workshopper/workshopper-adventure.svg)](https://david-dm.org/workshopper/workshopper-adventure) | ||
@@ -8,0 +8,0 @@ |
const path = require('path') | ||
const fs = require('fs') | ||
function idFromName (id) { | ||
function idFromName (id, spaceChar = '_') { | ||
if (id === null || id === undefined) { | ||
id = '' | ||
} | ||
const regex = new RegExp(`[^\\w${spaceChar}]`, 'gi') | ||
return id.toString().toLowerCase() | ||
.replace(/^\s+|\s+$/g, '') | ||
.replace(/\s/g, '_') | ||
.replace(/[^\w]/gi, '') | ||
.replace(/\s/g, spaceChar) | ||
.replace(regex, '') | ||
} | ||
@@ -14,0 +15,0 @@ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Native code
Supply chain riskContains native code (e.g., compiled binaries or shared libraries). Including native code can obscure malicious behavior.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
434187
135
3348
3
+ Added@sindresorhus/is@0.14.0(transitive)
+ Added@szmarczak/http-timer@1.1.2(transitive)
+ Addedansi-regex@4.1.1(transitive)
+ Addedcacheable-request@6.1.0(transitive)
+ Addedclone-response@1.0.3(transitive)
+ Addeddecompress-response@3.3.0(transitive)
+ Addeddefer-to-connect@1.1.3(transitive)
+ Addedend-of-stream@1.4.4(transitive)
+ Addedget-stream@4.1.05.2.0(transitive)
+ Addedgot@9.6.0(transitive)
+ Addedhttp-cache-semantics@4.1.1(transitive)
+ Addedjson-buffer@3.0.0(transitive)
+ Addedkeyv@3.1.0(transitive)
+ Addedlatest-version@5.1.0(transitive)
+ Addedlowercase-keys@2.0.0(transitive)
+ Addedmimic-response@1.0.1(transitive)
+ Addednormalize-url@4.5.1(transitive)
+ Addedp-cancelable@1.1.0(transitive)
+ Addedpackage-json@6.5.0(transitive)
+ Addedprepend-http@2.0.0(transitive)
+ Addedpump@3.0.2(transitive)
+ Addedreadable-stream@3.6.2(transitive)
+ Addedregistry-auth-token@4.2.2(transitive)
+ Addedregistry-url@5.1.0(transitive)
+ Addedresponselike@1.0.2(transitive)
+ Addedsemver@6.3.1(transitive)
+ Addedstring-to-stream@3.0.1(transitive)
+ Addedstrip-ansi@5.2.0(transitive)
+ Addedthrough2@3.0.2(transitive)
+ Addedto-readable-stream@1.0.0(transitive)
+ Addedurl-parse-lax@3.0.0(transitive)
- Removedcapture-stack-trace@1.0.2(transitive)
- Removedcreate-error-class@3.0.2(transitive)
- Removedget-stream@3.0.0(transitive)
- Removedgot@6.7.1(transitive)
- Removedis-redirect@1.0.0(transitive)
- Removedis-retry-allowed@1.2.0(transitive)
- Removedis-stream@1.1.0(transitive)
- Removedlatest-version@3.1.0(transitive)
- Removedpackage-json@4.0.1(transitive)
- Removedprepend-http@1.0.4(transitive)
- Removedregistry-auth-token@3.4.0(transitive)
- Removedregistry-url@3.1.0(transitive)
- Removedsafe-buffer@5.2.1(transitive)
- Removedsemver@5.7.2(transitive)
- Removedstring-to-stream@1.1.1(transitive)
- Removedtimed-out@4.0.1(transitive)
- Removedunzip-response@2.0.1(transitive)
- Removedurl-parse-lax@1.0.0(transitive)
Updatedchalk@^2.4.2
Updatedcommandico@^2.0.4
Updatedlatest-version@^5.1.0
Updatedstring-to-stream@^3.0.1
Updatedstrip-ansi@^5.2.0
Updatedthrough2@^3.0.1