@casual-simulation/aux-common 3.0.0 → 3.0.2-alpha.1971236872

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@casual-simulation/aux-common",
3
- "version": "3.0.0",
3
+ "version": "3.0.2-alpha.1971236872",
4
4
  "description": "Common library for AUX projects",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -34,7 +34,7 @@
34
34
  },
35
35
  "dependencies": {
36
36
  "@casual-simulation/aux-records": "^3.0.0",
37
- "@casual-simulation/causal-trees": "^3.0.0",
37
+ "@casual-simulation/causal-trees": "^3.0.2-alpha.1971236872",
38
38
  "@casual-simulation/crypto": "^3.0.0",
39
39
  "@casual-simulation/error-stack-parser": "^2.0.7",
40
40
  "@casual-simulation/expect": "^3.0.0",
@@ -53,8 +53,10 @@
53
53
  "hash.js": "1.1.7",
54
54
  "htm": "3.1.0",
55
55
  "lru-cache": "^5.1.1",
56
+ "luxon": "2.3.0",
56
57
  "preact": "10.5.14",
57
58
  "rxjs": "^6.5.2",
59
+ "seedrandom": "3.0.5",
58
60
  "stackframe": "^1.2.0",
59
61
  "uuid": "^8.3.2",
60
62
  "yjs": "13.5.24"
@@ -71,5 +73,5 @@
71
73
  "**/*.d.ts",
72
74
  "**/*.def"
73
75
  ],
74
- "gitHead": "61191ee46ea40ab2cc79d9d4cb85f5e98cdd7d38"
76
+ "gitHead": "e71f4b32d70175160955391a46b387fed55df1c1"
75
77
  }
@@ -1,3 +1,4 @@
1
+ /// <reference types="seedrandom" />
1
2
  import { BotAction, Bot, BotTags, RuntimeBot } from '../bots';
2
3
  import { RuntimeBotFactory, RuntimeBotsState, RuntimeBatcher } from './RuntimeBot';
3
4
  import { AuxVersion } from './AuxVersion';
