Compare commits

...

5 Commits

Author SHA1 Message Date
76ed05aed6 some lib fixes 2026-03-22 04:37:35 +02:00
422dca818e missing libs for isBinaryFile/libs 2026-03-22 04:28:20 +02:00
3f47c913f8 should work now? 2026-03-22 04:24:01 +02:00
c0f85b7550 Merge branch 'main' of https://kevinblog.sytes.net/Code/Kevin/JiboSDK 2026-03-22 03:49:32 +02:00
e996a36479 zip fix 2026-03-22 03:49:22 +02:00
95 changed files with 61752 additions and 4 deletions

2
.npmignore Normal file
View File

@@ -0,0 +1,2 @@
node_modules
.DS_Store

BIN
lib.zip Normal file

Binary file not shown.

View File

@@ -9,6 +9,26 @@ const LEGACY_GATING_KEY = "cmajghqmadhnadjcjhamajdhda";
const bundled = require("./jibo-sdk");
function registerPulsarUriOpeners() {
try {
if (typeof atom === "undefined" || !atom.workspace || typeof atom.workspace.addOpener !== "function") return;
atom.workspace.addOpener((uri) => {
if (uri === "atom://jibo-cheat-sheet") {
const CheatSheetTab = require("./cheat-sheet/cheat-sheat-tab");
return new CheatSheetTab();
}
if (uri === "atom://atom-react-styleguide") {
const StyleguideEditor = require("./atom-react/styleguide/styleguide-editor");
return new StyleguideEditor();
}
return undefined;
});
} catch (_) {
// Best-effort only.
}
}
function forceLegacyLoginFlag() {
try {
if (typeof globalThis !== "undefined" && globalThis.localStorage) {
@@ -23,7 +43,9 @@ if (bundled && typeof bundled.activate === "function") {
const originalActivate = bundled.activate.bind(bundled);
bundled.activate = function activate(state) {
forceLegacyLoginFlag();
return originalActivate(state);
const result = originalActivate(state);
registerPulsarUriOpeners();
return result;
};
}

View File

@@ -1 +1 @@
"use strict";var e=function(e){return e&&e.__esModule?e["default"]:e},r=e(require("fs")),a=e(require("./tweening")),t=e(require("lodash")),n=e(require("./uuid")),l=e(require("./keyframe-search")),i=require("./blend-operations"),s={create:function(e){var r={version:e.defaults.version,framerate:e.defaults.framerate,duration:e.defaults.duration,scale:e.defaults.scale,layers:[]};return e.defaults.layers.forEach(function(e){r.layers.push({id:n(),name:e.name,type:e.type,visible:!0,locked:!1,keyframes:[]})}),r},load:function(e,a){var t=JSON.parse(r.readFileSync(e,"utf8"));return a.onLoad&&a.onLoad(t),t},save:function(e,a){r.writeFileSync(e,JSON.stringify(a,null," "),"utf8")},_isEventLayer:function(e,r){if(e){var a=r.layerTypes[e.type];return a.isEvent()}return!1},evaluateAllDOFLayers:function(e,r,a,t){var n=this,l=this.evaluateAllLayersFiltered(e,r,a,function(e){return!n._isEventLayer(e,r)},!1,t),i={};for(var s in l){var u=r.layerTypes[s],y=u.generateDofs(l[s]);for(var f in y)i[f]=y[f]}return i},evaluateAllLayersFiltered:function(e,r,a,t,n,l){for(var s={},u=e.layers.length-1;u>=0;u--)if(t(e.layers[u])&&e.layers[u].visible){var y=void 0===l?void 0:l[e.layers[u].id],f=this.evaluateLayer(e.layers[u],e,r,a,y);if("undefined"==typeof s[e.layers[u].type])s[e.layers[u].type]=f;else{var o=s[e.layers[u].type],v=r.layerTypes[e.layers[u].type].getInfo();for(var p in f){var d=v.properties[p];try{o[p]=i[d.blendOperation][d.type](o[p],f[p],d.defaultValue)}catch(c){u=0}}}}return s},computeRelativePropValues:function(e,r,a,t,n,l){var s=this.evaluateAllLayersFiltered(r,a,t,function(r){return r.type!==e.type||r.id===e.id?!1:!0},!0,l);if("undefined"==typeof s[e.type])return n;var u=a.layerTypes[e.type].getInfo(),y={};for(var f in n){var o=u.properties[f];y[f]=i.inverse[o.blendOperation][o.type](s[e.type][f],n[f],o.defaultValue)}return y},evaluateLayer:function(e,r,n,i,s){if(this._isEventLayer(e,n))return this._evaluateEventLayer(e,r,n,i);var u={};if(s){for(var y in s)u[y]=s[y];return u}var f=n.layerTypes[e.type].getInfo();if(0===e.keyframes.length)for(var y in f.properties)u[y]=t.cloneDeep(f.properties[y].defaultValue);else{void 0===r.scale&&(r.scale=n.defaults.scale);var o=i*r.framerate;if(1===e.keyframes.length||e.keyframes[0].time>=o)return t.cloneDeep(e.keyframes[0].value);if(e.keyframes[e.keyframes.length-1].time<=o)return t.cloneDeep(e.keyframes[e.keyframes.length-1].value);var v=l.keyframeSearch(e.keyframes,o),p=v.start,d=v.end;p=e.keyframes[p],d=e.keyframes[d];var c=p.time,m=d.time,h=(o-c)/(m-c),k="cubicInOut";p.value.Tween&&(k=p.value.Tween.value);for(var y in p.value)"string"==typeof f.properties[y].type?u[y]=a[f.properties[y].type](p.value[y],d.value[y],h,k):u[y]=a[f.properties[y].type.name](p.value[y],d.value[y],h,k)}return u},_evaluateEventLayer:function(e,r,a,n){var i=n*r.framerate,s=l.keyframeSearchAbsolute(e.keyframes,i);if(void 0!==s)return t.cloneDeep(e.keyframes[s].value);var u=a.layerTypes[e.type].getInfo(),y={};for(var f in u.properties)y[f]=t.cloneDeep(u.properties[f].defaultValue);return y},evaluateAllEventLayers:function(e,r,a){for(var t=[],n=e.layers.length,l=0;n>l;l++){var i=e.layers[l];if(this._isEventLayer(i,r)&&i.visible){var s=this.evaluateLayer(i,e,r,a);if(s){var u=r.layerTypes[i.type],y=u.generateEvent(s),f=typeof y;"object"===f&&u.isValid(y)&&t.push(y)}}}return t}};module.exports=s;
"use strict";var e=function(e){return e&&e.__esModule?e["default"]:e},r=e(require("fs")),a=e(require("./tweening")),t=e(require("lodash")),n=e(require("./uuid")),l=e(require("./keyframe-search")),i=require("./blend-operations"),f=e(require("./jibo-keyframe-info")),s={create:function(e){e&&e.defaults||(e=f);var r={version:e.defaults.version,framerate:e.defaults.framerate,duration:e.defaults.duration,scale:e.defaults.scale,layers:[]};return e.defaults.layers.forEach(function(e){r.layers.push({id:n(),name:e.name,type:e.type,visible:!0,locked:!1,keyframes:[]})}),r},load:function(e,a){var t=JSON.parse(r.readFileSync(e,"utf8"));return a.onLoad&&a.onLoad(t),t},save:function(e,a){r.writeFileSync(e,JSON.stringify(a,null," "),"utf8")},_isEventLayer:function(e,r){if(e){var a=r.layerTypes[e.type];return a.isEvent()}return!1},evaluateAllDOFLayers:function(e,r,a,t){var n=this,l=this.evaluateAllLayersFiltered(e,r,a,function(e){return!n._isEventLayer(e,r)},!1,t),i={};for(var s in l){var u=r.layerTypes[s],y=u.generateDofs(l[s]);for(var f in y)i[f]=y[f]}return i},evaluateAllLayersFiltered:function(e,r,a,t,n,l){for(var s={},u=e.layers.length-1;u>=0;u--)if(t(e.layers[u])&&e.layers[u].visible){var y=void 0===l?void 0:l[e.layers[u].id],f=this.evaluateLayer(e.layers[u],e,r,a,y);if("undefined"==typeof s[e.layers[u].type])s[e.layers[u].type]=f;else{var o=s[e.layers[u].type],v=r.layerTypes[e.layers[u].type].getInfo();for(var p in f){var d=v.properties[p];try{o[p]=i[d.blendOperation][d.type](o[p],f[p],d.defaultValue)}catch(c){u=0}}}}return s},computeRelativePropValues:function(e,r,a,t,n,l){var s=this.evaluateAllLayersFiltered(r,a,t,function(r){return r.type!==e.type||r.id===e.id?!1:!0},!0,l);if("undefined"==typeof s[e.type])return n;var u=a.layerTypes[e.type].getInfo(),y={};for(var f in n){var o=u.properties[f];y[f]=i.inverse[o.blendOperation][o.type](s[e.type][f],n[f],o.defaultValue)}return y},evaluateLayer:function(e,r,n,i,s){if(this._isEventLayer(e,n))return this._evaluateEventLayer(e,r,n,i);var u={};if(s){for(var y in s)u[y]=s[y];return u}var f=n.layerTypes[e.type].getInfo();if(0===e.keyframes.length)for(var y in f.properties)u[y]=t.cloneDeep(f.properties[y].defaultValue);else{void 0===r.scale&&(r.scale=n.defaults.scale);var o=i*r.framerate;if(1===e.keyframes.length||e.keyframes[0].time>=o)return t.cloneDeep(e.keyframes[0].value);if(e.keyframes[e.keyframes.length-1].time<=o)return t.cloneDeep(e.keyframes[e.keyframes.length-1].value);var v=l.keyframeSearch(e.keyframes,o),p=v.start,d=v.end;p=e.keyframes[p],d=e.keyframes[d];var c=p.time,m=d.time,h=(o-c)/(m-c),k="cubicInOut";p.value.Tween&&(k=p.value.Tween.value);for(var y in p.value)"string"==typeof f.properties[y].type?u[y]=a[f.properties[y].type](p.value[y],d.value[y],h,k):u[y]=a[f.properties[y].type.name](p.value[y],d.value[y],h,k)}return u},_evaluateEventLayer:function(e,r,a,n){var i=n*r.framerate,s=l.keyframeSearchAbsolute(e.keyframes,i);if(void 0!==s)return t.cloneDeep(e.keyframes[s].value);var u=a.layerTypes[e.type].getInfo(),y={};for(var f in u.properties)y[f]=t.cloneDeep(u.properties[f].defaultValue);return y},evaluateAllEventLayers:function(e,r,a){for(var t=[],n=e.layers.length,l=0;n>l;l++){var i=e.layers[l];if(this._isEventLayer(i,r)&&i.visible){var s=this.evaluateLayer(i,e,r,a);if(s){var u=r.layerTypes[i.type],y=u.generateEvent(s),f=typeof y;"object"===f&&u.isValid(y)&&t.push(y)}}}return t}};module.exports=s;

6
node_modules/jibo-sdk/LICENSE.txt generated vendored Normal file
View File

@@ -0,0 +1,6 @@
jibo-sdk - Jibo's SDK plugin for Atom
@version v3.9.10
Copyright (c) 2017, Jibo, Inc. All rights reserved.
All use of the Jibo SDK is subject to the Jibo SDK End User License Agreement (EULA)
distributed herewith. If you did not receive a copy of the EULA, you may view a
copy at https://developers.jibo.com/license.

5
node_modules/jibo-sdk/README.md generated vendored Normal file
View File

@@ -0,0 +1,5 @@
The Jibo Software Developer Kit (SDK) gives developers an easy way to build Jibo Skills (robot applications). The Jibo SDK includes animation and behavior editors and gives you access to Jibo's motors, speech technology, facial recognition and tracking, touch input technology, and more.
Click [here](http://developer.jibo.com) for Jibo SDK documentation.
![Jibo README gif](http://jiborobot.github.io/jibo-sdk/resources/images/README.gif)

239
node_modules/jibo-sdk/grammars/esml.json generated vendored Normal file
View File

@@ -0,0 +1,239 @@
{
"scopeName": "text.esml",
"fileTypes": [
"esml"
],
"name": "Jibo Embodied Speech Markup Language",
"patterns": [
{
"begin": "(</?)(tts)\\b",
"beginCaptures": {
"1": {
"name": "keyword.control.tts.begin.esml"
},
"2": {
"name": "entity.tag.name.tts.esml"
}
},
"end": "(/?>)",
"endCaptures": {
"1": {
"name": "keyword.control.tts.end.esml"
}
},
"name": "meta.tag.tts.esml",
"patterns": [
{
"include": "#tts-tag-stuff"
}
]
},
{
"begin": "(</?)(anim|es|ssa|sfx)\\b",
"beginCaptures": {
"1": {
"name": "keyword.control.anim.begin.esml"
},
"2": {
"name": "entity.name.tag.anim.esml"
}
},
"end": "(/?>)",
"endCaptures": {
"1": {
"name": "keyword.control.anim.end.esml"
}
},
"name": "meta.tag.anim.esml",
"patterns": [
{
"include": "#es-ssa-sfx-anim-tag-stuff"
}
]
},
{
"begin": "(</?)(sound)\\b",
"beginCaptures": {
"1": {
"name": "keyword.control.sound.begin.esml"
},
"2": {
"name": "entity.name.tag.sound.esml"
}
},
"end": "(/?>)",
"endCaptures": {
"1": {
"name": "keyword.control.sound.end.esml"
}
},
"name": "meta.tag.sound.esml",
"patterns": [
{
"include": "#sound-tag-stuff"
}
]
},
{
"begin": "(</?)(break)\\b",
"beginCaptures": {
"1": {
"name": "keyword.control.break.begin.esml"
},
"2": {
"name": "entity.name.tag.break.other.esml"
}
},
"end": "(/?>)",
"endCaptures": {
"1": {
"name": "keyword.control.break.end.esml"
}
},
"name": "meta.tag.break.esml",
"patterns": [
{
"include": "#break-tag-stuff"
}
]
},
{
"begin": "(</?)((?!(tts|anim|sound|break|es|ssa|sfx))\\w*)",
"beginCaptures": {
"1": {
"name": "keyword.control.tag.begin.esml"
},
"2": {
"name": "invalid.illegal.entity.name.esml"
}
},
"end": "(/?>)",
"endCaptures": {
"1": {
"name": "keyword.control.tag.end.esml"
}
},
"name": "meta.tag.other.esml"
},
{
"match": "<>",
"name": "invalid.illegal.incomplete.emsl"
}
],
"repository": {
"string-double-quoted": {
"begin": "\"",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.esml"
}
},
"end": "\"",
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.esml"
}
},
"name": "string.quoted.double.esml"
},
"string-single-quoted": {
"begin": "'",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.esml"
}
},
"end": "'",
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.esml"
}
},
"name": "string.quoted.single.esml"
},
"tts-attribute": {
"match": "(?<=[^=])\\b(params|config)",
"name": "entity.other.tts.attribute-name.esml"
},
"es-ssa-sfx-anim-attribute": {
"match": "(?<=[^=])\\b(path|name|cat|nonBlocking|endNeutral|filter|layers)",
"name": "entity.other.es-ssa-sfx-anim.attribute-name.esml"
},
"sound-attribute": {
"match": "(?<=[^=])\\b(path|nonBlocking)",
"name": "entity.other.sound.attribute-name.esml"
},
"break-attribute": {
"match": "(?<=[^=])\\b(size)",
"name": "entity.other.break.attribute-name.esml"
},
"tts-tag-stuff": {
"patterns": [
{
"include": "#tts-attribute"
},
{
"include": "#string-double-quoted"
},
{
"include": "#string-single-quoted"
},
{
"include": "#unquoted-attribute"
}
]
},
"es-ssa-sfx-anim-tag-stuff": {
"patterns": [
{
"include": "#es-ssa-sfx-anim-attribute"
},
{
"include": "#string-double-quoted"
},
{
"include": "#string-single-quoted"
},
{
"include": "#unquoted-attribute"
}
]
},
"sound-tag-stuff": {
"patterns": [
{
"include": "#sound-attribute"
},
{
"include": "#string-double-quoted"
},
{
"include": "#string-single-quoted"
},
{
"include": "#unquoted-attribute"
}
]
},
"break-tag-stuff": {
"patterns": [
{
"include": "#break-attribute"
},
{
"include": "#string-double-quoted"
},
{
"include": "#string-single-quoted"
},
{
"include": "#unquoted-attribute"
}
]
},
"unquoted-attribute": {
"match": "(?<==)(?:[^\\s<>/'\"]|/(?!>))+",
"name": "invalid.illegal.unquoted.esml"
}
}
}

34
node_modules/jibo-sdk/grammars/mim-esml.json generated vendored Normal file
View File

@@ -0,0 +1,34 @@
{
"scopeName": "text.mim-esml",
"fileTypes": [],
"name": "Jibo MIM ESML",
"patterns": [
{
"match": "\\$\\{\\s*\\}",
"name": "invalid.illegal.incomplete.emsl"
},
{
"begin": "(\\$\\{)",
"beginCaptures": {
"1": {
"name": "keyword.control.code-insert.esml"
}
},
"end": "(\\})",
"endCaptures": {
"1": {
"name": "keyword.control.code-insert.esml"
}
},
"contentName": "source.js.embedded.esml",
"patterns": [
{
"include": "source.js"
}
]
},
{
"include":"text.esml"
}
]
}

47
node_modules/jibo-sdk/grammars/rule.json generated vendored Normal file
View File

@@ -0,0 +1,47 @@
{
"scopeName": "source.rule",
"name": "Jibo Rules",
"fileTypes": [
"rule",
"nli",
"grm"
],
"patterns": [
{
"name": "comment.jibo-rule",
"match": "((#).*\n$)"
},
{
"name": "keyword.control.jibo-rule",
"match": "(\\$[A-Za-z0-9_\\*]*)"
},
{
"name": "string.quoted.single.jibo-rule",
"match": "'[^'|\\n]+'"
},
{
"name": "keyword.operator.jibo-rule",
"match": "(\\+|\\?|\\|)"
},
{
"match": "(\\b_\\w+\\b)",
"captures": {
"1": {
"name": "variable.parameter.function.jibo-rule"
}
}
},
{
"name": ".constant.character.escape.jibo-rule",
"match": "\\\\'"
},
{
"match": "(^[A-Za-z0-9_]+)( |=)",
"captures": {
"1": {
"name": "constant.other.jibo-rule"
}
}
}
]
}

137
node_modules/jibo-sdk/keymaps/jibo-atom.cson generated vendored Normal file
View File

@@ -0,0 +1,137 @@
'atom-workspace':
'ctrl-alt-g': 'jibo-sdk:new-project'
'ctrl-alt-c': 'jibo-sdk:cheat-sheet'
'ctrl-alt-p': 'jibo-sdk:play'
'ctrl-alt-s': 'jibo-sdk:stop'
'ctrl-alt-j': 'atom-react:styleguide'
'ctrl-alt-d': 'jibo-sdk:debug-pane'
'ctrl-alt-h': 'jibo-sdk:html-tab'
'.platform-darwin atom-workspace .editor, .platform-darwin atom-workspace':
'cmd-r': 'jibo-sdk:run-skill'
'.platform-linux atom-workspace .editor, .platform-linux atom-workspace':
'cmd-r': 'jibo-sdk:run-skill'
'.platform-win32 atom-workspace .editor, .platform-win32 atom-workspace':
'f5': 'jibo-sdk:run-skill'
'ctrl-r': 'jibo-sdk:run-skill'
'.behavior-editor atom-text-editor:not([mini])':
'up': 'core:move-up'
'down': 'core:move-down'
'.behavior-editor atom-text-editor':
'up': 'core:move-up'
'down': 'core:move-down'
'backspace' : 'core:backspace'
'delete' : 'core:delete'
'.behavior-editor .tree-grid-view':
'up': 'jibo-sdk:up'
'down': 'jibo-sdk:down'
'ctrl-alt-/': 'jibo-sdk:skip-selected'
'cmd-/': 'jibo-sdk:skip-selected'
'backspace' :'jibo-sdk:delete-bt-elem'
'delete': 'jibo-sdk:delete-bt-elem'
'.package-generator':
'escape': 'jibo-sdk:escape'
'.asset-selector-modal':
'up': 'jibo-sdk:up'
'down': 'jibo-sdk:down'
'enter': 'jibo-sdk:confirm'
'right': 'jibo-sdk:right'
'left': 'jibo-sdk:left'
'escape': 'jibo-sdk:escape'
'.animation-editor':
'cmd-a': 'jibo-sdk:select-all-keyframes'
'cmd-d': 'jibo-sdk:clear-keyframe-selection'
's': 'jibo-sdk:upsert-keyframe'
'a': 'jibo-sdk:upsert-all'
'r': 'jibo-sdk:reset-keyframes'
'd': 'jibo-sdk:delete'
'f5': 'jibo-sdk:insert-blank-frame'
'shift-f5': 'jibo-sdk:delete-frame'
'cmd-i': 'jibo-sdk:insert-blank-frame'
'shift-cmd-i': 'jibo-sdk:delete-frame'
'backspace': 'jibo-sdk:delete'
'delete': 'jibo-sdk:delete'
'escape': 'jibo-sdk:stop-playing'
'space': 'jibo-sdk:start-playing'
'left': 'jibo-sdk:step-backward'
'right': 'jibo-sdk:step-forward'
'down': 'jibo-sdk:next-layer'
'up': 'jibo-sdk:previous-layer'
'.animation-editor .animation-channel-label input':
's': 'native!'
'a': 'native!'
'r': 'native!'
'd': 'native!'
'backspace': 'native!'
'delete': 'native!'
'left': 'native!'
'right': 'native!'
'enter': 'native!'
'space': 'native!'
'.animation-editor .animation-settings .settings-container input':
'enter': 'jibo-sdk:confirm'
'escape': 'jibo-sdk:escape'
'.animation-editor atom-text-editor':
'backspace': 'core:backspace'
'delete': 'core:delete'
'left': 'core:move-left'
'right': 'core:move-right'
's': 'native!'
'a': 'native!'
'r': 'native!'
'd': 'native!'
'space': 'native!'
'enter': 'core:confirm'
'escape': 'jibo-sdk:lose-focus'
'.animation-editor .event-editor atom-text-editor:not([mini])':
'enter': 'editor:newline'
'up': 'core:move-up'
'down': 'core:move-down'
'escape': 'jibo-sdk:lose-focus'
'ctrl-s': 'jibo-sdk:upsert-and-save'
'.debug-pane atom-text-editor' :
'backspace': 'core:backspace'
'delete': 'core:delete'
'left': 'core:move-left'
'right': 'core:move-right'
's': 'native!'
'a': 'native!'
'r': 'native!'
'enter': 'core:confirm'
'.flow-editor' :
'ctrl-o p': 'jibo-sdk:preflight-flow'
'ctrl-o t g': 'jibo-sdk:toggle-grid'
'ctrl-o t a': 'jibo-sdk:toggle-alignment-guide'
'ctrl-o t s': 'jibo-sdk:toggle-snap-into-position'
'ctrl-o t b': 'jibo-sdk:toggle-bezier-links'
'ctrl-o a t': 'jibo-sdk:align-shape-tops'
'ctrl-o a m': 'jibo-sdk:align-shape-middles'
'ctrl-o a b': 'jibo-sdk:align-shape-bottoms'
'ctrl-o a l': 'jibo-sdk:align-shape-lefts'
'ctrl-o a c': 'jibo-sdk:align-shape-centers'
'ctrl-o a r': 'jibo-sdk:align-shape-rights'
'ctrl-o a w': 'jibo-sdk:align-shape-widths'
'ctrl-o a h': 'jibo-sdk:align-shape-heights'
'ctrl-o d v': 'jibo-sdk:distribute-shapes-vertically'
'ctrl-o d h': 'jibo-sdk:distribute-shapes-horizontally'
'ctrl-o d t': 'jibo-sdk:distribute-shapes-tops'
'ctrl-o d m': 'jibo-sdk:distribute-shapes-middles'
'ctrl-o d b': 'jibo-sdk:distribute-shapes-bottoms'
'ctrl-o d l': 'jibo-sdk:distribute-shapes-lefts'
'ctrl-o d c': 'jibo-sdk:distribute-shapes-centers'
'ctrl-o d r': 'jibo-sdk:distribute-shapes-rights'

23
node_modules/jibo-sdk/lib/jibo-sdk.js generated vendored Normal file

File diff suppressed because one or more lines are too long

112
node_modules/jibo-sdk/menus/jibo-atom.cson generated vendored Normal file
View File

@@ -0,0 +1,112 @@
'menu': [
{
'label': 'Jibo',
'submenu': [
{'label': 'New Animation', 'command': 'jibo-sdk:new-animation-file'}
{'label': 'New Behavior Tree', 'command': 'jibo-sdk:new-behavior-tree-file'}
{'label': 'New MIM', 'command': 'jibo-sdk:new-mim-file'}
{'label': 'New Flow', 'command': 'jibo-sdk:new-flow-file'}
{'label': 'New Rule', 'command': 'jibo-sdk:new-rule-file'}
{'label': 'New Project', 'command': 'jibo-sdk:new-project'}
{'type': 'separator'}
{'label': 'Flow',
'submenu': [
{'label': 'Preflight', 'command': 'jibo-sdk:preflight-flow'}
{'label': 'Toggle',
'submenu': [
{'label': 'Grid ^O t g', 'command': 'jibo-sdk:toggle-grid'}
{'label': 'Alignment guides ^O t a', 'command': 'jibo-sdk:toggle-alignment-guide'}
{'label': 'Snapping-to-grid ^O t s', 'command': 'jibo-sdk:toggle-snap-into-position'}
{'label': 'Bezier links ^O t b', 'command': 'jibo-sdk:toggle-bezier-links'}
]}
{'label': 'Align Shape',
'submenu': [
{'label': 'Tops ^O a t', 'command': 'jibo-sdk:align-shape-tops'}
{'label': 'Middles ^O a m', 'command': 'jibo-sdk:align-shape-middles'}
{'label': 'Bottoms ^O a b', 'command': 'jibo-sdk:align-shape-bottoms'}
{'label': 'Lefts ^O a l', 'command': 'jibo-sdk:align-shape-lefts'}
{'label': 'Centers ^O a c', 'command': 'jibo-sdk:align-shape-centers'}
{'label': 'Rights ^O a r', 'command': 'jibo-sdk:align-shape-rights'}
]}
{'label': 'Equalize Shape',
'submenu': [
{'label': 'Widths ^O a w', 'command': 'jibo-sdk:align-shape-widths'},
{'label': 'Heights ^O a h', 'command': 'jibo-sdk:align-shape-heights'}
]}
{'label': 'Distribute Shapes',
'submenu': [
{'label': 'Vertically ^O d v', 'command': 'jibo-sdk:distribute-shapes-vertically'},
{'label': 'Tops ^O d t', 'command': 'jibo-sdk:distribute-shapes-tops'}
{'label': 'Middles ^O d m', 'command': 'jibo-sdk:distribute-shapes-middles'}
{'label': 'Bottoms ^O d b', 'command': 'jibo-sdk:distribute-shapes-bottoms'}
{'label': 'Horizontally ^O d h', 'command': 'jibo-sdk:distribute-shapes-horizontally'}
{'label': 'Lefts ^O d l', 'command': 'jibo-sdk:distribute-shapes-lefts'}
{'label': 'Centers ^O d c', 'command': 'jibo-sdk:distribute-shapes-centers'}
{'label': 'Rights ^O d r', 'command': 'jibo-sdk:distribute-shapes-rights'}
]}
]}
{'label': 'Open Cheat Sheet', 'command': 'jibo-sdk:cheat-sheet'}
{'label': 'Atom React Styleguide', 'command': 'atom-react:styleguide'}
{'type': 'separator'}
{'label': 'Login...', 'command': 'jibo-sdk:login'}
]
}
]
'context-menu':
'atom-pane .bodyRenderer': [
{'label': 'Play Animation', 'command': 'jibo-sdk:play-animation'}
]
'.tree-view.full-menu': [
{'type': 'separator'}
{
'label': 'Jibo',
'submenu': [
{'label': 'New Animation', 'command': 'jibo-sdk:new-animation-file'}
{'label': 'New Behavior Tree', 'command': 'jibo-sdk:new-behavior-tree-file'}
{'label': 'New MIM', 'command': 'jibo-sdk:new-mim-file'}
{'label': 'New Flow', 'command': 'jibo-sdk:new-flow-file'}
{'label': 'New Rule', 'command': 'jibo-sdk:new-rule-file'}
{'label': 'New Project', 'command': 'jibo-sdk:new-project'}
{'type': 'separator'}
{'label': 'Flow',
'submenu': [
{'label': 'Preflight ^O p', 'command': 'jibo-sdk:preflight-flow'}
{'label': 'Toggle',
'submenu': [
{'label': 'Grid ^O t g', 'command': 'jibo-sdk:toggle-grid'}
{'label': 'Alignment guides ^O t a', 'command': 'jibo-sdk:toggle-alignment-guide'}
{'label': 'Snapping-to-grid ^O t s', 'command': 'jibo-sdk:toggle-snap-into-position'}
{'label': 'Bezier links ^O t b', 'command': 'jibo-sdk:toggle-bezier-links'}
]}
{'label': 'Align Shape',
'submenu': [
{'label': 'Tops ^O a t', 'command': 'jibo-sdk:align-shape-tops'}
{'label': 'Middles ^O a m', 'command': 'jibo-sdk:align-shape-middles'}
{'label': 'Bottoms ^O a b', 'command': 'jibo-sdk:align-shape-bottoms'}
{'label': 'Lefts ^O a l', 'command': 'jibo-sdk:align-shape-lefts'}
{'label': 'Centers ^O a c', 'command': 'jibo-sdk:align-shape-centers'}
{'label': 'Rights ^O a r', 'command': 'jibo-sdk:align-shape-rights'}
]}
{'label': 'Equalize Shape',
'submenu': [
{'label': 'Widths ^O a w', 'command': 'jibo-sdk:align-shape-widths'},
{'label': 'Heights ^O a h', 'command': 'jibo-sdk:align-shape-heights'}
]}
{'label': 'Distribute Shapes',
'submenu': [
{'label': 'Vertically ^O d v', 'command': 'jibo-sdk:distribute-shapes-vertically'},
{'label': 'Tops ^O d t', 'command': 'jibo-sdk:distribute-shapes-tops'}
{'label': 'Middles ^O d m', 'command': 'jibo-sdk:distribute-shapes-middles'}
{'label': 'Bottoms ^O d b', 'command': 'jibo-sdk:distribute-shapes-bottoms'}
{'label': 'Horizontally ^O d h', 'command': 'jibo-sdk:distribute-shapes-horizontally'}
{'label': 'Lefts ^O d l', 'command': 'jibo-sdk:distribute-shapes-lefts'}
{'label': 'Centers ^O d c', 'command': 'jibo-sdk:distribute-shapes-centers'}
{'label': 'Rights ^O d r', 'command': 'jibo-sdk:distribute-shapes-rights'}
]}
]}
{'label': 'Open as JSON', 'command': 'jibo-sdk:open-as-json'}
]
}
]

10592
node_modules/jibo-sdk/npm-shrinkwrap.json generated vendored Normal file

File diff suppressed because it is too large Load Diff

52
node_modules/jibo-sdk/package.json generated vendored Normal file
View File

@@ -0,0 +1,52 @@
{
"name": "jibo-sdk",
"main": "./lib/jibo-sdk.js",
"version": "3.9.10",
"description": "Jibo's SDK plugin for Atom",
"engines": {
"atom": ">=1.12.0"
},
"dependencies": {
"animation-utilities": "beta",
"async": "^1.0.0",
"atom-space-pen-views": "^2.0.5",
"behaviorify": "^1.0.0",
"clamp": "^1.0.1",
"color-space": "^1.2.1",
"color-string": "^0.3.0",
"deep-diff": "^0.3.3",
"drag-helper": "^1.2.3",
"find-root": "^1.0.0",
"glob": "^7.1.1",
"isbinaryfile": "3.0.2",
"jibo": "beta",
"jibo-anim-db": "beta",
"jibo-analytics": "^0.1.5",
"jibo-cli": "beta",
"jibo-dev": "beta",
"jibo-keyframes": "beta",
"jquery": "^2.1.3",
"jsonschema": "^1.0.2",
"lodash": "^3.7.0",
"loophole": "^1.1.0",
"marked": "^0.3.5",
"mkdirp": "^0.5.0",
"pixi-animate": "^1.1.0",
"node-pid-controller": "^0.1.1",
"node-uuid": "^1.4.7",
"normalize-path": "^1.0.0",
"parser-download": "beta",
"react": "^0.13.3",
"region": "^2.1.2",
"request": "^2.79.0",
"slash": "^1.0.0",
"tinycolor2": "^1.1.1",
"underscore-plus": "^1.6.6",
"url-parse-as-address": "^1.0.0"
},
"scripts": {
"postinstall": "parser-download -r -f -v 2.4.0 -t 49"
},
"license": "SEE LICENSE IN LICENSE.txt",
"author": "Jibo, Inc. <sdkearlyaccess@jibo.com>"
}

View File

@@ -0,0 +1 @@
cmd_Release/jsjibonlu.node := c++ -bundle -stdlib=libc++ -undefined dynamic_lookup -Wl,-no_pie -Wl,-search_paths_first -mmacosx-version-min=10.7 -arch x86_64 -L./Release -o Release/jsjibonlu.node Release/obj.target/jsjibonlu/src/jsjibonluapi.o Release/obj.target/jsjibonlu/src/js_fst.o Release/obj.target/jsjibonlu/src/js_sentence_parser.o Release/obj.target/jsjibonlu/src/js_sentence_generator.o Release/obj.target/jsjibonlu/src/v8_engine.o -L../deps/darwin/x64/lib -ljibonlu -lfst -lPocoJSON -lPocoFoundation -lPocoUtil -lPocoXML

View File

@@ -0,0 +1,32 @@
cmd_Release/obj.target/jsjibonlu/src/js_fst.o := c++ '-DNODE_GYP_MODULE_NAME=jsjibonlu' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-D_DARWIN_USE_64_BIT_INODE=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DBUILDING_NODE_EXTENSION' -I/Users/rprieto/.node-gyp/iojs-1.3.0/include/node -I/Users/rprieto/.node-gyp/iojs-1.3.0/src -I/Users/rprieto/.node-gyp/iojs-1.3.0/deps/uv/include -I/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include -I../deps/include -Os -gdwarf-2 -mmacosx-version-min=10.7 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu++0x -fno-rtti -fno-exceptions -fno-threadsafe-statics -std=c++11 -stdlib=libc++ -fexceptions -MMD -MF ./Release/.deps/Release/obj.target/jsjibonlu/src/js_fst.o.d.raw -c -o Release/obj.target/jsjibonlu/src/js_fst.o ../src/js_fst.cpp
Release/obj.target/jsjibonlu/src/js_fst.o: ../src/js_fst.cpp \
/Users/rprieto/.node-gyp/iojs-1.3.0/src/node.h \
/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include/v8.h \
/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include/v8-version.h \
/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include/v8config.h \
/Users/rprieto/.node-gyp/iojs-1.3.0/src/node_version.h \
/Users/rprieto/.node-gyp/iojs-1.3.0/src/node_buffer.h \
../deps/include/jibonluapi/jibonluapi.h \
../deps/include/jibonluapi/stats.h \
../deps/include/jibonluapi/parameters.h \
../deps/include/jibonluapi/error_handling.h \
../deps/include/jibonluapi/exceptions.h ../src/js_error_handling.h \
../src/js_fst.h \
/Users/rprieto/.node-gyp/iojs-1.3.0/src/node_object_wrap.h \
../src/iojs_now_macros.h
../src/js_fst.cpp:
/Users/rprieto/.node-gyp/iojs-1.3.0/src/node.h:
/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include/v8.h:
/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include/v8-version.h:
/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include/v8config.h:
/Users/rprieto/.node-gyp/iojs-1.3.0/src/node_version.h:
/Users/rprieto/.node-gyp/iojs-1.3.0/src/node_buffer.h:
../deps/include/jibonluapi/jibonluapi.h:
../deps/include/jibonluapi/stats.h:
../deps/include/jibonluapi/parameters.h:
../deps/include/jibonluapi/error_handling.h:
../deps/include/jibonluapi/exceptions.h:
../src/js_error_handling.h:
../src/js_fst.h:
/Users/rprieto/.node-gyp/iojs-1.3.0/src/node_object_wrap.h:
../src/iojs_now_macros.h:

View File

@@ -0,0 +1,30 @@
cmd_Release/obj.target/jsjibonlu/src/js_sentence_generator.o := c++ '-DNODE_GYP_MODULE_NAME=jsjibonlu' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-D_DARWIN_USE_64_BIT_INODE=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DBUILDING_NODE_EXTENSION' -I/Users/rprieto/.node-gyp/iojs-1.3.0/include/node -I/Users/rprieto/.node-gyp/iojs-1.3.0/src -I/Users/rprieto/.node-gyp/iojs-1.3.0/deps/uv/include -I/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include -I../deps/include -Os -gdwarf-2 -mmacosx-version-min=10.7 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu++0x -fno-rtti -fno-exceptions -fno-threadsafe-statics -std=c++11 -stdlib=libc++ -fexceptions -MMD -MF ./Release/.deps/Release/obj.target/jsjibonlu/src/js_sentence_generator.o.d.raw -c -o Release/obj.target/jsjibonlu/src/js_sentence_generator.o ../src/js_sentence_generator.cpp
Release/obj.target/jsjibonlu/src/js_sentence_generator.o: \
../src/js_sentence_generator.cpp \
../deps/include/jibonluapi/jibonluapi.h \
../deps/include/jibonluapi/stats.h \
../deps/include/jibonluapi/parameters.h \
../deps/include/jibonluapi/error_handling.h ../src/js_fst.h \
/Users/rprieto/.node-gyp/iojs-1.3.0/src/node.h \
/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include/v8.h \
/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include/v8-version.h \
/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include/v8config.h \
/Users/rprieto/.node-gyp/iojs-1.3.0/src/node_version.h \
/Users/rprieto/.node-gyp/iojs-1.3.0/src/node_object_wrap.h \
../src/iojs_now_macros.h ../src/js_error_handling.h \
../src/js_sentence_generator.h
../src/js_sentence_generator.cpp:
../deps/include/jibonluapi/jibonluapi.h:
../deps/include/jibonluapi/stats.h:
../deps/include/jibonluapi/parameters.h:
../deps/include/jibonluapi/error_handling.h:
../src/js_fst.h:
/Users/rprieto/.node-gyp/iojs-1.3.0/src/node.h:
/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include/v8.h:
/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include/v8-version.h:
/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include/v8config.h:
/Users/rprieto/.node-gyp/iojs-1.3.0/src/node_version.h:
/Users/rprieto/.node-gyp/iojs-1.3.0/src/node_object_wrap.h:
../src/iojs_now_macros.h:
../src/js_error_handling.h:
../src/js_sentence_generator.h:

View File

@@ -0,0 +1,32 @@
cmd_Release/obj.target/jsjibonlu/src/js_sentence_parser.o := c++ '-DNODE_GYP_MODULE_NAME=jsjibonlu' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-D_DARWIN_USE_64_BIT_INODE=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DBUILDING_NODE_EXTENSION' -I/Users/rprieto/.node-gyp/iojs-1.3.0/include/node -I/Users/rprieto/.node-gyp/iojs-1.3.0/src -I/Users/rprieto/.node-gyp/iojs-1.3.0/deps/uv/include -I/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include -I../deps/include -Os -gdwarf-2 -mmacosx-version-min=10.7 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu++0x -fno-rtti -fno-exceptions -fno-threadsafe-statics -std=c++11 -stdlib=libc++ -fexceptions -MMD -MF ./Release/.deps/Release/obj.target/jsjibonlu/src/js_sentence_parser.o.d.raw -c -o Release/obj.target/jsjibonlu/src/js_sentence_parser.o ../src/js_sentence_parser.cpp
Release/obj.target/jsjibonlu/src/js_sentence_parser.o: \
../src/js_sentence_parser.cpp ../deps/include/jibonluapi/jibonluapi.h \
../deps/include/jibonluapi/stats.h \
../deps/include/jibonluapi/parameters.h \
../deps/include/jibonluapi/error_handling.h ../src/js_fst.h \
/Users/rprieto/.node-gyp/iojs-1.3.0/src/node.h \
/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include/v8.h \
/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include/v8-version.h \
/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include/v8config.h \
/Users/rprieto/.node-gyp/iojs-1.3.0/src/node_version.h \
/Users/rprieto/.node-gyp/iojs-1.3.0/src/node_object_wrap.h \
../src/iojs_now_macros.h ../src/js_error_handling.h \
../src/js_sentence_parser.h ../src/v8_engine.h \
../deps/include/jibonluapi/exceptions.h
../src/js_sentence_parser.cpp:
../deps/include/jibonluapi/jibonluapi.h:
../deps/include/jibonluapi/stats.h:
../deps/include/jibonluapi/parameters.h:
../deps/include/jibonluapi/error_handling.h:
../src/js_fst.h:
/Users/rprieto/.node-gyp/iojs-1.3.0/src/node.h:
/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include/v8.h:
/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include/v8-version.h:
/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include/v8config.h:
/Users/rprieto/.node-gyp/iojs-1.3.0/src/node_version.h:
/Users/rprieto/.node-gyp/iojs-1.3.0/src/node_object_wrap.h:
../src/iojs_now_macros.h:
../src/js_error_handling.h:
../src/js_sentence_parser.h:
../src/v8_engine.h:
../deps/include/jibonluapi/exceptions.h:

View File

@@ -0,0 +1,29 @@
cmd_Release/obj.target/jsjibonlu/src/jsjibonluapi.o := c++ '-DNODE_GYP_MODULE_NAME=jsjibonlu' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-D_DARWIN_USE_64_BIT_INODE=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DBUILDING_NODE_EXTENSION' -I/Users/rprieto/.node-gyp/iojs-1.3.0/include/node -I/Users/rprieto/.node-gyp/iojs-1.3.0/src -I/Users/rprieto/.node-gyp/iojs-1.3.0/deps/uv/include -I/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include -I../deps/include -Os -gdwarf-2 -mmacosx-version-min=10.7 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu++0x -fno-rtti -fno-exceptions -fno-threadsafe-statics -std=c++11 -stdlib=libc++ -fexceptions -MMD -MF ./Release/.deps/Release/obj.target/jsjibonlu/src/jsjibonluapi.o.d.raw -c -o Release/obj.target/jsjibonlu/src/jsjibonluapi.o ../src/jsjibonluapi.cpp
Release/obj.target/jsjibonlu/src/jsjibonluapi.o: ../src/jsjibonluapi.cpp \
/Users/rprieto/.node-gyp/iojs-1.3.0/src/node.h \
/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include/v8.h \
/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include/v8-version.h \
/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include/v8config.h \
/Users/rprieto/.node-gyp/iojs-1.3.0/src/node_version.h \
../deps/include/jibonluapi/jibonluapi.h \
../deps/include/jibonluapi/stats.h \
../deps/include/jibonluapi/parameters.h \
../deps/include/jibonluapi/error_handling.h ../src/js_fst.h \
/Users/rprieto/.node-gyp/iojs-1.3.0/src/node_object_wrap.h \
../src/iojs_now_macros.h ../src/js_sentence_parser.h \
../src/js_sentence_generator.h
../src/jsjibonluapi.cpp:
/Users/rprieto/.node-gyp/iojs-1.3.0/src/node.h:
/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include/v8.h:
/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include/v8-version.h:
/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include/v8config.h:
/Users/rprieto/.node-gyp/iojs-1.3.0/src/node_version.h:
../deps/include/jibonluapi/jibonluapi.h:
../deps/include/jibonluapi/stats.h:
../deps/include/jibonluapi/parameters.h:
../deps/include/jibonluapi/error_handling.h:
../src/js_fst.h:
/Users/rprieto/.node-gyp/iojs-1.3.0/src/node_object_wrap.h:
../src/iojs_now_macros.h:
../src/js_sentence_parser.h:
../src/js_sentence_generator.h:

View File

@@ -0,0 +1,24 @@
cmd_Release/obj.target/jsjibonlu/src/v8_engine.o := c++ '-DNODE_GYP_MODULE_NAME=jsjibonlu' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-D_DARWIN_USE_64_BIT_INODE=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DBUILDING_NODE_EXTENSION' -I/Users/rprieto/.node-gyp/iojs-1.3.0/include/node -I/Users/rprieto/.node-gyp/iojs-1.3.0/src -I/Users/rprieto/.node-gyp/iojs-1.3.0/deps/uv/include -I/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include -I../deps/include -Os -gdwarf-2 -mmacosx-version-min=10.7 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu++0x -fno-rtti -fno-exceptions -fno-threadsafe-statics -std=c++11 -stdlib=libc++ -fexceptions -MMD -MF ./Release/.deps/Release/obj.target/jsjibonlu/src/v8_engine.o.d.raw -c -o Release/obj.target/jsjibonlu/src/v8_engine.o ../src/v8_engine.cpp
Release/obj.target/jsjibonlu/src/v8_engine.o: ../src/v8_engine.cpp \
../src/v8_engine.h /Users/rprieto/.node-gyp/iojs-1.3.0/src/node.h \
/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include/v8.h \
/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include/v8-version.h \
/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include/v8config.h \
/Users/rprieto/.node-gyp/iojs-1.3.0/src/node_version.h \
../deps/include/jibonluapi/exceptions.h \
../deps/include/jibonluapi/error_handling.h \
../deps/include/jibonluapi/jibonluapi.h \
../deps/include/jibonluapi/stats.h \
../deps/include/jibonluapi/parameters.h
../src/v8_engine.cpp:
../src/v8_engine.h:
/Users/rprieto/.node-gyp/iojs-1.3.0/src/node.h:
/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include/v8.h:
/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include/v8-version.h:
/Users/rprieto/.node-gyp/iojs-1.3.0/deps/v8/include/v8config.h:
/Users/rprieto/.node-gyp/iojs-1.3.0/src/node_version.h:
../deps/include/jibonluapi/exceptions.h:
../deps/include/jibonluapi/error_handling.h:
../deps/include/jibonluapi/jibonluapi.h:
../deps/include/jibonluapi/stats.h:
../deps/include/jibonluapi/parameters.h:

BIN
node_modules/jibo-sdk/parser/build/Release/jsjibonlu.jibo generated vendored Executable file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,15 @@
factory:city_state
factory:date
factory:state
factory:time
factory:yes_no
factory:timer
factory:world_city_country
factory:country
factory:first_name
factory:last_name
factory:music_genre
factory:digits
factory:year
factory:canada_city_province
factory:canada_province

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,4 @@
a
an
that
the

View File

@@ -0,0 +1 @@
factory:yes_no

Binary file not shown.

View File

View File

@@ -0,0 +1 @@
factory:yes_no

Binary file not shown.

View File

679
node_modules/jibo-sdk/parser/lib/e2e_tests.js generated vendored Normal file
View File

