Socket
Socket
Sign inDemoInstall

nodus-ponens

Package Overview
Dependencies
164
Maintainers
1
Versions
42
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.2.3 to 1.2.4

2

displayHeader.js

@@ -25,3 +25,3 @@ // --------------------------------------------------------------------------------------------------

console.log(" Designed by Sangeet Khemlani")
console.log(" Copyright (C) 2016 Naval Research Laboratory")
console.log(" Copyright (C) 2017 Naval Research Laboratory")
console.log(" Navy Center of Applied Research in Artificial Intelligence")

@@ -28,0 +28,0 @@ console.log(" https://www.nrl.navy.mil/itd/aic/\n")

{
"name": "nodus-ponens",
"version": "1.2.3",
"version": "1.2.4",
"description": "A framework for running high-level reasoning and cognitive science experiments in Node.js.",

@@ -5,0 +5,0 @@ "main": "index.js",

# nodus-ponens
A full-stack framework for running high-level reasoning and cognitive science experiments in node.js.
A full-stack framework for running high-level reasoning and cognitive science experiments in Node.js.
## Modifications
* Fixed errors in documentation specification (caught by Z. Horne)
* Created hanging indentation for radio- and choice-tasks

@@ -62,2 +63,2 @@ * Fixed logging errors (caught by J. Korman)

(c) 2016 Sangeet Khemlani [http://sangeet.khemlani.net/][skhemlani], Creative Commons License.
(c) 2017 Sangeet Khemlani [http://sangeet.khemlani.net/][skhemlani], Creative Commons License.

@@ -48,4 +48,4 @@ // --------------------------------------------------------------------------------------------------

{
var text = fs.readFileSync('./Design.csv').toString(); // read design into CSV string
var design = CSVtoJSON(text, PID); // CSVtoJSON returns stimuli as JSON object
var text = fs.readFileSync('./Design.csv').toString(); // read design into CSV string
var design = CSVtoJSON(text, PID); // CSVtoJSON returns stimuli as JSON object
var stimuli = assignContents(design); // assign contents to the different problems in the design

@@ -57,7 +57,7 @@ return stimuli; // To randomize the order of the stimuli, return np.randomize(stimuli)

{ // and adds some columns for R analyses
var results = [];
var lines = text.split(/\r\n|\r|\n/g);
var header = true;
var results = [];
var lines = text.split(/\r\n|\r|\n/g);
var header = true;
var headerColumns = ["ParticipantID", "ClockTime", "TrialHeader"];
var trialColumn = ["P" + PID, new Date().toISOString(), "Trial"];
var trialColumn = ["P" + PID, new Date().toISOString(), "Trial"];

@@ -64,0 +64,0 @@ lines.forEach(function(line) {

// --------------------------------------------------------------------------------------------------
// CogNode-jQ-API.js is called from "showStimuli.html"
// nodusponens-jQ-API.js is called from "showStimuli.html"
// --------------------------------------------------------------------------------------------------

@@ -12,3 +12,3 @@ // Contents

var trialNumber = 0; // Keeps track of number of trials completed
var trialNumber = 0; // Keeps track of number of trials completed
var startTime;

@@ -22,11 +22,18 @@ var endTime;

$(document).ready(function() // Sets up slider and button functionality, calls server to
{ // get initial stimulus.
var handle = $("#slider-handle");
$("#slider").slider({value: 50,
create: function() {handle.text( $( this ).slider( "value" ) + "%"); },
slide: function( event, ui ) { handle.text( ui.value + "%"); }
});
$("input[type=submit], a, button").button().click(function( event ) { event.preventDefault(); });
callServer(false); // Calls server to get first stimulus as soon as the page loads;
}); // argument false ensures that the backend JS won't log anything
{ // get initial stimulus.
var handle = $("#slider-handle");
$("#slider").slider({
value: 50,
create: function() {
handle.text($(this).slider("value") + "%");
},
slide: function(event, ui) {
handle.text(ui.value + "%");
}
});
$("input[type=submit], a, button").button().click(function(event) {
event.preventDefault();
});
callServer(false); // Calls server to get first stimulus as soon as the page loads;
}); // argument false ensures that the backend JS won't log anything

@@ -39,24 +46,34 @@ // --------------------------------------------------------------------------------------------------

{
var latency = (endTime-startTime)/1000; // Calculates latency client-side
if(latency < latencyMinimum)
{ // Use jQuery to create a "modal dialog", built from "message" div
$("#message").dialog({ modal: true, dialogClass: 'no-close success-dialog',
buttons: { Okay: function() { $( this ).dialog( "close" ); }}});
}
else
{
trialNumber++;
$('#problem-info').hide(); // Hide problem and show loading text
$('#' + task).hide(); // Show task (specified in showStimuli.html)
$('#fixation-cross').show(); // Show loading message
var url = "./getNextStimulus"; // Add real info as queries if response = something...
if(answer) { url += "?answer=" + answer + "&latency=" + latency
+ "&clockTime=" + new Date().toISOString(); }
else { url += "?dumpQuery=dumpThisInformation"; } //...but if not, send dummy info
$.getJSON(url, function (data) {
if(data.Data == "Done") { window.location = "terminateDebrief.html"; }
else { displayProblem(data); } // displayProblem is defined in showStimuli.html
});
}
var latency = (endTime - startTime) / 1000; // Calculates latency client-side
if (latency < latencyMinimum) { // Create a "modal dialog" in jQuery, built from "message" div
$("#message").dialog({
modal: true,
dialogClass: 'no-close success-dialog',
buttons: {
Okay: function() {
$(this).dialog("close");
}
}
});
} else {
trialNumber++;
$('#problem-info').hide(); // Hide problem and show loading text
$('#' + task).hide(); // Show task (specified in showStimuli.html)
$('#fixation-cross').show(); // Show loading message
var url = "./getNextStimulus"; // Add real info as queries if response = something...
if (answer) {
url += "?answer=" + answer + "&latency=" + latency +
"&clockTime=" + new Date().toISOString();
} else {
url += "?dumpQuery=dumpThisInformation";
} //...but if not, send dummy info
$.getJSON(url, function(data) {
if (data.Data == "Done") {
window.location = "terminateDebrief.html";
} else {
displayProblem(data);
} // displayProblem is defined in showStimuli.html
});
}
}

@@ -68,61 +85,56 @@

function showProblemInfo()
{
$('#problem-info').fadeIn(fadeTime);
$('#fixation-cross').hide();
function showProblemInfo(seconds) {
setTimeout(function(){ $('#problem-info').fadeIn(fadeTime*1000);
$('#fixation-cross').hide(); },
seconds*1000);
}
function showTask ()
{
$('#' + task).fadeIn(fadeTime);
startTime = $.now();
function showTask(seconds) {
setTimeout(function(){ $('#' + task).fadeIn(fadeTime*1000);
startTime = $.now(); },
seconds*1000);
}
function resetTask(task)
{
switch(task)
{
case "YN-task":
if(Math.random(1.0)>0.5)
{
setAFC('#YN-option1', "Yes");
setAFC('#YN-option2', "No");
}
else
{
setAFC('#YN-option1', "No");
setAFC('#YN-option2', "Yes");
}
break;
case "2AFC-task":
setAFC('#2AFC-option1', "option-1-reset");
setAFC('#2AFC-option2', "option-2-reset");
break;
case "3AFC-task":
setAFC('#3AFC-option1', "option-1-reset");
setAFC('#3AFC-option2', "option-2-reset");
setAFC('#3AFC-option3', "option-3-reset");
break;
case "slider-task":
setSlider(50);
break;
case "radio-task":
$('input[name="radio-task-buttons"]').attr('checked', false);
setRadio("#radio-1", "radio-value-1-reset");
setRadio("#radio-2", "radio-value-2-reset");
setRadio("#radio-3", "radio-value-3-reset");
break;
case "checkbox-task":
$('input[name="checkbox-task-buttons"]').attr('checked', false);
setCheck("#checkbox-1", "check-value-1-reset");
setCheck("#checkbox-2", "check-value-2-reset");
setCheck("#checkbox-3", "check-value-3-reset");
break;
case "freeresponse-task":
setFreeResponse("");
break;
case "sentencecompletion-task":
setSentenceCompletion("");
break;
}
function resetTask(task) {
switch (task) {
case "YN-task":
if (Math.random(1.0) > 0.5) {
setAFC('#YN-option1', "Yes");
setAFC('#YN-option2', "No");
} else {
setAFC('#YN-option1', "No");
setAFC('#YN-option2', "Yes");
}
break;
case "2AFC-task":
setAFC('#2AFC-option1', "option-1-reset");
setAFC('#2AFC-option2', "option-2-reset");
break;
case "3AFC-task":
setAFC('#3AFC-option1', "option-1-reset");
setAFC('#3AFC-option2', "option-2-reset");
setAFC('#3AFC-option3', "option-3-reset");
break;
case "slider-task":
setSlider(50);
break;
case "radio-task":
$('input[name="radio-task-buttons"]').attr('checked', false);
setRadio("#radio-1", "radio-value-1-reset");
setRadio("#radio-2", "radio-value-2-reset");
setRadio("#radio-3", "radio-value-3-reset");
break;
case "checkbox-task":
$('input[name="checkbox-task-buttons"]').attr('checked', false);
setCheck("#checkbox-1", "check-value-1-reset");
setCheck("#checkbox-2", "check-value-2-reset");
setCheck("#checkbox-3", "check-value-3-reset");
break;
case "freeresponse-task":
setFreeResponse("");
break;
case "sentencecompletion-task":
setSentenceCompletion("");
break;
}
}

@@ -134,70 +146,58 @@

function respondAFC(option)
{
endTime = $.now();
callServer($(option).val());
function respondAFC(option) {
endTime = $.now();
callServer($(option).val());
}
function setAFC(option, value)
{
$(option).html(value);
$(option).val(value);
function setAFC(option, value) {
$(option).html(value);
$(option).val(value);
}
function respondSlider(option)
{
endTime = $.now();
callServer($("#slider").slider("value"));
function respondSlider(option) {
endTime = $.now();
callServer($("#slider").slider("value"));
}
function setSlider(value)
{
$("#slider").slider("value", value);
$("#slider-handle").text(value + "%");
function setSlider(value) {
$("#slider").slider("value", value);
$("#slider-handle").text(value + "%");
}
function respondRadio()
{
endTime = $.now();
var selected = $("#radio-task input[type='radio']:checked");
callServer($("label[for='"+selected.attr("id")+"']").text());
function respondRadio() {
endTime = $.now();
var selected = $("#radio-task input[type='radio']:checked");
callServer($("label[for='" + selected.attr("id") + "']").text());
}
function setRadio(option, value)
{
$("label[for='"+$(option).attr("id")+"']").text(value);
function setRadio(option, value) {
$("label[for='" + $(option).attr("id") + "']").text(value);
}
function respondCheck()
{
endTime = $.now();
var selected = $("#checkbox-task input[type='radio']:checked");
callServer($("label[for='"+selected.attr("id")+"']").text());
function respondCheck() {
endTime = $.now();
var selected = $("#checkbox-task input[type='radio']:checked");
callServer($("label[for='" + selected.attr("id") + "']").text());
}
function setCheck(option, value)
{
$("label[for='"+$(option).attr("id")+"']").text(value);
function setCheck(option, value) {
$("label[for='" + $(option).attr("id") + "']").text(value);
}
function respondFreeResponse()
{
endTime = $.now();
callServer($("#freeresponse").val());
function respondFreeResponse() {
endTime = $.now();
callServer($("#freeresponse").val());
}
function setFreeResponse(value)
{
$("#freeresponse").val(value);
function setFreeResponse(value) {
$("#freeresponse").val(value);
}
function respondSentenceCompletion()
{
endTime = $.now();
callServer($("#completion").val());
function respondSentenceCompletion() {
endTime = $.now();
callServer($("#completion").val());
}
function setSentenceCompletion(value)
{
$("#completion").val(value);
function setSentenceCompletion(value) {
$("#completion").val(value);
}

@@ -209,11 +209,13 @@

function randomize(array)
{
var currentIndex = array.length, temporaryValue, randomIndex;
while (0 !== currentIndex) { // While there remain elements to shuffle...
randomIndex = Math.floor(Math.random() * currentIndex); // Pick a remaining element...
currentIndex -= 1; temporaryValue = array[currentIndex];// ...and swap it with the current element.
array[currentIndex] = array[randomIndex]; array[randomIndex] = temporaryValue;
}
return array;
function randomize(array) {
var currentIndex = array.length,
temporaryValue, randomIndex;
while (0 !== currentIndex) { // While there remain elements to shuffle...
randomIndex = Math.floor(Math.random() * currentIndex); // Pick a remaining element...
currentIndex -= 1;
temporaryValue = array[currentIndex]; // ...and swap it with the current element.
array[currentIndex] = array[randomIndex];
array[randomIndex] = temporaryValue;
}
return array;
}

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc