jsPsych/packages/jspsych/CHANGELOG.md
2022-03-13 15:31:28 +00:00

9.1 KiB

jspsych

7.2.1

Patch Changes

  • #2540 48b83652 Thanks @bjoluc! - Fix a ReferenceError ("require$0 is not defined") related to the new seedable random number generator

7.2.0

Minor Changes

  • #2407 cafc6a1f Thanks @jodeleeuw! - Added filterColumns() to the DataCollection class. This function lets users select a subset of the columns in the DataCollection. It is the opposite of the ignore() method.
  • #2379 9a28fb08 Thanks @jodeleeuw! - Added setSeed() to jsPsych.randomization to allow for seeding the random number generator and generating predictable sequences of random numbers.

Patch Changes

  • #2539 49d69075 Thanks @jodeleeuw! - Fixed an issue where the post_trial_gap was still run in realtime during data-only simulation mode. The gap is now skipped as intended.
  • #2504 60f4d868 Thanks @bjoluc! - Inline Open Sans web font in jspsych.css to be GDPR-compliant (see #2153)

7.1.2

Patch Changes

  • #2380 5159e0eb Thanks @jodeleeuw! - Fixed the case where simulation_options is a function that returns a string for looking up corresponding options in the simulate settings.

7.1.1

Patch Changes

  • #2376 01f8a373 Thanks @jodeleeuw! - Fixed the default case for jsPsych.simulate() when no simulation_mode is specified. Now properly runs in data-only mode.

7.1.0

Minor Changes

  • #2350 c81b5007 Thanks @jodeleeuw! - Added microphone related features to the pluginAPI module: initializeMicrophoneRecorder() and getMicrophoneRecorder(). These allow sharing of the MediaRecorder object attached to the microphone's MediaStream across trials.
  • #2245 1216ace2 Thanks @bjoluc! - Throw errors if trial type parameters are strings, deprecated jsPsych functions are called, or the global jsPsych variable is used without assigning a JsPsych instance first (#2217)
  • #2287 522aa2cd Thanks @jodeleeuw! - Added randomInt(lower, upper), sampleBernoulli(p), sampleNormal(mean, std), sampleExponential(rate), and sampleExGaussian(mean, std, rate, positive=false) to jsPsych.randomization.
  • #2287 522aa2cd Thanks @jodeleeuw! - Added the ability to run the experiment in simulation mode using jsPsych.simulate(). See the simulation mode documentation for information about how to get started.
  • #2287 522aa2cd Thanks @jodeleeuw! - Added methods to assist with simulation (e.g., pressKey for dispatching a keyboard event and clickTarget for dispatching a click event) to the PluginAPI module.
  • #2209 45fb3ebb Thanks @jodeleeuw! - jsPsych.endExperiment() has a new, optional second parameter for saving data. Passing in an object of key-value pairs will store the pairs in the data for the final trial of the experiment.
  • #2287 522aa2cd Thanks @jodeleeuw! - Added several functions to the pluginAPI module in order to support the new simulation feature.

Patch Changes

  • #2287 522aa2cd Thanks @jodeleeuw! - The weights argument for randomization.sampleWithReplacement() is now explicitly marked as optional in TypeScript. This has no impact on usage, as the implementation was already treating this argument as optional.

7.0.0

Major Changes

  • #2183 c8760b1 Thanks @jodeleeuw, @becky-gilbert, @bjoluc! - jsPsych is now fully modular, with individual NPM packages for the core library, plugins, and extensions.

    To support this change, we've made a number of breaking changes. We've added a guide for migrating from version 6.x to 7.x to the documentation, and updated the hello world tutorial with instructions for configuring jsPsych in three different ways. In addition to enabling package management, some of the benefits that this change provides include an improved developer experience with IntelliSense code hints, proper encapsulation of jsPsych so that multiple instances can be run on the same page, and easier integration with modern JavaScript tools like bundlers.

  • #2130 2802430 Thanks @jodeleeuw! - Added the option for plugins to return a Promise and delay the execution of the on_load event handler for the trial until the plugin manually invokes it. This allows for plugins that have asynchronous components to finish loading before triggering the on_load event. Added this functionality to all plugins that currently require it.
  • #2100 b0d77e7 Thanks @jodeleeuw! - Renamed all getter-type functions to have get prefix to make it clearer what the role of these functions are. The following were affected:
    • currentTimelineNodeID -> getCurrentTimelineNodeID
    • progress -> getProgress
    • startTime -> getStartTime
    • totalTime -> getTotalTime
    • currentTrial -> getCurrentTrial
    • initSettings -> getInitSettings
    • allTimelineVariables -> getAllTimelineVariables

Minor Changes

  • #2142 12d6753 Thanks @jodeleeuw! - When jsPsych.endExperiment is called it provides the option of displaying a message on the screen. If the on_finish event handler in initJsPsych() returns a Promise then the message will now display only after the promise has resolved.
  • #2129 f37f64a Thanks @jodeleeuw! - All duration measurements, including response times, are now rounded to the nearest millisecond. We changed this because the precision that performance.now() generates is misleading in this context and removing the (often very long) decimal component of the measurement will save space in the data files.
  • #2121 03517a0 Thanks @zimmerrol! - Updated turk.submitToTurk() to use POST instead of GET to avoid errors where too much data is transmitted.