@@ -0,0 +1,679 @@
var fs = require('fs');
/********************************/
/* test fuctions */
/********************************/
function check_throw(a) {
if (!does_it_throw(a))
throw new Error('Statement did not throw, but its expected to throw');
}
function check_no_throw(a) {
if (does_it_throw(a))
throw new Error('statement is not expected to throw, but throwed');
}
function does_it_throw(a) {
var throwed = false;
try {
a();
throwed = false;
} catch(e) {
throwed = true;
}
return throwed;
}
function check_parse_ref_json(parses_json, ref_json) {
ref_obj = JSON.parse(ref_json);
parses_obj = JSON.parse(parses_json);
ref_cmp = JSON.stringify(ref_obj);
parses_cmp = JSON.stringify(parses_obj);
if (ref_cmp != parses_cmp)
throw new Error('Expecting reference to be the same as parse, but they were different')
}
/********************************/
/* Initialization */
/********************************/
var argv = process.argv;
// checking for command line arguments
if (argv.length != 4) {
console.log('Incorrect number of command line arguments');
console.log('Usage: node e2e_tests.js full_path_to_dir_containing_jsjibonlu full_path_to_datadir')
console.log('Example: node e2e_tests.js /Users/my_user/my_directory_containig_jsjibonlu/ /Users/my_user/my_directory/data');
process.exit(1);
}
// gteting install prefix
var install_prefix = argv[2];
var datadir = argv[3];
// Loading jsjibonlu library
var jsjibonlu = require(install_prefix + '/jsjibonlu');
/********************************/
/* Compiling tests */
/********************************/
// good rule format
var grm = 'TopRule = aa;'
var f = function() {jsjibonlu.compile_fst_from_text(grm, "handle:my_handle");};
check_no_throw(f);
// bad number of argumets
var f = function() {jsjibonlu.compile_fst_from_text(grm);};
check_throw(f);
// bad number of argumets
var f = function() {jsjibonlu.compile_fst_from_text("handle:my_handle");};
check_throw(f);
// bad argument types
var f = function() {jsjibonlu.compile_fst_from_text("handle:my_handle", grm);};
check_throw(f);
// bad argument types
var f = function() {jsjibonlu.compile_fst_from_text(grm, "handle:my_handle", 3);};
check_throw(f);
// bad argument types
var f = function() {jsjibonlu.compile_fst_from_text(grm, "handle:my_handle", "/filepath/file.rule");};
check_no_throw(f);
// bad rule format
var f = function() {jsjibonlu.compile_fst_from_text(grm, "handle:my_handle");};
grm = 'TopRule = aa';
check_throw(f);
// referencing factory rule
grm = 'TopRule = $factory:date;'
check_no_throw(f)
/********************************/
/* Parsing */
/********************************/
// bad number of arguments
grm = "TopRule = aa{nl='aa'};";
txt = "aaa"
var f = function() {fst = jsjibonlu.compile_fst_from_text(grm, "handle:my_handle");parser = jsjibonlu.build_sentence_parser(fst, fst);};
check_throw(f)
// incorrect argument type
// bad number of arguments
grm = "TopRule = aa{nl='aa'};";
txt = "aaa"
var f = function() {fst = jsjibonlu.compile_fst_from_text(grm, "handle:my_handle");parser = jsjibonlu.build_sentence_parser('a');};
check_throw(f)
// correct call
grm = "TopRule = aa{nl='aa'};";
txt = "aaa"
var f = function() {fst = jsjibonlu.compile_fst_from_text(grm, "handle:my_handle");parser = jsjibonlu.build_sentence_parser(fst);};
check_no_throw(f)
// incorrect argument type
// bad number of arguments
grm = "TopRule = aa{nl='aa'};";
txt = "aaa";
parses_json = '';
var f = function() {fst = jsjibonlu.compile_fst_from_text(grm, "handle:my_handle");parser = jsjibonlu.build_sentence_parser(fst);parses_json = parser.parse_sentence(txt,txt);};
check_throw(f)
// incorrect argument type
grm = "TopRule = aa{nl='aa'};";
txt = "aaa";
parses_json = '';
var f = function() {fst = jsjibonlu.compile_fst_from_text(grm, "handle:my_handle");parser = jsjibonlu.build_sentence_parser(fst);parses_json = parser.parse_sentence(fst);};
check_throw(f)
// correct parse
grm = "TopRule = aa{nl='aa'};";
txt = "aaa";
parses_json = '';
var f = function() {fst = jsjibonlu.compile_fst_from_text(grm, "handle:my_handle");parser = jsjibonlu.build_sentence_parser(fst);parses_json = parser.parse_sentence(txt)};
check_no_throw(f)
// empty parse
grm = "TopRule = aa{nl='aa'};";
txt = "aaa";
parses_json = '';
ref_json = '[]';
var f = function() {fst = jsjibonlu.compile_fst_from_text(grm, "handle:my_handle");parser = jsjibonlu.build_sentence_parser(fst); parses_json = parser.parse_sentence(txt)};
check_no_throw(f)
check_parse_ref_json(parses_json, ref_json);
// some parse
grm = "TopRule = aa{nl='aa'};";
txt = "aa";
parses_json = '';
ref_json = '[{"Input":"aa", "NLParse":{"nl":"aa"}, "heuristic_score":3, "index":0}]';
var f = function() {fst = jsjibonlu.compile_fst_from_text(grm, "handle:my_handle");parser = jsjibonlu.build_sentence_parser(fst); parses_json = parser.parse_sentence(txt)};
check_no_throw(f)
check_parse_ref_json(parses_json, ref_json);
// error with factory, unset data dir
grm = "TopRule = $factory:date{date=date._date_nl};";
txt = "aa";
parses_json = '';
var f = function() {fst = jsjibonlu.compile_fst_from_text(grm, "handle:my_handle");parser = jsjibonlu.build_sentence_parser(fst); parses_json = parser.parse_sentence(txt)};
check_throw(f)
// setting the dat_dir
jsjibonlu.remove_from_memory('handle:my_handle');
jsjibonlu.set_data_dir(datadir);
/********************************/
/* num_fsts_in_mem */
/********************************/
// incorrect call
var f = function() {num_of_fsts_at_start = jsjibonlu.num_fsts_in_mem(3);}
check_throw(f);
// incorrect call
var f = function() {num_of_fsts_at_start = jsjibonlu.num_fsts_in_mem('hi');}
check_throw(f);
// correct call
var f = function() {num_of_fsts_at_start = jsjibonlu.num_fsts_in_mem();}
check_no_throw(f);
// error with unknown factory, data dir is set
grm = "TopRule = $factory:datedate{date=datedate._date_nl};";
txt = "aa";
parses_json = '';
var f = function() {fst = jsjibonlu.compile_fst_from_text(grm, "handle:my_handle");parser = jsjibonlu.build_sentence_parser(fst); parses_json = parser.parse_sentence(txt)};
check_throw(f)
// error with known factory, unknown nl var
grm = "TopRule = $factory:date{mydate=b};";
txt = "july 29th 1995";
parses_json = '';
var f = function() {fst = jsjibonlu.compile_fst_from_text(grm, "handle:my_handle");parser = jsjibonlu.build_sentence_parser(fst); parses_json = parser.parse_sentence(txt);};
check_throw(f);
// no error
grm = "TopRule = $factory:date{date=date._date_nl};";
txt = "july 29th 1995";
parses_json = '';
ref_json = '[{"Input":"july 29th 1995", "NLParse":{"date":"07\\/29\\/1995"}, "heuristic_score":15, "index":0}]';
var f = function() {fst = jsjibonlu.compile_fst_from_text(grm, "handle:my_handle");parser = jsjibonlu.build_sentence_parser(fst); parses_json = parser.parse_sentence(txt)};
check_no_throw(f)
check_parse_ref_json(parses_json, ref_json);
/********************************/
/* saving fst */
/********************************/
// wrong number of arguments
grm = "TopRule = $factory:date{date=date._date_nl};";
var f = function() {fst = jsjibonlu.compile_fst_from_text(grm, "handle:my_handle");fst.save_fst("my_fst_file.fst", 1)};
check_throw(f)
// wrong type of argument
grm = "TopRule = $factory:date{date=date._date_nl};";
var f = function() {fst = jsjibonlu.compile_fst_from_text(grm, "handle:my_handle");fst.save_fst(1)};
check_throw(f)
// correct call
grm = "TopRule = $factory:date{date=date._date_nl};";
var f = function() {fst = jsjibonlu.compile_fst_from_text(grm, "handle:my_handle");fst.save_fst("my_fst_file.fst")};
check_no_throw(f)
/********************************/
/* opening fst file */
/********************************/
// incorrect number of arguments
var f = function() {fst = jsjibonlu.read_fst_from_uri("file:my_fst_file.fst", 1);};
check_throw(f)
// wrong type of arguments
var f = function() {fst = jsjibonlu.read_fst_from_uri(1);};
check_throw(f)
// non existing file type of arguments
var f = function() {fst = jsjibonlu.read_fst_from_uri("file:my_fst_file2.fst");};
check_throw(f)
// correct call
var f = function() {fst = jsjibonlu.read_fst_from_uri("file:my_fst_file.fst");};
check_no_throw(f)
/********************************/
/* parsingfrom fst file */
/********************************/
// correct call
txt = "july 29th 1995";
parses_json = '';
ref_json = '[{"Input":"july 29th 1995", "NLParse":{"date":"07\\/29\\/1995"}, "heuristic_score":15, "index":0}]';
var f = function() {fst = jsjibonlu.read_fst_from_uri("file:my_fst_file.fst");parser = jsjibonlu.build_sentence_parser(fst);parses_json = parser.parse_sentence(txt);};
check_no_throw(f);
check_parse_ref_json(parses_json, ref_json);
/********************************/
/* parsingfrom fst in memory */
/********************************/
// trying to parse from a removed handle from memory
grm = "TopRule = $factory:date{date=date._date_nl};";
txt = "july 29th 1995"
parses_json = '';
ref_json = '[{"Input":"july 29th 1995", "NLParse":{"date":"07\\/29\\/1995"}, "heuristic_score":15, "index":0}]';
var f = function() {fst = jsjibonlu.compile_fst_from_text(grm, "handle:my_handle");fst1 = jsjibonlu.read_fst_from_uri("handle:my_handle");parser = jsjibonlu.build_sentence_parser(fst1);parses_json = parser.parse_sentence(txt);};
check_no_throw(f)
check_parse_ref_json(parses_json, ref_json);
/************************************/
/* parsing several fsts in parallel */
/************************************/
// correct call
txt = "july 29th 1995";
parses_json = '';
ref_json = '[{"Input":"july 29th 1995", "NLParse":{"date":"07\\/29\\/1995"}, "heuristic_score":15, "index":0}, {"Input":"july 29th 1995", "NLParse":{"july":"july"}, "heuristic_score":5, "index":1}]';
second_rule = 'TopRule = $* july {july = \'july\'} $*;';
var f = function() {fst1 = jsjibonlu.read_fst_from_uri("file:my_fst_file.fst");fst2 = jsjibonlu.compile_fst_from_text(second_rule, "handle:my_handle");arr=[fst1, fst2];parser = jsjibonlu.build_sentence_parser(arr);parses_json = parser.parse_sentence(txt);};
check_no_throw(f);
check_parse_ref_json(parses_json, ref_json);
/************************************/
/* reading from fst file */
/************************************/
// correct call
txt = "july 29th 1995";
parses_json = '';
ref_json = '[{"Input":"july 29th 1995", "NLParse":{"date":"07\\/29\\/1995"}, "heuristic_score":15, "index":0}]';
var f = function() {
fst = jsjibonlu.load_fst_from_fst_file("./my_fst_file.fst", "handle:my_handle_from_fst_file");
parser = jsjibonlu.build_sentence_parser(fst);
parses_json = parser.parse_sentence(txt);
};
f();
check_no_throw(f);
check_parse_ref_json(parses_json, ref_json);
// correct call, testing handle
txt = "july 29th 1995";
parses_json = '';
ref_json = '[{"Input":"july 29th 1995", "NLParse":{"date":"07\\/29\\/1995"}, "heuristic_score":15, "index":0}]';
var f = function() {
fst = jsjibonlu.load_fst_from_fst_file("./my_fst_file.fst", "handle:my_handle_from_fst_file_2");
fst_2 = jsjibonlu.read_fst_from_uri("handle:my_handle_from_fst_file_2");
parser = jsjibonlu.build_sentence_parser(fst_2);
parses_json = parser.parse_sentence(txt);
};
f();
check_no_throw(f);
check_parse_ref_json(parses_json, ref_json);
// wrong number of arguments
var f = function() {
fst = jsjibonlu.load_fst_from_fst_file("./my_fst_file.fst");
};
check_throw(f);
// wrong number of argumets
var f = function() {
fst = jsjibonlu.load_fst_from_fst_file("./my_fst_file.fst", "handle:my_handle_fst_file_3", "handle:my_handle_fst_file_3");
};
check_throw(f);
// file that does not exist
var f = function() {
fst = jsjibonlu.load_fst_from_fst_file("./my_fst_file_does_not_exist.fst", "handle:my_handle_fst_file_3");
};
check_throw(f);
// wrong type
var f = function() {
fst = jsjibonlu.load_fst_from_fst_file(3, "handle:my_handle_fst_file_3");
};
check_throw(f);
// wrong type
var f = function() {
fst = jsjibonlu.load_fst_from_fst_file("./my_fst_file.fst", 3);
};
check_throw(f);
/************************************/
/* parsing with union fst */
/************************************/
// correct call
txt = "july 29th 1995";
parses_json = '';
ref_json = '[{"Input":"july 29th 1995", "NLParse":{"date":"07\\/29\\/1995","union_original_fst_name":"file:my_fst_file.fst"}, "heuristic_score":15, "index":0}]';
second_rule = 'TopRule = $* july {july = \'july\'} $*;';
var f = function() {
fst2 = jsjibonlu.compile_fst_from_text(second_rule, "handle:my_handle");
arr=["file:my_fst_file.fst", "handle:my_handle"];
union_fst = jsjibonlu.union_fst(arr, "handle:my_union_handle");
parser = jsjibonlu.build_sentence_parser(union_fst);
parses_json = parser.parse_sentence(txt);
};
f();
check_no_throw(f);
check_parse_ref_json(parses_json, ref_json);
// correct call, testing handle
txt = "july 29th 1995";
parses_json = '';
ref_json = '[{"Input":"july 29th 1995", "NLParse":{"date":"07\\/29\\/1995", "union_original_fst_name":"file:my_fst_file.fst"}, "heuristic_score":15, "index":0}]';
second_rule = 'TopRule = $* july {july = \'july\'} $*;';
var f = function() {
fst2 = jsjibonlu.compile_fst_from_text(second_rule, "handle:my_handle");
arr=["file:my_fst_file.fst", "handle:my_handle"];
union_fst = jsjibonlu.union_fst(arr, "handle:my_union_handle");
union_fst_2 = jsjibonlu.read_fst_from_uri("handle:my_union_handle");
parser = jsjibonlu.build_sentence_parser(union_fst_2);
parses_json = parser.parse_sentence(txt);
};
f();
check_no_throw(f);
check_parse_ref_json(parses_json, ref_json);
// wrong number of arguments
txt = "july 29th 1995";
parses_json = '';
ref_json = '[{"Input":"july 29th 1995", "NLParse":{"date":"07\\/29\\/1995"}, "heuristic_score":15, "index":0}]';
second_rule = 'TopRule = $* july {july = \'july\'} $*;';
var f = function() {
fst2 = jsjibonlu.compile_fst_from_text(second_rule, "handle:my_handle");
arr=["file:my_fst_file.fst", "handle:my_handle"];
union_fst = jsjibonlu.union_fst(arr);
parser = jsjibonlu.build_sentence_parser(union_fst);
parses_json = parser.parse_sentence(txt);
};
check_throw(f);
// incorrect argument
txt = "july 29th 1995";
parses_json = '';
ref_json = '[{"Input":"july 29th 1995", "NLParse":{"date":"07\\/29\\/1995"}, "heuristic_score":15, "index":0}]';
second_rule = 'TopRule = $* july {july = \'july\'} $*;';
var f = function() {
fst2 = jsjibonlu.compile_fst_from_text(second_rule, "handle:my_handle");
arr=["file:my_fst_file.fst", "handle:my_handle"];
union_fst = jsjibonlu.union_fst(arr, arr);
parser = jsjibonlu.build_sentence_parser(union_fst);
parses_json = parser.parse_sentence(txt);
};
check_throw(f);
// incorrect argument
txt = "july 29th 1995";
parses_json = '';
ref_json = '[{"Input":"july 29th 1995", "NLParse":{"date":"07\\/29\\/1995"}, "heuristic_score":15, "index":0}]';
second_rule = 'TopRule = $* july {july = \'july\'} $*;';
var f = function() {
fst2 = jsjibonlu.compile_fst_from_text(second_rule, "handle:my_handle");
arr=["file:my_fst_file.fst", "handle:my_handle"];
union_fst = jsjibonlu.union_fst(1, "handle:my_union_handle");
parser = jsjibonlu.build_sentence_parser(union_fst);
parses_json = parser.parse_sentence(txt);
};
check_throw(f);
/************************************/
/* dumping fst in array of ints */
/************************************/
// correct call
rule = 'TopRule = $* july {july = \'july\'} $*;';
fs = require('fs');
var f = function() {fst1 = jsjibonlu.compile_fst_from_text(rule, "handle:my_handle");
fst1.save_fst("file-to-cmp1.fst");
arr = fst1.to_buffer();
saved_arr = fs.readFileSync("./file-to-cmp1.fst")
if (arr.length != saved_arr.length)
throw new Error("Length of buffers is different");
for (i = 0; i < arr.length; ++i) {
if (arr[i] != saved_arr[i])
throw new Error("Buffers differ");
}
};
check_no_throw(f);
// wrong number of arguments
rule = 'TopRule = $* july {july = \'july\'} $*;';
fs = require('fs');
var f = function() {fst1 = jsjibonlu.compile_fst_from_text(rule, "handle:my_handle");
fst1.save_fst("file-to-cmp1.fst");
arr = new Buffer(fst1.to_buffer("hello"));
saved_arr = fs.readFileSync("./file-to-cmp1.fst")
if (arr.length != saved_arr.length)
throw new Error("Length of buffers is different");
for (i = 0; i < arr.length; ++i) {
if (arr[i] != saved_arr[i])
throw new Error("Buffers differ");
}
};
check_throw(f);
/*******************************************/
/* reading handle rule inside another rule */
/*******************************************/
grm = "TopRule = $handle:hndl{nl=hndl._nl};";
hndl = "TopRule = julius{_nl='julius'}|marcus{_nl='marcus'};";
var f = function() {fst = jsjibonlu.compile_fst_from_text(grm, "handle:my_handle");fst1 = jsjibonlu.compile_fst_from_text(hndl, "handle:hndl");parser = jsjibonlu.build_sentence_parser(fst); parses_json = parser.parse_sentence(txt)};
txt = "julius";
parses_json = '';
ref_json = '[{"Input":"julius", "NLParse":{"nl":"julius"}, "heuristic_score":7, "index":0}]';
check_no_throw(f);
check_parse_ref_json(parses_json, ref_json);
txt = "marcus";
parses_json = '';
ref_json = '[{"Input":"marcus", "NLParse":{"nl":"marcus"}, "heuristic_score":7, "index":0}]';
check_no_throw(f);
check_parse_ref_json(parses_json, ref_json);
/********************************/
/* Removing fst from memory */
/********************************/
// wrong number of arguments
grm = "TopRule = $factory:date{date=date._date_nl};";
var f = function() {fst = jsjibonlu.compile_fst_from_text(grm, "handle:my_handle");jsjibonlu.remove_from_memory("handle:my_handle", 1)};
check_throw(f)
// wrong type of argument
grm = "TopRule = $factory:date{date=date._date_nl};";
var f = function() {fst = jsjibonlu.compile_fst_from_text(grm, "handle:my_handle");jsjibonlu.remove_from_memory(1)};
check_throw(f)
// correct call
grm = "TopRule = $factory:date{date=date._date_nl};";
var f = function() {fst = jsjibonlu.compile_fst_from_text(grm, "handle:my_handle");jsjibonlu.remove_from_memory("handle:my_handle")};
check_no_throw(f)
// trying to parse from a removed handle from memory
grm = "TopRule = $factory:date{date=date._date_nl};";
txt = "july 29th 1995"
parses_json = '';
var f = function() {fst = jsjibonlu.compile_fst_from_text(grm, "handle:my_handle");jsjibonlu.remove_from_memory("handle:my_handle");fst2 = jsjibonlu.read_fst_from_uri("handle:my_handle");};
check_throw(f)
/********************************/
/* syntax check */
/********************************/
// wrong number of arguments
grm = "TopRule = $factory:date{date=date._date_nl};";
var f = function() {jsjibonlu.syntax_check(grm, "handle:my_handle");};
check_throw(f)
// wrong type of argument
grm = "TopRule = $factory:date{date=date._date_nl};";
var f = function() {jsjibonlu.syntax_check(1);};
check_throw(f)
// correct call
grm = "TopRule = $factory:date{date=date._date_nl};";
var f = function() {jsjibonlu.syntax_check(grm);};
check_no_throw(f)
// bad argument types
var f = function() {jsjibonlu.syntax_check(grm, 3);};
check_throw(f);
// bad argument types
var f = function() {jsjibonlu.syntax_check(grm, "/filepath/file.rule");};
check_no_throw(f);
// with include file
grm = "TopRule = $include:./myfile.rule:my_rule;";
fs.writeFileSync("./myfile.rule","my_rule = aa;\n");
jsjibonlu.syntax_check(grm, process.cwd() + "/file.rule");
var f = function() {jsjibonlu.syntax_check(grm, process.cwd() + "/file.rule");};
check_no_throw(f);
// wrong syntax
grm = "TopRule = $factory:date{date=date._date_nl}";
var f = function() {jsjibonlu.syntax_check(grm);};
check_throw(f)
// undefined rule
grm = "TopRule = $a;"
var f = function() {jsjibonlu.syntax_check(grm);};
check_throw(f)
/********************************/
/* fst error behavior */
/********************************/
// Wrong number of arguments
var f = function() {jsjibonlu.set_fst_error_behavior(0);};
check_throw(f);
// Correct number of arguments
var f = function() {jsjibonlu.set_fst_error_behavior();};
check_no_throw(f);
// Opening valid fst file
var f = function() {fst = jsjibonlu.read_fst_from_uri("file:my_fst_file.fst");};
check_no_throw(f);
// Writing incorrect fst file and attempting to open it
fs.writeFile('./my_normal_text_file.fst', "hello there");
var f = function() {fst = jsjibonlu.read_fst_from_uri("file:my_normal_text_file.fst");};
console.log('**** Expected Error Message: In the next line you will see a std::cerr error message, output by openfst, but you can ignore it')
check_throw(f);
console.log('**** End of Exepcted Error Message')
/********************************/
/* javascript nl returns */
/********************************/
grm = "TopRule = $* $weather $* ;\n";
grm += "weather = weather{%nl='weather'%} {%cities=[]%} *(+(in|and|or) $city{%cities.push(this.city.nl)%});\n";
grm += "city = (palo alto){% this.nl = 'palo alto' %}|(sunnyvale){%this.nl = 'sunnyvale'%}|(los altos){%this.nl = 'los altos'%}|(cupertino){%this.nl = 'cupertino'%};";
txt = "weather in palo alto in cupertino and in sunnyvale"
ref_json = '[{"Input":"weather in palo alto in cupertino and in sunnyvale", "NLParse":{"nl":"weather","cities":["palo alto","cupertino","sunnyvale"]}, "heuristic_score":51, "index":0}]';
var f = function() {fst = jsjibonlu.compile_fst_from_text(grm, "handle:my_handle");parser = jsjibonlu.build_sentence_parser(fst);parses_json = parser.parse_sentence(txt);};
check_no_throw(f);
check_parse_ref_json(ref_json, parses_json);
/*******************************/
/* reset_memory */
/*******************************/
// incorrect call
var f = function() {jsjibonlu.reset_memory(3);}
check_throw(f);
// incorrect call
var f = function() {jsjibonlu.reset_memory('hi');}
check_throw(f);
// correct call
var f = function() {jsjibonlu.reset_memory()};
check_no_throw(f);
// compiling a couple of rules
grm = "TopRule = aa{nl='aa'};";
handle = 'handle:my_handle1';
var f = function() {jsjibonlu.compile_fst_from_text(grm, handle);};
check_no_throw(f);
handle = 'handle:my_handle2';
check_no_throw(f);
var f = function() {var n = jsjibonlu.num_fsts_in_mem(); if (n != num_of_fsts_at_start + 2) { throw new Error('Error in num_fsts_in_mem')} }
check_no_throw(f);
var f = function() {jsjibonlu.reset_memory(); var n = jsjibonlu.num_fsts_in_mem(); if (n != num_of_fsts_at_start) { throw new Error('Error in reset_memory')} }
check_no_throw(f);
/*******************************/
/* change_locale */
/*******************************/
// incorrect call wrong number of arguments
var f = function() {jsjibonlu.change_locale('jp-jp', 'jp-jp')};
check_throw(f);
// incorrect call wrong number of arguments
var f = function() {jsjibonlu.change_locale(3)};
check_throw(f);
// correct number of arguments incorrect locale
var f = function() {jsjibonlu.change_locale('incorrect-locale')};
check_throw(f);
// Inputing an incorrect locale causes all factory fsts to get unloaded
var f = function() {var n = jsjibonlu.num_fsts_in_mem(); if (n != 0) { throw new Error('Error in setting locale')} }
check_no_throw(f);
// Reseting datadir
var f = function() { jsjibonlu.set_data_dir(datadir);};
check_no_throw(f);
var f = function() {var n = jsjibonlu.num_fsts_in_mem(); if (n != num_of_fsts_at_start) { throw new Error('Error in setting locale and resetting data_dir')} }
check_no_throw(f);
// correct call
var f = function() {jsjibonlu.change_locale('jp-jp')};
check_no_throw(f);
// parsing
grm = "TopRule = [$factory:yes_no{% nl = this.yes_no._nl %}];";
txt = "はい";
parses_json = '';
ref_json = '[{"Input":"はい", "NLParse":{"nl":"yes"}, "heuristic_score":7, "index":0}]';
var f = function() {fst = jsjibonlu.compile_fst_from_text(grm, "handle:my_handle");parser = jsjibonlu.build_sentence_parser(fst); parses_json = parser.parse_sentence(txt)};
check_no_throw(f)
check_parse_ref_json(parses_json, ref_json);
// correct call
var f = function() {jsjibonlu.change_locale('zh-cn')};
check_no_throw(f);
// parsing
grm = "TopRule = [$factory:yes_no{% nl = this.yes_no._nl %}];";
txt = "是";
parses_json = '';
ref_json = '[{"Input":"是", "NLParse":{"nl":"yes"}, "heuristic_score":4, "index":0}]';
var f = function() {fst = jsjibonlu.compile_fst_from_text(grm, "handle:my_handle");parser = jsjibonlu.build_sentence_parser(fst); parses_json = parser.parse_sentence(txt)};
check_no_throw(f)
check_parse_ref_json(parses_json, ref_json);
// removing handle from memory
var f = function() {jsjibonlu.remove_from_memory('handle:my_handle');}
check_no_throw(f);
// bringing locale back to en-us
var f = function() {jsjibonlu.change_locale('en-us')};
check_no_throw(f);
var f = function() {var n = jsjibonlu.num_fsts_in_mem(); if (n != num_of_fsts_at_start) { throw new Error('Error in setting locale and resetting data_dir')} }
check_no_throw(f);
console.log('\n\n\nSuccess');