@@ -54,6 +55,24 @@ export interface AuxGlobalContext {
54
55
  * The global values that the context is using.
55
56
  */
56
57
  global: any;
58
+ /**
59
+ * The pseudo-random number generator that should be used by the context.
60
+ */
61
+ pseudoRandomNumberGenerator: seedrandom.prng;
62
+ /**
63
+ * Gets or sets the calculated latency between this client and the inst server in miliseconds.
64
+ */
65
+ instLatency: number;
66
+ /**
67
+ * Gets or sets the calculated time offset between this client and the inst server in miliseconds.
68
+ */
69
+ instTimeOffset: number;
70
+ /**
71
+ * Gets or sets the difference between time offsets that are included in the calculated inst time offset.
72
+ * Values are in miliseconds.
73
+ * Can be a useful indicator of closely the local clock has been synced to the server clock.
74
+ */
75
+ instTimeOffsetSpread: number;
57
76
  /**
58
77
  * Enqueues the given action.
59
78
  * @param action The action to enqueue.
@@ -400,8 +419,12 @@ export declare class MemoryGlobalContext implements AuxGlobalContext {
400
419
  * Whether async API actions should be mocked.
401
420
  */
402
421
  mockAsyncActions: boolean;
422
+ pseudoRandomNumberGenerator: seedrandom.prng;
403
423
  global: any;
404
424
  uuid: (<T extends ArrayLike<number>>(options: import("uuid").V4Options, buffer: T, offset?: number) => T) & ((options?: import("uuid").V4Options) => string);
425
+ instLatency: number;
426
+ instTimeOffset: number;
427
+ instTimeOffsetSpread: number;
405
428
  get localTime(): number;
406
429
  private _taskCounter;
407
430
  private _scriptFactory;
@@ -114,6 +114,9 @@ export class MemoryGlobalContext {
114
114
  this.energy = DEFAULT_ENERGY;
115
115
  this.global = {};
116
116
  this.uuid = uuidv4;
117
+ this.instLatency = NaN;
118
+ this.instTimeOffset = NaN;
119
+ this.instTimeOffsetSpread = NaN;
117
120
  this._taskCounter = 0;
118
121
  this._shoutTimers = {};
119
122
  this._numberOfTimers = 0;
@@ -127,6 +130,7 @@ export class MemoryGlobalContext {
127
130
  this._portalWatcherMap = new Map();
128
131
  this._mocks = new Map();
129
132
  this._startTime = performance.now();
133
+ this.pseudoRandomNumberGenerator = null;
130
134
  }
131
135
  get localTime() {
132
136
  return performance.now() - this._startTime;
@@ -1 +1 @@
1
- {"version":3,"file":"AuxGlobalContext.js","sourceRoot":"","sources":["AuxGlobalContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AuxGlobalContext.js","sourceRoot":"","sources":["AuxGlobalContext.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ import './BlobPolyfill';
9
9
  import { AuxDevice } from './AuxDevice';
10
10
  import { AuxVersion } from './AuxVersion';
11
11
  import { CreatePublicRecordKeyResult, GetDataResult, RecordDataResult, RecordFileFailure, EraseDataResult, EraseFileResult, ListDataResult, AddCountResult, GetCountResult } from '@casual-simulation/aux-records';
12
+ import { DateTime } from 'luxon';
12
13
  /**
13
14
  * Defines an interface for a function that provides HTML VDOM capabilities to bots.
14
15
  */
@@ -301,6 +302,32 @@ export interface AuxDebuggerOptions {
301
302
  */
302
303
  configBot: Bot | BotTags;
303
304
  }
305
+ /**
306
+ * Defines an interface for a random number generator.
307
+ */
308
+ export interface PseudoRandomNumberGenerator {
309
+ /**
310
+ * The seed used for this random number generator.
311
+ * If null then an unpredictable seed was used.
312
+ */
313
+ seed: number | string | null;
314
+ /**
315
+ * Generates a random number between 0 and 1.
316
+ */
317
+ random(): number;
318
+ /**
319
+ * Generates a random decimal number between the given min and max values.
320
+ * @param min The minimum output number.
321
+ * @param max The maximum output number.
322
+ */
323
+ random(min?: number, max?: number): number;
324
+ /**
325
+ * Generates a random integer between the given min and max values.
326
+ * @param min The minimum output number.
327
+ * @param max The maximum output number.
328
+ */
329
+ randomInt(min: number, max: number): number;
330
+ }
304
331
  export interface MaskableFunction {
305
332
  mask(...args: any[]): MaskedFunction;
306
333
  }
@@ -404,6 +431,8 @@ export declare function createDefaultLibrary(context: AuxGlobalContext): {
404
431
  updateBotLinks: (bot: Bot, idMap: Map<string, string | Bot> | {
405
432
  [id: string]: string | Bot;
406
433
  }) => void;
434
+ getDateTime: (value: unknown) => DateTime;
435
+ DateTime: typeof DateTime;
407
436
  superShout: (eventName: string, arg?: any) => SuperShoutAction;
408
437
  priorityShout: (eventNames: string[], arg?: any) => any;
409
438
  shout: {
@@ -494,6 +523,27 @@ export declare function createDefaultLibrary(context: AuxGlobalContext): {
494
523
  hideBarcode: () => ShowBarcodeAction;
495
524
  openImageClassifier: (options: ImageClassifierOptions) => Promise<void>;
496
525
  closeImageClassifier: () => Promise<void>;
526
+ /**
527
+ * Gets the local device time in Miliseconds since January 1st 1970 UTC-0.
528
+ */
529
+ readonly localTime: number;
530
+ /**
531
+ * Gets the current agreed upon inst time in miliseconds since January 1st 1970 UTC-0.
532
+ */
533
+ readonly agreedUponTime: number;
534
+ /**
535
+ * Gets the calculated latency (in miliseconds) between this device and the inst server.
536
+ */
537
+ readonly instLatency: number;
538
+ /**
539
+ * Gets the calculated time offset between this device and the inst server in miliseconds.
540
+ */
541
+ readonly instTimeOffset: number;
542
+ /**
543
+ * Gets the maximum spread between time offset samples in miliseconds.
544
+ * Useful for determining how closely the agreedUponTime matches the server time.
545
+ */
546
+ readonly instTimeOffsetSpread: number;
497
547
  loadServer: (id: string) => LoadServerAction;
498
548
  unloadServer: (id: string) => UnloadServerAction;
499
549
  loadInst: (id: string) => LoadServerAction;
@@ -606,10 +656,6 @@ export declare function createDefaultLibrary(context: AuxGlobalContext): {
606
656
  };
607
657
  server: {
608
658
  setupServer: (inst: string, botOrMod?: Mod) => Promise<any>;
609
- exportGpio: (pin: number, mode: 'in' | 'out') => Promise<any>;
610
- unexportGpio: (pin: number) => Promise<any>;
611
- setGpio: (pin: number, value: 0 | 1) => Promise<any>;
612
- getGpio: (pin: number) => Promise<any>;
613
659
  rpioInit: (options: object) => Promise<any>;
614
660
  rpioExit: () => Promise<any>;
615
661
  rpioOpen: (pin: number, mode: 'INPUT' | 'OUTPUT' | 'PWM', options?: 'HIGH' | 'LOW' | 'PULL_OFF' | 'PULL_DOWN' | 'PULL_UP') => Promise<any>;
@@ -718,6 +764,8 @@ export declare function createDefaultLibrary(context: AuxGlobalContext): {
718
764
  sqrt: (value: any) => number;
719
765
  abs: (number: any) => number;
720
766
  stdDev: (list: any) => number;
767
+ getSeededRandomNumberGenerator: (seed?: number | string) => PseudoRandomNumberGenerator;
768
+ setRandomSeed: (seed: number | string) => void;
721
769
  randomInt: (min?: number, max?: number) => number;
722
770
  random: (min?: number, max?: number) => number;
723
771
  getForwardDirection: (pointerRotation: {
@@ -8,10 +8,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { DEBUG_STRING, debugStringifyFunction, } from './AuxGlobalContext';
11
- import { hasValue, trimTag, isBot, BOT_SPACE_TAG, toast as toastMessage, showJoinCode as calcShowJoinCode, requestFullscreen, exitFullscreen, html as htmlMessage, hideHtml as hideHtmlMessage, setClipboard as calcSetClipboard, tweenTo as calcTweenTo, showChat as calcShowChat, hideChat as calcHideChat, runScript, getMediaPermission as calcGetMediaPermission, enableAR as calcEnableAR, disableAR as calcDisableAR, enableVR as calcEnableVR, disableVR as calcDisableVR, arSupported as calcARSupported, vrSupported as calcVRSupported, showUploadAuxFile as calcShowUploadAuxFile, openQRCodeScanner as calcOpenQRCodeScanner, showQRCode as calcShowQRCode, openBarcodeScanner as calcOpenBarcodeScanner, showBarcode as calcShowBarcode, importAUX as calcImportAUX, showInputForTag as calcShowInputForTag, showInput as calcShowInput, replaceDragBot as calcReplaceDragBot, goToDimension as calcGoToDimension, goToURL as calcGoToURL, openURL as calcOpenURL, checkout as calcCheckout, playSound as calcPlaySound, bufferSound as calcBufferSound, cancelSound as calcCancelSound, setupServer as calcSetupServer, shell as calcShell, backupToGithub as calcBackupToGithub, backupAsDownload as calcBackupAsDownload, finishCheckout as calcFinishCheckout, markHistory as calcMarkHistory, browseHistory as calcBrowseHistory, restoreHistoryMark as calcRestoreHistoryMark, loadFile as calcLoadFile, saveFile as calcSaveFile, reject as calcReject, localFormAnimation as calcLocalFormAnimation, webhook as calcWebhook, superShout as calcSuperShout, share as calcShare, registerPrefix as calcRegisterPrefix, createCertificate as calcCreateCertificate, signTag as calcSignTag, revokeCertificate as calcRevokeCertificate, localPositionTween as calcLocalPositionTween, localRotationTween as calcLocalRotationTween, showUploadFiles as calcShowUploadFiles, download, loadSimulation, unloadSimulation, getUploadState, addState, getPortalTag, KNOWN_PORTALS, openConsole, tagsOnBot, getOriginalObject, getBotSpace, trimEvent, CREATE_ACTION_NAME, CREATE_ANY_ACTION_NAME, DESTROY_ACTION_NAME, ORIGINAL_OBJECT, unlockSpace, getRemoteCount, getServers, getRemotes, action, getServerStatuses, setSpacePassword, exportGpioPin, unexportGpioPin, setGpioPin, getGpioPin, rpioInitPin, rpioExitPin, rpioOpenPin, rpioModePin, rpioReadPin, rpioReadSequencePin, rpioWritePin, rpioWriteSequencePin, rpioReadpadPin, rpioWritepadPin, rpioPudPin, rpioPollPin, rpioClosePin, rpioI2CBeginPin, rpioI2CSetSlaveAddressPin, rpioI2CSetBaudRatePin, rpioI2CSetClockDividerPin, rpioI2CReadPin, rpioI2CWritePin,
11
+ import { hasValue, trimTag, isBot, BOT_SPACE_TAG, toast as toastMessage, showJoinCode as calcShowJoinCode, requestFullscreen, exitFullscreen, html as htmlMessage, hideHtml as hideHtmlMessage, setClipboard as calcSetClipboard, tweenTo as calcTweenTo, showChat as calcShowChat, hideChat as calcHideChat, runScript, getMediaPermission as calcGetMediaPermission, enableAR as calcEnableAR, disableAR as calcDisableAR, enableVR as calcEnableVR, disableVR as calcDisableVR, arSupported as calcARSupported, vrSupported as calcVRSupported, showUploadAuxFile as calcShowUploadAuxFile, openQRCodeScanner as calcOpenQRCodeScanner, showQRCode as calcShowQRCode, openBarcodeScanner as calcOpenBarcodeScanner, showBarcode as calcShowBarcode, importAUX as calcImportAUX, showInputForTag as calcShowInputForTag, showInput as calcShowInput, replaceDragBot as calcReplaceDragBot, goToDimension as calcGoToDimension, goToURL as calcGoToURL, openURL as calcOpenURL, checkout as calcCheckout, playSound as calcPlaySound, bufferSound as calcBufferSound, cancelSound as calcCancelSound, setupServer as calcSetupServer, shell as calcShell, backupToGithub as calcBackupToGithub, backupAsDownload as calcBackupAsDownload, finishCheckout as calcFinishCheckout, markHistory as calcMarkHistory, browseHistory as calcBrowseHistory, restoreHistoryMark as calcRestoreHistoryMark, loadFile as calcLoadFile, saveFile as calcSaveFile, reject as calcReject, localFormAnimation as calcLocalFormAnimation, webhook as calcWebhook, superShout as calcSuperShout, share as calcShare, registerPrefix as calcRegisterPrefix, createCertificate as calcCreateCertificate, signTag as calcSignTag, revokeCertificate as calcRevokeCertificate, localPositionTween as calcLocalPositionTween, localRotationTween as calcLocalRotationTween, showUploadFiles as calcShowUploadFiles, download, loadSimulation, unloadSimulation, getUploadState, addState, getPortalTag, KNOWN_PORTALS, openConsole, tagsOnBot, getOriginalObject, getBotSpace, trimEvent, CREATE_ACTION_NAME, CREATE_ANY_ACTION_NAME, DESTROY_ACTION_NAME, ORIGINAL_OBJECT, unlockSpace, getRemoteCount, getServers, getRemotes, action, getServerStatuses, setSpacePassword, rpioInitPin, rpioExitPin, rpioOpenPin, rpioModePin, rpioReadPin, rpioReadSequencePin, rpioWritePin, rpioWriteSequencePin, rpioReadpadPin, rpioWritepadPin, rpioPudPin, rpioPollPin, rpioClosePin, rpioI2CBeginPin, rpioI2CSetSlaveAddressPin, rpioI2CSetBaudRatePin, rpioI2CSetClockDividerPin, rpioI2CReadPin, rpioI2CWritePin,
12
12
  // rpioI2CReadRegisterRestartPin,
13
13
  // rpioI2CWriteReadRestartPin,
14
- rpioI2CEndPin, rpioPWMSetClockDividerPin, rpioPWMSetRangePin, rpioPWMSetDataPin, rpioSPIBeginPin, rpioSPIChipSelectPin, rpioSPISetCSPolarityPin, rpioSPISetClockDividerPin, rpioSPISetDataModePin, rpioSPITransferPin, rpioSPIWritePin, rpioSPIEndPin, serialConnectPin, serialOpenPin, serialStreamPin, serialUpdatePin, serialWritePin, serialReadPin, serialClosePin, serialFlushPin, serialDrainPin, serialPausePin, serialResumePin, calculateAnchorPoint, calculateAnchorPointOffset, getBotPosition as calcGetBotPosition, isRuntimeBot, SET_TAG_MASK_SYMBOL, CLEAR_TAG_MASKS_SYMBOL, getBotScale, EDIT_TAG_SYMBOL, EDIT_TAG_MASK_SYMBOL, circleWipe, addDropSnap as calcAddDropSnap, animateToPosition, beginAudioRecording as calcBeginAudioRecording, endAudioRecording as calcEndAudioRecording, beginRecording as calcBeginRecording, endRecording as calcEndRecording, speakText as calcSpeakText, getVoices as calcGetVoices, getGeolocation as calcGetGeolocation, cancelAnimation, disablePOV, enablePOV, enableCustomDragging as calcEnableCustomDragging, MINI_PORTAL, registerCustomApp, setAppOutput, unregisterCustomApp, requestAuthData as calcRequestAuthData, createBot, defineGlobalBot as calcDefineGlobalBot, TEMPORARY_BOT_PARTITION_ID, convertToString, GET_TAG_MASKS_SYMBOL, isBotLink, parseBotLink, createBotLink, convertGeolocationToWhat3Words as calcConvertGeolocationToWhat3Words, getPublicRecordKey as calcGetPublicRecordKey, recordData as calcRecordData, getRecordData, eraseRecordData, recordFile as calcRecordFile, eraseFile as calcEraseFile, meetCommand as calcMeetCommand, listDataRecord, recordEvent as calcRecordEvent, getEventCount as calcGetEventCount, openImageClassifier as calcOpenImageClassifier, } from '../bots';
14
+ rpioI2CEndPin, rpioPWMSetClockDividerPin, rpioPWMSetRangePin, rpioPWMSetDataPin, rpioSPIBeginPin, rpioSPIChipSelectPin, rpioSPISetCSPolarityPin, rpioSPISetClockDividerPin, rpioSPISetDataModePin, rpioSPITransferPin, rpioSPIWritePin, rpioSPIEndPin, serialConnectPin, serialOpenPin, serialStreamPin, serialUpdatePin, serialWritePin, serialReadPin, serialClosePin, serialFlushPin, serialDrainPin, serialPausePin, serialResumePin, calculateAnchorPoint, calculateAnchorPointOffset, getBotPosition as calcGetBotPosition, isRuntimeBot, SET_TAG_MASK_SYMBOL, CLEAR_TAG_MASKS_SYMBOL, getBotScale, EDIT_TAG_SYMBOL, EDIT_TAG_MASK_SYMBOL, circleWipe, addDropSnap as calcAddDropSnap, animateToPosition, beginAudioRecording as calcBeginAudioRecording, endAudioRecording as calcEndAudioRecording, beginRecording as calcBeginRecording, endRecording as calcEndRecording, speakText as calcSpeakText, getVoices as calcGetVoices, getGeolocation as calcGetGeolocation, cancelAnimation, disablePOV, enablePOV, enableCustomDragging as calcEnableCustomDragging, MINI_PORTAL, registerCustomApp, setAppOutput, unregisterCustomApp, requestAuthData as calcRequestAuthData, createBot, defineGlobalBot as calcDefineGlobalBot, TEMPORARY_BOT_PARTITION_ID, convertToString, GET_TAG_MASKS_SYMBOL, isBotLink, parseBotLink, createBotLink, convertGeolocationToWhat3Words as calcConvertGeolocationToWhat3Words, getPublicRecordKey as calcGetPublicRecordKey, recordData as calcRecordData, getRecordData, eraseRecordData, recordFile as calcRecordFile, eraseFile as calcEraseFile, meetCommand as calcMeetCommand, listDataRecord, recordEvent as calcRecordEvent, getEventCount as calcGetEventCount, openImageClassifier as calcOpenImageClassifier, isBotDate, DATE_TAG_PREFIX, parseBotDate, } from '../bots';
15
15
  import { sortBy, every, cloneDeep, union, isEqual, flatMap } from 'lodash';
16
16
  import { remote as calcRemote, } from '@casual-simulation/causal-trees';
17
17
  import { RanOutOfEnergyError } from './AuxResults';
@@ -33,6 +33,8 @@ import htm from 'htm';
33
33
  import { fromByteArray, toByteArray } from 'base64-js';
34
34
  import expect, { iterableEquality } from '@casual-simulation/expect';
35
35
  import { parseRecordKey, isRecordKey as calcIsRecordKey, } from '@casual-simulation/aux-records';
36
+ import SeedRandom from 'seedrandom';
37
+ import { DateTime } from 'luxon';
36
38
  const _html = htm.bind(h);
37
39
  const html = ((...args) => {
38
40
  return _html(...args);
@@ -169,6 +171,8 @@ export function createDefaultLibrary(context) {
169
171
  getLink: createBotLinkApi,
170
172
  getBotLinks,
171
173
  updateBotLinks,
174
+ getDateTime,
175
+ DateTime,
172
176
  superShout,
173
177
  priorityShout,
174
178
  shout: shoutProxy,
@@ -247,6 +251,37 @@ export function createDefaultLibrary(context) {
247
251
  hideBarcode,
248
252
  openImageClassifier,
249
253
  closeImageClassifier,
254
+ /**
255
+ * Gets the local device time in Miliseconds since January 1st 1970 UTC-0.
256
+ */
257
+ get localTime() {
258
+ return Date.now();
259
+ },
260
+ /**
261
+ * Gets the current agreed upon inst time in miliseconds since January 1st 1970 UTC-0.
262
+ */
263
+ get agreedUponTime() {
264
+ return Date.now() + context.instTimeOffset;
265
+ },
266
+ /**
267
+ * Gets the calculated latency (in miliseconds) between this device and the inst server.
268
+ */
269
+ get instLatency() {
270
+ return context.instLatency;
271
+ },
272
+ /**
273
+ * Gets the calculated time offset between this device and the inst server in miliseconds.
274
+ */
275
+ get instTimeOffset() {
276
+ return context.instTimeOffset;
277
+ },
278
+ /**
279
+ * Gets the maximum spread between time offset samples in miliseconds.
280
+ * Useful for determining how closely the agreedUponTime matches the server time.
281
+ */
282
+ get instTimeOffsetSpread() {
283
+ return context.instTimeOffsetSpread;
284
+ },
250
285
  loadServer,
251
286
  unloadServer,
252
287
  loadInst: loadServer,
@@ -328,10 +363,6 @@ export function createDefaultLibrary(context) {
328
363
  },
329
364
  server: {
330
365
  setupServer,
331
- exportGpio,
332
- unexportGpio,
333
- setGpio,
334
- getGpio,
335
366
  rpioInit,
336
367
  rpioExit,
337
368
  rpioOpen,
@@ -424,6 +455,8 @@ export function createDefaultLibrary(context) {
424
455
  sqrt,
425
456
  abs,
426
457
  stdDev,
458
+ getSeededRandomNumberGenerator,
459
+ setRandomSeed,
427
460
  randomInt,
428
461
  random,
429
462
  getForwardDirection,
@@ -2293,44 +2326,6 @@ export function createDefaultLibrary(context) {
2293
2326
  const event = calcRemote(calcSetupServer(inst, convertToCopiableValue(botOrMod)), undefined, undefined, task.taskId);
2294
2327
  return addAsyncAction(task, event);
2295
2328
  }
2296
- /**
2297
- * Sends an event to the server to export a pin (BCM) as input or output.
2298
- * @param pin The physical pin (BCM) number.
2299
- * @param mode The mode of the pin (BCM).
2300
- */
2301
- function exportGpio(pin, mode) {
2302
- const task = context.createTask(true, true);
2303
- const event = calcRemote(exportGpioPin(pin, mode), undefined, undefined, task.taskId);
2304
- return addAsyncAction(task, event);
2305
- }
2306
- /**
2307
- * Sends an event to the server to unexport a pin (BCM).
2308
- * @param pin The physical pin (BCM) number.
2309
- */
2310
- function unexportGpio(pin) {
2311
- const task = context.createTask(true, true);
2312
- const event = calcRemote(unexportGpioPin(pin), undefined, undefined, task.taskId);
2313
- return addAsyncAction(task, event);
2314
- }
2315
- /**
2316
- * Sends an event to the server to set a pin (BCM) as HIGH or LOW.
2317
- * @param pin The physical pin (BCM) number.
2318
- * @param value The mode of the pin (BCM).
2319
- */
2320
- function setGpio(pin, value) {
2321
- const task = context.createTask(true, true);
2322
- const event = calcRemote(setGpioPin(pin, value), undefined, undefined, task.taskId);
2323
- return addAsyncAction(task, event);
2324
- }
2325
- /**
2326
- * Sends an event to the server to get the value of a pin (BCM).
2327
- * @param pin The physical pin (BCM) number.
2328
- */
2329
- function getGpio(pin) {
2330
- const task = context.createTask(true, true);
2331
- const event = calcRemote(getGpioPin(pin), undefined, undefined, task.taskId);
2332
- return addAsyncAction(task, event);
2333
- }
2334
2329
  /**
2335
2330
  * Sends an event to the server to initialize rpio with provided settings
2336
2331
  * @param options An object containing values to initilize with.
@@ -3567,21 +3562,49 @@ export function createDefaultLibrary(context) {
3567
3562
  let standardMean = avg(numbersMinusMean);
3568
3563
  return sqrt(standardMean);
3569
3564
  }
3565
+ /**
3566
+ * Creates a new random number generator and returns it.
3567
+ * @param seed The value that should be used to seed the random number generator.
3568
+ */
3569
+ function getSeededRandomNumberGenerator(seed) {
3570
+ if (hasValue(seed)) {
3571
+ let s = typeof seed !== 'string' ? seed.toString() : seed;
3572
+ return _wrapPrng(seed, SeedRandom(s));
3573
+ }
3574
+ return _wrapPrng(null, SeedRandom());
3575
+ }
3576
+ function _wrapPrng(seed, prng) {
3577
+ return {
3578
+ seed: seed,
3579
+ random(min, max) {
3580
+ return randomBase(min, max, prng);
3581
+ },
3582
+ randomInt(min, max) {
3583
+ return randomIntBase(min, max, prng);
3584
+ },
3585
+ };
3586
+ }
3587
+ /**
3588
+ * Sets the seed that should be used for random numbers.
3589
+ * @param seed The seed that should be used. If given null, then the numbers will be unseeded.
3590
+ */
3591
+ function setRandomSeed(seed) {
3592
+ if (!hasValue(seed)) {
3593
+ context.pseudoRandomNumberGenerator = null;
3594
+ return;
3595
+ }
3596
+ if (typeof seed !== 'string') {
3597
+ seed = seed.toString();
3598
+ }
3599
+ context.pseudoRandomNumberGenerator = SeedRandom(seed);
3600
+ }
3570
3601
  /**
3571
3602
  * Generates a random integer number between min and max.
3572
3603
  * @param min The smallest allowed value.
3573
3604
  * @param max The largest allowed value.
3574
3605
  */
3575
3606
  function randomInt(min = 0, max) {
3576
- min = Math.ceil(min);
3577
- max = Math.floor(max);
3578
- const rand = Math.random();
3579
- if (max) {
3580
- return Math.floor(rand * (max - min)) + min;
3581
- }
3582
- else {
3583
- return Math.floor(rand) + min;
3584
- }
3607
+ return randomIntBase(min, max, context.pseudoRandomNumberGenerator);
3585
3608
  }
3586
3609
  /**
3587
3610
  * Generates a random number between min and max.
@@ -3589,7 +3612,10 @@ export function createDefaultLibrary(context) {
3589
3612
  * @param max The largest allowed value.
3590
3613
  */
3591
3614
  function random(min = 0, max) {
3592
- const rand = Math.random();
3615
+ return randomBase(min, max, context.pseudoRandomNumberGenerator);
3616
+ }
3617
+ function randomBase(min = 0, max, prng) {
3618
+ const rand = _random(prng);
3593
3619
  if (max) {
3594
3620
  return rand * (max - min) + min;
3595
3621
  }
@@ -3597,6 +3623,23 @@ export function createDefaultLibrary(context) {
3597
3623
  return rand + min;
3598
3624
  }
3599
3625
  }
3626
+ function randomIntBase(min, max, prng) {
3627
+ min = Math.ceil(min);
3628
+ max = Math.floor(max);
3629
+ const rand = _random(prng);
3630
+ if (max) {
3631
+ return Math.floor(rand * (max - min)) + min;
3632
+ }
3633
+ else {
3634
+ return Math.floor(rand) + min;
3635
+ }
3636
+ }
3637
+ function _random(prng) {
3638
+ if (prng) {
3639
+ return prng();
3640
+ }
3641
+ return Math.random();
3642
+ }
3600
3643
  /**
3601
3644
  * Gets the forward direction for the given rotation.
3602
3645
  * @param pointerRotation The rotation that the pointer has represented in radians.
@@ -4697,6 +4740,28 @@ export function createDefaultLibrary(context) {
4697
4740
  }
4698
4741
  }
4699
4742
  }
4743
+ /**
4744
+ * Parses the given value into a date time object.
4745
+ * Returns null if the value could not be parsed into a date time.
4746
+ * @param value The value to parse.
4747
+ */
4748
+ function getDateTime(value) {
4749
+ if (typeof value === 'string') {
4750
+ if (!isBotDate(value)) {
4751
+ value = DATE_TAG_PREFIX + value;
4752
+ }
4753
+ return parseBotDate(value);
4754
+ }
4755
+ else if (value instanceof DateTime) {
4756
+ return value;
4757
+ }
4758
+ else if (value instanceof Date) {
4759
+ return DateTime.fromJSDate(value);
4760
+ }
4761
+ else {
4762
+ return null;
4763
+ }
4764
+ }
4700
4765
  /**
4701
4766
  * Shouts the given event to every bot in every loaded simulation.
4702
4767
  * @param eventName The name of the event to shout.