223
node_modules/jibo-sdk/parser/lib/example.js generated vendored Normal file
View File

@@ -0,0 +1,223 @@
var fs = require('fs');
//////////////////////////
// Library Initialization
//////////////////////////
// checking for command line arguments
var argv = process.argv;
if (argv.length != 4) {
console.log('Incorrect number of command line arguments');
console.log('Usage: node example.js full_path_to_dir_containing_jsjibonlu full_path_to_datadir')
console.log('Example: node example.js /Users/my_user/my_directory_containig_jsjibonlu/ /Users/my_user/my_directory/data');
process.exit(1);
}
// gteting install prefix
var install_prefix = argv[2];
var datadir = argv[3];
// Loading jsjibonlu library
var jsjibonlu = require(install_prefix + '/jsjibonlu');
// Setting datapath (directory with factory rules
// and word lists
jsjibonlu.set_data_dir(datadir)
// Setting fst error behavior so that it does not crash
// every time there is an error
jsjibonlu.set_fst_error_behavior();
//////////////////////////
// Compiling a rule
//////////////////////////
// Rule to be compiled
var grm = "TopRule = $* hello{nl='hello'}|goodbye{nl='goodbye'} $* $factory:date{date=date._date_nl} $* ;";
// Compiling rule (use a handle name)
var fst1 = jsjibonlu.compile_fst_from_text(grm, "handle:my_handle");
//////////////////////////
// Parsing
//////////////////////////
// Creating rule parser
var parser = jsjibonlu.build_sentence_parser(fst1);
// Parsing sentence
var sentence = "aaaa hello and the day is july the 29th of the year 1995 yeah";
var parses_json = parser.parse_sentence(sentence);
var parses_obj = JSON.parse(parses_json);
console.log("*** These are the parses of sentence:" + sentence)
console.log(parses_obj)
//////////////////////////
// Parsing from an fst that is already
// in memory
//////////////////////////
var fst4 = jsjibonlu.read_fst_from_uri("handle:my_handle");
var parser = jsjibonlu.build_sentence_parser(fst4);
var sentence = "aaaa hello and the day is july the 29th of the year 1995 yeah";
var parses_json = parser.parse_sentence(sentence);
var parses_obj = JSON.parse(parses_json);
console.log("*** These are the parses of sentence:" + sentence)
console.log(parses_obj)
//////////////////////////
// Saving compiled fst
//////////////////////////
// Saving compiled rule
fst1.save_fst("myfst.fst");
//////////////////////////
// getting buffer from copiled fst
//////////////////////////
// getting buffer
buf = fst1.to_buffer();
console.log("*** example of fst returned as a buffer");
console.log(buf);
//////////////////////////
// Openingfst from file
//////////////////////////
var fst2 = jsjibonlu.read_fst_from_uri("file:myfst.fst");
var fst3 = jsjibonlu.load_fst_from_fst_file("./myfst.fst", "handle:my_fst_file_handle");
//////////////////////////
// Parsing Using fst in parallel
//////////////////////////
// Creating parallel parser
fsts = [fst1, fst2];
var parser = jsjibonlu.build_sentence_parser(fsts);
// Parsing sentence
var sentence = "aaaa hello and the day is july the 29th of the year 1995 yeah";
var parses_json = parser.parse_sentence(sentence);
var parses_obj = JSON.parse(parses_json);
console.log("*** These are the parses of sentence:" + sentence)
console.log(parses_obj)
//////////////////////////
// Parsing with union fst
//////////////////////////
// grms
var grm_union_1 = "TopRule = $* hello{nl='hello'}|goodbye{nl='goodbye'} $* $factory:date{date=date._date_nl} $* ;";
var grm_union_2 = "TopRule = $* here{nl='here'}|there{nl='there'} $* $factory:date{date=date._date_nl} $* ;";
// Compiling rule (use a handle name)
var fst_union_part1 = jsjibonlu.compile_fst_from_text(grm_union_1, "handle:my_handle_union_1");
var fst_union_part2 = jsjibonlu.compile_fst_from_text(grm_union_2, "handle:my_handle_union_2");
// get the union
var fst_union = jsjibonlu.union_fst(["handle:my_handle_union_1", "handle:my_handle_union_2"], "handle:my_handle_union_handle");
// remove parts from memory
jsjibonlu.remove_from_memory("handle:my_handle_union_1");
jsjibonlu.remove_from_memory("handle:my_handle_union_2");
// parse
var parser_union = jsjibonlu.build_sentence_parser(fst_union);
var parsed_union = parser_union.parse_sentence("hello july 31st 1995");
var parsed_union = parser_union.parse_sentence("here july 31st 1995");
///////////////////////////
// Removing rom memory
//////////////////////////
// Atempting to remove from memory a uri that does not exist
// will not throw an error
jsjibonlu.remove_from_memory("file:myfst.fst");
jsjibonlu.remove_from_memory("handle:my_handle");
// the statement in the following line will fail, since it has been removed from memory:
// var fst3 = jsjibonlu.read_fst_from_uri("handle:my_handle");
///////////////////////////
// syntax check (without compiling)
//////////////////////////
// The only difference between compile_fst_from_text and
// syntax_check is that syntax_check does not compile the
// fst. all the syntax checks are exactly the same.
// compile_fst_from_text throws exactly the same errors
// (in the same json format) when finding syntax errors
// correcty syntax (does not throw)
jsjibonlu.syntax_check(grm);
// incorrect syntax (does throw)
var wrong_rule = "TopRule = a b c $a {ret='a'}; a = a {m='b};"
try {
jsjibonlu.syntax_check(wrong_rule)
} catch (e) {
err_obj = JSON.parse(e.message);
console.log("*** Example of compilation error object:");
console.log(err_obj);
console.log("*** example of error member in the error object:");
console.log(err_obj.info.msg);
}
// Rule to be compiled
var grm = "TopRule = $* hello{nl='hello'}|goodbye{nl='goodbye'} $* $factory:date{date=date._date_nl} $* ;";
// Compiling rule (use a handle name)
var fst1 = jsjibonlu.compile_fst_from_text(grm, "handle:my_handle");
//////////////////////////
// Parsing
//////////////////////////
// Compiling rule (use a handle name)
grm = "TopRule = $handle:hndl{nl=hndl._nl};";
hndl = "TopRule = julius{_nl='julius'}|marcus{_nl='marcus'};";
var fst1 = jsjibonlu.compile_fst_from_text(grm, "handle:my_handle");
var fst2 = jsjibonlu.compile_fst_from_text(hndl, "handle:hndl");
var parser = jsjibonlu.build_sentence_parser(fst1);
var sentence = 'julius';
console.log("*** Example parsing with handle rules referenced inside another rule:");
var parses_json = parser.parse_sentence(sentence);
console.log(parses_json);
var sentence = 'marcus';
var parses_json = parser.parse_sentence(sentence);
console.log(parses_json);
///////////////////////
// With include files
///////////////////////
grm = "TopRule = $include:./myfile.rule:my_rule;";
fs.writeFileSync("./myfile.rule","my_rule = aa;\n");
jsjibonlu.syntax_check(grm, process.cwd() + "/file.rule");
var f = function() {jsjibonlu.syntax_check(grm, process.cwd() + "/file.rule");};
////////////////////////
// reset memory example
////////////////////////
// reset memory eliminates all fsts from memory, except for factories
jsjibonlu.reset_memory();
////////////////////////
// change locale example
////////////////////////
jsjibonlu.reset_memory();
jsjibonlu.change_locale('zh-cn');
grm = "TopRule = [$factory:yes_no{% nl = this.yes_no._nl %}];";
txt = "是";
var fst1 = jsjibonlu.compile_fst_from_text(grm, "handle:my_handle");
var parser = jsjibonlu.build_sentence_parser(fst1);
var parses_json = parser.parse_sentence(txt);
console.log("*** Example parsing with different locale");
console.log(parses_json);
////////////////////////
// locale back to en-us
////////////////////////
jsjibonlu.reset_memory();
jsjibonlu.change_locale('en-us');

1
node_modules/jibo-sdk/parser/lib/main.js generated vendored Normal file
View File

@@ -0,0 +1 @@
module.exports = module.require('../build/Release/jsjibonlu');

681
node_modules/jibo-sdk/resources/crew/dummy-crew.rule generated vendored Normal file
View File

@@ -0,0 +1,681 @@
TopRule =
([george?(?(\')s)])
{_users='uid0001'}
{_fields='f'}
|
(george [jetson?(?(\')s)])
{_users='uid0001'}
{_fields='fl'}
|
(george jetson [dad?(?(\')s)])
{_users='uid0001'}
{_fields='fln'}
|
(george [dad?(?(\')s)])
{_users='uid0001'}
{_fields='fn'}
|
(george dad [jetson?(?(\')s)])
{_users='uid0001'}
{_fields='fnl'}
|
([jetson?(?(\')s)])
{_users='uid0001,uid0002,uid0003,uid0004,uid0005'}
{_fields='l,l,l,l,l'}
|
(jetson [dad?(?(\')s)])
{_users='uid0001'}
{_fields='ln'}
|
(jetson dad [george?(?(\')s)])
{_users='uid0001'}
{_fields='lnf'}
|
(jetson [george?(?(\')s)])
{_users='uid0001'}
{_fields='lf'}
|
(jetson george [dad?(?(\')s)])
{_users='uid0001'}
{_fields='lfn'}
|
([dad?(?(\')s)])
{_users='uid0001'}
{_fields='n'}
|
(dad [george?(?(\')s)])
{_users='uid0001'}
{_fields='nf'}
|
(dad george [jetson?(?(\')s)])
{_users='uid0001'}
{_fields='nfl'}
|
(dad [jetson?(?(\')s)])
{_users='uid0001'}
{_fields='nl'}
|
(dad jetson [george?(?(\')s)])
{_users='uid0001'}
{_fields='nlf'}
|
([jane?(?(\')s)])
{_users='uid0002'}
{_fields='f'}
|
(jane [jetson?(?(\')s)])
{_users='uid0002'}
{_fields='fl'}
|
(jane jetson [mom?(?(\')s)])
{_users='uid0002'}
{_fields='fln'}
|
(jane [mom?(?(\')s)])
{_users='uid0002'}
{_fields='fn'}
|
(jane mom [jetson?(?(\')s)])
{_users='uid0002'}
{_fields='fnl'}
|
(jetson [mom?(?(\')s)])
{_users='uid0002'}
{_fields='ln'}
|
(jetson mom [jane?(?(\')s)])
{_users='uid0002'}
{_fields='lnf'}
|
(jetson [jane?(?(\')s)])
{_users='uid0002'}
{_fields='lf'}
|
(jetson jane [mom?(?(\')s)])
{_users='uid0002'}
{_fields='lfn'}
|
([mom?(?(\')s)])
{_users='uid0002'}
{_fields='n'}
|
(mom [jane?(?(\')s)])
{_users='uid0002'}
{_fields='nf'}
|
(mom jane [jetson?(?(\')s)])
{_users='uid0002'}
{_fields='nfl'}
|
(mom [jetson?(?(\')s)])
{_users='uid0002'}
{_fields='nl'}
|
(mom jetson [jane?(?(\')s)])
{_users='uid0002'}
{_fields='nlf'}
|
([elroy?(?(\')s)])
{_users='uid0003'}
{_fields='f'}
|
(elroy [john?(?(\')s)])
{_users='uid0003'}
{_fields='fm'}
|
(elroy john [jetson?(?(\')s)])
{_users='uid0003'}
{_fields='fml'}
|
(elroy john jetson cool [boy?(?(\')s)])
{_users='uid0003'}
{_fields='fmln'}
|
(elroy john cool [boy?(?(\')s)])
{_users='uid0003'}
{_fields='fmn'}
|
(elroy john cool boy [jetson?(?(\')s)])
{_users='uid0003'}
{_fields='fmnl'}
|
(elroy [jetson?(?(\')s)])
{_users='uid0003'}
{_fields='fl'}
|
(elroy jetson cool [boy?(?(\')s)])
{_users='uid0003'}
{_fields='fln'}
|
(elroy jetson cool boy [john?(?(\')s)])
{_users='uid0003'}
{_fields='flnm'}
|
(elroy jetson [john?(?(\')s)])
{_users='uid0003'}
{_fields='flm'}
|
(elroy jetson john cool [boy?(?(\')s)])
{_users='uid0003'}
{_fields='flmn'}
|
(elroy cool [boy?(?(\')s)])
{_users='uid0003'}
{_fields='fn'}
|
(elroy cool boy [john?(?(\')s)])
{_users='uid0003'}
{_fields='fnm'}
|
(elroy cool boy john [jetson?(?(\')s)])
{_users='uid0003'}
{_fields='fnml'}
|
(elroy cool boy [jetson?(?(\')s)])
{_users='uid0003'}
{_fields='fnl'}
|
(elroy cool boy jetson [john?(?(\')s)])
{_users='uid0003'}
{_fields='fnlm'}
|
([john?(?(\')s)])
{_users='uid0003'}
{_fields='m'}
|
(john [jetson?(?(\')s)])
{_users='uid0003'}
{_fields='ml'}
|
(john jetson cool [boy?(?(\')s)])
{_users='uid0003'}
{_fields='mln'}
|
(john jetson cool boy [elroy?(?(\')s)])
{_users='uid0003'}
{_fields='mlnf'}
|
(john jetson [elroy?(?(\')s)])
{_users='uid0003'}
{_fields='mlf'}
|
(john jetson elroy cool [boy?(?(\')s)])
{_users='uid0003'}
{_fields='mlfn'}
|
(john cool [boy?(?(\')s)])
{_users='uid0003'}
{_fields='mn'}
|
(john cool boy [elroy?(?(\')s)])
{_users='uid0003'}
{_fields='mnf'}
|
(john cool boy elroy [jetson?(?(\')s)])
{_users='uid0003'}
{_fields='mnfl'}
|
(john cool boy [jetson?(?(\')s)])
{_users='uid0003'}
{_fields='mnl'}
|
(john cool boy jetson [elroy?(?(\')s)])
{_users='uid0003'}
{_fields='mnlf'}
|
(john [elroy?(?(\')s)])
{_users='uid0003'}
{_fields='mf'}
|
(john elroy [jetson?(?(\')s)])
{_users='uid0003'}
{_fields='mfl'}
|
(john elroy jetson cool [boy?(?(\')s)])
{_users='uid0003'}
{_fields='mfln'}
|
(john elroy cool [boy?(?(\')s)])
{_users='uid0003'}
{_fields='mfn'}
|
(john elroy cool boy [jetson?(?(\')s)])
{_users='uid0003'}
{_fields='mfnl'}
|
(jetson cool [boy?(?(\')s)])
{_users='uid0003'}
{_fields='ln'}
|
(jetson cool boy [elroy?(?(\')s)])
{_users='uid0003'}
{_fields='lnf'}
|
(jetson cool boy elroy [john?(?(\')s)])
{_users='uid0003'}
{_fields='lnfm'}
|
(jetson cool boy [john?(?(\')s)])
{_users='uid0003'}
{_fields='lnm'}
|
(jetson cool boy john [elroy?(?(\')s)])
{_users='uid0003'}
{_fields='lnmf'}
|
(jetson [elroy?(?(\')s)])
{_users='uid0003'}
{_fields='lf'}
|
(jetson elroy [john?(?(\')s)])
{_users='uid0003'}
{_fields='lfm'}
|
(jetson elroy john cool [boy?(?(\')s)])
{_users='uid0003'}
{_fields='lfmn'}
|
(jetson elroy cool [boy?(?(\')s)])
{_users='uid0003'}
{_fields='lfn'}
|
(jetson elroy cool boy [john?(?(\')s)])
{_users='uid0003'}
{_fields='lfnm'}
|
(jetson [john?(?(\')s)])
{_users='uid0003'}
{_fields='lm'}
|
(jetson john cool [boy?(?(\')s)])
{_users='uid0003'}
{_fields='lmn'}
|
(jetson john cool boy [elroy?(?(\')s)])
{_users='uid0003'}
{_fields='lmnf'}
|
(jetson john [elroy?(?(\')s)])
{_users='uid0003'}
{_fields='lmf'}
|
(jetson john elroy cool [boy?(?(\')s)])
{_users='uid0003'}
{_fields='lmfn'}
|
(cool [boy?(?(\')s)])
{_users='uid0003'}
{_fields='n'}
|
(cool boy [elroy?(?(\')s)])
{_users='uid0003'}
{_fields='nf'}
|
(cool boy elroy [john?(?(\')s)])
{_users='uid0003'}
{_fields='nfm'}
|
(cool boy elroy john [jetson?(?(\')s)])
{_users='uid0003'}
{_fields='nfml'}
|
(cool boy elroy [jetson?(?(\')s)])
{_users='uid0003'}
{_fields='nfl'}
|
(cool boy elroy jetson [john?(?(\')s)])
{_users='uid0003'}
{_fields='nflm'}
|
(cool boy [john?(?(\')s)])
{_users='uid0003'}
{_fields='nm'}
|
(cool boy john [jetson?(?(\')s)])
{_users='uid0003'}
{_fields='nml'}
|
(cool boy john jetson [elroy?(?(\')s)])
{_users='uid0003'}
{_fields='nmlf'}
|
(cool boy john [elroy?(?(\')s)])
{_users='uid0003'}
{_fields='nmf'}
|
(cool boy john elroy [jetson?(?(\')s)])
{_users='uid0003'}
{_fields='nmfl'}
|
(cool boy [jetson?(?(\')s)])
{_users='uid0003'}
{_fields='nl'}
|
(cool boy jetson [elroy?(?(\')s)])
{_users='uid0003'}
{_fields='nlf'}
|
(cool boy jetson elroy [john?(?(\')s)])
{_users='uid0003'}
{_fields='nlfm'}
|
(cool boy jetson [john?(?(\')s)])
{_users='uid0003'}
{_fields='nlm'}
|
(cool boy jetson john [elroy?(?(\')s)])
{_users='uid0003'}
{_fields='nlmf'}
|
([judy?(?(\')s)])
{_users='uid0004'}
{_fields='f'}
|
(judy [july?(?(\')s)])
{_users='uid0004'}
{_fields='fm'}
|
(judy july [jetson?(?(\')s)])
{_users='uid0004'}
{_fields='fml'}
|
(judy july jetson cool [lady?(?(\')s)])
{_users='uid0004'}
{_fields='fmln'}
|
(judy july cool [lady?(?(\')s)])
{_users='uid0004'}
{_fields='fmn'}
|
(judy july cool lady [jetson?(?(\')s)])
{_users='uid0004'}
{_fields='fmnl'}
|
(judy [jetson?(?(\')s)])
{_users='uid0004'}
{_fields='fl'}
|
(judy jetson cool [lady?(?(\')s)])
{_users='uid0004'}
{_fields='fln'}
|
(judy jetson cool lady [july?(?(\')s)])
{_users='uid0004'}
{_fields='flnm'}
|
(judy jetson [july?(?(\')s)])
{_users='uid0004'}
{_fields='flm'}
|
(judy jetson july cool [lady?(?(\')s)])
{_users='uid0004'}
{_fields='flmn'}
|
(judy cool [lady?(?(\')s)])
{_users='uid0004'}
{_fields='fn'}
|
(judy cool lady [july?(?(\')s)])
{_users='uid0004'}
{_fields='fnm'}
|
(judy cool lady july [jetson?(?(\')s)])
{_users='uid0004'}
{_fields='fnml'}
|
(judy cool lady [jetson?(?(\')s)])
{_users='uid0004'}
{_fields='fnl'}
|
(judy cool lady jetson [july?(?(\')s)])
{_users='uid0004'}
{_fields='fnlm'}
|
([july?(?(\')s)])
{_users='uid0004'}
{_fields='m'}
|
(july [jetson?(?(\')s)])
{_users='uid0004'}
{_fields='ml'}
|
(july jetson cool [lady?(?(\')s)])
{_users='uid0004'}
{_fields='mln'}
|
(july jetson cool lady [judy?(?(\')s)])
{_users='uid0004'}
{_fields='mlnf'}
|
(july jetson [judy?(?(\')s)])
{_users='uid0004'}
{_fields='mlf'}
|
(july jetson judy cool [lady?(?(\')s)])
{_users='uid0004'}
{_fields='mlfn'}
|
(july cool [lady?(?(\')s)])
{_users='uid0004'}
{_fields='mn'}
|
(july cool lady [judy?(?(\')s)])
{_users='uid0004'}
{_fields='mnf'}
|
(july cool lady judy [jetson?(?(\')s)])
{_users='uid0004'}
{_fields='mnfl'}
|
(july cool lady [jetson?(?(\')s)])
{_users='uid0004'}
{_fields='mnl'}
|
(july cool lady jetson [judy?(?(\')s)])
{_users='uid0004'}
{_fields='mnlf'}
|
(july [judy?(?(\')s)])
{_users='uid0004'}
{_fields='mf'}
|
(july judy [jetson?(?(\')s)])
{_users='uid0004'}
{_fields='mfl'}
|
(july judy jetson cool [lady?(?(\')s)])
{_users='uid0004'}
{_fields='mfln'}
|
(july judy cool [lady?(?(\')s)])
{_users='uid0004'}
{_fields='mfn'}
|
(july judy cool lady [jetson?(?(\')s)])
{_users='uid0004'}
{_fields='mfnl'}
|
(jetson cool [lady?(?(\')s)])
{_users='uid0004'}
{_fields='ln'}
|
(jetson cool lady [judy?(?(\')s)])
{_users='uid0004'}
{_fields='lnf'}
|
(jetson cool lady judy [july?(?(\')s)])
{_users='uid0004'}
{_fields='lnfm'}
|
(jetson cool lady [july?(?(\')s)])
{_users='uid0004'}
{_fields='lnm'}
|
(jetson cool lady july [judy?(?(\')s)])
{_users='uid0004'}
{_fields='lnmf'}
|
(jetson [judy?(?(\')s)])
{_users='uid0004'}
{_fields='lf'}
|
(jetson judy [july?(?(\')s)])
{_users='uid0004'}
{_fields='lfm'}
|
(jetson judy july cool [lady?(?(\')s)])
{_users='uid0004'}
{_fields='lfmn'}
|
(jetson judy cool [lady?(?(\')s)])
{_users='uid0004'}
{_fields='lfn'}
|
(jetson judy cool lady [july?(?(\')s)])
{_users='uid0004'}
{_fields='lfnm'}
|
(jetson [july?(?(\')s)])
{_users='uid0004'}
{_fields='lm'}
|
(jetson july cool [lady?(?(\')s)])
{_users='uid0004'}
{_fields='lmn'}
|
(jetson july cool lady [judy?(?(\')s)])
{_users='uid0004'}
{_fields='lmnf'}
|
(jetson july [judy?(?(\')s)])
{_users='uid0004'}
{_fields='lmf'}
|
(jetson july judy cool [lady?(?(\')s)])
{_users='uid0004'}
{_fields='lmfn'}
|
(cool [lady?(?(\')s)])
{_users='uid0004'}
{_fields='n'}
|
(cool lady [judy?(?(\')s)])
{_users='uid0004'}
{_fields='nf'}
|
(cool lady judy [july?(?(\')s)])
{_users='uid0004'}
{_fields='nfm'}
|
(cool lady judy july [jetson?(?(\')s)])
{_users='uid0004'}
{_fields='nfml'}
|
(cool lady judy [jetson?(?(\')s)])
{_users='uid0004'}
{_fields='nfl'}
|
(cool lady judy jetson [july?(?(\')s)])
{_users='uid0004'}
{_fields='nflm'}
|
(cool lady [july?(?(\')s)])
{_users='uid0004'}
{_fields='nm'}
|
(cool lady july [jetson?(?(\')s)])
{_users='uid0004'}
{_fields='nml'}
|
(cool lady july jetson [judy?(?(\')s)])
{_users='uid0004'}
{_fields='nmlf'}
|
(cool lady july [judy?(?(\')s)])
{_users='uid0004'}
{_fields='nmf'}
|
(cool lady july judy [jetson?(?(\')s)])
{_users='uid0004'}
{_fields='nmfl'}
|
(cool lady [jetson?(?(\')s)])
{_users='uid0004'}
{_fields='nl'}
|
(cool lady jetson [judy?(?(\')s)])
{_users='uid0004'}
{_fields='nlf'}
|
(cool lady jetson judy [july?(?(\')s)])
{_users='uid0004'}
{_fields='nlfm'}
|
(cool lady jetson [july?(?(\')s)])
{_users='uid0004'}
{_fields='nlm'}
|
(cool lady jetson july [judy?(?(\')s)])
{_users='uid0004'}
{_fields='nlmf'}
|
([rosie?(?(\')s)])
{_users='uid0005'}
{_fields='f'}
|
(rosie [jetson?(?(\')s)])
{_users='uid0005'}
{_fields='fl'}
|
(rosie jetson [robot?(?(\')s)])
{_users='uid0005'}
{_fields='fln'}
|
(rosie [robot?(?(\')s)])
{_users='uid0005'}
{_fields='fn'}
|
(rosie robot [jetson?(?(\')s)])
{_users='uid0005'}
{_fields='fnl'}
|
(jetson [robot?(?(\')s)])
{_users='uid0005'}
{_fields='ln'}
|
(jetson robot [rosie?(?(\')s)])
{_users='uid0005'}
{_fields='lnf'}
|
(jetson [rosie?(?(\')s)])
{_users='uid0005'}
{_fields='lf'}
|
(jetson rosie [robot?(?(\')s)])
{_users='uid0005'}
{_fields='lfn'}
|
([robot?(?(\')s)])
{_users='uid0005'}
{_fields='n'}
|
(robot [rosie?(?(\')s)])
{_users='uid0005'}
{_fields='nf'}
|
(robot rosie [jetson?(?(\')s)])
{_users='uid0005'}
{_fields='nfl'}
|
(robot [jetson?(?(\')s)])
{_users='uid0005'}
{_fields='nl'}
|
(robot jetson [rosie?(?(\')s)])
{_users='uid0005'}
{_fields='nlf'}
|
([XXXXXXXXXX?(?(\')s)])
{_users='null'}
{_fields='null'}
;

68
node_modules/jibo-sdk/resources/docs/cheat-sheet.md generated vendored Normal file
View File

@@ -0,0 +1,68 @@
## Jibo SDK Keystroke Cheatsheet
----
#### Jibo Atom Package
| Task | Keystroke |
| ---------------------------- | --------- |
| Create a new skill | `ctrl-alt-g` |
| Open Chrome DevTools (debugger) | Mac: `cmd-opt-i` PC `ctrl-alt-i` |
| Play in the simulator | Mac: `cmd-r` PC: `ctrl-r` |
| Stop the simulator | Mac: `cmd-q` PC: `ctrl-q` |
#### Behavior Editor
| Task | Keystroke |
| ----------------------- | ----------------------------- |
| Skip selected | `ctrl-alt-/` or `cmd-/` |
#### Animation Editor
| Task | Keystroke |
| --------------------------------| --------- |
| Delete a keyframe | `d` or `backspace` or `delete` |
| Delete frame (s) | Mac: `shift-cmd-i` or `shift-F5` PC: `shift-F5` |
| Deselect all frames | Mac: `cmd-d` PC: `ctrl-d` |
| Duplicate frame(s) | cmd-drag |
| Insert frame(s) | Mac: `cmd-i` or `F5` PC: `F5` |
| Key a frame (current layer) | `s` |
| Key frames (all layers) | `a` |
| Move back one frame | left arrow |
| Move forward one frame | right arrow |
| Move keyframe(s) | drag |
| Play preview | `spacebar` |
| Reset a keyframe | `r` |
| Select a frame | click |
| Select all frames | Mac: `cmd-a` PC: `ctrl-a` |
| Select multiple adjacent frames | shift-click |
| Select multiple non-adjacent frames | Mac: cmd-click PC: ctrl-click |
| Stop preview | `spacebar` or `esc` |
#### Animation Editor - Text Boxes
| Task | Keystroke |
| --------------------- | --------- |
| Insert and update a keyframe | `ctrl-s` |
| Lose focus, Close autocomplete list | `esc` |
| New line, Confirm autocomplete | `enter` |
#### Flow Editor
| Task | Keystroke |
| --------------------- | --------- |
| Automatically layout selected shapes (experimental) | `ctrl-l` |
| Copy selection in place | Mac: opt-drag PC: alt-drag |
| Create transition | Shift-select activities, then `ctrl-t` |
| Cut, copy, paste, select all, undo, redo | native keystrokes |
| Delete selection | `del` or `backspace` |
| Edit text block | `F2` |
| Exit/Cancel | `Esc` |
| Fit to Page | `shift-z` (repeat to return to original) |
| Insert activity into transition | Drag activity from palette onto transition line |
| Move shape | arrow keys |
| Move shape-fine | command-arrow keys |
| Normalize link (undo label and attachment point adjustments) | `ctrl-n` |
| Replace existing activity | Drag new activity from palette onto activity to be replaced |
| Resize activity to original dimensions | `ctrl-m` |
| Scroll entire page | shift-arrow keys |
| Scroll to selection | `spacebar` |
| Scroll | `home` or `end` |
| Scroll | `pageup` or `pagedown` |
| Zoom 100% | Mac: `command-0` PC: `ctrl-0` |
| Zoom in | `+` (plus) |
| Zoom out | `-` (minus) |

View File

@@ -0,0 +1,183 @@
{
"TimeoutSucceed": {
"description": "Forces a behavior to succeed after a given number of milliseconds.",
"type": "decorator",
"options": [
{
"type": "int",
"field": "timeout",
"description": "Enter the number of milliseconds until forced success."
}
]
},
"TimeoutSucceedJs": {
"description": "Uses JavaScript to force a behavior to succeed after a given number of milliseconds.",
"type": "decorator",
"options": [
{
"type": "Function",
"field": "getTime",
"description": "Return the number of milliseconds until forced success.",
"defaultValue": "() => {\n return 0;\n}"
}
]
},
"TimeoutJs": {
"paletteInfo": {"uses": ["flow", "bt"], "color": "JiboBlue", "order": 300},
"description": "Succeeds after a given number of dynamically-calculated milliseconds.",
"type": "leaf",
"options": [
{
"type": "Function",
"field": "getTime",
"description": "Return the number of milliseconds until forced success.",
"defaultValue": "() => {\n return 0;\n}"
}
]
},
"TimeoutFail": {
"description": "Forces a behavior to fail after a given number of milliseconds.",
"type": "decorator",
"options": [
{
"type": "int",
"field": "timeout",
"description": "Enter the number of milliseconds until forced failure."
}
]
},
"FailOnCondition": {
"description": "Forces a behavior to fail if specified condition returns false.",
"type": "decorator",
"options": [
{
"type": "Function",
"field": "init",
"description": "Initialize optional variables for the condition below."
},
{
"type": "Function",
"field": "conditional",
"description": "Return true when you want behavior to fail."
}
]
},
"Case": {
"description": "Use under Switch statements to specify when a behavior should execute and when it should fail.",
"type": "decorator",
"options": [
{
"type": "Function",
"field": "conditional",
"description": "Return false for conditions under which behavior should fail."
}
]
},
"SucceedOnCondition": {
"description": "Forces a behavor to succeed if its conditional function returns true.",
"type": "decorator",
"options": [
{
"type": "Function",
"field": "init",
"description": "Initialize optional variables for the condition below."
},
{
"type": "Function",
"field": "conditional",
"description": "Return true when you want behavior to succeed."
}
]
},
"StartOnCondition": {
"description": "Prevents a behavior from starting until its conditional function returns true.",
"type": "decorator",
"options": [
{
"type": "Function",
"field": "init",
"description": "Initialize optional variables for the condition below."
},
{
"type": "Function",
"field": "conditional",
"description": "Return true when you want component to start."
}
]
},
"WhileCondition": {
"description": "Repeats a behavior until its conditional function returns false.",
"type": "decorator",
"options": [
{
"type": "Function",
"field": "init",
"description": "Initialize optional variables for the condition below."
},
{
"type": "Function",
"field": "conditional",
"description": "Repeat behavior as long as condition return true.",
"defaultValue": "() => {\n return true;\n}"
}
]
},
"ExecuteScript": {
"description": "Synchronously executes arbitrary JavaScript. Use ExecuteScriptAsync for asynchronous calls.",
"type": "leaf",
"options": [
{
"type": "Function",
"field": "exec",
"description": "Enter function that will execute once and then succeed."
}
]
},
"ExecuteScriptAsync": {
"description": "Asynchronously executes arbitrary JavaScript. Will not succeed until the callback is called.",
"type": "leaf",
"options": [
{
"type": "Function",
"field": "exec",
"description": "Behavior will succeed when succeed is called, fail when fail is called.",
"defaultValue": "(succeed, fail) => {\n succeed();\n}"
}
]
},
"Null": {
"description": "This behavior never succeeds or fails. It will remain 'in progress' indefinitely. It must be decorated in order to succeed or fail.",
"type": "leaf",
"options": []
},
"Sequence": {
"description": "This behavior plays its children in order from top to bottom. If one child fails, this behavior will fail. If all its children succeed ,this behavor will succeed.",
"type": "composite",
"options": []
},
"Parallel": {
"description": "This behavior starts all of its children at the same time. This behavior will return success by default when all of its children have succeeded, or, if told to succeed on one, will succeed upon success of any child.",
"type": "composite",
"options": [
{
"type": "boolean",
"field": "succeedOnOne",
"description": "Set to True to force parallel to succeed as soon as one of its children succeeds.",
"defaultValue": false
}
]
},
"Switch": {
"description": "Attempts to execute its children in order from top to bottom until one child succeeds. This behavior always succeeds regardless of whether any children succeed. Use this behavior with Case decorators for branching.",
"type": "composite",
"options": []
},
"Random": {
"description": "Chooses one of its children randomly. Succeeds if that child succeeds and fails otherwise.",
"type": "composite",
"options": []
},
"meta": {
"version": 1
}
}

View File

@@ -0,0 +1,481 @@
{
"Flow.Begin": {
"paletteInfo": {
"uses": [
"flow"
],
"color": "Limeade",
"order": 100
},
"description": "The first shape to be executed in a Jibo Flow Editor procedure, only one allowed per procedure.",
"type": "leaf",
"options": [
{
"type": "Function",
"field": "inputParameters",
"description": "Prototype function text that is copied to provide input parms (and defaults) to this procedure when it is called from another procedure as a subflow. This code is just a text template and is not executed here.",
"defaultValue": "()=>{\n return {\n// parm1: 'parm1_default_value',\n// parm2: 'parm2_default_value'\n };\n}"
}
]
},
"Flow.Begin-Parallel": {
"paletteInfo": {
"uses": [
"flow"
],
"color": "Grass",
"order": 101
},
"description": "The beginning of an Asynchronous thread, more than one allowed per procedure. Execution commences when the page is invoked, simultaneously with the Flow.Begin on the page.",
"type": "leaf",
"options": [
]
},
"Flow.Picture": {
"paletteInfo": {
"uses": [
"flow"
],
"color": "white",
"text": "picture",
"title": "picture",
"order": 102
},
"description": "An image to display on the diagram as an annotation (not an activity that is executed at runtime).",
"type": "leaf",
"options": [
{
"location": "",
"type": "string",
"field": "title",
"description": "The picture title.",
"defaultValue": ""
},
{
"location": "",
"type": "image",
"field": "url",
"description": "The URI/Filename for the picture.",
"defaultValue": ""
},
{
"location": "",
"type": "string",
"field": "caption",
"description": "The picture caption.",
"defaultValue": ""
}
]
},
"Flow.Comment": {
"paletteInfo": {
"uses": [
"flow"
],
"color": "white",
"text": "notes",
"order": 103
},
"description": "A place to keep notes.",
"type": "leaf",
"options": [
{
"location": "",
"type": "string",
"field": "text",
"description": "The text of the comment.",
"defaultValue": ""
}
]
},
"Flow.End": {
"paletteInfo": {
"uses": [
"flow"
],
"color": "Firecracker",
"order": 104
},
"description": "Ends execution of a Jibo Flow Editor procedure and returns to the calling procedure, or exits if this is the top-most procedure.",
"type": "leaf",
"options": [
{
"location": "options",
"type": "Function",
"field": "getTransition",
"description": "Returns the string value that will be used as the Transition from the subflow activity (if undefined, the Flow.End activity name is used).",
"defaultValue": "() => { return ; }"
}
]
},
"Flow.Subflow": {
"paletteInfo": {
"uses": [
"flow"
],
"color": "Topaz",
"order": 105
},
"description": "Calls a subflow.",
"type": "leaf",
"options": [
{
"type": "subflow",
"field": "subflowId",
"description": "path to subflow's .flow file (without the .flow extension)",
"defaultValue": ""
},
{
"type": "Function",
"field": "inputParameters",
"description": "Returns the object that appears in the called subflow as 'notepad.params'.",
"defaultValue": "() => {return {}; }"
},
{
"type": "Function",
"field": "getTransition",
"description": "Returns the transition result from the subflow.",
"defaultValue": "(subflow_result_object) => {\n return subflow_result_object.transition;\n}"
}
]
},
"Flow.Subtree": {
"paletteInfo": {
"uses": [
"flow"
],
"color": "Topaz",
"order": 106
},
"description": "Executes a behavior tree (.bt) as a single behavior and returns the status of the subtree.",
"type": "leaf",
"options": [
{
"type": "Subtree",
"field": "behaviorPath",
"description": "Select a subtree.",
"defaultValue": "null"
},
{
"type": "Function",
"field": "getNotepad",
"description": "Returns an object that will be this tree's notepad.",
"defaultValue": "() => {\n return {};\n}"
},
{
"type": "Function",
"field": "onResult",
"description": "Returns the transition result from the subtree.",
"defaultValue": "(treeResult) => {\n\treturn treeResult.transition;\n}"
}
]
},
"Flow.Throw": {
"paletteInfo": {
"uses": [
"flow"
],
"color": "Grass",
"order": 107
},
"description": "Throws an exception (the name of the activity becomes the name of the exception thrown).",
"type": "leaf",
"options": [
{
"type": "Function",
"field": "getPayload",
"description": "Returns an object that will be made available as the 'payload' argument to Flow.Catch.",
"defaultValue": "() => {\n return {};\n}"
}
]
},
"Flow.Interrupt": {
"paletteInfo": {
"uses": [
"flow"
],
"color": "Limeade",
"order": 108
},
"description": "For use in Parallel threads; causes the Primary thread to take an exception, no matter where it is (the name of the activity becomes the name of the exception thrown).",
"type": "leaf",
"options": [
{
"type": "Function",
"field": "getPayload",
"description": "Returns an object that will be made available as the 'payload' argument to Flow.Catch.",
"defaultValue": "() => {\n return {};\n}"
}
]
},
"Flow.Catch": {
"paletteInfo": {
"uses": [
"flow"
],
"color": "Limeade",
"order": 109
},
"description": "Catches the exception given by the name of the activity.",
"type": "leaf",
"options": [
{
"type": "Function",
"field": "getTransition",
"description": "Called with the actual Exception string and the return value from the Exception or Interrupt's getPayload() functions. Returns the Flow.Catch transition value.",
"defaultValue": "(exception, payload) => {\n\treturn '';\n}"
}
]
},
"Flow.Eval": {
"paletteInfo": {
"uses": [
"flow"
],
"color": "Grape",
"order": 110
},
"description": "Evaluates a Javascript function, the return value of the function becomes the activity result.",
"type": "leaf",
"options": [
{
"type": "Function",
"field": "Script",
"description": "The return value becomes the activity result.",
"defaultValue": "() => {\n return '';\n}"
}
]
},
"Flow.Eval-Async": {
"paletteInfo": {
"uses": [
"flow"
],
"color": "Grape",
"order": 111
},
"description": "Evaluates a Javascript function, the value passed to 'done' becomes the activity result.",
"type": "leaf",
"options": [
{
"type": "Function",
"field": "exec",
"description": "Function to be executed. The value passed to 'done' becomes the activity result.",
"defaultValue": "(done) => {\n done('');\n}"
},
{
"type": "Function",
"field": "onStop",
"description": "Function to be executed when/if the activity receives a stop request.",
"defaultValue": "() => { }"
}
]
},
"Flow.Wait": {
"paletteInfo": {
"uses": [
"xxx-disabled-flow"
],
"color": "Grape",
"order": 112
},
"description": "Pauses for the specified number of milliseconds.",
"type": "leaf",
"options": [
{
"type": "string",
"field": "ms_to_pause",
"description": "The number of milliseconds to pause.",
"defaultValue": "0"
}
]
},
"Mim": {
"paletteInfo": {
"uses": [
"flow"
],
"color": "Tangerine",
"order": 113
},
"description": "A Multimodal Interaction Module, for all your speaking needs.",
"type": "leaf",
"options": [
{
"type": "Function",
"field": "getMimPath",
"description": "Return path to mim file (from project root)",
"defaultValue": "() => {\n\treturn 'mims/myMim.mim';\n}"
},
{
"type": "Function",
"field": "getPromptData",
"description": "Get Prompt Data - Return variables for Mim prompt conditions and text replacement",
"defaultValue": "() => {\n\treturn {};\n}"
},
{
"type": "Function",
"field": "onStatus",
"description": "MIM Status - provides incremental listen results.",
"defaultValue": "(status) => {\n\tlet mimState = status.state;\n\tlet asrResults = status.asrResults;\n\tlet speakerIds = status.speakerIds;\n}"
},
{
"type": "Function",
"field": "onSuccess",
"description": "MIM Success - provides data on the end result of the MIM - a successful response.",
"defaultValue": "(results) => {\n\tlet mimState = results.state;\n\tlet asrResults = results.asrResults;\n\tlet speakerIds = results.speakerIds;\n\tlet transition = results.firstGrammarTag;\n\treturn transition;\n}"
},
{
"type": "Function",
"field": "onFailure",
"description": "MIM Failure - provides data on the failure of the MIM - an overall failure due to no input or no matching response.",
"defaultValue": "(results) => {\n\tlet mimState = results.state;\n\tlet asrResults = results.asrResults;\n\tlet speakerIds = results.speakerIds;\n\tlet exception = results.exception;\n\treturn exception;\n}"
}
]
},
"Mim.Announcement": {
"paletteInfo": {
"uses": [
"flow"
],
"color": "Tennis",
"order": 114
},
"description": "A Multimodal Interaction Module that plays announcements.",
"type": "leaf",
"options": [
{
"type": "mim",
"field": "mimPath",
"description": "path to mim file (from project root)",
"defaultValue": ""
},
{
"type": "Function",
"field": "getPromptData",
"description": "Get Prompt Data - Return variables for Mim prompt conditions and text replacement",
"defaultValue": "() => {\n\treturn {};\n}"
}
]
},
"Mim.Optional-Response": {
"paletteInfo": {
"uses": [
"flow"
],
"color": "Twilight",
"order": 115
},
"description": "A Multimodal Interaction Module that plays an Announcement and waits briefly for a response.",
"type": "leaf",
"options": [
{
"type": "mim",
"field": "mimPath",
"description": "path to mim file (from project root)",
"defaultValue": ""
},
{
"type": "Function",
"field": "getPromptData",
"description": "Get Prompt Data - Return variables for Mim prompt conditions and text replacement",
"defaultValue": "() => {\n\treturn {};\n}"
},
{
"type": "Function",
"field": "onStatus",
"description": "MIM Status - provides incremental listen results.",
"defaultValue": "(status) => {\n\tlet mimState = status.state;\n\tlet asrResults = status.asrResults;\n\tlet speakerIds = status.speakerIds;\n}"
},
{
"type": "Function",
"field": "onSuccess",
"description": "MIM Success - provides data on the end result of the MIM - a successful response.",
"defaultValue": "(results) => {\n\tlet mimState = results.state;\n\tlet asrResults = results.asrResults;\n\tlet speakerIds = results.speakerIds;\n\tlet transition = results.firstGrammarTag;\n\treturn transition;\n}"
}
]
},
"Mim.Question": {
"paletteInfo": {
"uses": [
"flow"
],
"color": "Candy",
"order": 116
},
"description": "A Multimodal Interaction Module that plays an Announcement and waits indefinitely for a response.",
"type": "leaf",
"options": [
{
"type": "mim",
"field": "mimPath",
"description": "path to mim file (from project root)",
"defaultValue": ""
},
{
"type": "Function",
"field": "getPromptData",
"description": "Get Prompt Data - Return variables for Mim prompt conditions and text replacement",
"defaultValue": "() => {\n\treturn {};\n}"
},
{
"type": "Function",
"field": "onStatus",
"description": "MIM Status - provides incremental listen results.",
"defaultValue": "(status) => {\n\tlet mimState = status.state;\n\tlet asrResults = status.asrResults;\n\tlet speakerIds = status.speakerIds;\n}"
},
{
"type": "Function",
"field": "onSuccess",
"description": "MIM Success - provides data on the end result of the MIM - a successful response.",
"defaultValue": "(results) => {\n\tlet mimState = results.state;\n\tlet asrResults = results.asrResults;\n\tlet speakerIds = results.speakerIds;\n\tlet transition = results.firstGrammarTag;\n\treturn transition;\n}"
},
{
"type": "Function",
"field": "onFailure",
"description": "MIM Failure - provides data on the failure of the MIM - an overall failure due to no input or no matching response.",
"defaultValue": "(results) => {\n\tlet mimState = results.state;\n\tlet asrResults = results.asrResults;\n\tlet speakerIds = results.speakerIds;\n\tlet exception = results.exception;\n\treturn exception;\n}"
}
]
},
"Menu": {
"paletteInfo": {
"uses": [
"flow"
],
"color": "Candy",
"order": 117
},
"description": "A self contained single stage menu.",
"type": "leaf",
"options": [
{
"type": "Function",
"field": "getConfig",
"description": "Provide the menu config data.",
"defaultValue": "(loadCallback) => {\n\tloadCallback({});\n}"
},
{
"type": "Function",
"field": "onMenuClosed",
"description": "Called when the menu is closed by the user or a timeout.",
"defaultValue": "(wasTimeout, menu, overrideMenuTransition, exception) => {\n\t//exception will be ~InteractionError.MenuTimeout or ~InteractionError.MenuClosed\n\treturn exception;\n}"
},
{
"type": "Function",
"field": "onItemChosen",
"description": "Called when a user utterance matches the menu rule, or an item is selected",
"defaultValue": "(menuResult, menu, overrideMenuTransition) => {\n\treturn undefined;//return a transition here\n}"
},
{
"type": "Function",
"field": "onPositionalSelect",
"description": "Called when a user tries to choose an item with positional selection - 'open the second one', etc",
"defaultValue": "(commandAsr, intendedIndex, menu) => {\n\t//Return an index to use, NaN to not select anything, or undefined to do the normal behavior (selecting intendedIndex)\n}"
}
]
},
"meta": {
"version": 1
}
}

View File

@@ -0,0 +1,492 @@
{
"Subtree": {
"paletteInfo": {"uses": ["flow", "bt"], "color": "JiboBlue", "order": 200},
"description": "Executes a behavior tree (.bt) as a single behavior and returns the status of the subtree.",
"type": "leaf",
"options": [
{
"type": "Subtree",
"field": "behaviorPath",
"description": "Select a subtree.",
"defaultValue": "null"
},
{
"type": "Function",
"field": "getNotepad",
"description": "Enter optional information to return an object that will be this tree's notepad.",
"defaultValue": "() => {\n return {};\n}"
},
{
"type": "Function",
"field": "onResult",
"description": "Enter optional code that will be called with the subtree's results with the subtree is done.",
"defaultValue": "(treeResult) => {\n}"
}
]
},
"SubtreeJs": {
"description": "Dynamically executes a behavior tree (.bt) as a single behavior. This behavior returns the status of the subtree.",
"type": "leaf",
"options": [
{
"type": "Function",
"field": "getFileName",
"description": "Specify a subtree.",
"defaultValue": "(callback) => {\n}"
},
{
"type": "Function",
"field": "getNotepad",
"description": "Enter optional information to return an object that will be this tree's notepad.",
"defaultValue": "() => {\n return {};\n}"
},
{
"type": "Function",
"field": "onResult",
"description": "Enter optional code that will be called with the subtree's results with the subtree is done.",
"defaultValue": "(treeResult) => {\n}"
}
]
},
"PlayAnimation": {
"paletteInfo": {"uses": ["flow", "bt"], "color": "JiboBlue", "order": 201},
"description": "Plays an animation file (.keys). Succeeds when the animation is finished.",
"type": "leaf",
"options": [
{
"type": "Animation",
"field": "animPath",
"description": "Select the animation file to play.",
"defaultValue": "null"
},
{
"type": "boolean",
"field": "cache",
"description": "True for caching the animation. False for single-play and destroy.",
"defaultValue": true
},
{
"type": "boolean",
"field": "upload",
"description": "True for uploading to the GPU immediately.",
"defaultValue": true
},
{
"type": "Function",
"field": "config",
"description": "Enter optional code to modify the animation's playback.",
"defaultValue": "(animation) => {\n}"
}
]
},
"PlayAudio": {
"paletteInfo": {"uses": ["flow", "bt"], "color": "JiboBlue", "order": 202},
"description": "Plays a single audio source. The audio format is any format supported by HTML5 audio. Succeeds when the audio file is finished playing",
"type": "leaf",
"options": [
{
"type": "Audio",
"field": "audioPath",
"description": "Enter the audio file path.",
"defaultValue": "null"
},
{
"type": "boolean",
"field": "cache",
"description": "True for caching the audio. False for single-play and destroy.",
"defaultValue": true
}
]
},
"LookAt": {
"paletteInfo": {"uses": ["flow", "bt"], "color": "JiboBlue", "order": 203},
"description": "Creates body and eye animations for looking at a point in 3D space",
"type": "leaf",
"options": [
{
"type": "Function",
"field": "getTarget",
"description": "Return the x, y, and z coordinates Jibo should look at.",
"defaultValue": "() => {\n return {x: 0, y: 0, z: 0};\n}"
},
{
"type": "boolean",
"field": "isContinuous",
"description": "True for continuous mode look at. False for single-shot look at.",
"defaultValue": false
},
{
"type": "Function",
"field": "config",
"description": "Enter optional code to modify the lookAt behavior.",
"defaultValue": "(lookAt) => {\n}"
}
]
},
"Blink": {
"paletteInfo": {"uses": ["flow", "bt"], "color": "JiboBlue", "order": 204},
"description": "Animates Jibo's eye to blink once.",
"type": "leaf",
"options": []
},
"TextToSpeech": {
"paletteInfo": {"uses": ["flow", "bt"], "color": "JiboBlue", "order": 205},
"description": "Creates speech output for Jibo.",
"type": "leaf",
"options": [
{
"type": "SSML",
"field": "words",
"description": "Enter text for Jibo to say. Takes plain text or SSML markup.",
"defaultValue": "Hello"
},
{
"type": "Function",
"field": "onWord",
"description" : "Enter optional code to execute each time Jibo says a single word.",
"defaultValue": "(word) => {\n}"
}
]
},
"TextToSpeechJs": {
"paletteInfo": {"uses": ["flow", "bt"], "color": "JiboBlue", "order": 206},
"description": "Dynamically creates speech output for Jibo.",
"type": "leaf",
"options": [
{
"type": "Function",
"field": "getWords",
"description": "Return what you want Jibo to say.",
"defaultValue": "(callback) => {\n callback('Hello');\n}"
},
{
"type": "Function",
"field": "onWord",
"description": "Enter optional code to execute each time Jibo says a single word.",
"defaultValue": "(word) => {\n}"
}
]
},
"StartOnAnimEvent": {
"description": "Prevents the behavior it's decorating from starting until a specified event is received from an animation.",
"type": "decorator",
"options": [
{
"type": "string",
"field": "eventName",
"description": "Specify the event name (set on the animation's Event Layer) on which the animation should start."
},
{
"type": "Function",
"field": "onReceived",
"description": "Enter optional code to execute after the event is received but before the behavior starts.",
"defaultValue": "(animFileName, payload) => {\n}"
}
]
},
"StartOnEvent": {
"description": "Prevents behavior it's decorating from starting until specified event is received from the global emitter.",
"type": "decorator",
"options": [
{
"type": "string",
"field": "eventName",
"description": "Specify the event name you want to listen for the component to start."
},
{
"type": "Function",
"field": "onEvent",
"description": "This function is called after the event was received but before the component starts.",
"defaultValue": "() => {\n}"
}
]
},
"SucceedOnEvent": {
"description": "Forces the behavior it's decorating to succeed when an event is received from the global emitter.",
"type": "decorator",
"options": [
{
"type": "string",
"field": "eventName",
"description": "Specify the event name you want to listen for the component to succeed."
},
{
"type": "Function",
"field": "onEvent",
"description": "This function is called after the event was received along with any payload.",
"defaultValue": "() => {\n}"
}
]
},
"SucceedOnEmbedded": {
"description": "Succeeds a behavior upon hearing a built-in listening rule.",
"type": "decorator",
"options": [
{
"type": ["enum",
{
"label": "Hey Jibo",
"display": "Hey Jibo",
"value": "hey_jibo"
}
],
"field": "rule",
"description": "Specify the name of the embedded rule you want to listen for (hey_jibo).",
"defaultValue": "hey_jibo"
},
{
"type": "Function",
"field": "onResult",
"description": "(listener), event emitter for hey-jibo (asr, spkr) and error events.",
"defaultValue": "(listener) => {\n\tlistener.on('hey-jibo', function(asrResult, speakerIds) {\n\n\t});\n}"
}
]
},
"ListenEmbedded": {
"paletteInfo": {"uses": ["flow", "bt"], "color": "JiboBlue", "order": 207},
"description": "Listens only for an embedded rule (hey_jibo)",
"type": "leaf",
"options": [
{
"type": ["enum",
{
"label": "Hey Jibo",
"display": "Hey Jibo",
"value": "hey_jibo"
}
],
"field": "rule",
"description": "Specify the name of the embedded rule you want to listen for (hey_jibo).",
"defaultValue": "hey_jibo"
},
{
"type": "Function",
"field": "onResult",
"description": "(listener), event emitter for hey-jibo (asr, spkr) and error events.",
"defaultValue": "(listener) => {\n\tlistener.on('hey-jibo', function(asrResult, speakerIds) {\n\n\t});\n}"
}
]
},
"Listen": {
"paletteInfo": {"uses": ["flow", "bt"], "color": "JiboBlue", "order": 208},
"description": "Tells Jibo to listen for auditory input using Natural Language Understanding (NLU).",
"type": "leaf",
"options": [
{
"type": "Function",
"field": "getOptions",
"description": "Set the dictionary of options that will be returned for the listening task.",
"defaultValue": "() => {\n let options = {\n heyJibo: false,\n detectEnd: false,\n incremental: false,\n authenticateSpeaker: ''\n }\n return options;\n}"
},
{
"type": "Rule",
"field": "rule",
"description": "Specify the file path for the rule to use to parse Listen results.",
"defaultValue": "null"
},
{
"type": "Function",
"field": "onResult",
"description": "Enter code to execute when Jibo has heard input. (listener), event emitter for hey-jibo (asr, spkr) and timeout() events.",
"defaultValue": "(listener) => {\n listener.on('cloud', function(asrResult, speakerIds) {\n\n });\n}"
}
]
},
"SucceedOnListen": {
"description": "Succeeds a behavior upon hearing a custom Natural Language Understand (NLU) rule.",
"type": "decorator",
"options": [
{
"type": "Function",
"field": "getOptions",
"description": "Set the dictionary of options that will be returned for the listening task.",
"defaultValue": "() => {\n let options = {\n heyJibo: false,\n detectEnd: false,\n incremental: false,\n authenticateSpeaker: ''\n }\n return options;\n}"
},
{
"type": "Rule",
"field": "rule",
"description": "Specify the file path for the rule to use to parse Listen results.",
"defaultValue": "null"
},
{
"type": "Function",
"field": "onResult",
"description": "Enter code to execute when Jibo has heard input. (listener), event emitter for hey-jibo (asr, spkr) and timeout() events.",
"defaultValue": "(listener) => {\n listener.on('cloud', function(asrResult, speakerIds) {\n\n });\n}"
}
]
},
"ListenJs": {
"paletteInfo": {"uses": ["flow", "bt"], "color": "JiboBlue", "order": 209},
"description": "Tells Jibo to listen for auditory input using Natural Language Understanding (NLU).",
"type": "leaf",
"options": [
{
"type": "Function",
"field": "getOptions",
"description": "Set the dictionary of options that will be returned for the listening task.",
"defaultValue": "() => {\n let options = {\n heyJibo: false,\n detectEnd: false,\n incremental: false,\n authenticateSpeaker: ''\n }\n return options;\n}"
},
{
"type": "Function",
"field": "getRule",
"description": "Pass a custom listening rule into the callback.",
"defaultValue": "(callback) => {\n callback(\"TopRule = $* Hello World $*;\");\n}"
},
{
"type": "Function",
"field": "onResult",
"description": "Enter code to execute when Jibo has heard input. (listener), event emitter for cloud (asr, spkr), hey-jibo (asr, spkr), timeout (), incremental (asr, stop()), and end-of-speech() results.",
"defaultValue": "(listener) => {\n listener.on('cloud', function(asrResult, speakerIds) {\n\n });\n}"
}
]
},
"SucceedOnListenJs": {
"description": "Succeeds a behavior upon hearing a custom Natural Language Understand (NLU) rule.",
"type": "decorator",
"options": [
{
"type": "Function",
"field": "getOptions",
"description": "Set the dictionary of options that will be returned for the listening task.",
"defaultValue": "() => {\n let options = {\n heyJibo: false,\n detectEnd: false,\n incremental: false,\n authenticateSpeaker: ''\n }\n return options;\n}"
},
{
"type": "Function",
"field": "getRule",
"description": "Pass a custom listening rule into the callback.",
"defaultValue": "() => {\n callback(\"TopRule = $* Hello World $*;\");\n}"
},
{
"type": "Function",
"field": "onResult",
"description": "Enter code to execute when Jibo has heard input. (listener), event emitter for cloud (asr, spkr), hey-jibo (asr, spkr), timeout (), incremental (asr, stop()), and end-of-speech() results.",
"defaultValue": "(listener) => {\n listener.on('cloud', function(asrResult, speakerIds) {\n\n });\n}"
}
]
},
"TakePhoto": {
"paletteInfo": {"uses": ["flow", "bt"], "color": "JiboBlue", "order": 210},
"description": "Attempts to take a photo and return the image url in the onPhoto callback",
"type": "leaf",
"options": [
{
"type": ["enum",
{
"label": "Small (672x380) - coming soon!",
"display": "Small (672x380)",
"value": 1
},
{
"label": "Medium (1280x720)",
"display": "Medium (1280x720)",
"value": 2
},
{
"label": "Large (1920x1080) - coming soon!",
"display": "Large (1920x1080)",
"value": 3
},
{
"label": "X-Large (2688x1520) - coming soon!",
"display": "X-Large (2688x1520)",
"value": 4
}
],
"field": "resolution",
"description": "Specify the resolution of the photo you want to take.",
"defaultValue": 2
},
{
"type": "Function",
"field": "onPhoto",
"description" : "Set optional code to execute after the photo is taken. If successful, returns imageUrl; otherwise, returns error.",
"defaultValue": "(error, imageUrl) => {\n}"
},
{
"type": "boolean",
"field": "noDistortion",
"description": "True to remove camera distortion from the photo. False to keep camera distortion on the photo.",
"defaultValue": true
}
]
},
"ReadBarcode": {
"paletteInfo": {"uses": ["flow", "bt"], "color": "JiboBlue", "order": 211},
"description": "Attempts to read a barcode or QRcode and returns the barcode data",
"type": "leaf",
"options": [
{
"type": "Function",
"field": "onBarcode",
"description" : "Enter the code that will be called when the barcode is read. If successful, returns barcode/QRcode data; otherwise, returns error.",
"defaultValue": "(error, data) => {\n}"
}
]
},
"Mim": {
"paletteInfo": {"uses": ["bt"], "color": "JiboBlue", "order": 212},
"description": "A Multimodal Interaction Module, for all your speaking needs.",
"type": "leaf",
"options": [
{
"type": "mim",
"field": "mimPath",
"description": "path to mim file (from project root)",
"defaultValue": ""
},
{
"type": "Function",
"field": "getPromptData",
"description": "Return variables for Mim prompt conditions and text replacement",
"defaultValue": "() => {\n\treturn {};\n}"
},
{
"type": "Function",
"field": "onStatus",
"description": "provides incremental listen results.",
"defaultValue": "(status) => {\n\tlet mimState = status.state;\n\tlet asrResults = status.asrResults;\n\tlet speakerIds = status.speakerIds;\n}"
},
{
"type": "Function",
"field": "onSuccess",
"description": "provides data on the end result of the MIM - a successful response.",
"defaultValue": "(results) => {\n\tlet mimState = results.state;\n\tlet asrResults = results.asrResults;\n\tlet speakerIds = results.speakerIds;\n}"
}
]
},
"Menu": {
"paletteInfo": {"uses": ["bt"], "color": "JiboBlue", "order": 213},
"description": "A self contained single stage menu.",
"type": "leaf",
"options": [
{
"type": "Function",
"field": "getConfig",
"description": "Provide the menu config data.",
"defaultValue": "(loadCallback) => {\n\tloadCallback({});\n}"
},
{
"type": "Function",
"field": "onMenuClosed",
"description": "Called when the menu is closed by the user or a timeout.",
"defaultValue": "(wasTimeout, menu, overrideMenuTransition) => {\n}"
},
{
"type": "Function",
"field": "onItemChosen",
"description": "Called when a user utterance matches the menu rule, or an item is selected",
"defaultValue": "(menuResult, menu, overrideMenuTransition) => {\n}"
},
{
"type": "Function",
"field": "onPositionalSelect",
"description": "Called when a user tries to choose an item with positional selection - 'open the second one', etc",
"defaultValue": "(commandAsr, intendedIndex, menu) => {\n\t//Return an index to use, NaN to not select anything, or undefined to do the normal behavior (selecting intendedIndex)\n}"
}
]
},
"meta": {
"version": 1
}
}

40332
node_modules/jibo-sdk/resources/externals/go-debug.js generated vendored Normal file

File diff suppressed because it is too large Load Diff

1983
node_modules/jibo-sdk/resources/externals/go.js generated vendored Normal file

File diff suppressed because it is too large Load Diff

28
node_modules/jibo-sdk/resources/gating/index.html generated vendored Normal file
View File

@@ -0,0 +1,28 @@
<!DOCTYPE html>
<html>
<head>
<style>
body{
margin: 0px;
width: 500px;
height: 650px;
}
webview {
border: none;
width: 500px;
height: 650px;
}
</style>
</head>
<body>
<!--
<webview id="website" partition="login" width="500" height="650" autosize="on" style="width:500px; height:650px" src="https://developers-dev.jibo.com/jibo/"></webview>
-->
<!-- -->
<webview id="website" partition="login" width="500" height="650" autosize="on" src="https://support.jibo.com/c2login"></webview>
<script>
require('./r');
</script>
</body>
</html>

9
node_modules/jibo-sdk/resources/gating/m.js generated vendored Normal file
View File

@@ -0,0 +1,9 @@
/**
* jibo-sdk - Jibo's SDK plugin for Atom
* @version v3.9.10
* @license Copyright (c) 2017, Jibo, Inc. All rights reserved.
* All use of the Jibo SDK is subject to the Jibo SDK End User License Agreement (EULA)
* distributed herewith. If you did not receive a copy of the EULA, you may view a
* copy at https://developers.jibo.com/license.
*/
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var r;r="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,r.m=e()}}(function(){return function e(r,o,l){function t(i,a){if(!o[i]){if(!r[i]){var u="function"==typeof require&&require;if(!a&&u)return u(i,!0);if(n)return n(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var d=o[i]={exports:{}};r[i][0].call(d.exports,function(e){var o=r[i][1][e];return t(o?o:e)},d,d.exports,e,r,o,l)}return o[i].exports}for(var n="function"==typeof require&&require,i=0;i<l.length;i++)t(l[i]);return t}({1:[function(e,r,o){"use strict";var l=e("electron"),t=[{label:"Edit",submenu:[{label:"Undo",accelerator:"CmdOrCtrl+Z",role:"undo"},{label:"Redo",accelerator:"Shift+CmdOrCtrl+Z",role:"redo"},{type:"separator"},{label:"Cut",accelerator:"CmdOrCtrl+X",role:"cut"},{label:"Copy",accelerator:"CmdOrCtrl+C",role:"copy"},{label:"Paste",accelerator:"CmdOrCtrl+V",role:"paste"},{label:"Select All",accelerator:"CmdOrCtrl+A",role:"selectall"}]},{label:"Window",role:"window",submenu:[{label:"Minimize",accelerator:"CmdOrCtrl+M",role:"minimize"},{label:"Close",accelerator:"CmdOrCtrl+W",role:"close"}]}];if("darwin"==process.platform){var n="Jibo SDK Login";t.unshift({label:n,submenu:[{label:"Quit",accelerator:"Command+Q",role:"quit",click:function(){l.app.quit()}}]})}var i=null;l.app.on("window-all-closed",function(){"darwin"!=process.platform&&l.app.quit()}),l.app.on("ready",function(){var e=l.Menu.buildFromTemplate(t);l.Menu.setApplicationMenu(e),i=new l.BrowserWindow({width:500,height:650,resizable:!1}),l.ipcMain.on("quit-app",function(){process.stdout.write(process.env.token),l.app.quit()}),i.loadURL("file://"+__dirname+"/index.html"),i.on("closed",function(){l.app.quit(),i=null})})},{electron:void 0}]},{},[1])(1)});

9
node_modules/jibo-sdk/resources/gating/r.js generated vendored Normal file
View File

@@ -0,0 +1,9 @@
/**
* jibo-sdk - Jibo's SDK plugin for Atom
* @version v3.9.10
* @license Copyright (c) 2017, Jibo, Inc. All rights reserved.
* All use of the Jibo SDK is subject to the Jibo SDK End User License Agreement (EULA)
* distributed herewith. If you did not receive a copy of the EULA, you may view a
* copy at https://developers.jibo.com/license.
*/
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var n;n="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,n.r=e()}}(function(){return function e(n,t,o){function r(f,u){if(!t[f]){if(!n[f]){var d="function"==typeof require&&require;if(!u&&d)return d(f,!0);if(i)return i(f,!0);var l=new Error("Cannot find module '"+f+"'");throw l.code="MODULE_NOT_FOUND",l}var s=t[f]={exports:{}};n[f][0].call(s.exports,function(e){var t=n[f][1][e];return r(t?t:e)},s,s.exports,e,n,t,o)}return t[f].exports}for(var i="function"==typeof require&&require,f=0;f<o.length;f++)r(o[f]);return r}({1:[function(e,n,t){"use strict";var o=e("electron"),r=document.getElementById("website"),i=!1;r.addEventListener("dom-ready",function(){r.insertCSS("#logged_in_as_sp, #not_you_link_sp{ display: none; }"),i=!0}),document.title="Jibo SDK",setInterval(function(){i&&"https://www.jibo.com/"===r.getUrl()&&o.ipcRenderer.send("quit-app")},100)},{electron:void 0}]},{},[1])(1)});

BIN
node_modules/jibo-sdk/resources/images/README.gif generated vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

BIN
node_modules/jibo-sdk/resources/images/jibo.png generated vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

6
node_modules/jibo-sdk/settings/rule.cson generated vendored Normal file
View File

@@ -0,0 +1,6 @@
'.source.rule':
'editor':
'autoIndentOnPaste': false
'softTabs': true
'tabLength': 4
'commentStart': '# '

464
node_modules/jibo-sdk/styles/animation-editor.less generated vendored Normal file
View File

@@ -0,0 +1,464 @@
@import "ui-variables";
.animation-editor {
width: 100%;
height: 100%;
font-family: 'Lucida Grande', 'Segoe UI', Ubuntu, Cantarell, sans-serif;
}
.animation-editor > div{
width: 100%;
height: 100%;
background: black;
display: flex;
flex-direction: column;
flex-wrap: nowrap;
justify-content: flex-start;
align-items: stretch;
align-content: stretch;
}
.animation-preview {
width: 100%;
height: 100%;
order: 0;
flex-grow: 1;
flex-shrink: 1;
flex-basis: auto;
align-self: auto;
}
@animation-channel-tick-width: 18px;
@animation-channel-tick-height: 40px;
.animation-timeline {
width: 100%;
background: #363636;
overflow: auto;
-webkit-user-select: none;
}
.animation-timeline .time-display {
height: 22px;
color: #9f9f9f;
text-align: right;
}
.animation-timeline .time-display > .frame-rate {
}
.animation-timeline .time-display > .frames {
height: 22px;
line-height: 22px;
}
.animation-timeline .time-display > .seconds {
padding-left: 3px;
height: 22px;
line-height: 22px;
}
.animation-timeline .time-display > .new-layer {
padding-left: 3px;
height: 20px;
line-height: 22px;
margin-left: 5px;
margin-top: 2px;
cursor: pointer;
}
.animation-timeline .delete {
margin-top: 13px;
float: right;
display: inline-block;
font-size: 14px;
line-height: 12px;
position: relative;
cursor: pointer;
width: 20px;
height: 20px;
}
.animation-timeline .flags{
width: 56px;
height: 39px;
border-right: thin solid #525252;
float: left;
}
.animation-channel-label.selected .flags{
border-right: thin solid #CFAE67;
padding-left: 2px;
}
.animation-timeline .locked, .animation-timeline .visible{
padding: 13px 9px 0px 9px;
float: left;
display: inline-block;
font-size: 14px;
line-height: 12px;
position: relative;
cursor: pointer;
width: 22px;
height: 38px;
}
.animation-channel-label .drop-bottom.drag-over:after{
content: "";
display: block;
width: 270px;
height: 6px;
background: #1F8BFF;
margin-top: 16px;
}
.animation-channel-label .drop-top.drag-over:before{
content: "";
display: block;
width: 270px;
height: 6px;
background: #1F8BFF;
margin-top: -4px;
}
.animation-channel-label .drop-top.drag-over:first-child:before{
margin-top: -1px;
}
.animation-timeline .fa-circle.locked, .animation-timeline .fa-circle.visible{
font-size: 7px;
top: -2px;
left: 2px;
}
.animation-timeline-notches-container{
height: 22px;
}
.animation-timeline-notch {
cursor: ew-resize;
width: (@animation-channel-tick-width * 5);
height: @animation-channel-tick-height / 2;
line-height: @animation-channel-tick-height / 2;
font-size: 10px;
padding-left: 6px;
color: #a5a5a7;
display: inline-block;
float: left;
}
.animation-channel {
height: @animation-channel-tick-height;
clear: both;
}
.animation-channel-label {
width: @animation-channel-tick-width * 15;
height: @animation-channel-tick-height;
line-height: @animation-channel-tick-height;
font-size: 12px;
text-align: right;
padding-right: 12px;
float: left;
background: #363636;
color: #959597;
border-top: thin solid #525252;
}
.animation-channel-label input{
background: none;
border: none;
cursor: pointer;
left: -51px;
position: relative;
}
.animation-channel-label input:focus{
background: white;
border: thin solid grey;
color: #3f3f3f;
}
.animation-channel-label .type{
float: right;
font-size: 10px;
opacity: 0.5;
}
.animation-channel-label.selected {
background: #CE8D01;
}
.animation-channel-label.odd {
background: #404040;
}
.animation-channel-label.selected.odd {
background: #CE8D01;
}
.animation-channel-label:last-child{
border-bottom: thin solid #525252;
}
.animation-channel .animation-channel-keyframes {
display: inline-block;
}
.animation-channel-keyframes {
cursor: pointer;
height: @animation-channel-tick-height + 2;
}
@keyframe-slot-color: #404040;
@keyframe-slot-shadow: #3A3A3A;
@keyframe-slot-hightlight: #4B4B4B;
.animation-channel .animation-channel-keyframe-slot {
width: @animation-channel-tick-width;
height: @animation-channel-tick-height;
display: inline-block;
padding: 0px;
margin: 0px;
background: @keyframe-slot-color;
border-left: thin solid @keyframe-slot-hightlight;
border-top: thin solid @keyframe-slot-hightlight;
border-right: thin solid @keyframe-slot-shadow;
border-bottom: thin solid @keyframe-slot-shadow;
}
@keyframe-marker-color: #3C3C3C;
@keyframe-marker-shadow: #3A3A3A;
@keyframe-marker-hightlight: #4B4B4B;
.animation-channel .animation-channel-keyframe-slot.marker {
background: @keyframe-marker-color;
border-left: thin solid @keyframe-marker-hightlight;
border-top: thin solid @keyframe-marker-hightlight;
border-right: thin solid @keyframe-marker-shadow;
border-bottom: thin solid @keyframe-marker-shadow;
}
.animation-channel .animation-channel-keyframe-slot.shadowed-dark {
background: #1A4A85
}
.animation-channel .animation-channel-keyframe-slot.shadowed-light {
background: #5176A3;
}
.animation-channel .animation-channel-keyframe-slot.selected {
background: #635433;
}
.animation-channel .animation-channel-keyframe-slot.exists {
border: thin solid #2f2f2f;
}
.animation-channel .animation-channel-keyframe-slot.selected.exists {
background: #CE8D01;
}
.animation-channel .animation-channel-keyframe-slot.exists:after{
content: "•";
position: relative;
float: left;
color: #1f1f1f;
margin-left: 0px;
margin-top: -3px;
font-size: 29px;
}
.animation-channel .animation-channel-keyframe-slot:hover {
opacity: 0.4;
}
.animation-channel .animation-channel-keyframe-slot.drag-over,
.animation-channel .animation-channel-keyframe-slot.marker.drag-over,
.animation-channel .animation-channel-keyframe-slot.exceeds.drag-over,
.animation-channel .animation-channel-keyframe-slot.selected.drag-over,
.animation-channel .animation-channel-keyframe-slot.exists.drag-over{
background: #1F8BFF;
opacity: 1.0;
}
.animation-channel .animation-channel-keyframe-slot.drag-over-empty,
.animation-channel .animation-channel-keyframe-slot.marker.drag-over-empty,
.animation-channel .animation-channel-keyframe-slot.exceeds.drag-over-empty,
.animation-channel .animation-channel-keyframe-slot.selected.drag-over-empty,
.animation-channel .animation-channel-keyframe-slot.exists.drag-over-empty{
background: #37526F;
opacity: 1.0;
}
.animation-channel .animation-channel-keyframe-slot.drag-over-mismatched,
.animation-channel .animation-channel-keyframe-slot.marker.drag-over-mismatched,
.animation-channel .animation-channel-keyframe-slot.exceeds.drag-over-mismatched,
.animation-channel .animation-channel-keyframe-slot.selected.drag-over-mismatched,
.animation-channel .animation-channel-keyframe-slot.exists.drag-over-mismatched{
background: #6F1212;
border: thin solid #664C4C;
opacity: 1.0;
}
.animation-channel .animation-channel-keyframe-slot.exceeds {
background-color: #5E3737;
}
.animation-channel .animation-channel-keyframe-slot > .slot-effect{
background: green;
width: @animation-channel-tick-width - 2;
height: @animation-channel-tick-height - 2;
display: none;
position: absolute;
}
.animation-timeline-indicator {
position: absolute;
opacity: 0.5;
width: 20px;
height: 20px;
z-index: 1;
}
.animation-timeline-indicator-handle {
width: 17px;
height: 22px;
margin: 0px 2px 2px 1px;
background: red;
border: thin solid #9f0000;
cursor: ew-resize;
}
.animation-timeline-indicator-line {
width: 2px;
background: #9f0000;
pointer-events: none;
opacity: 0.7;
}
.animation-channel-labels-container {
width: 271px;
clear: both;
background: #404040;
border-right: thin solid #363636;
}
.animation-editor-playback-controls{
background: #3f3f3f;
width: 250px;
height: 40px;
position: absolute;
margin-top: -57px;
z-index: 2;
border: thin solid #525252;
border-radius: 10px;
text-align: center;
}
.animation-editor-playback-controls > i {
font-size: 22px;
line-height: 22px;
padding: 8.5px;
color: #afafaf;
margin-top: 0px;
}
.animation-editor-playback-controls > .fa {
cursor: pointer;
}
.animation-editor-playback-controls > .fa:hover{
color: #efefef;
}
.animation-editor-playback-controls > .fa-gear{
color: #6f6f6f;
padding: 6.5px;
}
.animation-editor-playback-controls > .fa-gear:hover{
color: #9f9f9f;
}
.animation-preview > canvas{
cursor: pointer;
}
.event-editor > atom-text-editor.is-focused {
outline: auto -webkit-focus-ring-color;
}
.animation-settings {
width: 150px;
height: 63px;
position: relative;
margin-top: -100px;
margin-left: 121px;
z-index: 1;
}
.settings-container{
width: 100%;
height: 100%;
background-color: #363636;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
padding: 5px;
border-radius: 2px;
border: 1px solid rgba(255, 255, 255, 0.07);
z-index: 1;
}
.settings-container > label{
color: grey;
display: block;
}
.settings-mousetrap{
position:absolute;
width: 10000px;
height: 10000px;
margin-left: -5000px;
margin-top: -5000px;
z-index: -1;
}
/*
.right-pane input[type="number"] {
color: @text-color;
font-family: @font-family;
background-color: @input-background-color;
font-size: (@font-size + 4);
border: 1px solid @input-border-color;
}
*/
.animation-editor-properties {
background: @base-background-color;
width: 100%;
height: 100%;
overflow: auto;
}
.animation-editor-properties input[type="number"]:focus{
background: #616161;
color: #afafaf;
}
.animation-editor-properties input[type="number"]:focus::selection{
background: #afaf3f;
}
.animation-editor .face {
background-color: @tree-view-background-color;
}
.eye-mode {
border-bottom: 1px solid @panel-heading-border-color;
border-top: 1px solid fadein(@background-color-highlight, 10%);
background-color: transparent;
background-image: -webkit-linear-gradient(@panel-heading-background-color, darken(@panel-heading-background-color, 10%));
width: 100%;
}
.video-container {
background-color: @tree-view-background-color;
}
.animation-editor .pixi-container {
background-color: @tree-view-background-color;
}

15
node_modules/jibo-sdk/styles/atom-react.less generated vendored Executable file
View File

@@ -0,0 +1,15 @@
@import "ui-variables";
input[type="number"] {
color: @text-color;
font-family: @font-family;
background-color: @input-background-color;
font-size: (@font-size + 4);
border: 1px solid @input-border-color;
text-align: right;
}
.jibo-tool-bar .btn{
height: 100%;
}

219
node_modules/jibo-sdk/styles/behavior-editor.less generated vendored Normal file
View File

@@ -0,0 +1,219 @@
@import "ui-variables";
.behavior-editor-container {
display: flex;
width: 100%;
height: 100%;
}
li.list-item.selected-item {
background-color: @background-color-selected;
span {
color: @text-color-highlight;
}
}
.right-pane {
display: flex;
flex-direction: column;
width: 100%;
height: 100%;
background-color: @tree-view-background-color;
overflow: hidden;
border: solid @pane-item-border-color 2px;
}
.right-pane h1 {
font-family: @font-family;
color: @text-color;
font-weight: bold;
margin-bottom: 3px;
margin-top: 3px;
}
.right-pane hr {
margin-top: 10px;
margin-bottom: 3px;
}
.right-pane p {
font-family: @font-family;
color: @text-color;
font-weight: bold;
font-size: 15px;
white-space: normal;
}
.arguments-scroll-container {
flex: 1;
margin-left: 5px;
margin-right: 5px;
overflow-x: auto;
}
.arguments-container {
width: 100%;
height: 400px;
}
.argument-editor {
width: 100%;
height: 200px;
}
.input-div {
background-color: @input-background-color;
border: 1px solid @input-border-color;
box-shadow: 1px 1px 1px 0 @input-border-color inset;
margin-top: 5px;
margin-left: auto;
margin-right: auto;
padding: 2px 3px;
font-size: 14px;
width: 95%;
height: 25px;
color: @text-color;
font-family: @font-family;
}
[contenteditable="true"].input-div {
white-space: nowrap;
overflow: hidden;
}
[contenteditable="true"].input-div br {
display:none;
}
[contenteditable="true"].input-div * {
display:inline;
white-space:nowrap;
}
.jibo-list-group {
list-style: none;
background-color: transparent;
border: none;
}
.behavior-selector-modal {
width: 800px;
height: 600px;
margin-left: -150px;
background-color: @input-background-color;
border: solid @base-border-color 1px;
.panel-heading {
height: 35px;
}
.contents {
border: solid @base-border-color 1px;
display: flex;
height: 450px;
margin: 10px;
.description-contents {
height: 450px;
width: 330px;
.behavior-description {
height: 418px;
margin-left: 10px;
background-color: @tree-view-background-color;
div {
padding: 10px;
}
}
}
.list-contents {
width: 223px;
height: 450px;
}
.list-group {
overflow-y: scroll;
height: 418px;
position: relative;
padding-left: 10px;
padding-right: 10px;
padding-bottom: 10px;
padding-top: 10px;
width: 100%;
background-color: @tree-view-background-color;
}
.list-group.schema-list {
margin-left: 5px;
}
.list-group:focus {
outline: auto -webkit-focus-ring-color;
}
}
.btn-group {
margin-left: 10px;
}
}
.asset-selector-modal {
width: 900px;
height: 600px;
margin-left: -150px;
background-color: @input-background-color;
border: solid @base-border-color 1px;
.panel-heading {
height: 35px;
}
.contents {
border: solid @base-border-color 1px;
display: flex;
height: 450px;
margin: 10px;
.preview-contents {
height: 400px;
width: 430px;
.asset-preview {
overflow: scroll;
width: 410px;
height: 418px;
padding: 10px;
background-color: @tree-view-background-color;
}
}
.name-list-contents {
width: 453px;
height: 450px;
}
.list-contents {
width: 253px;
height: 450px;
}
.list-group {
overflow-y: scroll;
height: 418px;
position: relative;
padding-left: 10px;
padding-right: 10px;
padding-bottom: 10px;
padding-top: 10px;
width: 100%;
background-color: @tree-view-background-color;
}
.asset-list {
overflow-y: scroll;
height: 418px;
position: relative;
padding-right: 5px;
padding-left: 5px;
li {
padding-left: 5px;
}
}
.list-group:focus {
outline: auto -webkit-focus-ring-color;
}
}
.btn-group {
margin-left: 10px;
}
}

0
node_modules/jibo-sdk/styles/flow.less generated vendored Normal file
View File

1802
node_modules/jibo-sdk/styles/font-awesome.less generated vendored Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

483
node_modules/jibo-sdk/styles/index.less generated vendored Normal file
View File

@@ -0,0 +1,483 @@
/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
/**
* 1. Set default font family to sans-serif.
* 2. Prevent iOS text size adjust after orientation change, without disabling
* user zoom.
*/
html {
font-family: sans-serif; /* 1 */
-ms-text-size-adjust: 100%; /* 2 */
-webkit-text-size-adjust: 100%; /* 2 */
}
/**
* Remove default margin.
*/
body {
margin: 0;
}
/* HTML5 display definitions
========================================================================== */
/**
* Correct `block` display not defined for any HTML5 element in IE 8/9.
* Correct `block` display not defined for `details` or `summary` in IE 10/11
* and Firefox.
* Correct `block` display not defined for `main` in IE 11.
*/
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
display: block;
}
/**
* 1. Correct `inline-block` display not defined in IE 8/9.
* 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
*/
audio,
canvas,
progress,
video {
display: inline-block; /* 1 */
vertical-align: baseline; /* 2 */
}
/**
* Prevent modern browsers from displaying `audio` without controls.
* Remove excess height in iOS 5 devices.
*/
audio:not([controls]) {
display: none;
height: 0;
}
/**
* Address `[hidden]` styling not present in IE 8/9/10.
* Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
*/
[hidden],
template {
display: none;
}
/* Links
========================================================================== */
/**
* Remove the gray background color from active links in IE 10.
*/
a {
background-color: transparent;
}
/**
* Improve readability when focused and also mouse hovered in all browsers.
*/
a:active,
a:hover {
outline: 0;
}
/* Text-level semantics
========================================================================== */
/**
* Address styling not present in IE 8/9/10/11, Safari, and Chrome.
*/
abbr[title] {
border-bottom: 1px dotted;
}
/**
* Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
*/
b,
strong {
font-weight: bold;
}
/**
* Address styling not present in Safari and Chrome.
*/
dfn {
font-style: italic;
}
/**
* Address variable `h1` font-size and margin within `section` and `article`
* contexts in Firefox 4+, Safari, and Chrome.
*/
h1 {
font-size: 2em;
margin: 0.67em 0;
}
/**
* Address styling not present in IE 8/9.
*/
mark {
background: #ff0;
color: #000;
}
/**
* Address inconsistent and variable font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent `sub` and `sup` affecting `line-height` in all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
/* Embedded content
========================================================================== */
/**
* Remove border when inside `a` element in IE 8/9/10.
*/
img {
border: 0;
}
/**
* Correct overflow not hidden in IE 9/10/11.
*/
svg:not(:root) {
overflow: hidden;
}
/* Grouping content
========================================================================== */
/**
* Address margin not present in IE 8/9 and Safari.
*/
figure {
margin: 1em 40px;
}
/**
* Address differences between Firefox and other browsers.
*/
hr {
-moz-box-sizing: content-box;
box-sizing: content-box;
height: 0;
}
/**
* Contain overflow in all browsers.
*/
pre {
overflow: auto;
}
/**
* Address odd `em`-unit font size rendering in all browsers.
*/
code,
kbd,
pre,
samp {
font-family: monospace, monospace;
font-size: 1em;
}
/* Forms
========================================================================== */
/**
* Known limitation: by default, Chrome and Safari on OS X allow very limited
* styling of `select`, unless a `border` property is set.
*/
/**
* 1. Correct color not being inherited.
* Known issue: affects color of disabled elements.
* 2. Correct font properties not being inherited.
* 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
*/
button,
input,
optgroup,
select,
textarea {
color: inherit; /* 1 */
font: inherit; /* 2 */
margin: 0; /* 3 */
}
/**
* Address `overflow` set to `hidden` in IE 8/9/10/11.
*/
button {
overflow: visible;
}
/**
* Address inconsistent `text-transform` inheritance for `button` and `select`.
* All other form control elements do not inherit `text-transform` values.
* Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
* Correct `select` style inheritance in Firefox.
*/
button,
select {
text-transform: none;
}
/**
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
* and `video` controls.
* 2. Correct inability to style clickable `input` types in iOS.
* 3. Improve usability and consistency of cursor style between image-type
* `input` and others.
*/
button,
html input[type="button"], /* 1 */
input[type="reset"],
input[type="submit"] {
-webkit-appearance: button; /* 2 */
cursor: pointer; /* 3 */
}
/**
* Re-set default cursor for disabled elements.
*/
button[disabled],
html input[disabled] {
cursor: default;
}
/**
* Remove inner padding and border in Firefox 4+.
*/
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
padding: 0;
}
/**
* Address Firefox 4+ setting `line-height` on `input` using `!important` in
* the UA stylesheet.
*/
input {
line-height: normal;
}
/**
* It's recommended that you don't attempt to style these elements.
* Firefox's implementation doesn't respect box-sizing, padding, or width.
*
* 1. Address box sizing set to `content-box` in IE 8/9/10.
* 2. Remove excess padding in IE 8/9/10.
*/
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
/**
* Fix the cursor style for Chrome's increment/decrement buttons. For certain
* `font-size` values of the `input`, it causes the cursor style of the
* decrement button to change from `default` to `text`.
*/
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
height: auto;
}
/**
* 1. Address `appearance` set to `searchfield` in Safari and Chrome.
* 2. Address `box-sizing` set to `border-box` in Safari and Chrome
* (include `-moz` to future-proof).
*/
input[type="search"] {
-webkit-appearance: textfield; /* 1 */
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box; /* 2 */
box-sizing: content-box;
}
/**
* Remove inner padding and search cancel button in Safari and Chrome on OS X.
* Safari (but not Chrome) clips the cancel button when the search input has
* padding (and `textfield` appearance).
*/
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* Define consistent border, margin, and padding.
*/
fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
}
/**
* 1. Correct `color` not being inherited in IE 8/9/10/11.
* 2. Remove padding so people aren't caught out if they zero out fieldsets.
*/
legend {
border: 0; /* 1 */
padding: 0; /* 2 */
}
/**
* Remove default vertical scrollbar in IE 8/9/10/11.
*/
textarea {
overflow: auto;
}
/**
* Don't inherit the `font-weight` (applied by a rule above).
* NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
*/
optgroup {
font-weight: bold;
}
/* Tables
========================================================================== */
/**
* Remove most spacing between table cells.
*/
table {
border-collapse: collapse;
border-spacing: 0;
}
td,
th {
padding: 0;
}
.color-picker,
.color-picker *,
.cp-saturation-spectrum,
.cp-saturation-spectrum *,
.cp-hue-spectrum,
.cp-hue-spectrum * {
box-sizing: border-box;
}
.cp-saturation-spectrum,
.cp-hue-spectrum {
position: relative;
display: inline-block;
}
.cp-saturation-white,
.cp-saturation-black {
position: relative;
width: 100%;
height: 100%;
}
.cp-saturation-white {
background: linear-gradient(to right, #fff, rgba(204,154,129,0));
}
.cp-saturation-black {
background: linear-gradient(to top, #000, rgba(204,154,129,0));
}
.cp-saturation-spectrum {
cursor: pointer;
}
.cp-saturation-spectrum .cp-saturation-drag {
display: none;
border: 1px solid #fff;
border-radius: 10px;
position: absolute;
top: 0px;
left: 0px;
}
.cp-saturation-spectrum .cp-saturation-drag .inner {
position: relative;
width: 100%;
height: 100%;
border: 1px solid #000;
border-radius: 10px;
}
.cp-hue-spectrum {
background: linear-gradient(to bottom, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);
cursor: pointer;
}
.cp-hue-spectrum .cp-hue-drag {
display: none;
position: absolute;
top: 0px;
left: 0px;
width: 100%;
border: 1px solid #000;
}

33
node_modules/jibo-sdk/styles/jibo-rule-linter.less generated vendored Normal file
View File

@@ -0,0 +1,33 @@
@import "ui-variables";
atom-text-editor.editor {
.gutter .line-number {
&.jibo-line-number-red {
color: @text-color-error;
font-weight: bold;
}
}
.jibo-highlight-red .region {
background-color: @text-color-error;
}
}
.rule-panel {
height: 100%;
width: 480px;
}
.rule-panel .json-container {
display: block;
position: absolute;
height: auto;
bottom: 0;
top: 0;
right: 0;
left: 0;
margin-top: 125px;
margin-bottom: 26px;
margin-right: 10px;
margin-left: 10px;
}

38
node_modules/jibo-sdk/styles/layout.less generated vendored Normal file
View File

@@ -0,0 +1,38 @@
.layout {
width: 100%;
height: 100%;
white-space: nowrap;
}
.layout div {
-moz-user-select: -moz-none;
-webkit-user-select: none;
user-select: none;
}
.h-layout {
width: 100%;
height: 100%;
white-space: nowrap;
display: inline-flex;
}
.h-child-container {
width: 100%;
height: 100%;
float: left;
}
.v-child-container {
width: 100%;
height: 100%;
}
.layout-handle {
margin: auto;
}
.layout-handle:hover {
background-color: #999999;
}

21
node_modules/jibo-sdk/styles/main.less generated vendored Normal file
View File

@@ -0,0 +1,21 @@
@import "ui-variables";
.modal-background {
background-color: @base-background-color;
}
.fill {
display: flex;
flex-direction: column;
justify-content: center;
}
.fill > div {
/* these are the flex items */
flex-grow: 1;
}
.bodyRenderer {
width: 800;
height: 600;
}

311
node_modules/jibo-sdk/styles/mim-editor.less generated vendored Normal file
View File

@@ -0,0 +1,311 @@
@import "ui-variables";
.mim-editor {
overflow-x: auto;
.mim-editor-frame {
display: flex;
width: 100%;
height: 100%;
flex-direction: row;
}
.left-pane {
min-width: 300px;
max-width: 500px;
height: 100%;
flex: 1;
margin-right: 5px;
}
.right-pane {
min-width: 570px;
height: 100%;
flex: 1;
border: none;
margin-left: 5px;
}
.mim-title {
font-size: 1.6em;
-webkit-user-select: none;
margin-top: 10px;
width: 100%;
display:table;
}
.mim-title > div {
display: table-cell;
}
.mim-title .setting-title {
padding-left: 10px;
width: 160px;
}
.mim-title > .mim-id {
font-style: italic;
}
.mim-setting {
margin-bottom: 4px;
}
.mim-setting > div {
width: 100%;
display:flex;
flex-direction: row;
}
.mim-setting > div > div {
display: inline-block;
}
.mim-setting .setting-title {
font-size: 1.2em;
-webkit-user-select: none;
//vertical-align: middle;
padding-top: 4px;
width: 160px;
}
.mim-setting .option {
flex: 1;
}
.mim-gui-option {
> div, .checkbox {
display: inline-block;
}
}
.prompt-pane-container {
display: table;
height: 100%;
width: 100%;
}
.prompt-list-header {
display: table-row;
margin-bottom: 5px;
}
.prompt-list-outer {
display: table-row;
height: 100%;
}
.prompt-list-inner {
height: 100%;
position: relative;
}
.prompt-list {
display: block;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
overflow-y: scroll;
overflow-x: hidden;
}
.prompt-list-title {
font-size: 1.2em;
-webkit-user-select: none;
vertical-align: middle;
display: inline;
margin-right: 20px;
}
.mim-prompt {
border-style: solid;
border-width: 1px;
border-color: #666666;
margin-top: 2px;
margin-bottom: 2px;
padding-left: 8px;
display: block;
}
.mim-prompt .row {
width: 100%;
display: flex;
flex-direction: row;
}
.mim-prompt .row .mim-setting {
flex: 1;
//min-width: 285px;
}
.mim-prompt .row .delete-button-wrapper {
margin-left: 10px;
margin-right: 10px;
}
.mim-prompt .mim-setting .setting-title:not(.short) {
width: 145px;
}
.mim-prompt .mim-setting .setting-title.short {
width: 60px;
margin-left: 20px;
}
.hidden-block-setting {
visibility: hidden;
pointer-events: none;
}
.hidden-setting {
display: none;
}
.disabled-setting {
opacity: 0.4;
}
.mim-type-announcement {
.needs-mim-type:not(.works-with-type-AN):not(.mim-prompt) {
.hidden-setting;
}
.needs-mim-type:not(.works-with-type-AN).mim-prompt {
.disabled-setting;
}
}
.mim-type-optional-response {
.needs-mim-type:not(.works-with-type-OR):not(.mim-prompt) {
.hidden-setting;
}
.needs-mim-type:not(.works-with-type-OR).mim-prompt {
.disabled-setting;
}
}
.mim-type-question {
.needs-mim-type:not(.works-with-type-Q):not(.mim-prompt) {
.hidden-setting;
}
.needs-mim-type:not(.works-with-type-Q).mim-prompt {
.disabled-setting;
}
}
.mim-prompt:not(.prompt-type-Errors) .prompt-cat-error-only {
.hidden-block-setting;
}
}
.mim-menu-modal {
width: 900px;
height: 600px;
margin-left: -150px;
background-color: @input-background-color;
border: solid @base-border-color 1px;
.panel-heading {
height: 35px;
}
.contents {
border: solid @base-border-color 1px;
display: flex;
flex-direction: column;
height: 450px;
margin: 10px;
.list-header {
display: flex;
width: 100%;
padding: 5px;
background-color: @tree-view-background-color;
.list-title {
vertical-align: middle;
width: 75px;
}
}
.list-outer {
//display: table-row;
//height: 100%;
flex-grow: 1;
.list-inner {
height: 100%;
//position: relative;
.list {
display: block;
//position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
overflow-y: scroll;
overflow-x: hidden;
.button-entry {
display: flex;
flex-direction: row;
.delete-button-wrapper {
align-content: center;
background-color: @tree-view-background-color;
}
.column {
flex-grow: 1;
padding: 2px;
border: solid @base-border-color 1px;
background-color: @tree-view-background-color;
.option-title {
text-align: center;
}
}
}
}
}
}
}
.btn-group {
margin-left: 10px;
}
}
.color-modal {
width: 900px;
height: 600px;
margin-left: -150px;
background-color: @input-background-color;
border: solid @base-border-color 1px;
.panel-heading {
height: 35px;
}
.contents {
border: solid @base-border-color 1px;
display: flex;
flex-direction: column;
height: 450px;
margin: 10px;
}
.btn-group {
margin-left: 10px;
}
}
.color-preview {
display:flex;
flex-direction: row;
justify-content: space-around;
> div {
display: inline-block;
}
}

28
node_modules/jibo-sdk/styles/toolbar.less generated vendored Normal file
View File

@@ -0,0 +1,28 @@
@import "ui-variables";
@import "ui-mixins";
.toolbar {
width: 100%;
height: 38px;
background-color: @app-background-color;
overflow-x: hidden;
overflow-y: hidden;
padding: 6px 0px;
}
.comboBox {
background-color: @button-background-color;
border: 1px solid @button-border-color;
width: 30px;
height: 30px;
}
.combo-box-list {
background-color: @base-background-color;
border: 1px solid @button-border-color;
position: absolute;
width: 300px;
top: 0px;
left: 100px;
z-index: 10000;
}

158
node_modules/jibo-sdk/styles/tree-view.less generated vendored Normal file
View File

@@ -0,0 +1,158 @@
@import "ui-variables";
.behavior-tree-container {
display: flex;
flex-grow: 1;
overflow: hidden;
}
.decorator-container {
display: flex;
width: 100%;
flex-grow: 0.2;
overflow: hidden;
}
.tree-grid-view {
position: relative;
white-space: nowrap;
width: 100%;
min-height: 100%;
flex-grow: 1;
overflow: hidden;
background-color: @tree-view-background-color;
border: solid rgba(0, 0, 0, 0.5) 2px;
}
.tree-grid-view .arguments-scroll-container {
height: 92%;
width: 99%;
margin-top: 5px;
position: absolute;
overflow-x: hidden;
}
.tree-grid-view:focus .arguments-scroll-container {
outline: auto -webkit-focus-ring-color;
}
.tree-view-level {
position: relative;
width: 100%;
}
.scroll-container {
width: 100%;
height: 100%;
}
.scroll-content {
overflow-y: scroll;
overflow-x: hidden;
height: 95%;
width: 100%;
position: absolute;
}
.row-wrapper {
// white-space: nowrap;
height: 26px;
}
.row-wrapper:hover {
background-color: @background-color-highlight;
}
.row-wrapper.row-wrapper-selected {
background-color: @background-color-selected;
}
.drop-bar {
// background-color: #93c3cd;
height: 5px;
width: 100%;
}
.arrow {
font-size: @font-size;
position: absolute;
color: @text-color;
padding-top: 3px;
font-size: large;
}
.row-wrapper > .cell {
/*border-bottom: 0px solid #FFFFFF;*/
/*border-top: 1px solid #FFFFFF;*/
/*border-left: 1px solid #FFFFFF;*/
/*border-right: 1px solid #FFFFFF;*/
width: 200px;
height: 20px;
display: inline-block;
position: relative;
left: 0;
}
.row-wrapper-header {
white-space: nowrap;
height: 30px;
width: 100%;
display: flex;
}
.row-wrapper-header > .cell {
width: 200px;
height: 30px;
display: inline-table;
color: #aaaaaa;
text-shadow: none;
border-bottom: 1px solid rgba(0, 0, 0, 0.6);
border-top: 1px solid rgba(255, 255, 255, 0.17);
background-color: transparent;
background-image: -webkit-linear-gradient(#43484d, #2b2f32);
}
.row-wrapper-header > .cell > .separator {
width: 2px;
height: 100%;
resize: horizontal;
float: right;
cursor: ew-resize;
background-color: rgba(0, 0, 0, 0.5);
}
.row-wrapper-header > .cell > .separator:hover {
background-color: #bbbbbb;
}
.row-wrapper > div > p {
text-align: left;
font-size: 14px;
margin-left: 5px;
margin-top: auto;
margin-bottom: auto;
position: absolute;
font-family: @font-family;
// border-left: 2px;
// vertical-align: middle;
-webkit-user-select: none;
color: @text-color;
}
.row-wrapper > div > p.row-selected-text {
color: @text-color-highlight;
}
.row-wrapper-header > div > h1 {
text-align: left;
font-size: 15px;
line-height: 15px;
min-height: 15px;
margin: 0px;
margin-left: 5px;
position: absolute;
font-family: @font-family;
margin-top: 7px;
}

1248
node_modules/jibo-sdk/styles/vis.less generated vendored Normal file

File diff suppressed because it is too large Load Diff

7
node_modules/jibo/lib/main.js generated vendored
View File

@@ -1 +1,6 @@
"use strict";var GLOBAL="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:window;function n(n){if(p.existsSync(n)){var t=require(n);if(t.jibo&&"asset-pack"===t.jibo.type){var i=f.resolve(f.parse(n).dir,t.main);return require(i)}}}function t(n){var t=void 0,i=void 0;d.series([function(n){g.on("set-registry-host",function(i){"string"==typeof i||i instanceof String?t=i:(t=i.registryHost,i.token&&(A.token=i.token,console.warn("Session Token = "+A.token))),n()})},function(n){var e=new XMLHttpRequest;e.timeout=2e3,e.onreadystatechange=function(){4===e.readyState&&200===e.status?(i=JSON.parse(e.responseText),i.records&&(i=i.records,i.sort(function(n,t){return"system-manager"===n.name?-1:"system-manager"===t.name?1:-1})),n()):4===e.readyState&&0===e.status&&n("Could not find registry service at "+t)},e.open("GET",t,!0),e.send(null)},function(){var t=[];i.forEach(function(n){var i=k[n.name];"system-manager"===n.name&&(i=k.systemManager),i&&t.push(function(t){i(n,t)})}),d.parallel(t,function(t,i){t?(console.error("Error: "+t),n(t)):n(null,i)})}],function(t,i){t?(console.error("Error: "+t),n(t)):n(null,i)}),g.send("get-registry-host")}function i(n){m(O.animate,n)}function e(n){if(GLOBAL.isInitializing||GLOBAL.isInitialized)throw new Error("Jibo Singleton may only be initialized once.");GLOBAL.isInitializing=!0,d.series({initAnimate:i,initNetwork:t},function(t){if(t){var i='<div style="position:absolute;top:0px;left:0px;width:100%;height:100%;z-index:999999;background:#a7a7a7;text-align:center;">';i+='<span style="position:absolute;top:250px;left:0px;font-size:44px;font-weight:bold;font-family:Arial;color:#c50000;padding:20px;">'+t+"</span>",i+="</div>",document.body.innerHTML+=i,n(t)}else y.addAllBehaviors(),GLOBAL.isInitialized=!0,n()})}function r(n){return"function"!=typeof n?new Promise(function(n,t){e(function(i){i?t(i):n()})}):void e(n)}var o=function(n){return n&&n.__esModule?n["default"]:n},s=require("animation-utilities"),a=s.body,u=s.LEDOutput,c=s.animate,l=s.visualize,f=o(require("path")),p=o(require("fs")),d=o(require("async")),g=o(require("ipc")),m=o(require("./api/animate")),y=o(require("./bt/main")),v=o(require("./lps-service")),L=o(require("./tts-service")),b=o(require("./nli-service")),q=o(require("./asr/asr-service")),h=o(require("./non-motion-bs")),S=o(require("./system-manager")),A=o(require("./session-manager")),O={init:r,requireAssetPack:n,animate:c.createAnimationUtilities(),visualize:l,asr:q,bt:y,nlu:b,systemManager:S,lps:v,tts:L,bodySettings:h};GLOBAL.jibo||(GLOBAL.jibo=O,GLOBAL.isInitialized=!1,GLOBAL.isInitializing=!1);var k={tts:function(n,t){L.init(n,t)},lps:function(n,t){v.init(n,t)},body:function(n){var t=function(t,i){return n.apply(this,arguments)};return t.toString=function(){return n.toString()},t}(function(n,t){var i="ws:"+n.host+":"+n.port,e=new a.BodyPosVelOutput(l.timeline.getClock(),l.robotInfo,i,!0,33);l.timeline.addOutput(e,null);var r=new u(l.timeline.getClock(),l.robotInfo,i,!0,33);l.timeline.addOutput(r,null),h.init(n,t)}),nlu:function(n){var t=function(t,i){return n.apply(this,arguments)};return t.toString=function(){return n.toString()},t}(function(n,t){b.init(n,t)}),asr:function(n){var t=function(t,i){return n.apply(this,arguments)};return t.toString=function(){return n.toString()},t}(function(n,t){q.init(n,t)}),systemManager:function(n){var t=function(t,i){return n.apply(this,arguments)};return t.toString=function(){return n.toString()},t}(function(n,t){S.init(n,t)})};module.exports=GLOBAL.jibo;
"use strict";var GLOBAL="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:window;function n(n){if(p.existsSync(n)){var t=require(n);if(t.jibo&&"asset-pack"===t.jibo.type){var i=f.resolve(f.parse(n).dir,t.main);return require(i)}}}function t(n){var t=void 0,i=void 0;d.series([function(n){g.on("set-registry-host",function(i){"string"==typeof i||i instanceof String?t=i:(t=i.registryHost,i.token&&(A.token=i.token,console.warn("Session Token = "+A.token))),n()})},function(n){var e=new XMLHttpRequest;e.timeout=2e3,e.onreadystatechange=function(){4===e.readyState&&200===e.status?(i=JSON.parse(e.responseText),i.records&&(i=i.records,i.sort(function(n,t){return"system-manager"===n.name?-1:"system-manager"===t.name?1:-1})),n()):4===e.readyState&&0===e.status&&n("Could not find registry service at "+t)},e.open("GET",t,!0),e.send(null)},function(){var t=[];i.forEach(function(n){var i=k[n.name];"system-manager"===n.name&&(i=k.systemManager),i&&t.push(function(t){i(n,t)})}),d.parallel(t,function(t,i){t?(console.error("Error: "+t),n(t)):n(null,i)})}],function(t,i){t?(console.error("Error: "+t),n(t)):n(null,i)}),g.send("get-registry-host")}function i(n){m(O.animate,n)}function e(n){if(GLOBAL.isInitializing||GLOBAL.isInitialized)throw new Error("Jibo Singleton may only be initialized once.");GLOBAL.isInitializing=!0,d.series({initAnimate:i,initNetwork:t},function(t){if(t){var i='<div style="position:absolute;top:0px;left:0px;width:100%;height:100%;z-index:999999;background:#a7a7a7;text-align:center;">';i+='<span style="position:absolute;top:250px;left:0px;font-size:44px;font-weight:bold;font-family:Arial;color:#c50000;padding:20px;">'+t+"</span>",i+="</div>",document.body.innerHTML+=i,n(t)}else y.addAllBehaviors(),GLOBAL.isInitialized=!0,n()})}function r(n){return"function"!=typeof n?new Promise(function(n,t){e(function(i){i?t(i):n()})}):void e(n)}var o=function(n){return n&&n.__esModule?n["default"]:n},s=require("animation-utilities"),a=s.body,u=s.LEDOutput,c=s.animate,l=s.visualize,f=o(require("path")),p=o(require("fs")),d=o(require("async")),g=o(require("ipc")),m=o(require("./api/animate")),y=o(require("./bt/main")),v=o(require("./lps-service")),L=o(require("./tts-service")),b=o(require("./nli-service")),q=o(require("./asr/asr-service")),h=o(require("./non-motion-bs")),S=o(require("./system-manager")),A=o(require("./session-manager")),O={init:r,requireAssetPack:n,animate:c.createAnimationUtilities(),visualize:l,asr:q,bt:y,nlu:b,systemManager:S,lps:v,tts:L,bodySettings:h};GLOBAL.jibo||(GLOBAL.jibo=O,GLOBAL.isInitialized=!1,GLOBAL.isInitializing=!1);
try{GLOBAL.jibo.utils||(GLOBAL.jibo.utils={}),GLOBAL.jibo.utils.PathUtils=require("./utils/path-utils")}catch(_){}
try{GLOBAL.jibo.flow||(GLOBAL.jibo.flow=require("jibo-flow-core"))}catch(_){}
var k={tts:function(n,t){L.init(n,t)},lps:function(n,t){v.init(n,t)},body:function(n){var t=function(t,i){return n.apply(this,arguments)};return t.toString=function(){return n.toString()},t}(function(n,t){var i="ws:"+n.host+":"+n.port,e=new a.BodyPosVelOutput(l.timeline.getClock(),l.robotInfo,i,!0,33);l.timeline.addOutput(e,null);var r=new u(l.timeline.getClock(),l.robotInfo,i,!0,33);l.timeline.addOutput(r,null),h.init(n,t)}),nlu:function(n){var t=function(t,i){return n.apply(this,arguments)};return t.toString=function(){return n.toString()},t}(function(n,t){b.init(n,t)}),asr:function(n){var t=function(t,i){return n.apply(this,arguments)};return t.toString=function(){return n.toString()},t}(function(n,t){q.init(n,t)}),systemManager:function(n){var t=function(t,i){return n.apply(this,arguments)};return t.toString=function(){return n.toString()},t}(function(n,t){S.init(n,t)})};module.exports=GLOBAL.jibo;

59
node_modules/jibo/lib/utils/path-utils.js generated vendored Normal file
View File

@@ -0,0 +1,59 @@
"use strict";
const path = require("path");
function existsSync(p) {
try {
// eslint-disable-next-line n/no-sync
return require("fs").existsSync(p);
} catch (_) {
return false;
}
}
function isDirectorySync(p) {
try {
// eslint-disable-next-line n/no-sync
return require("fs").statSync(p).isDirectory();
} catch (_) {
return false;
}
}
function findRoot(startPath) {
if (!startPath || typeof startPath !== "string") return null;
// Handle URIs (atom://...) and file:// style strings conservatively.
if (startPath.startsWith("atom://")) return null;
let current = startPath;
if (current.startsWith("file://")) current = current.replace(/^file:\/\//, "");
// If it's a file, walk from its directory.
try {
if (existsSync(current) && !current.endsWith(path.sep)) {
const stat = require("fs").statSync(current);
if (stat && stat.isFile()) current = path.dirname(current);
}
} catch (_) {
current = path.dirname(current);
}
// Prefer `find-root` if available (it is in the SDK dependency tree).
try {
const findRootPkg = require("find-root");
return findRootPkg(current);
} catch (_) {
// Fall back to a simple package.json search.
}
let dir = current;
while (dir && dir !== path.dirname(dir)) {
if (existsSync(path.join(dir, "package.json"))) return dir;
// Jibo SDK projects also commonly have a top-level `src/`.
if (isDirectorySync(path.join(dir, "src"))) return dir;
dir = path.dirname(dir);
}
return null;
}
module.exports = { findRoot };

View File

@@ -51,7 +51,7 @@ function lifecycle (pkg, stage, wd, unsafe, failOk, cb) {
var env = makeEnv(pkg)
env.npm_lifecycle_event = stage
env.npm_node_execpath = env.NODE = env.NODE || process.execPath
env.npm_execpath = require.main.filename
env.npm_execpath = (require.main && require.main.filename) || process.execPath
// "nobody" typically doesn't have permission to write to /tmp
// even if it's never used, sh freaks out.

243
node_modules/remote/index.js generated vendored Normal file
View File

@@ -0,0 +1,243 @@
"use strict";
// Compatibility shim for legacy Atom packages that do `require('remote')`.
//
// Old Electron exposed the `remote` module and Atom packages frequently used:
// const remote = require('remote')
// const dialog = remote.dialog || remote.require('dialog')
//
// Newer Electron removed `remote` by default. Pulsar may provide @electron/remote
// or alternative dialog helpers via Atom's application delegate.
function getElectron() {
try {
// Available in renderer.
return require("electron");
} catch (_) {
return null;
}
}
function getRemote() {
const electron = getElectron();
if (electron && electron.remote) return electron.remote;
try {
// Some apps (incl. Pulsar/Atom forks) ship this.
return require("@electron/remote");
} catch (_) {
return null;
}
}
function getAtomDialogDelegate() {
try {
if (typeof atom !== "undefined" && atom && atom.applicationDelegate) {
return atom.applicationDelegate;
}
} catch (_) {
// ignore
}
return null;
}
function toOldCallback(result, callback) {
// Electron >= 7 showSaveDialog returns { canceled, filePath }
if (!callback) return;
if (!result || result.canceled) return callback(undefined);
return callback(result.filePath);
}
function wrapDialog(dialog) {
if (!dialog) return null;
// Ensure callback-style APIs exist.
if (typeof dialog.showSaveDialog === "function") {
const original = dialog.showSaveDialog.bind(dialog);
dialog.showSaveDialog = function showSaveDialogCompat(browserWindow, options, callback) {
// Legacy call pattern: (win, options, cb)
if (typeof options === "function") {
callback = options;
options = browserWindow;
browserWindow = undefined;
}
try {
const maybePromise = original(browserWindow, options);
if (maybePromise && typeof maybePromise.then === "function") {
return maybePromise.then((res) => {
toOldCallback(res, callback);
return res;
});
}
// Some older implementations support the callback directly.
if (typeof callback === "function") return original(browserWindow, options, callback);
return maybePromise;
} catch (err) {
if (typeof callback === "function") return callback(undefined);
throw err;
}
};
}
if (typeof dialog.showMessageBox === "function") {
const original = dialog.showMessageBox.bind(dialog);
dialog.showMessageBox = function showMessageBoxCompat(browserWindow, options, callback) {
if (typeof options === "function") {
callback = options;
options = browserWindow;
browserWindow = undefined;
}
// Legacy Atom/Electron usage sometimes expects a *synchronous* numeric response.
// Prefer sync primitives when no callback is provided.
if (typeof callback !== "function") {
try {
if (typeof dialog.showMessageBoxSync === "function") {
return dialog.showMessageBoxSync(browserWindow, options);
}
if (typeof atom !== "undefined" && atom && typeof atom.confirm === "function") {
return atom.confirm({
message: (options && (options.title || options.message)) || "",
detailedMessage: options && options.title && options.message ? options.message : undefined,
buttons: (options && options.buttons) || ["OK"],
});
}
} catch (_) {
// Fall through to async implementation.
}
}
try {
const maybePromise = original(browserWindow, options);
if (maybePromise && typeof maybePromise.then === "function") {
return maybePromise.then((res) => {
if (typeof callback === "function") {
// Electron returns { response, checkboxChecked }
callback(res && typeof res.response === "number" ? res.response : res);
}
return res;
});
}
if (typeof callback === "function") return original(browserWindow, options, callback);
return maybePromise;
} catch (err) {
if (typeof callback === "function") return callback(0);
throw err;
}
};
}
return dialog;
}
const remote = getRemote();
const electron = getElectron();
let dialog = null;
if (remote && remote.dialog) dialog = remote.dialog;
else if (electron && electron.dialog) dialog = electron.dialog;
const atomDelegate = getAtomDialogDelegate();
if (!dialog && atomDelegate) {
// Atom/Pulsar delegate methods are typically Promise-based.
dialog = {
showSaveDialog(browserWindow, options, callback) {
try {
const p = atomDelegate.showSaveDialog ? atomDelegate.showSaveDialog(options) : null;
if (p && typeof p.then === "function") {
return p.then((filePath) => {
if (typeof callback === "function") callback(filePath);
return { canceled: !filePath, filePath };
});
}
if (typeof callback === "function") callback(undefined);
return { canceled: true, filePath: undefined };
} catch (err) {
if (typeof callback === "function") callback(undefined);
return { canceled: true, filePath: undefined };
}
},
showMessageBox(browserWindow, options, callback) {
try {
const p = atomDelegate.showMessageBox ? atomDelegate.showMessageBox(options) : null;
if (p && typeof p.then === "function") {
return p.then((response) => {
if (typeof callback === "function") callback(response);
return { response };
});
}
if (typeof callback === "function") callback(0);
return { response: 0 };
} catch (err) {
if (typeof callback === "function") callback(0);
return { response: 0 };
}
},
};
}
// Absolute last-resort fallback: avoid hard crashes if no dialog backend exists.
if (!dialog) {
dialog = {
showSaveDialog(browserWindow, options, callback) {
try {
if (atomDelegate && typeof atomDelegate.showSaveDialog === "function") {
const p = atomDelegate.showSaveDialog(options);
if (p && typeof p.then === "function") {
return p.then((filePath) => {
if (typeof callback === "function") callback(filePath);
return { canceled: !filePath, filePath };
});
}
}
} catch (_) {
// ignore
}
if (typeof callback === "function") callback(undefined);
return { canceled: true, filePath: undefined };
},
showMessageBox(browserWindow, options, callback) {
try {
if (typeof atom !== "undefined" && atom && typeof atom.confirm === "function") {
const response = atom.confirm({
message: (options && (options.title || options.message)) || "",
detailedMessage: options && options.title && options.message ? options.message : undefined,
buttons: (options && options.buttons) || ["OK"],
});
if (typeof callback === "function") callback(response);
return response;
}
} catch (_) {
// ignore
}
if (typeof callback === "function") callback(0);
return 0;
},
};
}
dialog = wrapDialog(dialog);
function remoteRequire(moduleName) {
if (remote && typeof remote.require === "function") return remote.require(moduleName);
if (moduleName === "dialog") return dialog;
// Best-effort: some old code asks for 'browser-window', etc.
if (electron) {
if (moduleName === "browser-window" || moduleName === "BrowserWindow") return electron.BrowserWindow;
if (moduleName === "app") return electron.app;
}
throw new Error("remote.require not available for: " + moduleName);
}
module.exports = {
dialog,
require: remoteRequire,
getCurrentWindow: (remote && typeof remote.getCurrentWindow === "function")
? remote.getCurrentWindow.bind(remote)
: function () {
try {
return typeof atom !== "undefined" && atom.getCurrentWindow ? atom.getCurrentWindow() : undefined;
} catch (_) {
return undefined;
}
},
};

6
node_modules/remote/package.json generated vendored Normal file
View File

@@ -0,0 +1,6 @@
{
"name": "remote",
"version": "0.0.0-jibo-pulsar-shim",
"main": "index.js",
"private": true
}